From 6f479b7a88330e55a0334f2b5544d20daba2eaf0 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sat, 30 Apr 2022 18:03:24 +0100 Subject: [PATCH 01/36] Fixed block Hermitian routine for Pauli Also removes unused anti-symmetrising routine. --- src/dftbp/dftb/sparse2dense.F90 | 51 +++++++++------------------------ 1 file changed, 13 insertions(+), 38 deletions(-) diff --git a/src/dftbp/dftb/sparse2dense.F90 b/src/dftbp/dftb/sparse2dense.F90 index 2e1625668f..a7bb75cc55 100644 --- a/src/dftbp/dftb/sparse2dense.F90 +++ b/src/dftbp/dftb/sparse2dense.F90 @@ -25,8 +25,7 @@ module dftbp_dftb_sparse2dense private public :: unpackHS, packHS, iPackHS, packErho, unpackDQ - public :: blockSymmetrizeHS, blockHermitianHS, blockAntiSymmetrizeHS, symmetrizeHS - public :: hermitianSquareMatrix + public :: blockSymmetrizeHS, blockHermitianHS, symmetrizeHS, hermitianSquareMatrix public :: packHSPauli, packHSPauliImag, unpackHPauli, unpackSPauli public :: unpackHelicalHS, packHelicalHS public :: getSparseDescriptor @@ -105,12 +104,6 @@ module dftbp_dftb_sparse2dense end interface blockHermitianHS - !> Symmetrize the square matrix except the on-site blocks - interface blockAntiSymmetrizeHS - module procedure blockAntiSymmetrizeHS_real - end interface blockAntiSymmetrizeHS - - !> Symmetrize the square matrix including the on-site blocks interface symmetrizeHS module procedure symmetrizeHS_real @@ -1934,7 +1927,7 @@ subroutine blockSymmetrizeHS_cmplx(square, iAtomStart) end subroutine blockSymmetrizeHS_cmplx - !> Symmetrize a square matrix leaving the on-site atomic blocks alone. (Complex version) + !> Symmetrize a square matrix leaving the on-site atomic blocks alone. (Complex version) subroutine blockHermitianHS_cmplx(square, iAtomStart) !> Square form matrix. @@ -1950,8 +1943,8 @@ subroutine blockHermitianHS_cmplx(square, iAtomStart) @:ASSERT(nAtom > 0) @:ASSERT(size(square, dim=1) == size(square, dim=2)) - @:ASSERT((size(square, dim=1) == 2*mOrb) .or. (size(square, dim=1) == mOrb)) - @:ASSERT(size(square, dim=1) == mOrb) + @:ASSERT((size(square, dim=1) == mOrb) .or. (size(square, dim=1) == 2*mOrb)) + @:ASSERT(size(square, dim=1) == mOrb .or. size(square, dim=1) == 2*mOrb) do iAtom = 1, nAtom iStart = iAtomStart(iAtom) @@ -1959,6 +1952,15 @@ subroutine blockHermitianHS_cmplx(square, iAtomStart) square(iStart:iEnd, iEnd+1:mOrb) = transpose(conjg(square(iEnd+1:mOrb, iStart:iEnd))) end do + if (size(square, dim=1) == 2*mOrb) then + ! 2 component matrix + do iAtom = 1, nAtom + iStart = iAtomStart(iAtom) + mOrb + iEnd = iAtomStart(iAtom+1) + mOrb - 1 + square(iStart:iEnd, iEnd+1:) = transpose(conjg(square(iEnd+1:, iStart:iEnd))) + end do + end if + end subroutine blockHermitianHS_cmplx @@ -1989,33 +1991,6 @@ subroutine blockSymmetrizeHS_real(square, iAtomStart) end subroutine blockSymmetrizeHS_real - !> Anti-symmetrize a square matrix leaving the on-site atomic blocks alone. (Real version) - subroutine blockAntiSymmetrizeHS_real(square, iAtomStart) - - !> Square form matrix. - real(dp), intent(inout) :: square(:, :) - - !> Contains the offset in the array for each atom. - integer, intent(in) :: iAtomStart(:) - - integer :: nAtom, iAtom, iStart, iEnd, mOrb - - nAtom = size(iAtomStart) - 1 - mOrb = iAtomStart(nAtom+1) - 1 - - @:ASSERT(nAtom > 0) - @:ASSERT(size(square, dim=1) == size(square, dim=2)) - @:ASSERT(size(square, dim=1) == mOrb) - - do iAtom = 1, nAtom - iStart = iAtomStart(iAtom) - iEnd = iAtomStart(iAtom+1) - 1 - square(iStart:iEnd, iEnd+1:mOrb) = -transpose(square(iEnd+1:mOrb, iStart:iEnd)) - end do - - end subroutine blockAntiSymmetrizeHS_real - - !> Copy lower triangle to upper for a square matrix. (Real version) subroutine symmetrizeHS_real(matrix) From 97196044cb9ec62142973c2378e3fa1aea0e3559 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sun, 8 May 2022 17:56:27 +0100 Subject: [PATCH 02/36] Updates for mpifx patch Also fixes submodule hash for mctc-lib as well as mpifx 1.3.1 --- CMakeLists.txt | 4 ++-- external/mpifx/origin | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fe4230fd68..65925e501c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,7 +178,7 @@ endif() if(WITH_MPI) set(MPIFX_GIT_REPOSITORY "https://github.com/dftbplus/mpifx.git") - set(MPIFX_GIT_TAG "0641eead6ff9bf04c7ca2ec676a281780e2029e2") # do not change manually! + set(MPIFX_GIT_TAG "da51073aa87831a91ae756a9773e39ea000d1c3a") # do not change manually! dftbp_config_hybrid_dependency(MpiFx MpiFx::MpiFx "${HYBRID_CONFIG_METHODS}" "QUIET" external/mpifx "${exclude}" "${MPIFX_GIT_REPOSITORY}" "${MPIFX_GIT_TAG}") @@ -219,7 +219,7 @@ if(WITH_TBLITE OR WITH_SDFTD3) #list(APPEND PKG_CONFIG_REQUIRES mctc-lib) set(MSTORE_GIT_REPOSITORY "https://github.com/grimme-lab/mstore.git") - set(MSTORE_GIT_TAG "1f690009020fb5f196c1dc359056741738416db6") # do not change manually! + set(MSTORE_GIT_TAG "90fc6fc4d8a6c3d72e5a910347a45edabf65343c") # do not change manually! dftbp_config_hybrid_dependency(mstore mstore::mstore "${HYBRID_CONFIG_METHODS}" "QUIET" external/mstore "${exclude}" "${MSTORE_GIT_REPOSITORY}" "${MSTORE_GIT_TAG}") #list(APPEND PKG_CONFIG_REQUIRES mstore) diff --git a/external/mpifx/origin b/external/mpifx/origin index 0641eead6f..da51073aa8 160000 --- a/external/mpifx/origin +++ b/external/mpifx/origin @@ -1 +1 @@ -Subproject commit 0641eead6ff9bf04c7ca2ec676a281780e2029e2 +Subproject commit da51073aa87831a91ae756a9773e39ea000d1c3a From 1bd04b4d164081503cb681c9075b1f462cd14ab7 Mon Sep 17 00:00:00 2001 From: Alessandro Pecchia <32100903+pecchia@users.noreply.github.com> Date: Wed, 11 May 2022 12:31:27 +0200 Subject: [PATCH 03/36] Align to libnegf 1.1 release (#1022) --- CMakeLists.txt | 2 +- app/phonons/libnegfint.F90 | 4 ++-- external/libnegf/origin | 2 +- src/dftbp/transport/negfint.F90 | 28 +++++++--------------------- 4 files changed, 11 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 65925e501c..5428b1fac7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,7 +204,7 @@ endif() if(WITH_TRANSPORT) set(LIBNEGF_GIT_REPOSITORY "https://github.com/libnegf/libnegf.git") - set(LIBNEGF_GIT_TAG "c8ed2caf9ed00fce1a7d9583a605bec211920d2b") # do not change manually! + set(LIBNEGF_GIT_TAG "5b769f76406b12ec2faad30593cb061c5bec7d47") # do not change manually! dftbp_config_hybrid_dependency(Negf Negf::Negf "${HYBRID_CONFIG_METHODS}" "QUIET" external/libnegf "${exclude}" "${LIBNEGF_GIT_REPOSITORY}" "${LIBNEGF_GIT_TAG}") #list(APPEND PKG_CONFIG_REQUIRES negf) diff --git a/app/phonons/libnegfint.F90 b/app/phonons/libnegfint.F90 index 1278fc324a..8539b4f4b2 100644 --- a/app/phonons/libnegfint.F90 +++ b/app/phonons/libnegfint.F90 @@ -621,8 +621,8 @@ subroutine negf_phonon_current(HH, qpoint, wght, tunn, ledos, currents) call get_params(negf, params) - params%kpoint = qpoint - params%wght = wght + params%ikpoint = qpoint + params%kwght = wght call set_params(negf, params) diff --git a/external/libnegf/origin b/external/libnegf/origin index c8ed2caf9e..5b769f7640 160000 --- a/external/libnegf/origin +++ b/external/libnegf/origin @@ -1 +1 @@ -Subproject commit c8ed2caf9ed00fce1a7d9583a605bec211920d2b +Subproject commit 5b769f76406b12ec2faad30593cb061c5bec7d47 diff --git a/src/dftbp/transport/negfint.F90 b/src/dftbp/transport/negfint.F90 index fb859c8ba2..9bb0722092 100644 --- a/src/dftbp/transport/negfint.F90 +++ b/src/dftbp/transport/negfint.F90 @@ -114,7 +114,7 @@ subroutine TNegfInt_init(this, transpar, env, greendens, tundos, tempElec) ! Set defaults and fill up the parameter structure with them call init_negf(this%negf) call init_contacts(this%negf, ncont) - call set_scratch(this%negf, ".") + call set_scratch(this%negf, "./GS/") if (tIoProc .and. greendens%saveSGF ) then call create_scratch(this%negf) @@ -289,7 +289,7 @@ subroutine TNegfInt_init(this, transpar, env, greendens, tundos, tempElec) end if write(stdOut,*) 'Contour Points: ', params%Np_n(1:2) write(stdOut,*) 'Number of poles: ', params%N_poles - write(stdOut,*) 'Real-axis points: ', params%Np_real(1) + write(stdOut,*) 'Real-axis points: ', params%Np_real if (params%readOldDM_SGFs==0) then write(stdOut,*) 'Read Existing SGFs: Yes ' else @@ -355,15 +355,6 @@ subroutine TNegfInt_init(this, transpar, env, greendens, tundos, tempElec) !this%negf%tNoGeometry = transpar%tNoGeometry this%negf%tOrthonormal = transpar%tOrthonormal this%negf%tOrthonormalDevice = transpar%tOrthonormalDevice - this%negf%NumStates = transpar%NumStates - this%negf%tManyBody = transpar%tManyBody - this%negf%tElastic = transpar%tElastic - this%negf%tZeroCurrent = transpar%tZeroCurrent - this%negf%MaxIter = transpar%MaxIter - this%negf%trans%out%tWriteDOS = transpar%tWriteDOS - this%negf%tWrite_ldos = transpar%tWrite_ldos - this%negf%tWrite_negf_params = transpar%tWrite_negf_params - this%negf%trans%out%tDOSwithS = transpar%tDOSwithS this%negf%cont(:)%name = transpar%contacts(:)%name this%negf%cont(:)%tWriteSelfEnergy = transpar%contacts(:)%tWriteSelfEnergy this%negf%cont(:)%tReadSelfEnergy = transpar%contacts(:)%tReadSelfEnergy @@ -375,11 +366,6 @@ subroutine TNegfInt_init(this, transpar, env, greendens, tundos, tempElec) this%negf%tDephasingVE = transpar%tDephasingVE this%negf%tDephasingBP = transpar%tDephasingBP - if((.not. this%negf%tElastic).and.(.not. this%negf%tManyBody)) then - write(stdOut, *)'Current is not calculated!' - call error('Choose "Elastic = Yes" or "ManyBody = Yes"!') - end if - end subroutine TNegfInt_init @@ -781,7 +767,7 @@ subroutine negf_density(negf, miter,spin,nkpoint,HH,SS,mu,DensMat,EnMat) call get_params(negf, params) - params%kpoint = nkpoint + params%ikpoint = nkpoint params%spin = spin params%DorE='N' nn=size(mu,1) @@ -845,8 +831,8 @@ subroutine negf_ldos(negf, HH, SS, spin, kpoint, wght, ledos) call get_params(negf, params) params%spin = spin - params%kpoint = kpoint - params%wght = wght + params%ikpoint = kpoint + params%kwght = wght call pass_HS(negf,HH,SS) @@ -973,8 +959,8 @@ subroutine negf_current(negf, HH, SS, spin, kpoint, wght, tunn, curr, ledos, cur call get_params(negf, params) params%spin = spin - params%kpoint = kpoint - params%wght = wght + params%ikpoint = kpoint + params%kwght = wght call set_params(negf, params) From ef8f3c910a9fe2460c941a4e6f6a0ae25aa0d99b Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Wed, 11 May 2022 13:18:55 +0100 Subject: [PATCH 04/36] Append geometry option and device range trap (#1024) * Append geometry option and device range trap * GeometryOptimization environment with AppendGeometries flag * Fix atom range default for transport calculations in GeometryOptimization * Simplify atom range code for other drivers, reducing preprocessor use * Adapt existing rf test to append output geometry * On zero-th geometry step open a new file, then optionally append depending on logical --- doc/dftb+/manual/dftbp.tex | 2 +- src/dftbp/dftbplus/input/geoopt.F90 | 16 +++-- src/dftbp/dftbplus/main.F90 | 6 +- src/dftbp/dftbplus/parser.F90 | 76 +++++++----------------- test/app/dftb+/geoopt/H2O_rf/dftb_in.hsd | 1 + 5 files changed, 39 insertions(+), 62 deletions(-) diff --git a/doc/dftb+/manual/dftbp.tex b/doc/dftb+/manual/dftbp.tex index ba76d23b62..d3ad0a8e1a 100644 --- a/doc/dftb+/manual/dftbp.tex +++ b/doc/dftb+/manual/dftbp.tex @@ -301,7 +301,7 @@ \subsection{GeometryOptimization} \kw{Convergence} & m & & & \pref{sec:dftbp.Convergence} \\ \kw{MaxSteps} &i & & 200 & \\ \kw{OutputPrefix} &s & & "geo\_end" & \\ - %\kw{AppendGeometries} & l & & \is{No} & \\ + \kw{AppendGeometries} & l & & \is{No} & \\ %\kw{Constraints} & (1i3r)* & LatticeOpt = No & \cb & \\ %\kw{ConvergentForcesOnly} & l & SCC = Yes & \is{Yes} & \\ \end{ptable} diff --git a/src/dftbp/dftbplus/input/geoopt.F90 b/src/dftbp/dftbplus/input/geoopt.F90 index 11c5dc6674..d028225bc1 100644 --- a/src/dftbp/dftbplus/input/geoopt.F90 +++ b/src/dftbp/dftbplus/input/geoopt.F90 @@ -48,7 +48,7 @@ module dftbp_dftbplus_input_geoopt contains !> General entry point to read geometry optimization - subroutine readGeoOptInput(node, geom, input) + subroutine readGeoOptInput(node, geom, input, atomsRange) !> Node to get the information from type(fnode), pointer, intent(in) :: node @@ -59,13 +59,17 @@ subroutine readGeoOptInput(node, geom, input) !> Control structure to be filled type(TGeoOptInput), intent(out) :: input + !> Default range of moving atoms (may be restricted for example by contacts in transport + !> calculations) + character(len=*), intent(in) :: atomsRange + type(fnode), pointer :: child, value1 type(string) :: buffer call getChildValue(node, "Optimizer", child, "Rational") call readOptimizerInput(child, input%optimizer) - call readFilterInput(node, geom, input%filter) + call readFilterInput(node, geom, input%filter, atomsRange) call getChildValue(node, "Convergence", value1, "", child=child, allowEmptyValue=.true.) call readOptTolerance(child, input%tolerance) @@ -114,7 +118,7 @@ end subroutine readOptimizerInput !> Entry point for reading input for cartesian geometry transformation filter - subroutine readFilterInput(node, geom, input) + subroutine readFilterInput(node, geom, input, atomsRange) !> Node to get the information from type(fnode), pointer, intent(in) :: node @@ -125,6 +129,10 @@ subroutine readFilterInput(node, geom, input) !> Control structure to be filled type(TFilterInput), intent(out) :: input + !> Default range of moving atoms (may be restricted for example by contacts in transport + !> calculations) + character(len=*), intent(in) :: atomsRange + type(fnode), pointer :: child type(string) :: buffer @@ -137,7 +145,7 @@ subroutine readFilterInput(node, geom, input) end if call getChildValue(node, "Isotropic", input%isotropic, .false.) end if - call getChildValue(node, "MovedAtoms", buffer, "1:-1", multiple=.true., child=child) + call getChildValue(node, "MovedAtoms", buffer, trim(atomsRange), multiple=.true., child=child) call getSelectedAtomIndices(child, char(buffer), geom%speciesNames, geom%species, & & input%indMovedAtom) diff --git a/src/dftbp/dftbplus/main.F90 b/src/dftbp/dftbplus/main.F90 index 66bfb6fcce..00b9cf8e57 100644 --- a/src/dftbp/dftbplus/main.F90 +++ b/src/dftbp/dftbplus/main.F90 @@ -1306,9 +1306,9 @@ subroutine processGeometry(this, env, iGeoStep, iLatGeoStep, tWriteRestart, tSto if (.not. (this%deltaDftb%isSpinPurify .and.& & this%deltaDftb%iDeterminant == determinants%triplet)) then call writeCurrentGeometry(this%geoOutFile, this%pCoord0Out, this%tLatOpt, this%tMd,& - & this%tAppendGeo, this%tFracCoord, this%tPeriodic, this%tHelical, this%tPrintMulliken,& - & this%species0, this%speciesName, this%latVec, this%origin, iGeoStep, iLatGeoStep,& - & this%nSpin, this%qOutput, this%velocities) + & this%tAppendGeo.and.iGeoStep>0, this%tFracCoord, this%tPeriodic, this%tHelical,& + & this%tPrintMulliken, this%species0, this%speciesName, this%latVec, this%origin,& + & iGeoStep, iLatGeoStep, this%nSpin, this%qOutput, this%velocities) endif end if diff --git a/src/dftbp/dftbplus/parser.F90 b/src/dftbp/dftbplus/parser.F90 index f4fbd66f39..7d84187e08 100644 --- a/src/dftbp/dftbplus/parser.F90 +++ b/src/dftbp/dftbplus/parser.F90 @@ -429,20 +429,12 @@ subroutine readDriver(node, parent, geom, ctrl) character(lc) :: sTmp #:endif - ! range of default atoms to move + ! Default range of atoms to move (may be adjusted if contacts present) character(mc) :: atomsRange character(mc) :: modeName logical :: isMaxStepNeeded - atomsRange = "1:-1" - #:if WITH_TRANSPORT - if (transpar%defined) then - ! only those atoms in the device region - write(atomsRange,"(I0,':',I0)")transpar%idxdevice - end if - #:endif - ctrl%isGeoOpt = .false. ctrl%tCoordOpt = .false. ctrl%tLatOpt = .false. @@ -453,6 +445,14 @@ subroutine readDriver(node, parent, geom, ctrl) ctrl%tForces = .false. ctrl%tSetFillingTemp = .false. + atomsRange = "1:-1" + #:if WITH_TRANSPORT + if (transpar%defined) then + ! only those atoms in the device region + write(atomsRange,"(I0,':',I0)")transpar%idxdevice + end if + #:endif + call getNodeName2(node, buffer) driver: select case (char(buffer)) case ("") @@ -465,7 +465,10 @@ subroutine readDriver(node, parent, geom, ctrl) modeName = "geometry optimization" allocate(ctrl%geoOpt) - call readGeoOptInput(node, geom, ctrl%geoOpt) + + call readGeoOptInput(node, geom, ctrl%geoOpt, atomsRange) + + call getChildValue(node, "AppendGeometries", ctrl%tAppendGeo, .false.) ctrl%tForces = .true. ctrl%restartFreq = 1 @@ -479,11 +482,7 @@ subroutine readDriver(node, parent, geom, ctrl) ! Steepest downhill optimisation ctrl%iGeoOpt = geoOptTypes%steepestDesc - #:if WITH_TRANSPORT - call commonGeoOptions(node, ctrl, geom, transpar) - #:else - call commonGeoOptions(node, ctrl, geom) - #:endif + call commonGeoOptions(node, ctrl, geom, atomsRange) case ("conjugategradient") @@ -493,11 +492,7 @@ subroutine readDriver(node, parent, geom, ctrl) ! Conjugate gradient location optimisation ctrl%iGeoOpt = geoOptTypes%conjugateGrad - #:if WITH_TRANSPORT - call commonGeoOptions(node, ctrl, geom, transpar) - #:else - call commonGeoOptions(node, ctrl, geom) - #:endif + call commonGeoOptions(node, ctrl, geom, atomsRange) case("gdiis") @@ -510,11 +505,7 @@ subroutine readDriver(node, parent, geom, ctrl) ctrl%iGeoOpt = geoOptTypes%diis call getChildValue(node, "alpha", ctrl%deltaGeoOpt, 1.0E-1_dp) call getChildValue(node, "Generations", ctrl%iGenGeoOpt, 8) - #:if WITH_TRANSPORT - call commonGeoOptions(node, ctrl, geom, transpar) - #:else - call commonGeoOptions(node, ctrl, geom) - #:endif + call commonGeoOptions(node, ctrl, geom, atomsRange) case ("lbfgs") @@ -538,11 +529,7 @@ subroutine readDriver(node, parent, geom, ctrl) call getChildValue(node, "oldLineSearch", ctrl%lbfgsInp%isOldLS, .false.) end if - #:if WITH_TRANSPORT - call commonGeoOptions(node, ctrl, geom, transpar, ctrl%lbfgsInp%isLineSearch) - #:else - call commonGeoOptions(node, ctrl, geom, ctrl%lbfgsInp%isLineSearch) - #:endif + call commonGeoOptions(node, ctrl, geom, atomsRange, ctrl%lbfgsInp%isLineSearch) case ("fire") @@ -552,11 +539,7 @@ subroutine readDriver(node, parent, geom, ctrl) & "Please use the GeometryOptimization driver instead.") ctrl%iGeoOpt = geoOptTypes%fire - #:if WITH_TRANSPORT - call commonGeoOptions(node, ctrl, geom, transpar, .false.) - #:else - call commonGeoOptions(node, ctrl, geom, .false.) - #:endif + call commonGeoOptions(node, ctrl, geom, atomsRange, .false.) call getChildValue(node, "TimeStep", ctrl%deltaT, 1.0_dp, modifier=modifier, child=field) call convertByMul(char(modifier), timeUnits, field, ctrl%deltaT) @@ -916,11 +899,7 @@ end function containsAll !> Common geometry optimisation settings for various drivers -#:if WITH_TRANSPORT - subroutine commonGeoOptions(node, ctrl, geom, transpar, isMaxStepNeeded) -#:else - subroutine commonGeoOptions(node, ctrl, geom, isMaxStepNeeded) -#:endif + subroutine commonGeoOptions(node, ctrl, geom, atomsRange, isMaxStepNeeded) !> Node to get the information from type(fnode), pointer :: node @@ -931,18 +910,15 @@ subroutine commonGeoOptions(node, ctrl, geom, isMaxStepNeeded) !> geometry of the system type(TGeometry), intent(in) :: geom - #:if WITH_TRANSPORT - !> Transport parameters - type(TTransPar), intent(in) :: transpar - #:endif + !> Default range of moving atoms (may be restricted for example by contacts in transport + !> calculations) + character(len=*), intent(in) :: atomsRange !> Is the maximum step size relevant for this driver logical, intent(in), optional :: isMaxStepNeeded type(fnode), pointer :: child, child2, child3, value1, value2, field type(string) :: buffer, buffer2, modifier - ! range of default atoms to move - character(mc) :: atomsRange logical :: isMaxStep if (present(isMaxStepNeeded)) then @@ -951,14 +927,6 @@ subroutine commonGeoOptions(node, ctrl, geom, isMaxStepNeeded) isMaxStep = .true. end if - atomsRange = "1:-1" - #:if WITH_TRANSPORT - if (transpar%defined) then - ! only those atoms in the device region - write(atomsRange,"(I0,':',I0)")transpar%idxdevice - end if - #:endif - ctrl%tForces = .true. ctrl%restartFreq = 1 diff --git a/test/app/dftb+/geoopt/H2O_rf/dftb_in.hsd b/test/app/dftb+/geoopt/H2O_rf/dftb_in.hsd index 9ebe11b0c5..1e8b307365 100644 --- a/test/app/dftb+/geoopt/H2O_rf/dftb_in.hsd +++ b/test/app/dftb+/geoopt/H2O_rf/dftb_in.hsd @@ -9,6 +9,7 @@ Geometry = GenFormat { Driver = GeometryOptimization { Optimizer = Rational {} MaxSteps = 100 + AppendGeometries = Yes OutputPrefix = "geom.out" } From 969b204812d83e13e13408b60d4d01944f767331 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Fri, 13 May 2022 16:55:49 +0100 Subject: [PATCH 05/36] Add Tobias Melson to author list --- AUTHORS.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/AUTHORS.rst b/AUTHORS.rst index 4efaf07d79..f034eb84eb 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -52,8 +52,10 @@ contributed to DFTB+ : * Reinhard Maurer (University of Warwick, UK) +* Tobias Melson (Max Planck Computing and Data Facility, Germany) + * Izaac Mitchell (University of Newcastle, Australia) - + * Thomas Niehaus (University of Lyon, France) * Alessandro Pecchia (University of Rome "Tor Vergata", Italy) @@ -63,7 +65,7 @@ contributed to DFTB+ : * Jan Řezáč (Institute of Organic Chemistry and Biochemistry AS CR, Czech Republic) - + * Cristián G. Sánchez (Universidad Nacional de Cuyo, Argentina) * Miguel Steiner (ETH Zurich, Switzerland) From fab0add19d441a6f9875411c2dceb65ccc43038d Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Sat, 14 May 2022 18:19:59 +0200 Subject: [PATCH 06/36] Update submodules for xTB stack (#1020) --- CMakeLists.txt | 8 +++---- external/dftd4/origin | 2 +- external/mctc-lib/origin | 2 +- external/s-dftd3/origin | 2 +- external/tblite/CMakeLists.txt | 6 +++++ external/tblite/origin | 2 +- src/dftbp/extlibs/tblite.F90 | 44 ++++++++++++++++------------------ 7 files changed, 35 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5428b1fac7..95c8f84103 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,7 +213,7 @@ add_subdirectory(external/mudpack) if(WITH_TBLITE OR WITH_SDFTD3) set(MCTC_LIB_GIT_REPOSITORY "https://github.com/grimme-lab/mctc-lib.git") - set(MCTC_LIB_GIT_TAG "1f690009020fb5f196c1dc359056741738416db6") # do not change manually! + set(MCTC_LIB_GIT_TAG "3d0e921085eb6ca535dfceec876bc99baf52f05d") # do not change manually! dftbp_config_hybrid_dependency(mctc-lib mctc-lib::mctc-lib "${HYBRID_CONFIG_METHODS}" "QUIET" external/mctc-lib "${exclude}" "${MCTC_LIB_GIT_REPOSITORY}" "${MCTC_LIB_GIT_TAG}") #list(APPEND PKG_CONFIG_REQUIRES mctc-lib) @@ -231,7 +231,7 @@ if(WITH_TBLITE OR WITH_SDFTD3) #list(APPEND PKG_CONFIG_REQUIRES toml-f) set(S_DFTD3_GIT_REPOSITORY "https://github.com/awvwgk/simple-dftd3.git") - set(S_DFTD3_GIT_TAG "6623834fe0be9f6ed22f9c0cb1c61ea121753c28") # do not change manually! + set(S_DFTD3_GIT_TAG "02dead293e59408100eb382e97be56e2a03fb317") # do not change manually! dftbp_config_hybrid_dependency(s-dftd3 s-dftd3::s-dftd3 "${HYBRID_CONFIG_METHODS}" "QUIET" external/s-dftd3 "${exclude}" "${S_DFTD3_GIT_REPOSITORY}" "${S_DFTD3_GIT_TAG}") #list(APPEND PKG_CONFIG_REQUIRES s-dftd3) @@ -245,13 +245,13 @@ if(WITH_TBLITE) #list(APPEND PKG_CONFIG_REQUIRES multicharge) set(DFTD4_GIT_REPOSITORY "https://github.com/dftd4/dftd4.git") - set(DFTD4_GIT_TAG "b1faf68231d8b0fd44cf0701e9f27c8092bd7926") # do not change manually! + set(DFTD4_GIT_TAG "f572723f5a5cb8243ea88b0253e182088311c6f3") # do not change manually! dftbp_config_hybrid_dependency(dftd4 dftd4::dftd4 "${HYBRID_CONFIG_METHODS}" "QUIET" external/dftd4 "${exclude}" "${DFTD4_GIT_REPOSITORY}" "${DFTD4_GIT_TAG}") #list(APPEND PKG_CONFIG_REQUIRES dftd4) set(TBLITE_GIT_REPOSITORY "https://github.com/tblite/tblite.git") - set(TBLITE_GIT_TAG "7bde301ead9b71e08f0ecc19390128f7209644d2") # do not change manually! + set(TBLITE_GIT_TAG "0542ce7ae0e323941156949a0620ca260bc0ce7f") # do not change manually! dftbp_config_hybrid_dependency(tblite tblite::tblite "${HYBRID_CONFIG_METHODS}" "QUIET" external/tblite "${exclude}" "${TBLITE_GIT_REPOSITORY}" "${TBLITE_GIT_TAG}") #list(APPEND PKG_CONFIG_REQUIRES tblite) diff --git a/external/dftd4/origin b/external/dftd4/origin index b1faf68231..f572723f5a 160000 --- a/external/dftd4/origin +++ b/external/dftd4/origin @@ -1 +1 @@ -Subproject commit b1faf68231d8b0fd44cf0701e9f27c8092bd7926 +Subproject commit f572723f5a5cb8243ea88b0253e182088311c6f3 diff --git a/external/mctc-lib/origin b/external/mctc-lib/origin index 1f69000902..3d0e921085 160000 --- a/external/mctc-lib/origin +++ b/external/mctc-lib/origin @@ -1 +1 @@ -Subproject commit 1f690009020fb5f196c1dc359056741738416db6 +Subproject commit 3d0e921085eb6ca535dfceec876bc99baf52f05d diff --git a/external/s-dftd3/origin b/external/s-dftd3/origin index 6623834fe0..02dead293e 160000 --- a/external/s-dftd3/origin +++ b/external/s-dftd3/origin @@ -1 +1 @@ -Subproject commit 6623834fe0be9f6ed22f9c0cb1c61ea121753c28 +Subproject commit 02dead293e59408100eb382e97be56e2a03fb317 diff --git a/external/tblite/CMakeLists.txt b/external/tblite/CMakeLists.txt index c19e71a9dd..d76f51361e 100644 --- a/external/tblite/CMakeLists.txt +++ b/external/tblite/CMakeLists.txt @@ -11,5 +11,11 @@ set(WITH_API FALSE) add_subdirectory(${TBLITE_SOURCE_DIR} ${TBLITE_BINARY_DIR}) +target_compile_options( + "tblite-exe" + PRIVATE + "$<$:-fall-intrinsics>" +) + add_library(tblite::tblite INTERFACE IMPORTED GLOBAL) target_link_libraries(tblite::tblite INTERFACE tblite) diff --git a/external/tblite/origin b/external/tblite/origin index 7bde301ead..0542ce7ae0 160000 --- a/external/tblite/origin +++ b/external/tblite/origin @@ -1 +1 @@ -Subproject commit 7bde301ead9b71e08f0ecc19390128f7209644d2 +Subproject commit 0542ce7ae0e323941156949a0620ca260bc0ce7f diff --git a/src/dftbp/extlibs/tblite.F90 b/src/dftbp/extlibs/tblite.F90 index f2dbae9ee0..6e55a48325 100644 --- a/src/dftbp/extlibs/tblite.F90 +++ b/src/dftbp/extlibs/tblite.F90 @@ -41,9 +41,8 @@ module dftbp_extlibs_tblite use mctc_io_symbols, only : symbol_length use tblite_basis_type, only : get_cutoff, basis_type use tblite_context_type, only : context_type - use tblite_coulomb_cache, only : coulomb_cache + use tblite_container, only : container_cache use tblite_cutoff, only : get_lattice_points - use tblite_disp_cache, only : dispersion_cache use tblite_integral_multipole, only : multipole_cgto, multipole_grad_cgto, maxl, msao use tblite_param, only : param_record use tblite_scf_info, only : scf_info, atom_resolved, shell_resolved, orbital_resolved, & @@ -142,10 +141,10 @@ module dftbp_extlibs_tblite type(potential_type) :: pot !> Reuseable data for Coulombic interactions - type(coulomb_cache) :: cache + type(container_cache) :: cache !> Reuseable data for Dispersion interactions - type(dispersion_cache) :: dcache + type(container_cache) :: dcache #:endif !> Parametrization info @@ -170,19 +169,19 @@ module dftbp_extlibs_tblite real(dp), allocatable :: dsedcn(:) !> Repulsion energy - real(dp) :: erep + real(dp), allocatable :: erep(:) !> Halogen bonding energy - real(dp) :: ehal + real(dp), allocatable :: ehal(:) !> Non-self consistent dispersion energy - real(dp) :: edisp + real(dp), allocatable :: edisp(:) !> Self-consistent dispersion energy - real(dp) :: escd + real(dp), allocatable :: escd(:) !> Electrostatic energy - real(dp) :: ees + real(dp), allocatable :: ees(:) !> Contributions to the gradient real(dp), allocatable :: gradient(:, :) @@ -408,6 +407,8 @@ subroutine TTBLite_init(this, input, nAtom, species0, speciesNames, coords0, lat allocate(this%selfenergy(this%calc%bas%nsh), this%dsedcn(this%calc%bas%nsh)) + allocate(this%erep(this%mol%nat), this%ehal(this%mol%nat), this%edisp(this%mol%nat), & + & this%escd(this%mol%nat), this%ees(this%mol%nat)) allocate(this%gradient(3, this%mol%nat)) allocate(this%sp2id(maxval(species0))) @@ -536,27 +537,24 @@ subroutine updateCoords(this, env, neighList, img2CentCell, coords, species0) integer, intent(in) :: species0(:) #:if WITH_TBLITE - real(dp) :: cutoff - real(dp), allocatable :: lattr(:, :) + type(container_cache) :: hcache, rcache this%mol%xyz(:, :) = coords(:, :this%mol%nat) - this%ehal = 0.0_dp - this%erep = 0.0_dp - this%edisp = 0.0_dp + this%ehal(:) = 0.0_dp + this%erep(:) = 0.0_dp + this%edisp(:) = 0.0_dp this%gradient(:, :) = 0.0_dp this%sigma(:, :) = 0.0_dp if (allocated(this%calc%halogen)) then - cutoff = 20.0_dp - call get_lattice_points(this%mol%periodic, this%mol%lattice, cutoff, lattr) - call this%calc%halogen%get_engrad(this%mol, lattr, cutoff, this%ehal, & + call this%calc%halogen%update(this%mol, hcache) + call this%calc%halogen%get_engrad(this%mol, hcache, this%ehal, & & this%gradient, this%sigma) end if if (allocated(this%calc%repulsion)) then - cutoff = 25.0_dp - call get_lattice_points(this%mol%periodic, this%mol%lattice, cutoff, lattr) - call this%calc%repulsion%get_engrad(this%mol, lattr, cutoff, this%erep, & + call this%calc%repulsion%update(this%mol, rcache) + call this%calc%repulsion%get_engrad(this%mol, rcache, this%erep, & & this%gradient, this%sigma) end if @@ -610,7 +608,7 @@ subroutine getEnergies(this, energies) real(dp), intent(out) :: energies(:) #:if WITH_TBLITE - energies(:) = (this%ehal + this%erep + this%edisp + this%escd + this%ees) / size(energies) + energies(:) = this%ehal + this%erep + this%edisp + this%escd + this%ees #:else call notImplementedError #:endif @@ -733,8 +731,8 @@ subroutine updateCharges(this, env, species, neighList, qq, q0, dipAtom, quadAto real(dp), allocatable :: dQAtom(:), dQShell(:, :) call this%pot%reset - this%escd = 0.0_dp - this%ees = 0.0_dp + this%escd(:) = 0.0_dp + this%ees(:) = 0.0_dp allocate(dQAtom(this%mol%nat), dQShell(orb%mShell, this%mol%nat)) call getSummedCharges(species, orb, qq, q0, dQAtom=dQAtom, dQShell=dQShell) From 8adfba7ef4b7c9a3bca418bce0889fa92d99fca9 Mon Sep 17 00:00:00 2001 From: Tammo van der Heide Date: Mon, 16 May 2022 10:21:47 +0200 Subject: [PATCH 07/36] Add T. v. d. Heide to authors --- AUTHORS.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS.rst b/AUTHORS.rst index f034eb84eb..62b645715a 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -39,6 +39,8 @@ contributed to DFTB+ : * Sebastian Ehlert (University of Bonn, Germany) +* Tammo van der Heide (University of Bremen, Germany) + * Jan Hermann (Free University of Berlin, Germany) * Jacek Jakowski (Oak Ridge National Laboratory, USA) From 9c77933eec35d5b344ddbe22c80c8f33ac9616cc Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Tue, 17 May 2022 09:27:17 +0100 Subject: [PATCH 08/36] Minor memory saving in real H propagation Approximately 20% saving in routine memory use (<10% overall as complex H and Sinv still allocated), with possible marginal performance improvement. --- src/dftbp/timedep/timeprop.F90 | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/dftbp/timedep/timeprop.F90 b/src/dftbp/timedep/timeprop.F90 index 5aef582b59..fbfe4dfaf3 100644 --- a/src/dftbp/timedep/timeprop.F90 +++ b/src/dftbp/timedep/timeprop.F90 @@ -2079,16 +2079,13 @@ subroutine propagateRhoRealH(this, rhoOld, rho, H1, Sinv, step) !> Time step in atomic units real(dp), intent(in) :: step - real(dp), allocatable :: T1R(:,:),T2R(:,:) - real(dp), allocatable :: T3R(:,:),T4R(:,:),T5R(:,:) + real(dp), allocatable :: T1R(:,:), T2R(:,:), T3R(:,:),T4R(:,:) integer :: i,j allocate(T1R(this%nOrbs,this%nOrbs)) allocate(T2R(this%nOrbs,this%nOrbs)) allocate(T3R(this%nOrbs,this%nOrbs)) allocate(T4R(this%nOrbs,this%nOrbs)) - allocate(T5R(this%nOrbs,this%nOrbs)) - ! The code below takes into account that Sinv and H1 are real, this is twice as fast as the ! original above (propageteRho) @@ -2097,22 +2094,18 @@ subroutine propagateRhoRealH(this, rhoOld, rho, H1, Sinv, step) T1R(:,:) = real(H1) T2R(:,:) = real(Sinv) call gemm(T3R,T2R,T1R) + T2R(:,:) = T3R ! calculate the first term products for the real and imaginary parts independently T1R(:,:) = real(rho) - T2R(:,:) = aimag(rho) - call gemm(T4R,T3R,T1R) - call gemm(T5R,T3R,T2R) + call gemm(T3R,T2R,T1R) + + T1R(:,:) = aimag(rho) + call gemm(T4R,T2R,T1R) ! build the commutator combining the real and imaginary parts of the previous result - !$omp parallel do private(i,j) - do i=1,this%nOrbs - do j=1,this%nOrbs - rhoOld(i,j) = rhoOld(i,j) + cmplx(0, -step, dp) * (T4R(i,j) + imag * T5R(i,j)) & - + cmplx(0, step, dp) * conjg(T4R(j,i) + imag * T5R(j,i)) - enddo - enddo - !$omp end parallel do + rhoOld(:,:) = rhoOld + cmplx(0, -step, dp) * (T3R + imag * T4R)& + & + cmplx(0, step, dp) * transpose(T3R - imag * T4R) end subroutine propagateRhoRealH From cea2e7b5af590cf42f0025524d2dc66ab9be78fb Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Tue, 17 May 2022 09:42:31 +0100 Subject: [PATCH 09/36] Add workshare suggestion from comment --- src/dftbp/timedep/timeprop.F90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/dftbp/timedep/timeprop.F90 b/src/dftbp/timedep/timeprop.F90 index fbfe4dfaf3..2b8b124144 100644 --- a/src/dftbp/timedep/timeprop.F90 +++ b/src/dftbp/timedep/timeprop.F90 @@ -2104,8 +2104,10 @@ subroutine propagateRhoRealH(this, rhoOld, rho, H1, Sinv, step) call gemm(T4R,T2R,T1R) ! build the commutator combining the real and imaginary parts of the previous result + !$OMP WORKSHARE rhoOld(:,:) = rhoOld + cmplx(0, -step, dp) * (T3R + imag * T4R)& & + cmplx(0, step, dp) * transpose(T3R - imag * T4R) + !$OMP END WORKSHARE end subroutine propagateRhoRealH From 38866b4f9221bce9162ab081e8ba7c1e5f0b0bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Tue, 17 May 2022 21:33:59 +0200 Subject: [PATCH 10/36] Refactor unit system, implement reciprocal unit conversion (#1025) * Refactor unit system, implement reciprocal unit conversion Co-authored-by: Charly Medrano --- app/misc/units/printunits.F90 | 9 +- app/modes/initmodes.F90 | 4 +- app/phonons/initphonons.F90 | 26 +- app/transporttools/parser.F90 | 8 +- app/waveplot/initwaveplot.F90 | 14 +- doc/dftb+/manual/unit_mod.tex | 4 +- src/dftbp/common/constants.F90 | 5 +- src/dftbp/common/unitconversion.F90 | 467 ++++++++++-------- src/dftbp/dftbplus/input/geoopt.F90 | 14 +- src/dftbp/dftbplus/parser.F90 | 218 ++++---- src/dftbp/io/hsdutils2.F90 | 197 ++------ src/dftbp/solvation/solvparser.F90 | 32 +- src/dftbp/type/typegeometryhsd.F90 | 38 +- .../dftb+/timeprop/benzene_laser/dftb_in.hsd | 2 +- 14 files changed, 479 insertions(+), 559 deletions(-) diff --git a/app/misc/units/printunits.F90 b/app/misc/units/printunits.F90 index 454de6a0b6..3447f46839 100644 --- a/app/misc/units/printunits.F90 +++ b/app/misc/units/printunits.F90 @@ -17,8 +17,9 @@ !> Printing out the conversion factors for the different units program printunits - use dftbp_common_unitconversion - use dftbp_common_constants + use dftbp_common_unitconversion, only : lengthUnits, inverseLengthUnits, energyUnits, forceUnits,& + & timeUnits, freqUnits, volumeUnits, chargeUnits, eFieldUnits, bFieldUnits, pressureUnits,& + & velocityUnits, dipoleUnits, massUnits, angularUnits, massDensityUnits implicit none integer :: ii @@ -26,9 +27,9 @@ program printunits write(*,*)"Convert from unit to a.u. by multiplying with" #:for names, units in CONVERSIONS write(*,*) - write(*,"(A)")"${names}$:" + write(*,"(a)")"${names}$:" do ii = 1, size(${units}$) - write(*,"(1X,A20,E24.15)") ${units}$(ii)%name, ${units}$(ii)%convertValue + write(*,"(1x,dt)") ${units}$(ii) end do #:endfor diff --git a/app/modes/initmodes.F90 b/app/modes/initmodes.F90 index c1bf51ecfb..dde64d5fc1 100644 --- a/app/modes/initmodes.F90 +++ b/app/modes/initmodes.F90 @@ -18,7 +18,7 @@ module modes_initmodes use dftbp_io_hsdparser, only : parseHSD, dumpHSD use dftbp_io_hsdutils, only : getChild, getChildValue, getChildren, getSelectedAtomIndices,& & getSelectedIndices, detailedError, detailedWarning - use dftbp_io_hsdutils2, only : convertByMul, setUnprocessed, warnUnprocessedNodes, getNodeName2 + use dftbp_io_hsdutils2, only : convertUnitHsd, setUnprocessed, warnUnprocessedNodes, getNodeName2 use dftbp_io_message, only : error use dftbp_io_xmlutils, only : removeChildNodes use dftbp_type_linkedlist, only : TListCharLc, TListRealR1, TListString, init, destruct, append,& @@ -347,7 +347,7 @@ subroutine getInputMasses(node, geo, masses) call getChildValue(child2, "Atoms", buffer, child=child3, multiple=.true.) call getSelectedAtomIndices(child3, char(buffer), geo%speciesNames, geo%species, pTmpI1) call getChildValue(child2, "MassPerAtom", rTmp, modifier=modifier, child=child) - call convertByMul(char(modifier), massUnits, child, rTmp) + call convertUnitHsd(char(modifier), massUnits, child, rTmp) do jj = 1, size(pTmpI1) iAt = pTmpI1(jj) if (masses(iAt) >= 0.0_dp) then diff --git a/app/phonons/initphonons.F90 b/app/phonons/initphonons.F90 index d74dccbab7..8fa3e62d34 100644 --- a/app/phonons/initphonons.F90 +++ b/app/phonons/initphonons.F90 @@ -316,7 +316,7 @@ subroutine initProgramVariables(env) call getChild(root, "Hessian", child=node, requested=.true.) ! cutoff used to cut out interactions call getChildValue(node, "Cutoff", cutoff, 9.45_dp, modifier=modif, child=value) - call convertByMul(char(modif), lengthUnits, value, cutoff) + call convertUnitHsd(char(modif), lengthUnits, value, cutoff) ! Reading the actual Hessian matrix call getChildValue(node, "Matrix", value, child=child) @@ -571,7 +571,7 @@ subroutine readContacts(pNodeList, contacts, geom, upload) call getChildValue(pNode, "PLShiftTolerance", contactLayerTol, 1e-5_dp, modifier=modif,& & child=field) - call convertByMul(char(modif), lengthUnits, field, contactLayerTol) + call convertUnitHsd(char(modif), lengthUnits, field, contactLayerTol) call getChildValue(pNode, "AtomRange", contacts(ii)%idxrange, child=pTmp) call getContactVectorII(contacts(ii)%idxrange, geom, ii, pTmp, contactLayerTol, & @@ -581,7 +581,7 @@ subroutine readContacts(pNodeList, contacts, geom, upload) ! Contact temperatures. Needed call getChildValue(pNode, "Temperature", contacts(ii)%kbT,& &0.0_dp, modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field, contacts(ii)%kbT) + call convertUnitHsd(char(modif), energyUnits, field, contacts(ii)%kbT) if (upload) then contacts(ii)%potential = 0.d0 @@ -590,7 +590,7 @@ subroutine readContacts(pNodeList, contacts, geom, upload) if (contacts(ii)%wideBand) then call getChildValue(pNode, 'LevelSpacing', contacts(ii)%wideBandDos, & &0.735_dp, modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field,& + call convertUnitHsd(char(modif), energyUnits, field,& &contacts(ii)%wideBandDos) !WideBandApproximation is defined as energy spacing between levels !In the code the inverse value (Density of states) is used @@ -598,7 +598,7 @@ subroutine readContacts(pNodeList, contacts, geom, upload) contacts(ii)%wideBandDos = 1.d0 / contacts(ii)%wideBandDos end if !call getChildValue(pNode, "FermiLevel", contacts(ii)%eFermi,modifier=modif) - !call convertByMul(char(modif), energyUnits, pNode, contacts(ii)%eFermi) + !call convertUnitHsd(char(modif), energyUnits, pNode, contacts(ii)%eFermi) contacts(ii)%eFermi=0.d0 end if @@ -1196,11 +1196,11 @@ subroutine readAnalysis(node, geo, pdos, tundos, transpar, atTemperature) end if call getChildValue(child, "TempRange", TempRange, modifier=modif,& & child=field) - call convertByMul(char(modif), energyUnits, field, TempRange) + call convertUnitHsd(char(modif), energyUnits, field, TempRange) call getChildValue(child, "TempStep", TempStep, modifier=modif,& & child=field) - call convertByMul(char(modif), energyUnits, field, TempStep) + call convertUnitHsd(char(modif), energyUnits, field, TempStep) TempMin = TempRange(1) TempMax = TempRange(2) @@ -1272,7 +1272,7 @@ subroutine readTunAndDos(root, geo, tundos, transpar, temperature) call getChildValue(root, "FreqRange", eRange, eRangeDefault, & & modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field, eRange) + call convertUnitHsd(char(modif), energyUnits, field, eRange) tundos%emin = eRange(1) tundos%emax = eRange(2) @@ -1286,7 +1286,7 @@ subroutine readTunAndDos(root, geo, tundos, transpar, temperature) call getChildValue(root, "FreqStep", tundos%estep, 1.0e-5_dp, & & modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field, tundos%estep) + call convertUnitHsd(char(modif), energyUnits, field, tundos%estep) ! Terminal currents call getChild(root, "TerminalCurrents", pTmp, requested=.false.) @@ -1322,7 +1322,7 @@ subroutine readTunAndDos(root, geo, tundos, transpar, temperature) call getChildValue(root, "BroadeningDelta", tundos%broadeningDelta, & &0.0_dp, modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field, & + call convertUnitHsd(char(modif), energyUnits, field, & &tundos%broadeningDelta) call getChildren(root, "Region", pNodeList) @@ -1431,12 +1431,12 @@ subroutine readDeltaModel(root, tundos) case("deltasquared") call getChildValue(pValue, "Delta", tundos%delta, & &0.0001_dp, modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field, tundos%delta) + call convertUnitHsd(char(modif), energyUnits, field, tundos%delta) tundos%deltaModel=0 case("deltaomega") call getChildValue(pValue, "Delta", tundos%delta, & &0.0001_dp, modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field, tundos%delta) + call convertUnitHsd(char(modif), energyUnits, field, tundos%delta) tundos%deltaModel=1 case("mingo") ! As in Numerical Heat transfer, Part B, 51:333, 2007, Taylor&Francis. @@ -1445,7 +1445,7 @@ subroutine readDeltaModel(root, tundos) ! We set a cutoff frequency of 2000 cm^-1. call getChildValue(pValue, "Wmax", tundos%wmax, & &0.009_dp, modifier=modif, child=field) - call convertByMul(char(modif), energyUnits, field, tundos%delta) + call convertUnitHsd(char(modif), energyUnits, field, tundos%delta) tundos%deltaModel=2 ! If Emax >> Wmax delta becomes negative if (tundos%Emax > tundos%Wmax) then diff --git a/app/transporttools/parser.F90 b/app/transporttools/parser.F90 index 843085d0cb..8f290c76d3 100644 --- a/app/transporttools/parser.F90 +++ b/app/transporttools/parser.F90 @@ -21,7 +21,7 @@ module transporttools_parser use dftbp_io_hsdparser, only : parseHSD, dumpHSD, getNodeHSDName use dftbp_io_hsdutils, only : getChild, getChildren, getChildValue, getSelectedAtomIndices,& & detailedError, detailedWarning - use dftbp_io_hsdutils2, only : convertByMul, setUnprocessed, warnUnprocessedNodes + use dftbp_io_hsdutils2, only : convertUnitHsd, setUnprocessed, warnUnprocessedNodes use dftbp_io_message, only : error, warning use dftbp_math_simplealgebra, only: cross3, determinant33 use dftbp_transport_negfvars, only : TTransPar, ContactInfo @@ -329,7 +329,7 @@ subroutine readContacts(pNodeList, contacts, geom, task, iAtInRegion, nPLs) call getChildValue(pNode, "PLShiftTolerance", contactLayerTol, 1e-5_dp, modifier=modif,& & child=field) - call convertByMul(char(modif), lengthUnits, field, contactLayerTol) + call convertUnitHsd(char(modif), lengthUnits, field, contactLayerTol) if (task .eq. "setupgeometry") then call getChildValue(pNode, "PLsDefined", nPLs(ii)) @@ -345,7 +345,7 @@ subroutine readContacts(pNodeList, contacts, geom, task, iAtInRegion, nPLs) call getChildValue(pNode, "ContactVector", vecBuffer, modifier=modif) if (len(vecBuffer).eq.3) then call asArray(vecBuffer, vec) - call convertByMul(char(modif), lengthUnits, pNode, vec) + call convertUnitHsd(char(modif), lengthUnits, pNode, vec) ! check vector is along x y or z if (count(vec == 0.0_dp) < 2 ) then call error("ContactVector must be along either x, y or z") @@ -552,7 +552,7 @@ subroutine SKTruncations(node, truncationCutOff, skInterMeth) ! Artificially truncate the SK table call getChildValue(node, "SKMaxDistance", truncationCutOff, modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, truncationCutOff) + call convertUnitHsd(char(modifier), lengthUnits, field, truncationCutOff) call getChildValue(node, "HardCutOff", tHardCutOff, .true.) if (tHardCutOff) then diff --git a/app/waveplot/initwaveplot.F90 b/app/waveplot/initwaveplot.F90 index 3756f008a3..d701bcb9d2 100644 --- a/app/waveplot/initwaveplot.F90 +++ b/app/waveplot/initwaveplot.F90 @@ -21,7 +21,7 @@ module waveplot_initwaveplot use dftbp_io_hsdparser, only : parseHSD, dumpHSD use dftbp_io_hsdutils, only : getChildValue, setChildValue, getChild, setChild, getChildren,& & getSelectedIndices, detailedError, detailedWarning - use dftbp_io_hsdutils2, only : getModifierIndex, readHSDAsXML, warnUnprocessedNodes + use dftbp_io_hsdutils2, only : convertUnitHsd, readHSDAsXML, warnUnprocessedNodes use dftbp_io_message, only : warning, error use dftbp_io_xmlutils, only : removeChildNodes use dftbp_type_linkedlist, only : TListIntR1, TListReal, init, destruct, len, append, asArray @@ -523,7 +523,7 @@ subroutine readOptions(this, node, nLevel, nKPoint, nSpin, nCached, tShiftGrid) & "the current files could therefore be different. "] !> Auxiliary variables - integer :: ind, ii, iLevel, iKPoint, iSpin, iAtom, iSpecies + integer :: ii, iLevel, iKPoint, iSpin, iAtom, iSpecies real(dp) :: tmpvec(3), minvals(3), maxvals(3) real(dp), allocatable :: mcutoffs(:) real(dp) :: minEdge @@ -673,18 +673,12 @@ subroutine readOptions(this, node, nLevel, nKPoint, nSpin, nCached, tShiftGrid) case ("origin","box") !! Those nodes are part of an explicit specification -> explitic specif call getChildValue(subnode, "Box", this%opt%boxVecs, modifier=modifier, child=field) + call convertUnitHsd(char(modifier), lengthUnits, field, this%opt%boxVecs) if (abs(determinant(this%opt%boxVecs)) < 1e-08_dp) then call detailedError(field, "Vectors are linearly dependent") end if - if (len(modifier) > 0) then - ind = getModifierIndex(char(modifier), lengthUnits, field) - this%opt%boxVecs(:,:) = this%opt%boxVecs(:,:) * lengthUnits(ind)%convertValue - end if call getChildValue(subnode, "Origin", this%opt%origin, modifier=modifier, child=field) - if (len(modifier) > 0) then - ind = getModifierIndex(char(modifier), lengthUnits, field) - this%opt%origin(:) = this%opt%origin(:) * lengthUnits(ind)%convertValue - end if + call convertUnitHsd(char(modifier), lengthUnits, field, this%opt%origin) case default !! Object with unknown name passed diff --git a/doc/dftb+/manual/unit_mod.tex b/doc/dftb+/manual/unit_mod.tex index 980dc6dde8..1048efe69d 100644 --- a/doc/dftb+/manual/unit_mod.tex +++ b/doc/dftb+/manual/unit_mod.tex @@ -11,7 +11,8 @@ \chapter{Unit modifiers} below.\footnote{The conversion factors listed here were calculated with double precision on i686-linux architecture. Depending on your architecture, the values used there may deviate slightly.} (The modifiers are case -insensitive). +insensitive). The symbol $\left[x^{-1}\right]$ indicates conversions, where +not the value, but the reciprocal of the quantity is used in the conversion. {\AA}ngstr{\"o}ms may be listed as any of ``a'', ``aa'' or ``angstrom'' in the unit modifiers. @@ -50,6 +51,7 @@ \chapter{Unit modifiers} \is{cm\^{}-1} & 0.455633507361033E-05 \\ \is{Joule}, \is{J} & 0.229371256497309E+18\\ \is{Hartree}, \is{Ha}, \is{au} & 1.000000000000000E+00 \\ + \is{nm} $\left[x^{-1}\right]$ & 0.45563355817434E+02 \end{unittable} \begin{unittable}{Force} diff --git a/src/dftbp/common/constants.F90 b/src/dftbp/common/constants.F90 index ea333652e4..dd5b4c78f9 100644 --- a/src/dftbp/common/constants.F90 +++ b/src/dftbp/common/constants.F90 @@ -14,7 +14,7 @@ module dftbp_common_constants public :: pi, Bohr__AA, AA__Bohr, Hartree__eV, eV__Hartree, Boltzmann, au__kg, kg__au, e__amu public :: amu__au, au__fs, fs__au, alpha_fs, c, au__Coulomb, Coulomb__au, Hartree__J, J__Hartree public :: hbar, gfac, mu_B, kcal_mol__eV, kcal_mol__Hartree, Hartree__kcal_mol, Rydberg__m - public :: Hartree__cm, Debye__au, au__Debye, pascal__au, au__pascal, V_m__au, au__V_m + public :: Hartree__cm, Debye__au, au__Debye, pascal__au, au__pascal, V_m__au, au__V_m, nm__Bohr public :: avogadConst, Hartree__kJ_mol, Bohr__nm, au__ps, goldenMeanP1, maxL, nShellName public :: shellNames, spinName, quaternionName, imag, elementSymbol public :: symbolToNumber, cExchange @@ -134,6 +134,9 @@ module dftbp_common_constants !> bohr to nm real(dp), parameter :: Bohr__nm = Bohr__AA / 10.0_dp + !> nm to bohr + real(dp), parameter :: nm__Bohr = 1.0_dp / Bohr__nm + !> a.u. to ps real(dp), parameter :: au__ps = au__fs / 1000.0_dp diff --git a/src/dftbp/common/unitconversion.F90 b/src/dftbp/common/unitconversion.F90 index 45649d9b6a..c7b117c617 100644 --- a/src/dftbp/common/unitconversion.F90 +++ b/src/dftbp/common/unitconversion.F90 @@ -5,293 +5,360 @@ ! See the LICENSE file for terms of usage and distribution. ! !--------------------------------------------------------------------------------------------------! +#:include "common.fypp" + +#:set UNIT_CONVERTER_RANKS = [0, 1, 2] + !> Contains names of various units and their conversion factors to the corresponding unit used !> internal in the code (atomic units). module dftbp_common_unitconversion - use dftbp_common_accuracy, only : dp, mc, lc + use dftbp_common_accuracy, only : dp use dftbp_common_constants, only : AA__Bohr, Bohr__AA, J__Hartree, fs__au, c, Coulomb__au,& & V_m__au, pascal__au, kg__au, pi, Hartree__cm, eV__Hartree, au__fs, Debye__au, hbar,& - & amu__au, Boltzmann, kcal_mol__Hartree + & amu__au, Boltzmann, kcal_mol__Hartree, nm__Bohr + use dftbp_io_charmanip, only : tolower implicit none private - public :: unit + public :: TUnit public :: lengthUnits, inverseLengthUnits, energyUnits, forceUnits, timeUnits, freqUnits public :: volumeUnits, chargeUnits, EFieldUnits, BFieldUnits, pressureUnits, velocityUnits public :: dipoleUnits, massUnits, angularUnits, massDensityUnits + public :: statusCodes, convertUnit + + + !> Internal parameter for specifying the maximum unit name length + integer, parameter :: maxUnitNameLen = 20 + + + !> Possible status codes emitted by public routines of this module + type :: TStatusCodesEnum + + !> Everything OK + integer :: ok = 0 + + !> Unit name could not found in the unit array + integer :: unitNotFound = 1 + + end type TStatusCodesEnum + + !> Status code enum instance + type(TStatusCodesEnum), parameter :: statusCodes = TStatusCodesEnum() !> Contains name of a unit and its conversion factor - type unit + type TUnit + private - !> label for conversion factor - character(20) :: name + !> Name of the conversion factor + character(maxUnitNameLen) :: name - !> its value - real(dp) :: convertValue - end type unit + !> Conversion factor + real(dp) :: conversionFact = 1.0_dp + !> Whether the value should be inverted before multiplied with conversion factor + logical :: invertValue = .false. - !> Number of length units - integer, parameter :: nLengthUnit = 9 + contains + procedure :: writeFormatted => TUnit_writeFormatted + generic :: write(formatted) => writeFormatted - !> Length units - type(unit), parameter :: lengthUnits(nLengthUnit) = [& - & unit("angstrom ", AA__Bohr),& - & unit("aa ", AA__Bohr),& - & unit("a ", AA__Bohr),& - & unit("meter ", 1.0e10_dp * AA__Bohr),& - & unit("m ", 1.0e10_dp * AA__Bohr),& - & unit("bohr ", 1.0_dp),& - & unit("pm ", 1.0e-2_dp * AA__Bohr),& - & unit("picometer ", 1.0e-2_dp * AA__Bohr),& - & unit("au ", 1.0_dp)& - & ] + end type TUnit - !> Number of length units - integer, parameter :: nInverseLengthUnit = 9 + interface convertUnit + #:for RANK in UNIT_CONVERTER_RANKS + module procedure convertUnitR${RANK}$ + #:endfor + end interface convertUnit !> Length units - type(unit), parameter :: inverseLengthUnits(nInverseLengthUnit) = [& - & unit("1/angstrom ", Bohr__AA),& - & unit("1/aa ", Bohr__AA),& - & unit("1/a ", Bohr__AA),& - & unit("1/meter ", 1.0e-10_dp * Bohr__AA),& - & unit("1/m ", 1.0e-10_dp * Bohr__AA),& - & unit("1/bohr ", 1.0_dp),& - & unit("1/pm ", 1.0e+2_dp * Bohr__AA),& - & unit("1/picometer ", 1.0e+2_dp * Bohr__AA),& - & unit("1/au ", 1.0_dp)& + type(TUnit), parameter :: lengthUnits(*) = [& + & TUnit("angstrom ", AA__Bohr),& + & TUnit("aa ", AA__Bohr),& + & TUnit("a ", AA__Bohr),& + & TUnit("meter ", 1.0e10_dp * AA__Bohr),& + & TUnit("m ", 1.0e10_dp * AA__Bohr),& + & TUnit("bohr ", 1.0_dp),& + & TUnit("pm ", 1.0e-2_dp * AA__Bohr),& + & TUnit("picometer ", 1.0e-2_dp * AA__Bohr),& + & TUnit("au ", 1.0_dp)& & ] - !> Number of energy units - integer, parameter :: nEnergyUnit = 13 + !> Inverse length units + type(TUnit), parameter :: inverseLengthUnits(*) = [& + & TUnit("1/angstrom ", Bohr__AA),& + & TUnit("1/aa ", Bohr__AA),& + & TUnit("1/a ", Bohr__AA),& + & TUnit("1/meter ", 1.0e-10_dp * Bohr__AA),& + & TUnit("1/m ", 1.0e-10_dp * Bohr__AA),& + & TUnit("1/bohr ", 1.0_dp),& + & TUnit("1/pm ", 1.0e+2_dp * Bohr__AA),& + & TUnit("1/picometer ", 1.0e+2_dp * Bohr__AA),& + & TUnit("1/au ", 1.0_dp)& + & ] !> Energy units - type(unit), parameter :: energyUnits(nEnergyUnit) = [& - & unit("rydberg ", 0.5_dp),& - & unit("ry ", 0.5_dp),& - & unit("electronvolt ", eV__Hartree),& - & unit("ev ", eV__Hartree),& - & unit("kcal/mol ", kcal_mol__Hartree),& - & unit("kelvin ", Boltzmann),& - & unit("k ", Boltzmann),& - & unit("cm^-1 ", 1.0_dp/Hartree__cm),& - & unit("hartree ", 1.0_dp),& - & unit("ha ", 1.0_dp),& - & unit("joule ", J__Hartree),& - & unit("j ", J__Hartree),& - & unit("au ", 1.0_dp)& + type(TUnit), parameter :: energyUnits(*) = [& + & TUnit("rydberg ", 0.5_dp),& + & TUnit("ry ", 0.5_dp),& + & TUnit("electronvolt ", eV__Hartree),& + & TUnit("ev ", eV__Hartree),& + & TUnit("kcal/mol ", kcal_mol__Hartree),& + & TUnit("kelvin ", Boltzmann),& + & TUnit("k ", Boltzmann),& + & TUnit("cm^-1 ", 1.0_dp/Hartree__cm),& + & TUnit("hartree ", 1.0_dp),& + & TUnit("ha ", 1.0_dp),& + & TUnit("joule ", J__Hartree),& + & TUnit("j ", J__Hartree),& + & TUnit("au ", 1.0_dp),& + & TUnit("nm ", 2.0_dp * pi * c / nm__Bohr, invertValue=.true.)& & ] - !> Number of force units - integer, parameter :: nForceUnit = 8 + !> Force units + type(TUnit), parameter :: forceUnits(*) = [& + & TUnit("ev/angstrom ", eV__Hartree / AA__Bohr),& + & TUnit("ev/aa ", eV__Hartree / AA__Bohr),& + & TUnit("ev/a ", eV__Hartree / AA__Bohr),& + & TUnit("ha/bohr ", 1.0_dp),& + & TUnit("hartree/bohr ", 1.0_dp),& + & TUnit("j/m ", J__Hartree / (1.0e10_dp * AA__Bohr)),& + & TUnit("joule/m ", J__Hartree / (1.0e10_dp * AA__Bohr)),& + & TUnit("au ", 1.0_dp)& + & ] - !> Force units - type(unit), parameter :: forceUnits(nForceUnit) = [& - & unit("ev/angstrom ", eV__Hartree / AA__Bohr),& - & unit("ev/aa ", eV__Hartree / AA__Bohr),& - & unit("ev/a ", eV__Hartree / AA__Bohr),& - & unit("ha/bohr ", 1.0_dp),& - & unit("hartree/bohr ", 1.0_dp),& - & unit("j/m ", J__Hartree / (1.0e10_dp * AA__Bohr)),& - & unit("joule/m ", J__Hartree / (1.0e10_dp * AA__Bohr)),& - & unit("au ", 1.0_dp)& + !> Time units + type(TUnit), parameter :: timeUnits(*) = [& + & TUnit("femtosecond ", fs__au),& + & TUnit("fs ", fs__au),& + & TUnit("picosecond ", 1e3_dp * fs__au),& + & TUnit("ps ", 1e3_dp * fs__au),& + & TUnit("second ", 1e15_dp * fs__au),& + & TUnit("s ", 1e15_dp * fs__au),& + & TUnit("au ", 1.0_dp)& & ] - !> Number of time units - integer, parameter :: nTimeUnit = 7 + !> Frequency units + type(TUnit), parameter :: freqUnits(*) = [& + & TUnit("au ", 1.0_dp),& + & TUnit("hz ", 1e-15_dp * au__fs),& + & TUnit("thz ", 1e-3_dp * au__fs),& + & TUnit("cm^-1 ", 1e-8_dp * Bohr__AA * c),& + & TUnit("ev ", eV__Hartree) & + & ] - !> Time units - type(unit), parameter :: timeUnits(nTimeUnit) = [& - & unit("femtosecond ", fs__au),& - & unit("fs ", fs__au),& - & unit("picosecond ", 1e3_dp * fs__au),& - & unit("ps ", 1e3_dp * fs__au),& - & unit("second ", 1e15_dp * fs__au),& - & unit("s ", 1e15_dp * fs__au),& - & unit("au ", 1.0_dp)& + !> Volume units + type(TUnit), parameter :: volumeUnits(*) = [& + & TUnit("angstrom^3 ", AA__Bohr**3),& + & TUnit("aa^3 ", AA__Bohr**3),& + & TUnit("a^3 ", AA__Bohr**3),& + & TUnit("meter^3 ", (1.0e10_dp * AA__Bohr)**3),& + & TUnit("m^3 ", (1.0e10_dp * AA__Bohr)**3),& + & TUnit("picometer^3 ", (1.0e-2_dp * AA__Bohr)**3),& + & TUnit("pm^3 ", (1.0e-2_dp * AA__Bohr)**3),& + & TUnit("bohr^3 ", 1.0_dp),& + & TUnit("au ", 1.0_dp)& & ] - !> Number of frequency units - integer, parameter :: nFreqUnit = 5 + !> Charge units + type(TUnit), parameter :: chargeUnits(*) = [& + & TUnit("coulomb ", Coulomb__au),& + & TUnit("c ", Coulomb__au),& + & TUnit("e ", 1.0_dp),& + & TUnit("au ", 1.0_dp)& + & ] - !> Frequency units - type(unit), parameter :: freqUnits(nFreqUnit) = [& - & unit("au ", 1.0_dp),& - & unit("hz ", 1e-15_dp * au__fs),& - & unit("thz ", 1e-3_dp * au__fs),& - & unit("cm^-1 ", 1e-8_dp * Bohr__AA * c),& - & unit("ev ", eV__Hartree ) & + !> Electric field units + type(TUnit), parameter :: EFieldUnits(*) = [& + & TUnit("v/m ", V_m__au),& + & TUnit("v/a ", 1e10_dp * V_m__au),& + & TUnit("v/aa ", 1e10_dp * V_m__au),& + & TUnit("v/angstrom ", 1e10_dp * V_m__au),& + & TUnit("au ", 1.0_dp)& + & ] + + + !> Magnetic field units (Atomic "Gaussian" CGS unit system!) + type(TUnit), parameter :: BFieldUnits(*) = [& + & TUnit("t ", 1.0E+24_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& + & TUnit("tesla ", 1.0E+24_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& + & TUnit("gauss ", 1.0E+20_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& + & TUnit("g ", 1.0E+20_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& + & TUnit("au ", 1.0_dp)& & ] - !> Number of volume units - integer, parameter :: nVolumeUnit = 9 + !> Pressure units + type(TUnit), parameter :: pressureUnits(*) = [& + & TUnit("pa ", pascal__au),& + & TUnit("au ", 1.0_dp)& + & ] - !> Volume units - type(unit), parameter :: volumeUnits(nVolumeUnit) = [& - & unit("angstrom^3 ", AA__Bohr**3),& - & unit("aa^3 ", AA__Bohr**3),& - & unit("a^3 ", AA__Bohr**3),& - & unit("meter^3 ", (1.0e10_dp * AA__Bohr)**3),& - & unit("m^3 ", (1.0e10_dp * AA__Bohr)**3),& - & unit("picometer^3 ", (1.0e-2_dp * AA__Bohr)**3),& - & unit("pm^3 ", (1.0e-2_dp * AA__Bohr)**3),& - & unit("bohr^3 ", 1.0_dp),& - & unit("au ", 1.0_dp)& + !> Velocity units + type(TUnit), parameter :: velocityUnits(*) = [& + & TUnit("au ", 1.0_dp),& + & TUnit("m/s ", 1e10_dp * AA__Bohr / (1e15_dp * fs__au)),& + & TUnit("pm/fs ", 1e-2_dp * AA__Bohr / fs__au),& + & TUnit("a/ps ", AA__Bohr / (1e3_dp * fs__au)),& + & TUnit("aa/ps ", AA__Bohr / (1e3_dp * fs__au)),& + & TUnit("angstrom/ps ", AA__Bohr / (1e3_dp * fs__au))& & ] - !> Number of charge units - integer, parameter :: nChargeUnit = 4 + !> Dipole units + type(TUnit), parameter :: dipoleUnits(*) = [& + & TUnit("au ", 1.0_dp),& + & TUnit("debye ", Debye__au),& + & TUnit("cm ", Coulomb__au * 1.0e10_dp * AA__Bohr),& + & TUnit("coulombmeter ", Coulomb__au * 1.0e10_dp * AA__Bohr)& + & ] - !> Volume units - type(unit), parameter :: chargeUnits(nChargeUnit) = [& - & unit("coulomb ", Coulomb__au),& - & unit("c ", Coulomb__au),& - & unit("e ", 1.0_dp),& - & unit("au ", 1.0_dp)& + !> Mass units + type(TUnit), parameter :: massUnits(*) = [& + & TUnit("au ", 1.0_dp),& + & TUnit("amu ", amu__au),& + & TUnit("da ", amu__au),& + & TUnit("dalton ", amu__au),& + & TUnit("kg ", kg__au),& + & TUnit("g ", 1.0e+3_dp * kg__au)& & ] - !> Number of electric field units - integer, parameter :: nEFieldUnit = 5 + !> Angular units + type(TUnit), parameter :: angularUnits(*) = [& + & TUnit("degrees ", pi / 180.0_dp),& + & TUnit("deg ", pi / 180.0_dp),& + & TUnit("radian ", 1.0_dp),& + & TUnit("rad ", 1.0_dp),& + & TUnit("turns ", 2.0_dp * pi),& + & TUnit("gradians ", pi / 200.0_dp)& + & ] - !> Electric field units - type(unit), parameter :: EFieldUnits(nEFieldUnit) = [& - & unit("v/m ", V_m__au),& - & unit("v/a ", 1e10_dp * V_m__au),& - & unit("v/aa ", 1e10_dp * V_m__au),& - & unit("v/angstrom ", 1e10_dp * V_m__au),& - & unit("au ", 1.0_dp)& - & ] + type(TUnit), parameter :: massDensityUnits(*) = [& + & TUnit("kg/l ", 1.0e+3_dp * kg__au / (1.0e10_dp * AA__Bohr)**3),& + & TUnit("g/m^3 ", 1.0e+3_dp * kg__au / (1.0e10_dp * AA__Bohr)**3),& + & TUnit("g/meter^3 ", 1.0e+3_dp * kg__au / (1.0e10_dp * AA__Bohr)**3),& + & TUnit("g/l ", kg__au / (1.0e10_dp * AA__Bohr)**3),& + & TUnit("kg/m^3 ", kg__au / (1.0e10_dp * AA__Bohr)**3),& + & TUnit("kg/meter^3 ", kg__au / (1.0e10_dp * AA__Bohr)**3),& + & TUnit("amu/aa^3 ", amu__au / AA__Bohr**3),& + & TUnit("amu/angstrom^3 ", amu__au / AA__Bohr**3),& + & TUnit("amu/a^3 ", amu__au / AA__Bohr**3),& + & TUnit("amu/pm^3 ", amu__au/(1.0e-2_dp * AA__Bohr)**3),& + & TUnit("amu/picometer^3 ", amu__au/(1.0e-2_dp * AA__Bohr)**3),& + & TUnit("da/aa^3 ", amu__au / AA__Bohr**3),& + & TUnit("da/angstrom^3 ", amu__au / AA__Bohr**3),& + & TUnit("da/a^3 ", amu__au / AA__Bohr**3),& + & TUnit("da/pm^3 ", amu__au/(1.0e-2_dp * AA__Bohr)**3),& + & TUnit("da/picometer^3 ", amu__au/(1.0e-2_dp * AA__Bohr)**3),& + & TUnit("dalton/aa^3 ", amu__au / AA__Bohr**3),& + & TUnit("dalton/angstrom^3 ", amu__au / AA__Bohr**3),& + & TUnit("dalton/a^3 ", amu__au / AA__Bohr**3),& + & TUnit("dalton/pm^3 ", amu__au/(1.0e-2_dp * AA__Bohr)**3),& + & TUnit("dalton/picometer^3 ", amu__au/(1.0e-2_dp * AA__Bohr)**3),& + & TUnit("au ", 1.0_dp)] - !> Number of magnetic field units - integer, parameter :: nBFieldUnit = 5 +contains - !> Magnetic field units (Atomic "Gaussian" CGS unit system!) - type(unit), parameter :: BFieldUnits(nBFieldUnit) = [& - & unit("t ", 1.0E+24_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& - & unit("tesla ", 1.0E+24_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& - & unit("gauss ", 1.0E+20_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& - & unit("g ", 1.0E+20_dp*c/(hbar*Coulomb__au*AA__Bohr**2)),& - & unit("au ", 1.0_dp)& - & ] + !> User defined formatted output routine for the unit conversions + subroutine TUnit_writeFormatted(this, unit, iotype, vlist, iostat, iomsg) + !> Instance + class(TUnit), intent(in) :: this - !> Number of pressure units - integer, parameter :: nPressureUnit = 2 + !> Unit to write to + integer, intent(in) :: unit + !> IO type + character(*), intent(in) :: iotype - !> Pressure units - type(unit), parameter :: pressureUnits(nPressureUnit) = [& - & unit("pa ", pascal__au),& - & unit("au ", 1.0_dp)& - & ] + !> Output parameters (will be ignored) + integer, intent(in) :: vlist(:) + !> I/O status + integer, intent(out) :: iostat - !> Number of velocity units - integer, parameter :: nVelocityUnit = 6 + !> Eventual error message + character(*), intent(inout) :: iomsg + if (this%invertValue) then + write(unit,"(a20, a, e24.14, a)") this%name, ':', this%conversionFact, " / x" + else + write(unit,"(a20, a, e24.14, a)") this%name, ':', this%conversionFact, " * x" + end if + iostat = 0 - !> Velocity units - type(unit), parameter :: velocityUnits(nVelocityUnit) = [& - & unit("au ", 1.0_dp),& - & unit("m/s ", 1e10_dp * AA__Bohr / (1e15_dp * fs__au) ),& - & unit("pm/fs ", 1e-2_dp * AA__Bohr / fs__au),& - & unit("a/ps ", AA__Bohr / (1e3_dp * fs__au) ),& - & unit("aa/ps ", AA__Bohr / (1e3_dp * fs__au) ),& - & unit("angstrom/ps ", AA__Bohr / (1e3_dp * fs__au) )& - & ] + end subroutine TUnit_writeFormatted - !> Number of dipole units - integer, parameter :: nDipoleUnit = 4 +#:for RANK in UNIT_CONVERTER_RANKS + !> Applies unit conversion to a given value + subroutine convertUnitR${RANK}$(units, unitName, val, status) - !> Dipole units - type(unit), parameter :: dipoleUnits(nDipoleUnit) = [& - & unit("au ", 1.0_dp),& - & unit("debye ", Debye__au ),& - & unit("cm ", Coulomb__au*1.0e10_dp*AA__Bohr ),& - & unit("coulombmeter ", Coulomb__au*1.0e10_dp*AA__Bohr )& - & ] + !> Array of possible units + type(TUnit), intent(in) :: units(:) + !> Name of the unit from which the value should be converted + character(*), intent(in) :: unitName - !> Number of mass units - integer, parameter :: nMassUnit = 6 + !> Original value on entry, converted value on return + real(dp), intent(inout) :: val${FORTRAN_ARG_DIM_SUFFIX(RANK)}$ + !> Status (statusCodes%OK or statusCodes%unitNotFound) + integer, intent(out) :: status - !> Mass units - type(unit), parameter :: MassUnits(nMassUnit) = [& - & unit("au ", 1.0_dp),& - & unit("amu ", amu__au ),& - & unit("da ", amu__au ),& - & unit("dalton ", amu__au ),& - & unit("kg ", kg__au ),& - & unit("g ", 1.0e+3_dp*kg__au )& - & ] + integer :: ind + status = statusCodes%OK + ind = getUnitIndex_(units, unitName) + if (ind == 0) then + status = statusCodes%unitNotFound + return + end if - !> Number of angular units - integer, parameter :: nAngularUnit = 6 + if (units(ind)%invertValue) then + val = units(ind)%conversionFact / val + else + val = units(ind)%conversionFact * val + end if + end subroutine convertUnitR${RANK}$ - !> angular units - type(unit), parameter :: angularUnits(nAngularUnit) = [& - & unit("degrees ", pi / 180.0_dp ),& - & unit("deg ", pi / 180.0_dp ),& - & unit("radian ", 1.0_dp ),& - & unit("rad ", 1.0_dp ),& - & unit("turns ", 2.0_dp * pi ),& - & unit("gradians ", pi / 200.0_dp )& - & ] +#:endfor + + + !> Returns the index of the unit with the given name or zero if not found. + function getUnitIndex_(units, unitName) result(ind) + type(TUnit), intent(in) :: units(:) + character(*), intent(in) :: unitName + integer :: ind + + character(maxUnitNameLen) :: unitNameLower + unitNameLower = tolower(unitName) + do ind = 1, size(units) + if (units(ind)%name == unitNameLower) return + end do + ind = 0 - !> Number of mass density units - integer, parameter :: nMassDensityUnit = 22 - - - type(unit), parameter :: massDensityUnits(nMassDensityUnit) = [& - & unit("kg/l ", 1.0e+3_dp*kg__au/(1.0e10_dp*AA__Bohr)**3),& - & unit("g/m^3 ", 1.0e+3_dp*kg__au/(1.0e10_dp*AA__Bohr)**3),& - & unit("g/meter^3 ", 1.0e+3_dp*kg__au/(1.0e10_dp*AA__Bohr)**3),& - & unit("g/l ", kg__au/(1.0e10_dp*AA__Bohr)**3),& - & unit("kg/m^3 ", kg__au/(1.0e10_dp*AA__Bohr)**3),& - & unit("kg/meter^3 ", kg__au/(1.0e10_dp*AA__Bohr)**3),& - & unit("amu/aa^3 ", amu__au/AA__Bohr**3),& - & unit("amu/angstrom^3 ", amu__au/AA__Bohr**3),& - & unit("amu/a^3 ", amu__au/AA__Bohr**3),& - & unit("amu/pm^3 ", amu__au/(1.0e-2_dp*AA__Bohr)**3),& - & unit("amu/picometer^3 ", amu__au/(1.0e-2_dp*AA__Bohr)**3),& - & unit("da/aa^3 ", amu__au/AA__Bohr**3),& - & unit("da/angstrom^3 ", amu__au/AA__Bohr**3),& - & unit("da/a^3 ", amu__au/AA__Bohr**3),& - & unit("da/pm^3 ", amu__au/(1.0e-2_dp*AA__Bohr)**3),& - & unit("da/picometer^3 ", amu__au/(1.0e-2_dp*AA__Bohr)**3),& - & unit("dalton/aa^3 ", amu__au/AA__Bohr**3),& - & unit("dalton/angstrom^3 ", amu__au/AA__Bohr**3),& - & unit("dalton/a^3 ", amu__au/AA__Bohr**3),& - & unit("dalton/pm^3 ", amu__au/(1.0e-2_dp*AA__Bohr)**3),& - & unit("dalton/picometer^3 ", amu__au/(1.0e-2_dp*AA__Bohr)**3),& - & unit("au ", 1.0_dp)] + end function getUnitIndex_ end module dftbp_common_unitconversion diff --git a/src/dftbp/dftbplus/input/geoopt.F90 b/src/dftbp/dftbplus/input/geoopt.F90 index d028225bc1..4118b1160d 100644 --- a/src/dftbp/dftbplus/input/geoopt.F90 +++ b/src/dftbp/dftbplus/input/geoopt.F90 @@ -16,7 +16,7 @@ module dftbp_dftbplus_input_geoopt use dftbp_io_charmanip, only : unquote use dftbp_io_hsdutils, only : getChild, getChildValue, setChild, detailedError, & & detailedWarning, getSelectedAtomIndices - use dftbp_io_hsdutils2, only : convertByMul + use dftbp_io_hsdutils2, only : convertUnitHsd use dftbp_type_typegeometry, only : TGeometry implicit none @@ -165,20 +165,20 @@ subroutine readOptTolerance(node, input) type(string) :: modifier call getChildValue(node, "Energy", input%energy, huge(1.0_dp), modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, input%energy) + call convertUnitHsd(char(modifier), energyUnits, field, input%energy) call getChildValue(node, "GradNorm", input%gradNorm, huge(1.0_dp), modifier=modifier,& & child=field) - call convertByMul(char(modifier), forceUnits, field, input%gradNorm) + call convertUnitHsd(char(modifier), forceUnits, field, input%gradNorm) call getChildValue(node, "GradElem", input%gradElem, 1.0e-4_dp, modifier=modifier, child=field) - call convertByMul(char(modifier), forceUnits, field, input%gradElem) + call convertUnitHsd(char(modifier), forceUnits, field, input%gradElem) call getChildValue(node, "DispNorm", input%dispNorm, huge(1.0_dp), modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, input%dispNorm) + call convertUnitHsd(char(modifier), lengthUnits, field, input%dispNorm) call getChildValue(node, "DispElem", input%dispElem, huge(1.0_dp), modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, input%dispElem) + call convertUnitHsd(char(modifier), lengthUnits, field, input%dispElem) end subroutine readOptTolerance @@ -201,7 +201,7 @@ subroutine readFireInput(node, input) call getChildValue(node, "fDec", input%f_dec, 0.5_dp) call getChildValue(node, "fAlpha", input%f_alpha, 0.99_dp) call getChildValue(node, "StepSize", input%dt_max, 1.0_dp, modifier=modifier, child=field) - call convertByMul(char(modifier), timeUnits, field, input%dt_max) + call convertUnitHsd(char(modifier), timeUnits, field, input%dt_max) end subroutine readFireInput diff --git a/src/dftbp/dftbplus/parser.F90 b/src/dftbp/dftbplus/parser.F90 index 7d84187e08..1a40899c07 100644 --- a/src/dftbp/dftbplus/parser.F90 +++ b/src/dftbp/dftbplus/parser.F90 @@ -53,7 +53,7 @@ module dftbp_dftbplus_parser use dftbp_io_hsdparser, only : getNodeHSdName, parseHsd use dftbp_io_hsdutils, only : detailedError, detailedWarning, getChild, getChildValue,& & getChildren, getSelectedAtomIndices, setChild, setChildValue - use dftbp_io_hsdutils2, only : convertByMul, getNodeName2, setUnprocessed, splitModifier + use dftbp_io_hsdutils2, only : convertUnitHsd, getNodeName2, setUnprocessed, splitModifier use dftbp_io_message, only : error, warning use dftbp_io_xmlutils, only : removeChildNodes use dftbp_math_lapackroutines, only : matinv @@ -541,7 +541,7 @@ subroutine readDriver(node, parent, geom, ctrl) ctrl%iGeoOpt = geoOptTypes%fire call commonGeoOptions(node, ctrl, geom, atomsRange, .false.) call getChildValue(node, "TimeStep", ctrl%deltaT, 1.0_dp, modifier=modifier, child=field) - call convertByMul(char(modifier), timeUnits, field, ctrl%deltaT) + call convertUnitHsd(char(modifier), timeUnits, field, ctrl%deltaT) case("secondderivatives") ! currently only numerical derivatives of forces is implemented @@ -582,7 +582,7 @@ subroutine readDriver(node, parent, geom, ctrl) call getChildValue(node, "Delta", ctrl%deriv2ndDelta, 1.0E-4_dp, & & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, ctrl%deriv2ndDelta) + call convertUnitHsd(char(modifier), lengthUnits, field, ctrl%deriv2ndDelta) case ("velocityverlet") ! molecular dynamics @@ -611,7 +611,7 @@ subroutine readDriver(node, parent, geom, ctrl) call getChildValue(node, "TimeStep", ctrl%deltaT, modifier=modifier, & &child=field) - call convertByMul(char(modifier), timeUnits, field, ctrl%deltaT) + call convertUnitHsd(char(modifier), timeUnits, field, ctrl%deltaT) call getChildValue(node, "Thermostat", value1, child=child) call getNodeName(value1, buffer2) @@ -648,7 +648,7 @@ subroutine readDriver(node, parent, geom, ctrl) if (associated(child2)) then call getChildValue(child2, "", ctrl%wvScale, & & modifier=modifier, child=child3) - call convertByMul(char(modifier), timeUnits, child3, & + call convertUnitHsd(char(modifier), timeUnits, child3, & & ctrl%wvScale) ctrl%wvScale = ctrl%deltaT / ctrl%wvScale else @@ -673,7 +673,7 @@ subroutine readDriver(node, parent, geom, ctrl) end select call getChildValue(value1, "CouplingStrength", ctrl%wvScale, modifier=modifier, child=field) - call convertByMul(char(modifier), freqUnits, field, ctrl%wvScale) + call convertUnitHsd(char(modifier), freqUnits, field, ctrl%wvScale) call getChildValue(value1, "ChainLength", ctrl%nh_npart, 3) call getChildValue(value1, "Order", ctrl%nh_nys, 3) @@ -760,7 +760,7 @@ subroutine readDriver(node, parent, geom, ctrl) end if call getChildValue(child, "Pressure", ctrl%pressure, & & modifier=modifier, child=child2) - call convertByMul(char(modifier), pressureUnits, child2, & + call convertUnitHsd(char(modifier), pressureUnits, child2, & & ctrl%pressure) call getChild(child, "Coupling", child=child2, requested=.false.) if (associated(child2)) then @@ -775,7 +775,7 @@ subroutine readDriver(node, parent, geom, ctrl) if (associated(child2)) then call getChildValue(child2, "", ctrl%BarostatStrength, & & modifier=modifier, child=child3) - call convertByMul(char(modifier), timeUnits, child3, & + call convertUnitHsd(char(modifier), timeUnits, child3, & & ctrl%BarostatStrength) ctrl%BarostatStrength = ctrl%deltaT / ctrl%BarostatStrength else @@ -933,7 +933,7 @@ subroutine commonGeoOptions(node, ctrl, geom, atomsRange, isMaxStepNeeded) call getChildValue(node, "LatticeOpt", ctrl%tLatOpt, .false.) if (ctrl%tLatOpt) then call getChildValue(node, "Pressure", ctrl%pressure, 0.0_dp, modifier=modifier, child=child) - call convertByMul(char(modifier), pressureUnits, child, ctrl%pressure) + call convertUnitHsd(char(modifier), pressureUnits, child, ctrl%pressure) call getChildValue(node, "FixAngles", ctrl%tLatOptFixAng, .false.) if (ctrl%tLatOptFixAng) then call getChildValue(node, "FixLengths", ctrl%tLatOptFixLen, [.false.,.false.,.false.]) @@ -957,10 +957,10 @@ subroutine commonGeoOptions(node, ctrl, geom, atomsRange, isMaxStepNeeded) end if call getChildValue(node, "MaxForceComponent", ctrl%maxForce, 1e-4_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), forceUnits, field, ctrl%maxForce) + call convertUnitHsd(char(modifier), forceUnits, field, ctrl%maxForce) call getChildValue(node, "MaxSteps", ctrl%maxRun, 200) call getChildValue(node, "StepSize", ctrl%deltaT, 100.0_dp, modifier=modifier, child=field) - call convertByMul(char(modifier), timeUnits, field, ctrl%deltaT) + call convertUnitHsd(char(modifier), timeUnits, field, ctrl%deltaT) call getChildValue(node, "OutputPrefix", buffer2, "geo_end") ctrl%outFile = unquote(char(buffer2)) call getChildValue(node, "AppendGeometries", ctrl%tAppendGeo, .false.) @@ -1140,7 +1140,7 @@ subroutine readInitialVelocities(node, ctrl, nAtom) allocate(tmpVelocities(3, nVelocities)) call asArray(realBuffer, tmpVelocities) if (len(modifier) > 0) then - call convertByMul(char(modifier), VelocityUnits, child, & + call convertUnitHsd(char(modifier), VelocityUnits, child, & & tmpVelocities) end if call destruct(realBuffer) @@ -1187,7 +1187,7 @@ subroutine getInputMasses(node, geo, masses) call getChildValue(child2, "Atoms", buffer, child=child3, multiple=.true.) call getSelectedAtomIndices(child3, char(buffer), geo%speciesNames, geo%species, pTmpI1) call getChildValue(child2, "MassPerAtom", rTmp, modifier=modifier, child=child) - call convertByMul(char(modifier), massUnits, child, rTmp) + call convertUnitHsd(char(modifier), massUnits, child, rTmp) do jj = 1, size(pTmpI1) iAt = pTmpI1(jj) if (masses(iAt) >= 0.0_dp) then @@ -1540,7 +1540,7 @@ subroutine readDFTBHam(node, ctrl, geo, slako, poisson) call getChildValue(child, geo%speciesNames(iSp1), & & ctrl%xi(:slako%orb%nShell(iSp1),iSp1), modifier=modifier, & & child=child2 ) - call convertByMul(char(modifier), energyUnits, child2, & + call convertUnitHsd(char(modifier), energyUnits, child2, & & ctrl%xi(:slako%orb%nShell(iSp1),iSp1)) end do end if @@ -1601,7 +1601,7 @@ subroutine readDFTBHam(node, ctrl, geo, slako, poisson) call destruct(li) call getChildValue(child2, "uj", rTmp, 0.0_dp, modifier=modifier, & & child=child3) - call convertByMul(char(modifier), energyUnits, child3, rTmp) + call convertUnitHsd(char(modifier), energyUnits, child3, rTmp) if (rTmp < 0.0_dp) then write(errorStr,"(F12.8)")rTmp call detailedError(child2,"Negative value of U-J:"//errorStr) @@ -2271,7 +2271,7 @@ subroutine readExternal(node, ctrl, geo) ctrl%tMulliken = .true. call getChildValue(child2, "Strength", ctrl%electricField%EFieldStrength, modifier=modifier,& & child=child3) - call convertByMul(char(modifier), EFieldUnits, child3, ctrl%electricField%EFieldStrength) + call convertUnitHsd(char(modifier), EFieldUnits, child3, ctrl%electricField%EFieldStrength) call getChildValue(child2, "Direction", ctrl%electricField%EfieldVector) if (sum(ctrl%electricField%EfieldVector**2) < 1e-8_dp) then call detailedError(child2,"Vector too small") @@ -2281,7 +2281,7 @@ subroutine readExternal(node, ctrl, geo) end if call getChildValue(child2, "Frequency", ctrl%electricField%EFieldOmega, 0.0_dp, & & modifier=modifier, child=child3) - call convertByMul(char(modifier), freqUnits, child3, ctrl%electricField%EFieldOmega) + call convertUnitHsd(char(modifier), freqUnits, child3, ctrl%electricField%EFieldOmega) if (ctrl%electricField%EFieldOmega > 0.0) then ! angular frequency ctrl%electricField%EFieldOmega = 2.0_dp * pi * ctrl%electricField%EFieldOmega @@ -2339,7 +2339,7 @@ subroutine readExternal(node, ctrl, geo) case default call detailedError(value1, "Invalid block name") end select - call convertByMul(char(modifier), lengthUnits, child3, tmpR2(1:3,:)) + call convertUnitHsd(char(modifier), lengthUnits, child3, tmpR2(1:3,:)) call append(lCharges, tmpR2) call getChildValue(child2, "GaussianBlurWidth", rTmp, 0.0_dp, & &modifier=modifier, child=child3) @@ -2347,7 +2347,7 @@ subroutine readExternal(node, ctrl, geo) call detailedError(child3, "Gaussian blur width may not be & &negative") end if - call convertByMul(char(modifier), lengthUnits, child3, rTmp) + call convertUnitHsd(char(modifier), lengthUnits, child3, rTmp) allocate(tmpR1(size(tmpR2, dim=2))) tmpR1(:) = rTmp call append(lBlurs, tmpR1) @@ -2394,7 +2394,7 @@ subroutine readExternal(node, ctrl, geo) call asArray(li, ctrl%atomicExtPotential%iAtOnSite) allocate(ctrl%atomicExtPotential%VextOnSite(len(lr))) call asArray(lr, ctrl%atomicExtPotential%VextOnSite) - call convertByMul(char(modifier), energyUnits, child3, ctrl%atomicExtPotential%VextOnSite) + call convertUnitHsd(char(modifier), energyUnits, child3, ctrl%atomicExtPotential%VextOnSite) call destruct(li) call destruct(lr) end if @@ -2413,7 +2413,7 @@ subroutine readExternal(node, ctrl, geo) call asArray(li, ctrl%atomicExtPotential%iAt) allocate(ctrl%atomicExtPotential%Vext(len(lr))) call asArray(lr, ctrl%atomicExtPotential%Vext) - call convertByMul(char(modifier), energyUnits, child3, ctrl%atomicExtPotential%Vext) + call convertUnitHsd(char(modifier), energyUnits, child3, ctrl%atomicExtPotential%Vext) call destruct(li) call destruct(lr) end if @@ -2471,7 +2471,7 @@ subroutine readFilling(node, ctrl, geo, temperatureDefault) if (.not. ctrl%tSetFillingTemp) then call getChildValue(value1, "Temperature", ctrl%tempElec, temperatureDefault, & &modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, ctrl%tempElec) + call convertUnitHsd(char(modifier), energyUnits, field, ctrl%tempElec) if (ctrl%tempElec < minTemp) then ctrl%tempElec = minTemp end if @@ -2486,7 +2486,7 @@ subroutine readFilling(node, ctrl, geo, temperatureDefault) allocate(ctrl%Ef(1)) end if call getChildValue(child2, "", ctrl%Ef, modifier=modifier, child=child3) - call convertByMul(char(modifier), energyUnits, child3, ctrl%Ef) + call convertUnitHsd(char(modifier), energyUnits, child3, ctrl%Ef) end if if (geo%tPeriodic .and. .not.ctrl%tFixEf) then @@ -2612,7 +2612,7 @@ subroutine readSolver(node, ctrl, geo, poisson) call getChildValue(value1, "SymbolicFactorProcs", ctrl%solver%elsi%pexsiNpSymbo, 1) call getChildValue(value1, "SpectralRadius", ctrl%solver%elsi%pexsiDeltaE, 10.0_dp,& & modifier=modifier, child=child) - call convertByMul(char(modifier), energyUnits, child, ctrl%solver%elsi%pexsiDeltaE) + call convertUnitHsd(char(modifier), energyUnits, child, ctrl%solver%elsi%pexsiDeltaE) case ("ntpoly") ctrl%solver%isolver = electronicSolverTypes%ntpoly @@ -3108,7 +3108,7 @@ subroutine SKTruncations(node, truncationCutOff, skInterMeth) ! Artificially truncate the SK table call getChildValue(node, "SKMaxDistance", truncationCutOff, modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, truncationCutOff) + call convertUnitHsd(char(modifier), lengthUnits, field, truncationCutOff) call getChildValue(node, "HardCutOff", tHardCutOff, .true.) if (tHardCutOff) then @@ -3268,7 +3268,7 @@ subroutine readDifferentiation(node, ctrl) ctrl%iDerivMethod = 1 call getChildValue(val, "Delta", ctrl%deriv1stDelta, defDelta,& & modifier=modifier, child=child) - call convertByMul(char(modifier), lengthUnits, child,& + call convertUnitHsd(char(modifier), lengthUnits, child,& & ctrl%deriv1stDelta) case ("richardson") ctrl%iDerivMethod = 2 @@ -3975,11 +3975,11 @@ subroutine readDispSlaKirk(node, geo, input) call getChildValue(child, "", tmpR2, modifier=modifier) if (len(modifier) > 0) then call splitModifier(char(modifier), child, modifiers) - call convertByMul(char(modifiers(1)), volumeUnits, child, tmpR2(1,:),& + call convertUnitHsd(char(modifiers(1)), volumeUnits, child, tmpR2(1,:),& &.false.) - call convertByMul(char(modifiers(2)), lengthUnits, child, tmpR2(2,:),& + call convertUnitHsd(char(modifiers(2)), lengthUnits, child, tmpR2(2,:),& &.false.) - call convertByMul(char(modifiers(3)), chargeUnits, child, tmpR2(3,:),& + call convertUnitHsd(char(modifiers(3)), chargeUnits, child, tmpR2(3,:),& &.false.) end if @@ -3995,17 +3995,17 @@ subroutine readDispSlaKirk(node, geo, input) &child=child2, dummyValue=.true.) call getChildValue(child2, "CovalentRadius", rCutoffs(iSp1), & &modifier=modifier2, child=child3) - call convertByMul(char(modifier2), lengthUnits, child3, & + call convertUnitHsd(char(modifier2), lengthUnits, child3, & &rCutoffs(iSp1)) call getChildValue(child2, "HybridPolarisations", tmp2R2(:, iSp1), & &modifier=modifier2, child=child3) if (len(modifier2) > 0) then call splitModifier(char(modifier2), child, modifiers) - call convertByMul(char(modifiers(1)), volumeUnits, child, & + call convertUnitHsd(char(modifiers(1)), volumeUnits, child, & &tmp2R2(1:6, iSp1), .false.) - call convertByMul(char(modifiers(2)), lengthUnits, child, & + call convertUnitHsd(char(modifiers(2)), lengthUnits, child, & &tmp2R2(7:12, iSp1), .false.) - call convertByMul(char(modifiers(3)), chargeUnits, child, & + call convertUnitHsd(char(modifiers(3)), chargeUnits, child, & &tmp2R2(13, iSp1), .false.) end if end do @@ -4104,11 +4104,11 @@ subroutine readDispVdWUFF(node, geo, input) call getChild(child, geo%speciesNames(iSp), child2) call getChildValue(child2, "Distance", input%distances(iSp), & &modifier=buffer) - call convertByMul(char(buffer), lengthUnits, child, & + call convertUnitHsd(char(buffer), lengthUnits, child, & &input%distances(iSp)) call getChildValue(child2, "Energy", input%energies(iSp), & &modifier=buffer) - call convertByMul(char(buffer), energyUnits, child, & + call convertUnitHsd(char(buffer), energyUnits, child, & &input%energies(iSp)) end do end select @@ -4159,10 +4159,10 @@ subroutine readDFTD3(node, geo, input) call getChildValue(node, "s8", input%s8) call getChildValue(node, "cutoff", input%cutoff, default=sqrt(9000.0_dp), & & modifier=buffer, child=child) - call convertByMul(char(buffer), lengthUnits, child, input%cutoff) + call convertUnitHsd(char(buffer), lengthUnits, child, input%cutoff) call getChildValue(node, "cutoffcn", input%cutoffCN, default=40.0_dp, & & modifier=buffer, child=child) - call convertByMul(char(buffer), lengthUnits, child, input%cutoffCN) + call convertUnitHsd(char(buffer), lengthUnits, child, input%cutoffCN) call getChildValue(node, "threebody", threebody, default=.false.) input%s9 = merge(1.0_dp, 0.0_dp, threebody) ! D3H5 - additional H-H repulsion @@ -4223,7 +4223,7 @@ subroutine readSimpleDFTD3(node, geo, input) call getChildValue(node, "weightingFactor", input%weightingFactor, default=4.0_dp) call getChildValue(node, "cutoffInter", input%cutoffInter, default=64.0_dp, modifier=buffer,& & child=child) - call convertByMul(char(buffer), lengthUnits, child, input%cutoffInter) + call convertUnitHsd(char(buffer), lengthUnits, child, input%cutoffInter) call readCoordinationNumber(node, input%cnInput, geo, "exp", 0.0_dp) @@ -4271,10 +4271,10 @@ subroutine readDispDFTD4(node, geo, input, nrChrg) call getChildValue(node, "ChargeScale", input%chargeScale, default=3.0_dp) call getChildValue(node, "CutoffInter", input%cutoffInter, default=64.0_dp, modifier=buffer,& & child=child) - call convertByMul(char(buffer), lengthUnits, child, input%cutoffInter) + call convertUnitHsd(char(buffer), lengthUnits, child, input%cutoffInter) call getChildValue(node, "CutoffThree", input%cutoffThree, default=40.0_dp, modifier=buffer,& & child=child) - call convertByMul(char(buffer), lengthUnits, child, input%cutoffThree) + call convertUnitHsd(char(buffer), lengthUnits, child, input%cutoffThree) call getChildValue(node, "ChargeModel", value1, "EEQ", child=child) call getNodeName(value1, buffer) @@ -4413,7 +4413,7 @@ subroutine readEeqModel(node, input, geo, nrChrg, kChiDefault, kGamDefault, & call getChildValue(node, "Cutoff", input%cutoff, default=40.0_dp, modifier=buffer,& & child=child) - call convertByMul(char(buffer), lengthUnits, child, input%cutoff) + call convertUnitHsd(char(buffer), lengthUnits, child, input%cutoff) call getChildValue(node, "EwaldParameter", input%parEwald, 0.0_dp) call getChildValue(node, "EwaldTolerance", input%tolEwald, 1.0e-9_dp) @@ -4466,7 +4466,7 @@ subroutine readCoordinationNumber(node, input, geo, cnDefault, cutDefault) call getChildValue(value1, "Cutoff", input%rCutoff, 40.0_dp, & & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, input%rCutoff) + call convertUnitHsd(char(modifier), lengthUnits, field, input%rCutoff) allocate(input%en(geo%nSpecies)) if (input%cnType == cnType%cov) then @@ -4607,7 +4607,7 @@ subroutine readTemperature(node, ctrl) ctrl%tempMethods(1) = 1 ctrl%tempSteps(1) = 1 call getChildValue(node, "", ctrl%tempValues(1), modifier=modifier) - call convertByMul(char(modifier), energyUnits, node, ctrl%tempValues(1)) + call convertUnitHsd(char(modifier), energyUnits, node, ctrl%tempValues(1)) if (ctrl%tempValues(1) < 0.0_dp) then call detailedError(node, "Negative temperature.") end if @@ -4678,7 +4678,7 @@ subroutine readTemperatureProfile(node, modifier, ctrl) call detailedError(node, "Negative temperature.") end if - call convertByMul(modifier, energyUnits, node, ctrl%tempValues) + call convertUnitHsd(modifier, energyUnits, node, ctrl%tempValues) if (any(ctrl%tempValues < minTemp)) then ctrl%tempValues = max(ctrl%tempValues, minTemp) end if @@ -4765,11 +4765,11 @@ subroutine readExcited(node, geo, ctrl) call getChildValue(child, "EnergyWindow", ctrl%lrespini%energyWindow, 0.0_dp, & & modifier=modifier, child=child2) ctrl%lrespini%tEnergyWindow = ctrl%lrespini%energyWindow /= 0.0_dp - call convertByMul(char(modifier), energyUnits, child2, ctrl%lrespini%energyWindow) + call convertUnitHsd(char(modifier), energyUnits, child2, ctrl%lrespini%energyWindow) call getChildValue(child, "OscillatorWindow", ctrl%lrespini%oscillatorWindow, 0.0_dp, & & modifier=modifier, child=child2) ctrl%lrespini%tOscillatorWindow = ctrl%lrespini%oscillatorWindow /= 0.0_dp - call convertByMul(char(modifier), dipoleUnits, child2, ctrl%lrespini%oscillatorWindow) + call convertUnitHsd(char(modifier), dipoleUnits, child2, ctrl%lrespini%oscillatorWindow) call getChildValue(child, "CacheCharges", ctrl%lrespini%tCacheCharges, default=.true.) call getChildValue(child, "WriteMulliken", ctrl%lrespini%tMulliken, default=.false.) call getChildValue(child, "WriteCoefficients", ctrl%lrespini%tCoeffs, default=.false.) @@ -5146,7 +5146,7 @@ subroutine freqRanges(node, frequencies) end if call growFreqArray(frequencies, nFreq) call asArray(lr, frequencies(iFreq+1:iFreq+nFreq)) - call convertByMul(char(modifier),freqUnits, child, frequencies(iFreq+1:iFreq+nFreq)) + call convertUnitHsd(char(modifier),freqUnits, child, frequencies(iFreq+1:iFreq+nFreq)) end if call destruct(lr) if (any(frequencies < 0.0_dp)) then @@ -5160,7 +5160,7 @@ subroutine freqRanges(node, frequencies) call getChildValue(child, "", lr, child=child2, modifier=modifier) if (len(lr) == 3) then call asArray(lr, tmp3R) - call convertByMul(char(modifier), freqUnits, child, tmp3R) + call convertUnitHsd(char(modifier), freqUnits, child, tmp3R) if (any(tmp3R(:2) < 0.0_dp)) then call detailedError(child, "Negative values in dynamic frequency range.") end if @@ -5504,7 +5504,7 @@ subroutine readElecDynamics(node, input, geom, masses) call getChildValue(node, "Steps", input%steps) call getChildValue(node, "TimeStep", input%dt, modifier=modifier, child=child) - call convertByMul(char(modifier), timeUnits, child, input%dt) + call convertUnitHsd(char(modifier), timeUnits, child, input%dt) call getChildValue(node, "Populations", input%tPopulations, .false.) call getChildValue(node, "WriteFrequency", input%writeFreq, 50) @@ -5528,7 +5528,7 @@ subroutine readElecDynamics(node, input, geom, masses) defPpRange = [0.0_dp, input%steps * input%dt] call getChildValue(node, "PumpProbeRange", input%tdPpRange, defPprange, modifier=modifier,& & child=child) - call convertByMul(char(modifier), timeUnits, child, input%tdPpRange) + call convertUnitHsd(char(modifier), timeUnits, child, input%tdPpRange) ppRangeInvalid = (input%tdPpRange(2) <= input%tdPpRange(1))& & .or. (input%tdPprange(1) < defPpRange(1))& @@ -5587,9 +5587,9 @@ subroutine readElecDynamics(node, input, geom, masses) call getChildValue(value1, "ImagPolarizationDirection", input%imFieldPolVec, & & [0.0_dp, 0.0_dp, 0.0_dp]) call getChildValue(value1, "LaserEnergy", input%omega, modifier=modifier, child=child) - call convertByMul(char(modifier), energyUnits, child, input%omega) + call convertUnitHsd(char(modifier), energyUnits, child, input%omega) call getChildValue(value1, "Phase", input%phase, 0.0_dp, modifier=modifier, child=child) - call convertByMul(char(modifier), angularUnits, child, input%phase) + call convertUnitHsd(char(modifier), angularUnits, child, input%phase) call getChildValue(value1, "ExcitedAtoms", buffer, "1:-1", child=child, multiple=.true.) call getSelectedAtomIndices(child, char(buffer), geom%speciesNames, geom%species,& & input%indExcitedAtom) @@ -5609,12 +5609,12 @@ subroutine readElecDynamics(node, input, geom, masses) call getChildValue(value1, "LaserPolDir", input%reFieldPolVec) call getChildValue(value1, "LaserImagPolDir", input%imFieldPolVec, [0.0_dp, 0.0_dp, 0.0_dp]) call getChildValue(value1, "LaserEnergy", input%omega, modifier=modifier, child=child) - call convertByMul(char(modifier), energyUnits, child, input%omega) + call convertUnitHsd(char(modifier), energyUnits, child, input%omega) call getChildValue(value1, "Phase", input%phase, 0.0_dp, modifier=modifier, child=child) - call convertByMul(char(modifier), angularUnits, child, input%phase) + call convertUnitHsd(char(modifier), angularUnits, child, input%phase) call getChildValue(value1, "LaserStrength", input%tdLaserField, modifier=modifier,& & child=child) - call convertByMul(char(modifier), EFieldUnits, child, input%tdLaserField) + call convertUnitHsd(char(modifier), EFieldUnits, child, input%tdLaserField) call getChildValue(value1, "ExcitedAtoms", buffer, "1:-1", child=child, multiple=.true.) call getSelectedAtomIndices(child, char(buffer), geom%speciesNames, geom%species,& @@ -5638,7 +5638,7 @@ subroutine readElecDynamics(node, input, geom, masses) if (tNeedFieldStrength) then call getChildValue(node, "FieldStrength", input%tdfield, modifier=modifier, child=child) - call convertByMul(char(modifier), EFieldUnits, child, input%tdfield) + call convertUnitHsd(char(modifier), EFieldUnits, child, input%tdfield) end if call getChildValue(node, "WriteEnergyAndCharges", input%tdWriteExtras, defaultWrite) @@ -5654,23 +5654,23 @@ subroutine readElecDynamics(node, input, geom, masses) case("gaussian") input%envType = envTypes%gaussian call getChildValue(value1, "Time0", input%time0, 0.0_dp, modifier=modifier, child=child) - call convertByMul(char(modifier), timeUnits, child, input%Time0) + call convertUnitHsd(char(modifier), timeUnits, child, input%Time0) call getChildValue(value1, "Time1", input%time1, modifier=modifier, child=child) - call convertByMul(char(modifier), timeUnits, child, input%Time1) + call convertUnitHsd(char(modifier), timeUnits, child, input%Time1) case("sin2") input%envType = envTypes%sin2 call getChildValue(value1, "Time0", input%time0, 0.0_dp, modifier=modifier, child=child) - call convertByMul(char(modifier), timeUnits, child, input%Time0) + call convertUnitHsd(char(modifier), timeUnits, child, input%Time0) call getChildValue(value1, "Time1", input%time1, modifier=modifier, child=child) - call convertByMul(char(modifier), timeUnits, child, input%Time1) + call convertUnitHsd(char(modifier), timeUnits, child, input%Time1) case("fromfile") input%envType = envTypes%fromFile call getChildValue(value1, "Time0", input%time0, 0.0_dp, modifier=modifier, child=child) - call convertByMul(char(modifier), timeUnits, child, input%Time0) + call convertUnitHsd(char(modifier), timeUnits, child, input%Time0) case default call detailedError(value1, "Unknown envelope shape " // char(buffer)) @@ -5720,7 +5720,7 @@ subroutine readMDInitTemp(node, tempAtom, minimumTemp) if (tempAtom < 0.0_dp) then call detailedError(node, "Negative temperature") end if - call convertByMul(char(modifier), energyUnits, node, tempAtom) + call convertUnitHsd(char(modifier), energyUnits, node, tempAtom) tempAtom = max(tempAtom, minimumTemp) end subroutine readMDInitTemp @@ -5790,7 +5790,7 @@ subroutine readInitialVelocitiesNAMD(node, input, nAtom) allocate(tmpVelocities(3, nVelocities)) call asArray(realBuffer, tmpVelocities) if (len(modifier) > 0) then - call convertByMul(char(modifier), VelocityUnits, child, & + call convertUnitHsd(char(modifier), VelocityUnits, child, & & tmpVelocities) end if call destruct(realBuffer) @@ -5857,7 +5857,7 @@ subroutine readTransportGeometry(root, geom, transpar) if (.not. geom%tPeriodic) then call getChildValue(pTaskType, "ContactSeparation", lateralContactSeparation, 1000.0_dp,& & modifier=modifier, child=field) - call convertByMul(char(modifier),lengthUnits,field,lateralContactSeparation) + call convertUnitHsd(char(modifier),lengthUnits,field,lateralContactSeparation) end if call reduceGeometry(transpar%contacts(contact)%lattice, transpar%contacts(contact)%idxrange,& @@ -6039,7 +6039,7 @@ subroutine readGreensFunction(pNode, greendens, transpar, tempElec) call detailedError(pNode, "FermiLevel accepts 1 or 2 (for collinear spin) values") end if call destruct(fermiBuffer) - call convertByMul(char(modifier), energyUnits, pNode, greendens%oneFermi) + call convertUnitHsd(char(modifier), energyUnits, pNode, greendens%oneFermi) call getChild(pNode, "FirstLayerAtoms", pTmp, requested=.false.) call readFirstLayerAtoms(pTmp, greendens%PL, greendens%nPLs,& @@ -6073,14 +6073,14 @@ subroutine readGreensFunction(pNode, greendens, transpar, tempElec) call getChildValue(pNode, "LocalCurrents", greendens%doLocalCurr, .false.) call getChildValue(pNode, "Verbosity", greendens%verbose, 51) call getChildValue(pNode, "Delta", greendens%delta, 1.0e-5_dp, modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, greendens%delta) + call convertUnitHsd(char(modifier), energyUnits, field, greendens%delta) call getChildValue(pNode, "ReadSurfaceGFs", greendens%readSGF, .false.) call getChildValue(pNode, "SaveSurfaceGFs", greendens%saveSGF, .not.greendens%readSGF) call getChildValue(pNode, "ContourPoints", greendens%nP(1:2), [ 20, 20 ]) call getChildValue(pNode, "EnclosedPoles", greendens%nPoles, 3) call getChildValue(pNode, "LowestEnergy", greendens%enLow, -2.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), energyUnits, field, greendens%enLow) + call convertUnitHsd(char(modifier), energyUnits, field, greendens%enLow) call getChildValue(pNode, "FermiCutoff", greendens%nkT, 10) ! Fermi energy had not been set by other means yet @@ -6115,7 +6115,7 @@ subroutine readGreensFunction(pNode, greendens, transpar, tempElec) else if (associated(child2)) then call getChildValue(pNode, "RealAxisStep", Estep, child=child2, & & modifier=modifier) - call convertByMul(char(modifier), energyUnits, child2, Estep) + call convertUnitHsd(char(modifier), energyUnits, child2, Estep) realAxisConv = .true. ! If the system is under equilibrium we set the number of ! points to zero @@ -6196,25 +6196,25 @@ subroutine readPoisson(pNode, poisson, tPeriodic, latVecs, updateSccAfterDiag) if (ii == transpar%contacts(1)%dir) then call getChildValue(pNode, "PoissonThickness", poisson%poissBox(ii), modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%poissBox) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%poissBox) else poisson%poissBox(ii) = sqrt(sum(latVecs(:,ii)**2)) end if end do else call getChildValue(pNode, "PoissonBox", poisson%poissBox, modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%poissBox) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%poissBox) end if #:else call getChildValue(pNode, "PoissonBox", poisson%poissBox, modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%poissBox) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%poissBox) #:endif end if poisson%foundBox = needsPoissonBox call getChildValue(pNode, "MinimalGrid", poisson%poissGrid, [ 0.3_dp, 0.3_dp, 0.3_dp ],& & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%poissGrid) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%poissGrid) call getChildValue(pNode, "NumericalNorm", poisson%numericNorm, .false.) call getChild(pNode, "AtomDensityCutoff", pTmp, requested=.false., modifier=modifier) call getChild(pNode, "AtomDensityTolerance", pTmp2, requested=.false.) @@ -6223,7 +6223,7 @@ subroutine readPoisson(pNode, poisson, tPeriodic, latVecs, updateSccAfterDiag) & can be specified.") else if (associated(pTmp)) then call getChildValue(pTmp, "", poisson%maxRadAtomDens, default=14.0_dp, modifier=modifier) - call convertByMul(char(modifier), lengthUnits, pTmp, poisson%maxRadAtomDens) + call convertUnitHsd(char(modifier), lengthUnits, pTmp, poisson%maxRadAtomDens) if (poisson%maxRadAtomDens <= 0.0_dp) then call detailedError(pTmp2, "Atom density cutoff must be > 0") end if @@ -6266,12 +6266,12 @@ subroutine readPoisson(pNode, poisson, tPeriodic, latVecs, updateSccAfterDiag) poisson%localBCType = "S" call getChildValue(pTmp, "BufferLength", poisson%bufferLocBC, 9.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%bufferLocBC) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%bufferLocBC) case ("circle") poisson%localBCType = "C" call getChildValue(pTmp, "BufferLength", poisson%bufferLocBC, 9.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%bufferLocBC) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%bufferLocBC) case default call getNodeHSDName(pTmp, buffer) call detailedError(pTmp, "Invalid boundary region type '" // char(buffer) // "'") @@ -6279,7 +6279,7 @@ subroutine readPoisson(pNode, poisson, tPeriodic, latVecs, updateSccAfterDiag) call getChildValue(pNode, "BoxExtension", poisson%bufferBox, 0.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%bufferBox) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%bufferBox) if (poisson%bufferBox.lt.0.0_dp) then call detailedError(pNode, "BoxExtension must be a positive number") endif @@ -6295,24 +6295,24 @@ subroutine readPoisson(pNode, poisson, tPeriodic, latVecs, updateSccAfterDiag) poisson%gateType = "P" call getChildValue(pTmp2, "GateLength", poisson%gateLength_l, 0.0_dp, modifier= modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%gateLength_l) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%gateLength_l) gatelength_l = poisson%gateLength_l !avoids a warning on intents call getChildValue(pTmp2, "GateLength_l", poisson%gateLength_l, gateLength_l,& & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%gateLength_l) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%gateLength_l) call getChildValue(pTmp2, "GateLength_t", poisson%gateLength_t, poisson%gateLength_l,& & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%gateLength_t) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%gateLength_t) call getChildValue(pTmp2, "GateDistance", poisson%gateRad, 0.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%gateRad) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%gateRad) call getChildValue(pTmp2, "GatePotential", poisson%gatepot, 0.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), energyUnits, field, poisson%gatepot) + call convertUnitHsd(char(modifier), energyUnits, field, poisson%gatepot) !call getChildValue(pTmp2, "GateDirection", poisson%gatedir, 2) poisson%gatedir = 2 @@ -6321,15 +6321,15 @@ subroutine readPoisson(pNode, poisson, tPeriodic, latVecs, updateSccAfterDiag) poisson%gateType = "C" call getChildValue(pTmp2, "GateLength",poisson%gateLength_l, 0.0_dp, modifier= modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%gateLength_l) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%gateLength_l) call getChildValue(pTmp2, "GateRadius", poisson%gateRad, 0.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%gateRad) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%gateRad) call getChildValue(pTmp2, "GatePotential", poisson%gatepot, 0.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, poisson%gatepot) + call convertUnitHsd(char(modifier), lengthUnits, field, poisson%gatepot) case default call getNodeHSDName(pTmp2, buffer) @@ -6723,7 +6723,7 @@ subroutine readCoupling(node, elph, geom, orb, tp) ! This reads also things like: "Coupling [eV] = 0.34" !if (is_numeric(char(method))) then ! call getChildValue(node, "Coupling", rTmp, child=field) - ! call convertByMul(char(modifier), energyUnits, field, rTmp) + ! call convertUnitHsd(char(modifier), energyUnits, field, rTmp) ! elph%coupling = rTmp ! return !end if @@ -6732,7 +6732,7 @@ subroutine readCoupling(node, elph, geom, orb, tp) case ("allorbitals") call getChild(child, "AllOrbitals", child2, requested=.false.) call getChildValue(child2, "", elph%coupling, child=field) - call convertByMul(char(modifier), energyUnits, field, elph%coupling) + call convertUnitHsd(char(modifier), energyUnits, field, elph%coupling) case ("atomcoupling") call getChild(child, "AtomCoupling", child2, requested=.false.) @@ -6746,9 +6746,9 @@ subroutine readCoupling(node, elph, geom, orb, tp) call getChildValue(child3, "Value", rTmp, child=field, modifier=modifier2) ! If not defined, use common unit modifier defined after Coupling if (len(modifier2)==0) then - call convertByMul(char(modifier), energyUnits, field, rTmp) + call convertUnitHsd(char(modifier), energyUnits, field, rTmp) else - call convertByMul(char(modifier2), energyUnits, field, rTmp) + call convertUnitHsd(char(modifier2), energyUnits, field, rTmp) end if do jj=1, size(tmpI1) iAt = tmpI1(jj) @@ -6769,7 +6769,7 @@ subroutine readCoupling(node, elph, geom, orb, tp) case ("constant") call getChildValue(child, "Constant", rtmp, child=field) - call convertByMul(char(modifier), energyUnits, field, rTmp) + call convertUnitHsd(char(modifier), energyUnits, field, rTmp) elph%coupling = rTmp case default @@ -6820,7 +6820,7 @@ subroutine readTunAndDos(root, orb, geo, tundos, transpar, tempElec) end if call asArray(temperature, tundos%kbT) call destruct(temperature) - call convertByMul(char(modifier), energyUnits, pTmp, tundos%kbT) + call convertUnitHsd(char(modifier), energyUnits, pTmp, tundos%kbT) else do ii = 1, ncont if (transpar%contacts(ii)%kbT >= 0) then @@ -6843,10 +6843,10 @@ subroutine readTunAndDos(root, orb, geo, tundos, transpar, tempElec) ! No default meaningful call getChildValue(root, "EnergyRange", eRange, modifier=modifier,& & child=field) - call convertByMul(char(modifier), energyUnits, field, eRange) + call convertUnitHsd(char(modifier), energyUnits, field, eRange) call getChildValue(root, "EnergyStep", tundos%estep,& & modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, tundos%estep) + call convertUnitHsd(char(modifier), energyUnits, field, tundos%estep) else ! Default meaningful ! nKT is set to GreensFunction default, i.e. 10 @@ -6864,10 +6864,10 @@ subroutine readTunAndDos(root, orb, geo, tundos, transpar, tempElec) & nKT * maxval(tundos%kbT) call getChildValue(root, "EnergyStep", tundos%estep, 6.65e-4_dp, & &modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, tundos%estep) + call convertUnitHsd(char(modifier), energyUnits, field, tundos%estep) call getChildValue(root, "EnergyRange", eRange, eRangeDefault, & modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, eRange) + call convertUnitHsd(char(modifier), energyUnits, field, eRange) end if tundos%emin = eRange(1) @@ -6901,11 +6901,11 @@ subroutine readTunAndDos(root, orb, geo, tundos, transpar, tempElec) end if call getChildValue(root, "Delta", tundos%delta, & &1.0e-5_dp, modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, & + call convertUnitHsd(char(modifier), energyUnits, field, & &tundos%delta) call getChildValue(root, "BroadeningDelta", tundos%broadeningDelta, & &0.0_dp, modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, & + call convertUnitHsd(char(modifier), energyUnits, field, & &tundos%broadeningDelta) call readPDOSRegions(root, geo, transpar%idxdevice, iAtInRegion, & @@ -6951,7 +6951,7 @@ subroutine readContacts(pNodeList, contacts, geom, task) call getChildValue(pNode, "PLShiftTolerance", contactLayerTol, 1e-5_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), lengthUnits, field, contactLayerTol) + call convertUnitHsd(char(modifier), lengthUnits, field, contactLayerTol) call getChildValue(pNode, "AtomRange", contacts(ii)%idxrange, child=pTmp) call getContactVector(contacts(ii)%idxrange, geom, ii, contacts(ii)%name, pTmp,& @@ -6964,7 +6964,7 @@ subroutine readContacts(pNodeList, contacts, geom, task) if (associated(field)) then call getChildValue(pNode, "Temperature", contacts(ii)%kbT, 0.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), energyUnits, field, contacts(ii)%kbT) + call convertUnitHsd(char(modifier), energyUnits, field, contacts(ii)%kbT) else contacts(ii)%kbT = -1.0_dp ! -1.0 simply means 'not defined' end if @@ -6972,7 +6972,7 @@ subroutine readContacts(pNodeList, contacts, geom, task) if (task .eq. "uploadcontacts") then call getChildValue(pNode, "Potential", contacts(ii)%potential, 0.0_dp, modifier=modifier,& & child=field) - call convertByMul(char(modifier), energyUnits, field, contacts(ii)%potential) + call convertUnitHsd(char(modifier), energyUnits, field, contacts(ii)%potential) call getChildValue(pNode, "WideBand", contacts(ii)%wideBand, .false.) @@ -6983,7 +6983,7 @@ subroutine readContacts(pNodeList, contacts, geom, task) ! value. Default is 20 / e eV. call getChildValue(pNode, "LevelSpacing", contacts(ii)%wideBandDos, 0.735_dp,& & modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, contacts(ii)%wideBandDos) + call convertUnitHsd(char(modifier), energyUnits, field, contacts(ii)%wideBandDos) contacts(ii)%wideBandDos = 1.d0 / contacts(ii)%wideBandDos end if @@ -7023,7 +7023,7 @@ subroutine readContacts(pNodeList, contacts, geom, task) call detailedError(pNode, "FermiLevel accepts 1 or 2 (for collinear spin) values") end select call destruct(fermiBuffer) - call convertByMul(char(modifier), energyUnits, child2, contacts(ii)%eFermi) + call convertUnitHsd(char(modifier), energyUnits, child2, contacts(ii)%eFermi) contacts(ii)%tFermiSet = .true. @@ -7066,11 +7066,11 @@ subroutine getFermiLevels(pNode, eFermis, nodeModifier) call getChild(pNode, "SetForAll", pChild, requested=.false.) if (associated(pChild)) then call getChildValue(pChild, "", eFermi) - call convertByMul(char(nodeModifier), energyUnits, pNode, eFermi) + call convertUnitHsd(char(nodeModifier), energyUnits, pNode, eFermi) eFermis(:) = eFermi else call getChildValue(pNode, "", eFermis, modifier=modifier, child=pChild) - call convertByMul(char(modifier), energyUnits, pChild, eFermis) + call convertUnitHsd(char(modifier), energyUnits, pChild, eFermis) end if end subroutine getFermiLevels @@ -7442,7 +7442,7 @@ subroutine readElectrostaticPotential(node, geo, ctrl) if (geo%tPeriodic .and. (char(modifier) == "F" .or. char(modifier) == "f")) then ctrl%elStatPotentialsInp%espGrid = matmul(geo%latVecs, ctrl%elStatPotentialsInp%espGrid) else - call convertByMul(char(modifier), lengthUnits, child3,& + call convertUnitHsd(char(modifier), lengthUnits, child3,& & ctrl%elStatPotentialsInp%espGrid) end if end if @@ -7471,7 +7471,7 @@ subroutine readElectrostaticPotential(node, geo, ctrl) end if call getChildValue(child, "Softening", ctrl%elStatPotentialsInp%softenESP, 1.0E-6_dp,& & modifier=modifier, child=child2) - call convertByMul(char(modifier), lengthUnits, child2, ctrl%elStatPotentialsInp%softenEsp) + call convertUnitHsd(char(modifier), lengthUnits, child2, ctrl%elStatPotentialsInp%softenEsp) end subroutine readElectrostaticPotential @@ -7529,8 +7529,8 @@ subroutine readGrid(points, node, modifier, latVecs, nPoints, origin, axes) ! length not fraction modifier if (.not.(tPeriodic .and. (char(modifier) == "F" .or. char(modifier) == "f"))) then - call convertByMul(char(modifier), lengthUnits, child, r3Tmp) - call convertByMul(char(modifier), lengthUnits, child, r3Tmpb) + call convertUnitHsd(char(modifier), lengthUnits, child, r3Tmp) + call convertUnitHsd(char(modifier), lengthUnits, child, r3Tmpb) end if points = 0.0_dp @@ -7616,13 +7616,13 @@ subroutine parseRangeSeparated(node, input) input%rangeSepAlg = rangeSepTypes%neighbour call getChildValue(value2, "CutoffReduction", input%cutoffRed, 0.0_dp,& & modifier=modifier, child=child3) - call convertByMul(char(modifier), lengthUnits, child3, input%cutoffRed) + call convertUnitHsd(char(modifier), lengthUnits, child3, input%cutoffRed) case ("thresholded") input%rangeSepAlg = rangeSepTypes%threshold call getChildValue(value2, "Threshold", input%screeningThreshold, 1e-6_dp) call getChildValue(value2, "CutoffReduction", input%cutoffRed, 0.0_dp,& & modifier=modifier, child=child3) - call convertByMul(char(modifier), lengthUnits, child3, input%cutoffRed) + call convertUnitHsd(char(modifier), lengthUnits, child3, input%cutoffRed) case ("matrixbased") input%rangeSepAlg = rangeSepTypes%matrixBased ! In this case, CutoffRedunction is not used so it should be set to zero. diff --git a/src/dftbp/io/hsdutils2.F90 b/src/dftbp/io/hsdutils2.F90 index 61ba4f71b2..99830fd43b 100644 --- a/src/dftbp/io/hsdutils2.F90 +++ b/src/dftbp/io/hsdutils2.F90 @@ -7,11 +7,13 @@ #:include 'common.fypp' +#:set UNIT_CONVERSION_RANKS = [0, 1, 2] + !> Contains more high level functions for converting the values in a XML/HSD DOM-tree to Fortran !> intrinsic types. module dftbp_io_hsdutils2 use dftbp_common_accuracy, only : dp - use dftbp_common_unitconversion, only : unit + use dftbp_common_unitconversion, only : TUnit, unitConvStat => statusCodes, convertUnit use dftbp_extlibs_xmlf90, only : fnode, fnodeList, string, trim, len, assignment(=), parsefile,& & getLength, item, char, removeAttribute, getAttribute, setAttribute, setTagName,& & normalize, append_to_string, destroyNodeList, removeAttribute @@ -24,20 +26,20 @@ module dftbp_io_hsdutils2 implicit none private - public :: getUnprocessedNodes, warnUnprocessedNodes, getModifierIndex + public :: getUnprocessedNodes, warnUnprocessedNodes public :: readHSDAsXML public :: getNodeName2, setNodeName, removeModifier, splitModifier public :: setUnprocessed, getDescendant - public :: convertByMul + public :: convertUnitHsd !> Converts according to passed modifier and array of possible units by multplicating the provided !> value with the appropriate conversion factor. - interface convertByMul - module procedure convertByMul_real - module procedure convertByMul_realR1 - module procedure convertByMul_realR2 - end interface convertByMul + interface convertUnitHsd + #:for RANK in UNIT_CONVERSION_RANKS + module procedure convertUnitHsdR${RANK}$ + #:endfor + end interface convertUnitHsd !> Separator for modifiers @@ -63,50 +65,6 @@ subroutine setUnprocessed(node) end subroutine setUnprocessed - !> Gets the index of a modifier from an array of possible modifier names. - function getModifierIndex(modifier, modifiers, node, requested) result(ind) - - !> String containing the parsed modifier - character(len=*), intent(in) :: modifier - - !> Array containing the names of the possible modifiers - type(unit), intent(in) :: modifiers(:) - - !> Node for which the modifier was obtained (for errors) - type(fnode), pointer :: node - - !> Should an error be raised, if the modifier is not found? - logical, intent(in), optional :: requested - - !> Index of the modifer (zero if not found) - integer :: ind - - character(len=len(modifier)) :: modifierLo - logical :: mandatory - integer :: ii - - if (present(requested)) then - mandatory = requested - else - mandatory = .true. - end if - modifierLo = tolower(modifier) - - ind = 0 - do ii = 1, size(modifiers) - if (trim(modifiers(ii)%name) == modifierLo) then - ind = ii - exit - end if - end do - - if (ind == 0 .and. mandatory) then - call detailedError(node, MSG_INVALID_MODIFIER // modifier) - end if - - end function getModifierIndex - - !> Prints a warning message about unprocessed nodes subroutine getUnprocessedNodes(node, nodeList) @@ -283,68 +241,25 @@ subroutine splitModifier(modifier, child, modifiers) end subroutine splitModifier - !> Implementation of convertByMul for real scalar. - subroutine convertByMul_real(modifier, units, child, convertValue, replace, changed) - - !> Modifier (name of the unit to use) - character(len=*), intent(in) :: modifier - - !> Array of the possible units - type(unit), intent(in) :: units(:) - - !> The child, which carries the modifier. - type(fnode), pointer :: child - - !> Value to convert, converted value on return. - real(dp), intent(inout) :: convertValue - - !> If childs value should replaced by the new value (default: .false.) - logical, intent(in), optional :: replace - - !> Contains flag on return, if childs value was changed. - logical, intent(out), optional :: changed - - logical :: tReplace, tChanged - integer :: ind - - if (present(replace)) then - tReplace = replace - else - tReplace = .false. - end if - - if (len(modifier) > 0) then - tChanged = .true. - ind = getModifierIndex(modifier, units, child) - convertValue = convertValue * units(ind)%convertValue - if (tReplace) then - call setChildValue(child, "", convertValue, .true.) - end if - else - tChanged = .false. - end if - - if (present(changed)) then - changed = tChanged - end if - - end subroutine convertByMul_real - +#:for RANK in UNIT_CONVERSION_RANKS - !> Implementation of convertByMul for real rank one array. - subroutine convertByMul_realR1(modifier, units, child, convertValue, replace, changed) + !> Implementation of convertUnitHsd for given rank + !> + !> Stops by calling detailedError(), if modifier is not found among the passed units. + !> + subroutine convertUnitHsdR${RANK}$(modifier, units, child, convertValue, replace, changed) !> Modifier (name of the unit to use) character(len=*), intent(in) :: modifier !> Array of the possible units - type(unit), intent(in) :: units(:) + type(TUnit), intent(in) :: units(:) !> The child, which carries the modifier. type(fnode), pointer :: child !> Value to convert, converted value on return. - real(dp), intent(inout) :: convertValue(:) + real(dp), intent(inout) :: convertValue${FORTRAN_ARG_DIM_SUFFIX(RANK)}$ !> If childs value should replaced by the new value (default: .false.) logical, intent(in), optional :: replace @@ -352,79 +267,33 @@ subroutine convertByMul_realR1(modifier, units, child, convertValue, replace, ch !> Contains flag on return, if childs value was changed. logical, intent(out), optional :: changed - logical :: tReplace, tChanged - integer :: ind + + logical :: replace_, changed_ + integer :: status if (present(replace)) then - tReplace = replace + replace_ = replace else - tReplace = .false. + replace_ = .false. end if - if (len(modifier) > 0) then - tChanged = .true. - ind = getModifierIndex(modifier, units, child) - convertValue = convertValue * units(ind)%convertValue - if (tReplace) then + changed_ = len(modifier) > 0 + if (changed_) then + call convertUnit(units, modifier, convertValue, status) + if (status /= unitConvStat%ok) then + call detailedError(child, MSG_INVALID_MODIFIER // modifier) + end if + if (replace_) then call setChildValue(child, "", convertValue, .true.) end if - else - tChanged = .false. end if - if (present(changed)) then - changed = tChanged - end if - - end subroutine convertByMul_realR1 - - - !> Implementation of convertByMul for real rank two array. - subroutine convertByMul_realR2(modifier, units, child, convertValue, replace, changed) - - !> Modifier (name of the unit to use) - character(len=*), intent(in) :: modifier - - !> Array of the possible units - type(unit), intent(in) :: units(:) - - !> The child, which carries the modifier. - type(fnode), pointer :: child - - !> Value to convert, converted value on return. - real(dp), intent(inout) :: convertValue(:,:) - - !> If childs value should replaced by the new value (default: .false.) - logical, intent(in), optional :: replace - - !> Contains flag on return, if childs value was changed. - logical, intent(out), optional :: changed - - logical :: tReplace, tChanged - integer :: ind + if (present(changed)) changed = changed_ - if (present(replace)) then - tReplace = replace - else - tReplace = .false. - end if + end subroutine convertUnitHsdR${RANK}$ - if (len(modifier) > 0) then - tChanged = .true. - ind = getModifierIndex(modifier, units, child) - convertValue = convertValue * units(ind)%convertValue - if (tReplace) then - call setChildValue(child, "", convertValue, .true.) - end if - else - tChanged = .false. - end if - - if (present(changed)) then - changed = tChanged - end if +#:endfor - end subroutine convertByMul_realR2 !> Returns a descendant of a given node. diff --git a/src/dftbp/solvation/solvparser.F90 b/src/dftbp/solvation/solvparser.F90 index f5bfee55df..20bcfdfce8 100644 --- a/src/dftbp/solvation/solvparser.F90 +++ b/src/dftbp/solvation/solvparser.F90 @@ -23,7 +23,7 @@ module dftbp_solvation_solvparser use dftbp_io_charmanip, only : tolower, unquote use dftbp_io_hsdutils, only : getChild, getChildValue, setChild, detailedError, & & detailedWarning - use dftbp_io_hsdutils2, only : convertByMul + use dftbp_io_hsdutils2, only : convertUnitHsd use dftbp_math_bisect, only : bisection use dftbp_solvation_born, only : TGBInput, fgbKernel use dftbp_solvation_cm5, only : TCM5Input @@ -151,12 +151,12 @@ subroutine readSolvGB(node, geo, input) call getChildValue(node, "FreeEnergyShift", shift, modifier=modifier, & & child=field) end if - call convertByMul(char(modifier), energyUnits, field, shift) + call convertUnitHsd(char(modifier), energyUnits, field, shift) ! temperature, influence depends on the reference state call getChildValue(node, "Temperature", temperature, ambientTemperature, & & modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, temperature) + call convertUnitHsd(char(modifier), energyUnits, field, temperature) ! reference state for free energy calculation call readReferenceState(node, solvent, temperature, shift, input%freeEnergyShift) @@ -169,7 +169,7 @@ subroutine readSolvGB(node, geo, input) call getChildValue(node, "BornScale", input%bornScale) call getChildValue(node, "BornOffset", input%bornOffset, modifier=modifier, child=field) end if - call convertByMul(char(modifier), lengthUnits, field, input%bornOffset) + call convertUnitHsd(char(modifier), lengthUnits, field, input%bornOffset) call getChildValue(node, "OBCCorrection", input%obc, [1.00_dp, 0.80_dp, 4.85_dp]) call getChild(node, "CM5", child, requested=.false.) @@ -204,7 +204,7 @@ subroutine readSolvGB(node, geo, input) call getChildValue(node, "Cutoff", input%rCutoff, 35.0_dp * AA__Bohr, & & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, input%rCutoff) + call convertUnitHsd(char(modifier), lengthUnits, field, input%rCutoff) call getChild(node, "SASA", value1, requested=.false.) if (associated(value1) .or. allocated(defaults)) then @@ -285,12 +285,12 @@ subroutine readSolvCosmo(node, geo, input) ! shift value for the free energy (usually zero) call getChildValue(node, "FreeEnergyShift", shift, 0.0_dp, modifier=modifier, & & child=field) - call convertByMul(char(modifier), energyUnits, field, shift) + call convertUnitHsd(char(modifier), energyUnits, field, shift) ! temperature, influence depends on the reference state call getChildValue(node, "Temperature", temperature, ambientTemperature, & & modifier=modifier, child=field) - call convertByMul(char(modifier), energyUnits, field, temperature) + call convertUnitHsd(char(modifier), energyUnits, field, temperature) call readReferenceState(node, solvent, temperature, shift, input%freeEnergyShift) @@ -365,11 +365,11 @@ subroutine readSolvSASA(node, geo, input, probeRadDefault, surfaceTensionDefault call getChildValue(node, "ProbeRadius", input%probeRad, probeRadDefault, & & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, input%probeRad) + call convertUnitHsd(char(modifier), lengthUnits, field, input%probeRad) call getChildValue(node, "Smoothing", input%smoothingPar, 0.3_dp*AA__Bohr, & & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, input%smoothingPar) + call convertUnitHsd(char(modifier), lengthUnits, field, input%smoothingPar) call getChildValue(node, "Tolerance", input%tolerance, 1.0e-6_dp, child=child) @@ -399,7 +399,7 @@ subroutine readSolvSASA(node, geo, input, probeRadDefault, surfaceTensionDefault call getChildValue(node, "Offset", input%sOffset, 2.0_dp * AA__Bohr, & & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, input%sOffset) + call convertUnitHsd(char(modifier), lengthUnits, field, input%sOffset) end subroutine readSolvSASA @@ -423,13 +423,13 @@ subroutine readCM5(node, input, geo) call getChildValue(node, "Alpha", input%alpha, 2.474_dp/AA__Bohr, & & modifier=modifier, child=field) - call convertByMul(char(modifier), inverseLengthUnits, field, input%alpha) + call convertUnitHsd(char(modifier), inverseLengthUnits, field, input%alpha) conv = 1.0_dp allocate(input%atomicRad(geo%nSpecies)) call getChildValue(node, "Radii", value1, "AtomicRadii", child=child) call getChild(value1, "", dummy, modifier=modifier) - call convertByMul(char(modifier), lengthUnits, child, conv) + call convertUnitHsd(char(modifier), lengthUnits, child, conv) call getNodeName(value1, buffer) select case(char(buffer)) case default @@ -450,7 +450,7 @@ subroutine readCM5(node, input, geo) call getChildValue(node, "Cutoff", input%rCutoff, 30.0_dp, & & modifier=modifier, child=field) - call convertByMul(char(modifier), lengthUnits, field, input%rCutoff) + call convertUnitHsd(char(modifier), lengthUnits, field, input%rCutoff) end subroutine readCM5 @@ -491,10 +491,10 @@ subroutine readSolvent(node, solvent) end if call getChildValue(value1, "MolecularMass", solvent%molecularMass, & & modifier=modifier, child=field) - call convertByMul(char(modifier), massUnits, field, solvent%molecularMass) + call convertUnitHsd(char(modifier), massUnits, field, solvent%molecularMass) call getChildValue(value1, "Density", solvent%density, modifier=modifier, & & child=field) - call convertByMul(char(modifier), massDensityUnits, field, solvent%density) + call convertUnitHsd(char(modifier), massDensityUnits, field, solvent%density) end select end subroutine readSolvent @@ -563,7 +563,7 @@ subroutine readVanDerWaalsRad(node, geo, vdwRad) allocate(vdwRad(geo%nSpecies)) call getChildValue(node, "Radii", value1, "vanDerWaalsRadiiD3", child=child) call getChild(value1, "", dummy, modifier=modifier) - call convertByMul(char(modifier), lengthUnits, child, conv) + call convertUnitHsd(char(modifier), lengthUnits, child, conv) call getNodeName(value1, buffer) select case(char(buffer)) case default diff --git a/src/dftbp/type/typegeometryhsd.F90 b/src/dftbp/type/typegeometryhsd.F90 index 2a9eac6ab0..3439a851ae 100644 --- a/src/dftbp/type/typegeometryhsd.F90 +++ b/src/dftbp/type/typegeometryhsd.F90 @@ -14,7 +14,7 @@ module dftbp_type_typegeometryhsd use dftbp_io_charmanip, only : i2c, tolower use dftbp_io_hsdutils, only : getChildValue, setChildValue, detailedWarning, detailedError,& & checkError, getFirstTextChild, writeChildValue - use dftbp_io_hsdutils2, only : getModifierIndex, splitModifier, convertByMul + use dftbp_io_hsdutils2, only : splitModifier, convertUnitHsd use dftbp_io_message, only : error use dftbp_io_tokenreader, only : TOKEN_OK, TOKEN_ERROR, getNextToken use dftbp_math_simplealgebra, only : invert33, determinant33 @@ -101,7 +101,6 @@ subroutine readTGeometryHSD(node, geo) type(TGeometry), intent(out) :: geo type(string) :: modifier, modifs(2) - integer :: ind type(TListString) :: stringBuffer type(TListRealR1) :: realBuffer type(TListIntR1) :: intBuffer @@ -155,11 +154,9 @@ subroutine readTGeometryHSD(node, geo) end if geo%tFracCoord = .true. case default - ind = getModifierIndex(char(modifier), lengthUnits, typesAndCoords) - geo%coords(:,:) = geo%coords * lengthUnits(ind)%convertValue - call setChildValue(typesAndCoords, "", & - &reshape(geo%species, (/ 1, size(geo%species) /)), geo%coords, & - &replace=.true.) + call convertUnitHsd(char(modifier), lengthUnits, typesAndCoords, geo%coords) + call setChildValue(typesAndCoords, "", reshape(geo%species, [1, size(geo%species)]),& + & geo%coords, replace=.true.) end select end if if (geo%tPeriodic) then @@ -169,22 +166,13 @@ subroutine readTGeometryHSD(node, geo) else call getChildValue(node, "CoordinateOrigin", geo%origin, [0.0_dp,0.0_dp,0.0_dp],& & modifier=modifier, child=child) - if (len(modifier) > 0) then - ind = getModifierIndex(char(modifier), lengthUnits, child) - geo%origin(:) = geo%origin * lengthUnits(ind)%convertValue - call setChildValue(child, "", geo%origin, .true.) - end if + call convertUnitHsd(char(modifier), lengthUnits, child, geo%origin, replace=.true.) end if geo%coords(:,:) = geo%coords - spread(geo%origin, 2, geo%nAtom) allocate(geo%latVecs(3,3)) - call getChildValue(node, "LatticeVectors", latvec, modifier=modifier, & - &child=child) - geo%latVecs(:,:) = reshape(latvec, (/3, 3/)) - if (len(modifier) > 0) then - ind = getModifierIndex(char(modifier), lengthUnits, child) - geo%latVecs(:,:) = geo%latVecs * lengthUnits(ind)%convertValue - call setChildValue(child, "", geo%latVecs, .true.) - end if + call getChildValue(node, "LatticeVectors", latvec, modifier=modifier, child=child) + call convertUnitHsd(char(modifier), lengthUnits, child, latvec, replace=.true.) + geo%latVecs(:,:) = reshape(latvec, [3, 3]) if (geo%tFracCoord) then geo%coords(:,:) = matmul(geo%latVecs, geo%coords) geo%origin(:) = matmul(geo%latVecs, geo%origin) @@ -201,18 +189,14 @@ subroutine readTGeometryHSD(node, geo) if (geo%tHelical) then allocate(geo%origin(3)) call getChildValue(node, "CoordinateOrigin", geo%origin, modifier=modifier, child=child) - if (len(modifier) > 0) then - ind = getModifierIndex(char(modifier), lengthUnits, child) - geo%origin(:) = geo%origin * lengthUnits(ind)%convertValue - call setChildValue(child, "", geo%origin, .true.) - end if + call convertUnitHsd(char(modifier), lengthUnits, child, geo%origin, replace=.true.) geo%coords(:,:) = geo%coords - spread(geo%origin, 2, geo%nAtom) allocate(geo%latVecs(3, 1)) call getChildValue(node, "LatticeVectors", helVec, modifier=modifier, child=child) if (len(modifier) > 0) then call splitModifier(char(modifier), child, modifs) - call convertByMul(char(modifs(1)), lengthUnits, child, helVec(1), .false.) - call convertByMul(char(modifs(2)), angularUnits, child, helVec(2), .false.) + call convertUnitHsd(char(modifs(1)), lengthUnits, child, helVec(1)) + call convertUnitHsd(char(modifs(2)), angularUnits, child, helVec(2)) end if geo%latVecs(:3,1) = helVec if (geo%latVecs(3,1) < 1) then diff --git a/test/app/dftb+/timeprop/benzene_laser/dftb_in.hsd b/test/app/dftb+/timeprop/benzene_laser/dftb_in.hsd index b3a6818411..37472aae92 100644 --- a/test/app/dftb+/timeprop/benzene_laser/dftb_in.hsd +++ b/test/app/dftb+/timeprop/benzene_laser/dftb_in.hsd @@ -44,7 +44,7 @@ ElectronDynamics = { TimeStep [au] = 0.2 Perturbation = Laser { PolarizationDirection = 0.0 1.0 1.0 - LaserEnergy [eV] = 6.795 + LaserEnergy [nm] = 182.4638696480521 # = 6.795 eV } FieldStrength [v/a] = 0.01 Populations = Yes From 17329be8df50943fa1c6abc0afa8fccfde9b6b12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Tue, 17 May 2022 21:44:12 +0200 Subject: [PATCH 11/36] Add more compiler version info to INSTALL.rst (#1028) --- INSTALL.rst | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/INSTALL.rst b/INSTALL.rst index 165578046f..bd07af1719 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -12,11 +12,11 @@ Requirements In order to compile DFTB+, you need the following software components: -* Fortran 2003 compliant compiler +* Fortran compiler supporting Fortran 2008 and OpenMP 4.0 * C compiler -* C++ compiler (built with ELSI/PEXSI or ChIMES support) +* C++ compiler (when built with ELSI/PEXSI or ChIMES support) * CMake (version 3.16 or newer) @@ -27,6 +27,34 @@ In order to compile DFTB+, you need the following software components: * Python (version >= 3.2) for the source preprocessor +Fortran compiler +---------------- + +The following Fortran compilers are known to build DFTB+ correctly: + +* GNU >= 9 + +* Intel >= 19 or >= 2020 (when built to include the tblite library, as tblite is + known to produce incorrect results with Intel 19) + +* NAG >= 7.1 (when built without OpenMP support) + + +The following Fortran compilers are known to fail to build DFTB+: + +* NAG (when built with OpenMP support, unsupported OpenMP 4.0 constructs, last + tested version: 7.1) + +* NVIDIA (internal compiler error & unsupported OpenMP 4.0 constructs, last + tested version: 22.3) + + +Older versions of the compilers above are likely to fail due to missing Fortran +features and/or compiler bugs. Compilers by other vendors may work, but have not +been tested extensively (see also `Tested build environments +<#tested-build-environments>`_ and `Testing DFTB+ <#testing-dftb>`_). + + Optional extra dependencies --------------------------- From b6c31e044dfd81ae046f43f05b1594b9559371fd Mon Sep 17 00:00:00 2001 From: inseonglee Date: Wed, 18 May 2022 14:06:07 +0900 Subject: [PATCH 12/36] Recover minNeighDist to minNeighDist2 agian --- src/dftbp/dftb/periodic.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dftbp/dftb/periodic.F90 b/src/dftbp/dftb/periodic.F90 index bb3a3e422b..983247c325 100644 --- a/src/dftbp/dftb/periodic.F90 +++ b/src/dftbp/dftb/periodic.F90 @@ -536,7 +536,7 @@ subroutine updateNeighbourList(coord, img2CentCell, iCellVec, neigh, nAllAtom, c end if ! check for atoms on top of each other - if (nn1 > 0 .and. neighDist2(1,iAtom1) < minNeighDist) then + if (nn1 > 0 .and. neighDist2(1,iAtom1) < minNeighDist2) then iAtom2 = img2CentCell(iNeighbour(1,iAtom1)) write(strError, "(A,I0,A,I0,A)") "Atoms ", iAtom1, " and ", iAtom2, " too close together" call error(strError) From fcb13869a329f925873bd6da8660f45f88851d43 Mon Sep 17 00:00:00 2001 From: Franco Bonafe Date: Fri, 20 May 2022 15:52:59 +0200 Subject: [PATCH 13/36] Create directory for output of pump frame files --- doc/dftb+/manual/dftbp.tex | 3 ++- src/dftbp/timedep/timeprop.F90 | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/dftb+/manual/dftbp.tex b/doc/dftb+/manual/dftbp.tex index d3ad0a8e1a..c39473d3d0 100644 --- a/doc/dftb+/manual/dftbp.tex +++ b/doc/dftb+/manual/dftbp.tex @@ -5317,8 +5317,9 @@ \section{ElectronDynamics} \item[\is{Pump}] If this trajectory corresponds to the dynamics under a pump pulse, with the intention to probe the system afterwards at different delay times, to simulate a pump-probe transient absorption - experiment. The effect of the keyword is to write dump files named + experiment. The effect of the keyword is to write dump files \textit{i}\verb|ppdump.bin| ($i=0,\dots,\mathrm{PumpProbeFrames}$) + inside the \verb|pump_frames| directory, containing the state of the system (density matrix, coordinates, velocities) every a given number of steps. diff --git a/src/dftbp/timedep/timeprop.F90 b/src/dftbp/timedep/timeprop.F90 index 5aef582b59..f0c26e8980 100644 --- a/src/dftbp/timedep/timeprop.F90 +++ b/src/dftbp/timedep/timeprop.F90 @@ -355,6 +355,8 @@ module dftbp_timedep_timeprop !> Prefix for dump files for restart character(*), parameter :: restartFileName = 'tddump' + character(*), parameter :: pumpFilesDir = 'pump_frames' + contains !> Initialisation of input variables @@ -2143,7 +2145,7 @@ subroutine initTDOutput(this, dipoleDat, qDat, energyDat, populDat, forceDat, co character(20) :: dipoleFileName character(1) :: strSpin character(3) :: strK - integer :: iSpin, iKS, iK + integer :: iSpin, iKS, iK, iErr if (this%tKick) then if (this%currPolDir == 1) then @@ -2234,6 +2236,14 @@ subroutine initTDOutput(this, dipoleDat, qDat, energyDat, populDat, forceDat, co end do end if + iErr = -999 + if (this%tPump) then + call execute_command_line("mkdir "//trim(pumpFilesDir), exitstat=iErr) + if (iErr /= 0) then + write (stdOut,*) 'cannot create '//trim(pumpFilesDir)//', error status of mkdir: ', iErr + end if + end if + end subroutine initTDOutput @@ -4107,7 +4117,7 @@ subroutine doTdStep(this, boundaryCond, iStep, coord, orb, neighbourList, nNeigh velInternal(:,:) = 0.0_dp end if call writeRestartFile(this%rho, this%rhoOld, coord, velInternal, this%time, this%dt,& - & trim(dumpIdx) // 'ppdump', this%tWriteRestartAscii, errStatus) + & trim(pumpFilesDir) // '/' // trim(dumpIdx) // 'ppdump', this%tWriteRestartAscii, errStatus) @:PROPAGATE_ERROR(errStatus) deallocate(velInternal) end if From f5a476f4ed4b400b9610accb58565c6649e57d0f Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sun, 22 May 2022 09:32:31 +0100 Subject: [PATCH 14/36] Fix md.out unit format for dipoles --- src/dftbp/dftbplus/mainio.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dftbp/dftbplus/mainio.F90 b/src/dftbp/dftbplus/mainio.F90 index b04d1adaea..e7e92343c4 100644 --- a/src/dftbp/dftbplus/mainio.F90 +++ b/src/dftbp/dftbplus/mainio.F90 @@ -3913,9 +3913,9 @@ subroutine writeMdOut2(fd, tStress, tPeriodic, tBarostat, isLinResp, eField, tFi write(fd, "(A)")trim(dipoleMessage) end if ii = size(dipoleMoment, dim=2) - write(fd, "(A, 3F14.8, A)") 'Dipole moment:',& + write(fd, "(A, 3F14.8, 1X,A)") 'Dipole moment:',& & eFieldScaling%scaledSoluteDipole(dipoleMoment(:,ii)), 'au' - write(fd, "(A, 3F14.8, A)") 'Dipole moment:',& + write(fd, "(A, 3F14.8, 1X, A)") 'Dipole moment:',& & eFieldScaling%scaledSoluteDipole(dipoleMoment(:,ii)) * au__Debye, 'Debye' end if From 8b193227bac59ed395d5caa96ce8e837d31ebcc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Sun, 22 May 2022 10:49:01 +0200 Subject: [PATCH 15/36] Treat indirect dependencies only when really needed (#1035) --- CMakeLists.txt | 57 +++++++++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 95c8f84103..9f69671dc6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -174,6 +174,9 @@ if(WITH_CHIMES) set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 0) endif() +# If INCLUDE_INDIRECT_DEPS is non-empty, indirect dependencies must also be explicitely treated +string(REGEX MATCH "(^|;)[Ss]ubmodule(^|;)" INCLUDE_INDIRECT_DEPS "${HYBRID_CONFIG_METHODS}") + # Note: GIT_TAG hashes below must be updated with the utils/test/check_submodule_commits script! if(WITH_MPI) @@ -218,17 +221,21 @@ if(WITH_TBLITE OR WITH_SDFTD3) external/mctc-lib "${exclude}" "${MCTC_LIB_GIT_REPOSITORY}" "${MCTC_LIB_GIT_TAG}") #list(APPEND PKG_CONFIG_REQUIRES mctc-lib) - set(MSTORE_GIT_REPOSITORY "https://github.com/grimme-lab/mstore.git") - set(MSTORE_GIT_TAG "90fc6fc4d8a6c3d72e5a910347a45edabf65343c") # do not change manually! - dftbp_config_hybrid_dependency(mstore mstore::mstore "${HYBRID_CONFIG_METHODS}" "QUIET" - external/mstore "${exclude}" "${MSTORE_GIT_REPOSITORY}" "${MSTORE_GIT_TAG}") - #list(APPEND PKG_CONFIG_REQUIRES mstore) + if(INCLUDE_INDIRECT_DEPS) + set(MSTORE_GIT_REPOSITORY "https://github.com/grimme-lab/mstore.git") + set(MSTORE_GIT_TAG "90fc6fc4d8a6c3d72e5a910347a45edabf65343c") # do not change manually! + dftbp_config_hybrid_dependency(mstore mstore::mstore "${HYBRID_CONFIG_METHODS}" "QUIET" + external/mstore "${exclude}" "${MSTORE_GIT_REPOSITORY}" "${MSTORE_GIT_TAG}") + #list(APPEND PKG_CONFIG_REQUIRES mstore) + endif() - set(TOML_F_GIT_REPOSITORY "https://github.com/toml-f/toml-f.git") - set(TOML_F_GIT_TAG "f066ec6e7fb96d8faf83ab6614ee664a26ad8d57") # do not change manually! - dftbp_config_hybrid_dependency(toml-f toml-f::toml-f "${HYBRID_CONFIG_METHODS}" "QUIET" - external/toml-f "${exclude}" "${TOML_F_GIT_REPOSITORY}" "${TOML_F_GIT_TAG}") - #list(APPEND PKG_CONFIG_REQUIRES toml-f) + if(INCLUDE_INDIRECT_DEPS) + set(TOML_F_GIT_REPOSITORY "https://github.com/toml-f/toml-f.git") + set(TOML_F_GIT_TAG "f066ec6e7fb96d8faf83ab6614ee664a26ad8d57") # do not change manually! + dftbp_config_hybrid_dependency(toml-f toml-f::toml-f "${HYBRID_CONFIG_METHODS}" "QUIET" + external/toml-f "${exclude}" "${TOML_F_GIT_REPOSITORY}" "${TOML_F_GIT_TAG}") + #list(APPEND PKG_CONFIG_REQUIRES toml-f) + endif() set(S_DFTD3_GIT_REPOSITORY "https://github.com/awvwgk/simple-dftd3.git") set(S_DFTD3_GIT_TAG "02dead293e59408100eb382e97be56e2a03fb317") # do not change manually! @@ -238,17 +245,22 @@ if(WITH_TBLITE OR WITH_SDFTD3) endif() if(WITH_TBLITE) - set(MULTICHARGE_GIT_REPOSITORY "https://github.com/grimme-lab/multicharge.git") - set(MULTICHARGE_GIT_TAG "46ea4e370b1a59e01cc022d1f65c64bae8dbf968") # do not change manually! - dftbp_config_hybrid_dependency(multicharge multicharge::multicharge "${HYBRID_CONFIG_METHODS}" "QUIET" - external/multicharge "${exclude}" "${MULTICHARGE_GIT_REPOSITORY}" "${MULTICHARGE_GIT_TAG}") - #list(APPEND PKG_CONFIG_REQUIRES multicharge) - - set(DFTD4_GIT_REPOSITORY "https://github.com/dftd4/dftd4.git") - set(DFTD4_GIT_TAG "f572723f5a5cb8243ea88b0253e182088311c6f3") # do not change manually! - dftbp_config_hybrid_dependency(dftd4 dftd4::dftd4 "${HYBRID_CONFIG_METHODS}" "QUIET" - external/dftd4 "${exclude}" "${DFTD4_GIT_REPOSITORY}" "${DFTD4_GIT_TAG}") - #list(APPEND PKG_CONFIG_REQUIRES dftd4) + if(INCLUDE_INDIRECT_DEPS) + set(MULTICHARGE_GIT_REPOSITORY "https://github.com/grimme-lab/multicharge.git") + set(MULTICHARGE_GIT_TAG "46ea4e370b1a59e01cc022d1f65c64bae8dbf968") # do not change manually! + dftbp_config_hybrid_dependency(multicharge multicharge::multicharge "${HYBRID_CONFIG_METHODS}" + "QUIET" external/multicharge "${exclude}" "${MULTICHARGE_GIT_REPOSITORY}" + "${MULTICHARGE_GIT_TAG}") + #list(APPEND PKG_CONFIG_REQUIRES multicharge) + endif() + + if(INCLUDE_INDIRECT_DEPS) + set(DFTD4_GIT_REPOSITORY "https://github.com/dftd4/dftd4.git") + set(DFTD4_GIT_TAG "f572723f5a5cb8243ea88b0253e182088311c6f3") # do not change manually! + dftbp_config_hybrid_dependency(dftd4 dftd4::dftd4 "${HYBRID_CONFIG_METHODS}" "QUIET" + external/dftd4 "${exclude}" "${DFTD4_GIT_REPOSITORY}" "${DFTD4_GIT_TAG}") + #list(APPEND PKG_CONFIG_REQUIRES dftd4) + endif() set(TBLITE_GIT_REPOSITORY "https://github.com/tblite/tblite.git") set(TBLITE_GIT_TAG "0542ce7ae0e323941156949a0620ca260bc0ce7f") # do not change manually! @@ -262,7 +274,8 @@ endif() if(WITH_CHIMES) set(CHIMES_GIT_REPOSITORY "https://github.com/dftbplus/chimes_calculator.git") set(CHIMES_GIT_TAG "98e365365d3b3e4b11b363b4a50dd2ad6cc825d4") # do not change manually! - dftbp_config_hybrid_dependency(ChimesCalc ChimesCalc::ChimesCalc_Fortran "${HYBRID_CONFIG_METHODS}" "QUIET" + dftbp_config_hybrid_dependency(ChimesCalc ChimesCalc::ChimesCalc_Fortran + "${HYBRID_CONFIG_METHODS}" "QUIET" external/chimes "${exclude}" "${CHIMES_GIT_REPOSITORY}" "${CHIMES_GIT_TAG}") endif() From d0471ff5e54cf8da815b61c5f20140ca1d0f0a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Mon, 16 May 2022 12:33:09 +0200 Subject: [PATCH 16/36] Prepare release 22.1 --- CHANGELOG.rst | 11 ++--- CMakeLists.txt | 2 +- INSTALL.rst | 9 ++-- README.rst | 24 +++++++++-- app/misc/units/printunits.F90 | 9 +++- doc/api/doxygen/Doxyfile | 2 +- doc/api/ford/dftbplus-api.md | 2 +- doc/dftb+/doxygen/Doxyfile | 2 +- doc/dftb+/ford/dftbplus-project-file.md | 2 +- doc/dftb+/manual/manual.tex | 2 +- doc/dftb+/manual/releases.tex | 1 + doc/dptools/api/conf.py | 4 +- sys/gnu-mkl-static.cmake | 5 ++- tools/dptools/setup.py | 2 +- utils/srcmanip/set_version | 44 ++----------------- utils/workarounds/dtypeio.f90 | 56 +++++++++++++++++++++++++ 16 files changed, 110 insertions(+), 67 deletions(-) create mode 100644 utils/workarounds/dtypeio.f90 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9483a8e66a..737173821d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,21 +5,19 @@ Change Log Notable project changes since release 1.3.1 (2017-02-22). -Unreleased -========== +22.1 (2022-05-19) +================= Added ----- - Real time electronic dynamics for xTB Hamiltonian -- Support for MPI-parallel GPU accelerated calculations via ELPA/ELSI library - - Real time electronic dynamics for range separated DFTB - Support for MPI-parallel GPU accelerated calculations via ELPA/ELSI library -- (Optionally) Rescale externally applied fields and dipole moments +- (Optionally) rescale externally applied fields and dipole moments when implicit solvents are used - Enable lattice constraints in new geometry optimization driver @@ -28,6 +26,9 @@ Added - API call for CM5 charges +- Numerical Hessian calculation can be split over multiple runs + + Changed ------- diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f69671dc6..b7941c2898 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ include(DftbPlusUtils) dftbp_ensure_out_of_source_build() dftbp_load_build_settings() -set(DFTBPLUS_VERSION "21.2") +set(DFTBPLUS_VERSION "22.1") project(dftbplus VERSION ${DFTBPLUS_VERSION} LANGUAGES Fortran C) diff --git a/INSTALL.rst b/INSTALL.rst index bd07af1719..ca59947403 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -115,7 +115,7 @@ following architectures: +---------------+----------------------+-------------+------------------+-----+ | Architecture | Compiler | MPI | Ext. libraries |Notes| +===============+======================+=============+==================+=====+ -| x86_64 / | GNU Fortran/C 8.4 | OpenMPI 3.1 | OpenBlas 0.3.7, | | +| x86_64 / | GNU Fortran/C 9.2 | OpenMPI 4.0 | OpenBlas 0.3.7, | | | Linux | | | ScaLAPACK 2.1 | | | | | | ELSI 2.6.1 | | +---------------+----------------------+-------------+------------------+-----+ @@ -126,11 +126,10 @@ following architectures: | x86_64 / | Intel Fortran/C 19.0 | MPICH 3.3 | MKL 19.0 | | | Linux | | | ELSI 2.6.1 | | +---------------+----------------------+-------------+------------------+-----+ -| x86_64 / | NAG Fortran 7.0 | MPICH 3.3 | OpenBlas 0.3.7 | [1] | +| x86_64 / | NAG Fortran 7.1 | MPICH 3.4 | OpenBlas 0.3.18 | [1] | | Linux | GNU C 9.2 | | ScaLAPACK 2.1 | | -| | | | ELSI 2.5.0 | | +---------------+----------------------+-------------+------------------+-----+ -| x86_64 / | GNU Fortran/C 9.4 | -- | OpenBlas 0.3.18 | [2] | +| x86_64 / | GNU Fortran/C 9.4 | -- | OpenBlas 0.3.20 | [2] | | OS X | | | | | +---------------+----------------------+-------------+------------------+-----+ @@ -139,7 +138,7 @@ libraries. Notes: -[1] Only Debug build is tested regulary with OpenMP turned off. +[1] Only Debug build is tested regulary with OpenMP turned off and without ELSI. [2] Only partial testing of the serial version. diff --git a/README.rst b/README.rst index ae4a4ddc58..2133c25f98 100644 --- a/README.rst +++ b/README.rst @@ -28,12 +28,28 @@ management framework using `Miniconda ``conda-forge`` channel in order to be able to access DFTB+. (Please consult the conda documentation for how to set-up your conda environment.) -We provide several build variants (mpi, non-mpi), choose the one suiting your -needs. For example, by issuing :: +We recommend the use of the `mamba installer `_, +as we have experienced dependency resolution problems with the original Ccnda +installer in the past:: - conda install 'dftbplus=*=nompi_*' + conda install -n base mamba -you obtain the latest stable non-MPI version of DFTB+. +We provide several build variants, choose the one suiting your needs. For +example, by issuing :: + + mamba install 'dftbplus=*=nompi_*' + +or :: + + mamba install 'dftbplus=*=mpi_mpich_*' + +or :: + + mamba install 'dftbplus=*=mpi_openmpi_*' + +to get the last stable release of DFTB+ with, respectively, +serial(OpenMP-threaded) build or with MPI-parallelized build using either the +MPICH or the Open MPI framework. Downloading the binary diff --git a/app/misc/units/printunits.F90 b/app/misc/units/printunits.F90 index 3447f46839..6561f1903a 100644 --- a/app/misc/units/printunits.F90 +++ b/app/misc/units/printunits.F90 @@ -19,9 +19,10 @@ program printunits use dftbp_common_unitconversion, only : lengthUnits, inverseLengthUnits, energyUnits, forceUnits,& & timeUnits, freqUnits, volumeUnits, chargeUnits, eFieldUnits, bFieldUnits, pressureUnits,& - & velocityUnits, dipoleUnits, massUnits, angularUnits, massDensityUnits + & velocityUnits, dipoleUnits, massUnits, angularUnits, massDensityUnits, TUnit implicit none + type(TUnit) :: localUnit integer :: ii write(*,*)"Convert from unit to a.u. by multiplying with" @@ -29,7 +30,11 @@ program printunits write(*,*) write(*,"(a)")"${names}$:" do ii = 1, size(${units}$) - write(*,"(1x,dt)") ${units}$(ii) + ! Workaround: nag 7.1 + ! Can not print derived type, if part of an array + ! write(*,"(1x,dt)") ${units}$(ii) + localUnit = ${units}$(ii) + write(*,"(1x,dt)") localUnit end do #:endfor diff --git a/doc/api/doxygen/Doxyfile b/doc/api/doxygen/Doxyfile index 1945b4a773..bbb6f20aaf 100644 --- a/doc/api/doxygen/Doxyfile +++ b/doc/api/doxygen/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = DFTB+API # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 21.2 +PROJECT_NUMBER = 22.1 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. diff --git a/doc/api/ford/dftbplus-api.md b/doc/api/ford/dftbplus-api.md index 1c40197a92..acd30a5a2f 100644 --- a/doc/api/ford/dftbplus-api.md +++ b/doc/api/ford/dftbplus-api.md @@ -3,7 +3,7 @@ macro: WITH_ARPACK=0 WITH_DFTD3=1 WITH_SOCKETS=0 - RELEASE=21.2 + RELEASE=22.1 preprocess: true src_dir: ../../../src/dftbp/api/mm diff --git a/doc/dftb+/doxygen/Doxyfile b/doc/dftb+/doxygen/Doxyfile index 44702d218a..4a620b4fa6 100644 --- a/doc/dftb+/doxygen/Doxyfile +++ b/doc/dftb+/doxygen/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = DFTB+ # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 21.2 +PROJECT_NUMBER = 22.1 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. diff --git a/doc/dftb+/ford/dftbplus-project-file.md b/doc/dftb+/ford/dftbplus-project-file.md index 8ceea32aa6..8131d5fe68 100644 --- a/doc/dftb+/ford/dftbplus-project-file.md +++ b/doc/dftb+/ford/dftbplus-project-file.md @@ -4,7 +4,7 @@ macro: WITH_ARPACK=1 WITH_DFTD3=1 WITH_SOCKETS=1 - RELEASE=21.2 + RELEASE=22.1 preprocess: true src_dir: ../../../app/dftb+ diff --git a/doc/dftb+/manual/manual.tex b/doc/dftb+/manual/manual.tex index f5db298557..91d063dd67 100644 --- a/doc/dftb+/manual/manual.tex +++ b/doc/dftb+/manual/manual.tex @@ -4,7 +4,7 @@ \makeindex \include{newcommands} -\title{\textbf{{\dftbp}\\[0.5cm]Version 21.2\\[1.5cm] +\title{\textbf{{\dftbp}\\[0.5cm]Version 22.1\\[1.5cm] {U\,S\,E\,R\,\ \, M\,A\,N\,U\,A\,L}}} \date{} \author{} diff --git a/doc/dftb+/manual/releases.tex b/doc/dftb+/manual/releases.tex index ec76de27ba..77b39389fa 100644 --- a/doc/dftb+/manual/releases.tex +++ b/doc/dftb+/manual/releases.tex @@ -8,6 +8,7 @@ \chapter{\dftbp{} Releases} \begin{tabular}{ccc} \is{InputVersion} / Release & \is{ParserVersion} & Date available\\ \hline + 22.1 & 11 & \DTMdate{2022-05-19}\\ 21.2 & 10 & \DTMdate{2021-12-13}\\ 21.1 & 9 & \DTMdate{2021-05-12}\\ 20.2 & 9 & \DTMdate{2020-11-17}\\ diff --git a/doc/dptools/api/conf.py b/doc/dptools/api/conf.py index cf6b6e3dea..9753c6dfdd 100644 --- a/doc/dptools/api/conf.py +++ b/doc/dptools/api/conf.py @@ -55,9 +55,9 @@ # built documents. # # The short X.Y version. -version = '21.2' +version = '22.1' # The full version, including alpha/beta/rc tags. -release = '21.2' +release = '22.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/sys/gnu-mkl-static.cmake b/sys/gnu-mkl-static.cmake index cf5291abf4..4925cf2fe8 100644 --- a/sys/gnu-mkl-static.cmake +++ b/sys/gnu-mkl-static.cmake @@ -8,7 +8,8 @@ # various reasons. # -set(WITH_OMP TRUE CACHE BOOL "Whether OpenMP thread parallisation should be enabled" FORCE) +# OpenMP will be added via compiler/linker flag further below to enable for static linking +set(WITH_OMP FALSE CACHE BOOL "Whether OpenMP thread parallisation should be enabled" FORCE) set(WITH_MPI FALSE CACHE BOOL "Whether DFTB+ should support MPI-parallelism" FORCE) @@ -59,7 +60,7 @@ set(ENABLE_DYNAMIC_LOADING FALSE CACHE BOOL "Whether the library should be dynam set(Fortran_FLAGS "${CMAKE_Fortran_FLAGS}" CACHE STRING "Build type independent Fortran compiler flags") -set(Fortran_FLAGS_RELEASE "-O2 -funroll-all-loops" +set(Fortran_FLAGS_RELEASE "-O2 -funroll-all-loops -fopenmp" CACHE STRING "Fortran compiler flags for Release build") set(Fortran_FLAGS_RELWITHDEBINFO "-g ${Fortran_FLAGS_RELEASE}" diff --git a/tools/dptools/setup.py b/tools/dptools/setup.py index 93e94c3817..c9f8556750 100644 --- a/tools/dptools/setup.py +++ b/tools/dptools/setup.py @@ -3,7 +3,7 @@ setup( name="dptools", - version='21.2', + version='22.1', description="Tools to process DFTB+ related data", author="DFTB+ developers", url="http://www.dftbplus.org", diff --git a/utils/srcmanip/set_version b/utils/srcmanip/set_version index c6854fff1d..8cba441e07 100755 --- a/utils/srcmanip/set_version +++ b/utils/srcmanip/set_version @@ -62,7 +62,6 @@ def main(): rootdir = os.path.join(os.path.dirname(sys.argv[0]), '../../') _replace_in_registered_files(rootdir, version, shortversion) - _replace_in_dftbplus_parser(rootdir, shortversion) _replace_in_changelog(rootdir, version) _warn_about_manual_changes() @@ -88,44 +87,6 @@ def _get_short_version(version): return '.'.join(version.split('.')[0:2]) -def _replace_in_dftbplus_parser(rootdir, shortversion): - '''Sets InputVersion tag to current ParserVersion in dftb+ parser''' - fname = os.path.join(rootdir, "src/dftbp/dftbplus/parser.F90") - with open(fname, "r") as fp: - txt = fp.read() - match = re.search( - r'^\s*integer\s*,\s*parameter\s*::\s*parserVersion\s*=\s*(\d+)\s*$', - txt, flags=re.MULTILINE) - if not match: - _fatal_error("Could not find dftb+ parser version in parser.F90") - parserversion = int(match.group(1)) - print("Replacments in '{}': ".format(fname), end='') - match = re.search( - r'^\s*type\(TVersionMap\),\s*parameter\s*::\s*versionMaps\(\*\)\s*' - r'=\s*\[\s*\&\s*(?P(?:\n[^\]]*)*)]\s*$', - txt, flags=re.MULTILINE) - if not match: - _fatal_error("Could not find version-map array in parser.F90") - versionmap = match.group('versionmap') - if shortversion in versionmap: - newtxt, nsub = re.subn( - r'TVersionMap\("{}", \d+\)'.format(shortversion), - 'TVersionMap("{}", {})'.format(shortversion, parserversion), - txt, count=1, flags=re.MULTILINE) - else: - newtxt, nsub = re.subn( - r'^\s*type\(TVersionMap\),\s*parameter\s*::\s*versionMaps\(\*\)\s*' - r'=\s*\[\s*\&\s*$', - ' type(TVersionMap), parameter :: versionMaps(*) = [&\n' - ' & TVersionMap("{}", {}),&'.format(shortversion, parserversion), - txt, count=1, flags=re.MULTILINE) - print(nsub) - with open(fname, 'w') as fp: - fp.write(newtxt) - - - - def _replace_in_registered_files(rootdir, version, shortversion): '''Replaces the version number in various (registered) files.''' @@ -166,7 +127,10 @@ def _warn_about_manual_changes(): txt = """ Make sure to check that the table in doc/dftb+/manual/releases.tex has been -updated.""" +updated. + +Make sure to update input version table in src/dftbp/dftbplus/parser.F90 +""" print(txt) diff --git a/utils/workarounds/dtypeio.f90 b/utils/workarounds/dtypeio.f90 new file mode 100644 index 0000000000..37982516ab --- /dev/null +++ b/utils/workarounds/dtypeio.f90 @@ -0,0 +1,56 @@ +! NAG 7.1 can not use user-defined derived type I/O, when derived type is part of an array. +! Workaround: Make a local copy and use that in the I/O statement. +module unitconversion + implicit none + + private + public :: TUnit + public :: lengthUnits + + type TUnit + private + character(20) :: name + real :: conversionFact = 1.0 + contains + procedure :: writeFormatted => TUnit_writeFormatted + generic :: write(formatted) => writeFormatted + end type TUnit + + type(TUnit), parameter :: lengthUnits(*) = [& + & TUnit("angstrom ", 1.0),& + & TUnit("aa ", 1.0)& + & ] + +contains + + subroutine TUnit_writeFormatted(this, unit, iotype, vlist, iostat, iomsg) + class(TUnit), intent(in) :: this + integer, intent(in) :: unit + character(*), intent(in) :: iotype + integer, intent(in) :: vlist(:) + integer, intent(out) :: iostat + character(*), intent(inout) :: iomsg + + write(unit,"(a20, a, e24.14, a)") this%name, ':', this%conversionFact, " * x" + iostat = 0 + + end subroutine TUnit_writeFormatted + +end module unitconversion + + +program printunits + use unitconversion, only : lengthUnits, TUnit + implicit none + + integer :: ii + type(TUnit) :: localUnit + do ii = 1, size(lengthUnits) + ! Not working: + ! write(*,"(1x,dt)") lengthUnits(ii) + ! Workaround + localUnit = lengthUnits(ii) + write(*,"(1x,dt)") localUnit + end do + +end program printunits From 5d65de35b232279bae70c1b678ee1466b47b9633 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Mon, 23 May 2022 13:01:30 +0200 Subject: [PATCH 17/36] Update to backwards incompatible PLUMED2 The Plumed2 project has a backwards incompatible change in version 2.8.0. Tests had been recalculated with new results. Old results can be achieved by setting the (non-documented) environment variable PLUMED_DP2CUTOFF_NOSTRETCH=yes. --- CHANGELOG.rst | 7 +- INSTALL.rst | 3 - test/app/dftb+/md/H3-plumed/_autotest.tag | 18 +- test/app/dftb+/md/Vsi+O-plumed/_autotest.tag | 328 ++++++++++--------- 4 files changed, 181 insertions(+), 175 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 737173821d..39506e277c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,7 +5,7 @@ Change Log Notable project changes since release 1.3.1 (2017-02-22). -22.1 (2022-05-19) +22.1 (2022-05-24) ================= Added @@ -32,6 +32,11 @@ Added Changed ------- +- PLUMED simulations may deliver due to an incompatible change in version 2.8.0 + of the external PLUMED library slightly different results as before. See also + the `change log of PLUMED 2.8 + `_. + - Allow electric fields in periodic systems even when interactions cross the sawtooth in the field diff --git a/INSTALL.rst b/INSTALL.rst index ca59947403..30395427a1 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -133,9 +133,6 @@ following architectures: | OS X | | | | | +---------------+----------------------+-------------+------------------+-----+ -All builds are also tested with the optional ARPACK-NG 3.7 and PLUMED 2.5 -libraries. - Notes: [1] Only Debug build is tested regulary with OpenMP turned off and without ELSI. diff --git a/test/app/dftb+/md/H3-plumed/_autotest.tag b/test/app/dftb+/md/H3-plumed/_autotest.tag index daabdd0240..ccca2a1294 100644 --- a/test/app/dftb+/md/H3-plumed/_autotest.tag +++ b/test/app/dftb+/md/H3-plumed/_autotest.tag @@ -1,12 +1,14 @@ orbital_charges :real:2:1,3 - 0.519673068405102E+000 0.632466920380278E+000 0.847860011214622E+000 + 0.519671208998490E+000 0.632466621433383E+000 0.847862169568127E+000 forces :real:2:3,3 - -0.231386762535891E-001 0.564251876190780E-002 -0.567249993699822E-003 - 0.456635015841135E-003 0.124660000137426E-001 -0.123198560466353E-002 - 0.226820412377480E-001 -0.181085187756504E-001 0.179923559836335E-002 + -0.231384610282102E-001 0.564259379831016E-002 -0.567070956100920E-003 + 0.456225155292259E-003 0.124675242567102E-001 -0.123235032826952E-002 + 0.226822358729180E-001 -0.181101180550204E-001 0.179942128437044E-002 mermin_energy :real:0: - -0.551356747400369E+000 + -0.551356568781161E+000 end_coords :real:2:3,3 - 0.201490627482413E+001 -0.319173795393462E+000 0.714353887678562E-001 - -0.169075434483957E+000 0.145443659462532E+001 -0.104734999007201E+000 - 0.438951482387430E-001 -0.142720608451589E-002 0.332996102393463E-001 + 0.201491043534157E+001 -0.319180550317441E+000 0.714309342332311E-001 + -0.169082930791566E+000 0.145443542694973E+001 -0.104743158834183E+000 + 0.438984840289312E-001 -0.141928348493915E-002 0.333122246009537E-001 +dipole_moments :real:2:3,1 + 0.910151889360102E+000 0.379291938739407E+000 -0.191426864415943E-004 diff --git a/test/app/dftb+/md/Vsi+O-plumed/_autotest.tag b/test/app/dftb+/md/Vsi+O-plumed/_autotest.tag index 480b83fea2..50e3c0dfbc 100644 --- a/test/app/dftb+/md/Vsi+O-plumed/_autotest.tag +++ b/test/app/dftb+/md/Vsi+O-plumed/_autotest.tag @@ -1,171 +1,173 @@ cell_volume :real:0: 0.442747988741506E+004 orbital_charges :real:2:9,32 - 0.145964762018705E+001 0.698254422243100E+000 0.723807910247539E+000 - 0.697383477895094E+000 0.209565096387036E-001 0.169930463475050E-001 - 0.875499869546005E-002 0.148499204180005E-001 0.231755772576986E-001 - 0.166250891573000E+001 0.734776976411003E+000 0.783146245941195E+000 - 0.738312282009041E+000 0.147363445244896E-002 0.471093589982222E-002 - 0.551060605156235E-002 0.651102313474173E-002 0.209620358103608E-003 - 0.141808929531410E+001 0.707989504284439E+000 0.712063232664076E+000 - 0.704946881579653E+000 0.213151764540969E-001 0.217115452021251E-001 - 0.145218565783731E-001 0.219434212362060E-001 0.367542841972592E-001 - 0.167984710107411E+001 0.729657473981394E+000 0.803392495404541E+000 - 0.734131996496386E+000 0.124744965247828E-002 0.571441818812929E-002 - 0.566193731762467E-002 0.458296956408495E-002 0.162148300397355E-003 - 0.153174274865744E+001 0.840644112037220E+000 0.849184210089331E+000 - 0.839121499100875E+000 0.113067929486191E-004 0.650670620723819E-005 - 0.104546953625191E-004 0.295101742136963E-003 0.131520664429248E-003 - 0.156674602006853E+001 0.798003811773705E+000 0.837443457564253E+000 - 0.802334773093348E+000 0.116858638578294E-003 0.106168028183696E-004 - 0.330720388831878E-004 0.119473979734981E-004 0.185686137108002E-005 - 0.154043878464369E+001 0.839663825117759E+000 0.852840185995873E+000 - 0.849194183955821E+000 0.764942321742305E-005 0.313831923781820E-003 - 0.137739384790885E-004 0.454153400783364E-005 0.129507799266728E-003 - 0.157454343893381E+001 0.823019110426508E+000 0.852137608420422E+000 - 0.820434092217130E+000 0.201599564155631E-004 0.174278993244900E-005 - 0.593571681331744E-005 0.165291224788014E-005 0.924819104093899E-006 - 0.153713993320744E+001 0.860570084156109E+000 0.818327556909809E+000 - 0.794014929811142E+000 0.293204810205741E-008 0.535396206555641E-008 - 0.158723998290177E-006 0.522165446577316E-006 0.764682267478284E-007 - 0.153809901946977E+001 0.834655931947312E+000 0.842770774752468E+000 - 0.848494968996442E+000 0.385592598623228E-005 0.150782072808207E-003 - 0.465375155236447E-005 0.202145013430860E-005 0.719211833153089E-004 - 0.153117007396222E+001 0.803263499579832E+000 0.824962764865843E+000 - 0.858401942678505E+000 0.313389529290368E-008 0.664097234012223E-006 - 0.241019643851289E-006 0.622627421034223E-008 0.879968546592863E-007 - 0.152611775150122E+001 0.843378104922529E+000 0.846883360671568E+000 - 0.842650846012090E+000 0.630387650471882E-005 0.358902364006463E-005 - 0.106983434402197E-004 0.255356773892787E-003 0.109871622376854E-003 - 0.155436689954478E+001 0.829499997944708E+000 0.853940299776380E+000 - 0.827936923210918E+000 0.548381281006889E-004 0.548263895247931E-005 - 0.158511802742435E-004 0.558303568045378E-005 0.322270258702888E-005 - 0.152662643295959E+001 0.799777408285309E+000 0.824581872658351E+000 - 0.856505104626744E+000 0.268813856357486E-008 0.478026661410143E-006 - 0.115908919589389E-006 0.431963128101121E-008 0.790937612195128E-007 - 0.158394714387508E+001 0.801339657103876E+000 0.826681438456204E+000 - 0.804083509252224E+000 0.696576167444911E-004 0.845225121731350E-005 - 0.189015616890391E-004 0.756789978866962E-005 0.101732001789421E-005 - 0.151421738322391E+001 0.861586407449212E+000 0.824119937084177E+000 - 0.800601050932996E+000 0.355194549313041E-008 0.593423412103631E-008 - 0.201557274206796E-006 0.685215523671786E-006 0.102193179758445E-006 - 0.154021984207435E+001 0.826338410635356E+000 0.837395880640602E+000 - 0.817980585015676E+000 0.673083596896222E-008 0.270783144238011E-008 - 0.229346075162249E-008 0.153988783353764E-007 0.170337648417715E-007 - 0.152477876745666E+001 0.829838132511386E+000 0.827492150261041E+000 - 0.804810679711001E+000 0.350271480123418E-006 0.995218318846836E-008 - 0.352831164314283E-006 0.108926358708074E-006 0.815465186855732E-006 - 0.152783987387231E+001 0.813019126064731E+000 0.831925438691633E+000 - 0.813350725722737E+000 0.827280276768908E-006 0.430830996951622E-005 - 0.499251567261534E-005 0.405745882633160E-005 0.352014569584206E-007 - 0.152396604824912E+001 0.806608451959871E+000 0.833787803383401E+000 - 0.810621791874378E+000 0.759710840582034E-006 0.382404245161044E-005 - 0.582892375682137E-005 0.472879098585841E-005 0.416314059951486E-007 - 0.151392360083275E+001 0.820433653322098E+000 0.832392940846911E+000 - 0.822324953970164E+000 0.200147146008807E-007 0.468442385882602E-007 - 0.596470494214206E-008 0.540382774441456E-008 0.412815071919126E-007 - 0.151300482717909E+001 0.820007400189092E+000 0.837460158312126E+000 - 0.827343468681372E+000 0.725609561888206E-008 0.161082833060363E-007 - 0.259445372339427E-008 0.269938805190922E-008 0.181409488858353E-007 - 0.154196702425167E+001 0.832118739656646E+000 0.825741566555581E+000 - 0.834283193835982E+000 -0.502139872885897E-009 -0.323442274560494E-010 - 0.287061622376257E-008 -0.638151453887502E-010 0.119752471979495E-011 - 0.152865747280800E+001 0.810441079652691E+000 0.823407150801857E+000 - 0.827528154258310E+000 0.225718228190520E-006 0.640111053273783E-007 - 0.235863358055600E-006 0.570092509234631E-008 0.544536585405391E-006 - 0.151150142056034E+001 0.806849761844960E+000 0.829414306865874E+000 - 0.829079920386243E+000 0.353024910867737E-006 0.897515866600922E-007 - 0.299541150289591E-006 0.102060520791653E-007 0.635583239825098E-006 - 0.152165920146053E+001 0.831272386854487E+000 0.826315111397584E+000 - 0.830245131040814E+000 -0.162258139082925E-009 0.583965865612401E-009 - 0.360938714354054E-008 0.656994785707055E-009 0.450018662874839E-011 - 0.153552224974269E+001 0.826701702661249E+000 0.825659612256755E+000 - 0.809700467586873E+000 0.381643874062224E-006 0.109727953600717E-007 - 0.308320926931420E-006 0.907521661727052E-007 0.634227627353066E-006 - 0.151357797276658E+001 0.821039885021973E+000 0.836665271687053E+000 - 0.818084788542069E+000 0.167938437216527E-007 0.411220272182780E-008 - 0.641728681838042E-008 0.451471878205942E-007 0.424431578920043E-007 - 0.155393696810226E+001 0.809023303123549E+000 0.837908299556784E+000 - 0.805252015108726E+000 0.660711105586132E-012 0.184511043935346E-008 - 0.139025656399372E-006 0.173745453900212E-008 0.743538477995723E-012 - 0.150396047091936E+001 0.819199434141946E+000 0.821717917380025E+000 - 0.836156572141414E+000 0.264563906323877E-011 -0.251342873958400E-011 - -0.110399723931423E-008 0.534517809832154E-009 -0.354125174446540E-008 - 0.151586506446059E+001 0.836017798379825E+000 0.824526127052570E+000 - 0.813800049861492E+000 0.742526165939501E-011 0.533165282039179E-009 - -0.730444870068937E-009 -0.237767346750777E-011 -0.232529272933632E-008 - 0.177440646098616E+001 0.147812948016243E+001 0.162632360227918E+001 - 0.150457893243672E+001 0.000000000000000E+000 0.000000000000000E+000 + 0.145980793823461E+001 0.698230000372234E+000 0.723831959238701E+000 + 0.697372029239811E+000 0.209521515762425E-001 0.169780479942489E-001 + 0.874438737335448E-002 0.148364683199360E-001 0.231394975149449E-001 + 0.166250069677778E+001 0.734769031910267E+000 0.783127745227803E+000 + 0.738305426426085E+000 0.147415097909840E-002 0.471074316460583E-002 + 0.551170736325491E-002 0.651508536714751E-002 0.209917050052584E-003 + 0.141800293242516E+001 0.707997788397148E+000 0.712042461538940E+000 + 0.704952559455707E+000 0.213147558911947E-001 0.217206115416956E-001 + 0.145342157165924E-001 0.219526212923086E-001 0.367747906941675E-001 + 0.167984006438565E+001 0.729653603163625E+000 0.803370825130396E+000 + 0.734125111941098E+000 0.124793948076205E-002 0.571813343130946E-002 + 0.566299412909896E-002 0.458285130411920E-002 0.162352727573547E-003 + 0.153172668276526E+001 0.840641737382556E+000 0.849174178075676E+000 + 0.839109865433361E+000 0.112986367956391E-004 0.650203082456073E-005 + 0.104400202064533E-004 0.294824272705188E-003 0.131393325576544E-003 + 0.156674478112986E+001 0.798009021089387E+000 0.837438292138761E+000 + 0.802339003581580E+000 0.116878726217559E-003 0.106143163419466E-004 + 0.330800086826680E-004 0.119481995603038E-004 0.185961641591145E-005 + 0.154044383540814E+001 0.839675116401159E+000 0.852844242479087E+000 + 0.849202902875593E+000 0.765255825676468E-005 0.313956233009372E-003 + 0.137880048579640E-004 0.454435415527897E-005 0.129525302695794E-003 + 0.157452834200247E+001 0.823009012127277E+000 0.852138191091147E+000 + 0.820424735497570E+000 0.201378614608065E-004 0.174034983749225E-005 + 0.592932973125778E-005 0.165059819105180E-005 0.923294549015598E-006 + 0.153714225932172E+001 0.860574208675266E+000 0.818328665174097E+000 + 0.794016480352509E+000 0.293397508568112E-008 0.535654712062116E-008 + 0.158657145833456E-006 0.522116158391541E-006 0.764742195899692E-007 + 0.153808673459106E+001 0.834641367303121E+000 0.842759875113348E+000 + 0.848488953258965E+000 0.385187161686517E-005 0.150629907162837E-003 + 0.464686346719769E-005 0.201937929609938E-005 0.718476277746117E-004 + 0.153117199363903E+001 0.803264581500841E+000 0.824962467009717E+000 + 0.858401969660645E+000 0.313810770224266E-008 0.665002276648438E-006 + 0.241389830896548E-006 0.623478578968095E-008 0.881083283161744E-007 + 0.152612309275626E+001 0.843384567541482E+000 0.846888353324626E+000 + 0.842660303773103E+000 0.630592983963968E-005 0.359085199946918E-005 + 0.107080421104599E-004 0.255447673901371E-003 0.109883635710693E-003 + 0.155436722692340E+001 0.829512609251605E+000 0.853944937524029E+000 + 0.827950003474558E+000 0.549248293487758E-004 0.549057326569690E-005 + 0.158769821643089E-004 0.559119368366339E-005 0.322903786986362E-005 + 0.152662853209783E+001 0.799779457613880E+000 0.824582797168353E+000 + 0.856509058380630E+000 0.268925428836831E-008 0.477941073381994E-006 + 0.115846858597922E-006 0.432067042268127E-008 0.790936936063449E-007 + 0.158394566748707E+001 0.801343489038635E+000 0.826678064068016E+000 + 0.804087420227039E+000 0.696643694083925E-004 0.845219934852047E-005 + 0.189048340300761E-004 0.756564979020966E-005 0.101872166852041E-005 + 0.151421967823302E+001 0.861585575627920E+000 0.824118362984862E+000 + 0.800601612850525E+000 0.355896812967712E-008 0.594608202724243E-008 + 0.201849544842900E-006 0.686108156972084E-006 0.102317008326552E-006 + 0.154022217274786E+001 0.826345096972880E+000 0.837391920356893E+000 + 0.817977791589053E+000 0.672602132505683E-008 0.270753689103430E-008 + 0.229234956872173E-008 0.153834463544738E-007 0.170231641430548E-007 + 0.152477966483293E+001 0.829840633462142E+000 0.827489145150219E+000 + 0.804814002361873E+000 0.349873985517791E-006 0.994262749713127E-008 + 0.352528210404071E-006 0.108863430077218E-006 0.814893734270008E-006 + 0.152783992620424E+001 0.813018398254227E+000 0.831926178205061E+000 + 0.813351999069354E+000 0.826638864757917E-006 0.430628067177988E-005 + 0.498946374360833E-005 0.405365845831025E-005 0.351936048473033E-007 + 0.152396522788821E+001 0.806608583398543E+000 0.833787267926619E+000 + 0.810621985960510E+000 0.759106534827017E-006 0.382043956854111E-005 + 0.582556692800611E-005 0.472665954396796E-005 0.416465927624263E-007 + 0.151392424120223E+001 0.820437304811302E+000 0.832394570865203E+000 + 0.822317817377549E+000 0.200496926050847E-007 0.469328156973499E-007 + 0.597496217834142E-008 0.541184798657615E-008 0.413488271280324E-007 + 0.151300664155744E+001 0.820005804139762E+000 0.837457561483886E+000 + 0.827349648209300E+000 0.725044146914266E-008 0.160916295487918E-007 + 0.259309018652262E-008 0.269875661450356E-008 0.181290912137738E-007 + 0.154196744294297E+001 0.832119478027669E+000 0.825740615235609E+000 + 0.834284275062001E+000 -0.501038402344779E-009 -0.325361148135257E-010 + 0.287101350757545E-008 -0.640020296392325E-010 0.116974264809293E-011 + 0.152865848688714E+001 0.810444408566139E+000 0.823405268190189E+000 + 0.827531982996306E+000 0.225445676107910E-006 0.639679564676963E-007 + 0.235639127219299E-006 0.569501392530189E-008 0.544095877230212E-006 + 0.151150120396663E+001 0.806849321086028E+000 0.829411758634051E+000 + 0.829079569473109E+000 0.353392919207273E-006 0.898474861086646E-007 + 0.299754186543730E-006 0.102206928001786E-007 0.635956653942723E-006 + 0.152166244897763E+001 0.831274676431678E+000 0.826312886858976E+000 + 0.830247984325733E+000 -0.161443241002076E-009 0.585221328139765E-009 + 0.361170545853131E-008 0.658362483126283E-009 0.447900289149532E-011 + 0.153552235112394E+001 0.826700767338761E+000 0.825657245462000E+000 + 0.809699144982313E+000 0.381987611615911E-006 0.109870361258617E-007 + 0.308497448506454E-006 0.908363678485705E-007 0.634504733357378E-006 + 0.151357923224566E+001 0.821033176761841E+000 0.836665916641652E+000 + 0.818089299466209E+000 0.168220721799656E-007 0.411884319150913E-008 + 0.642741044147900E-008 0.452295585709125E-007 0.425099783372823E-007 + 0.155393719266439E+001 0.809025330163537E+000 0.837908452797908E+000 + 0.805254001467262E+000 0.662067402695876E-012 0.184441810541253E-008 + 0.138914747374111E-006 0.173614268951247E-008 0.747574544511973E-012 + 0.150396179687593E+001 0.819200393369947E+000 0.821717179441256E+000 + 0.836156744306837E+000 0.266568423406400E-011 -0.251244477729191E-011 + -0.110347116836093E-008 0.534427697496003E-009 -0.353945982968813E-008 + 0.151586585397339E+001 0.836017221843774E+000 0.824525588289837E+000 + 0.813800591454726E+000 0.742808011131832E-011 0.533103435289095E-009 + -0.728934943196742E-009 -0.237599288777050E-011 -0.232030498838936E-008 + 0.177444883869388E+001 0.147816136120952E+001 0.162625212219162E+001 + 0.150460373688864E+001 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 forces :real:2:3,32 - 0.644720271792418E+000 0.712255899215814E+000 0.374395690675890E+000 - -0.685968793317923E-002 -0.968754761440749E-002 -0.254087110943462E-002 - -0.754004705090052E-002 -0.117791418740991E-001 -0.256663000118548E-003 - -0.475685226551179E-002 0.108640774086960E-001 0.695797743903854E-002 - 0.123613284463668E-001 -0.144988704552502E-001 -0.338688342316512E-002 - -0.624473783119533E-002 -0.118320386230754E-001 -0.449155120809025E-002 - -0.456100974752908E-002 -0.868081817787367E-002 -0.162759261178974E-001 - -0.168383274497757E-002 -0.140155067670030E-001 -0.682536446634525E-002 - 0.632573507926656E-002 0.420850226319346E-002 -0.370412098919941E-002 - 0.949391792004369E-003 0.332658529007317E-002 -0.450248799974822E-002 - 0.440677089082833E-002 0.232461405063312E-002 0.192582245743960E-001 - -0.772200490920370E-002 0.252568070358314E-002 -0.206004905075775E-001 - 0.204968727486759E-002 0.143123880926761E-001 0.100741548378049E-001 - -0.203152895023949E-002 -0.154281551571677E-001 -0.118958454751497E-001 - 0.545910074916147E-002 -0.626345433487868E-002 0.126597776731134E-001 - 0.192289293598163E-001 -0.186057556567695E-001 0.257678069665841E-002 - -0.792229318460130E-002 0.110383618142517E-001 0.121999079680115E-001 - -0.910702300430067E-002 0.100974163581014E-001 0.745917217818886E-002 - 0.740451575792248E-002 0.918124408386037E-002 0.891517119721372E-002 - -0.491265664145157E-002 0.782079613258812E-002 -0.996519253384743E-003 - 0.216820225602908E-002 0.206922932153712E-002 -0.454601104435293E-002 - 0.234603247284792E-002 0.108205502316481E-001 0.190832345979040E-001 - -0.573700974895138E-002 -0.200395579694958E-002 0.299647330387207E-002 - -0.105599895473818E-001 -0.121466516173059E-001 0.271634986510670E-002 - -0.117804012382790E-001 0.391447965381952E-001 -0.546748661600143E-002 - -0.102699417983421E-001 0.653235834946084E-002 0.569580750759825E-004 - 0.207848922358762E-001 -0.512827169353926E-002 -0.219871313924217E-002 - 0.649664893368329E-002 -0.190273454419225E-001 -0.498183300286372E-002 - 0.560743909676722E-002 0.283686920656866E-002 0.140475764035696E-002 - -0.920245464050539E-002 0.818058797764299E-002 0.116537212551987E-002 - 0.752605261291230E-002 -0.100477978736196E-001 -0.131997413136653E-001 - -0.636943527514218E+000 -0.698394645954662E+000 -0.376049494181914E+000 + 0.645294720216552E+000 0.712884001756214E+000 0.374730223674584E+000 + -0.686042750392983E-002 -0.968622946261405E-002 -0.253808872197239E-002 + -0.758439739241586E-002 -0.118235271837165E-001 -0.230615714779503E-003 + -0.475530949450085E-002 0.108641006371597E-001 0.695967367918403E-002 + 0.123668736360547E-001 -0.145035933961741E-001 -0.338276228531388E-002 + -0.624465918868977E-002 -0.118318419709673E-001 -0.449203233032804E-002 + -0.456378900006349E-002 -0.868053493261426E-002 -0.162767911103821E-001 + -0.167737145281169E-002 -0.140090759058202E-001 -0.682923939919699E-002 + 0.632600222388289E-002 0.420861522836980E-002 -0.370386209123585E-002 + 0.944760543536625E-003 0.333346736702016E-002 -0.449707296714241E-002 + 0.440595545745633E-002 0.232417155717719E-002 0.192574658808066E-001 + -0.772139597379453E-002 0.252304480372879E-002 -0.206013951692791E-001 + 0.205031916603569E-002 0.143129168004736E-001 0.100782943770149E-001 + -0.203139781056371E-002 -0.154280328505020E-001 -0.118956325119232E-001 + 0.545961796637235E-002 -0.626354925517291E-002 0.126593897893309E-001 + 0.192285301279666E-001 -0.186068443254321E-001 0.257607506832234E-002 + -0.792163571162015E-002 0.110375804573771E-001 0.122011838615992E-001 + -0.910710276274095E-002 0.100973606653155E-001 0.745835696491880E-002 + 0.740376348005512E-002 0.918049187035452E-002 0.891580401003744E-002 + -0.491377724125026E-002 0.782018967426195E-002 -0.996067102010469E-003 + 0.216790547738700E-002 0.206985428267333E-002 -0.454587980410467E-002 + 0.234515291365587E-002 0.108213387223086E-001 0.190845101687552E-001 + -0.573722347874808E-002 -0.200407427389866E-002 0.299483775953267E-002 + -0.105603897190047E-001 -0.121465624409915E-001 0.271564883102398E-002 + -0.117804204164279E-001 0.391449840994545E-001 -0.546633132910834E-002 + -0.102693152894833E-001 0.653320835377893E-002 0.584660168214471E-004 + 0.207848671783968E-001 -0.512795895792288E-002 -0.219782738923705E-002 + 0.649736014860608E-002 -0.190274024740563E-001 -0.498161730352952E-002 + 0.560781489034742E-002 0.283695971685221E-002 0.140472586241958E-002 + -0.920332564514277E-002 0.818043603127499E-002 0.116514898755534E-002 + 0.752604524731596E-002 -0.100486892023227E-001 -0.132000315796325E-001 + -0.637477750592434E+000 -0.698984805391590E+000 -0.376424558122730E+000 stress :real:2:3,3 - -0.140874484442568E-003 0.460534487718580E-004 0.352614750090381E-004 - 0.460534487899417E-004 -0.135360361590807E-003 -0.177386209109937E-005 - 0.352614750009000E-004 -0.177386201189444E-005 -0.327307487690707E-004 + -0.140690850603640E-003 0.462598543044159E-004 0.353376484286344E-004 + 0.462598543227247E-004 -0.135108244221109E-003 -0.167754233612103E-005 + 0.353376484229749E-004 -0.167754225942936E-005 -0.326579063171149E-004 mermin_energy :real:0: - -0.434318785434042E+002 + -0.434318529039085E+002 end_coords :real:2:3,32 - 0.214421712913816E+001 0.227392018403711E+001 0.274221909265575E+001 - 0.201731302389224E+001 -0.191407537364061E+001 -0.259085770990137E+001 - -0.213614767797816E+001 -0.220454816758320E+001 0.275335948016942E+001 - -0.181146732576246E+001 0.179365878783512E+001 -0.268736462909660E+001 - 0.503983776452815E+001 0.796653855520098E-001 0.524889221506077E+001 - 0.483488307264883E+001 -0.477967199613338E+001 0.264691327494499E-001 - 0.180391872436396E+000 -0.517032885195869E+001 0.536366413494132E+001 - 0.489610864881182E+001 0.490970330085303E+001 -0.420916826164974E-001 - 0.498337809495705E+001 -0.464142124918261E-001 -0.535680628575212E+001 - -0.105587784508561E+000 0.519691302157986E+001 0.532610067508122E+001 - -0.252044742236107E-001 -0.499834245343614E+001 -0.542756449190943E+001 - -0.516756909088963E+001 0.171641936417178E-002 0.534111580680232E+001 - -0.484029157602116E+001 -0.488610726147871E+001 -0.152165087477303E+000 - 0.823812865075277E-002 0.510636893270468E+001 -0.522162156863566E+001 - -0.477883357150065E+001 0.480344934510026E+001 -0.184913408854273E+000 - -0.511411098875815E+001 0.961924795836120E-001 -0.526688084454159E+001 - 0.775215916332486E+001 0.235450417795574E+001 -0.276866650391639E+001 - 0.771229250588252E+001 -0.261380823958481E+001 0.258478741219723E+001 - -0.286588882236519E+001 0.271550899698632E+001 0.783265864337240E+001 - 0.283315877260978E+001 -0.275472138211803E+001 0.791059418537705E+001 - -0.250401732996928E+001 -0.764361779751673E+001 -0.272894296239134E+001 - 0.246503635536122E+001 0.763395607974238E+001 -0.272783810481925E+001 - 0.274660043495544E+001 0.279835662268487E+001 -0.803414027678720E+001 - -0.251698826942602E+001 0.772922570976896E+001 0.248656210289850E+001 - 0.265330066268841E+001 -0.791415671076771E+001 0.257426408622271E+001 - -0.273256882456466E+001 -0.270449274432762E+001 -0.796816367628254E+001 - -0.777274100177240E+001 0.260772604406892E+001 0.254430851112208E+001 - -0.770753684589319E+001 -0.233932184549163E+001 -0.261749008346087E+001 - -0.596795537188386E-001 0.879455609727414E-002 0.102632897737041E+002 - 0.103629202603336E+002 -0.681225647531970E-001 0.363537710330817E-001 - -0.605231355208649E-001 -0.102619309812145E+002 -0.137894887910694E-002 - -0.151627453884014E+000 -0.270590697656620E+000 0.136699305428690E+001 + 0.214455857297871E+001 0.227428861652691E+001 0.274241825816061E+001 + 0.201731287989199E+001 -0.191407520031341E+001 -0.259085749106625E+001 + -0.213615120942195E+001 -0.220455166450489E+001 0.275336155476917E+001 + -0.181146719154651E+001 0.179365881619179E+001 -0.268736446392805E+001 + 0.503983830136587E+001 0.796648914363796E-001 0.524889258775442E+001 + 0.483488304761653E+001 -0.477967196576421E+001 0.264690233170196E-001 + 0.180391531536532E+000 -0.517032880871909E+001 0.536366400202645E+001 + 0.489610918825934E+001 0.490970383337230E+001 -0.420920509113334E-001 + 0.498337816590609E+001 -0.464141805074215E-001 -0.535680623845819E+001 + -0.105588180329774E+000 0.519691357281683E+001 0.532610110586944E+001 + -0.252045370501433E-001 -0.499834253099726E+001 -0.542756450887261E+001 + -0.516756902188122E+001 0.171617291741173E-002 0.534111568576825E+001 + -0.484029149768094E+001 -0.488610717346617E+001 -0.152164678960753E+000 + 0.823813709736131E-002 0.510636893672829E+001 -0.522162158906872E+001 + -0.477883351931409E+001 0.480344931975408E+001 -0.184913410763999E+000 + -0.511411101007524E+001 0.961923440658510E-001 -0.526688093229386E+001 + 0.775215920209401E+001 0.235450417027451E+001 -0.276866632783498E+001 + 0.771229248903094E+001 -0.261380823635623E+001 0.258478731347698E+001 + -0.286588885532409E+001 0.271550894168681E+001 0.783265872737059E+001 + 0.283315863207024E+001 -0.275472145677582E+001 0.791059421774209E+001 + -0.250401737741966E+001 -0.764361776311478E+001 -0.272894291301869E+001 + 0.246503628694106E+001 0.763395618160394E+001 -0.272783795112536E+001 + 0.274660042777624E+001 0.279835659706912E+001 -0.803414040454107E+001 + -0.251698833879838E+001 0.772922570077571E+001 0.248656206145808E+001 + 0.265330062608848E+001 -0.791415659432416E+001 0.257426418459387E+001 + -0.273256878916962E+001 -0.270449271050509E+001 -0.796816354032578E+001 + -0.777274096602328E+001 0.260772605631464E+001 0.254430860247889E+001 + -0.770753677700042E+001 -0.233932194706725E+001 -0.261749008284333E+001 + -0.596794921141651E-001 0.879455987586286E-002 0.102632897741706E+002 + 0.103629201738953E+002 -0.681225458850324E-001 0.363537235483740E-001 + -0.605231088023962E-001 -0.102619311014064E+002 -0.137897891227828E-002 + -0.152220703972058E+000 -0.271231658921108E+000 0.136663781021986E+001 +dipole_moments :real:2:3,1 + 0.201027807725577E+001 -0.140637044295077E+001 -0.177359140644569E+001 From 4373504642937e3608a571ded16483d454721614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Tue, 24 May 2022 22:11:06 +0200 Subject: [PATCH 18/36] Fix test examples * Fix one PEXSI test which was invoked also without PEXSI * Comment out the two OMM-cases, which crash in the current conda environment --- test/app/dftb+/tests | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/app/dftb+/tests b/test/app/dftb+/tests index d978bcfdd8..a13d8f5616 100644 --- a/test/app/dftb+/tests +++ b/test/app/dftb+/tests @@ -56,7 +56,7 @@ helical/10-0CtubeC_10_sampled #? MPI_PROCS == 1 helical/C6H6_stack #? MPI_PROCS == 1 helical/10-0Ctube_ELPA #? WITH_ELSI and MPI_PROCS <= 8 and MPI_PROCS % 2 == 0 and OMP_THREADS == 1 helical/C6H6_stack_ELPA #? WITH_ELSI and MPI_PROCS == 1 and OMP_THREADS == 1 -helical/10-0Ctube_PEXSI #? WITH_ELSI and MPI_PROCS <= 8 and MPI_PROCS % 4 == 0 and OMP_THREADS == 1 and ELSI_VERSION > 2.5 +helical/10-0Ctube_PEXSI #? WITH_PEXSI and MPI_PROCS <= 8 and MPI_PROCS % 4 == 0 and OMP_THREADS == 1 and ELSI_VERSION > 2.5 dispersion/2C6H6_MBD #? WITH_MBD and MPI_PROCS <= 4 dispersion/CO2_bulk_TS #? WITH_MBD and MPI_PROCS <= 4 @@ -144,10 +144,12 @@ solvers/Si32C32_OMM_sparse #? WITH_ELSI and MPI_PROCS <= 4 and OMP_T solvers/Si384_OMM #? WITH_ELSI and MPI_PROCS <= 4 and OMP_THREADS == 1 solvers/Si32C32_OMM_kpoints #? WITH_ELSI and MPI_PROCS % 4 == 0 and MPI_PROCS <= 20 and OMP_THREADS == 1 solvers/Si32C32_OMM_ks #? WITH_ELSI and MPI_PROCS % 8 == 0 and MPI_PROCS <= 40 and OMP_THREADS == 1 -solvers/Si32C32_OMM_k_sparse #? WITH_ELSI and MPI_PROCS % 4 == 0 and MPI_PROCS <= 20 and OMP_THREADS == 1 +#! Disabling as currently crashing when used with Conda ELSI (2.8.2) +#! solvers/Si32C32_OMM_k_sparse #? WITH_ELSI and MPI_PROCS % 4 == 0 and MPI_PROCS <= 20 and OMP_THREADS == 1 solvers/Si32C32_OMM_ks_sparse #? WITH_ELSI and MPI_PROCS % 8 == 0 and MPI_PROCS <= 40 and OMP_THREADS == 1 solvers/Si8_LSdual #? WITH_ELSI and MPI_PROCS % 8 == 0 and MPI_PROCS <= 16 and OMP_THREADS == 1 -solvers/Si32C32_LS_OMM #? WITH_ELSI and MPI_PROCS <= 20 and OMP_THREADS == 1 +#! Disabling as currently crashing when used with Conda ELSI (2.8.2) +#! solvers/Si32C32_LS_OMM #? WITH_ELSI and MPI_PROCS <= 20 and OMP_THREADS == 1 solvers/Si32C32_LS_OMM_kpt #? WITH_ELSI and MPI_PROCS % 8 == 0 and MPI_PROCS <= 32 and OMP_THREADS == 1 solvers/SiC64+V_PEXSI #? WITH_PEXSI and MPI_PROCS % 2 == 0 and MPI_PROCS <= 40 and OMP_THREADS == 1 and ELSI_VERSION > 2.5 @@ -177,7 +179,7 @@ derivatives/CH4_kpt_ons #? MPI_PROCS <= 1 derivatives/As4S4_LS_ons #? MPI_PROCS <= 2 derivatives/10-0Ctube_onsite #? MPI_PROCS <= 4 derivatives/C6H6_onsite #? MPI_PROCS == 1 -derivatives/C6H6_partial #? MPI_PROCS <= 1 +derivatives/C6H6_partial #? MPI_PROCS <= 1 derivatives/CH4_RPA #? MPI_PROCS == 1 derivatives/Au2_Polfreq #? MPI_PROCS <= 2 From 1474c91c01c9b25e699661ea3dbb1783c77bdeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Tue, 24 May 2022 22:14:16 +0200 Subject: [PATCH 19/36] Fix release dates --- CHANGELOG.rst | 2 +- doc/dftb+/manual/releases.tex | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 39506e277c..e0697e8666 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,7 +5,7 @@ Change Log Notable project changes since release 1.3.1 (2017-02-22). -22.1 (2022-05-24) +22.1 (2022-05-25) ================= Added diff --git a/doc/dftb+/manual/releases.tex b/doc/dftb+/manual/releases.tex index 77b39389fa..dfd84fa551 100644 --- a/doc/dftb+/manual/releases.tex +++ b/doc/dftb+/manual/releases.tex @@ -8,7 +8,7 @@ \chapter{\dftbp{} Releases} \begin{tabular}{ccc} \is{InputVersion} / Release & \is{ParserVersion} & Date available\\ \hline - 22.1 & 11 & \DTMdate{2022-05-19}\\ + 22.1 & 11 & \DTMdate{2022-05-25}\\ 21.2 & 10 & \DTMdate{2021-12-13}\\ 21.1 & 9 & \DTMdate{2021-05-12}\\ 20.2 & 9 & \DTMdate{2020-11-17}\\ From c249548c2ae2c468f13709c205997ce6f2dbdb09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Wed, 25 May 2022 00:17:46 +0200 Subject: [PATCH 20/36] Add Unreleased section to change log --- CHANGELOG.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e0697e8666..c51c80d34d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,12 @@ Change Log Notable project changes since release 1.3.1 (2017-02-22). +Unreleased +========== + + + + 22.1 (2022-05-25) ================= From b031e97eca17c11235b9e0770f75cd87e2fb4fb4 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Wed, 25 May 2022 00:40:33 +0100 Subject: [PATCH 21/36] Trap segfault for optimiser and helical bcs --- src/dftbp/dftbplus/initprogram.F90 | 4 ++++ src/dftbp/dftbplus/parser.F90 | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/dftbp/dftbplus/initprogram.F90 b/src/dftbp/dftbplus/initprogram.F90 index 1b4878ac04..4332e79158 100644 --- a/src/dftbp/dftbplus/initprogram.F90 +++ b/src/dftbp/dftbplus/initprogram.F90 @@ -1959,6 +1959,10 @@ subroutine initProgramVariables(this, input, env) end if if (allocated(input%ctrl%geoOpt)) then + if (this%tHelical) then + call error("GeometryOptimization driver currently does not support helical geometries") + end if + allocate(this%filter) call TFilter_init(this%filter, input%ctrl%geoOpt%filter, this%coord0, this%latVec) call createOptimizer(input%ctrl%geoOpt%optimizer, this%filter%getDimension(),& diff --git a/src/dftbp/dftbplus/parser.F90 b/src/dftbp/dftbplus/parser.F90 index 1a40899c07..0ac6ad3786 100644 --- a/src/dftbp/dftbplus/parser.F90 +++ b/src/dftbp/dftbplus/parser.F90 @@ -464,6 +464,11 @@ subroutine readDriver(node, parent, geom, ctrl) case ("geometryoptimization") modeName = "geometry optimization" + if (geom%tHelical) then + call detailedError(node, "GeometryOptimization driver currently does not support helical& + & geometries") + end if + allocate(ctrl%geoOpt) call readGeoOptInput(node, geom, ctrl%geoOpt, atomsRange) From 41c5137288bd9b52b8c0844e78ddc6e90b168181 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Thu, 26 May 2022 23:26:34 +0100 Subject: [PATCH 22/36] Update with output block charges in transport Recompute effected tests. Also tightened tolerances for one test. Co-authored-by: inseonglee islee@unist.ac.kr --- src/dftbp/dftbplus/main.F90 | 2 +- .../dftb+/transport/C-chain+U/_autotest.tag | 410 +++++++++--------- test/app/dftb+/transport/C-chain+U/device.hsd | 1 + test/app/dftb+/transport/C-chain+U/drain.hsd | 1 + test/app/dftb+/transport/C-chain+U/source.hsd | 1 + .../transport/C-chain+Uspin/_autotest.tag | 406 ++++++++--------- .../dftb+/transport/C-chain+Uspin/dftb_in.hsd | 84 ---- 7 files changed, 413 insertions(+), 492 deletions(-) delete mode 100644 test/app/dftb+/transport/C-chain+Uspin/dftb_in.hsd diff --git a/src/dftbp/dftbplus/main.F90 b/src/dftbp/dftbplus/main.F90 index 00b9cf8e57..f9e4cc0ea3 100644 --- a/src/dftbp/dftbplus/main.F90 +++ b/src/dftbp/dftbplus/main.F90 @@ -1021,7 +1021,7 @@ subroutine processGeometry(this, env, iGeoStep, iLatGeoStep, tWriteRestart, tSto #:if WITH_TRANSPORT ! Override charges with uploaded contact charges if (this%tUpload) then - call overrideContactCharges(this%qOutput, this%chargeUp, this%transpar, this%qBlockIn,& + call overrideContactCharges(this%qOutput, this%chargeUp, this%transpar, this%qBlockOut,& & this%blockUp) end if #:endif diff --git a/test/app/dftb+/transport/C-chain+U/_autotest.tag b/test/app/dftb+/transport/C-chain+U/_autotest.tag index e0eae126b0..149b97cdc3 100644 --- a/test/app/dftb+/transport/C-chain+U/_autotest.tag +++ b/test/app/dftb+/transport/C-chain+U/_autotest.tag @@ -1,65 +1,65 @@ cell_volume :real:0: 0.843871930469613E+005 orbital_charges :real:2:4,24 - 0.118021177957386E+001 0.999999416540816E+000 0.819788148035435E+000 - 0.999999416540816E+000 0.118021123838749E+001 0.100000126267206E+001 - 0.819787740388547E+000 0.100000126267206E+001 0.118021251243118E+001 - 0.999998153791570E+000 0.819788483989688E+000 0.999998153791570E+000 - 0.118021181900576E+001 0.999999729758155E+000 0.819788059866020E+000 - 0.999999729758155E+000 0.118021181900576E+001 0.999999729758160E+000 - 0.819788059866019E+000 0.999999729758161E+000 0.118021251243118E+001 - 0.999998153791568E+000 0.819788483989689E+000 0.999998153791568E+000 - 0.118021123838749E+001 0.100000126267206E+001 0.819787740388546E+000 - 0.100000126267206E+001 0.118021177957386E+001 0.999999416540813E+000 - 0.819788148035435E+000 0.999999416540814E+000 0.118021182362956E+001 - 0.999999999999999E+000 0.819788176370441E+000 0.999999999999999E+000 + 0.118021178224343E+001 0.999999400987109E+000 0.819788152467154E+000 + 0.999999400987109E+000 0.118021123404618E+001 0.100000126897252E+001 + 0.819787738211177E+000 0.100000126897252E+001 0.118021251123089E+001 + 0.999998140709185E+000 0.819788485456970E+000 0.999998140709185E+000 + 0.118021181804158E+001 0.999999726623022E+000 0.819788061362897E+000 + 0.999999726623022E+000 0.118021181804158E+001 0.999999726623029E+000 + 0.819788061362898E+000 0.999999726623028E+000 0.118021251123089E+001 + 0.999998140709190E+000 0.819788485456971E+000 0.999998140709190E+000 + 0.118021123404619E+001 0.100000126897252E+001 0.819787738211178E+000 + 0.100000126897252E+001 0.118021178224343E+001 0.999999400987113E+000 + 0.819788152467153E+000 0.999999400987113E+000 0.118021182362956E+001 + 0.100000000000000E+001 0.819788176370441E+000 0.100000000000000E+001 0.118021182362956E+001 0.999999999999999E+000 0.819788176370439E+000 - 0.999999999999999E+000 0.118021182362956E+001 0.100000000000000E+001 + 0.999999999999999E+000 0.118021182362956E+001 0.999999999999999E+000 0.819788176370440E+000 0.999999999999999E+000 0.118021182362956E+001 0.999999999999999E+000 0.819788176370439E+000 0.999999999999999E+000 - 0.118021182362956E+001 0.100000000000000E+001 0.819788176370439E+000 + 0.118021182362956E+001 0.999999999999999E+000 0.819788176370439E+000 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 - 0.819788176370440E+000 0.100000000000000E+001 0.118021182362956E+001 + 0.819788176370440E+000 0.999999999999999E+000 0.118021182362956E+001 0.100000000000000E+001 0.819788176370439E+000 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 0.819788176370442E+000 0.100000000000000E+001 0.118021182362956E+001 0.999999999999999E+000 - 0.819788176370440E+000 0.999999999999999E+000 0.118021182362956E+001 - 0.999999999999998E+000 0.819788176370439E+000 0.999999999999998E+000 + 0.819788176370440E+000 0.999999999999998E+000 0.118021182362956E+001 + 0.999999999999998E+000 0.819788176370438E+000 0.999999999999998E+000 0.118021182362956E+001 0.100000000000000E+001 0.819788176370440E+000 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 - 0.819788176370439E+000 0.999999999999999E+000 0.118021182362956E+001 + 0.819788176370439E+000 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 0.819788176370439E+000 0.100000000000000E+001 - 0.118021182362956E+001 0.100000000000000E+001 0.819788176370439E+000 + 0.118021182362956E+001 0.100000000000000E+001 0.819788176370440E+000 0.100000000000000E+001 0.118021182362956E+001 0.999999999999999E+000 - 0.819788176370438E+000 0.999999999999999E+000 0.118021182362956E+001 - 0.999999999999999E+000 0.819788176370441E+000 0.999999999999999E+000 + 0.819788176370439E+000 0.999999999999999E+000 0.118021182362956E+001 + 0.999999999999999E+000 0.819788176370440E+000 0.100000000000000E+001 forces :real:2:3,24 - 0.176585805665386E-019 0.154807936545889E-018 0.348456070595567E-001 - 0.994282132944801E-021 -0.432717342125321E-019 -0.152658902851571E-002 - -0.745201798505943E-021 -0.663126329644949E-020 0.724226343411793E-003 - 0.965570187201848E-022 0.400257410446699E-020 -0.724462781965030E-003 - 0.894878346039630E-020 0.206752526121817E-019 0.724462782401708E-003 - 0.178305681941694E-020 0.108570356803016E-020 -0.724226344150397E-003 - -0.107074675760266E-018 -0.238303888976988E-018 0.152658902913053E-002 - 0.129592699676973E-018 0.364460314392304E-018 -0.348456070599240E-001 - -0.288657192130304E-019 -0.133989218535760E-018 -0.217841502097952E+000 - -0.355606264153326E-020 -0.120988306966901E-019 -0.227104196637452E+000 - 0.344956518027426E-023 0.783865532169152E-023 0.246930256992633E+000 + -0.220415949296023E-019 0.374688826596456E-018 0.724406042780928E-003 + 0.196789327805001E-019 -0.120909110087989E-018 -0.724424581153682E-003 + 0.704926248171273E-021 -0.283503790059156E-020 0.724434892929171E-003 + -0.200294900134401E-020 0.106677578125049E-019 -0.724463304002609E-003 + -0.960590731926927E-020 -0.154139496628529E-020 0.724463304439260E-003 + 0.189698867626728E-021 -0.277361518057527E-020 -0.724434893668413E-003 + 0.112792056565202E-018 0.209205699666198E-019 0.724424581769356E-003 + -0.208038728281222E-018 -0.607175689799234E-020 -0.724406043145387E-003 + 0.103651342919237E-018 -0.125315654911250E-019 -0.252520736285725E+000 + 0.390946864208977E-021 0.956358408771851E-021 -0.225741748129421E+000 + 0.577612729088266E-023 0.257244736695224E-022 0.246928213795700E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125556E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 - -0.785673953385062E-025 0.183871565099996E-023 -0.246930256992641E+000 - 0.278130177221314E-023 -0.185806302317056E-020 0.227104196637463E+000 - -0.188384502445900E-019 -0.108888457891229E-018 0.217841502098000E+000 + 0.358566578769836E-022 -0.240469599487199E-022 -0.246928213795708E+000 + 0.617222834794431E-021 -0.306610056608223E-021 0.225741748129432E+000 + 0.362242857358886E-020 -0.260266092721631E-018 0.252520736285770E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125559E+000 total_energy :real:0: - -0.149783496869304E+002 + -0.149783496599275E+002 end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 0.117309490472823E+001 0.000000000000000E+000 0.000000000000000E+000 0.374999347524859E+001 @@ -86,172 +86,174 @@ end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 -0.135961702352022E+002 0.000000000000000E+000 0.000000000000000E+000 -0.110192716646819E+002 total_tunneling :real:2:251,1 - 0.199999999926082E+001 0.199999999925554E+001 0.199999999925548E+001 - 0.199999999926050E+001 0.199999999927038E+001 0.199999999928488E+001 - 0.199999999930368E+001 0.199999999932644E+001 0.199999999935277E+001 - 0.199999999938225E+001 0.199999999941446E+001 0.199999999944893E+001 - 0.199999999948520E+001 0.199999999952280E+001 0.199999999956125E+001 - 0.199999999960008E+001 0.199999999963885E+001 0.199999999967712E+001 - 0.199999999971446E+001 0.199999999975049E+001 0.199999999978486E+001 - 0.199999999981724E+001 0.199999999984736E+001 0.199999999987498E+001 - 0.199999999989992E+001 0.199999999992204E+001 0.199999999994127E+001 - 0.199999999995757E+001 0.199999999997099E+001 0.199999999998162E+001 - 0.199999999998959E+001 0.199999999999512E+001 0.199999999999845E+001 - 0.199999999999989E+001 0.199999999999978E+001 0.199999999999849E+001 - 0.199999999999644E+001 0.199999999999403E+001 0.199999999999167E+001 - 0.199999999998973E+001 0.199999999998855E+001 0.199999999998837E+001 - 0.199999999998930E+001 0.199999999999131E+001 0.199999999999413E+001 - 0.199999999999718E+001 0.199999999999952E+001 0.199999999999971E+001 - 0.199999999999568E+001 0.199999999998461E+001 0.199999999996268E+001 - 0.199999999992486E+001 0.199999999986456E+001 0.199999999977330E+001 - 0.199999999964018E+001 0.199999999945132E+001 0.199999999918903E+001 - 0.199999999883086E+001 0.199999999834830E+001 0.199999999770519E+001 - 0.199999999685554E+001 0.199999999574074E+001 0.199999999428585E+001 - 0.199999999239467E+001 0.199999998994303E+001 0.199999998676971E+001 - 0.199999998266388E+001 0.199999997734752E+001 0.199999997045059E+001 - 0.199999996147518E+001 0.199999994974304E+001 0.199999993431721E+001 - 0.199999991388237E+001 0.199999988655761E+001 0.199999984959540E+001 - 0.199999979888152E+001 0.199999972807348E+001 0.199999962705035E+001 - 0.199999947897676E+001 0.199999925438692E+001 0.199999889831692E+001 - 0.199999829947148E+001 0.199999720631983E+001 0.199999495487365E+001 - 0.199998931957552E+001 0.199996887076644E+001 0.199975403638448E+001 - 0.431550757491144E-003 0.290237701470624E-004 0.874000644859084E-005 - 0.397795732785145E-005 0.221113197667929E-005 0.138450051281783E-005 - 0.938665553887800E-006 0.673805079376584E-006 0.505011665600670E-006 - 0.391538661824644E-006 0.311979603694815E-006 0.254271001081942E-006 - 0.211222201614918E-006 0.178345558943265E-006 0.152730851856305E-006 - 0.132428430193180E-006 0.116095159978690E-006 0.102783019144102E-006 - 0.918084829336233E-007 0.826693797451013E-007 0.749905536779260E-007 - 0.684875132538925E-007 0.629415988390968E-007 0.581826966010190E-007 - 0.540769991079910E-007 0.505182041904871E-007 0.474210963512562E-007 - 0.447168050154557E-007 0.423492599342114E-007 0.402725126482820E-007 - 0.384486922312973E-007 0.368464309264584E-007 0.354396416786483E-007 - 0.342065619160139E-007 0.331290007793052E-007 0.321917433209082E-007 - 0.313820769866500E-007 0.306894143048156E-007 0.301049919962243E-007 - 0.296216320701629E-007 0.292335519147338E-007 0.289362174333563E-007 - 0.287262300468373E-007 0.286012443593090E-007 0.285599125371819E-007 - 0.286018532187896E-007 0.287276437220614E-007 0.289388352682511E-007 - 0.292379918746646E-007 0.296287545435408E-007 0.301159334538515E-007 - 0.307056321125037E-007 0.314054089313378E-007 0.322244835732766E-007 - 0.331739978012516E-007 0.342673436633116E-007 0.355205759279173E-007 - 0.369529311205878E-007 0.385874828523343E-007 0.404519731272488E-007 - 0.425798731079871E-007 0.450117460334414E-007 0.477970120809513E-007 - 0.509962536399572E-007 0.546842553783952E-007 0.589540554434997E-007 - 0.639224060700367E-007 0.697372261862666E-007 0.765879120983295E-007 - 0.847198166517015E-007 0.944549181418982E-007 0.106221863587533E-006 - 0.120600522845227E-006 0.138389556739174E-006 0.160711491452923E-006 - 0.189180821439763E-006 0.226181790574015E-006 0.275344827555892E-006 - 0.342399918472262E-006 0.436785411037776E-006 0.574873091808729E-006 - 0.786938208162834E-006 0.113371546571432E-005 0.175086238422862E-005 - 0.299012460332959E-005 0.599198118661384E-005 0.161739003534284E-004 - 0.955226783151451E-004 0.199745270704118E+001 0.199994028962692E+001 - 0.199998385511150E+001 0.199999305317691E+001 0.199999633533146E+001 - 0.199999783314455E+001 0.199999862271373E+001 0.199999908031148E+001 - 0.199999936383208E+001 0.199999954837743E+001 0.199999967310361E+001 - 0.199999975991144E+001 0.199999982175005E+001 0.199999986662808E+001 - 0.199999989968616E+001 0.199999992432842E+001 0.199999994286952E+001 - 0.199999995691954E+001 0.199999996762064E+001 0.199999997579705E+001 - 0.199999998205256E+001 0.199999998683534E+001 0.199999999048194E+001 - 0.199999999324770E+001 0.199999999532808E+001 0.199999999687394E+001 - 0.199999999800249E+001 0.199999999880535E+001 0.199999999935456E+001 - 0.199999999970694E+001 0.199999999990751E+001 0.199999999999202E+001 - 0.199999999998894E+001 0.199999999992092E+001 0.199999999980602E+001 - 0.199999999965861E+001 0.199999999949010E+001 0.199999999930953E+001 - 0.199999999912399E+001 0.199999999893905E+001 0.199999999875899E+001 - 0.199999999858707E+001 0.199999999842574E+001 0.199999999827676E+001 - 0.199999999814134E+001 0.199999999802025E+001 0.199999999791391E+001 - 0.199999999782245E+001 0.199999999774575E+001 0.199999999768354E+001 - 0.199999999763539E+001 0.199999999760076E+001 0.199999999757901E+001 - 0.199999999756947E+001 0.199999999757140E+001 0.199999999758403E+001 - 0.199999999760660E+001 0.199999999763830E+001 0.199999999767837E+001 - 0.199999999772601E+001 0.199999999778047E+001 0.199999999784100E+001 - 0.199999999790688E+001 0.199999999797740E+001 0.199999999805189E+001 - 0.199999999812970E+001 0.199999999821022E+001 0.199999999829286E+001 - 0.199999999837706E+001 0.199999999846228E+001 0.199999999854805E+001 - 0.199999999863388E+001 0.199999999871935E+001 0.199999999880404E+001 - 0.199999999888757E+001 0.199999999896961E+001 + 0.199999999925951E+001 0.199999999925419E+001 0.199999999925410E+001 + 0.199999999925908E+001 0.199999999926895E+001 0.199999999928344E+001 + 0.199999999930223E+001 0.199999999932499E+001 0.199999999935133E+001 + 0.199999999938084E+001 0.199999999941307E+001 0.199999999944758E+001 + 0.199999999948389E+001 0.199999999952153E+001 0.199999999956004E+001 + 0.199999999959893E+001 0.199999999963777E+001 0.199999999967610E+001 + 0.199999999971351E+001 0.199999999974962E+001 0.199999999978406E+001 + 0.199999999981652E+001 0.199999999984671E+001 0.199999999987441E+001 + 0.199999999989942E+001 0.199999999992162E+001 0.199999999994092E+001 + 0.199999999995729E+001 0.199999999997077E+001 0.199999999998145E+001 + 0.199999999998947E+001 0.199999999999504E+001 0.199999999999841E+001 + 0.199999999999988E+001 0.199999999999979E+001 0.199999999999852E+001 + 0.199999999999648E+001 0.199999999999407E+001 0.199999999999170E+001 + 0.199999999998975E+001 0.199999999998856E+001 0.199999999998836E+001 + 0.199999999998928E+001 0.199999999999128E+001 0.199999999999409E+001 + 0.199999999999714E+001 0.199999999999950E+001 0.199999999999972E+001 + 0.199999999999577E+001 0.199999999998480E+001 0.199999999996301E+001 + 0.199999999992538E+001 0.199999999986535E+001 0.199999999977443E+001 + 0.199999999964177E+001 0.199999999945348E+001 0.199999999919190E+001 + 0.199999999883462E+001 0.199999999835316E+001 0.199999999771140E+001 + 0.199999999686340E+001 0.199999999575060E+001 0.199999999429815E+001 + 0.199999999240993E+001 0.199999998996187E+001 0.199999998679289E+001 + 0.199999998269232E+001 0.199999997738234E+001 0.199999997049317E+001 + 0.199999996152723E+001 0.199999994980670E+001 0.199999993439518E+001 + 0.199999991397809E+001 0.199999988667554E+001 0.199999984974139E+001 + 0.199999979906340E+001 0.199999972830194E+001 0.199999962734039E+001 + 0.199999947935009E+001 0.199999925487617E+001 0.199999889897357E+001 + 0.199999830038211E+001 0.199999720764295E+001 0.199999495693726E+001 + 0.199998932320095E+001 0.199996887886025E+001 0.199975407454689E+001 + 0.431551662635775E-003 0.290238021459569E-004 0.874001365815937E-005 + 0.397796002610388E-005 0.221113326613396E-005 0.138450122514634E-005 + 0.938665987175496E-006 0.673805361694099E-006 0.505011859296970E-006 + 0.391538800170954E-006 0.311979705741560E-006 0.254271078363920E-006 + 0.211222261441101E-006 0.178345606123055E-006 0.152730889656751E-006 + 0.132428460894877E-006 0.116095185211620E-006 0.102783040097464E-006 + 0.918085004909292E-007 0.826693945734252E-007 0.749905662881783E-007 + 0.684875240424677E-007 0.629416081171861E-007 0.581827046154084E-007 + 0.540770060562876E-007 0.505182102322879E-007 0.474211016164382E-007 + 0.447168096104477E-007 0.423492639467603E-007 0.402725161511510E-007 + 0.384486952850410E-007 0.368464335816535E-007 0.354396439777761E-007 + 0.342065638946454E-007 0.331290024673482E-007 0.321917447436366E-007 + 0.313820781646706E-007 0.306894152561932E-007 0.301049928435825E-007 + 0.296216326078867E-007 0.292335522600974E-007 0.289362175936415E-007 + 0.287262300271968E-007 0.286012441625739E-007 0.285599121645196E-007 + 0.286018526695527E-007 0.287276429936968E-007 0.289388343563599E-007 + 0.292379907728916E-007 0.296287532434272E-007 0.301159319446461E-007 + 0.307056303809148E-007 0.314054069612435E-007 0.322244813453286E-007 + 0.331739952923689E-007 0.342673408460168E-007 0.355205727698412E-007 + 0.369529275831275E-007 0.385874788897265E-007 0.404519686850162E-007 + 0.425798681210595E-007 0.450117404237463E-007 0.477970057543405E-007 + 0.509962464822229E-007 0.546842472500738E-007 0.589540461730020E-007 + 0.639223954444993E-007 0.697372139391938E-007 0.765878978926822E-007 + 0.847198000564138E-007 0.944548985987500E-007 0.106221840363566E-006 + 0.120600494963062E-006 0.138389522872634E-006 0.160711449766865E-006 + 0.189180769337153E-006 0.226181724283679E-006 0.275344741435003E-006 + 0.342399803774031E-006 0.436785253619404E-006 0.574872867595799E-006 + 0.786937873461929E-006 0.113371493442363E-005 0.175086146698277E-005 + 0.299012281396628E-005 0.599197694393910E-005 0.161738858610576E-004 + 0.955225484386738E-004 0.199745250476279E+001 0.199994027753003E+001 + 0.199998385058206E+001 0.199999305077266E+001 0.199999633384389E+001 + 0.199999783214151E+001 0.199999862199941E+001 0.199999907978335E+001 + 0.199999936343095E+001 0.199999954806659E+001 0.199999967285906E+001 + 0.199999975971679E+001 0.199999982159373E+001 0.199999986650171E+001 + 0.199999989958349E+001 0.199999992424471E+001 0.199999994280115E+001 + 0.199999995686365E+001 0.199999996757498E+001 0.199999997575982E+001 + 0.199999998202230E+001 0.199999998681087E+001 0.199999999046229E+001 + 0.199999999323206E+001 0.199999999531580E+001 0.199999999686445E+001 + 0.199999999799532E+001 0.199999999880012E+001 0.199999999935093E+001 + 0.199999999970463E+001 0.199999999990628E+001 0.199999999999168E+001 + 0.199999999998931E+001 0.199999999992186E+001 0.199999999980740E+001 + 0.199999999966034E+001 0.199999999949208E+001 0.199999999931168E+001 + 0.199999999912626E+001 0.199999999894137E+001 0.199999999876133E+001 + 0.199999999858939E+001 0.199999999842801E+001 0.199999999827895E+001 + 0.199999999814343E+001 0.199999999802223E+001 0.199999999791576E+001 + 0.199999999782416E+001 0.199999999774733E+001 0.199999999768497E+001 + 0.199999999763667E+001 0.199999999760189E+001 0.199999999758000E+001 + 0.199999999757031E+001 0.199999999757210E+001 0.199999999758460E+001 + 0.199999999760703E+001 0.199999999763861E+001 0.199999999767855E+001 + 0.199999999772609E+001 0.199999999778044E+001 0.199999999784087E+001 + 0.199999999790666E+001 0.199999999797709E+001 0.199999999805151E+001 + 0.199999999812925E+001 0.199999999820971E+001 0.199999999829229E+001 + 0.199999999837643E+001 0.199999999846162E+001 0.199999999854735E+001 + 0.199999999863315E+001 0.199999999871860E+001 0.199999999880327E+001 + 0.199999999888679E+001 0.199999999896882E+001 total_localdos :real:2:251,1 - 0.269323220455446E+002 0.268814037878240E+002 0.268320642073952E+002 - 0.267843048854745E+002 0.267381289489412E+002 0.266935411122232E+002 - 0.266505477242701E+002 0.266091568209382E+002 0.265693781831487E+002 - 0.265312234012225E+002 0.264947059458399E+002 0.264598412461253E+002 - 0.264266467754110E+002 0.263951421452990E+002 0.263653492087075E+002 - 0.263372921726660E+002 0.263109977217117E+002 0.262864951528348E+002 - 0.262638165230309E+002 0.262429968106408E+002 0.262240740917964E+002 - 0.262070897334491E+002 0.261920886046316E+002 0.261791193078078E+002 - 0.261682344323907E+002 0.261594908327698E+002 0.261529499334858E+002 - 0.261486780645271E+002 0.261467468301142E+002 0.261472335147806E+002 - 0.261502215310756E+002 0.261558009138022E+002 0.261640688663931E+002 - 0.261751303658189E+002 0.261890988333470E+002 0.262060968795459E+002 - 0.262262571331890E+002 0.262497231651852E+002 0.262766505204003E+002 - 0.263072078722765E+002 0.263415783175802E+002 0.263799608314806E+002 - 0.264225719065864E+002 0.264696474036600E+002 0.265214446466462E+002 - 0.265782448005655E+002 0.266403555779960E+002 0.267081143285629E+002 - 0.267818915764890E+002 0.268620950842873E+002 0.269491745366864E+002 - 0.270436269592332E+002 0.271460030092393E+002 0.272569143109537E+002 - 0.273770420420869E+002 0.275071470316567E+002 0.276480816910517E+002 - 0.278008041823579E+002 0.279663953338924E+002 0.281460789513633E+002 - 0.283412463557322E+002 0.285534862218973E+002 0.287846211190739E+002 - 0.290367525976418E+002 0.293123172772707E+002 0.296141572398980E+002 - 0.299456092279406E+002 0.303106188603704E+002 0.307138885680235E+002 - 0.311610716300336E+002 0.316590302408158E+002 0.322161840761409E+002 - 0.328429892809462E+002 0.335526095591650E+002 0.343618772781123E+002 - 0.352927048745781E+002 0.363742183885442E+002 0.376460933642106E+002 - 0.391639833410245E+002 0.410087884985152E+002 0.433034425868809E+002 - 0.462456613170330E+002 0.501783212432157E+002 0.557620828714106E+002 - 0.644893497300211E+002 0.807951073010482E+002 0.129876540711491E+003 - 0.230655843843944E+001 0.327944951403338E+000 0.140467075670259E+000 - 0.813057739056560E-001 0.543875177625938E-001 0.396339209745619E-001 - 0.305708208641125E-001 0.245555914518354E-001 0.203332421797044E-001 - 0.172408694173866E-001 0.148994534689165E-001 0.130785587841458E-001 - 0.116310353097815E-001 0.104590642516906E-001 0.949540402961146E-002 - 0.869250146664043E-002 0.801589818364291E-002 0.744009193579455E-002 - 0.694585695331188E-002 0.651846125337494E-002 0.614645199800350E-002 - 0.582081014612419E-002 0.553435085813687E-002 0.528129089814540E-002 - 0.505693167907681E-002 0.485742377104257E-002 0.467958969821208E-002 - 0.452078904312736E-002 0.437881466626860E-002 0.425181209050694E-002 - 0.413821632874344E-002 0.403670198720742E-002 0.394614357518357E-002 - 0.386558373777177E-002 0.379420769715520E-002 0.373132260426446E-002 - 0.367634081080431E-002 0.362876630195260E-002 0.358818370428600E-002 - 0.355424941470479E-002 0.352668450498601E-002 0.350526912498173E-002 - 0.348983820685163E-002 0.348027831271447E-002 0.347652551768580E-002 - 0.347856425600457E-002 0.348642709176438E-002 0.350019540732185E-002 - 0.352000103366615E-002 0.354602887956012E-002 0.357852065186874E-002 - 0.361777980018017E-002 0.366417786700923E-002 0.371816248357637E-002 - 0.378026732429315E-002 0.385112442584713E-002 0.393147939620590E-002 - 0.402221019437271E-002 0.412435036709068E-002 0.423911790176468E-002 - 0.436795122313602E-002 0.451255436197603E-002 0.467495401312003E-002 - 0.485757215898276E-002 0.506331928521176E-002 0.529571514208272E-002 - 0.555904679302546E-002 0.585857778559141E-002 0.620082839032843E-002 - 0.659395613445678E-002 0.704828022988591E-002 0.757701622694986E-002 - 0.819732402583427E-002 0.893183351448378E-002 0.981091664121651E-002 - 0.108761593743442E-001 0.121858253243852E-001 0.138237492654708E-001 - 0.159143953206187E-001 0.186495662900638E-001 0.223384964552945E-001 - 0.275084357506277E-001 0.351246819636765E-001 0.471284933844411E-001 - 0.679664855494654E-001 0.110008469271034E+000 0.221073877395643E+000 - 0.788164370730401E+000 0.233142762151579E+003 0.945502180458916E+002 - 0.707347530886784E+002 0.594713093137678E+002 0.526411966529339E+002 - 0.479679528623452E+002 0.445310697403632E+002 0.418785312756009E+002 - 0.397592997792507E+002 0.380214798618962E+002 0.365671529642081E+002 - 0.353300366958651E+002 0.342634860025698E+002 0.333336190530081E+002 - 0.325151685130655E+002 0.317888677284904E+002 0.311397434233271E+002 - 0.305559656808881E+002 0.300280524663734E+002 0.295483065042387E+002 - 0.291104084384297E+002 0.287091175448292E+002 0.283400479828044E+002 - 0.279994990774636E+002 0.276843248879155E+002 0.273918327681935E+002 - 0.271197036156306E+002 0.268659285437347E+002 0.266287581354848E+002 - 0.264066614336739E+002 0.261982925405144E+002 0.260024632170046E+002 - 0.258181202523804E+002 0.256443266554226E+002 0.254802459300497E+002 - 0.253251288568343E+002 0.251783023234722E+002 0.250391598405710E+002 - 0.249071534514465E+002 0.247817868010838E+002 0.246626091738238E+002 - 0.245492103444304E+002 0.244412161152078E+002 0.243382844342101E+002 - 0.242401020076470E+002 0.241463813342022E+002 0.240568581008738E+002 - 0.239712888896768E+002 0.238894491525385E+002 0.238111314183140E+002 - 0.237361437013146E+002 0.236643080852914E+002 0.235954594606112E+002 - 0.235294443955495E+002 0.234661201253038E+002 0.234053536445888E+002 - 0.233470208915941E+002 0.232910060127110E+002 0.232372006988181E+002 - 0.231855035851067E+002 0.231358197074358E+002 0.230880600090837E+002 - 0.230421408925137E+002 0.229979838114193E+002 0.229555148988789E+002 - 0.229146646279367E+002 0.228753675013513E+002 0.228375617676225E+002 - 0.228011891607332E+002 0.227661946613218E+002 0.227325262772531E+002 - 0.227001348417704E+002 0.226689738276075E+002 0.226389991756034E+002 - 0.226101691365189E+002 0.225824441248807E+002 + 0.269323223156065E+002 0.268814040489886E+002 0.268320644598050E+002 + 0.267843051292632E+002 0.267381291842322E+002 0.266935413391279E+002 + 0.266505479428864E+002 0.266091570313489E+002 0.265693783854198E+002 + 0.265312235954015E+002 0.264947061319544E+002 0.264598414241812E+002 + 0.264266469453910E+002 0.263951423071612E+002 0.263653493623834E+002 + 0.263372923180593E+002 0.263109978586967E+002 0.262864952812550E+002 + 0.262638166426973E+002 0.262429969213304E+002 0.262240741932512E+002 + 0.262070898253741E+002 0.261920886866939E+002 0.261791193796347E+002 + 0.261682344935688E+002 0.261594908828433E+002 0.261529499719552E+002 + 0.261486780908479E+002 0.261467468436953E+002 0.261472335149833E+002 + 0.261502215172116E+002 0.261558008851325E+002 0.261640688221265E+002 + 0.261751303051103E+002 0.261890987552957E+002 0.262060967831941E+002 + 0.262262570175197E+002 0.262497230291206E+002 0.262766503627993E+002 + 0.263072076919327E+002 0.263415781132194E+002 0.263799606017582E+002 + 0.264225716500843E+002 0.264696471188838E+002 0.265214443320210E+002 + 0.265782444544327E+002 0.266403551986081E+002 0.267081139140793E+002 + 0.267818911249700E+002 0.268620945936880E+002 0.269491740049087E+002 + 0.270436263838827E+002 0.271460023879686E+002 0.272569136412172E+002 + 0.273770413211878E+002 0.275071462567337E+002 0.276480808590633E+002 + 0.278008032900651E+002 0.279663943778361E+002 0.281460779278426E+002 + 0.283412452607739E+002 0.285534850512240E+002 0.287846198680636E+002 + 0.290367512612823E+002 0.293123158501017E+002 0.296141557159449E+002 + 0.299456076006324E+002 0.303106171224380E+002 0.307138867113761E+002 + 0.311610696456028E+002 0.316590281183604E+002 0.322161818039937E+002 + 0.328429868456892E+002 0.335526069451975E+002 0.343618744670722E+002 + 0.352927018445463E+002 0.363742151129251E+002 0.376460898101113E+002 + 0.391639794668216E+002 0.410087842500659E+002 0.433034378912911E+002 + 0.462456560717605E+002 0.501783152953755E+002 0.557620759738459E+002 + 0.644893414319875E+002 0.807950966011544E+002 0.129876524654278E+003 + 0.230656294530060E+001 0.327945267746186E+000 0.140467172891997E+000 + 0.813058186572964E-001 0.543875427788548E-001 0.396339366631899E-001 + 0.305708314827324E-001 0.245555990402478E-001 0.203332478278652E-001 + 0.172408737563681E-001 0.148994568873266E-001 0.130785615332726E-001 + 0.116310375587064E-001 0.104590661179972E-001 0.949540559737690E-002 + 0.869250279742976E-002 0.801589932347297E-002 0.744009291968304E-002 + 0.694585780833010E-002 0.651846200074551E-002 0.614645265457159E-002 + 0.582081072540954E-002 0.553435137110177E-002 0.528129135375380E-002 + 0.505693208472042E-002 0.485742413285999E-002 0.467959002133404E-002 + 0.452078933186644E-002 0.437881492426766E-002 0.425181232085606E-002 + 0.413821653407280E-002 0.403670216976171E-002 0.394614373688168E-002 + 0.386558388025527E-002 0.379420782182777E-002 0.373132271232360E-002 + 0.367634090326791E-002 0.362876637967885E-002 0.358818376770492E-002 + 0.355424946498593E-002 0.352668454231591E-002 0.350526914972804E-002 + 0.348983821928246E-002 0.348027831300276E-002 0.347652550591177E-002 + 0.347856423215759E-002 0.348642705574267E-002 0.350019535893068E-002 + 0.352000097261435E-002 0.354602880545488E-002 0.357852056420840E-002 + 0.361777969834478E-002 0.366417775024861E-002 0.371816235099522E-002 + 0.378026717483279E-002 0.385112425825878E-002 0.393147920903848E-002 + 0.402220998591589E-002 0.412435013534817E-002 0.423911764439876E-002 + 0.436795093740360E-002 0.451255404464864E-002 0.467495366038363E-002 + 0.485757176631103E-002 0.506331884720445E-002 0.529571465225789E-002 + 0.555904624354948E-002 0.585857716692429E-002 0.620082769075252E-002 + 0.659395533944190E-002 0.704827932122176E-002 0.757701518154128E-002 + 0.819732281399801E-002 0.893183209749188E-002 0.981091496767259E-002 + 0.108761573747000E-001 0.121858229023974E-001 0.138237462844337E-001 + 0.159143915802888E-001 0.186495614861323E-001 0.223384901040863E-001 + 0.275084270391506E-001 0.351246694236671E-001 0.471284740976654E-001 + 0.679664528790087E-001 0.110008404680562E+000 0.221073706766167E+000 + 0.788163399771307E+000 0.233142768932176E+003 0.945502293266371E+002 + 0.707347614560489E+002 0.594713161378990E+002 0.526412024845782E+002 + 0.479679579841047E+002 0.445310743198125E+002 0.418785354218847E+002 + 0.397593035682910E+002 0.380214833491406E+002 0.365671561917002E+002 + 0.353300396964497E+002 0.342634888025359E+002 0.333336216738270E+002 + 0.325151709725729E+002 0.317888700417202E+002 0.311397456031109E+002 + 0.305559677382990E+002 0.300280544110593E+002 0.295483083446780E+002 + 0.291104101821298E+002 0.287091191984835E+002 0.283400495524168E+002 + 0.279995005684500E+002 0.276843263051859E+002 0.273918341162190E+002 + 0.271197048985006E+002 0.268659297652031E+002 0.266287592990097E+002 + 0.264066625424507E+002 0.261982935975056E+002 0.260024642249627E+002 + 0.258181212138696E+002 0.256443275728379E+002 0.254802468056318E+002 + 0.253251296926833E+002 0.251783031215614E+002 0.250391606027562E+002 + 0.249071541794753E+002 0.247817874966076E+002 0.246626098383997E+002 + 0.245492109795318E+002 0.244412167222297E+002 0.243382850144742E+002 + 0.242401025624070E+002 0.241463818646480E+002 0.240568586081356E+002 + 0.239712893748288E+002 0.238894496166024E+002 0.238111318622618E+002 + 0.237361441260719E+002 0.236643084917393E+002 0.235954598495892E+002 + 0.235294447678576E+002 0.234661204817046E+002 0.234053539858090E+002 + 0.233470212183270E+002 0.232910063256173E+002 0.232372009985282E+002 + 0.231855038722215E+002 0.231358199825284E+002 0.230880602727007E+002 + 0.230421411451761E+002 0.229979840536238E+002 0.229555151310990E+002 + 0.229146648506237E+002 0.228753677149349E+002 0.228375619725122E+002 + 0.228011893573188E+002 0.227661948499745E+002 0.227325264583258E+002 + 0.227001350155990E+002 0.226689739945112E+002 0.226389993358856E+002 + 0.226101692904676E+002 0.225824442727694E+002 +dipole_moments :real:2:3,1 + 0.000000000000000E+000 0.000000000000000E+000 0.618803856990423E-004 diff --git a/test/app/dftb+/transport/C-chain+U/device.hsd b/test/app/dftb+/transport/C-chain+U/device.hsd index 479a1214b5..197a2e57f1 100644 --- a/test/app/dftb+/transport/C-chain+U/device.hsd +++ b/test/app/dftb+/transport/C-chain+U/device.hsd @@ -17,6 +17,7 @@ Transport { Hamiltonian = DFTB { Scc = Yes + SCCTolerance = 1.0E-7 MaxAngularMomentum { C = p } diff --git a/test/app/dftb+/transport/C-chain+U/drain.hsd b/test/app/dftb+/transport/C-chain+U/drain.hsd index 145b317cde..66a202743d 100644 --- a/test/app/dftb+/transport/C-chain+U/drain.hsd +++ b/test/app/dftb+/transport/C-chain+U/drain.hsd @@ -22,6 +22,7 @@ Transport { Hamiltonian = DFTB { Scc = Yes + SCCTolerance = 1.0E-8 MaxAngularMomentum { C = p } diff --git a/test/app/dftb+/transport/C-chain+U/source.hsd b/test/app/dftb+/transport/C-chain+U/source.hsd index 9a20df2784..653f3cfafe 100644 --- a/test/app/dftb+/transport/C-chain+U/source.hsd +++ b/test/app/dftb+/transport/C-chain+U/source.hsd @@ -22,6 +22,7 @@ Transport { Hamiltonian = DFTB { Scc = Yes + SCCTolerance = 1.0E-8 MaxAngularMomentum { C = p } diff --git a/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag b/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag index 31d0d9a5d4..cad3db64f1 100644 --- a/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag +++ b/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag @@ -1,28 +1,28 @@ cell_volume :real:0: 0.843871930469613E+005 orbital_charges :real:2:4,24 - 0.590105908354477E+000 0.531249992006486E+000 0.409894084807993E+000 - 0.531249992006486E+000 0.590105917058396E+000 0.531250026653670E+000 - 0.409894092318251E+000 0.531250026653670E+000 0.590105907612750E+000 - 0.531249992159111E+000 0.409894084726600E+000 0.531249992159111E+000 - 0.590105914534802E+000 0.531250013434722E+000 0.409894090447931E+000 - 0.531250013434722E+000 0.590105914534803E+000 0.531250013434739E+000 - 0.409894090447928E+000 0.531250013434739E+000 0.590105907612771E+000 - 0.531249992159227E+000 0.409894084726620E+000 0.531249992159227E+000 - 0.590105917058404E+000 0.531250026653705E+000 0.409894092318258E+000 - 0.531250026653705E+000 0.590105908354482E+000 0.531249992006584E+000 - 0.409894084807994E+000 0.531249992006584E+000 0.590105912733025E+000 - 0.531249999999887E+000 0.409894087266973E+000 0.531249999999888E+000 - 0.590105912733028E+000 0.531249999999889E+000 0.409894087266973E+000 - 0.531249999999891E+000 0.590105912733027E+000 0.531249999999888E+000 + 0.590105908815776E+000 0.531249994182319E+000 0.409894085154945E+000 + 0.531249994182319E+000 0.590105916553262E+000 0.531250025264484E+000 + 0.409894091938490E+000 0.531250025264484E+000 0.590105908132062E+000 + 0.531249995049518E+000 0.409894085119099E+000 0.531249995049518E+000 + 0.590105914314128E+000 0.531250013991477E+000 0.409894090259225E+000 + 0.531250013991477E+000 0.590105914314125E+000 0.531250013991486E+000 + 0.409894090259219E+000 0.531250013991487E+000 0.590105908132089E+000 + 0.531249995049653E+000 0.409894085119122E+000 0.531249995049652E+000 + 0.590105916553269E+000 0.531250025264517E+000 0.409894091938498E+000 + 0.531250025264517E+000 0.590105908815782E+000 0.531249994182428E+000 + 0.409894085154946E+000 0.531249994182428E+000 0.590105912733026E+000 + 0.531249999999888E+000 0.409894087266973E+000 0.531249999999889E+000 + 0.590105912733027E+000 0.531249999999889E+000 0.409894087266973E+000 + 0.531249999999890E+000 0.590105912733027E+000 0.531249999999889E+000 0.409894087266973E+000 0.531249999999889E+000 0.590105912733026E+000 0.531249999999888E+000 0.409894087266972E+000 0.531249999999889E+000 - 0.590105912733028E+000 0.531249999999891E+000 0.409894087266972E+000 - 0.531249999999892E+000 0.590105912733027E+000 0.531249999999889E+000 - 0.409894087266972E+000 0.531249999999889E+000 0.590105912733027E+000 + 0.590105912733026E+000 0.531249999999890E+000 0.409894087266973E+000 + 0.531249999999891E+000 0.590105912733026E+000 0.531249999999888E+000 + 0.409894087266973E+000 0.531249999999888E+000 0.590105912733027E+000 0.531249999999889E+000 0.409894087266972E+000 0.531249999999890E+000 - 0.590105912733026E+000 0.531249999999889E+000 0.409894087266973E+000 - 0.531249999999890E+000 0.590105912733027E+000 0.531249999999889E+000 + 0.590105912733026E+000 0.531249999999888E+000 0.409894087266973E+000 + 0.531249999999889E+000 0.590105912733027E+000 0.531249999999889E+000 0.409894087266973E+000 0.531249999999890E+000 0.590105912733027E+000 0.531249999999891E+000 0.409894087266973E+000 0.531249999999891E+000 0.590105912733027E+000 0.531249999999888E+000 0.409894087266973E+000 @@ -34,32 +34,32 @@ orbital_charges :real:2:4,24 0.409894087266972E+000 0.531249999999889E+000 0.590105912733027E+000 0.531249999999889E+000 0.409894087266973E+000 0.531249999999890E+000 forces :real:2:3,24 - -0.774403228910126E-020 -0.384831439471692E-019 0.989227441025795E-001 - 0.407206146923880E-020 0.179848510954456E-019 -0.675184961991552E-001 - 0.168929978281531E-020 -0.376296760242835E-020 0.667033017822362E-001 - 0.378716947798092E-021 -0.890547133961994E-021 -0.667026032487438E-001 - -0.340354158666233E-020 -0.260060314777906E-020 0.667026032491577E-001 - -0.274539130267809E-020 0.160341102400935E-020 -0.667033017829365E-001 - 0.447997034351406E-019 0.524037652824645E-019 0.675184961997621E-001 - -0.653563538707326E-019 -0.153587245290417E-018 -0.989227441029633E-001 - 0.257874048733792E-019 0.101870099048137E-018 -0.181429417192561E+000 - 0.743867920079154E-022 0.785953427493803E-021 -0.226901255486522E+000 - -0.123639247081542E-023 -0.167036023787638E-023 0.246889098138969E+000 + -0.132796132413417E-019 -0.496755352641194E-019 0.667025896998265E-001 + 0.428229643956325E-020 0.179892349531164E-019 -0.667025954441334E-001 + 0.174197179179077E-020 -0.416207983997898E-020 0.667025990316114E-001 + -0.117893675707527E-020 -0.117011156555675E-020 -0.667026024113777E-001 + -0.350649952375745E-020 0.438087765473235E-020 0.667026024117919E-001 + 0.650711966537237E-020 0.403518998214007E-020 -0.667025990323157E-001 + 0.421903703117541E-019 -0.617865098490079E-019 0.667025954447474E-001 + -0.904578632802591E-019 0.147193362333064E-018 -0.667025897002156E-001 + 0.471264517671598E-019 -0.884774436173490E-019 -0.214206870779588E+000 + -0.142217749259876E-020 -0.424247854261442E-020 -0.225525587041855E+000 + 0.423113075287814E-023 0.945806861532279E-023 0.246885927253037E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125556E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 - -0.163486244658012E-024 -0.437936174632258E-024 -0.246889098138977E+000 - -0.115522282310615E-020 -0.160063583544625E-022 0.226901255486535E+000 - 0.360436843911524E-020 0.246945418874562E-019 0.181429417192615E+000 + 0.557711139451956E-023 0.202040000671257E-022 -0.246885927253044E+000 + -0.118756967925499E-020 0.130379500628134E-020 0.225525587041868E+000 + 0.917464175054043E-020 0.345820366746235E-019 0.214206870779644E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125559E+000 total_energy :real:0: - -0.149474357417081E+002 + -0.149474357488809E+002 end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 0.117309490472823E+001 0.000000000000000E+000 0.000000000000000E+000 0.374999347524859E+001 @@ -86,174 +86,174 @@ end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 -0.135961702352022E+002 0.000000000000000E+000 0.000000000000000E+000 -0.110192716646819E+002 total_tunneling :real:2:251,1 - 0.399999999946488E+001 0.399999999945522E+001 0.399999999944625E+001 - 0.399999999943839E+001 0.399999999943198E+001 0.399999999942729E+001 - 0.399999999942450E+001 0.399999999942375E+001 0.399999999942509E+001 - 0.399999999942855E+001 0.399999999943410E+001 0.399999999944169E+001 - 0.399999999945122E+001 0.399999999946259E+001 0.399999999947569E+001 - 0.399999999949036E+001 0.399999999950650E+001 0.399999999952396E+001 - 0.399999999954264E+001 0.399999999956242E+001 0.399999999958323E+001 - 0.399999999960498E+001 0.399999999962761E+001 0.399999999965109E+001 - 0.399999999967537E+001 0.399999999970043E+001 0.399999999972620E+001 - 0.399999999975263E+001 0.399999999977959E+001 0.399999999980690E+001 - 0.399999999983425E+001 0.399999999986121E+001 0.399999999988714E+001 - 0.399999999991113E+001 0.399999999993195E+001 0.399999999994789E+001 - 0.399999999995670E+001 0.399999999995543E+001 0.399999999994017E+001 - 0.399999999990593E+001 0.399999999984624E+001 0.399999999975287E+001 - 0.399999999961531E+001 0.399999999942025E+001 0.399999999915079E+001 - 0.399999999878561E+001 0.399999999829768E+001 0.399999999765283E+001 - 0.399999999680776E+001 0.399999999570745E+001 0.399999999428183E+001 - 0.399999999244125E+001 0.399999999007058E+001 0.399999998702102E+001 - 0.399999998309903E+001 0.399999997805099E+001 0.399999997154156E+001 - 0.399999996312293E+001 0.399999995219015E+001 0.399999993791528E+001 - 0.399999991914807E+001 0.399999989426277E+001 0.399999986091568E+001 - 0.399999981564968E+001 0.399999975322675E+001 0.399999966545551E+001 - 0.399999953903277E+001 0.399999935133982E+001 0.399999906167513E+001 - 0.399999859133460E+001 0.399999777307940E+001 0.399999620247782E+001 - 0.399999269732006E+001 0.399998254579069E+001 0.399993037016702E+001 - 0.399091140289766E+001 0.200007707592120E+001 0.200001480400272E+001 - 0.200000570192585E+001 0.200000289046417E+001 0.200000169576146E+001 - 0.200000108478118E+001 0.200000072957012E+001 0.200000050054613E+001 - 0.200000033783536E+001 0.200000020976725E+001 0.200000009689599E+001 - 0.199999998469865E+001 0.199999985930188E+001 0.199999970375700E+001 - 0.199999949298218E+001 0.199999918447232E+001 0.199999869795933E+001 - 0.199999786428182E+001 0.199999627511641E+001 0.199999273558697E+001 - 0.199998246720806E+001 0.199992927643965E+001 0.198910264865265E+001 - 0.755322860166117E-004 0.147212761636637E-004 0.573368674276909E-005 - 0.294993244093911E-005 0.176896011395851E-005 0.116992786747780E-005 - 0.828597987003168E-006 0.617462093424059E-006 0.478617031283387E-006 - 0.382878472926177E-006 0.314321948086699E-006 0.263696994926656E-006 - 0.225350540935438E-006 0.195679895086487E-006 0.172306574002045E-006 - 0.153612328326673E-006 0.138467218851328E-006 0.126064293789188E-006 - 0.115815821189804E-006 0.107286311601588E-006 0.100148207577276E-006 - 0.941519207811454E-007 0.891051736821124E-007 0.848585094840823E-007 - 0.812949744651718E-007 0.783226763307764E-007 0.758693610032981E-007 - 0.738784314867116E-007 0.723060163394750E-007 0.711188179863513E-007 - 0.702925547307489E-007 0.698108687677497E-007 0.696646146587649E-007 - 0.698514745303703E-007 0.703758718128631E-007 0.712491777099470E-007 - 0.724902263549512E-007 0.741261782179511E-007 0.761937995542576E-007 - 0.787412621071711E-007 0.818306166773504E-007 0.855411641633101E-007 - 0.899740490693170E-007 0.952585514103859E-007 0.101560781819994E-006 - 0.109095839116062E-006 0.118145049918818E-006 0.129080815624667E-006 - 0.142403091589163E-006 0.158794072524505E-006 0.179202120247838E-006 - 0.204974040368206E-006 0.238069959453658E-006 0.281424692041470E-006 - 0.339580347179113E-006 0.419847088384717E-006 0.534555514462065E-006 - 0.705733568126566E-006 0.975667931933853E-006 0.143344907662100E-005 - 0.229188146421236E-005 0.415963606806065E-005 0.935213738247739E-005 - 0.330449238282674E-004 0.727753357796076E-003 0.199981403488601E+001 - 0.199997200386788E+001 0.199999001047382E+001 0.199999522980920E+001 - 0.199999737262245E+001 0.199999843508950E+001 0.199999903022012E+001 - 0.199999939493741E+001 0.199999963605570E+001 0.199999980770766E+001 - 0.199999994036719E+001 0.200000005336400E+001 0.200000016115383E+001 - 0.200000027730132E+001 0.200000041824120E+001 0.200000060882176E+001 - 0.200000089343278E+001 0.200000136307461E+001 0.200000223323202E+001 - 0.200000411949167E+001 0.200000936926211E+001 0.200003347520867E+001 - 0.200077255571800E+001 0.399981876348366E+001 0.399997224041096E+001 - 0.399999000612295E+001 0.399999517332975E+001 0.399999729375824E+001 - 0.399999834031856E+001 0.399999892007826E+001 0.399999926757714E+001 - 0.399999948805091E+001 0.399999963402459E+001 0.399999973389549E+001 - 0.399999980400236E+001 0.399999985422633E+001 0.399999989079182E+001 - 0.399999991775517E+001 0.399999993783649E+001 0.399999995290496E+001 - 0.399999996427223E+001 0.399999997287560E+001 0.399999997939556E+001 - 0.399999998433299E+001 0.399999998806109E+001 0.399999999086084E+001 - 0.399999999294577E+001 0.399999999447944E+001 0.399999999558801E+001 - 0.399999999636936E+001 0.399999999689979E+001 0.399999999723899E+001 - 0.399999999743384E+001 0.399999999752117E+001 0.399999999752998E+001 - 0.399999999748305E+001 0.399999999739830E+001 0.399999999728974E+001 - 0.399999999716826E+001 0.399999999704231E+001 0.399999999691830E+001 - 0.399999999680110E+001 0.399999999669426E+001 0.399999999660034E+001 - 0.399999999652104E+001 0.399999999645742E+001 0.399999999641003E+001 - 0.399999999637899E+001 0.399999999636408E+001 0.399999999636486E+001 - 0.399999999638065E+001 0.399999999641067E+001 0.399999999645398E+001 - 0.399999999650961E+001 0.399999999657651E+001 0.399999999665362E+001 - 0.399999999673983E+001 0.399999999683409E+001 0.399999999693532E+001 - 0.399999999704248E+001 0.399999999715455E+001 0.399999999727055E+001 - 0.399999999738955E+001 0.399999999751064E+001 0.399999999763298E+001 - 0.399999999775577E+001 0.399999999787825E+001 + 0.399999999946527E+001 0.399999999945550E+001 0.399999999944641E+001 + 0.399999999943843E+001 0.399999999943191E+001 0.399999999942710E+001 + 0.399999999942419E+001 0.399999999942332E+001 0.399999999942455E+001 + 0.399999999942790E+001 0.399999999943335E+001 0.399999999944085E+001 + 0.399999999945029E+001 0.399999999946158E+001 0.399999999947459E+001 + 0.399999999948919E+001 0.399999999950527E+001 0.399999999952268E+001 + 0.399999999954131E+001 0.399999999956106E+001 0.399999999958184E+001 + 0.399999999960357E+001 0.399999999962620E+001 0.399999999964968E+001 + 0.399999999967398E+001 0.399999999969906E+001 0.399999999972488E+001 + 0.399999999975135E+001 0.399999999977838E+001 0.399999999980575E+001 + 0.399999999983319E+001 0.399999999986024E+001 0.399999999988627E+001 + 0.399999999991037E+001 0.399999999993130E+001 0.399999999994738E+001 + 0.399999999995633E+001 0.399999999995520E+001 0.399999999994010E+001 + 0.399999999990601E+001 0.399999999984648E+001 0.399999999975327E+001 + 0.399999999961587E+001 0.399999999942096E+001 0.399999999915166E+001 + 0.399999999878661E+001 0.399999999829881E+001 0.399999999765408E+001 + 0.399999999680909E+001 0.399999999570884E+001 0.399999999428324E+001 + 0.399999999244264E+001 0.399999999007188E+001 0.399999998702216E+001 + 0.399999998309993E+001 0.399999997805153E+001 0.399999997154160E+001 + 0.399999996312229E+001 0.399999995218862E+001 0.399999993791259E+001 + 0.399999991914386E+001 0.399999989425657E+001 0.399999986090689E+001 + 0.399999981563750E+001 0.399999975321009E+001 0.399999966543285E+001 + 0.399999953900192E+001 0.399999935129756E+001 0.399999906161646E+001 + 0.399999859125137E+001 0.399999777295729E+001 0.399999620228898E+001 + 0.399999269700155E+001 0.399998254516000E+001 0.399993036833665E+001 + 0.399091133059028E+001 0.200007707590013E+001 0.200001480399258E+001 + 0.200000570191585E+001 0.200000289045325E+001 0.200000169574928E+001 + 0.200000108476749E+001 0.200000072955467E+001 0.200000050052865E+001 + 0.200000033781551E+001 0.200000020974464E+001 0.200000009687009E+001 + 0.199999998466879E+001 0.199999985926717E+001 0.199999970371621E+001 + 0.199999949293356E+001 0.199999918441326E+001 0.199999869788571E+001 + 0.199999786418669E+001 0.199999627498663E+001 0.199999273539381E+001 + 0.199998246687069E+001 0.199992927557521E+001 0.198910261492578E+001 + 0.755322806592311E-004 0.147212754596903E-004 0.573368652608406E-005 + 0.294993234725310E-005 0.176896006519071E-005 0.116992783892167E-005 + 0.828597968862979E-006 0.617462081191542E-006 0.478617022650467E-006 + 0.382878466612397E-006 0.314321943335696E-006 0.263696991268530E-006 + 0.225350538065789E-006 0.195679892801304E-006 0.172306572159327E-006 + 0.153612326831237E-006 0.138467217624279E-006 0.126064292780649E-006 + 0.115815820359547E-006 0.107286310919432E-006 0.100148207019937E-006 + 0.941519203307727E-007 0.891051733247682E-007 0.848585092089374E-007 + 0.812949742638636E-007 0.783226761969239E-007 0.758693609321304E-007 + 0.738784314748276E-007 0.723060163846624E-007 0.711188180875006E-007 + 0.702925548877333E-007 0.698108689814057E-007 0.696646149309364E-007 + 0.698514748639144E-007 0.703758722116005E-007 0.712491781792217E-007 + 0.724902269012630E-007 0.741261788496884E-007 0.761938002816049E-007 + 0.787412629429620E-007 0.818306176373128E-007 0.855411652664582E-007 + 0.899740503400027E-007 0.952585528788023E-007 0.101560783524274E-006 + 0.109095841104788E-006 0.118145052254556E-006 0.129080818389052E-006 + 0.142403094890154E-006 0.158794076507283E-006 0.179202125111183E-006 + 0.204974046390037E-006 0.238069967031962E-006 0.281424701762207E-006 + 0.339580359933477E-006 0.419847105581389E-006 0.534555538433658E-006 + 0.705733602963079E-006 0.975667985344502E-006 0.143344916457627E-005 + 0.229188162435794E-005 0.415963640754978E-005 0.935213831535063E-005 + 0.330449282843973E-004 0.727753561587258E-003 0.199981403845752E+001 + 0.199997200471122E+001 0.199999001085451E+001 0.199999523002342E+001 + 0.199999737275709E+001 0.199999843517986E+001 0.199999903028338E+001 + 0.199999939498298E+001 0.199999963608917E+001 0.199999980773258E+001 + 0.199999994038591E+001 0.200000005337811E+001 0.200000016116450E+001 + 0.200000027730936E+001 0.200000041824723E+001 0.200000060882624E+001 + 0.200000089343607E+001 0.200000136307699E+001 0.200000223323372E+001 + 0.200000411949289E+001 0.200000936926317E+001 0.200003347521087E+001 + 0.200077255580641E+001 0.399981876501213E+001 0.399997224082060E+001 + 0.399999000633056E+001 0.399999517346050E+001 0.399999729385009E+001 + 0.399999834038744E+001 0.399999892013218E+001 0.399999926762064E+001 + 0.399999948808679E+001 0.399999963405467E+001 0.399999973392104E+001 + 0.399999980402429E+001 0.399999985424529E+001 0.399999989080833E+001 + 0.399999991776960E+001 0.399999993784916E+001 0.399999995291612E+001 + 0.399999996428207E+001 0.399999997288429E+001 0.399999997940324E+001 + 0.399999998433978E+001 0.399999998806708E+001 0.399999999086612E+001 + 0.399999999295040E+001 0.399999999448350E+001 0.399999999559155E+001 + 0.399999999637243E+001 0.399999999690242E+001 0.399999999724124E+001 + 0.399999999743573E+001 0.399999999752273E+001 0.399999999753123E+001 + 0.399999999748403E+001 0.399999999739903E+001 0.399999999729023E+001 + 0.399999999716854E+001 0.399999999704238E+001 0.399999999691820E+001 + 0.399999999680083E+001 0.399999999669384E+001 0.399999999659977E+001 + 0.399999999652034E+001 0.399999999645660E+001 0.399999999640910E+001 + 0.399999999637796E+001 0.399999999636296E+001 0.399999999636365E+001 + 0.399999999637937E+001 0.399999999640931E+001 0.399999999645257E+001 + 0.399999999650814E+001 0.399999999657499E+001 0.399999999665204E+001 + 0.399999999673822E+001 0.399999999683244E+001 0.399999999693364E+001 + 0.399999999704077E+001 0.399999999715282E+001 0.399999999726881E+001 + 0.399999999738779E+001 0.399999999750888E+001 0.399999999763122E+001 + 0.399999999775400E+001 0.399999999787648E+001 total_localdos :real:2:251,1 - 0.540753842432442E+002 0.539736068010590E+002 0.538751927888870E+002 - 0.537801506633933E+002 0.536884926540987E+002 0.536002348900168E+002 - 0.535153975416004E+002 0.534340049791708E+002 0.533560859491482E+002 - 0.532816737695661E+002 0.532108065465375E+002 0.531435274135473E+002 - 0.530798847956790E+002 0.530199327011502E+002 0.529637310428303E+002 - 0.529113459927571E+002 0.528628503730574E+002 0.528183240871244E+002 - 0.527778545954128E+002 0.527415374408018E+002 0.527094768291500E+002 - 0.526817862714476E+002 0.526585892948749E+002 0.526400202311252E+002 - 0.526262250915716E+002 0.526173625402851E+002 0.526136049775816E+002 - 0.526151397487385E+002 0.526221704948386E+002 0.526349186654334E+002 - 0.526536252159690E+002 0.526785525167860E+002 0.527099865051328E+002 - 0.527482391171829E+002 0.527936510437408E+002 0.528465948614194E+002 - 0.529074786009214E+002 0.529767498260832E+002 0.530549003121055E+002 - 0.531424714296085E+002 0.532400603637448E+002 0.533483273257952E+002 - 0.534680039500373E+002 0.535999031133730E+002 0.537449304719904E+002 - 0.539040980820863E+002 0.540785405655101E+002 0.542695344032107E+002 - 0.544785210994162E+002 0.547071351712371E+002 0.549572382013742E+002 - 0.552309605736413E+002 0.555307530325440E+002 0.558594509286749E+002 - 0.562203550200449E+002 0.566173341305365E+002 0.570549570287463E+002 - 0.575386639115276E+002 0.580749923837348E+002 0.586718796860651E+002 - 0.593390735990728E+002 0.600887014806417E+002 0.609360748180406E+002 - 0.619008539148709E+002 0.630087801367869E+002 0.642943343287739E+002 - 0.658049694839404E+002 0.676081518442171E+002 0.698037136219607E+002 - 0.725470031623279E+002 0.760960908012816E+002 0.809194620473211E+002 - 0.879837838187236E+002 0.997353251080487E+002 0.125352904186932E+003 - 0.341651445157983E+003 0.301216401415371E+002 0.299811005281854E+002 - 0.302299265760447E+002 0.305747539646661E+002 0.309797724478642E+002 - 0.314401727563114E+002 0.319594936748779E+002 0.325453132178869E+002 - 0.332084497787950E+002 0.339632758841345E+002 0.348286787536900E+002 - 0.358296987006175E+002 0.370001431895964E+002 0.383868031307844E+002 - 0.400565018015313E+002 0.421084905070514E+002 0.446977138727423E+002 - 0.480823109823960E+002 0.527321324921266E+002 0.596192331451839E+002 - 0.712113866985865E+002 0.968210039520428E+002 0.326692164692866E+003 - 0.655650718683446E+000 0.207079379795694E+000 0.108847375273536E+000 - 0.700994355765665E-001 0.504193025734043E-001 0.388780806399892E-001 - 0.314472630733267E-001 0.263382961132654E-001 0.226506692431258E-001 - 0.198876340415249E-001 0.177554299625219E-001 0.160705412733599E-001 - 0.147131177434984E-001 0.136019628337575E-001 0.126803469026049E-001 - 0.119075837689669E-001 0.112538313841894E-001 0.106967737680043E-001 - 0.102194413344835E-001 0.980874231430996E-002 0.945445098741451E-002 - 0.914849679067516E-002 0.888445609872923E-002 0.865718335104041E-002 - 0.846253981521924E-002 0.829719199334366E-002 0.815846057127924E-002 - 0.804420669481160E-002 0.795274632586493E-002 0.788278616350968E-002 - 0.783337653468370E-002 0.780387804405594E-002 0.779393980365191E-002 - 0.780348786550022E-002 0.783272314417264E-002 0.788212870947941E-002 - 0.795248691166625E-002 0.804490742933901E-002 0.816086806787317E-002 - 0.830227106314118E-002 0.847151887053003E-002 0.867161509899166E-002 - 0.890629861736483E-002 0.918022227382756E-002 0.949919269182619E-002 - 0.987049514096327E-002 0.103033390128007E-001 0.108094774524611E-001 - 0.114040835034162E-001 0.121070123248609E-001 0.129446585356725E-001 - 0.139527557815956E-001 0.151807137459015E-001 0.166985516407980E-001 - 0.186083941309196E-001 0.210643640619849E-001 0.243087998244637E-001 - 0.287423782479794E-001 0.350706288962485E-001 0.446412544561354E-001 - 0.603272577447209E-001 0.892950005554492E-001 0.154431594463937E+000 - 0.372073227322351E+000 0.346284676100207E+001 0.123655295711530E+003 - 0.800328118169286E+002 0.643472779981102E+002 0.557311599896334E+002 - 0.501355830385192E+002 0.461518043769188E+002 0.431447594592732E+002 - 0.407809625499944E+002 0.388665066755810E+002 0.372800746741263E+002 - 0.359414508568238E+002 0.347952583225845E+002 0.338019317028629E+002 - 0.329324164187643E+002 0.321649215318469E+002 0.314828826248326E+002 - 0.308737106429199E+002 0.303281767886103E+002 0.298406352293261E+002 - 0.294113436760404E+002 0.290577047631002E+002 0.288933449757555E+002 - 0.317805280587238E+002 0.150722081058124E+003 0.107366635415423E+003 - 0.914991316703160E+002 0.826572438860351E+002 0.768344141018146E+002 - 0.726313210966088E+002 0.694153843571950E+002 0.668535455900915E+002 - 0.647516041845006E+002 0.629876798833777E+002 0.614808964629292E+002 - 0.601751860428994E+002 0.590302821604398E+002 0.580164122531800E+002 - 0.571110186206687E+002 0.562966511397468E+002 0.555595670176208E+002 - 0.548887732886076E+002 0.542753555530536E+002 0.537119969974801E+002 - 0.531926270370604E+002 0.527121601939207E+002 0.522662990202844E+002 - 0.518513832748531E+002 0.514642730323692E+002 0.511022570456908E+002 - 0.507629801466386E+002 0.504443851730539E+002 0.501446661012918E+002 - 0.498622299104129E+002 0.495956653144740E+002 0.493437169442017E+002 - 0.491052638875539E+002 0.488793017432650E+002 0.486649275257246E+002 - 0.484613268994914E+002 0.482677633290695E+002 0.480835688125024E+002 - 0.479081359319279E+002 0.477409110049108E+002 0.475813881603895E+002 - 0.474291041948846E+002 0.472836340900689E+002 0.471445870932677E+002 - 0.470116032790201E+002 0.468843505232983E+002 0.467625218329907E+002 - 0.466458329822896E+002 0.465340204150818E+002 0.464268393786152E+002 - 0.463240622588574E+002 0.462254770922473E+002 0.461308862321464E+002 - 0.460401051513194E+002 0.459529613643336E+002 0.458692934559307E+002 - 0.457889502032689E+002 0.457117897815008E+002 0.456376790434974E+002 - 0.455664928656782E+002 0.454981135529000E+002 0.454324302962110E+002 - 0.453693386780129E+002 0.453087402198167E+002 + 0.540753841876805E+002 0.539736067449551E+002 0.538751927322877E+002 + 0.537801506063581E+002 0.536884925967014E+002 0.536002348323454E+002 + 0.535153974837569E+002 0.534340049212710E+002 0.533560858913215E+002 + 0.532816737119551E+002 0.532108064892981E+002 0.531435273568479E+002 + 0.530798847397008E+002 0.530199326460866E+002 0.529637309888867E+002 + 0.529113459401506E+002 0.528628503220166E+002 0.528183240378891E+002 + 0.527778545482338E+002 0.527415373959406E+002 0.527094767868787E+002 + 0.526817862320486E+002 0.526585892586406E+002 0.526400201983582E+002 + 0.526262250625841E+002 0.526173625153994E+002 0.526136049571294E+002 + 0.526151397330614E+002 0.526221704842880E+002 0.526349186603706E+002 + 0.526536252167651E+002 0.526785525238226E+002 0.527099865188019E+002 + 0.527482391378876E+002 0.527936510718954E+002 0.528465948974506E+002 + 0.529074786452683E+002 0.529767498791990E+002 0.530549003744575E+002 + 0.531424715016802E+002 0.532400604460372E+002 0.533483274188279E+002 + 0.534680040543511E+002 0.535999032295313E+002 0.537449306005830E+002 + 0.539040982237321E+002 0.540785407208592E+002 0.542695345729512E+002 + 0.544785212842775E+002 0.547071353719960E+002 0.549572384188621E+002 + 0.552309608087525E+002 0.555307532862452E+002 0.558594512020174E+002 + 0.562203553141788E+002 0.566173344467287E+002 0.570549573684017E+002 + 0.575386642762166E+002 0.580749927752267E+002 0.586718801063716E+002 + 0.593390740505034E+002 0.600887019658769E+002 0.609360753402291E+002 + 0.619008544777611E+002 0.630087807449113E+002 0.642943349877108E+002 + 0.658049702007002E+002 0.676081526278342E+002 0.698037144844390E+002 + 0.725470041202483E+002 0.760960918787275E+002 0.809194632817655E+002 + 0.879837852745864E+002 0.997353269151055E+002 0.125352906695131E+003 + 0.341651442588625E+003 0.301216400512412E+002 0.299811005124563E+002 + 0.302299265652478E+002 0.305747539498643E+002 0.309797724261738E+002 + 0.314401727261340E+002 0.319594936349590E+002 0.325453131670342E+002 + 0.332084497157607E+002 0.339632758075429E+002 0.348286786619741E+002 + 0.358296985919465E+002 0.370001430617801E+002 0.383868029811352E+002 + 0.400565016266572E+002 0.421084903025214E+002 0.446977136325161E+002 + 0.480823106977689E+002 0.527321321495595E+002 0.596192327210947E+002 + 0.712113861433652E+002 0.968210031100342E+002 0.326692156252814E+003 + 0.655650669031957E+000 0.207079369318547E+000 0.108847371013233E+000 + 0.700994333305316E-001 0.504193012101942E-001 0.388780797358921E-001 + 0.314472624360595E-001 0.263382956437344E-001 0.226506688854035E-001 + 0.198876337618113E-001 0.177554297392688E-001 0.160705410922279E-001 + 0.147131175946031E-001 0.136019627100838E-001 0.126803467990466E-001 + 0.119075836817337E-001 0.112538313104113E-001 0.106967737054769E-001 + 0.102194412814915E-001 0.980874226950454E-002 0.945445094972351E-002 + 0.914849675924732E-002 0.888445607287782E-002 0.865718333021553E-002 + 0.846253979898096E-002 0.829719198134255E-002 0.815846056324187E-002 + 0.804420669052969E-002 0.795274632518733E-002 0.788278616633637E-002 + 0.783337654096204E-002 0.780387805377876E-002 0.779393981685437E-002 + 0.780348788226375E-002 0.783272316462438E-002 0.788212873379632E-002 + 0.795248694007981E-002 0.804490746214206E-002 0.816086810542897E-002 + 0.830227110589805E-002 0.847151891903336E-002 0.867161515390665E-002 + 0.890629867950329E-002 0.918022234418351E-002 0.949919277162309E-002 + 0.987049523171746E-002 0.103033391164077E-001 0.108094775713145E-001 + 0.114040836405749E-001 0.121070124842876E-001 0.129446587225823E-001 + 0.139527560029771E-001 0.151807140113179E-001 0.166985519636568E-001 + 0.186083945305624E-001 0.210643645672770E-001 0.243088004802819E-001 + 0.287423791276995E-001 0.350706301277309E-001 0.446412562814795E-001 + 0.603272606773786E-001 0.892950058798357E-001 0.154431606373027E+000 + 0.372073268858128E+000 0.346284764776635E+001 0.123655292954101E+003 + 0.800328100070738E+002 0.643472765930387E+002 0.557311588220338E+002 + 0.501355820327244E+002 0.461518034911439E+002 0.431447586675091E+002 + 0.407809618347024E+002 0.388665060242362E+002 0.372800740773884E+002 + 0.359414503074896E+002 0.347952578149464E+002 0.338019312322990E+002 + 0.329324159814642E+002 0.321649211246248E+002 0.314828822449983E+002 + 0.308737102881938E+002 0.303281764570822E+002 0.298406349194824E+002 + 0.294113433869827E+002 0.290577044956061E+002 0.288933447401938E+002 + 0.317805282501725E+002 0.150722081775053E+003 0.107366635731773E+003 + 0.914991318593665E+002 0.826572440078708E+002 0.768344141812992E+002 + 0.726313211468354E+002 0.694153843860287E+002 0.668535456026706E+002 + 0.647516041843812E+002 0.629876798731266E+002 0.614808964444628E+002 + 0.601751860176846E+002 0.590302821296240E+002 0.580164122176762E+002 + 0.571110185812146E+002 0.562966510969465E+002 0.555595669719741E+002 + 0.548887732405321E+002 0.542753555029022E+002 0.537119969455528E+002 + 0.531926269836146E+002 0.527121601391790E+002 0.522662989644403E+002 + 0.518513832180766E+002 0.514642729748088E+002 0.511022569874793E+002 + 0.507629800878940E+002 0.504443851138823E+002 0.501446660417884E+002 + 0.498622298506638E+002 0.495956652545600E+002 0.493437168841942E+002 + 0.491052638275191E+002 0.488793016832649E+002 0.486649274658160E+002 + 0.484613268397274E+002 0.482677632695002E+002 0.480835687531746E+002 + 0.479081358728853E+002 0.477409109461953E+002 0.475813881020406E+002 + 0.474291041369397E+002 0.472836340325641E+002 0.471445870362370E+002 + 0.470116032224959E+002 0.468843504673120E+002 0.467625217775721E+002 + 0.466458329274677E+002 0.465340203608838E+002 0.464268393250678E+002 + 0.463240622059861E+002 0.462254770400765E+002 0.461308861806997E+002 + 0.460401051006195E+002 0.459529613144021E+002 0.458692934067884E+002 + 0.457889501549359E+002 0.457117897339962E+002 0.456376789968396E+002 + 0.455664928198846E+002 0.454981135079875E+002 0.454324302521955E+002 + 0.453693386349093E+002 0.453087401776396E+002 dipole_moments :real:2:3,1 - 0.000000000000000E+000 0.000000000000000E+000 -0.122974331124546E-005 + 0.000000000000000E+000 0.000000000000000E+000 -0.147771547627322E-005 diff --git a/test/app/dftb+/transport/C-chain+Uspin/dftb_in.hsd b/test/app/dftb+/transport/C-chain+Uspin/dftb_in.hsd deleted file mode 100644 index a764ff0a7c..0000000000 --- a/test/app/dftb+/transport/C-chain+Uspin/dftb_in.hsd +++ /dev/null @@ -1,84 +0,0 @@ -Geometry = GenFormat { - <<< Ordered_geo.gen -} - -Transport { - Device { - AtomRange = 1 8 - FirstLayerAtoms = 1 5 - } - Contact { - <<+ "Contact.source" - } - Contact { - <<+ "Contact.drain" - } -} - -Hamiltonian = DFTB { - Scc = Yes - MaxAngularMomentum { - C = p - } - Filling = Fermi { - Temperature [K] = 100 - } - KPointsAndWeights = SupercellFolding { - 1 0 0 - 0 1 0 - 0 0 1 - 0.0 0.0 0.0 - } - SpinPolarisation = Colinear { - UnpairedElectrons = 0 - } - SpinConstants = { # From C. Koehler thesis - C = {-0.023} - } - SlaterKosterFiles { - C-C = "C-C.skf" - } - OrbitalPotential = { - Functional = {pSIC} - C = { - Shells = {1 2} # sp block on the C - UJ = 0.178371875 # dummy value - } - } - # Generally a bad idea, but used to reduce required atoms in - # principle layers: - TruncateSKRange = { - SKMaxDistance [AA] = 5.0 - } - Eigensolver = GreensFunction { - RealAxisPoints = 1000 - EnclosedPoles = 100 - SaveSurfaceGFs = No - } - Electrostatics = Poisson { - MinimalGrid [Angstrom] = 0.3 0.3 0.3 - } -} - -Analysis = { - AtomResolvedEnergies = Yes - CalculateForces = Yes - TunnelingAndDos{ - EnergyRange [eV] = -10.0 -5.0 - EnergyStep [eV] = 0.02 - } -} - -Options = { - WriteAutotestTag = Yes -} - -ParserOptions { - ParserVersion = 6 -} - -Parallel { - # Allow OMP threads explicitely to test for hybrid parallelisation with - # MPI-binary. (Check the manual before using this in production runs!) - UseOmpThreads = Yes -} From 4132bc37b9a0441ad25bd5a39e799533c1029162 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Thu, 26 May 2022 19:31:52 +0100 Subject: [PATCH 23/36] Correction for shell charges with transport Recalculate impacted test Co-authored-by: inseonglee --- src/dftbp/dftbplus/main.F90 | 4 +- .../transport/H-chain-spin/_autotest.tag | 280 +++++++++--------- 2 files changed, 142 insertions(+), 142 deletions(-) diff --git a/src/dftbp/dftbplus/main.F90 b/src/dftbp/dftbplus/main.F90 index 00b9cf8e57..9cd0915a32 100644 --- a/src/dftbp/dftbplus/main.F90 +++ b/src/dftbp/dftbplus/main.F90 @@ -914,8 +914,6 @@ subroutine processGeometry(this, env, iGeoStep, iLatGeoStep, tWriteRestart, tSto if (this%tSccCalc) then - call getChargePerShell(this%qInput, this%orb, this%species, this%chargePerShell) - #:if WITH_TRANSPORT ! Overrides input charges with uploaded contact charges if (this%tUpload) then @@ -924,6 +922,8 @@ subroutine processGeometry(this, env, iGeoStep, iLatGeoStep, tWriteRestart, tSto end if #:endif + call getChargePerShell(this%qInput, this%orb, this%species, this%chargePerShell) + call addChargePotentials(env, this%scc, this%tblite, .true., this%qInput, this%q0,& & this%chargePerShell, this%orb, this%multipoleInp, this%species, this%neighbourList,& & this%img2CentCell, this%spinW, this%solvation, this%thirdOrd, this%dispersion,& diff --git a/test/app/dftb+/transport/H-chain-spin/_autotest.tag b/test/app/dftb+/transport/H-chain-spin/_autotest.tag index 5f8bf9a558..e2fa93f7d6 100644 --- a/test/app/dftb+/transport/H-chain-spin/_autotest.tag +++ b/test/app/dftb+/transport/H-chain-spin/_autotest.tag @@ -1,8 +1,8 @@ orbital_charges :real:2:1,31 - 0.540705194383141E+000 0.533546614815257E+000 0.528433635553310E+000 - 0.526602172778958E+000 0.525195699793072E+000 0.522967178689550E+000 - 0.522546567054457E+000 0.519508644183702E+000 0.519410324565904E+000 - 0.513464846354586E+000 0.507821703770288E+000 0.500000000000000E+000 + 0.540705222643316E+000 0.533546490272130E+000 0.528433734754970E+000 + 0.526602009636342E+000 0.525195777145180E+000 0.522967073228767E+000 + 0.522546645795932E+000 0.519508530241532E+000 0.519410442260532E+000 + 0.513464690612030E+000 0.507821823430772E+000 0.500000000000000E+000 0.500000000000000E+000 0.500000000000000E+000 0.500000000000000E+000 0.500000000000000E+000 0.499999999999999E+000 0.500000000000000E+000 0.500000000000001E+000 0.499999999999999E+000 0.499999999999999E+000 @@ -11,7 +11,7 @@ orbital_charges :real:2:1,31 0.549999999999999E+000 0.550000000000001E+000 0.550000000000000E+000 0.550000000000000E+000 total_energy :real:0: - -0.354911963033977E+001 + -0.354911956358550E+001 end_coords :real:2:3,31 0.245664378515260E+002 0.000000000000000E+000 0.000000000000000E+000 0.264561638401049E+002 0.000000000000000E+000 0.000000000000000E+000 @@ -45,140 +45,140 @@ end_coords :real:2:3,31 0.755890395431569E+001 0.000000000000000E+000 0.000000000000000E+000 0.566917796573677E+001 0.000000000000000E+000 0.000000000000000E+000 total_tunneling :real:2:201,1 - 0.199983522131222E+001 0.199980065608882E+001 0.199976480991636E+001 - 0.199972829642812E+001 0.199969170971624E+001 0.199965561689452E+001 - 0.199962055153627E+001 0.199958700801606E+001 0.199955543676826E+001 - 0.199952624046068E+001 0.199949977106858E+001 0.199947632782289E+001 - 0.199945615599650E+001 0.199943944648383E+001 0.199942633612202E+001 - 0.199941690869626E+001 0.199941119656751E+001 0.199940918285791E+001 - 0.199941080412690E+001 0.199941595347041E+001 0.199942448397563E+001 - 0.199943621246433E+001 0.199945092345990E+001 0.199946837331508E+001 - 0.199948829444069E+001 0.199951039957849E+001 0.199953438606549E+001 - 0.199955994004074E+001 0.199958674055007E+001 0.199961446350845E+001 - 0.199964278548443E+001 0.199967138727538E+001 0.199969995724710E+001 - 0.199972819441541E+001 0.199975581125212E+001 0.199978253620183E+001 - 0.199980811589986E+001 0.199983231708583E+001 0.199985492821065E+001 - 0.199987576073820E+001 0.199989465014676E+001 0.199991145663527E+001 - 0.199992606554762E+001 0.199993838752358E+001 0.199994835839235E+001 - 0.199995593882364E+001 0.199996111375355E+001 0.199996389160328E+001 - 0.199996430330979E+001 0.199996240118810E+001 0.199995825764511E+001 - 0.199995196376536E+001 0.199994362778850E+001 0.199993337349879E+001 - 0.199992133854568E+001 0.199990767271456E+001 0.199989253616584E+001 - 0.199987609765959E+001 0.199985853278217E+001 0.199984002219028E+001 - 0.199982074988652E+001 0.199980090153984E+001 0.199978066286251E+001 - 0.199976021805464E+001 0.199973974832555E+001 0.199971943050039E+001 - 0.199969943571901E+001 0.199967992823319E+001 0.199966106430671E+001 - 0.199964299122214E+001 0.199962584639691E+001 0.199960975661006E+001 - 0.199959483734055E+001 0.199958119221669E+001 0.199956891257560E+001 - 0.199955807713087E+001 0.199954875174585E+001 0.199954098930927E+001 - 0.199953482970946E+001 0.199953029990304E+001 0.199952741407290E+001 - 0.199952617387089E+001 0.199952656873954E+001 0.199952857630689E+001 - 0.199953216284932E+001 0.199953728381513E+001 0.199954388440404E+001 - 0.199955190019551E+001 0.199956125782002E+001 0.199957187566723E+001 - 0.199958366462465E+001 0.199959652884134E+001 0.199961036651004E+001 - 0.199962507066294E+001 0.199964052997487E+001 0.199965662956911E+001 - 0.199967325182058E+001 0.199969027715169E+001 0.199970758481631E+001 - 0.199972505366776E+001 0.199974256290666E+001 0.199975999280523E+001 - 0.199977722540449E+001 0.199979414518152E+001 0.199981063968389E+001 - 0.199982660012887E+001 0.199984192196543E+001 0.199985650539698E+001 - 0.199987025586351E+001 0.199988308448182E+001 0.199989490844283E+001 - 0.199990565136543E+001 0.199991524360619E+001 0.199992362252509E+001 - 0.199993073270702E+001 0.199993652613950E+001 0.199994096234718E+001 - 0.199994400848363E+001 0.199994563938157E+001 0.199994583756489E+001 - 0.199994459320637E+001 0.199994190408488E+001 0.199993777545612E+001 - 0.199993221992605E+001 0.199992525727623E+001 0.199991691426042E+001 - 0.199990722437193E+001 0.199989622758353E+001 0.199988397006217E+001 - 0.199987050386047E+001 0.199985588658710E+001 0.199984018105822E+001 - 0.199982345493210E+001 0.199980578032905E+001 0.199978723343877E+001 - 0.199976789411729E+001 0.199974784547542E+001 0.199972717346099E+001 - 0.199970596643654E+001 0.199968431475469E+001 0.199966231033293E+001 - 0.199964004622954E+001 0.199961761622267E+001 0.199959511439389E+001 - 0.199957263471806E+001 0.199955027066093E+001 0.199952811478585E+001 - 0.199950625837105E+001 0.199948479103855E+001 0.199946380039609E+001 - 0.199944337169297E+001 0.199942358749078E+001 0.199940452735010E+001 - 0.199938626753372E+001 0.199936888072723E+001 0.199935243577767E+001 - 0.199933699745055E+001 0.199932262620591E+001 0.199930937799376E+001 - 0.199929730406898E+001 0.199928645082624E+001 0.199927685965479E+001 - 0.199926856681326E+001 0.199926160332458E+001 0.199925599489078E+001 - 0.199925176182768E+001 0.199924891901910E+001 0.199924747589057E+001 - 0.199924743640200E+001 0.199924879905908E+001 0.199925155694298E+001 - 0.199925569775791E+001 0.199926120389595E+001 0.199926805251872E+001 - 0.199927621565536E+001 0.199928566031598E+001 0.199929634862030E+001 - 0.199930823794048E+001 0.199932128105767E+001 0.199933542633153E+001 - 0.199935061788193E+001 0.199936679578220E+001 0.199938389626308E+001 - 0.199940185192665E+001 0.199942059196947E+001 0.199944004241413E+001 - 0.199946012634852E+001 0.199948076417183E+001 0.199950187384672E+001 - 0.199952337115681E+001 0.199954516996854E+001 0.199956718249696E+001 - 0.199958931957433E+001 0.199961149092107E+001 0.199963360541804E+001 - 0.199965557137975E+001 0.199967729682737E+001 0.199969868976117E+001 - 0.199971965843156E+001 0.199974011160805E+001 0.199975995884543E+001 + 0.199983521181727E+001 0.199980064625082E+001 0.199976479974940E+001 + 0.199972828594990E+001 0.199969169894748E+001 0.199965560585872E+001 + 0.199962054025949E+001 0.199958699652666E+001 0.199955542509663E+001 + 0.199952622863893E+001 0.199949975913024E+001 0.199947631580261E+001 + 0.199945614392975E+001 0.199943943440656E+001 0.199942632407039E+001 + 0.199941689670629E+001 0.199941118467484E+001 0.199940917109749E+001 + 0.199941079253271E+001 0.199941594207525E+001 0.199942447281087E+001 + 0.199943620155969E+001 0.199945091284326E+001 0.199946836301232E+001 + 0.199948828447551E+001 0.199951038997231E+001 0.199953437683733E+001 + 0.199955993120716E+001 0.199958673212507E+001 0.199961445550345E+001 + 0.199964277790825E+001 0.199967138013425E+001 0.199969995054466E+001 + 0.199972818815277E+001 0.199975580542791E+001 0.199978253081228E+001 + 0.199980811093886E+001 0.199983231254508E+001 0.199985492407972E+001 + 0.199987575700471E+001 0.199989464679649E+001 0.199991145365228E+001 + 0.199992606291444E+001 0.199993838522136E+001 0.199994835640099E+001 + 0.199995593712198E+001 0.199996111231952E+001 0.199996389041408E+001 + 0.199996430234203E+001 0.199996240041796E+001 0.199995825704854E+001 + 0.199995196331816E+001 0.199994362746654E+001 0.199993337327810E+001 + 0.199992133840261E+001 0.199990767262590E+001 0.199989253610895E+001 + 0.199987609761249E+001 0.199985853272368E+001 0.199984002210006E+001 + 0.199982074974523E+001 0.199980090132914E+001 0.199978066256519E+001 + 0.199976021765463E+001 0.199973974780802E+001 0.199971942985173E+001 + 0.199969943492692E+001 0.199967992728665E+001 0.199966106319604E+001 + 0.199964298993900E+001 0.199962584493427E+001 0.199960975496221E+001 + 0.199959483550310E+001 0.199958119018653E+001 0.199956891035087E+001 + 0.199955807471094E+001 0.199954874913128E+001 0.199954098650175E+001 + 0.199953482671179E+001 0.199953029671906E+001 0.199952741070743E+001 + 0.199952617032970E+001 0.199952656502927E+001 0.199952857243499E+001 + 0.199953215882400E+001 0.199953727964525E+001 0.199954388009911E+001 + 0.199955189576558E+001 0.199956125327563E+001 0.199957187101934E+001 + 0.199958365988456E+001 0.199959652402065E+001 0.199961036162057E+001 + 0.199962506571667E+001 0.199964052498388E+001 0.199965662454553E+001 + 0.199967324677651E+001 0.199969027209916E+001 0.199970757976724E+001 + 0.199972504863388E+001 0.199974255789948E+001 0.199975998783599E+001 + 0.199977722048413E+001 0.199979414032063E+001 0.199981063489265E+001 + 0.199982659541707E+001 0.199984191734239E+001 0.199985650087156E+001 + 0.199987025144405E+001 0.199988308017615E+001 0.199989490425824E+001 + 0.199990564730864E+001 0.199991523968336E+001 0.199992361874180E+001 + 0.199993072906826E+001 0.199993652264968E+001 0.199994095901010E+001 + 0.199994400530251E+001 0.199994563635904E+001 0.199994583470301E+001 + 0.199994459050660E+001 0.199994190154813E+001 0.199993777308275E+001 + 0.199993221771587E+001 0.199992525522853E+001 0.199991691237399E+001 + 0.199990722264505E+001 0.199989622601403E+001 0.199988396864742E+001 + 0.199987050259741E+001 0.199985588547227E+001 0.199984018008778E+001 + 0.199982345410184E+001 0.199980577963444E+001 0.199978723287497E+001 + 0.199976789367915E+001 0.199974784515758E+001 0.199972717325781E+001 + 0.199970596634220E+001 0.199968431476319E+001 0.199966231043810E+001 + 0.199964004642508E+001 0.199961761650218E+001 0.199959511475089E+001 + 0.199957263514601E+001 0.199955027115325E+001 0.199952811533594E+001 + 0.199950625897232E+001 0.199948479168446E+001 0.199946380108013E+001 + 0.199944337240870E+001 0.199942358823185E+001 0.199940452811027E+001 + 0.199938626830686E+001 0.199936888150736E+001 0.199935243655895E+001 + 0.199933699822731E+001 0.199932262697267E+001 0.199930937874521E+001 + 0.199929730480003E+001 0.199928645153200E+001 0.199927686033059E+001 + 0.199926856745466E+001 0.199926160392738E+001 0.199925599545101E+001 + 0.199925176234161E+001 0.199924891948327E+001 0.199924747630175E+001 + 0.199924743675722E+001 0.199924879935564E+001 0.199925155717843E+001 + 0.199925569793005E+001 0.199926120400283E+001 0.199926805255866E+001 + 0.199927621562692E+001 0.199928566021797E+001 0.199929634845178E+001 + 0.199930823770074E+001 0.199932128074624E+001 0.199933542594816E+001 + 0.199935061742661E+001 0.199936679525513E+001 0.199938389566467E+001 + 0.199940185125751E+001 0.199942059123039E+001 0.199944004160612E+001 + 0.199946012547273E+001 0.199948076322961E+001 0.199950187283957E+001 + 0.199952337008637E+001 0.199954516883661E+001 0.199956718130546E+001 + 0.199958931832531E+001 0.199961148961669E+001 0.199963360406056E+001 + 0.199965556997153E+001 0.199967729537085E+001 0.199969868825886E+001 + 0.199971965688605E+001 0.199974011002196E+001 0.199975995722146E+001 total_localdos :real:2:201,1 - 0.237541726684139E+002 0.237528224588391E+002 0.237517279868170E+002 - 0.237508932515419E+002 0.237503221211491E+002 0.237500182119264E+002 - 0.237499847817475E+002 0.237502246379082E+002 0.237507400594053E+002 - 0.237515327334897E+002 0.237526037061574E+002 0.237539533460834E+002 - 0.237555813213783E+002 0.237574865884336E+002 0.237596673920321E+002 - 0.237621212758374E+002 0.237648451023109E+002 0.237678350810871E+002 - 0.237710868048030E+002 0.237745952913841E+002 0.237783550317881E+002 - 0.237823600422317E+002 0.237866039199503E+002 0.237910799015795E+002 - 0.237957809232884E+002 0.238006996818465E+002 0.238058286958586E+002 - 0.238111603664611E+002 0.238166870368326E+002 0.238224010499359E+002 - 0.238282948039701E+002 0.238343608050753E+002 0.238405917168980E+002 - 0.238469804066832E+002 0.238535199876238E+002 0.238602038572539E+002 - 0.238670257317290E+002 0.238739796758893E+002 0.238810601290530E+002 - 0.238882619265268E+002 0.238955803169079E+002 0.239030109751350E+002 - 0.239105500115989E+002 0.239181939772542E+002 0.239259398650245E+002 - 0.239337851076486E+002 0.239417275722238E+002 0.239497655515987E+002 - 0.239578977529711E+002 0.239661232838516E+002 0.239744416357085E+002 - 0.239828526655454E+002 0.239913565756763E+002 0.239999538919749E+002 - 0.240086454408490E+002 0.240174323252067E+002 0.240263158996576E+002 - 0.240352977451912E+002 0.240443796435600E+002 0.240535635515852E+002 - 0.240628515755866E+002 0.240722459461283E+002 0.240817489932533E+002 - 0.240913631223687E+002 0.241010907909248E+002 0.241109344860188E+002 - 0.241208967030369E+002 0.241309799254334E+002 0.241411866057325E+002 - 0.241515191478214E+002 0.241619798905915E+002 0.241725710929702E+002 - 0.241832949203740E+002 0.241941534325996E+002 0.242051485731606E+002 - 0.242162821600662E+002 0.242275558780277E+002 0.242389712720696E+002 - 0.242505297425165E+002 0.242622325413147E+002 0.242740807696468E+002 - 0.242860753767857E+002 0.242982171601348E+002 0.243105067663889E+002 - 0.243229446937626E+002 0.243355312952056E+002 0.243482667825449E+002 - 0.243611512314805E+002 0.243741845873601E+002 0.243873666716625E+002 - 0.244006971891140E+002 0.244141757353650E+002 0.244278018051580E+002 - 0.244415748009083E+002 0.244554940416350E+002 0.244695587721688E+002 - 0.244837681725740E+002 0.244981213677176E+002 0.245126174369258E+002 - 0.245272554236694E+002 0.245420343452213E+002 0.245569532022332E+002 - 0.245720109881827E+002 0.245872066986427E+002 0.246025393403315E+002 - 0.246180079399018E+002 0.246336115524339E+002 0.246493492695981E+002 - 0.246652202274563E+002 0.246812236138787E+002 0.246973586755488E+002 - 0.247136247245381E+002 0.247300211444346E+002 0.247465473960082E+002 - 0.247632030224053E+002 0.247799876538616E+002 0.247969010119297E+002 - 0.248139429132180E+002 0.248311132726398E+002 0.248484121067244E+002 - 0.248658395331588E+002 0.248833957780693E+002 0.249010811718816E+002 - 0.249188961529395E+002 0.249368412673920E+002 0.249549171691971E+002 - 0.249731246197081E+002 0.249914644868611E+002 0.250099377439788E+002 - 0.250285454682092E+002 0.250472888386208E+002 0.250661691339697E+002 - 0.250851877301663E+002 0.251043460974532E+002 0.251236457973250E+002 - 0.251430884792051E+002 0.251626758769050E+002 0.251824098048859E+002 - 0.252022921543457E+002 0.252223248891517E+002 0.252425100416431E+002 - 0.252628497083184E+002 0.252833460454401E+002 0.253040012645602E+002 - 0.253248176280026E+002 0.253457974443112E+002 0.253669430636872E+002 - 0.253882568734309E+002 0.254097412934067E+002 0.254313987715477E+002 - 0.254532317794157E+002 0.254752428078301E+002 0.254974343625830E+002 - 0.255198089602504E+002 0.255423691241144E+002 0.255651173802079E+002 - 0.255880562534912E+002 0.256111882641728E+002 0.256345159241821E+002 - 0.256580417338024E+002 0.256817681784736E+002 0.257056977257696E+002 - 0.257298328225568E+002 0.257541758923410E+002 0.257787293328039E+002 - 0.258034955135367E+002 0.258284767739709E+002 0.258536754215119E+002 - 0.258790937298741E+002 0.259047339376212E+002 0.259305982469118E+002 - 0.259566888224493E+002 0.259830077906369E+002 0.260095572389368E+002 - 0.260363392154308E+002 0.260633557285820E+002 0.260906087471943E+002 - 0.261181002005667E+002 0.261458319788393E+002 0.261738059335300E+002 - 0.262020238782529E+002 0.262304875896187E+002 0.262591988083107E+002 - 0.262881592403322E+002 0.263173705584191E+002 0.263468344036144E+002 - 0.263765523869980E+002 0.264065260915648E+002 0.264367570742495E+002 - 0.264672468680865E+002 0.264979969845039E+002 0.265290089157420E+002 - 0.265602841373923E+002 0.265918241110482E+002 0.266236302870636E+002 - 0.266557041074122E+002 0.266880470086385E+002 0.267206604248977E+002 - 0.267535457910760E+002 0.267867045459854E+002 0.268201381356250E+002 + 0.237541725063788E+002 0.237528222984441E+002 0.237517278289725E+002 + 0.237508930968041E+002 0.237503219700099E+002 0.237500180648146E+002 + 0.237499846390306E+002 0.237502244998945E+002 0.237507399263462E+002 + 0.237515326055825E+002 0.237526035835483E+002 0.237539532288698E+002 + 0.237555812096125E+002 0.237574864821250E+002 0.237596672911519E+002 + 0.237621211803199E+002 0.237648450120576E+002 0.237678349959695E+002 + 0.237710867246654E+002 0.237745952160467E+002 0.237783549610493E+002 + 0.237823599758710E+002 0.237866038577306E+002 0.237910798432495E+002 + 0.237957808685846E+002 0.238006996304955E+002 0.238058286475788E+002 + 0.238111603209643E+002 0.238166869938260E+002 0.238224010091234E+002 + 0.238282947650536E+002 0.238343607677562E+002 0.238405916808780E+002 + 0.238469803716658E+002 0.238535199533150E+002 0.238602038233632E+002 + 0.238670256979702E+002 0.238739796419813E+002 0.238810600947206E+002 + 0.238882618915010E+002 0.238955802809268E+002 0.239030109379444E+002 + 0.239105499729525E+002 0.239181939369141E+002 0.239259398227621E+002 + 0.239337850632445E+002 0.239417275254685E+002 0.239497655022922E+002 + 0.239578977009244E+002 0.239661232288858E+002 0.239744415776559E+002 + 0.239828526042492E+002 0.239913565109909E+002 0.239999538237662E+002 + 0.240086453689943E+002 0.240174322495949E+002 0.240263158201893E+002 + 0.240352976617786E+002 0.240443795561271E+002 0.240535634600675E+002 + 0.240628514799313E+002 0.240722458462940E+002 0.240817488892101E+002 + 0.240913630140980E+002 0.241010906784188E+002 0.241109343692808E+002 + 0.241208965820807E+002 0.241309798002833E+002 0.241411864764229E+002 + 0.241515190143965E+002 0.241619797531048E+002 0.241725709514845E+002 + 0.241832947749609E+002 0.241941532833389E+002 0.242051484201402E+002 + 0.242162820033815E+002 0.242275557177811E+002 0.242389711083703E+002 + 0.242505295754798E+002 0.242622323710616E+002 0.242740805963034E+002 + 0.242860752004828E+002 0.242982169810074E+002 0.243105065845755E+002 + 0.243229445094050E+002 0.243355311084481E+002 0.243482665935338E+002 + 0.243611510403635E+002 0.243741843942860E+002 0.243873664767805E+002 + 0.244006969925731E+002 0.244141755373135E+002 0.244278016057431E+002 + 0.244415746002755E+002 0.244554938399275E+002 0.244695585695272E+002 + 0.244837679691358E+002 0.244981211636164E+002 0.245126172322911E+002 + 0.245272552186263E+002 0.245420341398898E+002 0.245569529967279E+002 + 0.245720107826124E+002 0.245872064931102E+002 0.246025391349330E+002 + 0.246180077347267E+002 0.246336113475646E+002 0.246493490651096E+002 + 0.246652200234161E+002 0.246812234103465E+002 0.246973584725761E+002 + 0.247136245221686E+002 0.247300209427037E+002 0.247465471949428E+002 + 0.247632028220240E+002 0.247799874541746E+002 0.247969008129387E+002 + 0.248139427149163E+002 0.248311130750123E+002 0.248484119097478E+002 + 0.248658393368015E+002 0.248833955822917E+002 0.249010809766362E+002 + 0.249188959581711E+002 0.249368410730379E+002 0.249549169751872E+002 + 0.249731244259654E+002 0.249914642933019E+002 0.250099375505129E+002 + 0.250285452747402E+002 0.250472886450466E+002 0.250661689401826E+002 + 0.250851875360535E+002 0.251043459028973E+002 0.251236456022042E+002 + 0.251430882833936E+002 0.251626756802735E+002 0.251824096073018E+002 + 0.252022919556738E+002 0.252223246892545E+002 0.252425098403810E+002 + 0.252628495055507E+002 0.252833458410247E+002 0.253040010583545E+002 + 0.253248174198638E+002 0.253457972340967E+002 0.253669428512550E+002 + 0.253882566586400E+002 0.254097410761174E+002 0.254313985516223E+002 + 0.254532315567185E+002 0.254752425822281E+002 0.254974341339458E+002 + 0.255198087284510E+002 0.255423688890293E+002 0.255651171417175E+002 + 0.255880560114801E+002 0.256111880185299E+002 0.256345156748009E+002 + 0.256580414805816E+002 0.256817679213168E+002 0.257056974645860E+002 + 0.257298325572612E+002 0.257541756228537E+002 0.257787290590513E+002 + 0.258034952354510E+002 0.258284764914908E+002 0.258536751345821E+002 + 0.258790934384457E+002 0.259047336416518E+002 0.259305979463653E+002 + 0.259566885172960E+002 0.259830074808536E+002 0.260095569245068E+002 + 0.260363388963437E+002 0.260633554048337E+002 0.260906084187870E+002 + 0.261180998675088E+002 0.261458316411453E+002 0.261738055912201E+002 + 0.262020235313532E+002 0.262304872381609E+002 0.262591984523320E+002 + 0.262881588798749E+002 0.263173701935306E+002 0.263468340343470E+002 + 0.263765520134083E+002 0.264065257137140E+002 0.264367566922027E+002 + 0.264672464819126E+002 0.264979965942752E+002 0.265290085215343E+002 + 0.265602837392838E+002 0.265918237091201E+002 0.266236298813992E+002 + 0.266557036980967E+002 0.266880465957586E+002 0.267206600085415E+002 + 0.267535453713324E+002 0.267867041229438E+002 0.268201377093750E+002 dipole_moments :real:2:3,1 - 0.545629879110916E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.545643319907050E+000 0.000000000000000E+000 0.000000000000000E+000 From 54a9e56dd2e85f5974173f6b0077e898a42906ac Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Thu, 26 May 2022 23:56:36 +0100 Subject: [PATCH 24/36] Fix ready for XLBOMD external potential updates Note, XLBOMD not adapted yet for external potentials (and these would presumably need to be time reversible). Co-authored-by: inseonglee islee@unist.ac.kr --- src/dftbp/dftbplus/main.F90 | 43 +++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/src/dftbp/dftbplus/main.F90 b/src/dftbp/dftbplus/main.F90 index 00b9cf8e57..ac2d1de02e 100644 --- a/src/dftbp/dftbplus/main.F90 +++ b/src/dftbp/dftbplus/main.F90 @@ -1033,31 +1033,36 @@ subroutine processGeometry(this, env, iGeoStep, iLatGeoStep, tWriteRestart, tSto ! Note: if XLBOMD is active, potential created with input charges is needed later, ! therefore it should not be overwritten here. - if (this%tSccCalc .and. .not. this%isXlbomd) then - call resetInternalPotentials(this%tDualSpinOrbit, this%xi, this%orb, this%species,& - & this%potential) - call getChargePerShell(this%qOutput, this%orb, this%species, this%chargePerShell) + if (.not.this%isXlbomd) then - call addChargePotentials(env, this%scc, this%tblite, this%updateSccAfterDiag,& - & this%qOutput, this%q0, this%chargePerShell, this%orb, this%multipoleOut,& - & this%species, this%neighbourList, this%img2CentCell, this%spinW, this%solvation,& - & this%thirdOrd, this%dispersion, this%potential) + if (this%tSccCalc) then + call resetInternalPotentials(this%tDualSpinOrbit, this%xi, this%orb, this%species,& + & this%potential) + call getChargePerShell(this%qOutput, this%orb, this%species, this%chargePerShell) - call addBlockChargePotentials(this%qBlockOut, this%qiBlockOut, this%dftbU, this%tImHam,& - & this%species, this%orb, this%potential) + call addChargePotentials(env, this%scc, this%tblite, this%updateSccAfterDiag,& + & this%qOutput, this%q0, this%chargePerShell, this%orb, this%multipoleOut,& + & this%species, this%neighbourList, this%img2CentCell, this%spinW, this%solvation,& + & this%thirdOrd, this%dispersion, this%potential) + + call addBlockChargePotentials(this%qBlockOut, this%qiBlockOut, this%dftbU, this%tImHam,& + & this%species, this%orb, this%potential) - if (allocated(this%onSiteElements)) then - call addOnsShift(this%potential%intBlock, this%potential%iOrbitalBlock, this%qBlockOut,& - & this%qiBlockOut, this%onSiteElements, this%species, this%orb, this%q0) + if (allocated(this%onSiteElements)) then + call addOnsShift(this%potential%intBlock, this%potential%iOrbitalBlock,& + & this%qBlockOut, this%qiBlockOut, this%onSiteElements, this%species, this%orb,& + & this%q0) + end if + + this%potential%intBlock = this%potential%intBlock + this%potential%extBlock end if - this%potential%intBlock = this%potential%intBlock + this%potential%extBlock - end if + if (allocated(this%qDepExtPot)) then + call getChargePerShell(this%qOutput, this%orb, this%species, dQ, qRef=this%q0) + call this%qDepExtPot%addPotential(sum(dQ(:,:,1), dim=1), dQ(:,:,1), this%orb,& + & this%species, this%potential%intBlock) + end if - if (allocated(this%qDepExtPot)) then - call getChargePerShell(this%qOutput, this%orb, this%species, dQ, qRef=this%q0) - call this%qDepExtPot%addPotential(sum(dQ(:,:,1), dim=1), dQ(:,:,1), this%orb,& - & this%species, this%potential%intBlock) end if call calcEnergies(this%scc, this%tblite, this%qOutput, this%q0, this%chargePerShell,& From 5549cf5bb0cc3131b4864beb78e4e4438bf22492 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Mon, 23 May 2022 09:29:11 +0100 Subject: [PATCH 25/36] Minor change to dptools install info Replace python with python3 (as usual install name). Also describe path setting a bit more. --- tools/dptools/README | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/tools/dptools/README b/tools/dptools/README index 39168f87c9..60c1caaf64 100644 --- a/tools/dptools/README +++ b/tools/dptools/README @@ -60,31 +60,12 @@ utils/srccheck/pylint/pylintrc-3.ini tools/dptools/bin/* Installation ============ -Please note, that the package needs at least **Python 2.6** or -later. It should also work with Python 3.X. It additionally needs -Numerical Python (the numpy module). - -System install --------------- +Please note, that the package needs at least **Python 2.6** or later, +with Python 3.X preferred. It additionally needs Numerical Python (the +numpy module). You can install the script package via the standard 'python setup' -mechanism. If you want to install it system-wide into your normal -python installation, you simply issue:: - - python setup.py - -Local install -------------- - -Alternatively, you can install it locally in your home space, e.g.:: - - python setup.py install --user - -If the local python install directory is not in your path, you should -add this. For the bash shell you should include in .bashrc:: - - export PATH=$PATH:/home/user/.local/bin +mechanism:: -while in tcsh shell, you would have to add to your .cshrc:: + pip install . - setenv PATH $PATH:/home/user/.local/bin From 468f8ebbb9e5ff01ab1dd66cb98d423693498a33 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Fri, 27 May 2022 22:43:03 +0100 Subject: [PATCH 26/36] Spelling mistake and space --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 2133c25f98..96d11169b0 100644 --- a/README.rst +++ b/README.rst @@ -29,7 +29,7 @@ management framework using `Miniconda conda documentation for how to set-up your conda environment.) We recommend the use of the `mamba installer `_, -as we have experienced dependency resolution problems with the original Ccnda +as we have experienced dependency resolution problems with the original conda installer in the past:: conda install -n base mamba @@ -48,7 +48,7 @@ or :: mamba install 'dftbplus=*=mpi_openmpi_*' to get the last stable release of DFTB+ with, respectively, -serial(OpenMP-threaded) build or with MPI-parallelized build using either the +serial (OpenMP-threaded) build or with MPI-parallelized build using either the MPICH or the Open MPI framework. From 96b56a3289e4ed0cd52f0c7e2bebcc7beea56b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20Aradi?= Date: Tue, 31 May 2022 16:02:32 +0200 Subject: [PATCH 27/36] Make sure ParserVersion appears in dftb_in.hsd Was missing if InputVersion was set and no conversion was necessary. --- src/dftbp/dftbplus/parser.F90 | 31 ++++++++++++++++++------------- src/dftbp/io/hsdutils.F90 | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/dftbp/dftbplus/parser.F90 b/src/dftbp/dftbplus/parser.F90 index 0ac6ad3786..97e75228e0 100644 --- a/src/dftbp/dftbplus/parser.F90 +++ b/src/dftbp/dftbplus/parser.F90 @@ -331,24 +331,29 @@ subroutine readParserOptions(node, root, flags, implicitVersion) if (present(implicitVersion)) then call getChild(node, "ParserVersion", child, requested=.false.) if (associated(child)) then - call detailedError(child, "Cannot have both ParserVersion and InputVersion") + call getChildValue(child, "", inputVersion) + if (inputVersion /= implicitVersion) then + call detailedError(child, "Parser version deduced from InputVersion ("& + & // i2c(implicitVersion) // ") differs from version explicitely set in ParserVersion ("& + & // i2c(inputVersion) // ")") + end if + else + inputVersion = implicitVersion + call setChildValue(node, "ParserVersion", inputVersion, child=child) end if - inputVersion = implicitVersion else - ! Check if input needs compatibility conversion. - call getChildValue(node, "ParserVersion", inputVersion, parserVersion, & - &child=child) + call getChildValue(node, "ParserVersion", inputVersion, parserVersion, child=child) end if + if (inputVersion < 1 .or. inputVersion > parserVersion) then - call detailedError(child, "Invalid parser version (" // i2c(inputVersion)& - &// ")") - elseif (inputVersion < minVersion) then + call detailedError(child, "Invalid parser version (" // i2c(inputVersion) // ")") + else if (inputVersion < minVersion) then call detailedError(child, & - &"Sorry, no compatibility mode for parser version " & - &// i2c(inputVersion) // " (too old)") - elseif (inputVersion /= parserVersion) then - write(stdout, "(A,I2,A,I2,A)") "*** Converting input from parser version ", & - &inputVersion, " to parser version ", parserVersion, " ..." + & "Sorry, no compatibility mode for parser version " // i2c(inputVersion)& + & // " (too old)") + else if (inputVersion /= parserVersion) then + write(stdout, "(A,I2,A,I2,A)") "*** Converting input from parser version ",& + & inputVersion, " to parser version ", parserVersion, " ..." call convertOldHSD(root, inputVersion, parserVersion) write(stdout, "(A,/)") "*** Done." end if diff --git a/src/dftbp/io/hsdutils.F90 b/src/dftbp/io/hsdutils.F90 index ee194c4c11..bf55cfc55f 100644 --- a/src/dftbp/io/hsdutils.F90 +++ b/src/dftbp/io/hsdutils.F90 @@ -3079,7 +3079,7 @@ subroutine detailedError(node, msg) type(string) :: str - str = msg + str = trim(msg) call appendPathAndLine(node, str) call error(char(str) // newline) From 41511299a12295f836495029eeeb1261fad5020c Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sat, 4 Jun 2022 22:35:01 +0100 Subject: [PATCH 28/36] Check shell variable for prefix path Modes program now matching main DFTB+ binary behaviour --- app/modes/initmodes.F90 | 8 +- test/app/modes/C24O6H8_prefix/_vibrations.tag | 39 + test/app/modes/C24O6H8_prefix/geom.gen | 40 + test/app/modes/C24O6H8_prefix/hessian.out | 3306 +++++++++++++++++ test/app/modes/C24O6H8_prefix/modes_in.hsd | 19 + test/app/modes/CMakeLists.txt | 4 + test/app/modes/tests | 1 + 7 files changed, 3416 insertions(+), 1 deletion(-) create mode 100644 test/app/modes/C24O6H8_prefix/_vibrations.tag create mode 100644 test/app/modes/C24O6H8_prefix/geom.gen create mode 100644 test/app/modes/C24O6H8_prefix/hessian.out create mode 100644 test/app/modes/C24O6H8_prefix/modes_in.hsd diff --git a/app/modes/initmodes.F90 b/app/modes/initmodes.F90 index dde64d5fc1..35dbd85f6b 100644 --- a/app/modes/initmodes.F90 +++ b/app/modes/initmodes.F90 @@ -10,6 +10,7 @@ !> Contains the routines for initialising modes. module modes_initmodes use dftbp_common_accuracy, only : dp, lc + use dftbp_common_filesystem, only : findFile, getParamSearchPath use dftbp_common_globalenv, only : stdOut use dftbp_common_unitconversion, only : massUnits use dftbp_extlibs_xmlf90, only : fnode, fNodeList, string, char, getLength, getItem1,& @@ -115,6 +116,8 @@ subroutine initProgramVariables() character(lc) :: prefix, suffix, separator, elem1, strTmp, filename logical :: tLower, tExist logical :: tWriteHSD ! HSD output? + type(string), allocatable :: searchPath(:) + character(len=:), allocatable :: strOut !! Write header write(stdout, "(A)") repeat("=", 80) @@ -164,7 +167,8 @@ subroutine initProgramVariables() ! oscillation cycles in animation nCycles = 3 - !! Slater-Koster files + ! Slater-Koster files + call getParamSearchPath(searchPath) allocate(skFiles(geo%nSpecies)) do iSp1 = 1, geo%nSpecies call init(skFiles(iSp1)) @@ -189,6 +193,8 @@ subroutine initProgramVariables() end if strTmp = trim(prefix) // trim(elem1) // trim(separator) & &// trim(elem1) // trim(suffix) + call findFile(searchPath, strTmp, strOut) + if (allocated(strOut)) strTmp = strOut call append(skFiles(iSp1), strTmp) inquire(file=strTmp, exist=tExist) if (.not. tExist) then diff --git a/test/app/modes/C24O6H8_prefix/_vibrations.tag b/test/app/modes/C24O6H8_prefix/_vibrations.tag new file mode 100644 index 0000000000..eb06171b08 --- /dev/null +++ b/test/app/modes/C24O6H8_prefix/_vibrations.tag @@ -0,0 +1,39 @@ +frequencies :real:1:114 + -0.187547553804958E-004 -0.501101157670352E-005 -0.372805369630428E-005 + 0.212535685057638E-005 0.790736235008174E-005 0.107372204925231E-004 + 0.128763262349723E-003 0.160152355416089E-003 0.253165903232735E-003 + 0.336544626416952E-003 0.402761516661085E-003 0.472350342543939E-003 + 0.472441969781380E-003 0.629422456174959E-003 0.782569580060794E-003 + 0.793178026025711E-003 0.879999278840577E-003 0.108563446229015E-002 + 0.109148158807881E-002 0.112069711113038E-002 0.129878720335386E-002 + 0.149419876716594E-002 0.155714314535777E-002 0.166495434444404E-002 + 0.173113661323921E-002 0.174317360850272E-002 0.180288516853080E-002 + 0.193829902551666E-002 0.196655506097378E-002 0.197934806960929E-002 + 0.199213228264372E-002 0.207087811847161E-002 0.211562023293594E-002 + 0.224727380740444E-002 0.225024929847445E-002 0.239292938098141E-002 + 0.257178479031813E-002 0.264271604144805E-002 0.269355407299142E-002 + 0.277188205522206E-002 0.284318542180839E-002 0.285764026087204E-002 + 0.295586217694119E-002 0.301158525492255E-002 0.312581389010002E-002 + 0.314301613266527E-002 0.316979324074630E-002 0.320141551559976E-002 + 0.323960729023212E-002 0.333046694956691E-002 0.335511167096714E-002 + 0.344553042993333E-002 0.353502901198129E-002 0.353618159425585E-002 + 0.362546372737615E-002 0.364982539034234E-002 0.370734654500347E-002 + 0.370839738132414E-002 0.381317442063729E-002 0.395517405243075E-002 + 0.399202986670513E-002 0.404907696942101E-002 0.405906936115191E-002 + 0.407780998209440E-002 0.408892996452355E-002 0.417594915910577E-002 + 0.425716143504679E-002 0.454849519817717E-002 0.478062305385178E-002 + 0.483887774475891E-002 0.508965787123257E-002 0.511891830837601E-002 + 0.527900248391725E-002 0.529863856416683E-002 0.539836750435060E-002 + 0.543794984635926E-002 0.560318361262258E-002 0.561342424030819E-002 + 0.600504872548780E-002 0.603443320664173E-002 0.605701999101461E-002 + 0.623700891283253E-002 0.627408467260839E-002 0.666771326775709E-002 + 0.671574059484597E-002 0.687958286497772E-002 0.692432046930946E-002 + 0.702752177532652E-002 0.710245989020131E-002 0.723418587076431E-002 + 0.732595958857402E-002 0.739780261214848E-002 0.749197229023172E-002 + 0.760705947678706E-002 0.779382943006760E-002 0.783913040916434E-002 + 0.787603578010979E-002 0.793323691354359E-002 0.793742930959692E-002 + 0.798382715939029E-002 0.808321240104737E-002 0.814178935675659E-002 + 0.816608150541253E-002 0.825013343423424E-002 0.826504985370358E-002 + 0.835256399209533E-002 0.139143023569920E-001 0.139145079555127E-001 + 0.139191585891175E-001 0.139193596143943E-001 0.139611565702941E-001 + 0.139620781638972E-001 0.139727438128492E-001 0.139739780346229E-001 diff --git a/test/app/modes/C24O6H8_prefix/geom.gen b/test/app/modes/C24O6H8_prefix/geom.gen new file mode 100644 index 0000000000..9caffd6b4d --- /dev/null +++ b/test/app/modes/C24O6H8_prefix/geom.gen @@ -0,0 +1,40 @@ + 38 C + C O H + 1 1 0.4480283676E-01 0.2529615467E+01 -0.1238182914E+00 + 2 1 0.2160930865E+01 0.1199355111E+01 -0.1242055762E+00 + 3 1 -0.7325717607E+00 0.1292990861E+01 -0.1236405566E+00 + 4 1 0.1383554313E+01 -0.3726841777E-01 -0.1246110808E+00 + 5 1 0.1473317964E+01 0.2453787366E+01 -0.1239746129E+00 + 6 1 -0.4496800620E-01 0.3855117333E-01 -0.1241994972E+00 + 7 1 -0.5678936161E+00 0.3790538072E+01 -0.1238503350E+00 + 8 1 0.3562818181E+01 0.1193851677E+01 -0.1240854669E+00 + 9 1 -0.2134461510E+01 0.1298483179E+01 -0.1229667982E+00 + 10 1 0.1996249291E+01 -0.1298193626E+01 -0.1254500710E+00 + 11 1 0.2232800166E+01 0.3661954896E+01 -0.1239440191E+00 + 12 1 -0.8044532394E+00 -0.1169616662E+01 -0.1243903868E+00 + 13 1 0.1859323865E+00 0.4971581519E+01 -0.1239777531E+00 + 14 1 0.4300324576E+01 0.2385162224E+01 -0.1238384367E+00 + 15 1 -0.2871963518E+01 0.1071727019E+00 -0.1229703325E+00 + 16 1 0.1242424820E+01 -0.2479249322E+01 -0.1257618841E+00 + 17 1 0.1578547951E+01 0.4923802433E+01 -0.1239518665E+00 + 18 1 0.3653541712E+01 0.3619404344E+01 -0.1238532527E+00 + 19 1 -0.2225186370E+01 -0.1127067144E+01 -0.1237403579E+00 + 20 1 -0.1502009024E+00 -0.2431467952E+01 -0.1251843860E+00 + 21 1 0.2350666229E+01 0.6184254489E+01 -0.1239545546E+00 + 22 1 0.4454669728E+01 0.4861616378E+01 -0.1236458011E+00 + 23 1 -0.3026312695E+01 -0.2369281211E+01 -0.1237433833E+00 + 24 1 -0.9223135704E+00 -0.3691920937E+01 -0.1254241537E+00 + 25 2 0.3769722099E+01 0.6106811413E+01 -0.1239383103E+00 + 26 2 -0.2341359312E+01 -0.3614465064E+01 -0.1248063758E+00 + 27 2 0.1850376745E+01 0.7285073665E+01 -0.1240046347E+00 + 28 2 0.5663552672E+01 0.4887981612E+01 -0.1232238578E+00 + 29 2 -0.4235196586E+01 -0.2395643683E+01 -0.1229046360E+00 + 30 2 -0.4220168012E+00 -0.4792730795E+01 -0.1261266759E+00 + 31 3 -0.1661860134E+01 0.3873140147E+01 -0.1238556106E+00 + 32 3 0.4111514506E+01 0.2438401430E+00 -0.1241746769E+00 + 33 3 -0.2683158508E+01 0.2248498034E+01 -0.1224589056E+00 + 34 3 0.3090223144E+01 -0.1380799949E+01 -0.1259060314E+00 + 35 3 -0.3136784948E+00 0.5949611247E+01 -0.1240086782E+00 + 36 3 0.5398256710E+01 0.2358946093E+01 -0.1237193475E+00 + 37 3 -0.3969904763E+01 0.1333905810E+00 -0.1224071498E+00 + 38 3 0.1742035949E+01 -0.3457275085E+01 -0.1264198933E+00 diff --git a/test/app/modes/C24O6H8_prefix/hessian.out b/test/app/modes/C24O6H8_prefix/hessian.out new file mode 100644 index 0000000000..4c80ab36cf --- /dev/null +++ b/test/app/modes/C24O6H8_prefix/hessian.out @@ -0,0 +1,3306 @@ + 0.7928860123 -0.0257786850 -0.0000822265 -0.0414147707 + 0.0422055439 0.0000054570 -0.1673592360 -0.1030695525 + 0.0000300756 -0.0066019721 -0.0087334424 -0.0000023371 + -0.3649423325 0.0118626380 0.0000308078 0.0208163124 + 0.0003228575 -0.0000043633 -0.1958936299 0.0987169564 + 0.0000012613 0.0197890920 0.0107842767 0.0000032137 + -0.0329348507 -0.0344653376 0.0000075326 -0.0005365688 + 0.0021303532 0.0000005812 -0.0210979134 -0.0600162573 + 0.0000084322 0.0000588240 0.0038710755 0.0000032777 + 0.0636141780 0.0185954368 -0.0000025098 -0.0019461751 + -0.0152368964 -0.0000025751 -0.0036086818 0.0073276716 + 0.0000076953 -0.0009292285 -0.0004821927 -0.0000003072 + -0.0406682855 0.0285457673 -0.0000004005 -0.0085329999 + 0.0040034086 -0.0000007596 0.0001789340 -0.0024877299 + -0.0000015146 0.0009101953 0.0004380170 -0.0000000521 + 0.0011019760 -0.0000186761 -0.0000016074 -0.0001516224 + -0.0016969245 0.0000001780 0.0005601529 0.0001303175 + -0.0000008975 0.0000816065 -0.0003407799 0.0000000797 + -0.0009762976 0.0010289935 -0.0000000441 -0.0000681313 + 0.0001179405 0.0000000973 -0.0003457706 0.0005138914 + 0.0000003485 -0.0003736422 0.0002947252 -0.0000001102 + -0.0003260117 0.0000901653 0.0000003964 -0.0001206088 + 0.0003305393 0.0000001218 -0.0106421439 0.0253242603 + 0.0000009609 -0.0001664566 -0.0000934981 0.0000006790 + 0.0019232763 -0.0003356624 -0.0000027221 -0.0000839020 + 0.0000091897 0.0000002513 -0.0016512269 -0.0030386518 + 0.0000010926 -0.0000478979 -0.0000205566 0.0000000116 + -0.0004572461 -0.0008108296 -0.0000001912 -0.0000429568 + -0.0000183523 0.0000000669 + -0.0257776900 0.8323660328 -0.0000297898 0.0321444215 + -0.0056473479 -0.0000030967 -0.0821252179 -0.2564530119 + 0.0000134352 -0.0087322272 0.0112511147 0.0000086971 + -0.0106260036 -0.1157960872 -0.0000093741 -0.0013437440 + -0.0442962827 -0.0000022733 0.1643431656 -0.3486354477 + 0.0000159321 -0.0007501326 -0.0069760584 -0.0000015713 + -0.0386544161 -0.0052000604 0.0000128525 0.0005837998 + -0.0084002763 -0.0000039352 -0.0322795861 0.0284916216 + -0.0000003147 0.0058758758 -0.0014920402 -0.0000047000 + -0.0530784763 -0.0776595573 0.0000069941 0.0005564980 + 0.0036255715 0.0000004918 0.0034277709 0.0153809537 + 0.0000006995 0.0040931556 0.0027782320 0.0000004432 + 0.0441740149 -0.0091413818 0.0000004856 0.0022489100 + -0.0055816016 0.0000003404 0.0010478978 -0.0072142903 + -0.0000028681 -0.0031970753 -0.0006751091 0.0000006876 + -0.0011592327 -0.0061329774 0.0000008802 -0.0015546544 + 0.0005852357 -0.0000001993 0.0022604925 0.0007627141 + -0.0000004855 0.0002687973 0.0005653875 -0.0000001502 + 0.0010354825 -0.0004394678 0.0000000835 -0.0000601354 + 0.0002146254 0.0000001482 -0.0014979799 0.0026833991 + -0.0000003140 0.0004149377 -0.0003634177 -0.0000000282 + -0.0014420455 0.0002369052 0.0000009267 0.0001269370 + -0.0003713214 -0.0000001499 -0.0000460076 0.0041108381 + -0.0000057843 0.0011349320 -0.0000997631 0.0000002574 + 0.0005941105 -0.0011861252 0.0000020478 -0.0000803068 + 0.0000814696 -0.0000002640 -0.0021992947 -0.0015963509 + -0.0000001915 -0.0000071433 0.0000229351 0.0000000133 + 0.0003033206 0.0001941326 0.0000001711 -0.0000231507 + 0.0000068076 -0.0000000975 + -0.0000796881 -0.0000294259 0.1358867353 0.0000053510 + 0.0000003630 0.0007449521 0.0000271919 0.0000255207 + -0.0555111492 0.0000012786 0.0000020977 -0.0038876152 + 0.0000417566 -0.0000047271 -0.0566073428 -0.0000048105 + -0.0000128544 0.0023227683 0.0000010828 0.0000110807 + -0.0495658097 -0.0000016023 -0.0000015021 0.0058509890 + 0.0000101752 0.0000152487 0.0012443947 0.0000003206 + 0.0000000166 -0.0004361406 -0.0000006795 0.0000026065 + 0.0026559410 0.0000036951 -0.0000038773 0.0059346982 + -0.0000000733 0.0000048204 0.0030426780 -0.0000010425 + 0.0000015341 -0.0009084913 0.0000047958 -0.0000053471 + 0.0080486114 0.0000002947 -0.0000003240 -0.0001750280 + 0.0000007005 -0.0000037974 -0.0056897998 -0.0000012417 + -0.0000011648 0.0064474156 -0.0000029929 0.0000011941 + -0.0011579518 -0.0000000933 -0.0000007773 -0.0001290946 + -0.0000002827 0.0000013565 -0.0009158902 0.0000006158 + -0.0000002435 -0.0000879520 -0.0000005084 0.0000003945 + -0.0014879883 -0.0000000539 -0.0000003010 0.0004408892 + -0.0000007455 -0.0000008309 0.0001591232 -0.0000002024 + -0.0000005926 0.0001124546 0.0000008691 -0.0000019167 + 0.0001389205 -0.0000015418 -0.0000000254 -0.0000299471 + -0.0000005810 -0.0000000426 0.0002921893 0.0000002373 + -0.0000005958 -0.0001507979 0.0000001073 -0.0000003280 + 0.0009182332 -0.0000000395 0.0000002021 0.0001999209 + -0.0000026645 0.0000016778 -0.0034054765 0.0000004721 + -0.0000001131 0.0000766244 0.0000005303 0.0000007597 + 0.0067184393 -0.0000008323 0.0000000396 -0.0009358852 + -0.0000000732 0.0000004264 -0.0002377467 0.0000002745 + -0.0000005519 0.0000841289 + -0.0414196967 0.0321437946 0.0000051718 0.8450883475 + -0.0006644424 0.0000411939 0.0147135231 0.0015261203 + -0.0000077746 -0.1673627072 -0.0821249717 -0.0000192007 + -0.1631030403 0.0864729550 0.0000247239 -0.0316639327 + -0.0265868452 -0.0000071107 -0.0058674326 -0.0130914447 + 0.0000012850 -0.4226972478 0.0552321216 -0.0000312625 + -0.0079846141 -0.0030016064 0.0000024309 0.0181544536 + -0.0140804387 -0.0000085163 0.0552300263 0.0044401577 + 0.0000065360 -0.0050128225 0.0034388939 0.0000052533 + 0.0083118160 0.0054917865 -0.0000007068 -0.0376371872 + -0.1017838717 -0.0000168997 0.0006718162 0.0048637685 + 0.0000006428 0.0076120233 0.0088214472 0.0000046770 + -0.0085793965 0.0022277954 -0.0000007404 -0.0434750306 + 0.0428257029 -0.0000007383 0.0006969981 -0.0032937359 + -0.0000013440 -0.0052636334 -0.0015689339 0.0000010827 + 0.0017136473 -0.0006496433 0.0000000775 -0.0042975530 + -0.0037654467 -0.0000026633 0.0004972792 0.0004738468 + 0.0000000983 -0.0002106360 0.0018879497 0.0000002159 + -0.0013458790 0.0008593200 0.0000001371 0.0001374511 + 0.0000384478 0.0000000560 -0.0006413298 0.0002827251 + -0.0000000690 0.0024872351 -0.0001297997 0.0000011618 + -0.0004969396 -0.0000568077 0.0000002316 0.0006602960 + -0.0009702787 -0.0000005778 -0.0005182414 0.0009651710 + 0.0000000475 -0.0085347021 0.0009632749 0.0000055099 + 0.0000803300 -0.0000051777 0.0000003417 -0.0006975274 + -0.0006694534 -0.0000029218 0.0000202784 0.0000265203 + 0.0000000761 0.0004439167 -0.0011937968 -0.0000002905 + 0.0000189478 0.0000038679 0.0000000596 0.0002711642 + 0.0006510276 -0.0000001939 + 0.0422083557 -0.0056473459 -0.0000014055 -0.0006637443 + 0.7801593430 0.0001593382 0.0015250590 -0.0100709190 + -0.0000023204 -0.1030688207 -0.2564509410 -0.0000705909 + 0.1089610624 -0.3176335879 -0.0000398869 -0.0249197756 + 0.0081793623 0.0000039378 -0.0015572236 0.0186782800 + -0.0000012360 -0.0103924380 -0.1218287194 -0.0000147396 + -0.0014515878 -0.0009534957 0.0000008422 -0.0098900734 + -0.0562867736 -0.0000218798 -0.0232964291 -0.0478349539 + -0.0000127561 0.0014344273 0.0035748366 -0.0000007463 + -0.0103008167 -0.0066338884 0.0000013203 -0.0301161652 + 0.0235922812 -0.0000014326 0.0002874282 0.0011771834 + 0.0000004324 0.0127244562 0.0041644790 -0.0000059299 + 0.0039827948 -0.0055366155 -0.0000000635 0.0271962742 + -0.0063359912 0.0000021006 0.0003375553 -0.0004668276 + -0.0000003303 -0.0051043470 -0.0017741560 0.0000017814 + -0.0007929134 -0.0012898311 -0.0000000616 -0.0026324992 + -0.0007179714 0.0000004737 -0.0001276116 0.0001400987 + -0.0000000434 -0.0002449306 0.0015376441 0.0000012586 + 0.0008497813 -0.0000716369 -0.0000000775 0.0002195242 + 0.0000116925 -0.0000000874 0.0001630902 -0.0000896533 + 0.0000000536 0.0018858131 -0.0001609743 0.0000002729 + 0.0001403333 0.0000110902 -0.0000000520 0.0005650299 + -0.0007500201 -0.0000006744 -0.0002638884 0.0002530504 + -0.0000006681 0.0263351513 0.0020082607 0.0000033600 + 0.0000865860 -0.0000797563 -0.0000001366 -0.0016019820 + 0.0014400415 0.0000020535 0.0000120346 -0.0000449962 + -0.0000000758 -0.0020355982 -0.0036870949 -0.0000017914 + 0.0000078431 -0.0000496997 -0.0000000512 -0.0004617555 + -0.0005317942 -0.0000001884 + 0.0000079599 -0.0000023121 0.0007449511 0.0000400200 + 0.0001588054 0.1358864168 0.0000025173 -0.0000012058 + -0.0038875870 -0.0000278349 -0.0000682208 -0.0555111747 + 0.0000278135 -0.0000547333 -0.0566074415 0.0000032298 + 0.0000072683 0.0023229216 -0.0000008477 0.0000036653 + 0.0058510548 -0.0000338333 -0.0000082102 -0.0495649329 + -0.0000033010 0.0000011585 -0.0004361420 -0.0000104100 + -0.0000271925 0.0012444662 -0.0000002024 -0.0000035813 + 0.0026556828 0.0000049534 -0.0000046909 0.0059346228 + -0.0000013029 0.0000001192 -0.0009085097 -0.0000099172 + -0.0000037973 0.0030424219 -0.0000016820 0.0000001345 + -0.0001750250 0.0000075560 -0.0000023161 0.0080486079 + 0.0000017693 -0.0000012322 0.0064474076 0.0000025949 + 0.0000045681 -0.0056896708 0.0000000757 -0.0000015271 + -0.0001291119 -0.0000003161 -0.0000008838 -0.0011579301 + 0.0000005847 -0.0000042299 -0.0000879400 -0.0000034961 + -0.0000048695 -0.0009158924 -0.0000001773 -0.0000041845 + 0.0004408847 0.0000017707 -0.0000055657 -0.0014879843 + 0.0000008526 0.0000017054 0.0001591212 0.0000013613 + 0.0000026470 0.0001124615 -0.0000021338 0.0000049053 + -0.0000299467 0.0000027705 0.0000003465 0.0001389208 + 0.0000008456 0.0000003546 -0.0001507996 -0.0000035743 + 0.0000084653 0.0002921918 -0.0000010998 0.0000000103 + 0.0001999134 0.0000034471 -0.0000009347 0.0009181058 + -0.0000007770 0.0000015837 0.0000766199 -0.0000039402 + 0.0000029165 -0.0034054915 -0.0000007365 0.0000012121 + -0.0009358946 -0.0000017323 -0.0000019311 0.0067183369 + -0.0000013633 0.0000000449 0.0000841321 -0.0000014440 + 0.0000017079 -0.0002377669 + -0.1673626887 -0.0821256686 0.0000273841 0.0147135187 + 0.0015258644 0.0000012747 0.8450799013 -0.0006570469 + -0.0003154871 -0.0414196568 0.0321439775 0.0000246978 + -0.0316651677 -0.0265875745 0.0000088519 -0.1631005454 + 0.0864687775 0.0000518200 0.0181544305 -0.0140800425 + -0.0000043787 -0.0079846387 -0.0030015657 -0.0000008319 + -0.4226902967 0.0552294185 0.0002010910 -0.0058674923 + -0.0130913100 -0.0000023268 -0.0050129049 0.0034389049 + 0.0000004214 0.0552302386 0.0044403148 -0.0000247146 + 0.0076120211 0.0088213894 -0.0000005710 0.0006718161 + 0.0048637769 0.0000010846 -0.0376366452 -0.1017837945 + -0.0000106157 0.0083117249 0.0054917489 -0.0000006645 + -0.0052636297 -0.0015689788 -0.0000001621 0.0006969875 + -0.0032937361 -0.0000003402 -0.0434751171 0.0428258182 + 0.0000328170 -0.0085793837 0.0022278147 0.0000074299 + -0.0002105999 0.0018880069 0.0000000208 0.0004972846 + 0.0004738530 0.0000001347 -0.0042974584 -0.0037653946 + 0.0000021152 0.0017136803 -0.0006495947 -0.0000010578 + 0.0001374319 0.0000384392 -0.0000000563 -0.0013458976 + 0.0008593151 0.0000008461 0.0006602951 -0.0009703245 + 0.0000000505 -0.0004969507 -0.0000568110 -0.0000001476 + 0.0024871773 -0.0001298149 -0.0000020097 -0.0006413334 + 0.0002827084 0.0000004226 -0.0006975030 -0.0006694382 + 0.0000014973 0.0000803263 -0.0000051714 -0.0000003286 + -0.0085349988 0.0009632774 -0.0000009084 -0.0005182722 + 0.0009651804 0.0000007035 0.0002711571 0.0006510320 + 0.0000002133 0.0000189465 0.0000038686 -0.0000000249 + 0.0004439689 -0.0011937548 0.0000022076 0.0000202740 + 0.0000265348 -0.0000004581 + -0.1030686228 -0.2564517844 0.0000242279 0.0015253164 + -0.0100709306 -0.0000009206 -0.0006563367 0.7801566561 + 0.0001140989 0.0422080297 -0.0056475878 -0.0000176411 + -0.0249205574 0.0081792150 0.0000080944 0.1089571877 + -0.3176304389 -0.0001113592 -0.0098903734 -0.0562869716 + 0.0000010164 -0.0014517452 -0.0009535315 -0.0000005228 + -0.0103955365 -0.1218290621 -0.0000124539 -0.0015571827 + 0.0186782968 0.0000072801 0.0014343871 0.0035749517 + -0.0000007569 -0.0232967458 -0.0478339773 0.0000005327 + 0.0127246816 0.0041644371 -0.0000008316 0.0002874411 + 0.0011772581 0.0000000568 -0.0301158846 0.0235923130 + 0.0000222847 -0.0103007380 -0.0066338470 0.0000002914 + -0.0051044523 -0.0017742362 -0.0000000633 0.0003375945 + -0.0004668597 0.0000000384 0.0271965329 -0.0063358366 + -0.0000127559 0.0039827813 -0.0055365222 -0.0000065181 + -0.0002448728 0.0015377659 0.0000000798 -0.0001275818 + 0.0001400887 -0.0000000436 -0.0026325074 -0.0007179978 + 0.0000004937 -0.0007928963 -0.0012897880 -0.0000000880 + 0.0002194940 0.0000117051 -0.0000000373 0.0008497833 + -0.0000716310 -0.0000003490 0.0005650336 -0.0007500817 + 0.0000000310 0.0001403225 0.0000110922 0.0000000734 + 0.0018858086 -0.0001609836 -0.0000010491 0.0001630841 + -0.0000896638 -0.0000001554 -0.0016019975 0.0014400622 + 0.0000006286 0.0000865807 -0.0000797490 0.0000000421 + 0.0263353521 0.0020081135 -0.0000132995 -0.0002639071 + 0.0002530467 0.0000008447 -0.0004617614 -0.0005318019 + 0.0000002370 0.0000078445 -0.0000496978 -0.0000000153 + -0.0020355896 -0.0036870330 -0.0000019764 0.0000120334 + -0.0000449887 0.0000004851 + 0.0000319154 0.0000122058 -0.0555111494 -0.0000064150 + -0.0000030630 -0.0038875865 -0.0003173277 0.0001132679 + 0.1358876532 0.0000308359 -0.0000113058 0.0007450991 + 0.0000040112 0.0000031331 0.0023231967 0.0000624606 + -0.0000894623 -0.0566080988 -0.0000033795 0.0000070361 + 0.0012445203 0.0000027224 0.0000026541 -0.0004361406 + 0.0001728659 -0.0000418900 -0.0495658650 0.0000024219 + 0.0000073131 0.0058509692 0.0000030850 -0.0000018481 + 0.0059347598 -0.0000278950 -0.0000220341 0.0026555025 + -0.0000048682 -0.0000004415 0.0080486611 -0.0000014056 + -0.0000032173 -0.0001750383 0.0000109904 0.0000532089 + 0.0030423999 -0.0000073211 -0.0000041420 -0.0009084914 + 0.0000041936 -0.0000020684 -0.0011579481 -0.0000000112 + 0.0000005056 -0.0001291232 0.0000231165 -0.0000201594 + -0.0056898067 0.0000082476 -0.0000062532 0.0064473490 + 0.0000029500 -0.0000062511 -0.0014879873 -0.0000004187 + -0.0000040239 0.0004408912 -0.0000014919 -0.0000003116 + -0.0009158932 -0.0000012767 -0.0000036132 -0.0000879403 + 0.0000012310 0.0000030054 0.0001124545 0.0000027659 + 0.0000010250 0.0001591253 -0.0000040736 0.0000089878 + 0.0002921859 0.0000016771 0.0000003615 -0.0001507976 + 0.0000027559 0.0000001380 0.0001389187 -0.0000017353 + 0.0000047139 -0.0000299436 -0.0000020507 -0.0000000350 + -0.0034055116 -0.0000006699 0.0000010407 0.0000766284 + 0.0000118932 -0.0000000571 0.0009182844 -0.0000006066 + -0.0000001699 0.0001999088 -0.0000011106 0.0000023105 + -0.0002377666 -0.0000009644 0.0000000847 0.0000841329 + 0.0000038327 -0.0000023581 0.0067183226 -0.0000009499 + 0.0000017131 -0.0009358753 + -0.0066043866 -0.0087320172 -0.0000003737 -0.1673603237 + -0.1030694318 -0.0000303559 -0.0414152137 0.0422073043 + 0.0000288182 0.7928668496 -0.0257752609 -0.0001826819 + 0.0208142186 0.0003241981 -0.0000026464 -0.3649263336 + 0.0118620742 0.0000893006 -0.0005358823 0.0021312634 + 0.0000003857 -0.0329341640 -0.0344669353 -0.0000091778 + 0.0197890208 0.0107852363 -0.0000038593 -0.1958893457 + 0.0987130131 0.0001018340 0.0000566418 0.0038725004 + 0.0000005628 -0.0210965881 -0.0600144820 -0.0000253494 + -0.0009302152 -0.0004828662 0.0000003767 -0.0036057675 + 0.0073264571 -0.0000000217 -0.0019476910 -0.0152349062 + -0.0000036014 0.0636142659 0.0185940292 -0.0000137961 + 0.0009081032 0.0004384773 -0.0000001500 0.0001774159 + -0.0024867729 -0.0000000208 -0.0085333192 0.0040038299 + 0.0000081818 -0.0406668326 0.0285452118 0.0000259764 + 0.0000748377 -0.0003360168 -0.0000000787 0.0005643655 + 0.0001295665 0.0000002103 -0.0001638849 -0.0016963353 + -0.0000008885 0.0011082543 -0.0000307545 0.0000007741 + -0.0000656098 0.0001221982 0.0000000165 -0.0009782340 + 0.0010259182 0.0000009128 -0.0001189581 0.0003274121 + 0.0000000024 -0.0003238926 0.0000903136 -0.0000001398 + -0.0003667229 0.0002948413 0.0000003688 -0.0003491656 + 0.0005212714 0.0000000596 -0.0000827989 0.0000089762 + -0.0000001866 0.0019249819 -0.0003384981 0.0000005365 + -0.0001666192 -0.0000933625 -0.0000005673 -0.0106409722 + 0.0253238918 0.0000151562 -0.0000422552 -0.0000194747 + -0.0000000131 -0.0004545337 -0.0008108199 -0.0000000955 + -0.0000482704 -0.0000207381 -0.0000003874 -0.0016509747 + -0.0030393122 0.0000009180 + -0.0087322861 0.0112511119 0.0000012034 -0.0821244987 + -0.2564521630 -0.0000672919 0.0321446093 -0.0056475800 + -0.0000118364 -0.0257730357 0.8323603874 0.0003444004 + -0.0013438600 -0.0442973398 -0.0000172186 -0.0106286137 + -0.1157964360 -0.0000111113 0.0005837918 -0.0084002947 + 0.0000002977 -0.0386553335 -0.0052001713 -0.0000005275 + -0.0007500190 -0.0069760475 -0.0000036502 0.1643398637 + -0.3486309118 -0.0002147842 0.0058760366 -0.0014921303 + -0.0000007752 -0.0322788134 0.0284911694 0.0000233572 + 0.0040932421 0.0027782597 -0.0000007737 0.0034278080 + 0.0153812501 0.0000010383 0.0005564830 0.0036255306 + 0.0000013042 -0.0530772985 -0.0776575181 -0.0000216230 + -0.0031971280 -0.0006750969 0.0000003200 0.0010478917 + -0.0072144192 -0.0000000077 0.0022488827 -0.0055815906 + -0.0000063366 0.0441730664 -0.0091411222 -0.0000188447 + 0.0002687908 0.0005654145 0.0000000644 0.0022605755 + 0.0007627858 0.0000007073 -0.0015545963 0.0005852702 + 0.0000010485 -0.0011591763 -0.0061328150 -0.0000024347 + -0.0000601267 0.0002145908 -0.0000000977 0.0010354798 + -0.0004394886 -0.0000007516 0.0001269458 -0.0003713554 + 0.0000000215 -0.0014421257 0.0002368899 -0.0000004614 + 0.0004149028 -0.0003634232 -0.0000002641 -0.0014979872 + 0.0026832952 0.0000019100 -0.0000803007 0.0000814682 + 0.0000002639 0.0005941241 -0.0011861419 -0.0000013503 + 0.0011349476 -0.0000997754 -0.0000008446 -0.0000460006 + 0.0041108879 0.0000070430 -0.0000231495 0.0000068067 + 0.0000000607 0.0003032965 0.0001941275 -0.0000000968 + -0.0000071380 0.0000229375 0.0000004078 -0.0021992506 + -0.0015963623 -0.0000023661 + -0.0000019529 0.0000085178 -0.0038876154 -0.0000187723 + -0.0000705173 -0.0555111732 0.0000257994 -0.0000173468 + 0.0007450990 -0.0001824069 0.0003440369 0.1358886833 + -0.0000019734 -0.0000074472 0.0023230320 0.0000709473 + -0.0000245319 -0.0566086176 0.0000014009 -0.0000047103 + -0.0004361420 -0.0000150218 -0.0000044690 0.0012445648 + -0.0000038060 -0.0000074277 0.0058510322 0.0001306466 + -0.0001836012 -0.0495660486 0.0000001358 -0.0000010122 + 0.0059346737 -0.0000052118 0.0000327717 0.0026555035 + 0.0000029320 0.0000018378 -0.0001750295 0.0000003271 + 0.0000053857 0.0080486597 0.0000012049 0.0000058599 + -0.0009085091 -0.0000431081 -0.0000448623 0.0030420976 + -0.0000013963 -0.0000012296 -0.0001291042 0.0000015537 + -0.0000038139 -0.0011579253 0.0000070501 -0.0000067232 + 0.0064473967 0.0000323019 -0.0000094210 -0.0056896170 + -0.0000057622 0.0000043150 0.0004408809 -0.0000003232 + -0.0000017742 -0.0014879752 0.0000001279 0.0000002966 + -0.0000879519 -0.0000028618 -0.0000040888 -0.0009158778 + 0.0000020729 0.0000016086 0.0001124542 0.0000005305 + 0.0000003591 0.0001591254 0.0000019769 -0.0000037321 + -0.0001507926 0.0000020352 0.0000001082 0.0002921844 + 0.0000004995 -0.0000002482 -0.0000299453 -0.0000003331 + 0.0000008527 0.0001389228 -0.0000007956 0.0000001484 + 0.0000766227 0.0000002180 0.0000007687 -0.0034055532 + -0.0000002112 0.0000010241 0.0001999197 0.0000020527 + -0.0000077776 0.0009182028 -0.0000000054 -0.0000002045 + 0.0000841315 -0.0000005055 0.0000001354 -0.0002377522 + -0.0000011212 0.0000004655 -0.0009358760 0.0000017553 + -0.0000035531 0.0067183194 + -0.3649445689 -0.0106247064 0.0000403925 -0.1631010630 + 0.1089630688 0.0000255236 -0.0316629543 -0.0249194478 + 0.0000016113 0.0208142934 -0.0013424762 -0.0000022282 + 0.8334538151 -0.0067282031 -0.0000598652 -0.0063884154 + 0.0068765828 0.0000023834 -0.0240768145 0.0807761981 + 0.0000007587 -0.0479071552 0.0223852805 0.0000031746 + 0.0067124693 0.0003785432 -0.0000025936 -0.0017593925 + -0.0075813831 -0.0000032981 -0.2091948103 -0.1007185890 + -0.0000118654 -0.0007422099 0.0003515965 0.0000010610 + -0.0453968956 -0.0282246572 0.0000024524 0.0077085218 + 0.0137234495 0.0000039911 -0.0010235749 -0.0033261182 + 0.0000003514 0.0023524267 0.0007520391 -0.0000005056 + 0.0546264432 -0.0241223727 -0.0000003828 -0.0204378949 + -0.0329116454 0.0000008401 0.0000245928 0.0018039319 + 0.0000005973 -0.0011702942 -0.0005595961 0.0000002216 + -0.0018376578 0.0038751748 0.0000016459 -0.0036171306 + 0.0040663826 -0.0000000838 -0.0003806017 -0.0004081937 + -0.0000000712 0.0003036598 0.0007277849 0.0000001883 + 0.0008624467 -0.0007839828 0.0000000335 -0.0002748414 + 0.0000811580 0.0000001923 0.0009297712 -0.0002526673 + -0.0000003960 -0.0012900160 -0.0017131465 -0.0000007646 + 0.0002545310 -0.0000242629 -0.0000001561 0.0000900685 + -0.0003650358 -0.0000001999 0.0008558025 0.0008346216 + -0.0000003308 -0.0043667448 -0.0006520135 -0.0000019379 + 0.0000437168 0.0000287179 -0.0000004222 0.0001307820 + 0.0000772587 -0.0000000641 0.0000628702 -0.0002270410 + -0.0000001752 0.0004308039 0.0000050224 0.0000000629 + -0.0000078233 -0.0000263915 -0.0000000889 -0.0000761559 + -0.0001948810 -0.0000000523 + 0.0118648099 -0.1157946292 -0.0000055856 0.0864712374 + -0.3176317231 -0.0000542749 -0.0265883697 0.0081819461 + 0.0000042996 0.0003257185 -0.0442957733 -0.0000076945 + -0.0067298530 0.8269766806 0.0000681114 0.0068760270 + 0.0002297712 -0.0000007696 0.0338503100 0.0017197187 + -0.0000030359 0.0693110051 0.0255501642 0.0000060933 + -0.0035044671 -0.0052257086 0.0000006209 -0.0036967497 + 0.0032479574 0.0000018630 -0.1007204287 -0.3061029287 + 0.0000011445 0.0003498682 -0.0004031882 -0.0000005735 + -0.0118248060 0.0007319054 -0.0000011267 -0.0026763331 + -0.0523726251 -0.0000049215 -0.0008717870 0.0011140264 + 0.0000012249 -0.0017007863 -0.0022627958 -0.0000015950 + 0.0031996990 -0.0478734244 -0.0000034636 -0.0602328337 + 0.0271903367 -0.0000001457 0.0000141840 -0.0005707659 + -0.0000002479 0.0012287764 0.0006236394 -0.0000001323 + 0.0049210924 0.0002073380 0.0000008641 0.0030184849 + 0.0019852140 -0.0000022111 0.0003949093 0.0004614924 + -0.0000001031 -0.0000781443 -0.0002254614 0.0000000341 + -0.0007842595 0.0001065422 0.0000004268 0.0000798972 + -0.0001992921 -0.0000001357 -0.0006434090 -0.0022399631 + -0.0000001485 -0.0013199914 -0.0000161171 0.0000003619 + -0.0002835621 -0.0000973567 0.0000001603 -0.0001019132 + 0.0000639417 0.0000000510 0.0018610519 -0.0042789023 + 0.0000008200 -0.0016768689 0.0009422649 -0.0000004032 + 0.0000357764 0.0001810300 -0.0000001028 0.0000713984 + 0.0000945524 0.0000004778 -0.0001716418 0.0003235072 + 0.0000000621 -0.0000486010 -0.0000439598 -0.0000000161 + -0.0001603709 -0.0001826306 -0.0000000489 -0.0000590698 + -0.0001147831 0.0000001203 + 0.0000315199 -0.0000096603 -0.0566073425 0.0000253348 + -0.0000395027 -0.0566074409 0.0000086080 0.0000080752 + 0.0023231973 -0.0000022358 -0.0000165009 0.0023230323 + -0.0000593932 0.0000676516 0.1363684163 0.0000025261 + -0.0000010788 -0.0016273561 0.0000009828 -0.0000030872 + 0.0039066626 0.0000047005 0.0000037030 0.0039065429 + -0.0000012079 -0.0000007907 0.0028810579 -0.0000004078 + 0.0000010881 0.0028810556 0.0000049013 -0.0000107487 + -0.0582636660 0.0000000009 0.0000000898 -0.0005900740 + 0.0000017619 0.0000024733 -0.0062641777 -0.0000014453 + -0.0000052694 -0.0062640963 0.0000003267 0.0000016381 + -0.0001019789 -0.0000013420 -0.0000012841 -0.0001019583 + -0.0000023536 0.0000030349 0.0047064733 -0.0000100065 + 0.0000007600 0.0047065427 0.0000000490 -0.0000007520 + 0.0001161715 0.0000007461 0.0000000623 0.0001161661 + 0.0000004377 -0.0000016555 0.0062248321 -0.0000001901 + 0.0000004013 0.0062247777 0.0000002752 0.0000001570 + 0.0000657235 -0.0000001185 -0.0000002552 0.0000657185 + 0.0000007431 -0.0000007373 -0.0013699093 -0.0000000460 + -0.0000000995 -0.0000106821 -0.0000006106 0.0000015135 + -0.0011386256 -0.0000006131 0.0000001916 -0.0011386224 + -0.0000002108 0.0000000076 -0.0000137173 0.0000000331 + -0.0000001245 -0.0000137165 -0.0000001337 0.0000007081 + 0.0077435387 -0.0000016231 -0.0000006487 0.0077435826 + -0.0000001247 0.0000000174 -0.0001827940 0.0000000160 + 0.0000001292 -0.0001827951 -0.0000002540 0.0000004214 + -0.0007023738 -0.0000005448 0.0000000998 -0.0007023640 + -0.0000000868 0.0000000838 -0.0002098989 -0.0000000149 + -0.0000001117 -0.0002099022 + 0.0208142545 -0.0013423509 -0.0000054263 -0.0316617179 + -0.0249186516 0.0000005480 -0.1630985695 0.1089591898 + 0.0000608608 -0.3649273398 -0.0106273114 0.0000705329 + -0.0063884189 0.0068765173 0.0000023917 0.8334330299 + -0.0067241727 -0.0002071906 -0.0017594192 -0.0075813666 + 0.0000018262 0.0067123717 0.0003784984 0.0000012327 + -0.0479073548 0.0223857031 0.0000257349 -0.0240770857 + 0.0807751975 0.0000443177 -0.0007422237 0.0003515917 + -0.0000008307 -0.2091934943 -0.1007169987 0.0000273486 + 0.0023524602 0.0007520619 -0.0000001576 -0.0010235709 + -0.0033260598 -0.0000013853 0.0077083066 0.0137229967 + -0.0000032415 -0.0453957694 -0.0282241109 0.0000010266 + -0.0011703314 -0.0005596198 0.0000000348 0.0000246157 + 0.0018039251 0.0000001783 -0.0204387205 -0.0329116735 + -0.0000051950 0.0546255564 -0.0241219262 -0.0000290776 + 0.0003036943 0.0007278103 0.0000000202 -0.0003805972 + -0.0004082228 0.0000000483 -0.0036170469 0.0040664782 + 0.0000055495 -0.0018377260 0.0038750920 0.0000030820 + -0.0002748642 0.0000811739 -0.0000000531 0.0008624820 + -0.0007840116 -0.0000012189 0.0000900644 -0.0003650492 + 0.0000000085 0.0002545311 -0.0000242542 0.0000000536 + -0.0012900601 -0.0017131559 0.0000000489 0.0009297766 + -0.0002526483 -0.0000005084 0.0001307744 0.0000772610 + -0.0000000213 0.0000437139 0.0000287195 0.0000003541 + -0.0043668635 -0.0006519315 0.0000063802 0.0008558275 + 0.0008346044 0.0000032869 -0.0000761532 -0.0001948867 + -0.0000000798 -0.0000078176 -0.0000263897 -0.0000000029 + 0.0004308180 0.0000050192 -0.0000004359 0.0000628676 + -0.0002270481 -0.0000000408 + 0.0003255130 -0.0442947147 -0.0000123245 -0.0265876370 + 0.0081820859 0.0000083980 0.0864670678 -0.3176285588 + -0.0000884052 0.0118621897 -0.1157949755 -0.0000244073 + 0.0068760955 0.0002297709 -0.0000010889 -0.0067258229 + 0.8269684793 0.0002269751 -0.0036967272 0.0032480464 + -0.0000001469 -0.0035044066 -0.0052256638 -0.0000027685 + 0.0693115307 0.0255504125 -0.0000232930 0.0338502158 + 0.0017194173 -0.0000105470 0.0003498610 -0.0004032134 + 0.0000004985 -0.1007178787 -0.3060987919 -0.0000677377 + -0.0017008335 -0.0022628162 0.0000012965 -0.0008717934 + 0.0011140095 -0.0000003707 -0.0026763009 -0.0523733600 + -0.0000137513 -0.0118244457 0.0007318961 0.0000085598 + 0.0012288098 0.0006236683 -0.0000001248 0.0000141807 + -0.0005707602 -0.0000000379 -0.0602338718 0.0271906855 + 0.0000322467 0.0031993868 -0.0478731411 -0.0000199713 + -0.0000781588 -0.0002254915 -0.0000001209 0.0003949046 + 0.0004614970 0.0000001329 0.0030184821 0.0019852622 + -0.0000007334 0.0049211330 0.0002073964 -0.0000053160 + 0.0000799048 -0.0001992925 0.0000000236 -0.0007842779 + 0.0001065608 0.0000005433 -0.0001019150 0.0000639559 + 0.0000000208 -0.0002835593 -0.0000973580 -0.0000000963 + -0.0013200079 -0.0000161222 0.0000005931 -0.0006434018 + -0.0022400214 -0.0000000574 0.0000713972 0.0000945502 + -0.0000003819 0.0000357766 0.0001810332 0.0000002499 + -0.0016768387 0.0009423020 -0.0000017197 0.0018611125 + -0.0042788701 -0.0000069301 -0.0000590676 -0.0001147844 + -0.0000000478 -0.0001603653 -0.0001826321 0.0000001172 + -0.0000486100 -0.0000439649 0.0000002689 -0.0001716418 + 0.0003235033 0.0000004543 + -0.0000026131 -0.0000011699 0.0023227683 -0.0000069366 + 0.0000030788 0.0023229222 0.0000520086 -0.0001121256 + -0.0566080984 0.0000896564 -0.0000101730 -0.0566086172 + 0.0000040771 -0.0000016119 -0.0016273564 -0.0002047120 + 0.0002247087 0.1363707406 -0.0000000449 0.0000025056 + 0.0028810437 -0.0000028302 -0.0000021061 0.0028810417 + 0.0000419888 -0.0000034000 0.0039067686 0.0000240135 + -0.0000271717 0.0039065258 0.0000006065 -0.0000007360 + -0.0005900689 0.0000093795 -0.0000554673 -0.0582636012 + -0.0000001877 -0.0000000054 -0.0001019550 -0.0000011953 + 0.0000000616 -0.0001019632 -0.0000056516 -0.0000202403 + -0.0062641061 0.0000086262 0.0000120432 -0.0062639785 + 0.0000007774 -0.0000003400 0.0001161695 0.0000000098 + -0.0000007586 0.0001161689 -0.0000050953 0.0000214873 + 0.0047067140 -0.0000159556 -0.0000158533 0.0047062233 + 0.0000015448 -0.0000011472 0.0000657178 0.0000002669 + -0.0000000262 0.0000657213 0.0000064324 -0.0000030823 + 0.0062248579 0.0000062771 -0.0000024863 0.0062247662 + -0.0000003501 -0.0000006578 -0.0000106815 -0.0000029723 + 0.0000010491 -0.0013699402 -0.0000005696 0.0000012113 + -0.0000137160 -0.0000014284 -0.0000000458 -0.0000137173 + -0.0000015969 0.0000009023 -0.0011386380 -0.0000005141 + -0.0000021286 -0.0011386257 -0.0000002767 -0.0000000663 + -0.0001827917 -0.0000004822 0.0000011401 -0.0001827907 + 0.0000053555 -0.0000012706 0.0077435210 0.0000034025 + -0.0000064911 0.0077434961 -0.0000002498 0.0000005322 + -0.0002099026 -0.0000010249 -0.0000000219 -0.0002099033 + 0.0000001944 0.0000002712 -0.0007023620 0.0000000699 + -0.0000004082 -0.0007023531 + -0.1958942349 0.1643431460 0.0000009943 -0.0058663962 + -0.0015533768 0.0000004482 0.0181532682 -0.0098885167 + -0.0000016793 -0.0005401877 0.0005857339 0.0000005092 + -0.0240807124 0.0338527424 0.0000014831 -0.0017658416 + -0.0036938044 0.0000007398 0.7662879514 0.0051761917 + -0.0000238938 0.0010227596 0.0016444843 0.0000004220 + -0.0039201239 -0.0032233919 0.0000023260 0.0001816673 + -0.0003518510 -0.0000001345 0.0092821112 -0.0056578593 + 0.0000004847 0.0003944651 -0.0003651212 -0.0000006669 + -0.2133526878 -0.1858553029 0.0000217115 0.0002438593 + -0.0026919250 -0.0000001758 0.0003591068 0.0015215351 + -0.0000007732 0.0000868506 -0.0000176005 -0.0000000490 + -0.0462780827 -0.0286686017 0.0000024210 -0.0041259390 + 0.0015890134 -0.0000001512 0.0002588214 -0.0011658390 + -0.0000004521 -0.0000669317 -0.0001230660 -0.0000000794 + -0.0047813957 0.0046562148 -0.0000003623 0.0007419624 + 0.0002745212 0.0000002694 0.0004189667 0.0005507148 + 0.0000003220 -0.0001937336 0.0001098136 0.0000000688 + -0.0012176304 -0.0011004596 -0.0000000477 0.0001693619 + -0.0002043037 -0.0000002167 0.0017476072 -0.0010459126 + 0.0000001148 -0.0003348234 -0.0000701968 -0.0000001220 + -0.0003031432 -0.0000789141 0.0000000738 0.0000699531 + -0.0001416647 -0.0000000755 -0.3057029608 0.0215981628 + -0.0000052996 -0.0002597891 0.0000543904 -0.0000001155 + -0.0009519211 -0.0026221343 0.0000023683 0.0000546053 + -0.0000313987 -0.0000000217 0.0100968416 0.0126165776 + -0.0000004950 0.0000288120 -0.0000104848 0.0000000383 + 0.0000188528 -0.0000079200 0.0000000265 0.0000187111 + -0.0000035967 -0.0000000104 + 0.0987156823 -0.3486339517 0.0000105271 -0.0130921508 + 0.0186794871 0.0000031418 -0.0140787635 -0.0562878705 + 0.0000070977 0.0021310512 -0.0084002339 -0.0000046585 + 0.0807745785 0.0017196354 -0.0000028862 -0.0075814278 + 0.0032493641 0.0000021621 0.0051776508 0.8233046542 + -0.0000530414 0.0125370377 0.0078437934 0.0000011082 + 0.0138035712 0.0011687597 -0.0000023217 -0.0003531570 + 0.0069344997 0.0000032321 0.0150628186 -0.0543249255 + 0.0000033220 -0.0013241954 -0.0010036254 0.0000004896 + -0.0801552989 -0.3424340333 0.0000274905 -0.0007041619 + -0.0148238893 -0.0000018069 -0.0001343986 -0.0067055864 + -0.0000026805 -0.0037087935 -0.0020643349 -0.0000001269 + -0.1023189521 0.0307059763 0.0000007158 -0.0157227198 + 0.0061587119 -0.0000019242 -0.0002586978 0.0030506316 + 0.0000012071 0.0022354748 -0.0005410919 -0.0000010971 + 0.0035994746 0.0118898310 -0.0000009515 0.0025302594 + -0.0008947837 0.0000007627 -0.0007796671 -0.0002022248 + 0.0000004408 0.0000925539 -0.0001460133 0.0000000617 + -0.0016475980 0.0014562371 -0.0000003720 -0.0000687000 + -0.0001600334 -0.0000001127 0.0025237187 -0.0047927363 + 0.0000004623 -0.0019619336 0.0002783880 -0.0000004659 + 0.0004767611 -0.0001393590 -0.0000003677 -0.0001029551 + 0.0000003087 0.0000000139 0.0192968680 -0.0584121866 + 0.0000052952 -0.0001252264 0.0000727230 0.0000003363 + -0.0006062520 -0.0007325482 0.0000007243 -0.0000208989 + 0.0000271617 0.0000003386 -0.0141655211 -0.0159274370 + 0.0000036795 -0.0000883453 0.0000217005 0.0000001375 + 0.0000139887 0.0000692071 -0.0000000112 0.0000283250 + -0.0000042055 0.0000000774 + -0.0000006341 0.0000168668 -0.0495658097 0.0000009682 + -0.0000020586 0.0058510543 -0.0000048046 0.0000003388 + 0.0012445200 -0.0000005083 -0.0000002489 -0.0004361421 + 0.0000003654 -0.0000031798 0.0039066627 0.0000012901 + -0.0000003341 0.0028810437 -0.0000231606 -0.0000516790 + 0.1068564632 0.0000005932 -0.0000006998 -0.0002101846 + 0.0000027382 0.0000022338 0.0004844401 -0.0000002157 + -0.0000002623 -0.0002763658 -0.0000007327 0.0000021716 + -0.0064051877 -0.0000002285 0.0000001868 -0.0000265029 + 0.0000187903 0.0000335678 -0.0467616229 0.0000005921 + -0.0000002264 0.0007218687 -0.0000004950 -0.0000013614 + -0.0007560945 -0.0000001236 0.0000000265 0.0000611252 + 0.0000014085 0.0000002510 0.0059314317 0.0000006490 + 0.0000002674 -0.0009744012 -0.0000002812 0.0000013759 + 0.0000227140 -0.0000004082 0.0000006726 -0.0001104276 + -0.0000003333 -0.0000012216 0.0087742075 -0.0000007485 + 0.0000003663 -0.0003973814 -0.0000004376 -0.0000001910 + 0.0001474696 0.0000001262 -0.0000001735 -0.0000597308 + 0.0000003101 0.0000004788 -0.0008868140 0.0000000533 + 0.0000006178 -0.0000080319 -0.0000005529 0.0000010173 + -0.0012505893 0.0000015207 0.0000000238 0.0001710762 + 0.0000011334 0.0000000867 -0.0000152913 -0.0000002631 + 0.0000005329 0.0000203960 -0.0000008639 0.0000004138 + -0.0303817465 0.0000005579 -0.0000005397 -0.0006206403 + 0.0000010471 0.0000014117 0.0005952491 0.0000001668 + -0.0000000049 0.0000239401 0.0000009461 -0.0000007920 + 0.0012853167 0.0000009112 -0.0000000151 0.0001031111 + 0.0000006344 -0.0000000147 0.0000328805 -0.0000000103 + 0.0000000948 0.0000279941 + 0.0197871948 -0.0007509026 -0.0000015669 -0.4226991197 + -0.0103905541 -0.0000325812 -0.0079847406 -0.0014503367 + 0.0000038050 -0.0329360667 -0.0386556441 -0.0000151090 + -0.0479100919 0.0693118574 0.0000051299 0.0067103419 + -0.0035028688 -0.0000017749 0.0010218599 0.0125365745 + 0.0000001316 0.8085461022 0.0254982391 0.0000738479 + 0.0059416789 0.0024173546 -0.0000018743 -0.0039204972 + 0.0138029968 0.0000049311 -0.0460427607 -0.0115528512 + -0.0000051179 -0.0000810795 -0.0015525963 -0.0000009693 + -0.0106653517 -0.0059527223 0.0000005214 -0.2142521116 + -0.0805795659 -0.0000308683 -0.0002036281 -0.0038485839 + -0.0000007739 -0.0059203132 -0.0031557605 0.0000009373 + 0.0097472682 -0.0090489578 0.0000016314 0.0674097862 + -0.0476271892 0.0000023559 -0.0012768094 0.0016532567 + 0.0000011225 0.0030822367 0.0011003977 -0.0000007282 + -0.0016830479 0.0013636070 -0.0000001226 0.0055308423 + 0.0085591715 0.0000015004 -0.0002336962 0.0000740813 + 0.0000000860 0.0000029388 -0.0009768919 -0.0000003021 + 0.0020272978 -0.0000872238 -0.0000000629 0.0000084345 + -0.0001466883 -0.0000001129 0.0009570735 -0.0013407085 + 0.0000001291 -0.0041418102 -0.0003090132 -0.0000013995 + 0.0001085396 -0.0000843054 -0.0000000791 -0.0003244205 + 0.0004634241 0.0000002985 0.0000385298 0.0000179359 + -0.0000001573 -0.1208638294 0.1082167885 0.0000018381 + 0.0000529681 -0.0000222905 -0.0000003104 0.0004881096 + 0.0000861373 0.0000003672 0.0000617732 -0.0000727761 + -0.0000002244 -0.0104316043 -0.0240403608 -0.0000045784 + -0.0000095797 0.0000147031 -0.0000000290 0.0000575827 + 0.0000322662 0.0000001091 + 0.0107877956 -0.0069770954 -0.0000022772 0.0552376140 + -0.1218333865 -0.0000092757 -0.0029956619 -0.0009568514 + 0.0000013745 -0.0344642997 -0.0052012901 -0.0000047086 + 0.0223898842 0.0255470854 0.0000031994 0.0003839830 + -0.0052286055 -0.0000027894 0.0016417711 0.0078435656 + -0.0000001466 0.0254957206 0.7810279009 0.0001092692 + 0.0024190865 0.0011759752 -0.0000007988 -0.0032252976 + 0.0011679381 -0.0000012522 -0.0322707419 0.0010020096 + -0.0000030469 -0.0005938085 -0.0005297467 0.0000001759 + -0.0079402024 -0.0039134287 0.0000002638 -0.1862821650 + -0.3415166428 -0.0000628171 -0.0001570200 -0.0017738060 + -0.0000003348 -0.0014996184 -0.0004258388 0.0000018359 + 0.0082652690 -0.0077134630 0.0000005134 0.0260247426 + -0.0829796242 -0.0000061553 -0.0007043352 0.0006682307 + 0.0000006061 0.0001938451 0.0002269447 -0.0000000729 + -0.0008853901 0.0015302176 -0.0000000778 0.0096255047 + 0.0015784578 0.0000021739 0.0000942886 -0.0001064050 + -0.0000001179 0.0003508072 0.0002144241 -0.0000003930 + 0.0004573736 -0.0017912601 -0.0000001354 -0.0002812743 + 0.0000016706 0.0000001822 0.0005503398 -0.0010123354 + 0.0000001131 -0.0038890119 0.0010956141 -0.0000010801 + -0.0001258155 -0.0000387820 0.0000000700 -0.0000897728 + -0.0001167192 0.0000000636 0.0001953739 -0.0002246131 + 0.0000000774 0.1105185063 -0.2432472807 -0.0000212457 + -0.0000328314 0.0000297907 -0.0000001203 -0.0019305852 + -0.0021717610 -0.0000030057 0.0000038068 -0.0000082120 + -0.0000001379 0.0027410512 0.0046009886 0.0000000754 + -0.0000188189 0.0000241720 0.0000000006 0.0000098870 + 0.0000321618 -0.0000000050 + 0.0000042843 -0.0000008385 0.0058509886 -0.0000317424 + -0.0000130825 -0.0495649327 -0.0000004527 0.0000007575 + -0.0004361408 -0.0000082800 0.0000007603 0.0012445653 + 0.0000035050 0.0000061317 0.0039065428 0.0000016336 + -0.0000020369 0.0028810418 0.0000010921 0.0000008791 + -0.0002101846 0.0000729521 0.0001073691 0.1068582791 + 0.0000007535 0.0000008946 -0.0002763656 -0.0000009379 + -0.0000022077 0.0004844698 -0.0000067613 -0.0000007330 + -0.0064050810 -0.0000001886 0.0000002516 -0.0000264962 + -0.0000003793 -0.0000009019 0.0007218654 -0.0000448322 + -0.0000580811 -0.0467632875 -0.0000004719 -0.0000000265 + 0.0000611265 0.0000012079 0.0000010388 -0.0007560940 + 0.0000012464 -0.0000017432 -0.0009743841 0.0000050082 + -0.0000097295 0.0059311709 -0.0000010787 -0.0000000511 + -0.0001104312 -0.0000014315 -0.0000006450 0.0000227099 + -0.0000004881 0.0000009667 -0.0003973699 0.0000006394 + 0.0000009397 0.0087742059 0.0000007503 -0.0000000410 + -0.0000597324 -0.0000002622 0.0000010683 0.0001474708 + -0.0000002054 -0.0000017893 -0.0008868170 -0.0000009629 + -0.0000008774 -0.0000080328 0.0000010097 -0.0000021057 + 0.0001710676 -0.0000014229 0.0000004741 -0.0012505902 + -0.0000017644 -0.0000000407 0.0000203979 0.0000009350 + -0.0000023260 -0.0000152924 0.0000005845 -0.0000002106 + -0.0006206289 0.0000077212 -0.0000184001 -0.0303821488 + -0.0000001854 0.0000002407 0.0000239399 -0.0000014562 + -0.0000020595 0.0005952551 0.0000003471 -0.0000007581 + 0.0001031091 -0.0000001825 -0.0000020773 0.0012849278 + -0.0000006139 -0.0000000412 0.0000279941 0.0000004300 + -0.0000009685 0.0000328818 + -0.0329353552 -0.0386547453 0.0000117441 -0.0079847233 + -0.0014501776 -0.0000015277 -0.4226921838 -0.0103936470 + 0.0001749653 0.0197868935 -0.0007507892 -0.0000041227 + 0.0067104299 -0.0035029243 -0.0000011388 -0.0479103046 + 0.0693123938 0.0000443225 -0.0039203295 0.0138027440 + 0.0000027383 0.0059416807 0.0024173035 0.0000005539 + 0.8085380027 0.0255064709 -0.0003292639 0.0010218245 + 0.0125365912 0.0000045930 -0.0000811084 -0.0015525905 + 0.0000003122 -0.0460433678 -0.0115528675 0.0000153429 + -0.0059202780 -0.0031557225 -0.0000002812 -0.0002036269 + -0.0038485680 -0.0000007504 -0.2142524358 -0.0805822885 + 0.0000568062 -0.0106653165 -0.0059527350 0.0000014416 + 0.0030822360 0.0011004289 0.0000000258 -0.0012768018 + 0.0016532482 0.0000000053 0.0674103086 -0.0476272842 + -0.0000454331 0.0097472848 -0.0090490574 -0.0000095492 + 0.0000028947 -0.0009769508 -0.0000000200 -0.0002337276 + 0.0000740891 -0.0000000237 0.0055306509 0.0085590303 + 0.0000035525 -0.0016830732 0.0013635935 0.0000012131 + 0.0000084573 -0.0001466920 0.0000000492 0.0020273268 + -0.0000872206 -0.0000011404 -0.0003244158 0.0004634576 + 0.0000000027 0.0001085651 -0.0000843045 0.0000000219 + -0.0041416950 -0.0003089957 0.0000022401 0.0009570855 + -0.0013407055 -0.0000009905 0.0004881183 0.0000861596 + -0.0000002483 0.0000529759 -0.0000223008 0.0000002745 + -0.1208623392 0.1082132720 0.0000761070 0.0000385380 + 0.0000179355 -0.0000000752 0.0000575838 0.0000322608 + -0.0000000879 -0.0000095721 0.0000147007 0.0000000424 + -0.0104319796 -0.0240403262 -0.0000019509 0.0000617771 + -0.0000727862 0.0000002494 + -0.0344639412 -0.0052011599 0.0000153051 -0.0029957070 + -0.0009568086 -0.0000004708 0.0552348947 -0.1218337194 + -0.0000423290 0.0107879812 -0.0069770710 -0.0000073581 + 0.0003840122 -0.0052286409 -0.0000007984 0.0223902988 + 0.0255473460 -0.0000029863 -0.0032252152 0.0011680638 + 0.0000027734 0.0024191364 0.0011759791 0.0000005030 + 0.0255039792 0.7810281221 0.0001695297 0.0016417659 + 0.0078436449 0.0000029437 -0.0005938118 -0.0005297558 + -0.0000001844 -0.0322715632 0.0010018017 0.0000186331 + -0.0014996385 -0.0004258645 -0.0000011011 -0.0001570246 + -0.0017738164 -0.0000003850 -0.1862848943 -0.3415211459 + 0.0000025891 -0.0079402441 -0.0039134758 0.0000008854 + 0.0001938661 0.0002269592 0.0000000876 -0.0007043444 + 0.0006682357 -0.0000000106 0.0260255285 -0.0829804103 + -0.0000418693 0.0082653567 -0.0077136103 -0.0000065071 + 0.0003507943 0.0002143872 0.0000002877 0.0000942798 + -0.0001064002 0.0000000579 0.0096255029 0.0015785482 + -0.0000087728 -0.0008854424 0.0015302403 0.0000012469 + -0.0002812634 0.0000016595 -0.0000000664 0.0004574029 + -0.0017912970 -0.0000004270 -0.0000897733 -0.0001167055 + -0.0000000728 -0.0001258227 -0.0000387832 -0.0000000484 + -0.0038890101 0.0010956286 0.0000034503 0.0005503682 + -0.0010123647 -0.0000008174 -0.0019305075 -0.0021716881 + 0.0000024995 -0.0000328272 0.0000297833 0.0000001277 + 0.1105146883 -0.2432419360 -0.0001068449 0.0001953962 + -0.0002246161 -0.0000000072 0.0000098935 0.0000321527 + 0.0000000074 -0.0000188205 0.0000241703 0.0000000050 + 0.0027408922 0.0046007720 0.0000000245 0.0000038133 + -0.0000082249 0.0000001000 + 0.0000085523 0.0000128055 0.0012443937 0.0000042877 + 0.0000001697 -0.0004361435 0.0002026470 -0.0000126119 + -0.0495658668 -0.0000024671 -0.0000035519 0.0058510319 + -0.0000010421 -0.0000001178 0.0028810576 0.0000270879 + -0.0000242536 0.0039067670 0.0000020444 -0.0000016220 + 0.0004844405 -0.0000017031 0.0000002197 -0.0002763655 + -0.0003294404 0.0001690470 0.1068593673 -0.0000002181 + -0.0000021294 -0.0002101845 0.0000013337 0.0000007187 + -0.0000264989 0.0000076058 0.0000076597 -0.0064051173 + 0.0000017163 0.0000010401 -0.0007560856 -0.0000011769 + 0.0000012102 0.0000611259 0.0000235837 -0.0000425433 + -0.0467625345 0.0000022316 0.0000015267 0.0007218641 + 0.0000003601 -0.0000005034 0.0000227094 0.0000018285 + -0.0000018408 -0.0001104313 -0.0000176976 -0.0000094716 + 0.0059312921 -0.0000013446 0.0000007494 -0.0009743897 + 0.0000014669 0.0000000537 0.0001474654 -0.0000002949 + 0.0000001412 -0.0000597294 0.0000030914 -0.0000079201 + 0.0087742030 -0.0000006023 0.0000004948 -0.0003973723 + -0.0000001872 -0.0000011545 -0.0000080310 -0.0000005737 + 0.0000004701 -0.0008868265 -0.0000001221 0.0000003454 + -0.0000152899 -0.0000016066 -0.0000001010 0.0000203950 + 0.0000009725 0.0000007399 -0.0012506018 -0.0000001750 + 0.0000002333 0.0001710717 -0.0000011411 0.0000008689 + 0.0005952306 -0.0000010650 0.0000015471 0.0000239378 + 0.0000699306 -0.0001066151 -0.0303831730 -0.0000011560 + 0.0000003984 -0.0006206373 -0.0000005328 0.0000007208 + 0.0000328827 -0.0000017308 0.0000000533 0.0000279950 + 0.0000056788 0.0000131086 0.0012849385 -0.0000001421 + 0.0000001142 0.0001031097 + -0.0005401829 0.0005857418 -0.0000001943 0.0181533038 + -0.0098882337 -0.0000094061 -0.0058664329 -0.0015533370 + 0.0000034094 -0.1958919145 0.1643398354 0.0001296310 + -0.0017658034 -0.0036938368 -0.0000005107 -0.0240809708 + 0.0338526379 0.0000246828 0.0001816660 -0.0003518653 + -0.0000001862 -0.0039202968 -0.0032234644 -0.0000020341 + 0.0010227212 0.0016444782 -0.0000002690 0.7662594322 + 0.0051650970 -0.0002352555 0.0003944631 -0.0003651249 + 0.0000003645 0.0092818374 -0.0056575374 -0.0000090565 + 0.0000868593 -0.0000175869 0.0000000328 0.0003591061 + 0.0015215660 0.0000010104 0.0002438458 -0.0026918969 + -0.0000007742 -0.2133440363 -0.1858410046 -0.0000321071 + -0.0000669322 -0.0001230706 0.0000000074 0.0002588303 + -0.0011658709 -0.0000001213 -0.0041258549 0.0015889917 + 0.0000019963 -0.0462763474 -0.0286681344 0.0000063786 + -0.0001937248 0.0001098211 0.0000000288 0.0004189815 + 0.0005507230 -0.0000001900 0.0007419392 0.0002745142 + -0.0000005754 -0.0047814853 0.0046560590 0.0000076297 + 0.0001693572 -0.0002043000 0.0000000615 -0.0012176301 + -0.0011004793 -0.0000002945 0.0000699507 -0.0001416654 + -0.0000000016 -0.0003031517 -0.0000789149 -0.0000000032 + -0.0003348112 -0.0000701960 0.0000002763 0.0017476106 + -0.0010458134 -0.0000017054 0.0000545922 -0.0000313971 + -0.0000000062 -0.0009519306 -0.0026221827 -0.0000029272 + -0.0002598015 0.0000544073 0.0000000081 -0.3056862662 + 0.0215976006 0.0001178973 0.0000187077 -0.0000035916 + 0.0000000092 0.0000188500 -0.0000079205 -0.0000000286 + 0.0000288003 -0.0000104841 -0.0000000004 0.0100967189 + 0.0126164357 0.0000022232 + 0.0021310503 -0.0084002238 0.0000003682 -0.0140791648 + -0.0562876770 -0.0000268337 -0.0130920145 0.0186794944 + 0.0000074144 0.0987132752 -0.3486294351 -0.0001842686 + -0.0075814409 0.0032492705 0.0000009608 0.0807735878 + 0.0017193259 -0.0000295130 -0.0003531493 0.0069344999 + -0.0000000318 0.0138038142 0.0011686254 -0.0000027938 + 0.0125370511 0.0078438667 -0.0000023150 0.0051665666 + 0.8232826725 0.0003587427 -0.0013242432 -0.0010036252 + -0.0000003475 0.0150626193 -0.0543237445 -0.0000295084 + -0.0037088567 -0.0020643455 0.0000006533 -0.0001344094 + -0.0067057366 0.0000002731 -0.0007041217 -0.0148239546 + -0.0000046100 -0.0801422540 -0.3424163527 -0.0001164016 + 0.0022355242 -0.0005411042 0.0000000527 -0.0002586929 + 0.0030506966 0.0000001239 -0.0157226347 0.0061587358 + 0.0000109392 -0.1023166573 0.0307055208 0.0000495675 + 0.0000925514 -0.0001460502 -0.0000001058 -0.0007797076 + -0.0002022499 -0.0000003642 0.0025302288 -0.0008948133 + -0.0000018722 0.0035993092 0.0118895715 0.0000006850 + -0.0000686960 -0.0001600257 0.0000000852 -0.0016476340 + 0.0014562517 0.0000019636 -0.0001029629 0.0000003419 + 0.0000000071 0.0004767940 -0.0001393546 0.0000001619 + -0.0019618959 0.0002783927 0.0000012193 0.0025237343 + -0.0047926177 -0.0000028549 -0.0000209081 0.0000271637 + -0.0000002930 -0.0006062678 -0.0007325871 -0.0000011037 + -0.0001252277 0.0000727271 -0.0000000025 0.0192962190 + -0.0584132533 -0.0000247894 0.0000283218 -0.0000042002 + -0.0000000864 0.0000139938 0.0000692079 0.0000000158 + -0.0000883470 0.0000216994 -0.0000001622 -0.0141653544 + -0.0159267132 -0.0000049759 + -0.0000003681 -0.0000040367 -0.0004361401 -0.0000100526 + -0.0000216717 0.0012444658 -0.0000025326 0.0000065541 + 0.0058509690 0.0000996125 -0.0002142620 -0.0495660475 + -0.0000040385 0.0000017018 0.0028810558 0.0000432418 + -0.0000110450 0.0039065243 0.0000012633 0.0000034749 + -0.0002763661 0.0000039557 -0.0000031707 0.0004844695 + 0.0000052726 0.0000014088 -0.0002101854 -0.0002346112 + 0.0003595437 0.1068613862 -0.0000037287 0.0000002417 + -0.0000265045 -0.0000006404 -0.0000181201 -0.0064049637 + -0.0000013350 -0.0000013067 0.0000611262 0.0000014841 + -0.0000034621 -0.0007561012 0.0000013066 -0.0000064068 + 0.0007218632 0.0000139824 -0.0000822514 -0.0467638660 + -0.0000001567 0.0000002582 -0.0001104309 -0.0000011758 + 0.0000020368 0.0000227094 -0.0000047932 0.0000036413 + -0.0009743817 -0.0000276143 0.0000234315 0.0059310862 + -0.0000026768 0.0000024028 -0.0000597273 -0.0000031056 + 0.0000024387 0.0001474693 -0.0000012014 0.0000031886 + -0.0003973755 0.0000058627 0.0000048312 0.0087741744 + 0.0000002709 -0.0000001936 -0.0000080326 -0.0000005115 + 0.0000003151 -0.0008868442 0.0000017707 -0.0000038040 + 0.0000203944 0.0000044571 -0.0000000809 -0.0000152889 + 0.0000017195 -0.0000000751 0.0001710763 0.0000021434 + -0.0000061804 -0.0012506030 0.0000009704 -0.0000001145 + 0.0000239385 0.0000000702 -0.0000019261 0.0005952605 + 0.0000003043 -0.0000008942 -0.0006206358 0.0001154443 + -0.0000210323 -0.0303835021 0.0000008571 -0.0000017006 + 0.0000279946 0.0000022565 0.0000001267 0.0000328818 + 0.0000017438 0.0000000441 0.0001031074 -0.0000094475 + -0.0000139054 0.0012850435 + -0.0210967262 -0.0322793856 -0.0000005122 0.0552293019 + -0.0232998039 -0.0000016609 -0.0050055634 0.0014337179 + 0.0000013823 0.0000622243 0.0058741147 0.0000005580 + -0.2091901561 -0.1007219948 0.0000043557 -0.0007349859 + 0.0003496654 0.0000000506 0.0092851316 0.0150649382 + -0.0000006524 -0.0460448338 -0.0322741127 -0.0000062828 + -0.0000759208 -0.0005950241 -0.0000001311 0.0003972513 + -0.0013273890 -0.0000008203 0.8488127106 -0.0115913696 + 0.0000261587 0.0002221897 -0.0001769251 -0.0000000758 + -0.0520507598 0.0233671539 -0.0000000901 -0.0279558646 + 0.0874842728 0.0000048551 -0.0001776493 -0.0003405860 + 0.0000002714 0.0007308367 0.0006430229 0.0000006244 + -0.1557015549 0.1131868616 0.0000007967 -0.3878701682 + -0.0236569469 -0.0000263920 -0.0002698648 0.0002389677 + 0.0000001926 -0.0005723784 0.0001153692 0.0000002452 + 0.0227635576 0.0018502980 0.0000006521 -0.0224330264 + -0.0196389345 0.0000008206 -0.0000470527 0.0000323922 + -0.0000000030 -0.0000464124 0.0000862102 -0.0000000162 + -0.0078291818 0.0072987016 -0.0000021418 0.0000484150 + -0.0000190900 -0.0000000171 -0.0012427290 -0.0106203692 + 0.0000003978 0.0040356118 -0.0003481311 0.0000004585 + 0.0000231743 -0.0000113177 -0.0000000127 0.0000525455 + -0.0000410737 -0.0000000314 0.0004626088 0.0000265025 + -0.0000001460 -0.0000684828 -0.0002484979 -0.0000012755 + 0.0000785473 -0.0000015518 -0.0000001653 -0.0000453923 + -0.0000111358 -0.0000002095 -0.0043625226 -0.0006266282 + -0.0000007277 0.0006423473 0.0007692033 -0.0000004057 + -0.0000456571 -0.0000560560 -0.0000000232 0.0000204293 + 0.0000649313 -0.0000000271 + -0.0600157543 0.0284904404 0.0000027209 0.0044400551 + -0.0478320143 -0.0000025242 0.0034395425 0.0035755873 + 0.0000001204 0.0038727035 -0.0014929688 -0.0000014203 + -0.1007207253 -0.3061026195 -0.0000099778 0.0003488550 + -0.0004008010 -0.0000000724 -0.0056563881 -0.0543247090 + 0.0000014745 -0.0115532598 0.0010039607 -0.0000004737 + -0.0015536914 -0.0005259461 0.0000007234 -0.0003682274 + -0.0010044147 -0.0000004266 -0.0115938853 0.8376707611 + 0.0000136947 -0.0001719784 0.0000494097 0.0000000289 + 0.0758949636 0.0253758982 -0.0000011406 0.0349574036 + 0.0012735890 0.0000031105 0.0002045953 0.0008765152 + -0.0000001662 0.0000939698 -0.0000302266 -0.0000001756 + 0.0880370725 -0.3448110654 0.0000031036 0.0014923457 + -0.1126328873 -0.0000046479 0.0002653731 -0.0004041246 + -0.0000002640 0.0000972555 -0.0000990189 -0.0000000762 + 0.0021086979 -0.0309975462 -0.0000025642 -0.0198913311 + 0.0142071481 0.0000011929 0.0000914391 0.0000082334 + -0.0000000145 0.0000383886 0.0000080085 0.0000000366 + 0.0072974285 -0.0008044149 -0.0000000569 -0.0000189822 + 0.0000299737 0.0000000070 -0.0028907357 -0.0012335967 + 0.0000007781 -0.0080795172 -0.0065190946 -0.0000037857 + -0.0000628370 0.0000271716 0.0000000518 -0.0000003482 + 0.0000046163 -0.0000000095 0.0000033056 -0.0001749825 + 0.0000006890 -0.0002305542 0.0003587443 -0.0000001078 + 0.0000463350 -0.0000483962 0.0000001095 -0.0000663893 + 0.0000733515 0.0000001146 -0.0016383649 0.0007104936 + -0.0000000638 0.0017811396 -0.0042935182 -0.0000000148 + 0.0000288276 0.0000248299 0.0000000144 -0.0000267270 + -0.0000363872 0.0000000121 + 0.0000084296 -0.0000001083 0.0026559409 0.0000064826 + -0.0000127074 0.0026556827 0.0000003335 -0.0000007438 + 0.0059347597 0.0000005410 -0.0000006211 0.0059346738 + -0.0000121086 0.0000006874 -0.0582636662 -0.0000007624 + 0.0000005387 -0.0005900690 0.0000004653 0.0000031441 + -0.0064051877 -0.0000053965 -0.0000030280 -0.0064050811 + 0.0000003614 -0.0000002469 -0.0000264991 0.0000002804 + -0.0000001456 -0.0000265042 0.0000260585 0.0000133228 + 0.1323972215 -0.0000004530 0.0000005002 -0.0006992107 + -0.0000049966 -0.0000015362 0.0036220918 -0.0000009637 + 0.0000088355 0.0036215772 -0.0000001241 -0.0000000877 + -0.0003346098 0.0000000920 0.0000004236 -0.0003345991 + 0.0000026440 -0.0000011953 -0.0504909874 -0.0000154759 + -0.0000046484 -0.0504920490 0.0000000684 0.0000003125 + 0.0000753874 -0.0000002300 -0.0000001338 0.0000753833 + 0.0000003106 0.0000002569 0.0000018414 -0.0000069411 + -0.0000029935 0.0000020457 -0.0000001850 -0.0000000770 + 0.0000752829 0.0000000278 0.0000001446 0.0000752797 + -0.0000000414 0.0000006387 -0.0012967529 -0.0000000777 + 0.0000001375 -0.0000206131 -0.0000001515 0.0000002679 + 0.0016385933 0.0000017679 -0.0000004972 0.0016385307 + 0.0000003651 0.0000000317 -0.0000137488 0.0000000447 + -0.0000001307 -0.0000137479 0.0000003411 -0.0000000352 + -0.0007093630 0.0000000139 0.0000001142 -0.0007093415 + 0.0000002130 -0.0000002911 0.0001338839 0.0000000377 + -0.0000000867 0.0001338815 -0.0000001843 0.0000004831 + 0.0080802835 -0.0000010036 -0.0000005033 0.0080802986 + 0.0000001978 -0.0000000230 -0.0000003055 0.0000000191 + 0.0000000009 -0.0000003036 + 0.0000621846 0.0058739607 0.0000041871 -0.0050054853 + 0.0014337614 0.0000033744 0.0552295076 -0.0233001239 + -0.0000283389 -0.0210956804 -0.0322786040 -0.0000040073 + -0.0007349789 0.0003496709 0.0000001519 -0.2091888404 + -0.1007194260 0.0000100774 0.0003972564 -0.0013273492 + 0.0000000754 -0.0000759036 -0.0005950164 -0.0000001032 + -0.0460454282 -0.0322749315 0.0000073381 0.0092848501 + 0.0150647513 0.0000005461 0.0002221882 -0.0001769331 + -0.0000003425 0.8488304968 -0.0115902151 -0.0003039823 + 0.0007308202 0.0006429955 -0.0000007525 -0.0001776588 + -0.0003405918 -0.0000004713 -0.0279570175 0.0874865823 + 0.0000443450 -0.0520494065 0.0233665549 0.0000317799 + -0.0005723652 0.0001153704 0.0000000533 -0.0002698679 + 0.0002389671 0.0000000375 -0.3878913172 -0.0236573031 + 0.0001451605 -0.1556997247 0.1131825287 0.0000874589 + -0.0000464197 0.0000861988 0.0000000976 -0.0000470593 + 0.0000323910 0.0000000628 -0.0224334585 -0.0196394005 + -0.0000005827 0.0227636966 0.0018506624 -0.0000086766 + 0.0000484195 -0.0000190953 -0.0000000175 -0.0078294193 + 0.0072989450 0.0000076574 0.0000525457 -0.0000410697 + -0.0000000107 0.0000231745 -0.0000113181 -0.0000000052 + 0.0040356688 -0.0003481593 -0.0000013940 -0.0012426540 + -0.0106205430 -0.0000037189 -0.0000453839 -0.0000111375 + 0.0000002712 0.0000785446 -0.0000015434 0.0000001865 + -0.0000684787 -0.0002485174 0.0000009072 0.0004625983 + 0.0000265032 -0.0000003268 0.0000204300 0.0000649313 + 0.0000000407 -0.0000456605 -0.0000560572 0.0000000132 + 0.0006423471 0.0007692065 0.0000036184 -0.0043625206 + -0.0006266458 0.0000052899 + 0.0038726483 -0.0014928931 -0.0000031885 0.0034395379 + 0.0035754658 -0.0000023985 0.0044402060 -0.0478310363 + -0.0000204751 -0.0600141665 0.0284899692 0.0000314990 + 0.0003488623 -0.0004007775 0.0000000110 -0.1007191363 + -0.3060984943 -0.0000563716 -0.0003682378 -0.0010044200 + 0.0000001505 -0.0015536906 -0.0005259363 -0.0000003527 + -0.0115532889 0.0010037344 0.0000081938 -0.0056560647 + -0.0543235378 -0.0000196021 -0.0001719701 0.0000494041 + 0.0000003513 -0.0115927511 0.8376567418 0.0002891225 + 0.0000939731 -0.0000302117 0.0000002473 0.0002046004 + 0.0008765142 0.0000006183 0.0349582209 0.0012732517 + -0.0000176172 0.0758926825 0.0253755459 -0.0000189344 + 0.0000972589 -0.0000990144 -0.0000000327 0.0002653780 + -0.0004041367 -0.0000000365 0.0014929852 -0.1126314314 + -0.0000213753 0.0880332515 -0.3448041747 -0.0001618003 + 0.0000383949 0.0000080088 -0.0000000779 0.0000914468 + 0.0000082422 -0.0000000516 -0.0198915580 0.0142071195 + 0.0000124145 0.0021087694 -0.0309965168 -0.0000114452 + -0.0000189733 0.0000299745 0.0000000227 0.0072976111 + -0.0008043863 -0.0000026764 -0.0000003561 0.0000046340 + 0.0000000165 -0.0000628397 0.0000271688 -0.0000000111 + -0.0080796507 -0.0065191274 0.0000032320 -0.0028907396 + -0.0012337993 -0.0000008193 -0.0000664038 0.0000733528 + -0.0000001061 0.0000463313 -0.0000483951 -0.0000002121 + -0.0002305644 0.0003587637 0.0000006347 0.0000033046 + -0.0001749872 -0.0000005045 -0.0000267333 -0.0000363729 + -0.0000000129 0.0000288235 0.0000248309 -0.0000000140 + 0.0017812173 -0.0042935269 -0.0000057832 -0.0016383792 + 0.0007104539 -0.0000026148 + 0.0000027618 -0.0000029542 0.0059346982 0.0000044163 + -0.0000002689 0.0059346246 -0.0000250091 0.0000006015 + 0.0026555034 -0.0000258250 0.0000243134 0.0026555032 + 0.0000015040 -0.0000001628 -0.0005900740 0.0000278699 + -0.0000669496 -0.0582636017 0.0000001874 0.0000022665 + -0.0000265036 -0.0000016574 -0.0000002982 -0.0000264966 + 0.0000150645 0.0000192444 -0.0064051165 -0.0000087836 + -0.0000286067 -0.0064049646 -0.0000015013 0.0000018794 + -0.0006992108 -0.0003029564 0.0002899464 0.1323965564 + 0.0000013452 -0.0000011426 -0.0003346087 0.0000003992 + 0.0000011739 -0.0003345980 0.0000263500 -0.0000412146 + 0.0036220166 0.0000587850 0.0000009842 0.0036214831 + -0.0000015412 0.0000002971 0.0000753855 -0.0000010645 + 0.0000002769 0.0000753844 0.0001446568 -0.0000123522 + -0.0504903104 0.0000742094 -0.0001669635 -0.0504913962 + -0.0000026923 0.0000026245 0.0000752825 0.0000005255 + 0.0000014645 0.0000752794 0.0000046816 0.0000181337 + 0.0000022932 -0.0000081240 -0.0000106227 0.0000017561 + -0.0000008351 -0.0000012516 -0.0000206126 0.0000049669 + -0.0000063075 -0.0012968067 0.0000024049 -0.0000053641 + -0.0000137484 -0.0000007362 -0.0000000741 -0.0000137480 + -0.0000066880 -0.0000029068 0.0016384844 0.0000019866 + -0.0000019595 0.0016386012 0.0000019052 -0.0000003571 + 0.0001338854 0.0000005379 -0.0000008041 0.0001338824 + 0.0000000737 -0.0000002880 -0.0007093570 0.0000008104 + 0.0000000167 -0.0007093356 0.0000011622 -0.0000026284 + -0.0000003033 0.0000011395 -0.0000000271 -0.0000003063 + 0.0000047298 -0.0000051882 0.0080802628 0.0000049407 + -0.0000045303 0.0080802162 + 0.0636148727 -0.0530835880 -0.0000017961 0.0083147353 + -0.0103009547 -0.0000013678 0.0076102618 0.0127225387 + -0.0000031592 -0.0009300607 0.0040910778 0.0000022167 + -0.0453966764 -0.0118267247 0.0000020688 0.0023498789 + -0.0017024965 -0.0000002244 -0.2133518717 -0.0801537209 + 0.0000197493 -0.0106651383 -0.0079398549 -0.0000012139 + -0.0059232625 -0.0014990022 0.0000013238 0.0000855640 + -0.0037095813 -0.0000018733 -0.0520535939 0.0758922405 + -0.0000045091 0.0007305631 0.0000926121 -0.0000004273 + 0.8212613033 0.0186090958 -0.0000059055 -0.0007117100 + 0.0169824477 0.0000018523 0.0002671476 0.0028556604 + 0.0000012012 0.0020511391 0.0011228597 0.0000001470 + -0.4462231657 -0.0115761659 -0.0000090238 0.0230707885 + -0.0063976821 0.0000021561 0.0001179353 -0.0013833375 + -0.0000006129 -0.0013035415 0.0003524346 0.0000006092 + -0.0257449336 -0.0310087093 0.0000022742 -0.0053870259 + 0.0023609883 -0.0000017303 0.0002902452 -0.0000614985 + -0.0000002610 -0.0000405344 -0.0000708481 -0.0000001136 + 0.0031717783 -0.0042419886 0.0000006602 0.0000236461 + 0.0001499153 0.0000001066 -0.0049925951 0.0138094133 + -0.0000009438 0.0036552440 -0.0006108754 0.0000009607 + -0.0001464675 0.0001145087 0.0000001446 0.0000330620 + 0.0000986696 0.0000000461 -0.0136109804 -0.0254101011 + 0.0000021257 -0.0000033342 -0.0000833752 -0.0000003594 + -0.0000011227 -0.0001096682 -0.0000000850 -0.0000084392 + 0.0000071901 -0.0000001961 -0.1102395712 0.1018947328 + -0.0000037677 0.0000833973 -0.0000083241 -0.0000001012 + 0.0000177138 0.0000140698 0.0000000588 -0.0000152515 + 0.0000080418 -0.0000000299 + 0.0185936602 -0.0776606123 0.0000041191 0.0054941477 + -0.0066356331 -0.0000003745 0.0088232837 0.0041622947 + -0.0000018265 -0.0004809716 0.0027760415 0.0000014955 + -0.0282229843 0.0007301614 0.0000023196 0.0007553296 + -0.0022609619 -0.0000000840 -0.1858541757 -0.3424322645 + 0.0000343466 -0.0059510845 -0.0039160642 -0.0000006160 + -0.0031567422 -0.0004272496 0.0000000915 -0.0000153760 + -0.0020651078 -0.0000010079 0.0233648765 0.0253763361 + -0.0000012227 0.0006419150 -0.0000311939 -0.0000005222 + 0.0186061825 0.7838471413 -0.0000446197 0.0008627908 + 0.0078719028 0.0000010541 -0.0000733668 0.0016067531 + 0.0000007276 0.0011225665 0.0005880645 0.0000000710 + 0.0660447861 -0.1280346363 0.0000015474 0.0116361052 + -0.0080062817 0.0000007023 0.0002039999 -0.0004903240 + -0.0000002376 -0.0007542985 0.0001334064 0.0000003050 + -0.0278585212 0.0013806002 -0.0000000739 -0.0005333567 + -0.0022354886 0.0000000092 -0.0000015619 -0.0003802865 + -0.0000001675 0.0001341030 -0.0002398193 -0.0000002447 + -0.0068569188 -0.0041035408 0.0000000206 -0.0001218391 + 0.0002301732 0.0000001904 -0.0025493613 0.0005954625 + -0.0000001542 0.0006828462 0.0003145760 0.0000000555 + 0.0000615873 0.0001403939 0.0000000149 -0.0000611387 + 0.0001982800 0.0000001312 0.0031940224 0.0050484426 + -0.0000012300 -0.0000058906 -0.0000237809 -0.0000002584 + -0.0002006002 -0.0000209188 0.0000002285 -0.0000059421 + 0.0000055686 -0.0000000976 0.1023050142 -0.2558089644 + 0.0000053141 0.0001827560 -0.0002447196 -0.0000000344 + 0.0000125902 0.0000155537 0.0000000444 -0.0000184331 + -0.0000033042 -0.0000000167 + -0.0000017762 0.0000063192 0.0030426780 -0.0000004788 + 0.0000014881 -0.0009085094 -0.0000001938 -0.0000008563 + 0.0080486614 0.0000005980 -0.0000004872 -0.0001750294 + 0.0000029697 -0.0000008998 -0.0062641777 0.0000001133 + 0.0000014382 -0.0001019549 0.0000212464 0.0000270088 + -0.0467616235 0.0000004056 0.0000005420 0.0007218652 + -0.0000000850 -0.0000007861 -0.0007560854 0.0000000955 + 0.0000008229 0.0000611260 0.0000000692 -0.0000010000 + 0.0036220918 -0.0000003697 0.0000004510 -0.0003346092 + -0.0000050656 -0.0000437179 0.1105589564 -0.0000003984 + -0.0000002711 -0.0001081415 -0.0000004573 0.0000007362 + -0.0001429168 -0.0000000729 -0.0000003123 0.0001355075 + -0.0000102422 0.0000026187 -0.0460767614 -0.0000013197 + -0.0000000952 0.0058155675 0.0000005432 -0.0000007472 + 0.0000927587 0.0000003631 -0.0000003568 -0.0000128391 + 0.0000002334 0.0000022359 0.0004082205 0.0000008435 + 0.0000001452 -0.0004116069 0.0000005841 0.0000000112 + 0.0000478327 -0.0000001631 0.0000004109 -0.0001590315 + -0.0000006288 -0.0000004171 0.0015845760 -0.0000001830 + -0.0000005395 0.0000225314 0.0000011340 -0.0000024817 + -0.0002173910 -0.0000016121 -0.0000000580 -0.0000003754 + -0.0000012434 -0.0000000729 -0.0000187460 0.0000003272 + -0.0000007040 0.0000441121 -0.0000003371 0.0000007708 + 0.0012527556 -0.0000001911 0.0000002456 0.0001106216 + -0.0000003547 0.0000002818 0.0000986916 0.0000000191 + 0.0000000046 -0.0000551617 -0.0000034497 0.0000084361 + -0.0325245948 -0.0000003714 0.0000000326 -0.0006705428 + -0.0000006093 -0.0000000202 0.0000503858 0.0000000577 + -0.0000001765 -0.0000188414 + -0.0019475397 0.0005554673 -0.0000005028 -0.0376366641 + -0.0301137569 -0.0000092833 0.0006691505 0.0002882471 + -0.0000002584 -0.0036089572 0.0034287217 0.0000003245 + 0.0077065029 -0.0026747610 -0.0000009311 -0.0010258333 + -0.0008677747 -0.0000003119 0.0002430165 -0.0007052408 + -0.0000000197 -0.2142510329 -0.1862781569 -0.0000443904 + -0.0002045854 -0.0001568790 0.0000000388 0.0003584056 + -0.0001337221 0.0000005066 -0.0279496391 0.0349584909 + -0.0000010098 -0.0001757602 0.0002076800 0.0000003039 + -0.0007114924 0.0008621880 -0.0000000090 0.7763447381 + -0.0029976757 0.0000900668 -0.0000130535 0.0001282840 + 0.0000000170 0.0002673294 -0.0000737930 -0.0000001510 + -0.0042114346 -0.0014898702 -0.0000006038 -0.2091114250 + 0.1801021499 -0.0000108933 0.0000202448 -0.0001167122 + -0.0000000344 0.0000826967 0.0001890198 0.0000000281 + -0.0035397045 0.0003506487 -0.0000000417 0.0192837882 + -0.0061999144 0.0000026219 -0.0002264311 0.0000445260 + 0.0000001935 -0.0002316978 -0.0002508546 -0.0000000558 + 0.0015980411 -0.0076130365 0.0000004306 0.0001809988 + -0.0000451145 -0.0000001039 0.0009130426 -0.0006330763 + 0.0000000639 -0.0048579120 -0.0024827090 -0.0000014240 + 0.0001540778 -0.0000036148 -0.0000001084 0.0000181472 + 0.0001395494 0.0000000683 0.0000144453 0.0000030847 + 0.0000000755 0.0102210935 0.0146577626 0.0000041564 + 0.0000027765 -0.0000012715 0.0000000094 0.0001064260 + -0.0001503696 -0.0000002584 -0.0002515645 0.0000222969 + 0.0000000240 -0.3082364512 0.0070567610 -0.0000285197 + -0.0000002200 -0.0000117720 -0.0000000024 0.0000064765 + 0.0000051974 -0.0000000158 + -0.0152339519 0.0036254388 0.0000007040 -0.1017863453 + 0.0235911829 -0.0000052089 0.0048650818 0.0011755129 + -0.0000022246 0.0073288379 0.0153825171 0.0000058049 + 0.0137243920 -0.0523747264 -0.0000052762 -0.0033240274 + 0.0011126395 0.0000001701 -0.0026925162 -0.0148241369 + 0.0000000945 -0.0805816573 -0.3415142751 -0.0000587461 + -0.0038463454 -0.0017702359 0.0000013701 0.0015240254 + -0.0067080129 -0.0000021000 0.0874858343 0.0012735200 + 0.0000090749 -0.0003378425 0.0008742075 0.0000007499 + 0.0169853735 0.0078740743 -0.0000007235 -0.0029987049 + 0.8287332706 0.0000658894 0.0001270956 0.0026548120 + 0.0000004542 0.0028561710 0.0016068143 -0.0000008677 + -0.0195196151 0.0192740881 -0.0000018693 0.1024817871 + -0.3651313805 -0.0000023913 0.0009937967 -0.0011948475 + -0.0000008137 -0.0013992424 -0.0004574442 0.0000004162 + 0.0032534167 -0.0040878692 0.0000004325 -0.0093398249 + -0.0436469665 -0.0000075567 -0.0001540229 -0.0000536479 + 0.0000001622 -0.0003063692 0.0001407598 0.0000002044 + -0.0050018443 -0.0025319854 0.0000001598 0.0002232635 + 0.0000696287 -0.0000000719 -0.0019317443 0.0030605644 + -0.0000003496 0.0138648673 0.0004556007 0.0000048320 + 0.0001436777 0.0000782482 -0.0000000805 0.0001932511 + -0.0000240940 -0.0000000795 -0.0000779140 -0.0000416371 + 0.0000002092 -0.0139499439 -0.0187761046 -0.0000011421 + 0.0000092462 -0.0000010906 0.0000002216 -0.0000627571 + -0.0001258512 -0.0000000294 -0.0001706859 0.0000917746 + 0.0000002985 0.0066403056 -0.0578221855 -0.0000016285 + 0.0000073886 -0.0000169668 0.0000000069 0.0000075429 + 0.0000288040 -0.0000000955 + -0.0000026917 0.0000002629 -0.0009084911 -0.0000159861 + -0.0000018012 0.0030424220 0.0000009052 -0.0000002684 + -0.0001750378 0.0000002530 0.0000007887 0.0080486596 + 0.0000040289 -0.0000057582 -0.0062640962 -0.0000013240 + -0.0000006474 -0.0001019630 -0.0000004438 -0.0000018982 + 0.0007218686 -0.0000311590 -0.0000626656 -0.0467632878 + -0.0000008331 -0.0000005288 0.0000611263 0.0000007342 + 0.0000000656 -0.0007561015 0.0000047574 0.0000027610 + 0.0036215772 -0.0000005043 0.0000002353 -0.0003345983 + 0.0000012237 0.0000011531 -0.0001081415 0.0000886851 + 0.0000645956 0.1105616365 0.0000002856 0.0000002901 + 0.0001355088 -0.0000005203 0.0000003835 -0.0001429111 + -0.0000026097 0.0000021977 0.0058155156 -0.0000170307 + 0.0000053536 -0.0460792398 0.0000004674 -0.0000001677 + -0.0000128398 0.0000006799 -0.0000001691 0.0000927587 + 0.0000004129 -0.0000008618 -0.0004116171 0.0000018006 + -0.0000035182 0.0004083831 -0.0000003884 0.0000000039 + -0.0001590322 0.0000002513 -0.0000004512 0.0000478288 + -0.0000003681 -0.0000003208 0.0015845395 0.0000003770 + 0.0000004158 0.0000225320 -0.0000004759 0.0000012585 + -0.0000003607 0.0000013352 -0.0000007514 -0.0002173848 + 0.0000008031 0.0000000196 0.0000441127 -0.0000004497 + 0.0000010846 -0.0000187453 -0.0000002207 0.0000000514 + 0.0001106200 -0.0000017674 -0.0000013633 0.0012529544 + 0.0000000529 -0.0000000863 -0.0000551612 -0.0000004963 + 0.0000001482 0.0000986910 -0.0000001852 0.0000003429 + -0.0006705381 -0.0000295795 -0.0000007397 -0.0325227341 + 0.0000002355 0.0000000233 -0.0000188416 -0.0000002550 + 0.0000005618 0.0000503881 + -0.0036089171 0.0034286656 0.0000056014 0.0006691463 + 0.0002882294 0.0000000577 -0.0376361138 -0.0301134830 + 0.0000112654 -0.0019474648 0.0005554469 0.0000012100 + -0.0010258409 -0.0008677745 0.0000003173 0.0077062807 + -0.0026747347 -0.0000053984 0.0003583975 -0.0001337113 + -0.0000009697 -0.0002045814 -0.0001568763 -0.0000000182 + -0.2142513672 -0.1862808886 0.0000254539 0.0002430057 + -0.0007052045 -0.0000001224 -0.0001757591 0.0002076712 + -0.0000002795 -0.0279507940 0.0349592990 0.0000272467 + 0.0002673151 -0.0000737970 -0.0000000503 -0.0000130486 + 0.0001282735 0.0000000979 0.7763258039 -0.0030010034 + -0.0003430826 -0.0007115460 0.0008621633 0.0000006742 + 0.0000827004 0.0001890242 0.0000000536 0.0000202509 + -0.0001167029 -0.0000000282 -0.2091120239 0.1801072202 + 0.0001474401 -0.0042113873 -0.0014898227 0.0000037264 + -0.0002316892 -0.0002508569 0.0000000597 -0.0002264348 + 0.0000445177 -0.0000001524 0.0192840855 -0.0061997592 + -0.0000122144 -0.0035397578 0.0003506746 0.0000014160 + 0.0001809971 -0.0000451020 0.0000000228 0.0015980761 + -0.0076131562 -0.0000036187 0.0000181412 0.0001395619 + -0.0000000235 0.0001540912 -0.0000036123 0.0000000679 + -0.0048580337 -0.0024827425 0.0000020353 0.0009130454 + -0.0006330648 -0.0000006799 0.0001064201 -0.0001503701 + 0.0000001920 0.0000027775 -0.0000012725 -0.0000000254 + 0.0102210242 0.0146577566 -0.0000012256 0.0000144452 + 0.0000030855 -0.0000000642 0.0000064738 0.0000052044 + 0.0000000325 -0.0000002169 -0.0000117712 -0.0000000097 + -0.3082159400 0.0070566126 0.0001411649 -0.0002515615 + 0.0000222999 -0.0000001724 + 0.0073287920 0.0153822044 -0.0000053326 0.0048650660 + 0.0011753957 0.0000009582 -0.1017862406 0.0235911866 + 0.0000528474 -0.0152338863 0.0036253833 0.0000071213 + -0.0033240783 0.0011126330 0.0000016068 0.0137239147 + -0.0523755528 -0.0000192778 0.0015239481 -0.0067078567 + -0.0000010978 -0.0038463508 -0.0017702388 -0.0000007117 + -0.0805844492 -0.3415188440 -0.0000413574 -0.0026924936 + -0.0148242211 -0.0000055223 -0.0003378459 0.0008741925 + -0.0000000998 0.0874880356 0.0012731515 -0.0000432499 + 0.0028561155 0.0016068237 0.0000005261 0.0001271286 + 0.0026547785 0.0000005656 -0.0030019991 0.8287512992 + 0.0002420307 0.0169852959 0.0078741025 -0.0000025565 + -0.0013992152 -0.0004574367 -0.0000001117 0.0009938143 + -0.0011948158 -0.0000000540 0.1024860335 -0.3651422922 + -0.0001681568 -0.0195197902 0.0192744712 0.0000150036 + -0.0003063242 0.0001407850 -0.0000000689 -0.0001540292 + -0.0000536519 -0.0000000432 -0.0093396337 -0.0436467377 + -0.0000076276 0.0032534970 -0.0040879289 -0.0000032546 + 0.0002232713 0.0000696840 0.0000000024 -0.0050018579 + -0.0025319732 0.0000001114 0.0001932143 -0.0000240413 + 0.0000000102 0.0001437544 0.0000782512 0.0000000372 + 0.0138649595 0.0004556066 -0.0000094694 -0.0019318381 + 0.0030606923 0.0000023612 -0.0000628046 -0.0001258351 + -0.0000000562 0.0000092591 -0.0000011123 -0.0000001862 + -0.0139497874 -0.0187760261 -0.0000030205 -0.0000779134 + -0.0000416333 -0.0000002566 0.0000075192 0.0000288501 + 0.0000000707 0.0000074283 -0.0000169633 -0.0000000058 + 0.0066401833 -0.0578241336 -0.0000117739 -0.0001706929 + 0.0000918035 0.0000000385 + 0.0000093671 0.0000003110 0.0080486107 0.0000032235 + -0.0000004516 -0.0001750255 -0.0000087927 0.0000215236 + 0.0030423986 -0.0000011773 -0.0000002655 -0.0009085102 + 0.0000028326 0.0000015052 -0.0001019792 -0.0000013833 + -0.0000149621 -0.0062641066 -0.0000004974 -0.0000016384 + -0.0007560937 0.0000007760 0.0000015343 0.0000611265 + 0.0000556757 0.0000051256 -0.0467625333 -0.0000008207 + -0.0000055175 0.0007218637 0.0000033367 0.0000003039 + -0.0003346094 0.0000459398 -0.0000184306 0.0036220142 + 0.0000027417 0.0000022591 -0.0001429175 -0.0000018680 + 0.0000017014 0.0001355084 -0.0003434144 0.0002420700 + 0.1105619862 0.0000070066 0.0000034191 -0.0001081264 + 0.0000004211 -0.0000009532 0.0000927580 0.0000018131 + -0.0000023192 -0.0000128351 0.0001223248 -0.0002085532 + -0.0460781237 0.0000001698 0.0000038519 0.0058155748 + 0.0000030789 0.0000001855 0.0000478319 0.0000025959 + -0.0000004941 -0.0001590305 -0.0000102408 -0.0000144137 + 0.0004084177 0.0000047539 -0.0000028355 -0.0004116305 + -0.0000015702 -0.0000024751 0.0000225319 -0.0000030888 + 0.0000014295 0.0015845524 -0.0000000286 -0.0000002541 + -0.0000187463 -0.0000065167 -0.0000002226 0.0000441104 + 0.0000022254 0.0000018324 -0.0002173911 -0.0000018153 + 0.0000026424 -0.0000003596 -0.0000037297 0.0000001239 + 0.0000986955 -0.0000018321 0.0000025638 -0.0000551632 + -0.0000093807 -0.0000092049 0.0012528339 -0.0000027602 + 0.0000002676 0.0001106234 -0.0000008920 0.0000012157 + 0.0000503881 -0.0000037635 0.0000000104 -0.0000188422 + 0.0001364649 -0.0000127279 -0.0325252589 -0.0000011753 + 0.0000018430 -0.0006705432 + -0.0009300610 0.0040909858 -0.0000001567 0.0076102615 + 0.0127222951 0.0000088583 0.0083146451 -0.0103008903 + -0.0000066646 0.0636133940 -0.0530824196 -0.0000448995 + 0.0023498357 -0.0017024535 -0.0000015113 -0.0453955931 + -0.0118264168 0.0000078119 0.0000855375 -0.0037095160 + 0.0000002940 -0.0059232795 -0.0014990067 0.0000000781 + -0.0106651198 -0.0079399142 0.0000020510 -0.2133432491 + -0.0801407210 0.0000146232 0.0007305769 0.0000926006 + 0.0000000369 -0.0520522373 0.0758898828 0.0000579140 + 0.0020511161 0.0011228618 -0.0000004065 0.0002671795 + 0.0028556716 -0.0000002030 -0.0007117398 0.0169823993 + 0.0000056825 0.8212226575 0.0185924954 -0.0002656351 + -0.0013035360 0.0003524669 0.0000000386 0.0001179443 + -0.0013833239 0.0000000406 0.0230706865 -0.0063976738 + -0.0000113940 -0.4461932921 -0.0115766227 0.0001566844 + -0.0000405222 -0.0000708543 0.0000000223 0.0002902416 + -0.0000614835 0.0000001865 -0.0053870189 0.0023610028 + 0.0000044781 -0.0257443596 -0.0310080583 -0.0000051642 + 0.0000236665 0.0001499422 -0.0000000503 0.0031717909 + -0.0042420455 -0.0000029911 0.0000330392 0.0000987150 + 0.0000000054 -0.0001464195 0.0001145079 -0.0000000616 + 0.0036552958 -0.0006108774 -0.0000025347 -0.0049928298 + 0.0138094237 0.0000085119 -0.0000084653 0.0000071916 + 0.0000001585 -0.0000011071 -0.0001096922 0.0000000946 + -0.0000033363 -0.0000833662 0.0000003782 -0.0136110444 + -0.0254097855 -0.0000062100 -0.0000152633 0.0000080689 + 0.0000000233 0.0000177477 0.0000140710 -0.0000000378 + 0.0000834167 -0.0000083149 -0.0000001687 -0.1102405591 + 0.1018988537 0.0000801171 + -0.0004809630 0.0027760158 -0.0000000281 0.0088233399 + 0.0041623513 -0.0000033647 0.0054941011 -0.0066355938 + -0.0000043057 0.0185934976 -0.0776585495 -0.0000452780 + 0.0007553070 -0.0022609426 -0.0000011881 -0.0282224272 + 0.0007301687 0.0000112825 -0.0000153783 -0.0020650932 + 0.0000001265 -0.0031567934 -0.0004272298 0.0000013000 + -0.0059510831 -0.0039161034 0.0000008604 -0.1858398869 + -0.3424145757 -0.0000824690 0.0006419341 -0.0000311986 + 0.0000004021 0.0233642739 0.0253760029 0.0000017948 + 0.0011225862 0.0005880599 -0.0000003179 -0.0000733680 + 0.0016067795 0.0000000332 0.0008627623 0.0078719570 + 0.0000019870 0.0185896195 0.7838358126 0.0003222961 + -0.0007543157 0.0001334065 0.0000000484 0.0002039873 + -0.0004903395 -0.0000000777 0.0116360162 -0.0080063183 + -0.0000108958 0.0660431633 -0.1280369703 -0.0000623052 + 0.0001341050 -0.0002398009 0.0000001557 -0.0000015428 + -0.0003802770 0.0000000090 -0.0005333975 -0.0022354319 + -0.0000005653 -0.0278581823 0.0013807365 0.0000110657 + -0.0001218468 0.0002301605 -0.0000000597 -0.0068570172 + -0.0041036019 0.0000003504 -0.0000611309 0.0001982550 + -0.0000000420 0.0000615606 0.0001403911 0.0000000230 + 0.0006828584 0.0003145650 -0.0000001815 -0.0025494693 + 0.0005953711 0.0000014973 -0.0000059293 0.0000055668 + 0.0000001051 -0.0002006021 -0.0000209177 -0.0000002114 + -0.0000058849 -0.0000237923 0.0000002364 0.0031940584 + 0.0050482146 0.0000020006 -0.0000184287 -0.0000033129 + 0.0000000271 0.0000125823 0.0000155537 -0.0000000617 + 0.0001827660 -0.0002447215 0.0000001591 0.1023091284 + -0.2558145978 -0.0001444088 + -0.0000031566 0.0000026404 -0.0001750275 0.0000041922 + -0.0000046701 0.0080486071 -0.0000016837 0.0000009194 + -0.0009084911 -0.0000153225 -0.0000193449 0.0030420999 + -0.0000019720 -0.0000018431 -0.0001019579 -0.0000010421 + 0.0000103805 -0.0062639775 0.0000016631 0.0000023094 + 0.0000611242 0.0000002391 0.0000013024 -0.0007560936 + 0.0000020262 0.0000006217 0.0007218634 -0.0000332056 + -0.0001170686 -0.0467638661 -0.0000020123 0.0000023051 + -0.0003345992 0.0000316764 -0.0000184674 0.0036214842 + 0.0000007894 -0.0000012350 0.0001355084 0.0000010924 + -0.0000015375 -0.0001429110 0.0000010326 -0.0000010066 + -0.0001081264 -0.0002662237 0.0003199192 0.1105635676 + -0.0000046266 0.0000021465 -0.0000128393 -0.0000007323 + 0.0000019685 0.0000927564 -0.0000021796 -0.0000029363 + 0.0058154998 0.0001922082 -0.0000333067 -0.0460796966 + -0.0000008120 0.0000017520 -0.0001590313 -0.0000011079 + 0.0000035779 0.0000478283 -0.0000005487 -0.0000011209 + -0.0004116206 -0.0000082255 0.0000195079 0.0004082543 + -0.0000017400 -0.0000013714 0.0000225321 -0.0000020817 + -0.0000021414 0.0015845855 0.0000021267 -0.0000052105 + 0.0000441122 0.0000014287 -0.0000000916 -0.0000187453 + 0.0000011232 0.0000003277 -0.0000003725 0.0000043545 + -0.0000125349 -0.0002174067 0.0000036490 -0.0000006576 + -0.0000551617 0.0000014660 -0.0000020706 0.0000986883 + 0.0000010491 -0.0000017270 0.0001106196 0.0000112201 + 0.0000101922 0.0012527726 0.0000022064 -0.0000042501 + -0.0000188413 0.0000023031 -0.0000000297 0.0000503867 + 0.0000010035 -0.0000000642 -0.0006705356 0.0000798228 + -0.0001471844 -0.0325229893 + -0.0406673493 0.0441741079 0.0000001579 -0.0085781268 + 0.0039823697 0.0000004137 -0.0052613143 -0.0051036248 + 0.0000020326 0.0009092951 -0.0031970010 -0.0000016940 + 0.0546278869 0.0031989689 -0.0000028345 -0.0011673533 + 0.0012278415 0.0000001664 -0.0462786230 -0.1023195831 + 0.0000031646 0.0097465395 0.0082624067 0.0000014317 + 0.0030821666 0.0001924638 -0.0000001938 -0.0000634525 + 0.0022352958 0.0000011902 -0.1557022203 0.0880359541 + 0.0000027792 -0.0005768302 0.0000960070 0.0000004699 + -0.4462248202 0.0660424290 -0.0000113359 -0.0042115069 + -0.0195227216 -0.0000027035 0.0000839209 -0.0014010417 + -0.0000008618 -0.0013044267 -0.0007568816 -0.0000002076 + 0.8592564926 -0.0308379049 0.0000105415 -0.0495045720 + 0.0455977357 -0.0000022165 -0.0002583797 0.0001052113 + 0.0000001364 0.0008906242 -0.0002264882 -0.0000004015 + -0.1456437376 -0.0678998531 -0.0000031697 0.0104982655 + -0.0077087923 0.0000034770 0.0002794119 0.0008882695 + 0.0000002709 -0.0002387809 0.0005322864 0.0000004307 + -0.0440695111 -0.0194694536 -0.0000017257 0.0002292465 + -0.0004566508 -0.0000003599 0.0242249848 -0.0074176906 + 0.0000006567 -0.0051047833 0.0020473582 -0.0000014797 + -0.0003031730 -0.0002606031 0.0000000792 0.0001248161 + -0.0004271088 -0.0000002628 0.0001675785 -0.0017208159 + 0.0000010176 0.0001233424 0.0000703602 0.0000004011 + -0.0000036443 -0.0001006681 0.0000000261 0.0000481330 + -0.0000302196 0.0000001066 -0.0085586189 0.0012010835 + 0.0000004561 -0.0005785155 0.0010002078 0.0000000647 + -0.0000149869 -0.0000117233 -0.0000000379 0.0000220225 + -0.0000215312 0.0000000137 + 0.0285457649 -0.0091398469 -0.0000026224 0.0022269905 + -0.0055345302 -0.0000003197 -0.0015683137 -0.0017715518 + -0.0000007007 0.0004390730 -0.0006733351 -0.0000004143 + -0.0241234297 -0.0478743606 0.0000032765 -0.0005592857 + 0.0006268573 0.0000002722 -0.0286672649 0.0307060299 + -0.0000005150 -0.0090500527 -0.0077143061 -0.0000011365 + 0.0010993507 0.0002279963 -0.0000002435 -0.0001249629 + -0.0005406349 -0.0000003512 0.1131854249 -0.3448112591 + -0.0000014264 0.0001181051 -0.0000980716 0.0000000926 + -0.0115772788 -0.1280362478 0.0000029556 -0.0014894664 + 0.0192739496 0.0000018412 0.0001881617 -0.0004572223 + -0.0000000375 0.0003527112 0.0001340998 0.0000000699 + -0.0308400976 0.7937919366 -0.0000077163 0.0440456675 + -0.0063785645 0.0000024513 -0.0006363929 -0.0005134890 + 0.0000000271 -0.0002262478 0.0001596155 0.0000001429 + -0.0891698754 -0.1965933593 0.0000017809 0.0003308417 + -0.0109679547 0.0000007916 0.0005482930 0.0011748830 + 0.0000001584 -0.0004006228 0.0007155575 0.0000004827 + -0.0168430953 0.0061249208 -0.0000012903 0.0003579933 + -0.0005222533 -0.0000004094 -0.0008285585 -0.0908390508 + 0.0000025046 0.0002065828 0.0016414890 0.0000000316 + -0.0005012331 -0.0002832316 0.0000001962 0.0002196380 + -0.0005423567 -0.0000003433 -0.0027518415 -0.0036948607 + 0.0000009785 0.0000602036 0.0000571303 -0.0000002882 + 0.0000469841 -0.0000056742 -0.0000002056 0.0000606061 + -0.0000387416 -0.0000001134 0.0274229536 0.0023248210 + 0.0000003005 -0.0000990728 0.0001097633 -0.0000001898 + -0.0000206012 -0.0000212760 -0.0000000153 0.0000223479 + -0.0000168710 -0.0000000155 + -0.0000007528 0.0000006602 -0.0056897998 -0.0000013194 + -0.0000001812 0.0064474075 -0.0000001328 -0.0000000980 + -0.0011579482 -0.0000003263 0.0000000400 -0.0001291043 + -0.0000006852 -0.0000036488 0.0047064733 -0.0000000484 + -0.0000001407 0.0001161694 0.0000027678 0.0000009593 + 0.0059314317 0.0000014232 0.0000000486 -0.0009743841 + 0.0000001122 0.0000000015 0.0000227093 -0.0000001657 + 0.0000000452 -0.0001104308 -0.0000000745 0.0000033959 + -0.0504909873 0.0000000428 -0.0000000784 0.0000753856 + -0.0000089047 0.0000013335 -0.0460767610 -0.0000000682 + -0.0000023385 0.0058155158 0.0000001897 -0.0000002044 + 0.0000927578 -0.0000001376 0.0000001058 -0.0000128391 + 0.0000098878 -0.0000074097 0.1095203364 -0.0000028446 + 0.0000021091 0.0008306494 0.0000000477 0.0000001488 + -0.0000170907 0.0000000548 0.0000001399 -0.0000010033 + -0.0000027792 0.0000008561 -0.0649803590 0.0000013081 + 0.0000000195 -0.0022956656 -0.0000001487 -0.0000000376 + -0.0000378805 0.0000001139 -0.0000001730 0.0000016491 + -0.0000003155 0.0000012413 0.0129716048 0.0000000929 + 0.0000002241 0.0000061519 0.0000007778 0.0000027159 + 0.0186143319 0.0000006186 -0.0000001685 -0.0000968997 + 0.0000003825 0.0000000229 0.0000141441 -0.0000001788 + 0.0000003964 0.0000026799 0.0000005087 0.0000007600 + 0.0065622381 0.0000004110 -0.0000002225 -0.0009088815 + 0.0000000505 -0.0000001744 -0.0000256496 -0.0000000687 + 0.0000000157 0.0000168084 -0.0000005652 -0.0000005146 + 0.0009951291 0.0000006332 -0.0000000286 0.0002633127 + 0.0000001635 0.0000000125 -0.0000116921 -0.0000000702 + 0.0000001663 0.0000104903 + -0.0085331924 0.0022486065 -0.0000003606 -0.0434741530 + 0.0271953095 0.0000026762 0.0006986454 0.0003387918 + -0.0000003897 0.0001786646 0.0010484152 0.0000021319 + -0.0204367903 -0.0602348031 -0.0000103718 0.0000274883 + 0.0000153863 -0.0000001510 -0.0041265736 -0.0157223334 + 0.0000003993 0.0674084416 0.0260208346 0.0000062964 + -0.0012771710 -0.0007093188 0.0000005725 0.0002611872 + -0.0002593237 0.0000001562 -0.3878712410 0.0014924666 + -0.0000157467 -0.0002734725 0.0002644368 0.0000001320 + 0.0230693705 0.0116345394 -0.0000012359 -0.2091095979 + 0.1024799278 -0.0000177620 0.0000227895 0.0009904504 + 0.0000001251 0.0001180321 0.0002043513 -0.0000003787 + -0.0495038388 0.0440481055 -0.0000026162 0.8301819355 + -0.0448055972 0.0000778172 0.0004728819 -0.0004248221 + -0.0000003247 -0.0002585630 -0.0006356473 -0.0000001451 + -0.0040522428 -0.0066659991 -0.0000003160 -0.1256601209 + -0.0795551243 -0.0000127943 0.0004839090 -0.0000521280 + -0.0000003198 0.0004445146 0.0006275451 0.0000001686 + 0.0108779736 0.0095887056 -0.0000017145 -0.0003420296 + 0.0000838494 0.0000001915 -0.0005057116 0.0024158865 + 0.0000001198 -0.0659935026 -0.0442304188 -0.0000271254 + -0.0003333593 -0.0000018832 0.0000002217 0.0000104905 + -0.0003498039 -0.0000001714 0.0000187068 0.0000097094 + 0.0000002133 -0.0012206802 -0.0034214575 -0.0000003848 + -0.0000329918 0.0000192959 0.0000001323 0.0000157175 + 0.0000563539 0.0000002217 -0.0003717804 0.0000007254 + 0.0000003260 -0.0108990407 0.0262953971 0.0000004090 + -0.0000074561 0.0000069425 0.0000000018 -0.0000072391 + -0.0000173719 -0.0000000039 + 0.0040038940 -0.0055797832 -0.0000005035 0.0428229195 + -0.0063328542 0.0000042967 -0.0032977255 -0.0004649969 + 0.0000014205 -0.0024868697 -0.0072117598 -0.0000029705 + -0.0329132626 0.0271902466 0.0000011713 0.0018026347 + -0.0005678784 -0.0000001781 0.0015902737 0.0061572590 + -0.0000002904 -0.0476270735 -0.0829780618 -0.0000107638 + 0.0016530630 0.0006716280 -0.0000006190 -0.0011654981 + 0.0030509999 0.0000007550 -0.0236575415 -0.1126337301 + -0.0000045755 0.0002435082 -0.0004021686 -0.0000004887 + -0.0063986239 -0.0080078224 0.0000001557 0.1801008941 + -0.3651300468 0.0000054627 -0.0001180052 -0.0011897415 + -0.0000001496 -0.0013836279 -0.0004911527 0.0000006412 + 0.0455976262 -0.0063797831 0.0000016448 -0.0448069835 + 0.8228465360 0.0000361146 -0.0004272006 0.0005767193 + 0.0000003932 0.0001046680 -0.0005137342 -0.0000003124 + -0.0147094772 0.0035823211 -0.0000006294 -0.0582890052 + -0.2165869224 -0.0000156422 0.0008838741 -0.0000081727 + -0.0000006293 0.0009677652 0.0010097123 0.0000000552 + 0.0069623393 -0.0488242056 0.0000014669 -0.0007324455 + 0.0000488088 0.0000003663 0.0042599213 -0.0029582162 + 0.0000004262 -0.0508192988 -0.0006203881 -0.0000152554 + -0.0006527096 -0.0000817126 0.0000004096 -0.0001089821 + -0.0005986891 -0.0000002336 0.0000217393 0.0001617379 + -0.0000000703 -0.0023887174 -0.0023066340 -0.0000027238 + -0.0000689834 0.0000419740 -0.0000000479 -0.0000908572 + -0.0000251451 0.0000000301 0.0011003698 -0.0000983444 + -0.0000000065 0.0000720864 0.0046689335 0.0000012327 + -0.0000369988 0.0000148228 0.0000000075 -0.0000076897 + -0.0000297557 0.0000000398 + -0.0000007577 0.0000001502 0.0064474155 -0.0000007357 + 0.0000020900 -0.0056896710 -0.0000007151 0.0000001817 + -0.0001291230 0.0000001460 -0.0000000232 -0.0011579252 + 0.0000008796 -0.0000003941 0.0047065427 -0.0000000629 + -0.0000005574 0.0001161686 -0.0000007514 -0.0000017419 + -0.0009744010 0.0000024652 -0.0000071216 0.0059311708 + -0.0000008736 -0.0000004886 -0.0001104313 0.0000003397 + -0.0000004757 0.0000227093 -0.0000275724 -0.0000046910 + -0.0504920486 -0.0000008311 -0.0000006452 0.0000753846 + 0.0000019508 0.0000012057 0.0058155672 -0.0000095396 + -0.0000037061 -0.0460792390 -0.0000001540 -0.0000009390 + -0.0000128359 -0.0000003432 -0.0000005638 0.0000927565 + -0.0000020946 0.0000027802 0.0008306496 0.0000776163 + 0.0000370026 0.1095229985 -0.0000003554 0.0000003386 + -0.0000010035 0.0000000206 0.0000000035 -0.0000170899 + 0.0000002898 0.0000014759 -0.0022957670 -0.0000037737 + -0.0000185772 -0.0649805895 -0.0000014320 0.0000003447 + 0.0000016485 -0.0000000444 -0.0000002805 -0.0000378803 + -0.0000012614 0.0000064008 0.0129722002 0.0000002036 + 0.0000002276 0.0000061521 -0.0000007735 0.0000005069 + -0.0000968819 -0.0000321140 -0.0000144549 0.0186149740 + 0.0000018140 0.0000000458 0.0000026791 -0.0000001228 + 0.0000003297 0.0000141444 -0.0000007350 -0.0000000503 + -0.0009088754 -0.0000008462 -0.0000023503 0.0065621431 + -0.0000000773 0.0000003539 0.0000168080 0.0000003441 + 0.0000000978 -0.0000256487 -0.0000002101 0.0000005892 + 0.0002633424 -0.0000004719 0.0000028748 0.0009951589 + 0.0000005428 0.0000000630 0.0000104897 0.0000000365 + -0.0000000013 -0.0000116926 + 0.0001786535 0.0010484192 -0.0000021605 0.0006986519 + 0.0003387396 0.0000002199 -0.0434742255 0.0271955291 + 0.0000233950 -0.0085331077 0.0022485735 0.0000071026 + 0.0000274524 0.0000153865 0.0000001925 -0.0204376503 + -0.0602358848 -0.0000053847 0.0002611696 -0.0002593205 + -0.0000004000 -0.0012771644 -0.0007093195 -0.0000004472 + 0.0674089697 0.0260216445 -0.0000181266 -0.0041265036 + -0.0157222638 -0.0000055944 -0.0002734678 0.0002644357 + 0.0000001158 -0.3878923754 0.0014930891 0.0001450369 + 0.0001180100 0.0002043617 0.0000004666 0.0000228057 + 0.0009904446 0.0000002832 -0.2091101946 0.1024841044 + 0.0001212373 0.0230691839 0.0116344561 -0.0000006480 + -0.0002585747 -0.0006356415 -0.0000000288 0.0004728964 + -0.0004248193 -0.0000000287 0.8302042391 -0.0448124025 + -0.0003693187 -0.0495042070 0.0440488229 0.0000403163 + 0.0004445322 0.0006275511 -0.0000000947 0.0004839266 + -0.0000521264 0.0000001234 -0.1256597125 -0.0795537526 + 0.0000034104 -0.0040523360 -0.0066660341 -0.0000018859 + -0.0003420186 0.0000838700 -0.0000000216 0.0108783325 + 0.0095888367 0.0000063771 0.0000104731 -0.0003497766 + 0.0000000270 -0.0003333509 -0.0000018834 -0.0000001026 + -0.0659936111 -0.0442305933 0.0000393762 -0.0005057129 + 0.0024159241 0.0000010671 0.0000157124 0.0000563565 + -0.0000002023 -0.0000329860 0.0000192827 -0.0000001059 + -0.0012206762 -0.0034214334 0.0000016940 0.0000187163 + 0.0000097127 -0.0000005899 -0.0000072416 -0.0000173632 + -0.0000000042 -0.0000074446 0.0000069437 0.0000000123 + -0.0108993818 0.0262953924 0.0000148347 -0.0003717818 + 0.0000007380 -0.0000001436 + -0.0024868589 -0.0072116303 0.0000011345 -0.0032977021 + -0.0004649492 -0.0000003298 0.0428230307 -0.0063326798 + -0.0000211581 0.0040039074 -0.0055797697 -0.0000060848 + 0.0018026412 -0.0005678827 -0.0000007839 -0.0329132799 + 0.0271906334 0.0000207965 -0.0011654636 0.0030509326 + 0.0000009814 0.0016530708 0.0006716374 0.0000003395 + -0.0476271629 -0.0829788477 -0.0000085302 0.0015902701 + 0.0061572888 0.0000026135 0.0002435105 -0.0004021512 + 0.0000001956 -0.0236578908 -0.1126322710 -0.0000124705 + -0.0013835998 -0.0004911555 -0.0000003529 -0.0001180367 + -0.0011897476 -0.0000003102 0.1801060023 -0.3651409457 + -0.0002060051 -0.0063985826 -0.0080078485 -0.0000034916 + 0.0001046627 -0.0005137281 0.0000000665 -0.0004272014 + 0.0005766992 0.0000000122 -0.0448138023 0.8228567460 + 0.0002778320 0.0455981433 -0.0063800745 -0.0000220444 + 0.0009677288 0.0010096958 0.0000000237 0.0008838778 + -0.0000081675 0.0000002928 -0.0582876956 -0.2165857410 + -0.0000244954 -0.0147097472 0.0035824158 0.0000089012 + -0.0007324399 0.0000487745 -0.0000000629 0.0069625256 + -0.0488257684 -0.0000297157 -0.0001089588 -0.0005987214 + 0.0000000145 -0.0006527581 -0.0000817139 -0.0000002073 + -0.0508193087 -0.0006204022 0.0000256712 0.0042599893 + -0.0029582387 -0.0000032661 -0.0000908223 -0.0000251462 + 0.0000000250 -0.0000689988 0.0000420001 0.0000000694 + -0.0023886736 -0.0023066647 -0.0000001192 0.0000217158 + 0.0001617414 0.0000005154 -0.0000076770 -0.0000297808 + -0.0000000378 -0.0000370253 0.0000148223 0.0000000114 + 0.0000722340 0.0046689800 0.0000005182 0.0011003761 + -0.0000983410 -0.0000005482 + -0.0000012240 -0.0000025393 -0.0011579521 -0.0000020278 + 0.0000001477 -0.0001291114 0.0000326106 -0.0000123506 + -0.0056898069 0.0000086450 -0.0000067899 0.0064473963 + 0.0000000352 -0.0000011553 0.0001161714 -0.0000059720 + 0.0000307583 0.0047067135 0.0000001080 0.0000002329 + 0.0000227138 -0.0000001895 -0.0000007656 -0.0001104316 + -0.0000457582 -0.0000434642 0.0059312923 0.0000010385 + 0.0000103748 -0.0009743819 -0.0000016125 -0.0000014104 + 0.0000753872 0.0001440152 -0.0000223774 -0.0504903103 + -0.0000017207 -0.0000011338 0.0000927590 0.0000000310 + -0.0000027488 -0.0000128397 0.0001483596 -0.0001696317 + -0.0460781231 -0.0000124115 -0.0000103842 0.0058154997 + 0.0000003067 0.0000002704 -0.0000170907 -0.0000009402 + 0.0000014105 -0.0000010041 -0.0003682861 0.0002790756 + 0.1095200255 0.0000407729 -0.0000209486 0.0008308026 + 0.0000003565 -0.0000007255 -0.0000378809 -0.0000036360 + 0.0000010251 0.0000016473 0.0000088495 -0.0000110054 + -0.0649813763 -0.0000039224 0.0000044837 -0.0022957326 + 0.0000005696 0.0000007733 0.0000061519 0.0000049153 + -0.0000341426 0.0129725421 -0.0000005874 0.0000013110 + 0.0000141442 0.0000049158 0.0000001112 0.0000026817 + 0.0000392970 0.0000222772 0.0186151918 0.0000017242 + -0.0000009141 -0.0000969088 0.0000002460 -0.0000000029 + -0.0000256506 0.0000001194 0.0000002198 0.0000168085 + 0.0000033691 -0.0000009803 0.0065622195 -0.0000012924 + 0.0000007172 -0.0009088700 -0.0000000765 0.0000004146 + -0.0000116927 0.0000017911 0.0000001360 0.0000104908 + 0.0000075338 -0.0000113650 0.0009951878 0.0000000472 + 0.0000010965 0.0002633366 + 0.0009092875 -0.0031969349 -0.0000000819 -0.0052613102 + -0.0051035191 -0.0000024406 -0.0085781033 0.0039823469 + 0.0000071044 -0.0406663494 0.0441731737 0.0000325951 + -0.0011673089 0.0012277940 0.0000008849 0.0546270228 + 0.0031986579 -0.0000147911 -0.0000634417 0.0022352494 + -0.0000002706 0.0030821580 0.0001924322 -0.0000009348 + 0.0097465645 0.0082625243 -0.0000018207 -0.0462768921 + -0.1023172703 -0.0000263607 -0.0005768459 0.0000960124 + -0.0000001735 -0.1557003683 0.0880321367 0.0000749126 + -0.0013044227 -0.0007568662 0.0000003861 0.0000839102 + -0.0014010560 0.0000002967 -0.0042114720 -0.0195228814 + -0.0000018434 -0.4461949414 0.0660408504 0.0001925814 + 0.0008906248 -0.0002264978 -0.0000000392 -0.0002583666 + 0.0001052015 -0.0000000110 -0.0495049169 0.0455982373 + 0.0000405806 0.8592256554 -0.0308303550 -0.0003118477 + -0.0002387914 0.0005322990 -0.0000001052 0.0002794196 + 0.0008882718 -0.0000000497 0.0104984585 -0.0077089871 + -0.0000113712 -0.1456443375 -0.0679022035 0.0000053443 + 0.0002292427 -0.0004566551 0.0000000872 -0.0440724349 + -0.0194706103 0.0000157954 0.0001248257 -0.0004271281 + 0.0000000344 -0.0003031855 -0.0002606041 -0.0000000640 + -0.0051048659 0.0020473832 0.0000041251 0.0242255255 + -0.0074173705 -0.0000059154 0.0000481266 -0.0000302184 + -0.0000001094 -0.0000036570 -0.0001006464 -0.0000000886 + 0.0001233348 0.0000703721 -0.0000007829 0.0001675390 + -0.0017208279 0.0000005886 0.0000220251 -0.0000215381 + -0.0000000240 -0.0000149979 -0.0000117226 0.0000000330 + -0.0005785544 0.0010002020 0.0000006304 -0.0085581567 + 0.0012007482 0.0000031455 + 0.0004390584 -0.0006733873 0.0000000042 -0.0015682691 + -0.0017714797 0.0000011467 0.0022270254 -0.0055344833 + -0.0000057428 0.0285452374 -0.0091395587 -0.0000097540 + -0.0005592593 0.0006268251 0.0000001584 -0.0241230311 + -0.0478741295 -0.0000165190 -0.0001249722 -0.0005406158 + 0.0000002182 0.0010993281 0.0002279797 -0.0000000478 + -0.0090501479 -0.0077144667 0.0000015451 -0.0286667918 + 0.0307055732 0.0000216606 0.0001180952 -0.0000980787 + -0.0000002132 0.1131810898 -0.3448043738 -0.0001665805 + 0.0003526929 0.0001341170 -0.0000001363 0.0001881795 + -0.0004572136 -0.0000002877 -0.0014894036 0.0192742355 + 0.0000044912 -0.0115778147 -0.1280386198 -0.0000332549 + -0.0002262287 0.0001596272 0.0000000101 -0.0006363748 + -0.0005134992 0.0000000034 0.0440464000 -0.0063788318 + -0.0000223412 -0.0308325837 0.7937937996 0.0003089024 + -0.0004006227 0.0007155522 -0.0000000269 0.0005482772 + 0.0011749018 0.0000001369 0.0003311001 -0.0109683557 + -0.0000044818 -0.0891719868 -0.1965969097 -0.0000231095 + 0.0003580064 -0.0005222368 0.0000000502 -0.0168448247 + 0.0061248716 0.0000047985 0.0002196256 -0.0005423317 + 0.0000000318 -0.0005011875 -0.0002832342 -0.0000001353 + 0.0002064960 0.0016415465 0.0000006338 -0.0008280774 + -0.0908417244 -0.0000481837 0.0000605715 -0.0000387387 + 0.0000000712 0.0000470005 -0.0000056947 0.0000001920 + 0.0000601994 0.0000571501 0.0000007113 -0.0027518646 + -0.0036948532 -0.0000040827 0.0000223386 -0.0000168532 + -0.0000000111 -0.0000205837 -0.0000212772 0.0000000169 + -0.0000990773 0.0001097568 0.0000001850 0.0274223798 + 0.0023250112 -0.0000100592 + -0.0000006593 0.0000006846 -0.0001290942 0.0000012392 + 0.0000015880 -0.0011579284 0.0000069955 -0.0000066613 + 0.0064473499 0.0000251471 -0.0000178625 -0.0056896166 + 0.0000001402 -0.0000001812 0.0001161661 -0.0000294548 + -0.0000201293 0.0047062225 -0.0000000344 -0.0000005369 + -0.0001104279 -0.0000005915 0.0000000843 0.0000227099 + -0.0000098355 -0.0000072454 -0.0009743893 0.0000068776 + 0.0000498608 0.0059310849 0.0000002526 0.0000004698 + 0.0000753832 0.0000865475 -0.0001615970 -0.0504913957 + 0.0000006942 0.0000004783 -0.0000128390 0.0000003215 + 0.0000005101 0.0000927589 0.0000040955 0.0000142425 + 0.0058155754 0.0001560113 -0.0000628323 -0.0460796970 + -0.0000009155 0.0000005233 -0.0000010033 0.0000000913 + -0.0000003026 -0.0000170899 0.0000398678 -0.0000215142 + 0.0008308026 -0.0003128031 0.0003091970 0.1095233231 + -0.0000007364 0.0000011308 0.0000016485 0.0000004532 + 0.0000005283 -0.0000378811 -0.0000062114 0.0000003093 + -0.0022957367 -0.0000048651 -0.0000315606 -0.0649806135 + 0.0000001154 -0.0000001685 0.0000061521 0.0000158456 + 0.0000045264 0.0129723379 0.0000005576 -0.0000012334 + 0.0000026801 -0.0000002773 -0.0000000729 0.0000141446 + 0.0000032854 0.0000001294 -0.0000968943 -0.0000032896 + -0.0000456522 0.0186149419 0.0000001312 -0.0000000824 + 0.0000168078 0.0000003084 -0.0000004131 -0.0000256507 + -0.0000003045 0.0000000784 -0.0009088818 0.0000023663 + -0.0000046101 0.0065620691 0.0000002224 -0.0000004513 + 0.0000104899 0.0000001206 -0.0000000244 -0.0000116925 + 0.0000011843 -0.0000003394 0.0002633190 0.0000171069 + -0.0000008704 0.0009948644 + 0.0011100066 -0.0011589261 0.0000002248 0.0017179428 + -0.0007934955 0.0000003495 -0.0002042990 -0.0002445186 + 0.0000001780 0.0000761571 0.0002755760 0.0000000774 + -0.0018321986 0.0049135129 -0.0000005981 0.0003105100 + -0.0000884000 -0.0000001418 -0.0047817937 0.0035999381 + -0.0000004097 -0.0016834385 -0.0008868575 -0.0000003626 + 0.0000065695 0.0003444229 -0.0000002640 -0.0001929075 + 0.0000899122 -0.0000000963 0.0227613834 0.0021053996 + 0.0000004452 -0.0000517833 0.0000377914 -0.0000000867 + -0.0257457229 -0.0278565216 0.0000006948 -0.0035411459 + 0.0032501794 -0.0000003574 -0.0002289310 -0.0003129458 + 0.0000000673 -0.0000414719 0.0001335454 0.0000001721 + -0.1456437747 -0.0891699558 -0.0000018620 -0.0040515723 + -0.0147105953 0.0000000139 0.0004458548 0.0009667057 + 0.0000001914 -0.0002395702 -0.0003999214 -0.0000001106 + 0.4398765171 -0.0727860663 0.0000099319 -0.0257914759 + 0.0565889420 -0.0000085923 -0.0001833593 -0.0014837047 + -0.0000005330 0.0009682678 -0.0003508334 -0.0000005326 + -0.0993257273 -0.0399592713 0.0000010688 -0.0008234197 + 0.0007199523 0.0000007132 -0.1676933472 0.1891437587 + -0.0000071544 0.0161276157 -0.0111835366 0.0000064712 + 0.0002417510 0.0003261488 -0.0000000360 -0.0003093031 + 0.0003871564 0.0000002851 -0.0000823186 -0.0002210145 + -0.0000000336 -0.0002822399 -0.0004113788 -0.0000002237 + -0.0000929113 0.0000478803 0.0000001024 -0.0000967462 + 0.0000666335 0.0000000912 -0.0006537610 -0.0013392649 + 0.0000001252 -0.0000409669 0.0003149514 0.0000001260 + 0.0000087458 0.0000380093 0.0000000382 -0.0000371359 + 0.0000067920 0.0000000272 + -0.0000268829 -0.0061310692 0.0000008850 -0.0006546363 + -0.0012910784 -0.0000004673 0.0018901070 0.0015392595 + -0.0000003076 -0.0003312231 0.0005571236 0.0000004831 + 0.0038682724 0.0002045419 -0.0000010011 0.0007249755 + -0.0002208954 -0.0000001191 0.0046610600 0.0118940916 + -0.0000004802 0.0013652804 0.0015273340 0.0000002860 + -0.0009820849 0.0002153061 -0.0000000109 0.0001077566 + -0.0001456328 0.0000000133 0.0018509250 -0.0309986385 + 0.0000001933 0.0000897342 0.0000043663 -0.0000001420 + -0.0310100571 0.0013800542 0.0000005679 0.0003539552 + -0.0040870959 -0.0000004229 -0.0002527062 0.0001390944 + 0.0000002303 -0.0000695781 -0.0002354385 -0.0000001503 + -0.0679008297 -0.1965923103 0.0000008871 -0.0066678374 + 0.0035832168 0.0000012097 0.0006276944 0.0010079022 + 0.0000001309 0.0005373080 0.0007125635 0.0000001311 + -0.0727847549 0.8870682703 -0.0000294544 0.0203397616 + 0.0112182928 -0.0000040415 -0.0018209574 -0.0017743221 + 0.0000003356 -0.0003511484 -0.0022058955 -0.0000009060 + -0.0760293329 -0.0869219765 0.0000062170 0.0001892453 + 0.0006930826 0.0000002579 0.2131004784 -0.5876303259 + 0.0000234951 0.0055668531 -0.0053583332 0.0000023918 + 0.0014713973 0.0004818501 -0.0000007266 -0.0002720133 + 0.0014565485 0.0000008004 0.0007060364 0.0003050625 + -0.0000003516 -0.0000850139 0.0001393299 0.0000000820 + -0.0000008382 -0.0000313744 0.0000000711 -0.0000350031 + 0.0000061067 0.0000000004 0.0019807768 -0.0008868891 + -0.0000002148 -0.0001903658 0.0003081140 0.0000001041 + 0.0000608226 0.0000227639 0.0000000043 -0.0000271768 + 0.0000470003 0.0000000185 + -0.0000017102 0.0000008188 -0.0009158901 0.0000001132 + 0.0000001041 -0.0000879401 -0.0000002004 0.0000003082 + -0.0014879876 -0.0000002106 0.0000003883 0.0004408814 + 0.0000015351 0.0000010948 0.0062248322 -0.0000001758 + 0.0000000956 0.0000657178 -0.0000003715 -0.0000008815 + 0.0087742075 0.0000000849 -0.0000000798 -0.0003973698 + -0.0000001237 0.0000003428 0.0001474654 0.0000003404 + -0.0000001312 -0.0000597273 0.0000005114 -0.0000022359 + 0.0000018413 -0.0000000149 0.0000000535 0.0000752829 + 0.0000025116 0.0000002730 0.0004082205 -0.0000000023 + 0.0000007665 -0.0004116171 -0.0000000213 0.0000002002 + 0.0000478321 0.0000001838 -0.0000002006 -0.0001590313 + -0.0000026851 0.0000020711 -0.0649803588 -0.0000003249 + -0.0000007350 -0.0022957670 -0.0000003717 0.0000000290 + -0.0000378809 -0.0000004315 -0.0000001346 0.0000016487 + 0.0000047892 -0.0000225569 0.1558539550 -0.0000084136 + 0.0000014138 -0.0078620555 0.0000000209 0.0000001620 + 0.0000258777 -0.0000002716 0.0000003213 0.0000947221 + 0.0000103573 0.0000024237 -0.0371380421 -0.0000001629 + -0.0000003544 -0.0000261263 -0.0000061381 0.0000169740 + -0.0565269809 -0.0000000622 0.0000022317 0.0033360463 + -0.0000003300 -0.0000000192 -0.0000218447 0.0000003641 + -0.0000008382 -0.0000388377 -0.0000002420 -0.0000002334 + -0.0000821078 0.0000001357 -0.0000003743 0.0001099371 + 0.0000000731 -0.0000000641 0.0000026697 0.0000006877 + -0.0000001015 0.0000558140 0.0000000867 -0.0000005578 + -0.0034629958 0.0000002063 -0.0000000289 0.0002990170 + -0.0000000199 -0.0000000248 -0.0000032118 0.0000002828 + -0.0000005205 0.0000298042 + -0.0001588716 -0.0015563209 0.0000003690 -0.0043077118 + -0.0026318929 -0.0000012756 0.0004906068 -0.0001323204 + -0.0000001472 0.0005691311 0.0022607704 0.0000008819 + -0.0036087586 0.0030146766 -0.0000006730 -0.0003693660 + 0.0003969595 0.0000000460 0.0007385084 0.0025306260 + -0.0000002358 0.0055334210 0.0096241502 0.0000003473 + -0.0002322001 0.0000894817 -0.0000001456 0.0004243269 + -0.0007813929 -0.0000002886 -0.0224414907 -0.0198938141 + -0.0000058626 -0.0000555551 0.0000878012 0.0000000858 + -0.0053918650 -0.0005370143 0.0000004880 0.0192797393 + -0.0093495680 0.0000026597 -0.0002250101 -0.0001578496 + 0.0000000944 0.0002915778 -0.0000019021 -0.0000001582 + 0.0104989195 0.0003315538 0.0000008577 -0.1256582843 + -0.0582889975 -0.0000094336 0.0004808099 0.0008825134 + 0.0000001214 0.0002804975 0.0005479141 0.0000001344 + -0.0257900956 0.0203417680 -0.0000063587 0.8599032066 + 0.1292564392 0.0002179854 -0.0013359024 -0.0014576265 + 0.0000002673 -0.0001831698 -0.0018198574 -0.0000007065 + -0.0439475419 -0.0493775909 0.0000125021 0.0000518681 + 0.0006089031 0.0000002381 0.0008739944 -0.0017727297 + -0.0000004089 -0.6658529049 -0.0265380664 -0.0002122232 + 0.0010785658 0.0003960008 -0.0000005726 -0.0002646500 + 0.0012253262 0.0000006326 0.0002545368 0.0001727856 + -0.0000001394 0.0000428287 0.0007660369 0.0000004041 + -0.0000264389 0.0000006116 0.0000000674 -0.0000618498 + 0.0000144748 0.0000000051 0.0001946202 -0.0000790349 + -0.0000000584 -0.0010946642 0.0017692251 0.0000004573 + 0.0000380418 0.0000096162 0.0000000153 -0.0000188700 + 0.0000483442 0.0000000276 + -0.0016970065 0.0005869819 0.0000000312 -0.0037659557 + -0.0007144456 -0.0000012577 0.0004740529 0.0001437306 + -0.0000002901 0.0001261550 0.0007646802 0.0000003071 + 0.0040582110 0.0019811378 0.0000008664 -0.0004155304 + 0.0004586143 0.0000001965 0.0002780654 -0.0008934455 + 0.0000001128 0.0085612146 0.0015792450 0.0000004226 + 0.0000713245 -0.0001078140 0.0000000732 0.0005441694 + -0.0002027970 0.0000001482 -0.0196406794 0.0142033100 + -0.0000029539 0.0000352102 0.0000093497 0.0000001509 + 0.0023589326 -0.0022358729 -0.0000001755 -0.0061945396 + -0.0436449705 -0.0000038842 0.0000464975 -0.0000539873 + -0.0000000512 -0.0000630247 -0.0003797349 -0.0000003202 + -0.0077117719 -0.0109685322 -0.0000000029 -0.0795579093 + -0.2165853641 -0.0000190712 -0.0000531882 -0.0000062741 + -0.0000000046 0.0008870066 0.0011756180 0.0000002304 + 0.0565892178 0.0112134294 0.0000013710 0.1292518519 + 0.4670704443 0.0000292596 -0.0014614224 0.0000987660 + 0.0000009696 -0.0014843089 -0.0017729442 -0.0000002384 + -0.0133045196 -0.1423209557 0.0000106926 0.0011417929 + -0.0001829344 -0.0000006050 -0.0185227093 0.0098986559 + -0.0000001727 -0.0504893815 -0.0894713400 -0.0000155110 + 0.0010588190 0.0000675245 -0.0000006503 0.0000821512 + 0.0009890257 0.0000004466 -0.0001530500 -0.0003969547 + 0.0000001700 -0.0001602501 0.0001791027 0.0000003195 + 0.0001011600 -0.0000654444 -0.0000000850 0.0000628064 + -0.0000629772 -0.0000001089 0.0004281501 0.0000729312 + -0.0000001016 -0.0015509287 -0.0004469574 -0.0000002305 + 0.0000446925 -0.0000292108 -0.0000000388 0.0000246946 + 0.0000504096 -0.0000000146 + -0.0000013754 -0.0000005211 -0.0000879518 -0.0000021855 + -0.0000004149 -0.0009158919 -0.0000015965 -0.0000004602 + 0.0004408919 -0.0000008140 0.0000001044 -0.0014879749 + -0.0000013587 -0.0000023262 0.0062247777 -0.0000007539 + 0.0000004528 0.0000657214 -0.0000003137 0.0000006791 + -0.0003973813 0.0000029811 0.0000027249 0.0087742062 + -0.0000001837 -0.0000005022 -0.0000597297 -0.0000000629 + -0.0000006839 0.0001474703 0.0000018395 0.0000009151 + 0.0000020459 -0.0000004772 -0.0000001467 0.0000752797 + -0.0000038810 -0.0000002045 -0.0004116070 0.0000039351 + -0.0000078125 0.0004083834 0.0000008920 0.0000003724 + -0.0001590320 -0.0000002376 -0.0000002460 0.0000478289 + 0.0000030676 0.0000013900 -0.0022956657 -0.0000116544 + -0.0000168627 -0.0649805916 -0.0000003596 0.0000013317 + 0.0000016494 -0.0000003508 0.0000004540 -0.0000378809 + -0.0000083348 -0.0000052184 -0.0078620545 0.0002152964 + 0.0000283738 0.1558520771 -0.0000009302 -0.0000005740 + 0.0000947231 -0.0000001594 -0.0000015123 0.0000258783 + 0.0000051846 0.0000045090 -0.0371369727 0.0000004006 + 0.0000010027 -0.0000261257 0.0000029573 0.0000014361 + 0.0033359312 -0.0002056014 -0.0000078319 -0.0565262129 + 0.0000019926 0.0000002040 -0.0000388397 -0.0000006283 + 0.0000015780 -0.0000218436 0.0000006073 0.0000000951 + 0.0001099388 0.0000001568 0.0000001314 -0.0000821625 + 0.0000009779 -0.0000014984 0.0000558130 0.0000004701 + -0.0000000217 0.0000026690 0.0000000244 0.0000004049 + 0.0002990068 -0.0000009518 0.0000008434 -0.0034629654 + 0.0000013332 -0.0000000890 0.0000298042 0.0000000942 + -0.0000000762 -0.0000032124 + 0.0005691136 0.0022606099 -0.0000006384 0.0004905562 + -0.0001323228 0.0000000329 -0.0043077742 -0.0026320131 + 0.0000014649 -0.0001588474 -0.0015562793 -0.0000009515 + -0.0003692903 0.0003969555 0.0000002804 -0.0036087040 + 0.0030147882 0.0000056142 0.0004244661 -0.0007813841 + -0.0000001127 -0.0002323862 0.0000894876 0.0000002118 + 0.0055336171 0.0096243323 0.0000049480 0.0007383961 + 0.0025307385 0.0000008596 -0.0000556594 0.0000878385 + -0.0000000038 -0.0224415620 -0.0198940847 0.0000060214 + 0.0002917609 -0.0000020309 0.0000000479 -0.0002251706 + -0.0001579028 -0.0000001278 0.0192806629 -0.0093488932 + -0.0000136635 -0.0053919645 -0.0005369027 0.0000012882 + 0.0002804609 0.0005477957 -0.0000000259 0.0004806436 + 0.0008825523 0.0000000655 -0.1256578398 -0.0582885172 + 0.0000088633 0.0104989455 0.0003316362 -0.0000056405 + -0.0001832485 -0.0018198879 0.0000000162 -0.0013360439 + -0.0014576559 -0.0000003317 0.8599017841 0.1292499209 + -0.0004181682 -0.0257901556 0.0203408433 0.0000214794 + 0.0000517636 0.0006088015 -0.0000000156 -0.0439494786 + -0.0493724865 -0.0000292404 -0.0002645468 0.0012251116 + -0.0000000261 0.0010785729 0.0003960108 0.0000003280 + -0.6658492140 -0.0265372743 0.0004173282 0.0008737379 + -0.0017717984 0.0000005980 -0.0000617231 0.0000144669 + -0.0000000009 -0.0000265061 0.0000007586 -0.0000000201 + 0.0000428729 0.0007658620 -0.0000001277 0.0002543416 + 0.0001727942 0.0000001432 -0.0000188280 0.0000482324 + 0.0000000026 0.0000380338 0.0000096205 -0.0000000147 + -0.0010953558 0.0017691791 -0.0000005332 0.0001945694 + -0.0000789025 0.0000000488 + 0.0001259707 0.0007644648 0.0000006669 0.0004739333 + 0.0001435468 0.0000000251 -0.0037660872 -0.0007148050 + 0.0000027394 -0.0016972724 0.0005868991 0.0000008749 + -0.0004153903 0.0004587265 0.0000001243 0.0040583142 + 0.0019812267 -0.0000041149 0.0005442053 -0.0002026502 + -0.0000004515 0.0000713502 -0.0001077958 -0.0000001402 + 0.0085612171 0.0015793619 -0.0000066982 0.0002779402 + -0.0008933473 -0.0000005163 0.0000352719 0.0000094934 + -0.0000001925 -0.0196407576 0.0142032964 0.0000161781 + -0.0000628973 -0.0003797255 0.0000001553 0.0000464895 + -0.0000538414 0.0000000904 -0.0061941046 -0.0436444339 + -0.0000122018 0.0023588685 -0.0022357924 -0.0000015248 + 0.0008869635 0.0011755409 -0.0000000635 -0.0000532627 + -0.0000062482 0.0000000148 -0.0795567590 -0.2165841522 + -0.0000130104 -0.0077120897 -0.0109690993 -0.0000006562 + -0.0014844037 -0.0017730534 0.0000000520 -0.0014615009 + 0.0000986099 -0.0000004329 0.1292517497 0.4670727796 + 0.0000512511 0.0565889321 0.0112130412 -0.0000155918 + 0.0011417832 -0.0001828960 0.0000000961 -0.0133010561 + -0.1423244664 -0.0000487409 0.0000821489 0.0009890350 + -0.0000000520 0.0010588856 0.0000675355 0.0000003141 + -0.0504921471 -0.0894715718 0.0000200421 -0.0185233989 + 0.0098996313 0.0000102391 0.0000628035 -0.0000629884 + 0.0000000356 0.0001011830 -0.0000654869 0.0000000096 + -0.0001601557 0.0001789437 -0.0000001331 -0.0001530756 + -0.0003969604 -0.0000002735 0.0000247107 0.0000503493 + 0.0000000222 0.0000447056 -0.0000292235 -0.0000000119 + -0.0015511626 -0.0004470044 0.0000020527 0.0004280945 + 0.0000730607 -0.0000001774 + -0.0000017034 -0.0000010370 -0.0014879880 -0.0000017388 + -0.0000006635 0.0004408862 0.0000027767 -0.0000004811 + -0.0009158943 -0.0000023527 0.0000005005 -0.0000879508 + -0.0000007072 0.0000001482 0.0000657237 0.0000046479 + -0.0000011713 0.0062248581 0.0000002436 0.0000002305 + 0.0001474693 -0.0000000534 -0.0000006757 -0.0000597322 + 0.0000044310 -0.0000085582 0.0087742018 -0.0000012346 + -0.0000019921 -0.0003973783 -0.0000004576 -0.0000001727 + 0.0000752827 -0.0000000516 0.0000121062 0.0000022910 + -0.0000007160 -0.0000001998 0.0000478331 0.0000013237 + 0.0000006054 -0.0001590319 -0.0000115780 -0.0000085163 + 0.0004084204 0.0000025997 -0.0000005402 -0.0004116215 + 0.0000000460 0.0000004885 -0.0000378807 -0.0000007227 + 0.0000003970 0.0000016472 0.0000047768 -0.0000244149 + -0.0649813776 -0.0000115218 -0.0000038617 -0.0022957372 + -0.0000005783 -0.0000007349 0.0000258777 -0.0000002476 + 0.0000008253 0.0000947225 -0.0004177040 0.0000504311 + 0.1558524244 0.0000386692 0.0000022707 -0.0078626363 + 0.0000008846 0.0000003740 -0.0000261263 -0.0000044255 + -0.0000257095 -0.0371357487 -0.0000004264 0.0000010807 + -0.0000218445 0.0000013575 -0.0000001302 -0.0000388378 + 0.0004056001 0.0000038665 -0.0565267895 -0.0000119373 + 0.0000078576 0.0033360274 0.0000003340 -0.0000000262 + 0.0000026679 0.0000009847 -0.0000014862 0.0000558159 + -0.0000002298 -0.0000008289 -0.0000821575 0.0000000053 + -0.0000003443 0.0001099386 0.0000000896 -0.0000000257 + -0.0000032127 0.0000012149 -0.0000001013 0.0000298056 + -0.0000016837 -0.0000000516 -0.0034629639 0.0000000849 + 0.0000005411 0.0002990163 + 0.0000763699 0.0002758334 0.0000001443 -0.0002042513 + -0.0002445509 -0.0000008416 0.0017180871 -0.0007932884 + -0.0000013553 0.0011102281 -0.0011587782 -0.0000014353 + 0.0003105575 -0.0000884342 0.0000000090 -0.0018319039 + 0.0049135737 0.0000057689 -0.0001927950 0.0000899287 + 0.0000001823 0.0000064875 0.0003445370 0.0000004426 + -0.0016834724 -0.0008867428 0.0000005499 -0.0047817323 + 0.0036002329 0.0000072103 -0.0000517526 0.0000378006 + 0.0000001487 0.0227614920 0.0021055323 -0.0000081694 + -0.0000413497 0.0001334738 -0.0000001653 -0.0002291269 + -0.0003129647 -0.0000000944 -0.0035413459 0.0032502998 + 0.0000029070 -0.0257450978 -0.0278557507 -0.0000023657 + -0.0002396612 -0.0004000415 0.0000000387 0.0004457915 + 0.0009665746 0.0000000342 -0.0040517187 -0.0147110718 + -0.0000053786 -0.1456447759 -0.0891725646 -0.0000052436 + 0.0009681538 -0.0003506491 0.0000000431 -0.0001832053 + -0.0014837615 0.0000000032 -0.0257911817 0.0565900349 + 0.0000384923 0.4398925258 -0.0727996926 -0.0001504173 + -0.0008235311 0.0007197532 -0.0000001028 -0.0993353859 + -0.0399595008 0.0000071683 -0.0003091192 0.0003867468 + -0.0000000196 0.0002413251 0.0003261395 0.0000000724 + 0.0161269812 -0.0111838014 -0.0000154808 -0.1676990375 + 0.1891588942 0.0001294386 -0.0000965610 0.0000666096 + -0.0000000100 -0.0000930727 0.0000481525 -0.0000000443 + -0.0002822612 -0.0004113719 0.0000001464 -0.0000824932 + -0.0002210526 -0.0000000740 -0.0000370344 0.0000065768 + 0.0000000088 0.0000084889 0.0000380169 -0.0000000211 + -0.0000410563 0.0003149531 0.0000001492 -0.0006535654 + -0.0013396464 -0.0000017388 + -0.0003312394 0.0005570713 -0.0000002624 0.0018900442 + 0.0015391165 0.0000007698 -0.0006546093 -0.0012910831 + 0.0000001859 -0.0000269322 -0.0061309874 -0.0000031265 + 0.0007249590 -0.0002208205 -0.0000002975 0.0038681475 + 0.0002045609 -0.0000030079 0.0001077477 -0.0001456037 + -0.0000000420 -0.0009820020 0.0002153703 0.0000003687 + 0.0013652733 0.0015273173 0.0000000453 0.0046608554 + 0.0118938156 0.0000000878 0.0000897895 0.0000043793 + 0.0000000709 0.0018512892 -0.0309976148 -0.0000140695 + -0.0000695578 -0.0002354685 0.0000001272 -0.0002527336 + 0.0001391110 -0.0000000798 0.0003540260 -0.0040871307 + -0.0000013266 -0.0310094139 0.0013802942 0.0000120501 + 0.0005373332 0.0007125479 -0.0000000371 0.0006276819 + 0.0010079365 0.0000000702 -0.0066678317 0.0035832853 + 0.0000039541 -0.0679031886 -0.1965955259 -0.0000310199 + -0.0003511217 -0.0022059092 0.0000000698 -0.0018209664 + -0.0017743876 -0.0000003955 0.0203391929 0.0112188195 + 0.0000033770 -0.0727988508 0.8870928070 0.0003633281 + 0.0001892071 0.0006930553 -0.0000000335 -0.0760285264 + -0.0869216348 0.0000039162 -0.0002720014 0.0014565327 + -0.0000000691 0.0014713340 0.0004818592 0.0000003982 + 0.0055668942 -0.0053583189 -0.0000079475 0.2131159932 + -0.5876536325 -0.0003276114 -0.0000349864 0.0000061053 + -0.0000000350 -0.0000008495 -0.0000313683 -0.0000000642 + -0.0000849980 0.0001392953 -0.0000000510 0.0007060356 + 0.0003050722 0.0000002185 -0.0000271834 0.0000470087 + 0.0000000031 0.0000607837 0.0000227616 -0.0000000191 + -0.0001903436 0.0003081205 0.0000000060 0.0019807485 + -0.0008867577 0.0000004487 + -0.0000006031 0.0000000685 0.0004408892 0.0000000971 + -0.0000000142 -0.0014879806 -0.0000008279 0.0000000411 + -0.0000879386 0.0000016444 -0.0000044740 -0.0009158793 + -0.0000000162 0.0000002224 0.0000657185 0.0000039270 + -0.0000051103 0.0062247661 -0.0000005135 0.0000000583 + -0.0000597307 0.0000008528 -0.0000008560 0.0001474702 + 0.0000011091 0.0000022399 -0.0003973725 0.0000080184 + 0.0000005425 0.0087741714 0.0000011563 0.0000002963 + 0.0000752796 -0.0000082749 -0.0000120601 0.0000017540 + -0.0000007130 -0.0000003454 -0.0001590317 0.0000001128 + 0.0000006717 0.0000478292 0.0000011466 -0.0000031144 + -0.0004116288 -0.0000050940 0.0000129288 0.0004082494 + 0.0000006232 0.0000006276 0.0000016492 0.0000007114 + 0.0000000655 -0.0000378801 -0.0000020315 0.0000078384 + -0.0022957326 0.0000061416 -0.0000241949 -0.0649806141 + 0.0000003787 -0.0000025231 0.0000947220 -0.0000003248 + -0.0000011592 0.0000258789 0.0000201877 -0.0000177595 + -0.0078626358 -0.0001518808 0.0003627112 0.1558502089 + 0.0000007009 0.0000005891 -0.0000261266 -0.0000138689 + -0.0000064618 -0.0371363266 -0.0000010932 0.0000028794 + -0.0000388373 0.0000002441 0.0000001246 -0.0000218452 + 0.0000009954 -0.0000010835 0.0033361109 0.0001408513 + -0.0003167999 -0.0565241110 -0.0000000763 0.0000000075 + 0.0000558154 -0.0000002812 0.0000003194 0.0000026708 + -0.0000001316 0.0000006080 0.0001099395 -0.0000013138 + 0.0000006545 -0.0000821380 -0.0000002577 0.0000006444 + 0.0000298047 -0.0000002704 -0.0000000252 -0.0000032120 + -0.0000009291 -0.0000001143 0.0002990114 -0.0000003970 + 0.0000019569 -0.0034629178 + -0.0009790820 0.0010353084 -0.0000002108 -0.0013463497 + 0.0008482127 -0.0000003209 0.0001346383 0.0002183192 + -0.0000000981 -0.0000679387 -0.0000595198 -0.0000000569 + 0.0008635418 -0.0007796270 0.0000008410 -0.0002750382 + 0.0000837197 0.0000001157 -0.0012177508 -0.0016471111 + -0.0000000284 0.0020273674 0.0004580020 0.0000004898 + 0.0000077192 -0.0002817867 0.0000002059 0.0001721020 + -0.0000656061 0.0000001087 -0.0078244717 0.0073013214 + -0.0000003746 0.0000478785 -0.0000168445 0.0000000781 + 0.0031728748 -0.0068574732 -0.0000001696 0.0015982868 + -0.0049987775 -0.0000005359 0.0001816302 0.0002254017 + -0.0000000560 0.0000231481 -0.0001236159 -0.0000001392 + -0.0440686547 -0.0168437375 -0.0000005707 0.0108781325 + 0.0069616049 -0.0000009300 -0.0003432639 -0.0007295889 + -0.0000001390 0.0002261580 0.0003585735 0.0000000978 + -0.0993237681 -0.0760320632 0.0000091574 -0.0439444926 + -0.0133066870 0.0000036946 0.0000536751 0.0011404483 + 0.0000004532 -0.0008253379 0.0001871112 0.0000003854 + 0.3481871961 -0.0507827523 0.0000351345 0.0006932372 + -0.0005668138 -0.0000005756 -0.0747010722 0.0889802882 + -0.0000069632 -0.0945726762 0.0665138651 -0.0000392798 + -0.0001195652 -0.0002489748 -0.0000000075 0.0002449606 + -0.0002535403 -0.0000001909 -0.0004770837 -0.0006088319 + 0.0000002712 0.0001928852 0.0002229579 0.0000001762 + 0.0000937594 -0.0000360655 -0.0000001010 0.0000826001 + -0.0000551699 -0.0000000843 0.0010752767 0.0005577759 + 0.0000000067 0.0001048188 -0.0007591172 -0.0000003224 + -0.0000061608 -0.0000337750 -0.0000000325 0.0000308199 + -0.0000054307 -0.0000000286 + 0.0010257458 -0.0004406309 0.0000000115 0.0008586367 + -0.0000719177 0.0000004319 0.0000370235 0.0000091827 + 0.0000000125 0.0001208685 0.0002125726 0.0000001278 + -0.0007801862 0.0001128782 -0.0000006476 0.0000835664 + -0.0001939121 -0.0000000834 -0.0011027563 0.0014546895 + -0.0000001749 -0.0000864632 -0.0017894708 -0.0000005477 + -0.0001447403 0.0000045157 -0.0000000331 -0.0002024587 + -0.0001589777 -0.0000001937 0.0073010169 -0.0008007373 + 0.0000004475 -0.0000169897 0.0000322010 -0.0000000515 + -0.0042418657 -0.0041054212 0.0000005407 -0.0076145939 + -0.0025311840 -0.0000005516 -0.0000470385 0.0000732071 + 0.0000000667 0.0001496212 0.0002299525 0.0000001188 + -0.0194701055 0.0061240240 0.0000005406 0.0095885402 + -0.0488244068 0.0000052551 0.0000839920 0.0000485074 + -0.0000000056 -0.0004564748 -0.0005217468 -0.0000000797 + -0.0399597964 -0.0869203586 0.0000029008 -0.0493759897 + -0.1423222405 0.0000026157 0.0006101666 -0.0001855146 + -0.0000004568 0.0007184559 0.0006923295 0.0000000486 + -0.0507828421 0.2993512328 -0.0000371880 -0.0005676799 + 0.0001466693 0.0000003228 0.0760707356 -0.0197702063 + 0.0000016739 0.0794201507 0.0000988877 0.0000245525 + -0.0004299765 0.0000031662 0.0000002686 -0.0000732150 + -0.0003623806 -0.0000001572 -0.0000991619 0.0000073434 + -0.0000000643 -0.0002866678 -0.0006624567 -0.0000002989 + -0.0000491865 0.0000377211 0.0000000455 -0.0000404165 + 0.0000497095 0.0000000706 -0.0002922657 0.0000082058 + 0.0000000280 0.0000903531 0.0009785606 0.0000004232 + -0.0000224337 0.0000118396 0.0000000216 -0.0000155684 + -0.0000258337 0.0000000091 + 0.0000009965 0.0000004955 0.0001591228 -0.0000001633 + 0.0000002962 0.0001591215 0.0000016282 0.0000003212 + 0.0001124544 0.0000008001 -0.0000000367 0.0001124546 + 0.0000007852 0.0000007210 -0.0013699094 0.0000006802 + -0.0000002763 -0.0000106819 0.0000004230 -0.0000003472 + -0.0008868138 -0.0000006360 -0.0000000129 -0.0008868173 + 0.0000001648 0.0000005963 -0.0000080310 -0.0000001256 + 0.0000003134 -0.0000080325 -0.0000022029 0.0000001541 + -0.0012967527 0.0000003698 0.0000000993 -0.0000206130 + 0.0000019792 0.0000000661 0.0015845758 -0.0000003865 + 0.0000008546 0.0015845395 -0.0000008884 -0.0000005548 + 0.0000225316 0.0000003790 0.0000003092 0.0000225317 + -0.0000014338 -0.0000018054 0.0129716050 -0.0000023652 + 0.0000015060 0.0129722007 0.0000004219 -0.0000011413 + 0.0000061513 0.0000004548 -0.0000002777 0.0000061518 + 0.0000009546 0.0000071881 -0.0371380424 0.0000127722 + 0.0000111298 -0.0371369725 0.0000002732 -0.0000000919 + -0.0000261264 -0.0000002657 0.0000007571 -0.0000261260 + 0.0000342731 -0.0000384771 0.0247516951 -0.0000001146 + -0.0000004357 0.0000119862 -0.0000041960 -0.0000006265 + 0.0120907730 -0.0000406427 0.0000189232 0.0120910438 + -0.0000010021 -0.0000000768 0.0000135652 0.0000004241 + -0.0000008777 0.0000135636 -0.0000003944 -0.0000000098 + -0.0001166771 -0.0000000618 0.0000002647 -0.0001166671 + -0.0000008921 0.0000013651 -0.0000191586 -0.0000005131 + 0.0000000318 -0.0000191593 0.0000000011 -0.0000001942 + 0.0002057786 -0.0000000776 -0.0000003868 0.0002057795 + -0.0000012823 0.0000000891 -0.0000055221 -0.0000001369 + 0.0000001469 -0.0000055225 + -0.0000679602 -0.0000595533 0.0000001225 0.0001346402 + 0.0002183272 0.0000002426 -0.0013463906 0.0008482316 + 0.0000012364 -0.0009791281 0.0010352878 0.0000010447 + -0.0002750614 0.0000837322 0.0000000221 0.0008635730 + -0.0007796502 -0.0000020239 0.0001720922 -0.0000656338 + -0.0000001987 0.0000077406 -0.0002818095 -0.0000003223 + 0.0020273927 0.0004580307 -0.0000014585 -0.0012177369 + -0.0016471876 -0.0000006708 0.0000478873 -0.0000168564 + -0.0000001088 -0.0078246808 0.0073013575 0.0000058430 + 0.0000231227 -0.0001235970 0.0000000916 0.0001816583 + 0.0002254298 0.0000000930 0.0015982333 -0.0049988587 + -0.0000015687 0.0031726635 -0.0068575323 -0.0000032823 + 0.0002261736 0.0003585940 -0.0000000345 -0.0003432453 + -0.0007296084 -0.0000000377 0.0108784935 0.0069619266 + 0.0000045917 -0.0440714683 -0.0168453038 0.0000161308 + -0.0008253298 0.0001871485 0.0000000040 0.0000536935 + 0.0011404883 -0.0000000172 -0.0439458671 -0.0133032901 + -0.0000058200 -0.0993328397 -0.0760315659 -0.0000151342 + 0.0006932347 -0.0005668233 0.0000000748 0.3482012367 + -0.0507854349 -0.0001816371 0.0002449667 -0.0002535583 + -0.0000000029 -0.0001195743 -0.0002489821 -0.0000000445 + -0.0945726928 0.0665134869 0.0001052264 -0.0747018284 + 0.0889809190 0.0000781668 0.0000825918 -0.0000551677 + 0.0000000241 0.0000937634 -0.0000360741 0.0000000437 + 0.0001929054 0.0002229412 -0.0000001637 -0.0004771153 + -0.0006088416 -0.0000003413 0.0000308179 -0.0000054231 + 0.0000000057 -0.0000061620 -0.0000337763 0.0000000138 + 0.0001048930 -0.0007591376 0.0000000076 0.0010753069 + 0.0005577649 -0.0000001180 + 0.0001209140 0.0002125522 -0.0000001578 0.0000370696 + 0.0000091510 -0.0000000893 0.0008586075 -0.0000719778 + -0.0000008369 0.0010257755 -0.0004406216 -0.0000006276 + 0.0000836494 -0.0001939732 -0.0000000249 -0.0007801662 + 0.0001128555 0.0000015361 -0.0002024865 -0.0001589271 + 0.0000001897 -0.0001447924 0.0000045287 0.0000000958 + -0.0000865129 -0.0017895666 0.0000002617 -0.0011027705 + 0.0014547435 0.0000015862 -0.0000169991 0.0000322168 + 0.0000000794 0.0073011187 -0.0008006787 -0.0000029794 + 0.0001496607 0.0002300048 -0.0000000872 -0.0000470750 + 0.0000731498 -0.0000000330 -0.0076146704 -0.0025313904 + 0.0000016753 -0.0042419028 -0.0041054844 -0.0000012473 + -0.0004564606 -0.0005217505 0.0000000341 0.0000840076 + 0.0000484902 -0.0000000052 0.0095887624 -0.0488257945 + -0.0000344007 -0.0194712091 0.0061240671 0.0000043931 + 0.0007184376 0.0006923442 -0.0000000234 0.0006101630 + -0.0001855207 0.0000001695 -0.0493727980 -0.1423269935 + -0.0000270478 -0.0399594666 -0.0869196197 -0.0000078876 + -0.0005676814 0.0001466581 -0.0000000464 -0.0507855701 + 0.2993566848 0.0001689714 -0.0000732002 -0.0003624119 + 0.0000000266 -0.0004299929 0.0000031666 -0.0000001196 + 0.0794199545 0.0000990395 -0.0000584002 0.0760711157 + -0.0197700993 -0.0000451593 -0.0000404586 0.0000497100 + -0.0000000213 -0.0000492210 0.0000377858 -0.0000000070 + -0.0002866581 -0.0006624654 0.0000001368 -0.0000992344 + 0.0000073440 0.0000001362 -0.0000155719 -0.0000258388 + -0.0000000088 -0.0000224691 0.0000118455 -0.0000000009 + 0.0000904196 0.0009785761 -0.0000001012 -0.0002922880 + 0.0000081999 0.0000000211 + 0.0000008756 -0.0000000354 0.0001124547 0.0000019101 + 0.0000002658 0.0001124606 0.0000016338 -0.0000003264 + 0.0001591243 0.0000022193 -0.0000009937 0.0001591240 + 0.0000010145 -0.0000004595 -0.0000106823 -0.0000012020 + 0.0000002685 -0.0013699403 -0.0000002830 0.0000000793 + -0.0000080320 0.0000001265 0.0000008187 -0.0000080323 + -0.0000009885 0.0000005598 -0.0008868260 -0.0000004827 + 0.0000007904 -0.0008868439 0.0000002377 0.0000001677 + -0.0000206130 0.0000086048 -0.0000038846 -0.0012968058 + 0.0000007426 0.0000007002 0.0000225315 -0.0000010452 + -0.0000008819 0.0000225314 -0.0000039844 0.0000002539 + 0.0015845523 -0.0000031801 0.0000004010 0.0015845867 + 0.0000001415 -0.0000007486 0.0000061518 0.0000007096 + -0.0000007860 0.0000061522 0.0000072662 -0.0000307204 + 0.0129725412 0.0000169261 0.0000043603 0.0129723370 + 0.0000004848 0.0000010506 -0.0000261262 0.0000004645 + -0.0000007893 -0.0000261259 -0.0000273503 -0.0000483472 + -0.0371357502 0.0000088485 0.0000049870 -0.0371363271 + -0.0000008078 -0.0000000235 0.0000119864 -0.0001819977 + 0.0001677705 0.0247487006 0.0000003103 -0.0000010161 + 0.0000135642 -0.0000010308 0.0000000581 0.0000135640 + 0.0001074091 -0.0000485623 0.0120905284 0.0000712703 + -0.0000503776 0.0120903553 -0.0000009536 0.0000001085 + -0.0000191596 -0.0000011185 0.0000016809 -0.0000191597 + -0.0000009703 0.0000006456 -0.0001166688 -0.0000011142 + 0.0000005419 -0.0001166704 -0.0000002605 0.0000002680 + -0.0000055226 -0.0000014483 0.0000001422 -0.0000055229 + -0.0000017652 0.0000009530 0.0002057899 -0.0000012128 + 0.0000010807 0.0002057727 + -0.0003472668 -0.0014973879 0.0000001496 -0.0006417406 + 0.0001644412 -0.0000001413 0.0006599311 0.0005655510 + -0.0000001426 -0.0001184780 0.0001273137 0.0000001313 + 0.0009266017 -0.0006452659 -0.0000000702 0.0000858479 + -0.0001019997 -0.0000000000 0.0017502655 0.0025264422 + -0.0000001371 0.0009560664 0.0005514981 0.0000002087 + -0.0003284111 -0.0000885648 0.0000001075 0.0000678394 + -0.0001005815 0.0000000111 -0.0012437438 -0.0028915767 + -0.0000000705 0.0000543145 -0.0000007668 -0.0000000231 + -0.0049908895 -0.0025483482 0.0000002021 0.0009131976 + -0.0019311134 0.0000000078 0.0000172470 0.0001921299 + 0.0000000557 0.0000333661 -0.0000604394 -0.0000000770 + 0.0242241199 -0.0008288532 0.0000006908 -0.0005066969 + 0.0042593548 -0.0000004111 0.0000105220 -0.0001094459 + -0.0000000411 0.0001235686 0.0002191805 0.0000000619 + -0.1676935934 0.2131018043 -0.0000092587 0.0008734520 + -0.0185205984 0.0000042477 -0.0002640738 0.0000830165 + 0.0000001882 -0.0003103862 -0.0002696006 -0.0000000191 + -0.0747008628 0.0760690987 -0.0000051370 0.0002450771 + -0.0000729979 -0.0000001386 0.2255376158 -0.2745463231 + 0.0000132790 -0.0071873577 0.0055162859 -0.0000034625 + 0.0001951401 -0.0000052409 -0.0000001143 0.0000355031 + 0.0001380650 0.0000000614 -0.0000239315 -0.0000849329 + -0.0000000287 0.0000595383 0.0001215334 0.0000000692 + 0.0000378073 -0.0000178166 -0.0000000214 0.0000219171 + -0.0000166054 -0.0000000260 0.0015052008 0.0008076964 + -0.0000000868 0.0000109606 -0.0000993213 -0.0000000467 + 0.0000069226 -0.0000083821 -0.0000000110 0.0000054095 + 0.0000027512 -0.0000000071 + 0.0005169134 0.0026818866 -0.0000004212 0.0002838089 + -0.0000921881 0.0000002544 -0.0009705408 -0.0007510871 + 0.0000001403 0.0003252134 -0.0003690387 -0.0000003108 + -0.0002447168 -0.0022345089 0.0000003830 -0.0003575969 + 0.0000629122 0.0000000487 -0.0010520650 -0.0047975800 + 0.0000002124 -0.0013384911 -0.0010140184 -0.0000002727 + 0.0004699896 -0.0001198810 0.0000000071 -0.0001359646 + -0.0000047196 -0.0000000779 -0.0106169636 -0.0012299988 + 0.0000000586 -0.0000467108 0.0000045430 0.0000000608 + 0.0138072529 0.0005944722 -0.0000004314 -0.0006334237 + 0.0030614853 0.0000002332 0.0001414497 -0.0000233786 + -0.0000001076 0.0000954583 0.0001933514 0.0000001107 + -0.0074154798 -0.0908377188 0.0000028421 0.0024186479 + -0.0029568591 -0.0000001654 -0.0003505626 -0.0005968425 + -0.0000000852 -0.0004272023 -0.0005411501 -0.0000000950 + 0.1891425773 -0.5876249780 0.0000235755 -0.0017703070 + 0.0098969509 -0.0000015425 0.0012250829 0.0009869160 + -0.0000003151 0.0003886508 0.0014500824 0.0000005368 + 0.0889788607 -0.0197698993 0.0000014791 -0.0002530654 + -0.0003613937 -0.0000000670 -0.2745424439 0.6976768662 + -0.0000281562 0.0036881059 -0.0027584454 0.0000019746 + -0.0009749482 -0.0002767006 0.0000004961 0.0001378026 + -0.0009310441 -0.0000005012 -0.0002202746 -0.0000174020 + 0.0000001274 0.0000368706 -0.0001444339 -0.0000000752 + -0.0000183811 0.0000246698 -0.0000000222 0.0000110505 + 0.0000052668 0.0000000106 -0.0003398474 0.0008922279 + 0.0000001017 0.0000720448 -0.0000379792 -0.0000000046 + -0.0000404285 -0.0000090277 0.0000000048 0.0000096339 + -0.0000313571 -0.0000000064 + 0.0000005909 -0.0000003722 0.0001389204 -0.0000000585 + 0.0000000814 -0.0000299465 0.0000001858 -0.0000000795 + 0.0002921862 0.0000000765 -0.0000001119 -0.0001507929 + -0.0000002745 -0.0000001355 -0.0011386256 0.0000001105 + -0.0000000887 -0.0000137160 0.0000001581 0.0000002125 + -0.0012505893 -0.0000000424 0.0000002422 0.0001710676 + 0.0000001645 -0.0000001781 -0.0000152900 -0.0000002378 + 0.0000000730 0.0000203943 0.0000006967 0.0000004349 + 0.0016385933 0.0000000507 -0.0000000235 -0.0000137487 + -0.0000010245 -0.0000004922 -0.0002173910 -0.0000002091 + -0.0000003788 -0.0000003607 0.0000000989 -0.0000001663 + -0.0000187465 -0.0000001198 0.0000002061 0.0000441121 + 0.0000005125 0.0000021856 0.0186143319 0.0000001259 + 0.0000004848 -0.0000968818 0.0000002129 0.0000000649 + 0.0000141443 0.0000002265 0.0000001408 0.0000026800 + -0.0000019902 0.0000172654 -0.0565269822 -0.0000004868 + 0.0000003433 0.0033359314 -0.0000000761 -0.0000000912 + -0.0000218445 0.0000001860 -0.0000002409 -0.0000388374 + -0.0000082322 0.0000012754 0.0120907731 0.0000001349 + 0.0000002951 0.0000135642 0.0000105946 -0.0000225156 + 0.0235320281 -0.0000003710 -0.0000002823 -0.0004265285 + 0.0000003633 0.0000000204 0.0000164154 -0.0000002656 + 0.0000006127 0.0000183763 0.0000000653 0.0000000688 + 0.0000338272 -0.0000001761 0.0000003531 -0.0000265980 + -0.0000000022 -0.0000000266 -0.0000063411 -0.0000004812 + 0.0000000526 -0.0000166805 -0.0000001147 0.0000003788 + 0.0001249557 -0.0000003000 0.0000000113 -0.0000767500 + 0.0000000998 0.0000000172 -0.0000048534 -0.0000001914 + 0.0000003631 -0.0000107973 + -0.0003732007 0.0004158345 -0.0000001596 0.0024953951 + 0.0018859709 0.0000008667 -0.0004978673 0.0001429784 + 0.0000002130 -0.0003306789 -0.0014451160 -0.0000005833 + -0.0012965529 -0.0013104854 0.0000004037 0.0002428814 + -0.0002787609 -0.0000000428 -0.0003344885 -0.0019614746 + 0.0000001144 -0.0041410970 -0.0038861043 -0.0000001123 + 0.0001046267 -0.0001185379 0.0000001164 -0.0003080190 + 0.0004786516 0.0000001690 0.0040457268 -0.0080732690 + 0.0000005929 0.0000346137 -0.0000571771 -0.0000000672 + 0.0036579130 0.0006849624 -0.0000003639 -0.0048532548 + 0.0138752494 0.0000002231 0.0001510621 0.0001533182 + -0.0000000591 -0.0001484208 0.0000616066 0.0000001418 + -0.0051075986 0.0002059023 -0.0000000559 -0.0659959349 + -0.0508174856 -0.0000288349 -0.0003332588 -0.0006486965 + -0.0000000950 -0.0003041632 -0.0005004534 -0.0000001098 + 0.0161261735 0.0055649246 -0.0000023007 -0.6658508721 + -0.0504954354 -0.0002094099 0.0010771000 0.0010524824 + -0.0000002595 0.0002404819 0.0014686929 0.0000005374 + -0.0945685249 0.0794231942 -0.0000391131 -0.0001193201 + -0.0004277601 -0.0000001298 -0.0071872490 0.0036908941 + 0.0000006960 0.8234599282 0.0130853624 0.0002782109 + -0.0008609094 -0.0002917150 0.0000004617 0.0001944248 + -0.0009742328 -0.0000005010 -0.0001640257 -0.0000728298 + 0.0000000867 0.0001009591 -0.0001613718 -0.0000002104 + 0.0000111975 0.0000037805 -0.0000000371 0.0000433636 + -0.0000167934 -0.0000000149 -0.0000169362 0.0000563075 + 0.0000000469 0.0008236956 -0.0006674932 -0.0000003913 + -0.0000306307 -0.0000072168 -0.0000000081 0.0000134608 + -0.0000377040 -0.0000000209 + 0.0002951071 -0.0003632304 0.0000000004 -0.0001294480 + -0.0001602998 0.0000000932 -0.0000564730 0.0000123539 + 0.0000000578 0.0000913785 0.0002377749 0.0000000001 + -0.0017128103 -0.0000153312 0.0000001930 -0.0000246014 + -0.0000971315 -0.0000000314 -0.0000703844 0.0002780882 + -0.0000000197 -0.0003091120 0.0010952460 0.0000004911 + -0.0000845730 -0.0000380888 0.0000000030 -0.0000779975 + -0.0001403238 -0.0000001028 -0.0003476463 -0.0065185364 + -0.0000005189 -0.0000113404 0.0000259216 -0.0000000054 + -0.0006099505 0.0003147590 0.0000000190 -0.0024839994 + 0.0004565510 -0.0000007871 -0.0000046080 0.0000781171 + 0.0000000180 0.0001137455 0.0001392240 0.0000000607 + 0.0020479221 0.0016419338 -0.0000002025 -0.0442303300 + -0.0006198208 -0.0000143869 -0.0000023369 -0.0000822989 + -0.0000000230 -0.0002604916 -0.0002840727 -0.0000000390 + -0.0111811008 -0.0053552918 0.0000022792 -0.0265384395 + -0.0894679227 -0.0000079257 0.0003964899 0.0000670660 + -0.0000002141 0.0003267510 0.0004812658 0.0000000936 + 0.0665117300 0.0000954951 0.0000189792 -0.0002491359 + 0.0000031020 0.0000001136 0.0055178859 -0.0027621542 + -0.0000003008 0.0130831280 0.0997618863 0.0000019579 + -0.0002928161 -0.0000383618 0.0000001695 -0.0000054992 + -0.0002761999 -0.0000001320 0.0000124857 0.0000830798 + -0.0000000306 -0.0000251287 -0.0001416131 -0.0000001041 + -0.0000217144 0.0000160384 0.0000000204 -0.0000157467 + 0.0000211611 0.0000000244 -0.0001132808 -0.0000089222 + 0.0000000082 0.0004813634 0.0015727944 0.0000002312 + -0.0000137626 0.0000032296 0.0000000101 -0.0000052595 + -0.0000154878 0.0000000004 + -0.0000030924 0.0000009750 -0.0000299464 -0.0000016935 + 0.0000011945 0.0001389202 0.0000004053 0.0000004890 + -0.0001507983 -0.0000034412 0.0000006282 0.0002921850 + -0.0000025662 0.0000033765 -0.0011386214 -0.0000028336 + 0.0000017479 -0.0000137155 0.0000018160 -0.0000000057 + 0.0001710751 -0.0000012834 -0.0000026101 -0.0012505901 + 0.0000026331 0.0000007784 0.0000203946 0.0000005678 + 0.0000002915 -0.0000152904 -0.0000004565 -0.0000015313 + 0.0016385303 0.0000014430 0.0000011183 -0.0000137479 + 0.0000026975 -0.0000018299 -0.0000003743 -0.0000013479 + 0.0000078024 -0.0002173845 0.0000008026 0.0000018110 + 0.0000441129 -0.0000013464 -0.0000018606 -0.0000187463 + -0.0000035682 0.0000004950 -0.0000969000 -0.0000293726 + -0.0000120283 0.0186149753 0.0000003224 -0.0000008966 + 0.0000026795 -0.0000021335 0.0000003335 0.0000141457 + 0.0000077375 0.0000056386 0.0033360451 -0.0002165935 + -0.0000094095 -0.0565262161 0.0000032110 -0.0000006425 + -0.0000388408 -0.0000013019 0.0000011866 -0.0000218442 + -0.0000417923 0.0000186746 0.0120910459 0.0000002601 + 0.0000001119 0.0000135644 -0.0000003761 -0.0000053964 + -0.0004265278 0.0002785548 0.0000017066 0.0235303509 + -0.0000030660 -0.0000001460 0.0000183789 0.0000005039 + -0.0000013782 0.0000164148 0.0000030547 -0.0000004460 + -0.0000265973 0.0000021854 -0.0000035872 0.0000338406 + 0.0000004073 -0.0000012377 -0.0000166813 0.0000035156 + -0.0000003372 -0.0000063429 0.0000014515 -0.0000029131 + -0.0000767487 0.0000043638 -0.0000001781 0.0001249071 + -0.0000008121 -0.0000001579 -0.0000107975 0.0000011439 + -0.0000017671 -0.0000048547 + -0.0003306442 -0.0014449712 0.0000001488 -0.0004979060 + 0.0001430473 0.0000000078 0.0024954672 0.0018861589 + -0.0000009700 -0.0003732162 0.0004158729 0.0000004310 + 0.0002427437 -0.0002787414 -0.0000001669 -0.0012966293 + -0.0013106121 -0.0000008026 -0.0003081268 0.0004785841 + 0.0000001124 0.0001047667 -0.0001185921 -0.0000001719 + -0.0041413185 -0.0038862737 -0.0000003724 -0.0003342996 + -0.0019615021 -0.0000007468 0.0000346629 -0.0000572721 + 0.0000000292 0.0040453453 -0.0080733624 -0.0000048448 + -0.0001486313 0.0000616824 -0.0000000518 0.0001512469 + 0.0001533809 0.0000000753 -0.0048539031 0.0138746837 + 0.0000074275 0.0036579809 0.0006848228 -0.0000008192 + -0.0003041236 -0.0005003498 0.0000000211 -0.0003331596 + -0.0006486541 -0.0000000480 -0.0659960735 -0.0508167412 + 0.0000380524 -0.0051076629 0.0002059278 0.0000020999 + 0.0002406154 0.0014686402 -0.0000000169 0.0010771749 + 0.0010525291 0.0000002770 -0.6658485104 -0.0504936254 + 0.0004048053 0.0161259284 0.0055654223 -0.0000007731 + -0.0001192274 -0.0004276551 0.0000000037 -0.0945677513 + 0.0794215831 0.0001108156 0.0001942878 -0.0009739455 + 0.0000000243 -0.0008608355 -0.0002917182 -0.0000002619 + 0.8234563080 0.0130854312 -0.0005577053 -0.0071866369 + 0.0036897309 0.0000036174 0.0000432847 -0.0000167823 + 0.0000000101 0.0000113051 0.0000035794 0.0000000161 + 0.0001009323 -0.0001612416 0.0000001213 -0.0001637821 + -0.0000728484 -0.0000000548 0.0000134237 -0.0000375931 + -0.0000000048 -0.0000305416 -0.0000072246 0.0000000138 + 0.0008243313 -0.0006674457 -0.0000002623 -0.0000168253 + 0.0000560753 -0.0000000363 + 0.0000913905 0.0002377502 -0.0000000717 -0.0000564499 + 0.0000123033 0.0000000298 -0.0001294985 -0.0001604133 + -0.0000001634 0.0002951214 -0.0003632927 -0.0000002532 + -0.0000245151 -0.0000971471 0.0000000070 -0.0017127704 + -0.0000153299 0.0000009466 -0.0000779577 -0.0001402884 + 0.0000000687 -0.0000846427 -0.0000380750 0.0000000088 + -0.0003090045 0.0010953007 0.0000006733 -0.0000704684 + 0.0002781148 0.0000001112 -0.0000113629 0.0000259763 + 0.0000000268 -0.0003475101 -0.0065185886 -0.0000027319 + 0.0001138521 0.0001392233 -0.0000000358 -0.0000046942 + 0.0000780856 -0.0000000065 -0.0024838795 0.0004566915 + 0.0000019683 -0.0006099837 0.0003148466 0.0000003492 + -0.0002604980 -0.0002841108 0.0000000139 -0.0000023706 + -0.0000823193 -0.0000000100 -0.0442305494 -0.0006199927 + 0.0000223281 0.0020479841 0.0016419622 0.0000001170 + 0.0003266969 0.0004812716 -0.0000000081 0.0003964397 + 0.0000670595 0.0000001131 -0.0265363459 -0.0894686172 + 0.0000038393 -0.0111812268 -0.0053554552 -0.0000012368 + -0.0002491681 0.0000030533 -0.0000000212 0.0665112154 + 0.0000961009 -0.0000484008 -0.0000054461 -0.0002763089 + 0.0000000112 -0.0002928319 -0.0000383608 -0.0000000879 + 0.0130822492 0.0997617837 0.0000249360 0.0055176736 + -0.0027616809 -0.0000028984 -0.0000157504 0.0000211585 + -0.0000000033 -0.0000217626 0.0000161308 -0.0000000012 + -0.0000251226 -0.0001416542 0.0000000287 0.0000123483 + 0.0000830916 0.0000000613 -0.0000052501 -0.0000155273 + -0.0000000022 -0.0000137912 0.0000032332 0.0000000034 + 0.0004812132 0.0015728454 0.0000002232 -0.0001133333 + -0.0000088208 0.0000000679 + -0.0000030063 0.0000016383 0.0002921892 0.0000004327 + 0.0000004788 -0.0001507990 -0.0000037933 -0.0000005049 + 0.0001389220 -0.0000030542 0.0000007091 -0.0000299437 + -0.0000033521 0.0000020485 -0.0000137168 -0.0000022159 + 0.0000039470 -0.0011386370 0.0000012044 -0.0000008922 + -0.0000152912 0.0000020825 0.0000009295 0.0000203971 + 0.0000041759 0.0000030485 -0.0012506022 0.0000015685 + 0.0000017658 0.0001710780 0.0000010831 0.0000009252 + -0.0000137485 -0.0000008490 0.0000056178 0.0016384840 + -0.0000010232 -0.0000022427 -0.0000187463 0.0000004550 + 0.0000015909 0.0000441133 0.0000029730 -0.0000060632 + -0.0002173941 -0.0000018023 -0.0000019419 -0.0000003724 + -0.0000018624 0.0000004481 0.0000141443 0.0000002957 + -0.0000001879 0.0000026804 0.0000377946 0.0000260819 + 0.0186151933 0.0000024026 0.0000014047 -0.0000968924 + -0.0000015387 -0.0000007563 -0.0000218450 0.0000014935 + -0.0000018990 -0.0000388379 0.0004076261 0.0000256648 + -0.0565267794 -0.0000140641 -0.0000044900 0.0033361131 + 0.0000004202 0.0000007394 0.0000135643 0.0001031527 + -0.0000630881 0.0120905235 0.0000001214 -0.0000000173 + 0.0000164157 -0.0000014155 0.0000001676 0.0000183764 + -0.0005521822 0.0000247533 0.0235312161 0.0000110160 + -0.0000110920 -0.0004265189 0.0000035609 -0.0000002712 + -0.0000063413 0.0000004535 -0.0000012398 -0.0000166818 + 0.0000016736 -0.0000030569 0.0000338405 0.0000031114 + -0.0000002694 -0.0000265991 0.0000010767 -0.0000016420 + -0.0000048532 -0.0000005857 -0.0000001542 -0.0000107982 + 0.0000013589 0.0000003101 0.0001249003 0.0000012120 + -0.0000024605 -0.0000767532 + -0.0001185134 0.0001273198 -0.0000000749 0.0006599639 + 0.0005655608 0.0000002350 -0.0006417338 0.0001644313 + 0.0000004373 -0.0003472539 -0.0014973552 -0.0000006240 + 0.0000858704 -0.0001020157 -0.0000000850 0.0009265573 + -0.0006452406 -0.0000009939 0.0000678077 -0.0001005065 + -0.0000000619 -0.0003283786 -0.0000886060 -0.0000000317 + 0.0009560506 0.0005515749 -0.0000002819 0.0017502558 + 0.0025263000 0.0000000407 0.0000542860 -0.0000007262 + -0.0000000035 -0.0012435597 -0.0028916835 -0.0000000704 + 0.0000333583 -0.0000603959 0.0000000543 0.0000173093 + 0.0001920970 0.0000000158 0.0009131487 -0.0019310930 + -0.0000011768 -0.0049910563 -0.0025487803 0.0000006634 + 0.0001235358 0.0002192238 -0.0000000171 0.0000105497 + -0.0001094120 -0.0000000039 -0.0005066830 0.0042593879 + 0.0000022689 0.0242248238 -0.0008281154 -0.0000032102 + -0.0003104112 -0.0002695618 0.0000000110 -0.0002640756 + 0.0000830386 -0.0000000633 0.0008737719 -0.0185206297 + -0.0000105932 -0.1676985377 0.2131163110 0.0001413229 + 0.0002450915 -0.0000729461 0.0000000175 -0.0747019397 + 0.0760691688 0.0000713116 0.0000355043 0.0001380588 + -0.0000000098 0.0001952261 -0.0000052389 0.0000000474 + -0.0071875691 0.0055162245 0.0000080603 0.2255429726 + -0.2745615585 -0.0002069711 0.0000218746 -0.0000166088 + -0.0000000001 0.0000378288 -0.0000178560 0.0000000019 + 0.0000595008 0.0001215913 -0.0000000381 -0.0000238567 + -0.0000849176 0.0000000203 0.0000054093 0.0000027494 + 0.0000000005 0.0000069691 -0.0000083791 0.0000000011 + 0.0000108510 -0.0000993242 -0.0000000303 0.0015050515 + 0.0008079131 -0.0000001686 + 0.0003253358 -0.0003690252 0.0000000608 -0.0009704184 + -0.0007509547 -0.0000001662 0.0002839121 -0.0000921650 + -0.0000003730 0.0005171174 0.0026820359 0.0000013182 + -0.0003574671 0.0000627051 0.0000001301 -0.0002447269 + -0.0022346694 -0.0000007650 -0.0001360864 -0.0000045972 + 0.0000000868 0.0004699331 -0.0001200610 -0.0000001994 + -0.0013386334 -0.0010138441 0.0000002673 -0.0010519853 + -0.0047978608 -0.0000013473 -0.0000468809 0.0000045326 + -0.0000000317 -0.0106168355 -0.0012306793 0.0000028287 + 0.0000954156 0.0001936059 -0.0000000743 0.0001416196 + -0.0000236023 0.0000000403 -0.0006336976 0.0030615093 + 0.0000013361 0.0138069051 0.0005936971 -0.0000047258 + -0.0004271926 -0.0005410258 0.0000000301 -0.0003504665 + -0.0005967814 -0.0000000373 0.0024187963 -0.0029568445 + -0.0000019698 -0.0074147062 -0.0908403192 -0.0000457135 + 0.0003886344 0.0014501864 -0.0000000584 0.0012249825 + 0.0009870802 0.0000002737 -0.0017695856 0.0098965865 + 0.0000048929 0.1891611332 -0.5876511599 -0.0003181428 + -0.0002529740 -0.0003612423 0.0000000102 0.0889778959 + -0.0197695540 -0.0000503356 0.0001377584 -0.0009309611 + 0.0000000502 -0.0009745662 -0.0002767062 -0.0000002622 + 0.0036866358 -0.0027583275 -0.0000042072 -0.2745597095 + 0.6977056123 0.0004166993 0.0000107578 0.0000052794 + 0.0000000115 -0.0000183471 0.0000246313 0.0000000280 + 0.0000366992 -0.0001441378 0.0000000125 -0.0002201529 + -0.0000173576 -0.0000000593 0.0000095840 -0.0000312727 + -0.0000000075 -0.0000402830 -0.0000090071 0.0000000116 + 0.0000717247 -0.0000379765 -0.0000000202 -0.0003401261 + 0.0008926704 0.0000004083 + 0.0000009239 -0.0000004835 -0.0001507976 0.0000002039 + -0.0000001181 0.0002921865 0.0000006702 -0.0000001923 + -0.0000299469 0.0000008519 0.0000017043 0.0001389228 + 0.0000003860 -0.0000000222 -0.0000137164 -0.0000005916 + -0.0000001558 -0.0011386248 -0.0000001949 0.0000001598 + 0.0000203959 0.0000003242 0.0000003602 -0.0000152910 + -0.0000012306 -0.0000006493 0.0001710720 -0.0000022354 + -0.0000042742 -0.0012506005 -0.0000002853 -0.0000000295 + -0.0000137478 -0.0000034664 -0.0000013109 0.0016386038 + 0.0000006066 0.0000007803 0.0000441124 -0.0000002252 + -0.0000005372 -0.0000187461 -0.0000012108 0.0000026365 + -0.0000003601 0.0000091170 0.0000007431 -0.0002174021 + 0.0000001777 -0.0000005126 0.0000026797 -0.0000000614 + -0.0000007476 0.0000141442 0.0000012900 -0.0000034766 + -0.0000969098 -0.0000038199 -0.0000476572 0.0186149413 + -0.0000001934 0.0000024110 -0.0000388373 0.0000006359 + 0.0000009653 -0.0000218445 0.0000010438 0.0000107463 + 0.0033360255 0.0001282096 -0.0003234656 -0.0565241097 + -0.0000003971 -0.0000006538 0.0000135643 0.0000773553 + -0.0000464854 0.0120903549 0.0000008451 -0.0000022164 + 0.0000183760 -0.0000008565 -0.0000001984 0.0000164154 + 0.0000023001 -0.0000030421 -0.0004265138 -0.0002050773 + 0.0004125920 0.0235288813 -0.0000007957 0.0000000587 + -0.0000166812 -0.0000003945 0.0000006048 -0.0000063413 + -0.0000003597 0.0000004305 -0.0000265983 -0.0000006702 + 0.0000001811 0.0000338347 -0.0000001488 0.0000001108 + -0.0000107976 -0.0000005814 0.0000000608 -0.0000048534 + -0.0000005208 0.0000000539 -0.0000767488 -0.0000016247 + 0.0000016296 0.0001249582 + -0.0106443837 -0.0000472080 0.0000010277 -0.0005224378 + -0.0002681089 0.0000000281 -0.0007050084 -0.0016045668 + 0.0000001990 -0.0000855106 -0.0000834967 -0.0000000046 + 0.0008505523 0.0018605466 0.0000000769 0.0001258106 + 0.0000693247 -0.0000000360 -0.3057087498 0.0192941473 + -0.0000017781 0.0000392094 0.0001972929 0.0000000449 + 0.0004885192 -0.0019274991 0.0000007501 0.0000488690 + -0.0000224229 -0.0000000045 0.0004680505 0.0000045822 + -0.0000000167 -0.0000385799 -0.0000671489 -0.0000000200 + -0.0136095017 0.0031971267 0.0000003563 0.0000155332 + -0.0000750269 0.0000000024 0.0001056916 -0.0000578644 + -0.0000001778 -0.0000087527 -0.0000024731 0.0000000035 + 0.0001662028 -0.0027504127 0.0000002407 0.0000222723 + 0.0000211908 -0.0000000246 0.0000171213 -0.0000885954 + -0.0000000774 0.0000497347 0.0000614330 0.0000000150 + -0.0000717228 0.0007064249 -0.0000001775 0.0002430787 + -0.0001476419 0.0000000975 -0.0000523739 0.0000593675 + 0.0000000343 -0.0000928235 -0.0000309243 0.0000000130 + -0.0004773298 -0.0001042988 0.0000000022 0.0000793235 + -0.0000396051 -0.0000000490 -0.0000248995 -0.0002175639 + 0.0000000373 -0.0001583241 0.0000128103 -0.0000000655 + 0.0000342823 -0.0000165830 -0.0000000136 0.0000189588 + 0.0000123415 0.0000000033 0.3295770033 -0.0176453830 + -0.0000019034 -0.0000569877 0.0000112762 -0.0000000363 + -0.0010014154 -0.0015833034 0.0000014607 -0.0000024445 + 0.0000002000 -0.0000000040 0.0009487964 0.0012670599 + -0.0000000515 -0.0000155100 0.0000090965 0.0000000056 + -0.0000244988 -0.0000136813 0.0000000426 0.0000022447 + 0.0000095876 -0.0000000004 + 0.0253248321 0.0041085315 -0.0000003439 0.0009661937 + 0.0002521467 -0.0000000671 -0.0006683105 0.0014395593 + -0.0000003147 0.0000101238 0.0000791698 0.0000000809 + 0.0008350718 -0.0042793491 0.0000006529 0.0000775289 + 0.0000940668 -0.0000000597 0.0215981711 -0.0584127593 + 0.0000006265 0.0000188739 -0.0002245144 -0.0000001559 + 0.0000861027 -0.0021721155 0.0000007482 -0.0000322441 + 0.0000247655 0.0000000294 0.0000273386 -0.0001758302 + -0.0000000249 -0.0000106090 0.0000706176 0.0000000459 + -0.0254108082 0.0050497692 0.0000006716 0.0000028760 + -0.0000425133 0.0000000101 -0.0001503941 -0.0001272399 + -0.0000000939 0.0000052040 0.0000059275 -0.0000000098 + -0.0017196320 -0.0036942360 0.0000008152 0.0000114429 + 0.0001613091 -0.0000001025 0.0000571647 -0.0000248554 + -0.0000000858 -0.0000274654 -0.0000390335 -0.0000000136 + -0.0002169624 0.0003012662 -0.0000002157 0.0001712298 + -0.0003963944 0.0000000967 0.0000173784 -0.0000644065 + -0.0000000248 0.0000698165 0.0000024996 -0.0000000152 + -0.0006090391 0.0000071931 -0.0000000178 -0.0000541431 + 0.0000510194 0.0000000445 -0.0000871499 -0.0000126862 + 0.0000000318 -0.0000719414 0.0000829949 -0.0000000410 + -0.0000190257 0.0000211846 0.0000000132 -0.0000191082 + 0.0000112277 0.0000000091 -0.0176485432 0.0594519607 + -0.0000049895 0.0000843890 -0.0000100317 0.0000000206 + -0.0024929216 -0.0029609815 0.0000029086 -0.0000023853 + -0.0000045762 0.0000000000 -0.0001033960 0.0014167247 + -0.0000003152 0.0000022638 0.0000061584 0.0000000210 + -0.0000162578 0.0000055935 0.0000000627 -0.0000056643 + -0.0000021629 0.0000000018 + 0.0000012359 -0.0000060852 0.0009182332 -0.0000000026 + -0.0000004252 0.0001999135 0.0000012953 0.0000009275 + -0.0034055114 -0.0000001783 0.0000003214 0.0000766227 + -0.0000008507 0.0000006666 0.0077435387 -0.0000001183 + -0.0000001323 -0.0001827916 -0.0000054707 0.0000043055 + -0.0303817465 -0.0000003687 0.0000000573 -0.0006206289 + -0.0000000181 0.0000024027 0.0005952305 -0.0000000511 + -0.0000002073 0.0000239385 -0.0000001716 -0.0000000618 + -0.0007093630 0.0000002505 -0.0000000791 0.0001338853 + 0.0000015714 -0.0000014056 0.0012527555 0.0000000591 + 0.0000000027 0.0001106200 0.0000004082 0.0000001613 + 0.0000986956 0.0000001284 0.0000001453 -0.0000551618 + 0.0000015856 0.0000008927 0.0065622381 0.0000002447 + -0.0000000694 -0.0009088754 -0.0000003090 0.0000002345 + -0.0000256504 -0.0000001003 0.0000001064 0.0000168078 + 0.0000002661 -0.0000007809 -0.0000821078 -0.0000001699 + -0.0000001062 0.0001099388 -0.0000001860 0.0000000859 + 0.0000026681 0.0000000153 -0.0000001360 0.0000558154 + 0.0000005324 0.0000002799 -0.0001166772 0.0000000876 + 0.0000000625 -0.0000191596 -0.0000004653 0.0000011471 + 0.0000338272 0.0000003640 -0.0000000025 -0.0000265973 + 0.0000003453 0.0000000109 -0.0000063417 -0.0000000758 + 0.0000001856 -0.0000166811 -0.0000018500 -0.0000048880 + 0.0207107161 -0.0000000698 0.0000001383 -0.0000496045 + 0.0000022072 0.0000019539 0.0004182742 -0.0000000758 + -0.0000000194 0.0000458851 -0.0000003133 0.0000002689 + -0.0026426810 -0.0000000366 0.0000000034 0.0001582401 + 0.0000003110 -0.0000000149 -0.0000165164 -0.0000000256 + 0.0000000533 -0.0000017487 + -0.0001662253 0.0011374354 0.0000001704 -0.0085382223 + 0.0263379307 0.0000031397 0.0000761065 0.0000894200 + -0.0000000570 0.0019250377 0.0005950820 0.0000006724 + -0.0043693463 -0.0016755115 -0.0000013215 0.0000429783 + 0.0000388124 0.0000000671 -0.0002589737 -0.0001257087 + 0.0000001608 -0.1208639635 0.1105196084 0.0000080540 + 0.0000505466 -0.0000323017 -0.0000000303 -0.0009514933 + -0.0006065740 -0.0000005114 -0.0000697522 -0.0002299932 + 0.0000000163 0.0000790715 0.0000480904 -0.0000000264 + -0.0000032750 -0.0000066401 -0.0000000093 0.0102216319 + -0.0139493432 -0.0000014754 0.0000020812 0.0000107672 + 0.0000000172 0.0000008262 -0.0002011403 -0.0000000372 + 0.0001226215 0.0000597745 0.0000001135 -0.0012233619 + -0.0023871467 -0.0000010968 -0.0000373407 -0.0000676172 + -0.0000000083 -0.0000052505 0.0000461583 0.0000000489 + -0.0002866250 -0.0000834908 -0.0000000318 0.0000404253 + -0.0001624418 0.0000001285 -0.0000330920 0.0001001607 + 0.0000000513 -0.0000929505 -0.0000039015 0.0000000087 + 0.0001951293 -0.0002841197 0.0000000341 0.0000926117 + -0.0000477606 -0.0000000563 0.0000606470 0.0000339243 + 0.0000000105 0.0001062956 -0.0000250674 0.0000000121 + 0.0000178267 -0.0000207606 -0.0000000155 0.0000377398 + -0.0000176110 -0.0000000097 -0.0000562529 0.0000848480 + -0.0000000284 0.1240060726 -0.1165409040 -0.0000057866 + -0.0000028922 -0.0000033834 -0.0000000049 -0.0010016251 + -0.0024924181 -0.0000025077 -0.0000025266 0.0000089390 + -0.0000000245 0.0008752201 -0.0001390245 0.0000003726 + -0.0000015092 -0.0000081988 -0.0000000042 0.0000118088 + 0.0000001077 -0.0000000349 + -0.0000922857 -0.0001031424 -0.0000000471 0.0009691711 + 0.0020073310 -0.0000005383 -0.0000006424 -0.0000805419 + -0.0000000516 -0.0003368144 -0.0011878266 0.0000000549 + -0.0006489178 0.0009408119 -0.0000011445 0.0000292271 + 0.0001766441 0.0000001192 0.0000546580 0.0000727191 + 0.0000001091 0.1082177150 -0.2432530546 -0.0000192348 + -0.0000211471 0.0000255053 -0.0000000100 -0.0026196262 + -0.0007317513 -0.0000013427 -0.0002522009 0.0003575462 + 0.0000000631 -0.0000075810 -0.0000497634 -0.0000000277 + -0.0000834000 -0.0000227557 -0.0000000218 0.0146584038 + -0.0187813836 -0.0000019458 -0.0000006081 -0.0000056842 + 0.0000000065 -0.0001097782 -0.0000203628 0.0000002209 + 0.0000715893 0.0000568636 0.0000001694 -0.0034203656 + -0.0023081265 -0.0000019993 0.0000217245 0.0000430849 + 0.0000000040 -0.0000997904 -0.0000047192 0.0000000747 + -0.0004126170 0.0001391765 -0.0000000556 0.0007656894 + 0.0001821248 0.0000004743 -0.0000023740 -0.0000612537 + -0.0000000267 0.0000461354 -0.0000322863 -0.0000000273 + 0.0002232256 -0.0006614635 0.0000000278 -0.0000340060 + 0.0000362069 0.0000000330 0.0001208105 -0.0001405819 + 0.0000000260 -0.0001585870 -0.0001413457 -0.0000001164 + 0.0000079387 0.0000148472 -0.0000000012 -0.0000182149 + 0.0000247588 0.0000000108 0.0000097785 -0.0000105035 + 0.0000000314 -0.1165411379 0.2650229760 0.0000277206 + -0.0000029824 0.0000005042 -0.0000000005 -0.0015827489 + -0.0029621027 -0.0000032547 0.0000149483 -0.0000063983 + -0.0000000335 0.0012283727 0.0014914666 0.0000007943 + 0.0000026748 0.0000031297 0.0000000036 0.0000037634 + -0.0000306489 -0.0000000641 + 0.0000004317 0.0000002139 0.0001999209 0.0000055317 + 0.0000033239 0.0009181058 -0.0000004456 0.0000000811 + 0.0000766284 0.0000000361 -0.0000011742 -0.0034055530 + -0.0000020658 0.0000004350 0.0077435826 -0.0000001240 + 0.0000002471 -0.0001827907 -0.0000001350 0.0000005728 + -0.0006206403 0.0000026348 -0.0000200428 -0.0303821483 + 0.0000001725 0.0000000889 0.0000239378 -0.0000028555 + -0.0000013557 0.0005952604 -0.0000004434 0.0000002889 + -0.0007093414 0.0000001106 -0.0000002437 0.0001338825 + -0.0000000772 -0.0000001882 0.0001106216 0.0000042765 + 0.0000000226 0.0012529543 -0.0000000209 -0.0000001812 + -0.0000551633 -0.0000001769 -0.0000007128 0.0000986883 + 0.0000003800 -0.0000004097 -0.0009088815 -0.0000001408 + -0.0000032980 0.0065621432 -0.0000001727 0.0000000980 + 0.0000168085 -0.0000004286 0.0000002345 -0.0000256505 + -0.0000000308 0.0000003001 0.0001099371 0.0000012282 + 0.0000001273 -0.0000821622 -0.0000000013 0.0000000472 + 0.0000558160 -0.0000001641 -0.0000000103 0.0000026709 + -0.0000001074 -0.0000008111 -0.0001166671 0.0000000297 + -0.0000000491 -0.0000191599 0.0000002498 -0.0000005374 + -0.0000265980 -0.0000018091 -0.0000001614 0.0000338404 + -0.0000000211 -0.0000000025 -0.0000166816 0.0000000911 + -0.0000001902 -0.0000063414 -0.0000000597 -0.0000000023 + -0.0000496045 -0.0000054783 0.0000269364 0.0207110352 + 0.0000000307 -0.0000000110 0.0000458854 -0.0000007139 + -0.0000035625 0.0004182872 0.0000000280 -0.0000000905 + 0.0001582433 -0.0000000120 0.0000003959 -0.0026425992 + 0.0000000283 -0.0000000037 -0.0000017485 0.0000002245 + -0.0000003754 -0.0000165185 + 0.0019250259 0.0005950674 -0.0000024141 0.0000761098 + 0.0000894221 0.0000000984 -0.0085385055 0.0263381355 + 0.0000112706 -0.0001662432 0.0011374520 0.0000004687 + 0.0000429829 0.0000388119 -0.0000001389 -0.0043694644 + -0.0016754838 0.0000052418 -0.0009514905 -0.0006065538 + 0.0000008093 0.0000505455 -0.0000323011 0.0000000053 + -0.1208624856 0.1105157879 0.0000716519 -0.0002589761 + -0.0001257085 -0.0000003614 0.0000790727 0.0000480932 + 0.0000000659 -0.0000697517 -0.0002300042 -0.0000003555 + 0.0000008259 -0.0002011394 -0.0000000071 0.0000020823 + 0.0000107705 -0.0000000317 0.0102215596 -0.0139491809 + -0.0000077029 -0.0000032763 -0.0000066403 0.0000000508 + -0.0000052526 0.0000461534 -0.0000000371 -0.0000373385 + -0.0000676216 0.0000000002 -0.0012233508 -0.0023871156 + 0.0000029685 0.0001226190 0.0000597795 -0.0000004799 + -0.0000929538 -0.0000038908 0.0000000285 -0.0000330839 + 0.0001001609 0.0000000213 0.0000404141 -0.0001624438 + -0.0000002432 -0.0002866272 -0.0000835016 0.0000001482 + 0.0000926118 -0.0000477591 -0.0000000071 0.0001951331 + -0.0002841123 -0.0000002704 0.0000377423 -0.0000176177 + -0.0000000146 0.0000178220 -0.0000207614 -0.0000000051 + 0.0001063021 -0.0000250652 -0.0000000477 0.0000606446 + 0.0000339324 -0.0000000292 -0.0010016081 -0.0024923659 + 0.0000019638 -0.0000028920 -0.0000033841 0.0000000222 + 0.1240050497 -0.1165375551 -0.0000810936 -0.0000562540 + 0.0000848493 0.0000000728 0.0000118081 0.0000001062 + 0.0000000229 -0.0000015107 -0.0000081989 -0.0000000005 + 0.0008752387 -0.0001390532 -0.0000017604 -0.0000025251 + 0.0000089364 0.0000000889 + -0.0003368524 -0.0011878003 0.0000010053 -0.0000006456 + -0.0000805442 -0.0000000211 0.0009691473 0.0020071812 + 0.0000006171 -0.0000922902 -0.0001031527 -0.0000000579 + 0.0000292245 0.0001766398 0.0000000173 -0.0006488357 + 0.0009408495 -0.0000014918 -0.0026195699 -0.0007317130 + 0.0000017621 -0.0000211467 0.0000255054 0.0000000198 + 0.1082142137 -0.2432477064 -0.0001095706 0.0000546622 + 0.0000727197 0.0000001696 -0.0000075846 -0.0000497628 + -0.0000000473 -0.0002522146 0.0003575578 0.0000004870 + -0.0001097836 -0.0000203627 -0.0000002319 -0.0000006078 + -0.0000056878 0.0000000145 0.0146584034 -0.0187813335 + -0.0000117773 -0.0000834018 -0.0000227585 -0.0000000039 + -0.0000997889 -0.0000047175 -0.0000000240 0.0000217240 + 0.0000430898 -0.0000000005 -0.0034203539 -0.0023081318 + -0.0000005228 0.0000715918 0.0000568647 0.0000002203 + 0.0000461357 -0.0000322872 -0.0000000003 -0.0000023773 + -0.0000612560 -0.0000000218 0.0007657062 0.0001821597 + -0.0000006598 -0.0004126251 0.0001391828 0.0000002298 + -0.0000340075 0.0000362084 0.0000000025 0.0002232358 + -0.0006614810 -0.0000003393 -0.0000182159 0.0000247598 + 0.0000000081 0.0000079432 0.0000148482 0.0000000118 + -0.0001586025 -0.0001413525 0.0000000965 0.0001208128 + -0.0001405851 -0.0000001205 -0.0015826884 -0.0029620083 + 0.0000023806 -0.0000029814 0.0000005028 -0.0000000172 + -0.1165377908 0.2650175490 0.0001174157 0.0000097807 + -0.0000105045 -0.0000000176 0.0000037645 -0.0000306524 + 0.0000000534 0.0000026775 0.0000031299 -0.0000000026 + 0.0012283923 0.0014914482 0.0000004599 0.0000149490 + -0.0000063985 -0.0000000435 + -0.0000025045 0.0000028386 -0.0034054769 -0.0000003297 + -0.0000001819 0.0000766190 -0.0000015001 -0.0000132864 + 0.0009182852 -0.0000002387 -0.0000007733 0.0001999191 + -0.0000001402 -0.0000001866 -0.0001827940 0.0000067656 + -0.0000024733 0.0077435207 0.0000015316 0.0000012775 + 0.0005952493 -0.0000005247 -0.0000007399 0.0000239396 + 0.0000739609 -0.0001054541 -0.0303831734 0.0000000725 + 0.0000000029 -0.0006206352 -0.0000008297 0.0000003743 + 0.0001338840 0.0000002945 0.0000003218 -0.0007093565 + -0.0000000809 0.0000002688 0.0000986913 0.0000005411 + 0.0000000595 -0.0000551609 -0.0000012172 -0.0000033205 + 0.0012528323 0.0000003892 0.0000000138 0.0001106204 + -0.0000000802 0.0000000512 -0.0000256495 -0.0000002690 + 0.0000006145 0.0000168077 0.0000014701 0.0000001845 + 0.0065622200 -0.0000009839 0.0000008985 -0.0009088815 + -0.0000008384 0.0000010315 0.0000026697 -0.0000003842 + 0.0000003351 0.0000558136 -0.0000015372 0.0000006248 + -0.0000821561 0.0000011143 -0.0000009251 0.0001099385 + 0.0000001346 0.0000003639 -0.0000191595 -0.0000006292 + -0.0000002716 -0.0001166695 0.0000004068 -0.0000009274 + -0.0000063410 0.0000012676 0.0000000468 -0.0000166804 + 0.0000011865 0.0000000438 0.0000338413 -0.0000002234 + 0.0000003391 -0.0000265984 0.0000019901 0.0000027830 + 0.0004182745 0.0000004951 -0.0000007118 0.0000458854 + -0.0000801699 0.0001161150 0.0207119794 0.0000005076 + -0.0000000818 -0.0000496069 0.0000001055 -0.0000001484 + -0.0000165189 0.0000010551 -0.0000000061 -0.0000017488 + -0.0000010399 0.0000012839 -0.0026426264 0.0000002325 + -0.0000003847 0.0001582426 + -0.0000855123 -0.0000835094 0.0000000379 -0.0007050344 + -0.0016045579 -0.0000019367 -0.0005224587 -0.0002681223 + 0.0000001460 -0.0106444333 -0.0000472157 0.0000032215 + 0.0001258245 0.0000693264 -0.0000000509 0.0008505725 + 0.0018606014 0.0000035023 0.0000488737 -0.0000224192 + -0.0000000159 0.0004885133 -0.0019275621 -0.0000015821 + 0.0000392107 0.0001972994 -0.0000002292 -0.3056920416 + 0.0192935203 0.0001152786 -0.0000385886 -0.0000671476 + 0.0000000601 0.0004680422 0.0000045926 -0.0000004489 + -0.0000087491 -0.0000024645 -0.0000000216 0.0001056935 + -0.0000578738 0.0000001740 0.0000155379 -0.0000750339 + 0.0000000045 -0.0136095947 0.0031971533 0.0000065332 + 0.0000497413 0.0000614309 -0.0000000022 0.0000171184 + -0.0000885999 0.0000000207 0.0000222758 0.0000211852 + -0.0000003399 0.0001661842 -0.0027504720 0.0000011434 + -0.0000928994 -0.0000308476 0.0000000328 -0.0000523976 + 0.0000593592 0.0000000048 0.0002431056 -0.0001476404 + -0.0000002051 -0.0000717506 0.0007064785 0.0000004827 + 0.0000793487 -0.0000396011 -0.0000000049 -0.0004773464 + -0.0001043015 0.0000000946 0.0000189949 0.0000122704 + -0.0000000123 0.0000343162 -0.0000165828 -0.0000000073 + -0.0001583348 0.0000128075 0.0000001170 -0.0000248858 + -0.0002175889 -0.0000001037 -0.0000024507 0.0000001999 + 0.0000000227 -0.0010014332 -0.0015833567 -0.0000016378 + -0.0000569929 0.0000112800 0.0000000446 0.3295605151 + -0.0176446277 -0.0001235513 0.0000022469 0.0000095815 + 0.0000000025 -0.0000244961 -0.0000136809 -0.0000000446 + -0.0000155131 0.0000090973 0.0000000673 0.0009487977 + 0.0012670218 -0.0000007966 + 0.0000101235 0.0000791709 -0.0000000880 -0.0006683239 + 0.0014395393 0.0000026394 0.0009662014 0.0002521415 + -0.0000002753 0.0253244237 0.0041085856 -0.0000078055 + 0.0000775266 0.0000940679 0.0000001597 0.0008350529 + -0.0042793174 -0.0000062547 -0.0000322451 0.0000247658 + -0.0000000171 0.0000860820 -0.0021721905 -0.0000019773 + 0.0000188737 -0.0002245163 0.0000003332 0.0215976031 + -0.0584138283 -0.0000209143 -0.0000106074 0.0000706188 + -0.0000000691 0.0000273383 -0.0001758368 0.0000002422 + 0.0000052046 0.0000059291 0.0000000316 -0.0001503925 + -0.0001272526 0.0000000663 0.0000028765 -0.0000425146 + -0.0000000787 -0.0254104958 0.0050495432 0.0000105863 + -0.0000274672 -0.0000390322 0.0000000002 0.0000571634 + -0.0000248571 0.0000000640 0.0000114455 0.0001613126 + 0.0000005561 -0.0017196453 -0.0036942245 -0.0000044500 + 0.0000698152 0.0000025025 -0.0000000334 0.0000173803 + -0.0000644044 -0.0000000145 0.0001712287 -0.0003963973 + -0.0000003696 -0.0002169613 0.0003012723 0.0000004584 + -0.0000541417 0.0000510192 0.0000000068 -0.0006090522 + 0.0000071949 0.0000003105 -0.0000191078 0.0000112264 + 0.0000000095 -0.0000190263 0.0000211841 0.0000000062 + -0.0000719366 0.0000829955 0.0000001119 -0.0000871501 + -0.0000126839 -0.0000000161 -0.0000023860 -0.0000045763 + -0.0000000218 -0.0024929746 -0.0029610757 -0.0000034941 + 0.0000843905 -0.0000100322 -0.0000000374 -0.0176477804 + 0.0594534138 0.0000283570 -0.0000056642 -0.0000021630 + 0.0000000016 -0.0000162577 0.0000055936 -0.0000000471 + 0.0000022646 0.0000061587 -0.0000000876 -0.0001033784 + 0.0014166676 0.0000021104 + 0.0000003547 -0.0000007669 0.0000766247 -0.0000038492 + 0.0000006047 -0.0034054931 0.0000012935 -0.0000006337 + 0.0001999078 0.0000142030 0.0000073204 0.0009182024 + 0.0000001506 -0.0000005476 -0.0001827952 0.0000050476 + -0.0000069048 0.0077434956 0.0000003270 -0.0000004140 + 0.0000239402 -0.0000015953 -0.0000022850 0.0005952552 + 0.0000010745 -0.0000001157 -0.0006206384 0.0001147903 + -0.0000217741 -0.0303834994 -0.0000007349 -0.0000005845 + 0.0001338815 0.0000004560 0.0000013691 -0.0007093344 + -0.0000004039 -0.0000003664 -0.0000551616 -0.0000005822 + -0.0000006728 0.0000986905 0.0000003297 0.0000000120 + 0.0001106220 -0.0000056164 0.0000032484 0.0012527750 + 0.0000002088 -0.0000002285 0.0000168084 0.0000001375 + -0.0000000188 -0.0000256486 0.0000001006 0.0000005932 + -0.0009088707 -0.0000001151 -0.0000033580 0.0065620702 + -0.0000000172 -0.0000002005 0.0000558143 -0.0000003103 + -0.0000003104 0.0000026691 0.0000001981 0.0000003197 + 0.0001099389 -0.0000002283 0.0000013546 -0.0000821383 + -0.0000000189 0.0000002095 -0.0000191595 -0.0000005171 + -0.0000000866 -0.0001166710 -0.0000000779 0.0000001777 + -0.0000166807 0.0000003458 0.0000000593 -0.0000063412 + -0.0000000593 0.0000000007 -0.0000265978 0.0000004795 + -0.0000012819 0.0000338336 0.0000003625 0.0000000361 + 0.0000458850 -0.0000024242 -0.0000030715 0.0004182877 + 0.0000002963 -0.0000005651 -0.0000496070 -0.0001228276 + 0.0000280015 0.0207125447 0.0000000520 -0.0000000570 + -0.0000017491 -0.0000000883 0.0000000435 -0.0000165170 + 0.0000004040 -0.0000000802 0.0001582402 -0.0000011457 + 0.0000009738 -0.0026425840 + -0.0016508415 -0.0021993454 0.0000006264 0.0000237826 + 0.0000108166 -0.0000000365 0.0002710041 -0.0004620721 + 0.0000000340 -0.0000400901 -0.0000252027 -0.0000000028 + 0.0000621187 -0.0001723430 -0.0000000232 -0.0000772425 + -0.0000595701 0.0000000071 0.0100936675 -0.0141651253 + 0.0000003148 0.0000645247 0.0000059901 0.0000000197 + 0.0000563501 0.0000132487 -0.0000000399 0.0000173046 + 0.0000262041 0.0000000208 -0.0043608853 -0.0016372539 + -0.0000002301 0.0000238752 -0.0000287237 -0.0000000345 + -0.1102387169 0.1023080458 -0.0000031864 -0.0002517438 + -0.0001713553 -0.0000000497 0.0000035584 0.0000082672 + -0.0000000031 -0.0000144939 -0.0000165696 -0.0000000052 + -0.0085567993 0.0274230063 -0.0000007699 -0.0003686431 + 0.0010975174 0.0000000793 -0.0000069865 -0.0000098836 + 0.0000000041 0.0000247714 0.0000205161 0.0000000004 + -0.0006515691 0.0019805695 -0.0000000503 0.0001972568 + 0.0004265161 0.0000000343 -0.0000173081 0.0000216281 + 0.0000000218 -0.0000364582 -0.0000259274 -0.0000000006 + 0.0010748828 -0.0002914547 0.0000000208 0.0000296832 + -0.0000153869 -0.0000000206 0.0015038151 -0.0003369701 + 0.0000000540 -0.0000199322 -0.0001132434 -0.0000000041 + 0.0000103503 -0.0000053178 -0.0000000089 0.0000039174 + 0.0000117006 0.0000000052 0.0009469526 -0.0001022066 + -0.0000000763 -0.0000051981 0.0000187600 0.0000000048 + 0.0000092685 0.0000069601 0.0000000039 0.0000009454 + -0.0000035949 -0.0000000030 0.1119309155 -0.1136126581 + 0.0000033017 -0.0000465940 0.0000766353 -0.0000000093 + -0.0000059713 -0.0000058080 0.0000000007 0.0000005289 + 0.0000036307 0.0000000006 + -0.0030369545 -0.0016001039 0.0000009850 0.0000293776 + -0.0000470840 -0.0000000728 0.0006543882 -0.0005331705 + -0.0000000753 -0.0000169903 0.0000057904 0.0000000065 + -0.0002214662 0.0003216571 -0.0000000746 -0.0001889850 + -0.0001154857 0.0000000526 0.0126172769 -0.0159277055 + 0.0000002145 -0.0000734676 -0.0000088558 0.0000000038 + 0.0000340282 0.0000290455 -0.0000000355 -0.0000015427 + -0.0000056454 0.0000000020 -0.0006239963 0.0007092008 + 0.0000004560 0.0000628031 -0.0000383036 -0.0000000601 + 0.1018938351 -0.2558092945 0.0000081173 0.0000208481 + 0.0000886712 -0.0000000266 0.0000062668 0.0000264829 + 0.0000000025 0.0000063314 -0.0000035967 -0.0000000026 + 0.0012024476 0.0023261386 -0.0000001057 0.0000018972 + -0.0000997888 0.0000000127 -0.0000160672 -0.0000302603 + 0.0000000036 -0.0000190728 -0.0000177907 0.0000000003 + -0.0013345732 -0.0008922315 -0.0000002007 -0.0000741238 + 0.0000727163 -0.0000000310 0.0000504584 0.0000473175 + -0.0000000069 0.0000064659 0.0000423796 0.0000000131 + 0.0005559406 0.0000089242 0.0000000328 -0.0000010907 + -0.0000235971 -0.0000000108 0.0008059747 0.0008960846 + -0.0000000058 0.0000516360 -0.0000092272 0.0000000210 + -0.0000385057 -0.0000153791 0.0000000169 0.0000022440 + -0.0000277547 -0.0000000132 0.0012607883 0.0014153977 + -0.0000003172 0.0000082940 -0.0000052922 0.0000000107 + 0.0000005621 -0.0000289224 0.0000000251 0.0000036159 + -0.0000050678 -0.0000000056 -0.1136163539 0.2692686523 + -0.0000089346 -0.0000013927 -0.0000055591 0.0000000015 + -0.0000108631 -0.0000099941 0.0000000005 -0.0000000345 + 0.0000016519 0.0000000006 + 0.0000009644 -0.0000000497 0.0067184393 0.0000000691 + -0.0000000472 -0.0009358946 0.0000001097 0.0000003113 + -0.0002377665 -0.0000000294 0.0000000872 0.0000841315 + -0.0000002503 0.0000000916 -0.0007023737 -0.0000001307 + 0.0000000097 -0.0002099026 -0.0000003717 0.0000038840 + 0.0012853167 -0.0000001511 -0.0000001282 0.0001031091 + -0.0000001389 0.0000000264 0.0000328827 0.0000000648 + -0.0000001085 0.0000279946 -0.0000006887 -0.0000000104 + 0.0080802834 -0.0000000024 -0.0000000171 -0.0000003034 + -0.0000038251 0.0000052208 -0.0325245943 0.0000000681 + 0.0000003342 -0.0006705381 0.0000000590 0.0000001583 + 0.0000503881 0.0000000423 -0.0000000303 -0.0000188414 + 0.0000001371 0.0000003346 0.0009951291 0.0000003253 + -0.0000000057 0.0002633424 -0.0000000853 0.0000000083 + -0.0000116927 -0.0000000683 -0.0000000331 0.0000104899 + 0.0000001509 -0.0000004250 -0.0034629958 -0.0000000134 + -0.0000001769 0.0002990069 -0.0000000396 0.0000000476 + -0.0000032127 -0.0000000369 0.0000000233 0.0000298048 + 0.0000000366 0.0000001148 0.0002057786 -0.0000000113 + -0.0000000467 -0.0000055226 -0.0000001715 0.0000002704 + 0.0001249557 0.0000000590 0.0000000153 -0.0000767487 + 0.0000000167 -0.0000000001 -0.0000048533 0.0000000429 + -0.0000001008 -0.0000107977 0.0000001141 -0.0000003519 + -0.0026426810 0.0000000090 -0.0000001013 0.0001582433 + 0.0000000986 -0.0000000668 -0.0000165189 0.0000001016 + -0.0000000064 -0.0000017491 0.0000034202 -0.0000091558 + 0.0231140549 0.0000000203 0.0000000094 -0.0000493592 + 0.0000000660 -0.0000000132 0.0000036840 0.0000000388 + -0.0000000723 -0.0000006887 + -0.0000505773 -0.0000043638 0.0000001420 0.0004356865 + -0.0020308717 -0.0000014668 0.0000116132 0.0000111109 + -0.0000000169 -0.0004577755 0.0003057864 0.0000001793 + 0.0004253147 -0.0000444150 0.0000001188 -0.0000136619 + -0.0001564715 -0.0000000514 0.0000321438 -0.0000882874 + -0.0000000194 -0.0104299664 0.0027428309 -0.0000008410 + -0.0000118509 -0.0000158039 0.0000000006 0.0000178173 + 0.0000133085 0.0000000085 0.0006380647 0.0017835999 + -0.0000010170 -0.0000413953 0.0000311396 0.0000000374 + 0.0000846063 0.0001809567 0.0000000832 -0.3082350240 + 0.0066464612 -0.0000303150 -0.0000009027 0.0000131474 + 0.0000000060 0.0000154788 0.0000099865 -0.0000000117 + -0.0005816863 -0.0000989159 -0.0000000436 -0.0109026994 + 0.0000740465 -0.0000011186 -0.0000120231 -0.0000347831 + -0.0000000083 -0.0000176237 -0.0000205028 -0.0000000020 + -0.0000419874 -0.0001895227 -0.0000000326 -0.0011029074 + -0.0015476904 -0.0000000443 0.0000354795 0.0000410924 + -0.0000000095 0.0000067246 0.0000606190 0.0000000221 + 0.0001050561 0.0000890113 -0.0000000389 -0.0000070854 + -0.0000184630 -0.0000000034 0.0000137601 0.0000652976 + 0.0000000056 0.0008303893 0.0004803354 0.0000004575 + -0.0000268151 -0.0000126534 0.0000000146 0.0000063285 + -0.0000397433 -0.0000000185 -0.0000138491 0.0000028495 + -0.0000000218 0.0008756286 0.0012241292 0.0000007505 + -0.0000028494 -0.0000003384 0.0000000024 -0.0000215168 + -0.0000159709 -0.0000000190 -0.0000417204 -0.0000014216 + 0.0000000063 0.3284798762 -0.0094440265 0.0000332704 + 0.0000015582 -0.0000003964 -0.0000000015 -0.0000016088 + -0.0000110671 -0.0000000041 + -0.0000218263 0.0000237916 0.0000000996 -0.0011950562 + -0.0036870548 -0.0000017977 0.0000026591 -0.0000489156 + -0.0000000137 -0.0008118436 0.0001934056 0.0000000702 + 0.0000037618 -0.0000430997 0.0000000835 -0.0000265580 + -0.0001819868 -0.0000000596 -0.0000103370 0.0000220626 + -0.0000000178 -0.0240394497 0.0045995116 -0.0000020390 + 0.0000134978 0.0000227363 -0.0000000183 -0.0000076419 + 0.0000695403 0.0000000529 0.0007681161 -0.0042931246 + -0.0000005268 -0.0000579727 0.0000256843 0.0000000470 + -0.0000092177 -0.0002454094 0.0000000564 0.0070577541 + -0.0578221076 -0.0000008105 -0.0000113729 -0.0000170564 + 0.0000000022 0.0000148211 0.0000150084 -0.0000000033 + 0.0009989375 0.0001102898 -0.0000000502 0.0262948581 + 0.0046703718 0.0000027661 0.0000049872 0.0000165504 + 0.0000000054 -0.0000120573 -0.0000213801 -0.0000000086 + 0.0003118886 0.0003114665 0.0000000003 0.0017662686 + -0.0004454236 0.0000007859 0.0000069561 -0.0000287896 + -0.0000000195 0.0000352404 0.0000230291 -0.0000000052 + -0.0007575165 0.0009784938 -0.0000003218 -0.0000333059 + 0.0000124202 0.0000000222 -0.0000978731 -0.0000408100 + 0.0000000062 -0.0006634672 0.0015729149 0.0000002212 + -0.0000030438 0.0000033287 0.0000000045 -0.0000076091 + -0.0000106087 -0.0000000006 0.0000106265 0.0000058787 + -0.0000000153 -0.0001378246 0.0014892201 0.0000005014 + -0.0000070601 0.0000015073 0.0000000060 -0.0000121103 + 0.0000053246 -0.0000000050 0.0000770059 -0.0000068305 + 0.0000000148 -0.0094411130 0.0527288879 0.0000009691 + 0.0000023393 0.0000022556 0.0000000005 -0.0000054613 + -0.0000110825 -0.0000000023 + -0.0000000666 0.0000000486 -0.0009358851 -0.0000005497 + -0.0000017189 0.0067183369 -0.0000000879 0.0000000256 + 0.0000841330 -0.0000002545 -0.0000000368 -0.0002377521 + -0.0000000908 0.0000000677 -0.0007023639 -0.0000001554 + 0.0000001514 -0.0002099031 0.0000000735 0.0000000825 + 0.0001031110 -0.0000046280 -0.0000000124 0.0012849277 + 0.0000000760 -0.0000000456 0.0000279951 -0.0000000648 + 0.0000000027 0.0000328816 -0.0000004588 -0.0000000686 + 0.0080802986 -0.0000000248 0.0000000003 -0.0000003064 + -0.0000001786 -0.0000001229 -0.0006705427 -0.0000282046 + -0.0000014923 -0.0325227339 0.0000000682 0.0000000039 + -0.0000188419 -0.0000001519 -0.0000001846 0.0000503864 + -0.0000000086 -0.0000001761 0.0002633127 0.0000002453 + 0.0000014126 0.0009951588 -0.0000000085 0.0000000841 + 0.0000104907 -0.0000000627 0.0000000777 -0.0000116924 + -0.0000000501 0.0000000567 0.0002990170 0.0000010729 + -0.0000004419 -0.0034629651 -0.0000000982 0.0000000233 + 0.0000298056 -0.0000000583 -0.0000000403 -0.0000032120 + -0.0000002806 0.0000006636 0.0002057794 0.0000000540 + 0.0000000495 -0.0000055228 -0.0000000926 0.0000001055 + -0.0000767499 -0.0000007021 0.0000002421 0.0001249067 + 0.0000001841 0.0000000089 -0.0000107982 -0.0000000113 + 0.0000000379 -0.0000048534 0.0000001412 0.0000000139 + 0.0001582401 0.0000005407 0.0000005266 -0.0026425991 + 0.0000000735 -0.0000001250 -0.0000017490 0.0000001936 + -0.0000000666 -0.0000165171 0.0000000239 -0.0000000367 + -0.0000493592 0.0000333695 0.0000009606 0.0231125706 + 0.0000001173 -0.0000000050 -0.0000006888 0.0000000558 + -0.0000000719 0.0000036842 + -0.0004577752 0.0003057960 0.0000000234 0.0000116142 + 0.0000111134 0.0000000505 0.0004357600 -0.0020308604 + 0.0000029848 -0.0000505764 -0.0000043581 -0.0000004808 + -0.0000136623 -0.0001564779 -0.0000000866 0.0004253295 + -0.0000444259 -0.0000005686 0.0000178169 0.0000133047 + 0.0000000057 -0.0000118541 -0.0000158044 0.0000000074 + -0.0104303479 0.0027426626 0.0000067259 0.0000321425 + -0.0000882892 0.0000000053 -0.0000413973 0.0000311382 + -0.0000000089 0.0006380687 0.0017836707 0.0000046306 + 0.0000154821 0.0000099897 0.0000000288 -0.0000009053 + 0.0000131474 -0.0000000074 -0.3082145133 0.0066462811 + 0.0001412092 0.0000846080 0.0001809627 -0.0000002945 + -0.0000176226 -0.0000205070 -0.0000000049 -0.0000120257 + -0.0000347873 0.0000000023 -0.0109030231 0.0000742194 + 0.0000058353 -0.0005817023 -0.0000989162 0.0000003145 + 0.0000067300 0.0000606238 -0.0000000002 0.0000354781 + 0.0000410994 0.0000000250 -0.0011030104 -0.0015477656 + -0.0000015450 -0.0000419836 -0.0001895371 0.0000000832 + -0.0000070882 -0.0000184677 -0.0000000038 0.0001050634 + 0.0000890273 0.0000001074 0.0000063292 -0.0000397475 + -0.0000000025 -0.0000268164 -0.0000126547 -0.0000000145 + 0.0008304583 0.0004803577 -0.0000004772 0.0000137568 + 0.0000653072 -0.0000000128 -0.0000215203 -0.0000159702 + 0.0000000126 -0.0000028508 -0.0000003355 -0.0000000022 + 0.0008756438 0.0012241550 -0.0000016039 -0.0000138506 + 0.0000028495 0.0000000916 -0.0000016100 -0.0000110656 + 0.0000000014 0.0000015574 -0.0000003963 0.0000000007 + 0.3284600195 -0.0094439173 -0.0001570227 -0.0000417223 + -0.0000014218 -0.0000000093 + -0.0008118309 0.0001934099 0.0000004244 0.0000026585 + -0.0000489160 -0.0000000474 -0.0011950170 -0.0036869932 + -0.0000022875 -0.0000218253 0.0000237943 0.0000003249 + -0.0000265597 -0.0001819855 0.0000000877 0.0000037594 + -0.0000431025 0.0000001962 -0.0000076402 0.0000695389 + -0.0000000287 0.0000134987 0.0000227373 0.0000000096 + -0.0240394133 0.0045992963 0.0000129435 -0.0000103375 + 0.0000220614 -0.0000000105 -0.0000579714 0.0000256832 + -0.0000000150 0.0007681230 -0.0042931341 -0.0000049867 + 0.0000148204 0.0000150078 -0.0000000199 -0.0000113738 + -0.0000170580 0.0000000030 0.0070576021 -0.0578240664 + -0.0000128827 -0.0000092115 -0.0002454088 0.0000001238 + -0.0000120560 -0.0000213789 0.0000000091 0.0000049862 + 0.0000165510 -0.0000000046 0.0262948486 0.0046704213 + -0.0000114749 0.0009989326 0.0001102768 -0.0000003852 + 0.0000352392 0.0000230268 0.0000000027 0.0000069542 + -0.0000287905 -0.0000000078 0.0017662429 -0.0004454393 + -0.0000001277 0.0003118946 0.0003114741 -0.0000001204 + -0.0000333051 0.0000124197 -0.0000000016 -0.0007575328 + 0.0009784958 0.0000009085 -0.0000076090 -0.0000106080 + 0.0000000012 -0.0000030435 0.0000033289 0.0000000025 + -0.0006634461 0.0015729725 0.0000006656 -0.0000978714 + -0.0000408158 0.0000000506 -0.0000121094 0.0000053247 + 0.0000000170 -0.0000070605 0.0000015080 -0.0000000019 + -0.0001378530 0.0014892011 0.0000013094 0.0000106262 + 0.0000058788 -0.0000000543 -0.0000054608 -0.0000110827 + -0.0000000016 0.0000023386 0.0000022556 0.0000000003 + -0.0094410024 0.0527309449 0.0000154071 0.0000770054 + -0.0000068293 -0.0000000284 + 0.0000003415 -0.0000004788 -0.0002377468 0.0000011867 + -0.0000005264 0.0000841314 0.0000025864 -0.0000019946 + 0.0067183228 0.0000007967 -0.0000003611 -0.0009358771 + 0.0000005906 -0.0000002591 -0.0002098990 0.0000006016 + 0.0000008739 -0.0007023616 -0.0000004417 -0.0000002468 + 0.0000328811 0.0000003183 0.0000005257 0.0000279940 + -0.0000017353 0.0000003871 0.0012849380 -0.0000002379 + -0.0000007091 0.0001031080 0.0000009748 0.0000000552 + -0.0000003053 0.0000048231 -0.0000061688 0.0080802621 + 0.0000004361 0.0000007269 0.0000503853 -0.0000007423 + 0.0000000507 -0.0000188418 0.0001384049 -0.0000107649 + -0.0325252594 0.0000007606 0.0000007441 -0.0006705348 + 0.0000009911 -0.0000001423 -0.0000116920 0.0000008068 + -0.0000007743 0.0000104901 0.0000146453 0.0000001618 + 0.0009951883 0.0000020509 -0.0000009933 0.0002633184 + 0.0000011027 0.0000003364 -0.0000032118 -0.0000003065 + 0.0000001143 0.0000298048 0.0000017887 0.0000008640 + -0.0034629661 0.0000004564 0.0000001295 0.0002990108 + -0.0000004033 -0.0000008551 -0.0000055226 -0.0000003838 + -0.0000007417 0.0002057887 -0.0000000156 -0.0000000691 + -0.0000048533 -0.0000009948 -0.0000000759 -0.0000107982 + -0.0000037748 0.0000002576 0.0001249038 0.0000000205 + -0.0000000811 -0.0000767491 -0.0000012679 0.0000002131 + -0.0000165163 -0.0000007147 0.0000010541 -0.0000017484 + -0.0000023778 0.0000014586 -0.0026426255 -0.0000011393 + 0.0000000811 0.0001582410 -0.0000005668 0.0000009646 + 0.0000036840 -0.0000011380 0.0000000416 -0.0000006888 + -0.0001569063 0.0000152930 0.0231151051 -0.0000005367 + 0.0000009091 -0.0000493596 + -0.0000400848 -0.0000252035 0.0000000435 0.0002710117 + -0.0004620679 -0.0000004513 0.0000237873 0.0000108210 + -0.0000003422 -0.0016508662 -0.0021993122 0.0000018045 + -0.0000772380 -0.0000595692 -0.0000000877 0.0000621224 + -0.0001723439 -0.0000003459 0.0000173067 0.0000262060 + -0.0000000038 0.0000563487 0.0000132483 0.0000000357 + 0.0000645242 0.0000059904 -0.0000000042 0.0100935531 + -0.0141649545 -0.0000100164 0.0000238767 -0.0000287224 + 0.0000000145 -0.0043608867 -0.0016372609 0.0000044087 + -0.0000144858 -0.0000165670 -0.0000000042 0.0000035545 + 0.0000082731 0.0000000270 -0.0002517424 -0.0001713585 + -0.0000001901 -0.1102396943 0.1023121509 0.0000788884 + 0.0000247714 0.0000205105 0.0000000027 -0.0000069903 + -0.0000098869 -0.0000000107 -0.0003686497 0.0010975220 + 0.0000006028 -0.0085563374 0.0274224242 0.0000164819 + -0.0000364555 -0.0000259247 0.0000000164 -0.0000173035 + 0.0000216304 -0.0000000079 0.0001972640 0.0004265116 + 0.0000001900 -0.0006515905 0.0019805421 -0.0000002386 + 0.0000296777 -0.0000153936 0.0000000003 0.0010748944 + -0.0002914608 -0.0000004856 0.0000039202 0.0000116926 + -0.0000000063 0.0000103392 -0.0000053187 0.0000000010 + -0.0000199349 -0.0001132415 -0.0000000682 0.0015037841 + -0.0003370109 -0.0000007384 0.0000009420 -0.0000035950 + 0.0000000001 0.0000092676 0.0000069631 -0.0000000105 + -0.0000052010 0.0000187655 0.0000000689 0.0009469470 + -0.0001021892 -0.0000013928 0.0000005290 0.0000036287 + 0.0000000003 -0.0000059741 -0.0000058086 0.0000000005 + -0.0000465988 0.0000766352 0.0000000425 0.1119316121 + -0.1136163256 -0.0000882250 + -0.0000169928 0.0000057891 -0.0000000327 0.0006543802 + -0.0005331585 -0.0000003161 0.0000293825 -0.0000470867 + 0.0000004384 -0.0030369005 -0.0016000957 -0.0000032448 + -0.0001889814 -0.0001154858 0.0000000554 -0.0002214755 + 0.0003216537 0.0000005984 -0.0000015420 -0.0000056426 + -0.0000000148 0.0000340313 0.0000290462 0.0000000181 + -0.0000734718 -0.0000088562 -0.0000000219 0.0126171194 + -0.0159269838 -0.0000129181 0.0000628017 -0.0000383029 + 0.0000000218 -0.0006240086 0.0007091505 -0.0000034022 + 0.0000063297 -0.0000035978 0.0000000065 0.0000062662 + 0.0000264821 -0.0000000131 0.0000208465 0.0000886717 + 0.0000003446 0.1018979249 -0.2558149084 -0.0001457640 + -0.0000190703 -0.0000177870 -0.0000000051 -0.0000160651 + -0.0000302560 -0.0000000051 0.0000019070 -0.0000997806 + -0.0000001663 0.0012021198 0.0023263267 0.0000001538 + 0.0000064633 0.0000423714 -0.0000000100 0.0000504513 + 0.0000473131 0.0000000089 -0.0000741071 0.0000727208 + -0.0000000389 -0.0013344931 -0.0008920920 0.0000018431 + -0.0000010889 -0.0000235950 0.0000000037 0.0005559346 + 0.0000089079 -0.0000003289 0.0000022433 -0.0000277498 + 0.0000000053 -0.0000384997 -0.0000153778 -0.0000000072 + 0.0000516282 -0.0000092297 -0.0000000114 0.0008059478 + 0.0008959563 -0.0000000099 0.0000036158 -0.0000050679 + 0.0000000026 0.0000005640 -0.0000289216 -0.0000000303 + 0.0000082936 -0.0000052918 -0.0000000856 0.0012607587 + 0.0014153404 0.0000015749 -0.0000000342 0.0000016516 + 0.0000000002 -0.0000108614 -0.0000099942 -0.0000000022 + -0.0000013931 -0.0000055576 0.0000000189 -0.1136200241 + 0.2692734377 0.0001613342 + 0.0000004368 -0.0000002663 0.0000841292 0.0000000170 + -0.0000006571 -0.0002377683 -0.0000002400 0.0000001542 + -0.0009358763 0.0000012353 -0.0000030581 0.0067183190 + 0.0000002789 -0.0000000263 -0.0002099022 0.0000003887 + -0.0000001537 -0.0007023528 -0.0000002224 -0.0000001566 + 0.0000279942 0.0000000945 0.0000002435 0.0000328825 + 0.0000001797 0.0000002093 0.0001031096 0.0000019962 + -0.0000048407 0.0012850444 0.0000003753 -0.0000002833 + -0.0000003035 0.0000058826 -0.0000032472 0.0080802164 + -0.0000001108 0.0000000618 -0.0000188414 -0.0000004047 + -0.0000001968 0.0000503876 -0.0000002253 -0.0000001021 + -0.0006705443 0.0000787661 -0.0001419270 -0.0325229869 + 0.0000005017 -0.0000003090 0.0000104902 0.0000001630 + -0.0000003102 -0.0000116926 0.0000005729 -0.0000006392 + 0.0002633355 0.0000033251 -0.0000099921 0.0009948651 + 0.0000001870 -0.0000003259 0.0000298046 0.0000003714 + -0.0000006767 -0.0000032122 0.0000003121 -0.0000001266 + 0.0002990158 -0.0000005616 0.0000003315 -0.0034629185 + 0.0000000846 0.0000001728 -0.0000055227 -0.0000000754 + 0.0000000667 0.0002057717 -0.0000002772 0.0000006478 + -0.0000107975 -0.0000005567 0.0000000220 -0.0000048537 + -0.0000003988 0.0000000476 -0.0000767513 -0.0000007530 + 0.0000013970 0.0001249578 -0.0000002917 0.0000000586 + -0.0000017488 -0.0000004398 0.0000005999 -0.0000165182 + 0.0000000251 0.0000000557 0.0001582428 -0.0000018518 + 0.0000021620 -0.0026425831 -0.0000002194 0.0000004204 + -0.0000006887 -0.0000006057 0.0000000249 0.0000036842 + -0.0000001441 -0.0000000090 -0.0000493602 -0.0000878153 + 0.0001606280 0.0231129726 diff --git a/test/app/modes/C24O6H8_prefix/modes_in.hsd b/test/app/modes/C24O6H8_prefix/modes_in.hsd new file mode 100644 index 0000000000..5e9285db56 --- /dev/null +++ b/test/app/modes/C24O6H8_prefix/modes_in.hsd @@ -0,0 +1,19 @@ +# Needs the equilibrium geometry, at which the Hessian had been calculated +Geometry = GenFormat { + <<< geom.gen +} + +# You need to specify the SK-files, as the mass of the elements is needed +SlaterKosterFiles = Type2FileNames { + Prefix = "slakos/origin/mio-1-1/" + Separator = "-" + Suffix = ".skf" +} + +# Include the Hessian, which was calculated by DFTB+ +Hessian = { + <<< "hessian.out" +} + +# This file uses the 3rd input format of the modes code +InputVersion = 3 diff --git a/test/app/modes/CMakeLists.txt b/test/app/modes/CMakeLists.txt index 088b988c83..0ec10b8dde 100644 --- a/test/app/modes/CMakeLists.txt +++ b/test/app/modes/CMakeLists.txt @@ -34,4 +34,8 @@ foreach(test IN LISTS tests) -r ${srcdir} -w ${builddir} -d ${srcdir}/bin/tagdiff -P "${MODES_RUNNER}" -p "$" -s P,R,C,S ${test}) + set_tests_properties( + modes_${test} + PROPERTIES + ENVIRONMENT "DFTBPLUS_PARAM_DIR=${PROJECT_SOURCE_DIR}/external") endforeach() diff --git a/test/app/modes/tests b/test/app/modes/tests index 1015470418..3ba91b26b8 100644 --- a/test/app/modes/tests +++ b/test/app/modes/tests @@ -6,3 +6,4 @@ #:set LONG_TEST = not defined('TRAVIS') C24O6H8 #? MPI_PROCS <= 1 +C24O6H8_prefix #? MPI_PROCS <= 1 From e89659f733589f6dbb5758f413db629c7d8ae17c Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sun, 5 Jun 2022 11:57:33 +0100 Subject: [PATCH 29/36] Adds note about shell variable (#1048) * Adds note about shell variable * Update INSTALL.rst Co-authored-by: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> --- INSTALL.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/INSTALL.rst b/INSTALL.rst index 30395427a1..3d1aa9ce5b 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -172,6 +172,13 @@ include the Slater-Koster (slako) data for testing the compiled code. For more information see the detailed help for this tool by issuing ``./utils/get_opt_externals -h``. +Slater-Koster file locations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The DFTB+ code checks the shell variable `DFTBPLUS_PARAM_DIR` when +setting the path to check the Prefix keyword for finding data. If +unset, it assumes the local directory as the starting path. + Building ======== From 5347508c8ccc0f2db008444cb01bfdcf08f2d5c3 Mon Sep 17 00:00:00 2001 From: Franco Bonafe Date: Tue, 7 Jun 2022 10:37:02 +0200 Subject: [PATCH 30/36] Fix bugs in the pump probe run mode --- src/dftbp/timedep/timeprop.F90 | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/dftbp/timedep/timeprop.F90 b/src/dftbp/timedep/timeprop.F90 index 305401db91..f6eaa9e0c9 100644 --- a/src/dftbp/timedep/timeprop.F90 +++ b/src/dftbp/timedep/timeprop.F90 @@ -3724,7 +3724,7 @@ subroutine initializeDynamics(this, boundaryCond, coord, orb, neighbourList, nNe this%initialVelocities(:,:) = this%movedVelo this%ReadMDVelocities = .true. end if - if (this%tLaser .and. .not. this%tdFieldThroughAPI) then + if (this%tLaser .and. .not. this%tdFieldThroughAPI .and. this%iCall == 1) then call getTDFunction(this, this%startTime) end if @@ -3739,12 +3739,15 @@ subroutine initializeDynamics(this, boundaryCond, coord, orb, neighbourList, nNe call initLatticeVectors(this, boundaryCond) end if + call initTDOutput(this, this%dipoleDat, this%qDat, this%energyDat,& + & this%populDat, this%forceDat, this%coorDat) + ! Write density at t=0 if (this%tPump .and. .not. this%tReadRestart) then allocate(velInternal(3,size(this%movedVelo, dim=2))) velInternal(:,:) = 0.0_dp call writeRestartFile(this%trho, this%trho, coord, velInternal, this%startTime, this%dt,& - & '0ppdump', this%tWriteRestartAscii, errStatus) + & trim(pumpFilesDir) // '/0ppdump', this%tWriteRestartAscii, errStatus) @:PROPAGATE_ERROR(errStatus) deallocate(velInternal) end if @@ -3764,9 +3767,6 @@ subroutine initializeDynamics(this, boundaryCond, coord, orb, neighbourList, nNe this%mCutOff = max(this%mCutOff, this%dispersion%getRCutOff()) end if - call initTDOutput(this, this%dipoleDat, this%qDat, this%energyDat,& - & this%populDat, this%forceDat, this%coorDat) - call getChargeDipole(this, this%deltaQ, this%qq, this%multipole, this%dipole, q0,& & this%trho, this%Ssqr, this%Dsqr, this%Qsqr, coord, iSquare, eFieldScaling, this%qBlock,& & this%qNetAtom, errStatus) @@ -3799,6 +3799,12 @@ subroutine initializeDynamics(this, boundaryCond, coord, orb, neighbourList, nNe call initIonDynamics(this, this%coordNew, coord, this%movedAccel) end if + ! after calculating the TD function, set initial time to zero for probe simulations + ! this is to properly calculate the dipole fourier transform after the simulation + if (this%tProbe) then + this%startTime = 0.0_dp + end if + ! Apply kick to rho if necessary (in restart case, check it starttime is 0 or not) if (this%tKick .and. this%startTime < this%dt / 10.0_dp) then call kickDM(this, this%trho, this%Ssqr, this%Sinv, iSquare, coord) @@ -3820,15 +3826,8 @@ subroutine initializeDynamics(this, boundaryCond, coord, orb, neighbourList, nNe & 0) end if - ! now first step of dynamics is computed (init of leapfrog and first step of nuclei) - ! after calculating the TD function, set initial time to zero for probe simulations - ! this is to properly calculate the dipole fourier transform after the simulation - if (this%tProbe) then - this%startTime = 0.0_dp - end if - ! had to add the "or tKick" option to override rhoOld if tReadRestart = yes, otherwise it will ! be badly initialised if (.not.this%tReadRestart .or. (this%tKick .and. this%startTime < this%dt / 10.0_dp)) then From dc44740bc6feca214837d66e61818ab65e1e8406 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Tue, 14 Jun 2022 13:38:41 +0100 Subject: [PATCH 31/36] Tests results.tag and fixes 2 dipole bugs * Use exisiting regression mechanism on results.tag output for a test example * Fix use of (effectively) a dummy array in atomic dipole printing * defaults rescale type variable to false (so set if not initialised) --- src/dftbp/dftbplus/inputdata.F90 | 2 +- src/dftbp/dftbplus/mainio.F90 | 20 ++-- src/dftbp/solvation/fieldscaling.F90 | 52 ++++------- test/app/dftb+/tests | 1 + .../xtb/gfn2_benzene_resltag/_autotest.tag | 92 +++++++++++++++++++ .../xtb/gfn2_benzene_resltag/dftb_in.hsd | 44 +++++++++ .../dftb+/xtb/gfn2_benzene_resltag/testrun.sh | 21 +++++ 7 files changed, 183 insertions(+), 49 deletions(-) create mode 100644 test/app/dftb+/xtb/gfn2_benzene_resltag/_autotest.tag create mode 100644 test/app/dftb+/xtb/gfn2_benzene_resltag/dftb_in.hsd create mode 100755 test/app/dftb+/xtb/gfn2_benzene_resltag/testrun.sh diff --git a/src/dftbp/dftbplus/inputdata.F90 b/src/dftbp/dftbplus/inputdata.F90 index 1fc204cf84..9d2ce58e4f 100644 --- a/src/dftbp/dftbplus/inputdata.F90 +++ b/src/dftbp/dftbplus/inputdata.F90 @@ -472,7 +472,7 @@ module dftbp_dftbplus_inputdata class(TSolvationInp), allocatable :: solvInp !> Rescaling of electric fields (applied or dipole) if the system is solvated - logical :: isSolvatedFieldRescaled + logical :: isSolvatedFieldRescaled = .false. !> Input for tblite library type(TTBLiteInput), allocatable :: tbliteInp diff --git a/src/dftbp/dftbplus/mainio.F90 b/src/dftbp/dftbplus/mainio.F90 index e7e92343c4..3b5dec2e41 100644 --- a/src/dftbp/dftbplus/mainio.F90 +++ b/src/dftbp/dftbplus/mainio.F90 @@ -2039,10 +2039,8 @@ subroutine writeAutotestTag(fileName, electronicSolver, tPeriodic, cellVol, tMul if (allocated(dipoleMoment)) then call taggedWriter%write(fd, tagLabels%dipoleMoment, dipoleMoment) - if (eFieldScaling%isRescaled) then - call taggedWriter%write(fd, tagLabels%scaledDipole,& - & eFieldScaling%scaledSoluteDipole(dipoleMoment)) - end if + call taggedWriter%write(fd, tagLabels%scaledDipole,& + & eFieldScaling%scaledSoluteDipole(dipoleMoment)) end if close(fd) @@ -2207,19 +2205,13 @@ subroutine writeResultsTag(fileName, energy, derivs, chrgForces, nEl, Ef, eigen, if (allocated(dipoleMoment)) then call taggedWriter%write(fd, tagLabels%dipoleMoment, dipoleMoment) - if (eFieldScaling%isRescaled) then - call taggedWriter%write(fd, tagLabels%scaledDipole,& - & eFieldScaling%scaledSoluteDipole(dipoleMoment)) - end if + call taggedWriter%write(fd, tagLabels%scaledDipole,& + & eFieldScaling%scaledSoluteDipole(dipoleMoment)) end if if (allocated(multipole%dipoleAtom)) then - block - real(dp), allocatable :: dipoleAtom(:, :), qAtom(:) - qAtom = sum(qOutput(:, :, 1) - q0(:, :, 1), dim=1) - call taggedWriter%write(fd, tagLabels%dipoleAtom,& - & eFieldScaling%scaledSoluteDipole(dipoleAtom)) - end block + call taggedWriter%write(fd, tagLabels%dipoleAtom,& + & eFieldScaling%scaledSoluteDipole(multipole%dipoleAtom)) end if if (allocated(polarisability)) then diff --git a/src/dftbp/solvation/fieldscaling.F90 b/src/dftbp/solvation/fieldscaling.F90 index 31732601ab..ebbddc9070 100644 --- a/src/dftbp/solvation/fieldscaling.F90 +++ b/src/dftbp/solvation/fieldscaling.F90 @@ -5,6 +5,8 @@ ! See the LICENSE file for terms of usage and distribution. ! !--------------------------------------------------------------------------------------------------! +#:include 'common.fypp' + !> Scale electrostatic field properties in presence of a solvent. Note, expressions assume spherical !> solvent cavity contains the system. module dftbp_solvation_fieldscaling @@ -20,7 +22,7 @@ module dftbp_solvation_fieldscaling type TScaleExtEField !> Should dipoles / fields be re-scaled for external dielectric? - logical :: isRescaled + logical :: isRescaled = .false. !> External media dielectric constant real(dp) :: eps_r @@ -34,8 +36,10 @@ module dftbp_solvation_fieldscaling procedure, private :: scaledExtEField_1 procedure, private :: scaledSoluteDipole_1 procedure, private :: scaledSoluteDipole_2 + procedure, private :: scaledSoluteDipole_3 generic :: scaledExtEField => scaledExtEField_0, scaledExtEField_1 - generic :: scaledSoluteDipole => scaledSoluteDipole_1, scaledSoluteDipole_2 + generic :: scaledSoluteDipole => scaledSoluteDipole_1, scaledSoluteDipole_2,& + & scaledSoluteDipole_3 end type TScaleExtEField @@ -130,51 +134,31 @@ pure function scaledExtEField_1(this, E0) result(E) end function scaledExtEField_1 - !> Scale dipole moment of solute. Note, these expressions are for a point dipole inside a - !> spherical cavity. - pure function scaledSoluteDipole_1(this, mu0) result (mu) - - !> Instance - class(TScaleExtEField), intent(in) :: this - - !> Dipole moment of solute charges - real(dp), intent(in) :: mu0(:) - - real(dp) :: mu(size(mu0)) - - mu(:) = mu0 - if (this%isRescaled) then - if (this%is_finite) then - mu(:) = 3.0_dp * this%eps_r * mu / (2.0_dp * this%eps_r + 1.0_dp) - else - mu(:) = 3.0_dp * mu / 2.0_dp - end if - end if - - end function scaledSoluteDipole_1 +#:for LABEL, DIMS in [('1', ':'), ('2', ':,:'), ('3', ':,:,:')] - - !> Scale dipole moment of solute. Note, these expressions are for a point dipole inside a - !> spherical cavity. - pure function scaledSoluteDipole_2(this, mu0) result (mu) + !> Scale ${LABEL}$ dim array of dipole moment(s) of solute. Note, these expressions are for a + !> point dipole inside a spherical cavity. + pure function scaledSoluteDipole_${LABEL}$(this, mu0) result (mu) !> Instance class(TScaleExtEField), intent(in) :: this !> Dipole moment of solute charges - real(dp), intent(in) :: mu0(:, :) + real(dp), intent(in) :: mu0(${DIMS}$) - real(dp) :: mu(size(mu0, dim=1), size(mu0, dim=2)) + real(dp), allocatable :: mu(${DIMS}$) - mu(:, :) = mu0 + mu = mu0 if (this%isRescaled) then if (this%is_finite) then - mu(:, :) = 3.0_dp * this%eps_r * mu / (2.0_dp * this%eps_r + 1.0_dp) + mu(${DIMS}$) = 3.0_dp * this%eps_r * mu / (2.0_dp * this%eps_r + 1.0_dp) else - mu(:, :) = 3.0_dp * mu / 2.0_dp + mu(${DIMS}$) = 3.0_dp * mu / 2.0_dp end if end if - end function scaledSoluteDipole_2 + end function scaledSoluteDipole_${LABEL}$ + +#:endfor end module dftbp_solvation_fieldscaling diff --git a/test/app/dftb+/tests b/test/app/dftb+/tests index a13d8f5616..2b3148b20a 100644 --- a/test/app/dftb+/tests +++ b/test/app/dftb+/tests @@ -78,6 +78,7 @@ xtb/gfn2_h2_restart #? WITH_TBLITE and MPI_PROCS <= 1 xtb/gfn2_h2_Ascii #? WITH_TBLITE and MPI_PROCS <= 1 xtb/gfn2_mindless05 #? WITH_TBLITE and MPI_PROCS <= 1 xtb/gfn2_benzene #? WITH_TBLITE and MPI_PROCS <= 1 +xtb/gfn2_benzene_resltag #? WITH_TBLITE and MPI_PROCS <= 1 spin/gfn2_H2 #? WITH_TBLITE and MPI_PROCS <= 1 spin/gfn1_Fe4 #? WITH_TBLITE and MPI_PROCS <= 1 spin/ipea1_Fe4_noncolinear #? WITH_TBLITE and MPI_PROCS <= 1 diff --git a/test/app/dftb+/xtb/gfn2_benzene_resltag/_autotest.tag b/test/app/dftb+/xtb/gfn2_benzene_resltag/_autotest.tag new file mode 100644 index 0000000000..1887171977 --- /dev/null +++ b/test/app/dftb+/xtb/gfn2_benzene_resltag/_autotest.tag @@ -0,0 +1,92 @@ +total_energy :real:0: + -0.158793406319056E+002 +fermi_level :real:1:1 + -0.322573667823568E+000 +number_of_electrons :real:1:1 + 0.300000000000000E+002 +mermin_energy :real:0: + -0.158793406319056E+002 +extrapolated0_energy:real:0: + -0.158793406319056E+002 +eigenvalues :real:3:30,1,1 + -0.652666684173979E+000 -0.623213373409049E+000 -0.621871619205805E+000 + -0.583211789585480E+000 -0.581383394983595E+000 -0.547523622842892E+000 + -0.505195018094252E+000 -0.500067394013242E+000 -0.487395006907230E+000 + -0.485455789915257E+000 -0.478824326835513E+000 -0.444442012367395E+000 + -0.432512070217015E+000 -0.414324182708610E+000 -0.412362920501074E+000 + -0.232784415146061E+000 -0.230878849533095E+000 -0.100131065656635E+000 + 0.566678529383837E-001 0.142930257130149E+000 0.164757405644096E+000 + 0.185030713990049E+000 0.234449601134609E+000 0.261188375899784E+000 + 0.385604085502329E+000 0.421218681714652E+000 0.449116511822779E+000 + 0.465317074168874E+000 0.618987143553086E+000 0.707153181916464E+000 +filling :real:3:30,1,1 + 0.200000000000000E+001 0.200000000000000E+001 0.200000000000000E+001 + 0.200000000000000E+001 0.200000000000000E+001 0.200000000000000E+001 + 0.200000000000000E+001 0.200000000000000E+001 0.200000000000000E+001 + 0.200000000000000E+001 0.200000000000000E+001 0.200000000000000E+001 + 0.200000000000000E+001 0.200000000000000E+001 0.200000000000000E+001 + 0.180141155134585E-040 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 +forcerelated_energy :real:0: + -0.158793406319056E+002 +forces :real:2:3,12 + -0.451322237539770E-004 0.329017827105933E-003 0.118672498118616E-003 + -0.350232492888192E-005 0.309385095207056E-003 -0.269974605244111E-004 + -0.453634060756074E-001 0.272101445619406E-001 0.270100600337821E-001 + 0.496629612506752E-004 0.201101647704399E-003 -0.471222689717235E-004 + 0.453978758756935E-004 -0.503099441887078E-004 -0.969155906525854E-005 + 0.208917970417256E-003 -0.116937223013668E-003 -0.311065941948838E-004 + 0.169514374048413E-003 -0.161749313037782E-003 -0.305929958716384E-003 + 0.391860124876873E-002 -0.261052694700040E-002 -0.222163583780756E-002 + 0.413621632673880E-001 -0.234472006771615E-001 -0.251185600412244E-001 + -0.640566257130784E-004 0.997356958592002E-004 0.229785335213194E-003 + -0.566232354578694E-003 -0.631222293858852E-003 -0.762264807604995E-004 + 0.288071906833186E-003 -0.113143842955633E-002 0.478752334151324E-003 +stress :real:2:3,3 + 0.199588141733994E-004 -0.143343894346952E-004 -0.123089383012330E-004 + -0.143343894346952E-004 0.961835088981410E-005 0.826253945067013E-005 + -0.123089383012330E-004 0.826253945067014E-005 0.591969843817439E-005 +cell_volume :real:0: + 0.313718436854332E+004 +orbital_charges :real:3:4,12,1 + 0.974133243478888E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.981198846224134E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.960059549530419E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.973403559331228E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.980728874840686E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.973807859393319E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.107863770030579E+001 0.994234780271735E+000 0.971953182410729E+000 + 0.980403433096303E+000 0.107722491039385E+001 0.995891541759053E+000 + 0.972791996291504E+000 0.979878305274624E+000 0.106566393765461E+001 + 0.997213082801537E+000 0.971964943928705E+000 0.997294395590169E+000 + 0.107896260994456E+001 0.992549658872752E+000 0.971775918637164E+000 + 0.981286836397898E+000 0.107647565041430E+001 0.993907352753785E+000 + 0.973035317207649E+000 0.980523451246820E+000 0.107929154716204E+001 + 0.992182432159115E+000 0.971620005544721E+000 0.981905077081923E+000 +gross_atomic_charges:real:1:12 + 0.258667565211125E-001 0.188011537758660E-001 0.399404504695808E-001 + 0.265964406687722E-001 0.192711251593138E-001 0.261921406066808E-001 + -0.252290960845584E-001 -0.257867537190271E-001 -0.321363599750197E-001 + -0.245750238523771E-001 -0.239417716225531E-001 -0.249990619477947E-001 +dipole_moments :real:2:3,1 + -0.114233007428947E-001 -0.888542321272245E-002 0.175090902217017E-001 +scaled_dipole :real:2:3,1 + -0.114233007428947E-001 -0.888542321272245E-002 0.175090902217017E-001 +atomic_dipole_moment:real:3:3,12,1 + 0.110917487630963E+000 -0.652802035669579E-001 0.726016184554801E-001 + -0.566219221150695E-004 0.271307814139194E-003 -0.129545066153666E+000 + 0.805992622545316E-001 -0.616475082045153E-001 -0.745509586828962E-001 + -0.110825377059765E+000 0.661795092250389E-001 0.722443504701877E-001 + 0.261372080784427E-003 -0.430549669029177E-004 0.129584432060128E+000 + -0.110664133882065E+000 0.654622429375253E-001 -0.722129498865939E-001 + 0.223185668965422E-002 -0.105350541016926E-002 -0.405331940418704E-002 + 0.485446810178403E-002 -0.276237635747544E-002 -0.839883559151754E-002 + 0.164649541650685E-001 -0.136218883191646E-002 0.469007710626583E-002 + -0.160155134555026E-002 0.177763805966098E-002 -0.370374332908692E-002 + -0.129865145226145E-002 -0.545962458848609E-003 0.546052302296044E-002 + -0.192704395664203E-002 0.319296350372267E-003 0.541998175022467E-002 diff --git a/test/app/dftb+/xtb/gfn2_benzene_resltag/dftb_in.hsd b/test/app/dftb+/xtb/gfn2_benzene_resltag/dftb_in.hsd new file mode 100644 index 0000000000..23bf55eb84 --- /dev/null +++ b/test/app/dftb+/xtb/gfn2_benzene_resltag/dftb_in.hsd @@ -0,0 +1,44 @@ +Geometry = genFormat { + 12 S + H C + 1 1 0.1845799178E+01 0.1086647086E+01 0.2195270078E+01 + 2 1 0.3686985266E+01 0.1324986402E-02 0.5893636301E+01 + 3 1 0.1947614336E+01 0.1086315091E+01 0.4646596870E+01 + 4 1 0.5520254859E+01 0.8137099373E+01 0.2192860913E+01 + 5 1 0.3681790935E+01 0.9224806825E+01 0.9453959422E+00 + 6 1 0.5523365230E+01 0.8139847941E+01 0.4643307768E+01 + 7 2 0.2655219817E+01 0.6070766589E+00 0.2726327572E+01 + 8 2 0.3685644166E+01 0.7323340580E-03 0.4806318726E+01 + 9 2 0.2656283172E+01 0.6071701165E+00 0.4114178829E+01 + 10 2 0.4711657981E+01 0.8617091253E+01 0.2724769168E+01 + 11 2 0.3682841491E+01 0.9224627936E+01 0.2032770325E+01 + 12 2 0.4713240920E+01 0.8618359673E+01 0.4112567217E+01 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.7368440100E+01 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.9225186300E+01 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.6839003600E+01 +} + +Hamiltonian = xtb { + Method = "GFN2-xTB" + SCCTolerance = 1.0E-8 + KPointsAndWeights { + 0.0 0.0 0.0 1.0 + } +} + +Options { + WriteAutotestTag = No + WriteResultsTag = Yes +} + +Analysis { + AtomResolvedEnergies = Yes + CalculateForces = Yes + MullikenAnalysis = Yes + WriteBandOut = Yes + WriteNetCharges = Yes +} + +ParserOptions { ParserVersion = 11 } +Parallel { UseOmpThreads = Yes } diff --git a/test/app/dftb+/xtb/gfn2_benzene_resltag/testrun.sh b/test/app/dftb+/xtb/gfn2_benzene_resltag/testrun.sh new file mode 100755 index 0000000000..3e90a0baf3 --- /dev/null +++ b/test/app/dftb+/xtb/gfn2_benzene_resltag/testrun.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +#------------------------------------------------------------------------------# +# DFTB+: general package for performing fast atomistic simulations # +# Copyright (C) 2018 DFTB+ developers group # +# # +# See the LICENSE file for terms of usage and distribution. # +#------------------------------------------------------------------------------# + +############################################################################ +# +# Trivial script for moving tagged file for regression testing mechanism +# +############################################################################ + +DFTBPLUS_CMD=$* + +# run the actual calculation +$DFTBPLUS_CMD + +rm -f autotest.tag +mv results.tag autotest.tag From 5299f966fdddc1283430cc9e35401a765ef44e8d Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Tue, 14 Jun 2022 15:07:48 +0100 Subject: [PATCH 32/36] Recompute tests from transport fixes Tests affected by changes from 41c51372 and 4132bc37 --- .../dftb+/transport/C-chain+U/_autotest.tag | 414 ++++++++--------- .../transport/C-chain+Uspin/_autotest.tag | 424 +++++++++--------- 2 files changed, 419 insertions(+), 419 deletions(-) diff --git a/test/app/dftb+/transport/C-chain+U/_autotest.tag b/test/app/dftb+/transport/C-chain+U/_autotest.tag index 149b97cdc3..079df4f0e3 100644 --- a/test/app/dftb+/transport/C-chain+U/_autotest.tag +++ b/test/app/dftb+/transport/C-chain+U/_autotest.tag @@ -1,65 +1,65 @@ cell_volume :real:0: 0.843871930469613E+005 orbital_charges :real:2:4,24 - 0.118021178224343E+001 0.999999400987109E+000 0.819788152467154E+000 - 0.999999400987109E+000 0.118021123404618E+001 0.100000126897252E+001 - 0.819787738211177E+000 0.100000126897252E+001 0.118021251123089E+001 - 0.999998140709185E+000 0.819788485456970E+000 0.999998140709185E+000 - 0.118021181804158E+001 0.999999726623022E+000 0.819788061362897E+000 - 0.999999726623022E+000 0.118021181804158E+001 0.999999726623029E+000 - 0.819788061362898E+000 0.999999726623028E+000 0.118021251123089E+001 - 0.999998140709190E+000 0.819788485456971E+000 0.999998140709190E+000 - 0.118021123404619E+001 0.100000126897252E+001 0.819787738211178E+000 - 0.100000126897252E+001 0.118021178224343E+001 0.999999400987113E+000 - 0.819788152467153E+000 0.999999400987113E+000 0.118021182362956E+001 - 0.100000000000000E+001 0.819788176370441E+000 0.100000000000000E+001 + 0.118021181061252E+001 0.100000002907316E+001 0.819788165687084E+000 + 0.100000002907316E+001 0.118021183861809E+001 0.999999970653955E+000 + 0.819788188321607E+000 0.999999970653955E+000 0.118021182187272E+001 + 0.100000004202324E+001 0.819788175359780E+000 0.100000004202324E+001 + 0.118021182563781E+001 0.100000001091852E+001 0.819788178234791E+000 + 0.100000001091852E+001 0.118021182563781E+001 0.100000001091852E+001 + 0.819788178234790E+000 0.100000001091852E+001 0.118021182187272E+001 + 0.100000004202324E+001 0.819788175359781E+000 0.100000004202324E+001 + 0.118021183861809E+001 0.999999970653959E+000 0.819788188321606E+000 + 0.999999970653960E+000 0.118021181061252E+001 0.100000002907317E+001 + 0.819788165687086E+000 0.100000002907317E+001 0.118021182362956E+001 + 0.999999999999999E+000 0.819788176370441E+000 0.999999999999998E+000 0.118021182362956E+001 0.999999999999999E+000 0.819788176370439E+000 0.999999999999999E+000 0.118021182362956E+001 0.999999999999999E+000 - 0.819788176370440E+000 0.999999999999999E+000 0.118021182362956E+001 + 0.819788176370439E+000 0.999999999999999E+000 0.118021182362956E+001 0.999999999999999E+000 0.819788176370439E+000 0.999999999999999E+000 - 0.118021182362956E+001 0.999999999999999E+000 0.819788176370439E+000 + 0.118021182362956E+001 0.100000000000000E+001 0.819788176370439E+000 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 - 0.819788176370440E+000 0.999999999999999E+000 0.118021182362956E+001 - 0.100000000000000E+001 0.819788176370439E+000 0.100000000000000E+001 + 0.819788176370440E+000 0.100000000000000E+001 0.118021182362956E+001 + 0.100000000000000E+001 0.819788176370438E+000 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 0.819788176370442E+000 - 0.100000000000000E+001 0.118021182362956E+001 0.999999999999999E+000 - 0.819788176370440E+000 0.999999999999998E+000 0.118021182362956E+001 - 0.999999999999998E+000 0.819788176370438E+000 0.999999999999998E+000 + 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 + 0.819788176370440E+000 0.999999999999999E+000 0.118021182362956E+001 + 0.999999999999999E+000 0.819788176370438E+000 0.999999999999999E+000 0.118021182362956E+001 0.100000000000000E+001 0.819788176370440E+000 0.100000000000000E+001 0.118021182362956E+001 0.100000000000000E+001 0.819788176370439E+000 0.100000000000000E+001 0.118021182362956E+001 - 0.100000000000000E+001 0.819788176370439E+000 0.100000000000000E+001 - 0.118021182362956E+001 0.100000000000000E+001 0.819788176370440E+000 + 0.999999999999999E+000 0.819788176370439E+000 0.999999999999999E+000 + 0.118021182362956E+001 0.100000000000000E+001 0.819788176370439E+000 0.100000000000000E+001 0.118021182362956E+001 0.999999999999999E+000 - 0.819788176370439E+000 0.999999999999999E+000 0.118021182362956E+001 - 0.999999999999999E+000 0.819788176370440E+000 0.100000000000000E+001 + 0.819788176370438E+000 0.999999999999999E+000 0.118021182362956E+001 + 0.999999999999999E+000 0.819788176370441E+000 0.999999999999999E+000 forces :real:2:3,24 - -0.220415949296023E-019 0.374688826596456E-018 0.724406042780928E-003 - 0.196789327805001E-019 -0.120909110087989E-018 -0.724424581153682E-003 - 0.704926248171273E-021 -0.283503790059156E-020 0.724434892929171E-003 - -0.200294900134401E-020 0.106677578125049E-019 -0.724463304002609E-003 - -0.960590731926927E-020 -0.154139496628529E-020 0.724463304439260E-003 - 0.189698867626728E-021 -0.277361518057527E-020 -0.724434893668413E-003 - 0.112792056565202E-018 0.209205699666198E-019 0.724424581769356E-003 - -0.208038728281222E-018 -0.607175689799234E-020 -0.724406043145387E-003 - 0.103651342919237E-018 -0.125315654911250E-019 -0.252520736285725E+000 - 0.390946864208977E-021 0.956358408771851E-021 -0.225741748129421E+000 - 0.577612729088266E-023 0.257244736695224E-022 0.246928213795700E+000 + 0.145887725347119E-018 -0.151989951976191E-019 0.724402375993166E-003 + -0.458550486001475E-019 0.288728575256540E-020 -0.724400801706909E-003 + -0.214155727337781E-021 -0.596558797078575E-021 0.724400231377459E-003 + 0.373125348709592E-020 -0.618011400385461E-021 -0.724400573510586E-003 + -0.144881031747385E-020 -0.158266921969497E-020 0.724400573947459E-003 + 0.242925527718190E-020 0.545938730122191E-020 -0.724400232116201E-003 + 0.165850383642514E-019 0.144777476417505E-019 0.724400802321890E-003 + -0.136924690200886E-018 -0.176239140263442E-018 -0.724402376358152E-003 + 0.118189532496632E-018 0.160183875960382E-018 -0.252520753537826E+000 + 0.909903725822816E-021 -0.200819802909759E-020 -0.225741741618809E+000 + -0.662029684670523E-023 0.167066064303184E-022 0.246928213797923E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125556E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 - 0.358566578769836E-022 -0.240469599487199E-022 -0.246928213795708E+000 - 0.617222834794431E-021 -0.306610056608223E-021 0.225741748129432E+000 - 0.362242857358886E-020 -0.260266092721631E-018 0.252520736285770E+000 + 0.486456501323007E-023 -0.907115641787520E-023 -0.246928213797931E+000 + -0.244629577298742E-021 0.909404108448184E-021 0.225741741618820E+000 + -0.103043618805570E-018 0.123182364311303E-019 0.252520753537872E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125559E+000 total_energy :real:0: - -0.149783496599275E+002 + -0.149783515139788E+002 end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 0.117309490472823E+001 0.000000000000000E+000 0.000000000000000E+000 0.374999347524859E+001 @@ -86,174 +86,174 @@ end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 -0.135961702352022E+002 0.000000000000000E+000 0.000000000000000E+000 -0.110192716646819E+002 total_tunneling :real:2:251,1 - 0.199999999925951E+001 0.199999999925419E+001 0.199999999925410E+001 - 0.199999999925908E+001 0.199999999926895E+001 0.199999999928344E+001 - 0.199999999930223E+001 0.199999999932499E+001 0.199999999935133E+001 - 0.199999999938084E+001 0.199999999941307E+001 0.199999999944758E+001 - 0.199999999948389E+001 0.199999999952153E+001 0.199999999956004E+001 - 0.199999999959893E+001 0.199999999963777E+001 0.199999999967610E+001 - 0.199999999971351E+001 0.199999999974962E+001 0.199999999978406E+001 - 0.199999999981652E+001 0.199999999984671E+001 0.199999999987441E+001 - 0.199999999989942E+001 0.199999999992162E+001 0.199999999994092E+001 - 0.199999999995729E+001 0.199999999997077E+001 0.199999999998145E+001 - 0.199999999998947E+001 0.199999999999504E+001 0.199999999999841E+001 - 0.199999999999988E+001 0.199999999999979E+001 0.199999999999852E+001 - 0.199999999999648E+001 0.199999999999407E+001 0.199999999999170E+001 - 0.199999999998975E+001 0.199999999998856E+001 0.199999999998836E+001 - 0.199999999998928E+001 0.199999999999128E+001 0.199999999999409E+001 - 0.199999999999714E+001 0.199999999999950E+001 0.199999999999972E+001 - 0.199999999999577E+001 0.199999999998480E+001 0.199999999996301E+001 - 0.199999999992538E+001 0.199999999986535E+001 0.199999999977443E+001 - 0.199999999964177E+001 0.199999999945348E+001 0.199999999919190E+001 - 0.199999999883462E+001 0.199999999835316E+001 0.199999999771140E+001 - 0.199999999686340E+001 0.199999999575060E+001 0.199999999429815E+001 - 0.199999999240993E+001 0.199999998996187E+001 0.199999998679289E+001 - 0.199999998269232E+001 0.199999997738234E+001 0.199999997049317E+001 - 0.199999996152723E+001 0.199999994980670E+001 0.199999993439518E+001 - 0.199999991397809E+001 0.199999988667554E+001 0.199999984974139E+001 - 0.199999979906340E+001 0.199999972830194E+001 0.199999962734039E+001 - 0.199999947935009E+001 0.199999925487617E+001 0.199999889897357E+001 - 0.199999830038211E+001 0.199999720764295E+001 0.199999495693726E+001 - 0.199998932320095E+001 0.199996887886025E+001 0.199975407454689E+001 - 0.431551662635775E-003 0.290238021459569E-004 0.874001365815937E-005 - 0.397796002610388E-005 0.221113326613396E-005 0.138450122514634E-005 - 0.938665987175496E-006 0.673805361694099E-006 0.505011859296970E-006 - 0.391538800170954E-006 0.311979705741560E-006 0.254271078363920E-006 - 0.211222261441101E-006 0.178345606123055E-006 0.152730889656751E-006 - 0.132428460894877E-006 0.116095185211620E-006 0.102783040097464E-006 - 0.918085004909292E-007 0.826693945734252E-007 0.749905662881783E-007 - 0.684875240424677E-007 0.629416081171861E-007 0.581827046154084E-007 - 0.540770060562876E-007 0.505182102322879E-007 0.474211016164382E-007 - 0.447168096104477E-007 0.423492639467603E-007 0.402725161511510E-007 - 0.384486952850410E-007 0.368464335816535E-007 0.354396439777761E-007 - 0.342065638946454E-007 0.331290024673482E-007 0.321917447436366E-007 - 0.313820781646706E-007 0.306894152561932E-007 0.301049928435825E-007 - 0.296216326078867E-007 0.292335522600974E-007 0.289362175936415E-007 - 0.287262300271968E-007 0.286012441625739E-007 0.285599121645196E-007 - 0.286018526695527E-007 0.287276429936968E-007 0.289388343563599E-007 - 0.292379907728916E-007 0.296287532434272E-007 0.301159319446461E-007 - 0.307056303809148E-007 0.314054069612435E-007 0.322244813453286E-007 - 0.331739952923689E-007 0.342673408460168E-007 0.355205727698412E-007 - 0.369529275831275E-007 0.385874788897265E-007 0.404519686850162E-007 - 0.425798681210595E-007 0.450117404237463E-007 0.477970057543405E-007 - 0.509962464822229E-007 0.546842472500738E-007 0.589540461730020E-007 - 0.639223954444993E-007 0.697372139391938E-007 0.765878978926822E-007 - 0.847198000564138E-007 0.944548985987500E-007 0.106221840363566E-006 - 0.120600494963062E-006 0.138389522872634E-006 0.160711449766865E-006 - 0.189180769337153E-006 0.226181724283679E-006 0.275344741435003E-006 - 0.342399803774031E-006 0.436785253619404E-006 0.574872867595799E-006 - 0.786937873461929E-006 0.113371493442363E-005 0.175086146698277E-005 - 0.299012281396628E-005 0.599197694393910E-005 0.161738858610576E-004 - 0.955225484386738E-004 0.199745250476279E+001 0.199994027753003E+001 - 0.199998385058206E+001 0.199999305077266E+001 0.199999633384389E+001 - 0.199999783214151E+001 0.199999862199941E+001 0.199999907978335E+001 - 0.199999936343095E+001 0.199999954806659E+001 0.199999967285906E+001 - 0.199999975971679E+001 0.199999982159373E+001 0.199999986650171E+001 - 0.199999989958349E+001 0.199999992424471E+001 0.199999994280115E+001 - 0.199999995686365E+001 0.199999996757498E+001 0.199999997575982E+001 - 0.199999998202230E+001 0.199999998681087E+001 0.199999999046229E+001 - 0.199999999323206E+001 0.199999999531580E+001 0.199999999686445E+001 - 0.199999999799532E+001 0.199999999880012E+001 0.199999999935093E+001 - 0.199999999970463E+001 0.199999999990628E+001 0.199999999999168E+001 - 0.199999999998931E+001 0.199999999992186E+001 0.199999999980740E+001 - 0.199999999966034E+001 0.199999999949208E+001 0.199999999931168E+001 - 0.199999999912626E+001 0.199999999894137E+001 0.199999999876133E+001 - 0.199999999858939E+001 0.199999999842801E+001 0.199999999827895E+001 - 0.199999999814343E+001 0.199999999802223E+001 0.199999999791576E+001 - 0.199999999782416E+001 0.199999999774733E+001 0.199999999768497E+001 - 0.199999999763667E+001 0.199999999760189E+001 0.199999999758000E+001 - 0.199999999757031E+001 0.199999999757210E+001 0.199999999758460E+001 - 0.199999999760703E+001 0.199999999763861E+001 0.199999999767855E+001 - 0.199999999772609E+001 0.199999999778044E+001 0.199999999784087E+001 - 0.199999999790666E+001 0.199999999797709E+001 0.199999999805151E+001 - 0.199999999812925E+001 0.199999999820971E+001 0.199999999829229E+001 - 0.199999999837643E+001 0.199999999846162E+001 0.199999999854735E+001 - 0.199999999863315E+001 0.199999999871860E+001 0.199999999880327E+001 - 0.199999999888679E+001 0.199999999896882E+001 + 0.199999999950827E+001 0.199999999950204E+001 0.199999999949994E+001 + 0.199999999950188E+001 0.199999999950770E+001 0.199999999951721E+001 + 0.199999999953016E+001 0.199999999954626E+001 0.199999999956519E+001 + 0.199999999958661E+001 0.199999999961015E+001 0.199999999963543E+001 + 0.199999999966205E+001 0.199999999968961E+001 0.199999999971773E+001 + 0.199999999974600E+001 0.199999999977405E+001 0.199999999980151E+001 + 0.199999999982806E+001 0.199999999985337E+001 0.199999999987717E+001 + 0.199999999989921E+001 0.199999999991928E+001 0.199999999993722E+001 + 0.199999999995290E+001 0.199999999996626E+001 0.199999999997728E+001 + 0.199999999998598E+001 0.199999999999245E+001 0.199999999999681E+001 + 0.199999999999926E+001 0.200000000000001E+001 0.199999999999934E+001 + 0.199999999999755E+001 0.199999999999499E+001 0.199999999999201E+001 + 0.199999999998899E+001 0.199999999998629E+001 0.199999999998424E+001 + 0.199999999998314E+001 0.199999999998320E+001 0.199999999998452E+001 + 0.199999999998706E+001 0.199999999999058E+001 0.199999999999454E+001 + 0.199999999999811E+001 0.199999999999998E+001 0.199999999999832E+001 + 0.199999999999060E+001 0.199999999997344E+001 0.199999999994239E+001 + 0.199999999989165E+001 0.199999999981379E+001 0.199999999969929E+001 + 0.199999999953608E+001 0.199999999930884E+001 0.199999999899825E+001 + 0.199999999857991E+001 0.199999999802302E+001 0.199999999728866E+001 + 0.199999999632759E+001 0.199999999507729E+001 0.199999999345808E+001 + 0.199999999136805E+001 0.199999998867604E+001 0.199999998521221E+001 + 0.199999998075508E+001 0.199999997501331E+001 0.199999996759999E+001 + 0.199999995799572E+001 0.199999994549444E+001 0.199999992912277E+001 + 0.199999990751687E+001 0.199999987873022E+001 0.199999983992457E+001 + 0.199999978685753E+001 0.199999971300050E+001 0.199999960795373E+001 + 0.199999945444797E+001 0.199999922231045E+001 0.199999885535713E+001 + 0.199999824002580E+001 0.199999712013840E+001 0.199999482076512E+001 + 0.199998908452434E+001 0.199996834733324E+001 0.199975157561070E+001 + 0.431492589150264E-003 0.290217137674087E-004 0.873954314802182E-005 + 0.397778393970201E-005 0.221104912031187E-005 0.138445474256899E-005 + 0.938637714299492E-006 0.673786940590084E-006 0.504999221136364E-006 + 0.391529773755260E-006 0.311973047912153E-006 0.254266036420560E-006 + 0.211218358447925E-006 0.178342528256306E-006 0.152728423739260E-006 + 0.132426458118800E-006 0.116093539224313E-006 0.102781673307084E-006 + 0.918073552519806E-007 0.826684273640323E-007 0.749897437740832E-007 + 0.684868203611422E-007 0.629410029688798E-007 0.581821818991050E-007 + 0.540765528798141E-007 0.505178161842659E-007 0.474207582239794E-007 + 0.447165099305157E-007 0.423490022550100E-007 0.402722877027129E-007 + 0.384484961289919E-007 0.368462604159592E-007 0.354394940350929E-007 + 0.342064348517949E-007 0.331288923733433E-007 0.321916519618273E-007 + 0.313820013271383E-007 0.306893532251725E-007 0.301049447190389E-007 + 0.296215975625427E-007 0.292335297285919E-007 0.289362071221130E-007 + 0.287262312948249E-007 0.286012569743465E-007 0.285599364464364E-007 + 0.286018884665384E-007 0.287276904699604E-007 0.289388937986048E-007 + 0.292380625960343E-007 0.296288379995015E-007 0.301160303348466E-007 + 0.307057432714433E-007 0.314055354036262E-007 0.322246266019364E-007 + 0.331741588683576E-007 0.342675245292303E-007 0.355207786798532E-007 + 0.369531582337395E-007 0.385877372657979E-007 0.404522583398229E-007 + 0.425801932992114E-007 0.450121062177610E-007 0.477974183054782E-007 + 0.509967132403319E-007 0.546847773129269E-007 0.589546507339792E-007 + 0.639230883897698E-007 0.697380126540988E-007 0.765888243651732E-007 + 0.847208824091412E-007 0.944561732507499E-007 0.106223355134906E-006 + 0.120602313622538E-006 0.138391731947690E-006 0.160714168996861E-006 + 0.189184168176357E-006 0.226186048805286E-006 0.275350359848846E-006 + 0.342407286847622E-006 0.436795524259298E-006 0.574887496853652E-006 + 0.786959712769273E-006 0.113374960294933E-005 0.175092132344748E-005 + 0.299023958820641E-005 0.599225383751350E-005 0.161748317485072E-004 + 0.955310258574671E-004 0.199746569355166E+001 0.199994106548959E+001 + 0.199998414554374E+001 0.199999320733109E+001 0.199999643071352E+001 + 0.199999789746302E+001 0.199999866852204E+001 0.199999911418136E+001 + 0.199999938955815E+001 0.199999956831210E+001 0.199999968878591E+001 + 0.199999977239172E+001 0.199999983176990E+001 0.199999987472593E+001 + 0.199999990626212E+001 0.199999992968569E+001 0.199999994724179E+001 + 0.199999996048952E+001 0.199999997053298E+001 0.199999997816754E+001 + 0.199999998397475E+001 0.199999998838549E+001 0.199999999172263E+001 + 0.199999999423065E+001 0.199999999609626E+001 0.199999999746323E+001 + 0.199999999844298E+001 0.199999999912239E+001 0.199999999956952E+001 + 0.199999999983794E+001 0.199999999996991E+001 0.199999999999887E+001 + 0.199999999995134E+001 0.199999999984831E+001 0.199999999970644E+001 + 0.199999999953889E+001 0.199999999935604E+001 0.199999999916604E+001 + 0.199999999897522E+001 0.199999999878849E+001 0.199999999860957E+001 + 0.199999999844122E+001 0.199999999828546E+001 0.199999999814367E+001 + 0.199999999801676E+001 0.199999999790521E+001 0.199999999780920E+001 + 0.199999999772863E+001 0.199999999766323E+001 0.199999999761255E+001 + 0.199999999757602E+001 0.199999999755299E+001 0.199999999754272E+001 + 0.199999999754444E+001 0.199999999755735E+001 0.199999999758061E+001 + 0.199999999761339E+001 0.199999999765487E+001 0.199999999770423E+001 + 0.199999999776064E+001 0.199999999782334E+001 0.199999999789154E+001 + 0.199999999796452E+001 0.199999999804157E+001 0.199999999812199E+001 + 0.199999999820516E+001 0.199999999829044E+001 0.199999999837725E+001 + 0.199999999846505E+001 0.199999999855331E+001 0.199999999864154E+001 + 0.199999999872929E+001 0.199999999881613E+001 0.199999999890168E+001 + 0.199999999898556E+001 0.199999999906745E+001 total_localdos :real:2:251,1 - 0.269323223156065E+002 0.268814040489886E+002 0.268320644598050E+002 - 0.267843051292632E+002 0.267381291842322E+002 0.266935413391279E+002 - 0.266505479428864E+002 0.266091570313489E+002 0.265693783854198E+002 - 0.265312235954015E+002 0.264947061319544E+002 0.264598414241812E+002 - 0.264266469453910E+002 0.263951423071612E+002 0.263653493623834E+002 - 0.263372923180593E+002 0.263109978586967E+002 0.262864952812550E+002 - 0.262638166426973E+002 0.262429969213304E+002 0.262240741932512E+002 - 0.262070898253741E+002 0.261920886866939E+002 0.261791193796347E+002 - 0.261682344935688E+002 0.261594908828433E+002 0.261529499719552E+002 - 0.261486780908479E+002 0.261467468436953E+002 0.261472335149833E+002 - 0.261502215172116E+002 0.261558008851325E+002 0.261640688221265E+002 - 0.261751303051103E+002 0.261890987552957E+002 0.262060967831941E+002 - 0.262262570175197E+002 0.262497230291206E+002 0.262766503627993E+002 - 0.263072076919327E+002 0.263415781132194E+002 0.263799606017582E+002 - 0.264225716500843E+002 0.264696471188838E+002 0.265214443320210E+002 - 0.265782444544327E+002 0.266403551986081E+002 0.267081139140793E+002 - 0.267818911249700E+002 0.268620945936880E+002 0.269491740049087E+002 - 0.270436263838827E+002 0.271460023879686E+002 0.272569136412172E+002 - 0.273770413211878E+002 0.275071462567337E+002 0.276480808590633E+002 - 0.278008032900651E+002 0.279663943778361E+002 0.281460779278426E+002 - 0.283412452607739E+002 0.285534850512240E+002 0.287846198680636E+002 - 0.290367512612823E+002 0.293123158501017E+002 0.296141557159449E+002 - 0.299456076006324E+002 0.303106171224380E+002 0.307138867113761E+002 - 0.311610696456028E+002 0.316590281183604E+002 0.322161818039937E+002 - 0.328429868456892E+002 0.335526069451975E+002 0.343618744670722E+002 - 0.352927018445463E+002 0.363742151129251E+002 0.376460898101113E+002 - 0.391639794668216E+002 0.410087842500659E+002 0.433034378912911E+002 - 0.462456560717605E+002 0.501783152953755E+002 0.557620759738459E+002 - 0.644893414319875E+002 0.807950966011544E+002 0.129876524654278E+003 - 0.230656294530060E+001 0.327945267746186E+000 0.140467172891997E+000 - 0.813058186572964E-001 0.543875427788548E-001 0.396339366631899E-001 - 0.305708314827324E-001 0.245555990402478E-001 0.203332478278652E-001 - 0.172408737563681E-001 0.148994568873266E-001 0.130785615332726E-001 - 0.116310375587064E-001 0.104590661179972E-001 0.949540559737690E-002 - 0.869250279742976E-002 0.801589932347297E-002 0.744009291968304E-002 - 0.694585780833010E-002 0.651846200074551E-002 0.614645265457159E-002 - 0.582081072540954E-002 0.553435137110177E-002 0.528129135375380E-002 - 0.505693208472042E-002 0.485742413285999E-002 0.467959002133404E-002 - 0.452078933186644E-002 0.437881492426766E-002 0.425181232085606E-002 - 0.413821653407280E-002 0.403670216976171E-002 0.394614373688168E-002 - 0.386558388025527E-002 0.379420782182777E-002 0.373132271232360E-002 - 0.367634090326791E-002 0.362876637967885E-002 0.358818376770492E-002 - 0.355424946498593E-002 0.352668454231591E-002 0.350526914972804E-002 - 0.348983821928246E-002 0.348027831300276E-002 0.347652550591177E-002 - 0.347856423215759E-002 0.348642705574267E-002 0.350019535893068E-002 - 0.352000097261435E-002 0.354602880545488E-002 0.357852056420840E-002 - 0.361777969834478E-002 0.366417775024861E-002 0.371816235099522E-002 - 0.378026717483279E-002 0.385112425825878E-002 0.393147920903848E-002 - 0.402220998591589E-002 0.412435013534817E-002 0.423911764439876E-002 - 0.436795093740360E-002 0.451255404464864E-002 0.467495366038363E-002 - 0.485757176631103E-002 0.506331884720445E-002 0.529571465225789E-002 - 0.555904624354948E-002 0.585857716692429E-002 0.620082769075252E-002 - 0.659395533944190E-002 0.704827932122176E-002 0.757701518154128E-002 - 0.819732281399801E-002 0.893183209749188E-002 0.981091496767259E-002 - 0.108761573747000E-001 0.121858229023974E-001 0.138237462844337E-001 - 0.159143915802888E-001 0.186495614861323E-001 0.223384901040863E-001 - 0.275084270391506E-001 0.351246694236671E-001 0.471284740976654E-001 - 0.679664528790087E-001 0.110008404680562E+000 0.221073706766167E+000 - 0.788163399771307E+000 0.233142768932176E+003 0.945502293266371E+002 - 0.707347614560489E+002 0.594713161378990E+002 0.526412024845782E+002 - 0.479679579841047E+002 0.445310743198125E+002 0.418785354218847E+002 - 0.397593035682910E+002 0.380214833491406E+002 0.365671561917002E+002 - 0.353300396964497E+002 0.342634888025359E+002 0.333336216738270E+002 - 0.325151709725729E+002 0.317888700417202E+002 0.311397456031109E+002 - 0.305559677382990E+002 0.300280544110593E+002 0.295483083446780E+002 - 0.291104101821298E+002 0.287091191984835E+002 0.283400495524168E+002 - 0.279995005684500E+002 0.276843263051859E+002 0.273918341162190E+002 - 0.271197048985006E+002 0.268659297652031E+002 0.266287592990097E+002 - 0.264066625424507E+002 0.261982935975056E+002 0.260024642249627E+002 - 0.258181212138696E+002 0.256443275728379E+002 0.254802468056318E+002 - 0.253251296926833E+002 0.251783031215614E+002 0.250391606027562E+002 - 0.249071541794753E+002 0.247817874966076E+002 0.246626098383997E+002 - 0.245492109795318E+002 0.244412167222297E+002 0.243382850144742E+002 - 0.242401025624070E+002 0.241463818646480E+002 0.240568586081356E+002 - 0.239712893748288E+002 0.238894496166024E+002 0.238111318622618E+002 - 0.237361441260719E+002 0.236643084917393E+002 0.235954598495892E+002 - 0.235294447678576E+002 0.234661204817046E+002 0.234053539858090E+002 - 0.233470212183270E+002 0.232910063256173E+002 0.232372009985282E+002 - 0.231855038722215E+002 0.231358199825284E+002 0.230880602727007E+002 - 0.230421411451761E+002 0.229979840536238E+002 0.229555151310990E+002 - 0.229146648506237E+002 0.228753677149349E+002 0.228375619725122E+002 - 0.228011893573188E+002 0.227661948499745E+002 0.227325264583258E+002 - 0.227001350155990E+002 0.226689739945112E+002 0.226389993358856E+002 - 0.226101692904676E+002 0.225824442727694E+002 + 0.269323079142259E+002 0.268813900568699E+002 0.268320508634675E+002 + 0.267842919168811E+002 0.267381163456970E+002 0.266935288661099E+002 + 0.266505358288940E+002 0.266091452717875E+002 0.265693669776486E+002 + 0.265312125387893E+002 0.264946954279338E+002 0.264598310763015E+002 + 0.264266369593697E+002 0.263951326909341E+002 0.263653401261536E+002 + 0.263372834743450E+002 0.263109894223776E+002 0.262864872696184E+002 + 0.262638090754830E+002 0.262429898207750E+002 0.262240675841319E+002 + 0.262070837350524E+002 0.261920831451594E+002 0.261791144195493E+002 + 0.261682301503108E+002 0.261594871945534E+002 0.261529469795830E+002 + 0.261486758382008E+002 0.261467453774890E+002 0.261472328848953E+002 + 0.261502217759378E+002 0.261558020884477E+002 0.261640710289495E+002 + 0.261751335775744E+002 0.261891031588249E+002 0.262061023865870E+002 + 0.262262638930411E+002 0.262497312526027E+002 0.262766600137534E+002 + 0.263072188536732E+002 0.263415908730016E+002 0.263799750509317E+002 + 0.264225878842648E+002 0.264696652381444E+002 0.265214644411079E+002 + 0.265782666630062E+002 0.266403796215149E+002 0.267081406716586E+002 + 0.267819203433993E+002 0.268621264053744E+002 0.269492085489254E+002 + 0.270436638065011E+002 0.271460428431897E+002 0.272569572914546E+002 + 0.273770883380103E+002 0.275071968217256E+002 0.276481351648147E+002 + 0.278008615413170E+002 0.279664567928090E+002 0.281461447397815E+002 + 0.283413167197592E+002 0.285535614262974E+002 0.287847014497437E+002 + 0.290368383645516E+002 0.293124088179862E+002 0.296142549238220E+002 + 0.299457134614641E+002 0.303107300931803E+002 0.307140073008999E+002 + 0.311611984245889E+002 0.316591657317993E+002 0.322163289871850E+002 + 0.328431444450130E+002 0.335527759455291E+002 0.343620560286372E+002 + 0.352928973535308E+002 0.363744262527027E+002 0.376463186644046E+002 + 0.391642286742950E+002 0.410090572456635E+002 0.433037393024676E+002 + 0.462459924114916E+002 0.501786962779493E+002 0.557625173062514E+002 + 0.644898717521440E+002 0.807957794386177E+002 0.129877545118250E+003 + 0.230626836554637E+001 0.327924565129400E+000 0.140460805132766E+000 + 0.813028855379619E-001 0.543859021485344E-001 0.396329071735457E-001 + 0.305701343104104E-001 0.245551005609802E-001 0.203328766194186E-001 + 0.172405884545580E-001 0.148992320137027E-001 0.130783806082644E-001 + 0.116308894910460E-001 0.104589431926175E-001 0.949530229633253E-002 + 0.869241507924718E-002 0.801582416662281E-002 0.744002802430403E-002 + 0.694580139603580E-002 0.651841267704724E-002 0.614640931233242E-002 + 0.582077247581384E-002 0.553431749345974E-002 0.528126125845920E-002 + 0.505690528551968E-002 0.485740022584548E-002 0.467956866884405E-002 + 0.452077025001897E-002 0.437879787321593E-002 0.425179709710620E-002 + 0.413820296438016E-002 0.403669010624741E-002 0.394613305310195E-002 + 0.386557446802042E-002 0.379419958861796E-002 0.373131557918164E-002 + 0.367633480307964E-002 0.362876125577057E-002 0.358817957284820E-002 + 0.355424615986963E-002 0.352668209571509E-002 0.350526753731766E-002 + 0.348983742334544E-002 0.348027832211401E-002 0.347652631473652E-002 + 0.347856584135748E-002 0.348642947198795E-002 0.350019859501783E-002 + 0.352000504769403E-002 0.354603374537677E-002 0.357852640199481E-002 + 0.361778647480894E-002 0.366418551477899E-002 0.371817116253379E-002 + 0.378027710308338E-002 0.385113538517944E-002 0.393149163063579E-002 + 0.402222381452211E-002 0.412436550234331E-002 0.423913470361079E-002 + 0.436796986931527E-002 0.451257506164258E-002 0.467497701332457E-002 + 0.485759775286674E-002 0.506334782245152E-002 0.529574704232210E-002 + 0.555908256332442E-002 0.585861804334013E-002 0.620087389370122E-002 + 0.659400782342326E-002 0.704833928224730E-002 0.757708413614531E-002 + 0.819740271092392E-002 0.893192547875334E-002 0.981102520610200E-002 + 0.108762890333588E-001 0.121859822944590E-001 0.138239423752520E-001 + 0.159146374991736E-001 0.186498771810362E-001 0.223389072731887E-001 + 0.275089989496439E-001 0.351254922511965E-001 0.471297389426691E-001 + 0.679685942297148E-001 0.110012635619526E+000 0.221084875975458E+000 + 0.788226901376817E+000 0.233142367491941E+003 0.945495090243589E+002 + 0.707342264011002E+002 0.594708793284011E+002 0.526408288643885E+002 + 0.479676295570237E+002 0.445307804149961E+002 0.418782690907745E+002 + 0.397590599790224E+002 0.380212589743042E+002 0.365669483578127E+002 + 0.353298463159483E+002 0.342633082053327E+002 0.333334524966278E+002 + 0.325150120834378E+002 0.317887204870374E+002 0.311396045693361E+002 + 0.305558345237178E+002 0.300279284045349E+002 0.295481890093740E+002 + 0.291102970428556E+002 0.287090118317167E+002 0.283399475783429E+002 + 0.279994036445377E+002 0.276842341209515E+002 0.273917463889206E+002 + 0.271196213695656E+002 0.268658501972435E+002 0.266286834733082E+002 + 0.264065902568319E+002 0.261982246645210E+002 0.260023984703326E+002 + 0.258180584751442E+002 0.256442676982322E+002 0.254801896530174E+002 + 0.253250751287023E+002 0.251782510208511E+002 0.250391108472657E+002 + 0.249071066578612E+002 0.247817421036947E+002 0.246625664747071E+002 + 0.245491695508430E+002 0.244411771392106E+002 0.243382471923290E+002 + 0.242400664205682E+002 0.241463473264960E+002 0.240568256007447E+002 + 0.239712578287364E+002 0.238894194655987E+002 0.238111030431980E+002 + 0.237361165786844E+002 0.236642821584888E+002 0.235954346755124E+002 + 0.235294207004310E+002 0.234660974707184E+002 0.234053319832507E+002 + 0.233470001782733E+002 0.232909862041342E+002 0.232371817535772E+002 + 0.231854854635732E+002 0.231358023716807E+002 0.230880434228031E+002 + 0.230421250209587E+002 0.229979686213300E+002 0.229555003584227E+002 + 0.229146507066503E+002 0.228753541700853E+002 0.228375489984897E+002 + 0.228011769270594E+002 0.227661829375992E+002 0.227325150390960E+002 + 0.227001240658734E+002 0.226689634917051E+002 0.226389892584321E+002 + 0.226101596177806E+002 0.225824349852081E+002 dipole_moments :real:2:3,1 - 0.000000000000000E+000 0.000000000000000E+000 0.618803856990423E-004 + 0.000000000000000E+000 0.000000000000000E+000 -0.215989989941053E-005 diff --git a/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag b/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag index cad3db64f1..ded8975b1c 100644 --- a/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag +++ b/test/app/dftb+/transport/C-chain+Uspin/_autotest.tag @@ -1,65 +1,65 @@ cell_volume :real:0: 0.843871930469613E+005 orbital_charges :real:2:4,24 - 0.590105908815776E+000 0.531249994182319E+000 0.409894085154945E+000 - 0.531249994182319E+000 0.590105916553262E+000 0.531250025264484E+000 - 0.409894091938490E+000 0.531250025264484E+000 0.590105908132062E+000 - 0.531249995049518E+000 0.409894085119099E+000 0.531249995049518E+000 - 0.590105914314128E+000 0.531250013991477E+000 0.409894090259225E+000 - 0.531250013991477E+000 0.590105914314125E+000 0.531250013991486E+000 - 0.409894090259219E+000 0.531250013991487E+000 0.590105908132089E+000 - 0.531249995049653E+000 0.409894085119122E+000 0.531249995049652E+000 - 0.590105916553269E+000 0.531250025264517E+000 0.409894091938498E+000 - 0.531250025264517E+000 0.590105908815782E+000 0.531249994182428E+000 - 0.409894085154946E+000 0.531249994182428E+000 0.590105912733026E+000 - 0.531249999999888E+000 0.409894087266973E+000 0.531249999999889E+000 + 0.590105909329038E+000 0.531249989711303E+000 0.409894085799860E+000 + 0.531249989711303E+000 0.590105915258466E+000 0.531250013455818E+000 + 0.409894090805623E+000 0.531250013455818E+000 0.590105908530290E+000 + 0.531249987553796E+000 0.409894085491044E+000 0.531249987553796E+000 + 0.590105913807941E+000 0.531250003152351E+000 0.409894089819275E+000 + 0.531250003152352E+000 0.590105913807929E+000 0.531250003152262E+000 + 0.409894089819269E+000 0.531250003152262E+000 0.590105908530283E+000 + 0.531249987553770E+000 0.409894085491036E+000 0.531249987553771E+000 + 0.590105915258448E+000 0.531250013455726E+000 0.409894090805607E+000 + 0.531250013455726E+000 0.590105909329042E+000 0.531249989711270E+000 + 0.409894085799866E+000 0.531249989711271E+000 0.590105912733026E+000 + 0.531249999999889E+000 0.409894087266973E+000 0.531249999999889E+000 + 0.590105912733028E+000 0.531249999999891E+000 0.409894087266973E+000 + 0.531249999999892E+000 0.590105912733027E+000 0.531249999999889E+000 + 0.409894087266973E+000 0.531249999999890E+000 0.590105912733026E+000 + 0.531249999999890E+000 0.409894087266972E+000 0.531249999999890E+000 0.590105912733027E+000 0.531249999999889E+000 0.409894087266973E+000 - 0.531249999999890E+000 0.590105912733027E+000 0.531249999999889E+000 - 0.409894087266973E+000 0.531249999999889E+000 0.590105912733026E+000 + 0.531249999999890E+000 0.590105912733026E+000 0.531249999999887E+000 + 0.409894087266972E+000 0.531249999999887E+000 0.590105912733027E+000 0.531249999999888E+000 0.409894087266972E+000 0.531249999999889E+000 - 0.590105912733026E+000 0.531249999999890E+000 0.409894087266973E+000 - 0.531249999999891E+000 0.590105912733026E+000 0.531249999999888E+000 - 0.409894087266973E+000 0.531249999999888E+000 0.590105912733027E+000 - 0.531249999999889E+000 0.409894087266972E+000 0.531249999999890E+000 0.590105912733026E+000 0.531249999999888E+000 0.409894087266973E+000 - 0.531249999999889E+000 0.590105912733027E+000 0.531249999999889E+000 - 0.409894087266973E+000 0.531249999999890E+000 0.590105912733027E+000 - 0.531249999999891E+000 0.409894087266973E+000 0.531249999999891E+000 - 0.590105912733027E+000 0.531249999999888E+000 0.409894087266973E+000 - 0.531249999999889E+000 0.590105912733026E+000 0.531249999999889E+000 - 0.409894087266972E+000 0.531249999999890E+000 0.590105912733027E+000 - 0.531249999999888E+000 0.409894087266972E+000 0.531249999999889E+000 - 0.590105912733027E+000 0.531249999999888E+000 0.409894087266973E+000 - 0.531249999999889E+000 0.590105912733027E+000 0.531249999999888E+000 + 0.531249999999889E+000 0.590105912733027E+000 0.531249999999890E+000 + 0.409894087266973E+000 0.531249999999890E+000 0.590105912733028E+000 + 0.531249999999891E+000 0.409894087266972E+000 0.531249999999892E+000 + 0.590105912733028E+000 0.531249999999889E+000 0.409894087266973E+000 + 0.531249999999889E+000 0.590105912733027E+000 0.531249999999890E+000 + 0.409894087266972E+000 0.531249999999891E+000 0.590105912733026E+000 + 0.531249999999888E+000 0.409894087266972E+000 0.531249999999888E+000 + 0.590105912733027E+000 0.531249999999888E+000 0.409894087266972E+000 + 0.531249999999888E+000 0.590105912733027E+000 0.531249999999888E+000 0.409894087266972E+000 0.531249999999889E+000 0.590105912733027E+000 - 0.531249999999889E+000 0.409894087266973E+000 0.531249999999890E+000 + 0.531249999999888E+000 0.409894087266973E+000 0.531249999999889E+000 forces :real:2:3,24 - -0.132796132413417E-019 -0.496755352641194E-019 0.667025896998265E-001 - 0.428229643956325E-020 0.179892349531164E-019 -0.667025954441334E-001 - 0.174197179179077E-020 -0.416207983997898E-020 0.667025990316114E-001 - -0.117893675707527E-020 -0.117011156555675E-020 -0.667026024113777E-001 - -0.350649952375745E-020 0.438087765473235E-020 0.667026024117919E-001 - 0.650711966537237E-020 0.403518998214007E-020 -0.667025990323157E-001 - 0.421903703117541E-019 -0.617865098490079E-019 0.667025954447474E-001 - -0.904578632802591E-019 0.147193362333064E-018 -0.667025897002156E-001 - 0.471264517671598E-019 -0.884774436173490E-019 -0.214206870779588E+000 - -0.142217749259876E-020 -0.424247854261442E-020 -0.225525587041855E+000 - 0.423113075287814E-023 0.945806861532279E-023 0.246885927253037E+000 + 0.866273652234071E-019 0.901063078442807E-019 0.667025852799003E-001 + -0.311927649768086E-019 -0.220044183425178E-019 -0.667025888899611E-001 + -0.193238730602653E-020 -0.141068772846213E-020 0.667025916547793E-001 + 0.321485338781457E-020 0.174626394757243E-020 -0.667025942882097E-001 + 0.808216526710572E-021 0.480624178090769E-020 0.667025942886313E-001 + -0.638202363199846E-020 -0.341657448128144E-020 -0.667025916554795E-001 + -0.106778127861589E-019 -0.592422342546851E-019 0.667025888905685E-001 + 0.581873990260898E-019 0.142453740980429E-018 -0.667025852802963E-001 + -0.442432352888190E-019 -0.851601301991711E-019 -0.214206873121515E+000 + 0.153091733797310E-020 0.630357532865819E-021 -0.225525587167808E+000 + -0.134965981695862E-022 -0.247720490499013E-023 0.246885927254958E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125556E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125559E+000 - 0.557711139451956E-023 0.202040000671257E-022 -0.246885927253044E+000 - -0.118756967925499E-020 0.130379500628134E-020 0.225525587041868E+000 - 0.917464175054043E-020 0.345820366746235E-019 0.214206870779644E+000 + -0.261250143053418E-022 -0.163417081285467E-022 -0.246885927254965E+000 + 0.504234466986555E-021 -0.434023587284628E-021 0.225525587167817E+000 + -0.564051403440681E-019 -0.680560245571134E-019 0.214206873121578E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125569E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 0.247021736125578E+000 -0.000000000000000E+000 -0.000000000000000E+000 -0.247021736125559E+000 total_energy :real:0: - -0.149474357488809E+002 + -0.149474356976478E+002 end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 0.117309490472823E+001 0.000000000000000E+000 0.000000000000000E+000 0.374999347524859E+001 @@ -86,174 +86,174 @@ end_coords :real:2:3,24 0.000000000000000E+000 0.000000000000000E+000 -0.135961702352022E+002 0.000000000000000E+000 0.000000000000000E+000 -0.110192716646819E+002 total_tunneling :real:2:251,1 - 0.399999999946527E+001 0.399999999945550E+001 0.399999999944641E+001 - 0.399999999943843E+001 0.399999999943191E+001 0.399999999942710E+001 - 0.399999999942419E+001 0.399999999942332E+001 0.399999999942455E+001 - 0.399999999942790E+001 0.399999999943335E+001 0.399999999944085E+001 - 0.399999999945029E+001 0.399999999946158E+001 0.399999999947459E+001 - 0.399999999948919E+001 0.399999999950527E+001 0.399999999952268E+001 - 0.399999999954131E+001 0.399999999956106E+001 0.399999999958184E+001 - 0.399999999960357E+001 0.399999999962620E+001 0.399999999964968E+001 - 0.399999999967398E+001 0.399999999969906E+001 0.399999999972488E+001 - 0.399999999975135E+001 0.399999999977838E+001 0.399999999980575E+001 - 0.399999999983319E+001 0.399999999986024E+001 0.399999999988627E+001 - 0.399999999991037E+001 0.399999999993130E+001 0.399999999994738E+001 - 0.399999999995633E+001 0.399999999995520E+001 0.399999999994010E+001 - 0.399999999990601E+001 0.399999999984648E+001 0.399999999975327E+001 - 0.399999999961587E+001 0.399999999942096E+001 0.399999999915166E+001 - 0.399999999878661E+001 0.399999999829881E+001 0.399999999765408E+001 - 0.399999999680909E+001 0.399999999570884E+001 0.399999999428324E+001 - 0.399999999244264E+001 0.399999999007188E+001 0.399999998702216E+001 - 0.399999998309993E+001 0.399999997805153E+001 0.399999997154160E+001 - 0.399999996312229E+001 0.399999995218862E+001 0.399999993791259E+001 - 0.399999991914386E+001 0.399999989425657E+001 0.399999986090689E+001 - 0.399999981563750E+001 0.399999975321009E+001 0.399999966543285E+001 - 0.399999953900192E+001 0.399999935129756E+001 0.399999906161646E+001 - 0.399999859125137E+001 0.399999777295729E+001 0.399999620228898E+001 - 0.399999269700155E+001 0.399998254516000E+001 0.399993036833665E+001 - 0.399091133059028E+001 0.200007707590013E+001 0.200001480399258E+001 - 0.200000570191585E+001 0.200000289045325E+001 0.200000169574928E+001 - 0.200000108476749E+001 0.200000072955467E+001 0.200000050052865E+001 - 0.200000033781551E+001 0.200000020974464E+001 0.200000009687009E+001 - 0.199999998466879E+001 0.199999985926717E+001 0.199999970371621E+001 - 0.199999949293356E+001 0.199999918441326E+001 0.199999869788571E+001 - 0.199999786418669E+001 0.199999627498663E+001 0.199999273539381E+001 - 0.199998246687069E+001 0.199992927557521E+001 0.198910261492578E+001 - 0.755322806592311E-004 0.147212754596903E-004 0.573368652608406E-005 - 0.294993234725310E-005 0.176896006519071E-005 0.116992783892167E-005 - 0.828597968862979E-006 0.617462081191542E-006 0.478617022650467E-006 - 0.382878466612397E-006 0.314321943335696E-006 0.263696991268530E-006 - 0.225350538065789E-006 0.195679892801304E-006 0.172306572159327E-006 - 0.153612326831237E-006 0.138467217624279E-006 0.126064292780649E-006 - 0.115815820359547E-006 0.107286310919432E-006 0.100148207019937E-006 - 0.941519203307727E-007 0.891051733247682E-007 0.848585092089374E-007 - 0.812949742638636E-007 0.783226761969239E-007 0.758693609321304E-007 - 0.738784314748276E-007 0.723060163846624E-007 0.711188180875006E-007 - 0.702925548877333E-007 0.698108689814057E-007 0.696646149309364E-007 - 0.698514748639144E-007 0.703758722116005E-007 0.712491781792217E-007 - 0.724902269012630E-007 0.741261788496884E-007 0.761938002816049E-007 - 0.787412629429620E-007 0.818306176373128E-007 0.855411652664582E-007 - 0.899740503400027E-007 0.952585528788023E-007 0.101560783524274E-006 - 0.109095841104788E-006 0.118145052254556E-006 0.129080818389052E-006 - 0.142403094890154E-006 0.158794076507283E-006 0.179202125111183E-006 - 0.204974046390037E-006 0.238069967031962E-006 0.281424701762207E-006 - 0.339580359933477E-006 0.419847105581389E-006 0.534555538433658E-006 - 0.705733602963079E-006 0.975667985344502E-006 0.143344916457627E-005 - 0.229188162435794E-005 0.415963640754978E-005 0.935213831535063E-005 - 0.330449282843973E-004 0.727753561587258E-003 0.199981403845752E+001 - 0.199997200471122E+001 0.199999001085451E+001 0.199999523002342E+001 - 0.199999737275709E+001 0.199999843517986E+001 0.199999903028338E+001 - 0.199999939498298E+001 0.199999963608917E+001 0.199999980773258E+001 - 0.199999994038591E+001 0.200000005337811E+001 0.200000016116450E+001 - 0.200000027730936E+001 0.200000041824723E+001 0.200000060882624E+001 - 0.200000089343607E+001 0.200000136307699E+001 0.200000223323372E+001 - 0.200000411949289E+001 0.200000936926317E+001 0.200003347521087E+001 - 0.200077255580641E+001 0.399981876501213E+001 0.399997224082060E+001 - 0.399999000633056E+001 0.399999517346050E+001 0.399999729385009E+001 - 0.399999834038744E+001 0.399999892013218E+001 0.399999926762064E+001 - 0.399999948808679E+001 0.399999963405467E+001 0.399999973392104E+001 - 0.399999980402429E+001 0.399999985424529E+001 0.399999989080833E+001 - 0.399999991776960E+001 0.399999993784916E+001 0.399999995291612E+001 - 0.399999996428207E+001 0.399999997288429E+001 0.399999997940324E+001 - 0.399999998433978E+001 0.399999998806708E+001 0.399999999086612E+001 - 0.399999999295040E+001 0.399999999448350E+001 0.399999999559155E+001 - 0.399999999637243E+001 0.399999999690242E+001 0.399999999724124E+001 - 0.399999999743573E+001 0.399999999752273E+001 0.399999999753123E+001 - 0.399999999748403E+001 0.399999999739903E+001 0.399999999729023E+001 - 0.399999999716854E+001 0.399999999704238E+001 0.399999999691820E+001 - 0.399999999680083E+001 0.399999999669384E+001 0.399999999659977E+001 - 0.399999999652034E+001 0.399999999645660E+001 0.399999999640910E+001 - 0.399999999637796E+001 0.399999999636296E+001 0.399999999636365E+001 - 0.399999999637937E+001 0.399999999640931E+001 0.399999999645257E+001 - 0.399999999650814E+001 0.399999999657499E+001 0.399999999665204E+001 - 0.399999999673822E+001 0.399999999683244E+001 0.399999999693364E+001 - 0.399999999704077E+001 0.399999999715282E+001 0.399999999726881E+001 - 0.399999999738779E+001 0.399999999750888E+001 0.399999999763122E+001 - 0.399999999775400E+001 0.399999999787648E+001 + 0.399999999946733E+001 0.399999999945742E+001 0.399999999944819E+001 + 0.399999999944007E+001 0.399999999943339E+001 0.399999999942842E+001 + 0.399999999942535E+001 0.399999999942431E+001 0.399999999942537E+001 + 0.399999999942855E+001 0.399999999943382E+001 0.399999999944114E+001 + 0.399999999945040E+001 0.399999999946152E+001 0.399999999947436E+001 + 0.399999999948879E+001 0.399999999950470E+001 0.399999999952195E+001 + 0.399999999954042E+001 0.399999999956003E+001 0.399999999958067E+001 + 0.399999999960227E+001 0.399999999962479E+001 0.399999999964818E+001 + 0.399999999967240E+001 0.399999999969742E+001 0.399999999972321E+001 + 0.399999999974968E+001 0.399999999977672E+001 0.399999999980416E+001 + 0.399999999983170E+001 0.399999999985889E+001 0.399999999988512E+001 + 0.399999999990948E+001 0.399999999993073E+001 0.399999999994720E+001 + 0.399999999995664E+001 0.399999999995609E+001 0.399999999994167E+001 + 0.399999999990840E+001 0.399999999984983E+001 0.399999999975774E+001 + 0.399999999962165E+001 0.399999999942826E+001 0.399999999916072E+001 + 0.399999999879772E+001 0.399999999831229E+001 0.399999999767030E+001 + 0.399999999682849E+001 0.399999999573192E+001 0.399999999431058E+001 + 0.399999999247495E+001 0.399999999010997E+001 0.399999998706699E+001 + 0.399999998315264E+001 0.399999997811350E+001 0.399999997161450E+001 + 0.399999996320814E+001 0.399999995228990E+001 0.399999993803238E+001 + 0.399999991928603E+001 0.399999989442604E+001 0.399999986111000E+001 + 0.399999981588259E+001 0.399999975350832E+001 0.399999966579956E+001 + 0.399999953945877E+001 0.399999935187624E+001 0.399999906236538E+001 + 0.399999859224869E+001 0.399999777433885E+001 0.399999620431598E+001 + 0.399999270025799E+001 0.399998255132183E+001 0.399993038546803E+001 + 0.399091197984664E+001 0.200007707602818E+001 0.200001480401572E+001 + 0.200000570192986E+001 0.200000289046680E+001 0.200000169576464E+001 + 0.200000108478589E+001 0.200000072957716E+001 0.200000050055638E+001 + 0.200000033784991E+001 0.200000020978750E+001 0.200000009692379E+001 + 0.199999998473654E+001 0.199999985935339E+001 0.199999970382722E+001 + 0.199999949307864E+001 0.199999918460674E+001 0.199999869815088E+001 + 0.199999786456428E+001 0.199999627555557E+001 0.199999273633181E+001 + 0.199998246869205E+001 0.199992928078565E+001 0.198910284305108E+001 + 0.755323173075073E-004 0.147212802785522E-004 0.573368801082944E-005 + 0.294993299007299E-005 0.176896040037571E-005 0.116992803557828E-005 + 0.828598094061061E-006 0.617462165810519E-006 0.478617082507335E-006 + 0.382878510486885E-006 0.314321976417438E-006 0.263697016784408E-006 + 0.225350558107470E-006 0.195679908772837E-006 0.172306585030151E-006 + 0.153612337289962E-006 0.138467226169649E-006 0.126064299778867E-006 + 0.115815826085902E-006 0.107286315582340E-006 0.100148210779343E-006 + 0.941519233093245E-007 0.891051756178138E-007 0.848585108897807E-007 + 0.812949753885341E-007 0.783226768073812E-007 0.758693610586073E-007 + 0.738784311375275E-007 0.723060155949033E-007 0.711188168483524E-007 + 0.702925531945238E-007 0.698108668217563E-007 0.696646122844844E-007 + 0.698514717017428E-007 0.703758684956905E-007 0.712491738607590E-007 + 0.724902219194095E-007 0.741261731268505E-007 0.761937937295143E-007 + 0.787412554433919E-007 0.818306090507415E-007 0.855411554192272E-007 + 0.899740390162282E-007 0.952585398084731E-007 0.101560768366914E-006 + 0.109095823426803E-006 0.118145031497510E-006 0.129080793824656E-006 + 0.142403065554863E-006 0.158794041105524E-006 0.179202081868727E-006 + 0.204973992825902E-006 0.238069899592727E-006 0.281424615215277E-006 + 0.339580246319282E-006 0.419846952316592E-006 0.534555324678834E-006 + 0.705733292173359E-006 0.975667508628842E-006 0.143344837920395E-005 + 0.229188019385075E-005 0.415963337408242E-005 0.935212997756426E-005 + 0.330448884480769E-004 0.727751739418081E-003 0.199981400570539E+001 + 0.199997199667313E+001 0.199999000707499E+001 0.199999522780293E+001 + 0.199999737129601E+001 0.199999843415040E+001 0.199999902952431E+001 + 0.199999939440500E+001 0.199999963563857E+001 0.199999980737494E+001 + 0.199999994009813E+001 0.200000005314408E+001 0.200000016097260E+001 + 0.200000027715103E+001 0.200000041811599E+001 0.200000060871711E+001 + 0.200000089334514E+001 0.200000136300114E+001 0.200000223317037E+001 + 0.200000411943974E+001 0.200000936921743E+001 0.200003347516294E+001 + 0.200077255517397E+001 0.399981875523227E+001 0.399997223842499E+001 + 0.399999000521664E+001 0.399999517281566E+001 0.399999729343343E+001 + 0.399999834010026E+001 0.399999891992593E+001 0.399999926746845E+001 + 0.399999948797247E+001 0.399999963396787E+001 0.399999973385478E+001 + 0.399999980397369E+001 0.399999985420685E+001 0.399999989077945E+001 + 0.399999991774832E+001 0.399999993783397E+001 0.399999995290583E+001 + 0.399999996427576E+001 0.399999997288120E+001 0.399999997940276E+001 + 0.399999998434142E+001 0.399999998807044E+001 0.399999999087085E+001 + 0.399999999295624E+001 0.399999999449020E+001 0.399999999559892E+001 + 0.399999999638029E+001 0.399999999691065E+001 0.399999999724971E+001 + 0.399999999744435E+001 0.399999999753141E+001 0.399999999753991E+001 + 0.399999999749264E+001 0.399999999740752E+001 0.399999999729856E+001 + 0.399999999717668E+001 0.399999999705030E+001 0.399999999692586E+001 + 0.399999999680823E+001 0.399999999670096E+001 0.399999999660660E+001 + 0.399999999652686E+001 0.399999999646282E+001 0.399999999641501E+001 + 0.399999999638355E+001 0.399999999636824E+001 0.399999999636862E+001 + 0.399999999638403E+001 0.399999999641367E+001 0.399999999645662E+001 + 0.399999999651190E+001 0.399999999657846E+001 0.399999999665523E+001 + 0.399999999674113E+001 0.399999999683509E+001 0.399999999693603E+001 + 0.399999999704290E+001 0.399999999715471E+001 0.399999999727046E+001 + 0.399999999738922E+001 0.399999999751009E+001 0.399999999763221E+001 + 0.399999999775480E+001 0.399999999787708E+001 total_localdos :real:2:251,1 - 0.540753841876805E+002 0.539736067449551E+002 0.538751927322877E+002 - 0.537801506063581E+002 0.536884925967014E+002 0.536002348323454E+002 - 0.535153974837569E+002 0.534340049212710E+002 0.533560858913215E+002 - 0.532816737119551E+002 0.532108064892981E+002 0.531435273568479E+002 - 0.530798847397008E+002 0.530199326460866E+002 0.529637309888867E+002 - 0.529113459401506E+002 0.528628503220166E+002 0.528183240378891E+002 - 0.527778545482338E+002 0.527415373959406E+002 0.527094767868787E+002 - 0.526817862320486E+002 0.526585892586406E+002 0.526400201983582E+002 - 0.526262250625841E+002 0.526173625153994E+002 0.526136049571294E+002 - 0.526151397330614E+002 0.526221704842880E+002 0.526349186603706E+002 - 0.526536252167651E+002 0.526785525238226E+002 0.527099865188019E+002 - 0.527482391378876E+002 0.527936510718954E+002 0.528465948974506E+002 - 0.529074786452683E+002 0.529767498791990E+002 0.530549003744575E+002 - 0.531424715016802E+002 0.532400604460372E+002 0.533483274188279E+002 - 0.534680040543511E+002 0.535999032295313E+002 0.537449306005830E+002 - 0.539040982237321E+002 0.540785407208592E+002 0.542695345729512E+002 - 0.544785212842775E+002 0.547071353719960E+002 0.549572384188621E+002 - 0.552309608087525E+002 0.555307532862452E+002 0.558594512020174E+002 - 0.562203553141788E+002 0.566173344467287E+002 0.570549573684017E+002 - 0.575386642762166E+002 0.580749927752267E+002 0.586718801063716E+002 - 0.593390740505034E+002 0.600887019658769E+002 0.609360753402291E+002 - 0.619008544777611E+002 0.630087807449113E+002 0.642943349877108E+002 - 0.658049702007002E+002 0.676081526278342E+002 0.698037144844390E+002 - 0.725470041202483E+002 0.760960918787275E+002 0.809194632817655E+002 - 0.879837852745864E+002 0.997353269151055E+002 0.125352906695131E+003 - 0.341651442588625E+003 0.301216400512412E+002 0.299811005124563E+002 - 0.302299265652478E+002 0.305747539498643E+002 0.309797724261738E+002 - 0.314401727261340E+002 0.319594936349590E+002 0.325453131670342E+002 - 0.332084497157607E+002 0.339632758075429E+002 0.348286786619741E+002 - 0.358296985919465E+002 0.370001430617801E+002 0.383868029811352E+002 - 0.400565016266572E+002 0.421084903025214E+002 0.446977136325161E+002 - 0.480823106977689E+002 0.527321321495595E+002 0.596192327210947E+002 - 0.712113861433652E+002 0.968210031100342E+002 0.326692156252814E+003 - 0.655650669031957E+000 0.207079369318547E+000 0.108847371013233E+000 - 0.700994333305316E-001 0.504193012101942E-001 0.388780797358921E-001 - 0.314472624360595E-001 0.263382956437344E-001 0.226506688854035E-001 - 0.198876337618113E-001 0.177554297392688E-001 0.160705410922279E-001 - 0.147131175946031E-001 0.136019627100838E-001 0.126803467990466E-001 - 0.119075836817337E-001 0.112538313104113E-001 0.106967737054769E-001 - 0.102194412814915E-001 0.980874226950454E-002 0.945445094972351E-002 - 0.914849675924732E-002 0.888445607287782E-002 0.865718333021553E-002 - 0.846253979898096E-002 0.829719198134255E-002 0.815846056324187E-002 - 0.804420669052969E-002 0.795274632518733E-002 0.788278616633637E-002 - 0.783337654096204E-002 0.780387805377876E-002 0.779393981685437E-002 - 0.780348788226375E-002 0.783272316462438E-002 0.788212873379632E-002 - 0.795248694007981E-002 0.804490746214206E-002 0.816086810542897E-002 - 0.830227110589805E-002 0.847151891903336E-002 0.867161515390665E-002 - 0.890629867950329E-002 0.918022234418351E-002 0.949919277162309E-002 - 0.987049523171746E-002 0.103033391164077E-001 0.108094775713145E-001 - 0.114040836405749E-001 0.121070124842876E-001 0.129446587225823E-001 - 0.139527560029771E-001 0.151807140113179E-001 0.166985519636568E-001 - 0.186083945305624E-001 0.210643645672770E-001 0.243088004802819E-001 - 0.287423791276995E-001 0.350706301277309E-001 0.446412562814795E-001 - 0.603272606773786E-001 0.892950058798357E-001 0.154431606373027E+000 - 0.372073268858128E+000 0.346284764776635E+001 0.123655292954101E+003 - 0.800328100070738E+002 0.643472765930387E+002 0.557311588220338E+002 - 0.501355820327244E+002 0.461518034911439E+002 0.431447586675091E+002 - 0.407809618347024E+002 0.388665060242362E+002 0.372800740773884E+002 - 0.359414503074896E+002 0.347952578149464E+002 0.338019312322990E+002 - 0.329324159814642E+002 0.321649211246248E+002 0.314828822449983E+002 - 0.308737102881938E+002 0.303281764570822E+002 0.298406349194824E+002 - 0.294113433869827E+002 0.290577044956061E+002 0.288933447401938E+002 - 0.317805282501725E+002 0.150722081775053E+003 0.107366635731773E+003 - 0.914991318593665E+002 0.826572440078708E+002 0.768344141812992E+002 - 0.726313211468354E+002 0.694153843860287E+002 0.668535456026706E+002 - 0.647516041843812E+002 0.629876798731266E+002 0.614808964444628E+002 - 0.601751860176846E+002 0.590302821296240E+002 0.580164122176762E+002 - 0.571110185812146E+002 0.562966510969465E+002 0.555595669719741E+002 - 0.548887732405321E+002 0.542753555029022E+002 0.537119969455528E+002 - 0.531926269836146E+002 0.527121601391790E+002 0.522662989644403E+002 - 0.518513832180766E+002 0.514642729748088E+002 0.511022569874793E+002 - 0.507629800878940E+002 0.504443851138823E+002 0.501446660417884E+002 - 0.498622298506638E+002 0.495956652545600E+002 0.493437168841942E+002 - 0.491052638275191E+002 0.488793016832649E+002 0.486649274658160E+002 - 0.484613268397274E+002 0.482677632695002E+002 0.480835687531746E+002 - 0.479081358728853E+002 0.477409109461953E+002 0.475813881020406E+002 - 0.474291041369397E+002 0.472836340325641E+002 0.471445870362370E+002 - 0.470116032224959E+002 0.468843504673120E+002 0.467625217775721E+002 - 0.466458329274677E+002 0.465340203608838E+002 0.464268393250678E+002 - 0.463240622059861E+002 0.462254770400765E+002 0.461308861806997E+002 - 0.460401051006195E+002 0.459529613144021E+002 0.458692934067884E+002 - 0.457889501549359E+002 0.457117897339962E+002 0.456376789968396E+002 - 0.455664928198846E+002 0.454981135079875E+002 0.454324302521955E+002 - 0.453693386349093E+002 0.453087401776396E+002 + 0.540753845511323E+002 0.539736070904181E+002 0.538751930595273E+002 + 0.537801509151306E+002 0.536884928867532E+002 0.536002351034120E+002 + 0.535153977355623E+002 0.534340051535269E+002 0.533560861037259E+002 + 0.532816739041918E+002 0.532108066610352E+002 0.531435275077372E+002 + 0.530798848693761E+002 0.530199327541628E+002 0.529637310749587E+002 + 0.529113460037915E+002 0.528628503627768E+002 0.528183240552947E+002 + 0.527778545417850E+002 0.527415373651105E+002 0.527094767311113E+002 + 0.526817861507573E+002 0.526585891512066E+002 0.526400200641281E+002 + 0.526262249008687E+002 0.526173623254709E+002 0.526136047382197E+002 + 0.526151394843596E+002 0.526221702049377E+002 0.526349183494674E+002 + 0.526536248733539E+002 0.526785521468941E+002 0.527099861072895E+002 + 0.527482386906638E+002 0.527936505877675E+002 0.528465943751563E+002 + 0.529074780834713E+002 0.529767492764832E+002 0.530548997293213E+002 + 0.531424708125297E+002 0.532400597111791E+002 0.533483266364609E+002 + 0.534680032225567E+002 0.535999023462634E+002 0.537449296636553E+002 + 0.539040972308050E+002 0.540785396694226E+002 0.542695334603086E+002 + 0.544785201075230E+002 0.547071341279901E+002 0.549572371042030E+002 + 0.552309594197418E+002 0.555307518188474E+002 0.558594496518115E+002 + 0.562203536763000E+002 0.566173327157967E+002 0.570549555384343E+002 + 0.575386623405214E+002 0.580749907262654E+002 0.586718779355885E+002 + 0.593390717481042E+002 0.600886995205400E+002 0.609360727387214E+002 + 0.619008517044181E+002 0.630087777809140E+002 0.642943318100587E+002 + 0.658049667806982E+002 0.676081489287909E+002 0.698037104579944E+002 + 0.725469997001918E+002 0.760960869698201E+002 0.809194577376242E+002 + 0.879837788480827E+002 0.997353191258240E+002 0.125352896395633E+003 + 0.341651508128556E+003 0.301216404812436E+002 0.299811001291415E+002 + 0.302299260236594E+002 0.305747533271625E+002 0.309797717400472E+002 + 0.314401719805643E+002 0.319594928291597E+002 0.325453122979162E+002 + 0.332084487787073E+002 0.339632747966004E+002 0.348286775697690E+002 + 0.358296974094123E+002 0.370001417776902E+002 0.383868015813682E+002 + 0.400565000930490E+002 0.421084886110136E+002 0.446977117500087E+002 + 0.480823085763850E+002 0.527321297151544E+002 0.596192298469541E+002 + 0.712113825767884E+002 0.968209981913159E+002 0.326692175455657E+003 + 0.655650950929056E+000 0.207079425872367E+000 0.108847393456483E+000 + 0.700994450309321E-001 0.504193082891735E-001 0.388780844404433E-001 + 0.314472657704700E-001 0.263382981195480E-001 0.226506707887770E-001 + 0.198876352645506E-001 0.177554309503952E-001 0.160705420840704E-001 + 0.147131184169315E-001 0.136019633981997E-001 0.126803473786368E-001 + 0.119075841718906E-001 0.112538317255838E-001 0.106967740567691E-001 + 0.102194415775349E-001 0.980874251707250E-002 0.945445115417223E-002 + 0.914849692479329E-002 0.888445620287555E-002 0.865718342729041E-002 + 0.846253986516131E-002 0.829719201815077E-002 0.815846057176129E-002 + 0.804420667145240E-002 0.795274627884667E-002 0.788278609272683E-002 + 0.783337643974786E-002 0.780387792429263E-002 0.779393965808461E-002 + 0.780348769283467E-002 0.783272294276063E-002 0.788212847727856E-002 + 0.795248664618273E-002 0.804490712755258E-002 0.816086772615696E-002 + 0.830227067712164E-002 0.847151843495220E-002 0.867161460751426E-002 + 0.890629806230745E-002 0.918022164583633E-002 0.949919197943185E-002 + 0.987049432999014E-002 0.103033380855649E-001 0.108094763866670E-001 + 0.114040822706121E-001 0.121070108882363E-001 0.129446568468510E-001 + 0.139527537758517E-001 0.151807113348316E-001 0.166985487007341E-001 + 0.186083904839384E-001 0.210643594434239E-001 0.243087938244512E-001 + 0.287423701994565E-001 0.350706176432794E-001 0.446412378244280E-001 + 0.603272311594654E-001 0.892949526828892E-001 0.154431488753196E+000 + 0.372072866221855E+000 0.346283936699870E+001 0.123655303698955E+003 + 0.800328176903702E+002 0.643472827073601E+002 0.557311639944580E+002 + 0.501355865605602E+002 0.461518075411695E+002 0.431447623441082E+002 + 0.407809652083224E+002 0.388665091451005E+002 0.372800769828236E+002 + 0.359414530261538E+002 0.347952603694256E+002 0.338019336407714E+002 + 0.329324182588134E+002 0.321649232831967E+002 0.314828842951185E+002 + 0.308737122384964E+002 0.303281783146365E+002 0.298406366895647E+002 + 0.294113450718015E+002 0.290577060882396E+002 0.288933461784258E+002 + 0.317805270996147E+002 0.150722088596132E+003 0.107366640749811E+003 + 0.914991360352617E+002 0.826572476662049E+002 0.768344174726181E+002 + 0.726313241557314E+002 0.694153871660036E+002 0.668535481903805E+002 + 0.647516066064390E+002 0.629876821497162E+002 0.614808985914216E+002 + 0.601751880477840E+002 0.590302840533949E+002 0.580164140439650E+002 + 0.571110203175693E+002 0.562966527498911E+002 0.555595685472150E+002 + 0.548887747431084E+002 0.542753569373022E+002 0.537119983158048E+002 + 0.531926282933584E+002 0.527121613917225E+002 0.522663001628059E+002 + 0.518513843650383E+002 0.514642740729257E+002 0.511022580391183E+002 + 0.507629810952538E+002 0.504443860790112E+002 0.501446669666003E+002 + 0.498622307369548E+002 0.495956661040059E+002 0.493437176983821E+002 + 0.491052646079432E+002 0.488793024313357E+002 0.486649281828686E+002 + 0.484613275270269E+002 0.482677639282470E+002 0.480835693845095E+002 + 0.479081364778944E+002 0.477409115259121E+002 0.475813886574507E+002 + 0.474291046689841E+002 0.472836345421411E+002 0.471445875242057E+002 + 0.470116036896781E+002 0.468843509144941E+002 0.467625222055078E+002 + 0.466458333368789E+002 0.465340207524631E+002 0.464268396994794E+002 + 0.463240625638675E+002 0.462254773820400E+002 0.461308865073331E+002 + 0.460401054124877E+002 0.459529616120479E+002 0.458692936907338E+002 + 0.457889504256824E+002 0.457117899920265E+002 0.456376792426177E+002 + 0.455664930538568E+002 0.454981137305834E+002 0.454324304638282E+002 + 0.453693388359765E+002 0.453087403685238E+002 dipole_moments :real:2:3,1 - 0.000000000000000E+000 0.000000000000000E+000 -0.147771547627322E-005 + 0.000000000000000E+000 0.000000000000000E+000 0.455348555711594E-006 From 4669f4a838a0cc23bd42d0f8412f47f0de11106e Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Wed, 15 Jun 2022 13:27:58 +0100 Subject: [PATCH 33/36] Ise parser (#1053) * Anglicise ize in parser, bumping version * Bump API version for keyword changes of ize to ise --- doc/dftb+/manual/dftbp.tex | 170 +++++++++--------- doc/dftb+/manual/releases.tex | 1 + src/dftbp/api/mm/API_VERSION | 2 +- src/dftbp/dftbplus/initprogram.F90 | 38 ++-- src/dftbp/dftbplus/input/geoopt.F90 | 18 +- src/dftbp/dftbplus/oldcompat.F90 | 41 +++++ src/dftbp/dftbplus/parser.F90 | 38 ++-- .../dftbp/api/mm/testers/test_ehrenfest.f90 | 2 +- .../mm/testers/test_ehrenfest_ext_ions.f90 | 2 +- .../dftbp/api/mm/testers/test_timeprop.f90 | 2 +- 10 files changed, 179 insertions(+), 135 deletions(-) diff --git a/doc/dftb+/manual/dftbp.tex b/doc/dftb+/manual/dftbp.tex index c39473d3d0..d66762c303 100644 --- a/doc/dftb+/manual/dftbp.tex +++ b/doc/dftb+/manual/dftbp.tex @@ -266,8 +266,8 @@ \section{Driver} methods are available: \begin{description} \item[\iscb{}] Static calculation with the input geometry. -\item[\iscb{GeometryOptimization}] Geometry optimisation of the input geometry. - See p.~\pref{sec:dftbp.GeometryOptimization}. +\item[\iscb{GeometryOptimisation}] Geometry optimisation of the input geometry. + See p.~\pref{sec:dftbp.GeometryOptimisation}. \item[\iscb{SteepestDescent}] (\textbf{deprecated}) Geometry optimisation by moving atoms along the acting forces. See p.~\pref{sec:dftbp.SteepestDescent}. \item[\iscb{ConjugateGradient}] (\textbf{deprecated}) Geometry optimisation using the @@ -287,11 +287,11 @@ \section{Driver} \end{description} -\subsection{GeometryOptimization} -\label{sec:dftbp.GeometryOptimization} +\subsection{GeometryOptimisation} +\label{sec:dftbp.GeometryOptimisation} \begin{ptable} - \kw{Optimizer} & m & & Rational & \\ + \kw{Optimiser} & m & & Rational & \\ \kw{MovedAtoms} & (i|s)+ & & 1:-1 & \\ \kw{LatticeOpt} & l & & \is{No} & \\ \kw{FixAngles} & l & LatticeOpt = Yes & \is{No} & \\ @@ -306,27 +306,27 @@ \subsection{GeometryOptimization} %\kw{ConvergentForcesOnly} & l & SCC = Yes & \is{Yes} & \\ \end{ptable} -Example for performing a full lattice optimization using the rational function optimizer: +Example for performing a full lattice optimisation using the rational function optimiser: \begin{verbatim} -Driver = GeometryOptimization { - Optimizer = Rational {} +Driver = GeometryOptimisation { + Optimiser = Rational {} LatticeOpt = Yes } \end{verbatim} -\subsubsection{Optimizer: Rational} -\label{sec:dftbp.Optimizer.RF} +\subsubsection{Optimiser: Rational} +\label{sec:dftbp.Optimiser.RF} -Provides a rational function based optimizer. +Provides a rational function based optimiser. The geometry displacement step is determining obtaining the lowest eigenvalue of the augmented Hessian matrix. -The eigenvalue equation is solved iteratively using a Davidson solver updating the displacement vector from the last optimization cycle. +The eigenvalue equation is solved iteratively using a Davidson solver updating the displacement vector from the last optimisation cycle. The augmented Hessian is build from a guess model hessian, which is updated every cycle from the gradient change and displacement vectors using a BFGS-like scheme. A unit matrix is used as guess for the model hessian. -The scaling behaviour of the computational cost and memory usage for this optimization step is quadratic in the number of optimized variables. -Carefully evaluate the runtime of the optimization step for (very) large systems together linear-scaling electronic solvers. +The scaling behaviour of the computational cost and memory usage for this optimisation step is quadratic in the number of optimised variables. +Carefully evaluate the runtime of the optimisation step for (very) large systems together linear-scaling electronic solvers. \begin{ptable} \kw{DiagLimit} & r & & 1.0e-2 & \\ @@ -337,18 +337,18 @@ \subsubsection{Optimizer: Rational} \end{description} \begin{verbatim} -Driver = GeometryOptimization { - Optimizer = Rational { DiagLimit = 1.0e-2 } +Driver = GeometryOptimisation { + Optimiser = Rational { DiagLimit = 1.0e-2 } } \end{verbatim} -\subsubsection{Optimizer: LBFGS} -\label{sec:dftbp.Optimizer.LBFGS} +\subsubsection{Optimiser: LBFGS} +\label{sec:dftbp.Optimiser.LBFGS} -Limited memory BFGS optimizer provides a quasi-Newton optimization method using limited amount of memory. +Limited memory BFGS optimiser provides a quasi-Newton optimisation method using limited amount of memory. -The scaling behaviour of the computational cost and memory usage for this optimization step is linear in the number of optimized variables. +The scaling behaviour of the computational cost and memory usage for this optimisation step is linear in the number of optimised variables. \begin{ptable} \kw{Memory} & i & & 20 & \\ @@ -359,14 +359,14 @@ \subsubsection{Optimizer: LBFGS} \end{description} \begin{verbatim} -Driver = GeometryOptimization { - Optimizer = LBFGS { Memory = 20 } +Driver = GeometryOptimisation { + Optimiser = LBFGS { Memory = 20 } } \end{verbatim} -\subsubsection{Optimizer: FIRE} -\label{sec:dftbp.Optimizer.FIRE} +\subsubsection{Optimiser: FIRE} +\label{sec:dftbp.Optimiser.FIRE} The {\itshape fast inertial relaxation engine} of Bitzek {\itshape et al.}~\cite{Bitzek-PRL-97-170201}, using the default values from their paper and a Leap-frog integrator. @@ -374,7 +374,7 @@ \subsubsection{Optimizer: FIRE} but you should verify if FIRE is stable and efficient for your system before using it over other optimisers. -The scaling behaviour of the computational cost and memory usage for this optimization step is linear in the number of optimized variables. +The scaling behaviour of the computational cost and memory usage for this optimisation step is linear in the number of optimised variables. \begin{ptable} \kw{nMin} & i & & 5 & \\ @@ -400,8 +400,8 @@ \subsubsection{Optimizer: FIRE} \end{description} \begin{verbatim} -Driver = GeometryOptimization { - Optimizer = FIRE { +Driver = GeometryOptimisation { + Optimiser = FIRE { nMin = 5 aPar = 0.1 fInc = 1.1 @@ -416,7 +416,7 @@ \subsubsection{Optimizer: FIRE} \subsubsection{Convergence} \label{sec:dftbp.Convergence} -Data group to provide the convergence thresholds for the geometry optimizations. +Data group to provide the convergence thresholds for the geometry optimisations. To disable a convergence criterium a large value should be provided. \begin{ptable} @@ -428,19 +428,19 @@ \subsubsection{Convergence} \end{ptable} \begin{description} \item[\is{Energy}]\modif{\modtype{energy}} - Maximum energy change in one geometry step to consider optimization converged. + Maximum energy change in one geometry step to consider optimisation converged. Disabled by default. \item[\is{GradElem}]\modif{\modtype{force}} - Maximum absolute gradient element in one geometry step to consider optimization converged + Maximum absolute gradient element in one geometry step to consider optimisation converged Default threshold is 1e-4 Hartree/Bohr. \item[\is{GradNorm}]\modif{\modtype{force}} - Maximum gradient norm in one geometry step to consider optimization converged + Maximum gradient norm in one geometry step to consider optimisation converged Disabled by default. \item[\is{DispElem}]\modif{\modtype{length}} - Maximum absolute displacement element in one geometry step to consider optimization converged + Maximum absolute displacement element in one geometry step to consider optimisation converged Disabled by default. \item[\is{DispNorm}]\modif{\modtype{length}} - Maximum displacement norm in one geometry step to consider optimization converged + Maximum displacement norm in one geometry step to consider optimisation converged Disabled by default. \end{description} @@ -448,8 +448,8 @@ \subsubsection{Convergence} \subsection{SteepestDescent\cb} \label{sec:dftbp.SteepestDescent} -\textbf{This geometry optimizer is deprecated and will be removed in future versions. -Please use the new \is{GeometryOptimization} driver instead.} +\textbf{This geometry optimiser is deprecated and will be removed in future versions. +Please use the new \is{GeometryOptimisation} driver instead.} \begin{ptable} \kw{MovedAtoms} & (i|s)+ & & 1:-1 & \\ @@ -559,8 +559,8 @@ \subsection{SteepestDescent\cb} \subsection{ConjugateGradient\cb} \label{sec:dftbp.ConjugateGradient} -\textbf{This geometry optimizer is deprecated and will be removed in future versions. -Please use the new \is{GeometryOptimization} driver instead.} +\textbf{This geometry optimiser is deprecated and will be removed in future versions. +Please use the new \is{GeometryOptimisation} driver instead.} \begin{ptable} \kw{MovedAtoms} & (i|s)+ & & 1:-1 & \\ @@ -582,8 +582,8 @@ \subsection{ConjugateGradient\cb} \subsection{gDIIS\cb} \label{sec:dftbp.gDIIS} -\textbf{This geometry optimizer is deprecated and will be removed in future versions. -Please use the new \is{GeometryOptimization} driver instead.} +\textbf{This geometry optimiser is deprecated and will be removed in future versions. +Please use the new \is{GeometryOptimisation} driver instead.} \begin{ptable} \kw{Alpha} & r & & 0.1 & \\ @@ -615,8 +615,8 @@ \subsection{gDIIS\cb} \htcbsubsection{LBFGS} \label{sec:dftbp.LBFGS} -\textbf{This geometry optimizer is deprecated and will be removed in future versions. -Please use the new \is{GeometryOptimization} driver instead.} +\textbf{This geometry optimiser is deprecated and will be removed in future versions. +Please use the new \is{GeometryOptimisation} driver instead.} \begin{ptable} \kw{Memory} & i & & 20 & \\ @@ -651,8 +651,8 @@ \subsection{gDIIS\cb} \htcbsubsection{FIRE} \label{sec:dftbp.FIRE} -\textbf{This geometry optimizer is deprecated and will be removed in future versions. -Please use the new \is{GeometryOptimization} driver instead.} +\textbf{This geometry optimiser is deprecated and will be removed in future versions. +Please use the new \is{GeometryOptimisation} driver instead.} The {\it fast inertial relaxation engine} of Bitzek {\it et al.}~\cite{Bitzek-PRL-97-170201}, using the default values from their paper @@ -1670,7 +1670,7 @@ \subsection{Extended Tight Binding Hamiltonian} \begin{description} \item[\is{Method}] - Request library to initialize the xTB parametrisation for the given method. + Request library to initialise the xTB parametrisation for the given method. Doing so will hand over the energy, potential and force evaluation to the \texttt{tblite} library. Supported methods are GFN1-xTB\cite{grimme2017}, IPEA1-xTB\cite{asgeirsson2017}, @@ -1678,7 +1678,7 @@ \subsection{Extended Tight Binding Hamiltonian} If present \kw{ParameterFile} must not be provided. \item[\is{ParameterFile}] - Request library to initialize the xTB parametrisation from a parameter file. + Request library to initialise the xTB parametrisation from a parameter file. Doing so will hand over the energy, potential and force evaluation to the \texttt{tblite} library. The parameter format is documented in @@ -2184,8 +2184,8 @@ \subsection{Solver} \subsubsection{ELPA} -The ELPA solver provides an efficient and scalable diagonalizer, which is also -able to utilize GPUs (provided the ELSI library was compiled with GPU support). +The ELPA solver provides an efficient and scalable diagonaliser, which is also +able to utilise GPUs (provided the ELSI library was compiled with GPU support). It accepts following options \begin{ptable} @@ -2196,7 +2196,7 @@ \subsubsection{ELPA} \end{ptable} \begin{description} \item[\is{Autotune}] Whether ELPAs autotune capability should be used to - optimize performance (default: \is{No}) + optimise performance (default: \is{No}) \item[\is{Gpu}] Whether ELPA should use available GPUs (default: \is{No}). Note, that you can only enable this option, if \dftbp{} was built with GPU support. \item[\is{Mode}] ELPA operation mode (possible values: \is{1}, \is{2}, @@ -2399,7 +2399,7 @@ \subsubsection{$\boldsymbol\Delta$DFTB} The time-independent approach $\Delta$DFTB modifies the SCC loop to allow variational relaxation of the lowest singlet excited state of closed-shell singlet species.\cite{irle-JCTC-12-313} The KS spin orbitals are self-constently -optimized under non-Aufbau orbital occupation constraints via promotion of an +optimised under non-Aufbau orbital occupation constraints via promotion of an electron from the highest occupied molecular orbital (HOMO) of the ground state to lowest unoccupied molecular orbital (LUMO) at each SCC iteration. Specifically, the \kwcb{NonAufbau} block in \dftbp manipulates the @@ -2696,7 +2696,7 @@ \subsubsection{KLines\cb} \htcbsubsubsection{HelicalUniform} -This method specifies $k$-points lying along the generalized reciprocal vector +This method specifies $k$-points lying along the generalised reciprocal vector of the Brillouin zone of a helical cell and around the order-$n$ rotational axis (currently the $k$-points that exactly represent the $C_n$ rotation are used). The \iscb{HelicalUniform} method expects 1 integer and 1 real value as @@ -3414,7 +3414,7 @@ \subsubsection{DftD4 settings} \subsubsection{DftD4 ChargeModel} \label{sec:dftbp.ChargeModel} -This implementation of DFT-D4 supports the \is{EEQ\cb} method to initialize +This implementation of DFT-D4 supports the \is{EEQ\cb} method to initialise the charge model with an electronegativity equilibration~(EEQ) model\cite{rappe1991} as well as a self-consistent evaluation of the dispersion with \is{SelfConsistent\cb}. @@ -3620,14 +3620,14 @@ \subsection{DFTB3} \subsection{Implicit Solvation Model} \label{sec:dftbp.Solvation} -\subsubsection{Generalized Born Model} -\label{sec:dftbp.GeneralizedBorn} +\subsubsection{Generalised Born Model} +\label{sec:dftbp.GeneralisedBorn} -In generalized Born (GB) theory,\cite{onufriev2019} a molecule is considered as +In generalised Born (GB) theory,\cite{onufriev2019} a molecule is considered as continuous region with a dielectric constant~$\epsilon_\text{in}$ surrounded by infinite solvent with a dielectric constant~$\epsilon_\text{out}$. Charges~$q_\text{A}$ are located at the atomic sites~$\vec R_\text{A}$ -and their interaction in the presence of a polarized solvent can be +and their interaction in the presence of a polarised solvent can be expressed as the solvation energy % \begin{equation} @@ -3673,14 +3673,14 @@ \subsubsection{Generalized Born Model} to compensate the systematic overestimation of the volume by this approach. -To use the generalized Born model in the SCC procedure use the -\is{GeneralizedBorn\cb} method in the input to \kw{Solvation}. +To use the generalised Born model in the SCC procedure use the +\is{GeneralisedBorn\cb} method in the input to \kw{Solvation}. The non-polar solvent area model can be combinded with the GB model enabling to additionally correct for hydrogen bonding, the resulting model is called GBSA. The parameters for the GBSA model are currently available at \url{https://github.com/grimme-lab/gbsa-parameters} and can be read in with -\kw{ParamFile} and will setup the complete \kw{GeneralizedBorn\cb} input. +\kw{ParamFile} and will setup the complete \kw{GeneralisedBorn\cb} input. Note that the GB(SA) model implemented is only available for finite systems. @@ -3786,7 +3786,7 @@ \subsubsection{Generalized Born Model} \item[\is{ALPB}] Use analytical lineared Poisson Boltzmann (ALPB) model\cite{sigalov2006} - instead of Generalized Born. + instead of Generalised Born. The main difference is a molecular shape dependent contribution for charged systems. @@ -3799,7 +3799,7 @@ \subsubsection{Generalized Born Model} \begin{verbatim} Hamiltonian = DFTB { - Solvation = GeneralizedBorn { # GFN2-xTB/GBSA(CS2) + Solvation = GeneralisedBorn { # GFN2-xTB/GBSA(CS2) Solvent = fromName { "cs2" } FreeEnergyShift [kcal/mol] = 2.81072250 Radii = vanDerWaalsRadiiD3 [Bohr] {} @@ -3821,7 +3821,7 @@ \subsubsection{Generalized Born Model} \begin{verbatim} Hamiltonian = DFTB { - Solvation = GeneralizedBorn { # GFN2-xTB/GBSA(water) + Solvation = GeneralisedBorn { # GFN2-xTB/GBSA(water) Solvent = fromConstants { Epsilon = 80.2 MolecularMass [amu] = 18.0 @@ -3905,7 +3905,7 @@ \subsubsection{Conductor like screening model} \label{sec:dftbp.COSMO} The conductor like screening model (COSMO)\cite{klamt1993} allows to include dielectric screening effects in quantum chemical calculations. -DFTB+ uses the fast domain decomposition algorithm\cite{lipparini2013} to minimize the overhead of solving the COSMO equations in the SCC iterations. +DFTB+ uses the fast domain decomposition algorithm\cite{lipparini2013} to minimise the overhead of solving the COSMO equations in the SCC iterations. In the domain decomposition algorithm the solvation energy is given by % @@ -3998,13 +3998,13 @@ \subsubsection{Conductor like screening model} Both methods accept \modif{\modtype{length}} units. Alternatively, \is{VanDerWaalsRadiiCosmo\cb} and \is{VanDerWaalsRadiiBondi\cb} can be used to provide van-der-Waals radii. Note that Bondi radii\cite{mantina2009} - are only available for main group elements and Cosmo optimized radii default to - 2.223~AA if no optimized values are available. + are only available for main group elements and Cosmo optimised radii default to + 2.223~AA if no optimised values are available. \item[\is{RadiiScaling}] Allows to scale the provided radii by the provided value. Values greater one between 1.3 and 1.5 are recommended when using DFT-D3 van-der-Waals radii, while for Bondi radii usually values between 1.2 and 1.3 are used. - Cosmo optimized radius should be used with a scaling factor of unity. + Cosmo optimised radius should be used with a scaling factor of unity. \item[\is{Solver}] for the COSMO equation. Currently only \is{DomainDecomposition\cb} is implemented (default). If specified @@ -4289,7 +4289,7 @@ \subsubsection{DFTB3-D3H5} but for cases that are not available their contribution to this correction are neglected. -For a DFTB3-D3H5 calculation, a specific parametrization of the D3 dispersion +For a DFTB3-D3H5 calculation, a specific parametrisation of the D3 dispersion has to be used. In addition to setting up appropriate values of the D3 parameters, as discussed in Ref.~\cite{rezac-jctc-13-2017}, the hydrogen--hydrogen repulsion of Ref.~\cite{rezac-jctc-8-2012} has to also be @@ -5388,15 +5388,15 @@ \subsection{\kwcb{Perturbation}} Perform Dirac-delta perturbation (or a \textit{kick}) to the density matrix. \begin{ptable} - \kw{PolarizationDirection} & s & & - & \\ + \kw{PolarisationDirection} & s & & - & \\ \kw{SpinType} & s & SpinPolarisation = Colinear \cb & Singlet & \\ \end{ptable} \begin{description} - \item[\is{PolarizationDirection}] The cartesian axis for the kick: + \item[\is{PolarisationDirection}] The cartesian axis for the kick: \verb|"x"|, \verb|"y"| or \verb|"z"|. If set to \verb|"all"|, calculates the three directions $x,y,z$ consecutively. For - polarization direction \verb|x,y,z| the dipole moment output file + polarisation direction \verb|x,y,z| the dipole moment output file will be named \verb|mux.dat|, \verb|muy.dat|, \verb|muz.dat|, respectively. @@ -5410,19 +5410,19 @@ \subsection{\kwcb{Perturbation}} Apply time-dependent sinusoidal perturbation to the system. \begin{ptable} - \kw{PolarizationDirection} & 3r & & - & \\ - \kw{ImagPolarizationDirection} & 3r & & 0 0 0 & \\ + \kw{PolarisationDirection} & 3r & & - & \\ + \kw{ImagPolarisationDirection} & 3r & & 0 0 0 & \\ \kw{LaserEnergy} & r & & & \\ \kw{Phase} & r & & 0 & \\ \kw{ExcitedAtoms} & (i|s)+ & & 1:-1 & \\ \end{ptable} \begin{description} - \item[\is{PolarizationDirection}] Vector along which the electric - field is polarized. + \item[\is{PolarisationDirection}] Vector along which the electric + field is polarised. - \item[\is{ImagPolarizationDirection}] Imaginary part of the - polarization vector. Useful for circularly polarized fields. + \item[\is{ImagPolarisationDirection}] Imaginary part of the + polarisation vector. Useful for circularly polarised fields. \item[\is{LaserEnergy }] \modif{\modtype{energy}} Energy $\hbar \omega$ of the laser. @@ -5437,7 +5437,7 @@ \subsection{\kwcb{Perturbation}} \end{description} \textbf{Note:} when working with periodic systems, {\bf the - polarization direction must be orthogonal to the periodic + polarisation direction must be orthogonal to the periodic directions} of the system. Therefore, the code does not work with 3D periodic systems with laser perturbations. @@ -5457,13 +5457,13 @@ \subsection{\kwcb{Perturbation}} \end{ptable} \begin{description} - \item[\is{KickPolDir}] Same as PolarizationDirection in \is{Kick}. + \item[\is{KickPolDir}] Same as PolarisationDirection in \is{Kick}. \item[\is{SpinType}] Same as \is{Kick}. - \item[\is{LaserPolDir}] Same as PolarizationDirection in \is{Laser}. + \item[\is{LaserPolDir}] Same as PolarisationDirection in \is{Laser}. - \item[\is{LaserImagPolDir}] Same as ImagPolarizationDirection in \is{Laser}. + \item[\is{LaserImagPolDir}] Same as ImagPolarisationDirection in \is{Laser}. \item[\is{LaserEnergy }] \modif{\modtype{energy}} Same as in \is{Laser}. @@ -5538,7 +5538,7 @@ \subsection{\kwcb{EnvelopeShape}} # Total time will be then 4000 a.u. = 96.8 fs FieldStrength [v/a] = 0.01 Perturbation = Laser { - PolarizationDirection = 0.5 0.5 0 + PolarisationDirection = 0.5 0.5 0 LaserEnergy [ev] = 2.55 } EnvelopeShape = Sin2 { @@ -5607,7 +5607,7 @@ \subsection{SSR22} This tag contains the specifications for a DFTB/SSR(2,2) calculation~\cite{Lee_JCTC_2019}, based on ensemble DFT theory. -\textbf{Note:} the \dftbp{} binary can be compiled with OpenMP (not MPI) parallelization +\textbf{Note:} the \dftbp{} binary can be compiled with OpenMP (not MPI) parallelisation and DFTB/SSR calculation is not compatible with time-dependent DFTB calculation. In addition, it is not compatible with spin-polarisation, but it requires spin constants to treat open-shell microstates. @@ -5651,7 +5651,7 @@ \subsection{SSR22} \end{ptable} \begin{description} - \item[\is{Functional}] Specifies the minimized energy functional in DFTB/SSR. + \item[\is{Functional}] Specifies the minimised energy functional in DFTB/SSR. This keyword reads a block consisted of the energy functionals that you want to include in the calculation. In DFTB/SSR(2,2), there are two possible choices for the minimzied energy functionals. One is PPS and the other is (PPS+OSS)/2. The former represents single-state REKS and the latter @@ -5679,9 +5679,9 @@ \subsection{SSR22} fifth microstate is triplet configuration, thus this microstate can be roughly considered as triplet state. \item[\is{ReadEigenvectors}] If set to \is{Yes}, the initial molecular orbitals are read from the - eigenvec.bin file. If not, the initial orbitals are obtained from the diagonalization of non-SCC Hamiltonian. + eigenvec.bin file. If not, the initial orbitals are obtained from the diagonalisation of non-SCC Hamiltonian. -\item[\is{FonMaxIter}] Specifies the maximum number of iterations used in the optimization of +\item[\is{FonMaxIter}] Specifies the maximum number of iterations used in the optimisation of fractional occupation numbers. In general, the value of 20 is enough to converge the fractional occupation numbers in SCC cycle. @@ -6397,7 +6397,7 @@ \subsection{mu.dat/mux.dat/muy.dat/muz.dat} Dipole moment cartesian components $\mu_i$ as a function of time. The units of the quantities are given at the top of the file. The name -depends on the type or perturbation: for kicks the polarization +depends on the type or perturbation: for kicks the polarisation direction of the Dirac-delta field is indicated in the name of the file; for lasers and pulses, the name is always mu.dat. The column order for a spin unpolarised calculation is the following: diff --git a/doc/dftb+/manual/releases.tex b/doc/dftb+/manual/releases.tex index dfd84fa551..553f31b964 100644 --- a/doc/dftb+/manual/releases.tex +++ b/doc/dftb+/manual/releases.tex @@ -8,6 +8,7 @@ \chapter{\dftbp{} Releases} \begin{tabular}{ccc} \is{InputVersion} / Release & \is{ParserVersion} & Date available\\ \hline + 22.2 & 12 & --\\ 22.1 & 11 & \DTMdate{2022-05-25}\\ 21.2 & 10 & \DTMdate{2021-12-13}\\ 21.1 & 9 & \DTMdate{2021-05-12}\\ diff --git a/src/dftbp/api/mm/API_VERSION b/src/dftbp/api/mm/API_VERSION index 0ea3a944b3..0d91a54c7d 100644 --- a/src/dftbp/api/mm/API_VERSION +++ b/src/dftbp/api/mm/API_VERSION @@ -1 +1 @@ -0.2.0 +0.3.0 diff --git a/src/dftbp/dftbplus/initprogram.F90 b/src/dftbp/dftbplus/initprogram.F90 index 4332e79158..703cd5150a 100644 --- a/src/dftbp/dftbplus/initprogram.F90 +++ b/src/dftbp/dftbplus/initprogram.F90 @@ -242,7 +242,7 @@ module dftbp_dftbplus_initprogram !> reciprocal lattice vectors as columns real(dp), allocatable :: recVec(:,:) - !> original lattice vectors used for optimizing + !> original lattice vectors used for optimising real(dp) :: origLatVec(3,3) !> normalized vectors in those directions @@ -413,19 +413,19 @@ module dftbp_dftbplus_initprogram logical :: tSpinSharedEf - !> Geometry optimization needed? + !> Geometry optimisation needed? logical :: isGeoOpt - !> optimize coordinates inside unit cell (periodic)? + !> optimise coordinates inside unit cell (periodic)? logical :: tCoordOpt - !> optimize lattice constants? + !> optimise lattice constants? logical :: tLatOpt - !> Fix angles between lattice vectors when optimizing? + !> Fix angles between lattice vectors when optimising? logical :: tLatOptFixAng - !> Fix length of specified lattice vectors when optimizing? + !> Fix length of specified lattice vectors when optimising? logical :: tLatOptFixLen(3) !> Optimise lattice isotropically @@ -562,19 +562,19 @@ module dftbp_dftbplus_initprogram !> labels of atomic species character(mc), allocatable :: speciesName(:) - !> General geometry optimizer + !> General geometry optimiser type(TGeoOpt), allocatable :: pGeoCoordOpt - !> Geometry optimizer for lattice consts + !> Geometry optimiser for lattice consts type(TGeoOpt), allocatable :: pGeoLatOpt !> Coordinate transformation filter type(TFilter), allocatable :: filter - !> General geometry optimizer + !> General geometry optimiser class(TOptimizer), allocatable :: geoOpt - !> Convergence thresholds for geometry optimizer + !> Convergence thresholds for geometry optimiser type(TOptTolerance) :: optTol real(dp) :: elast @@ -1170,7 +1170,7 @@ subroutine initProgramVariables(this, input, env) !> DIIS mixer (if used) type(TDIISMixer), allocatable :: pDIISMixer - ! Geometry optimizer related local variables + ! Geometry optimiser related local variables !> Conjugate gradient driver type(TConjGrad), allocatable :: pConjGrad @@ -1960,12 +1960,12 @@ subroutine initProgramVariables(this, input, env) if (allocated(input%ctrl%geoOpt)) then if (this%tHelical) then - call error("GeometryOptimization driver currently does not support helical geometries") + call error("GeometryOptimisation driver currently does not support helical geometries") end if allocate(this%filter) call TFilter_init(this%filter, input%ctrl%geoOpt%filter, this%coord0, this%latVec) - call createOptimizer(input%ctrl%geoOpt%optimizer, this%filter%getDimension(),& + call createOptimizer(input%ctrl%geoOpt%optimiser, this%filter%getDimension(),& & this%geoOpt) this%optTol = input%ctrl%geoOpt%tolerance allocate(this%gcurr(this%filter%getDimension())) @@ -2041,11 +2041,11 @@ subroutine initProgramVariables(this, input, env) call init(this%pGeoLatOpt, pFireLat) end select if (this%tLatOptIsotropic ) then - ! optimization uses scaling factor of unit cell + ! optimisation uses scaling factor of unit cell call reset(this%pGeoLatOpt,& & (/1.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp/)) else if (this%tLatOptFixAng) then - ! optimization uses scaling factor of lattice vectors + ! optimisation uses scaling factor of lattice vectors call reset(this%pGeoLatOpt,& & (/1.0_dp,1.0_dp,1.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp,0.0_dp/)) else @@ -3565,7 +3565,7 @@ subroutine initProgramVariables(this, input, env) call error("Sorry, MD with a barostat requires stress evaluation") end if if (this%tLatOpt) then - call error("Sorry, lattice optimization requires stress tensor evaluation") + call error("Sorry, lattice optimisation requires stress tensor evaluation") end if end if @@ -4515,7 +4515,7 @@ subroutine initTransport_(env, input, electronicSolver, nSpin, tempElec, tNegf, end if if (input%ctrl%tLatOpt) then - call error("Lattice optimization is not currently possible with transport") + call error("Lattice optimisation is not currently possible with transport") end if end if @@ -5563,7 +5563,7 @@ subroutine checkReksConsistency(reksInp, solvation, onSiteElements, kPoint, nEl, !> if calculation is periodic logical, intent(in) :: tPeriodic - !> optimize lattice constants? + !> optimise lattice constants? logical, intent(in) :: tLatOpt !> If initial charges/dens mtx. from external file. @@ -5611,7 +5611,7 @@ subroutine checkReksConsistency(reksInp, solvation, onSiteElements, kPoint, nEl, end if if (reksInp%Efunction /= 1 .and. tLatOpt) then - call error("Lattice optimization is only possible& + call error("Lattice optimisation is only possible& & with single-state REKS, not SA-REKS or SI-SA-REKS") end if diff --git a/src/dftbp/dftbplus/input/geoopt.F90 b/src/dftbp/dftbplus/input/geoopt.F90 index 4118b1160d..8d998c64eb 100644 --- a/src/dftbp/dftbplus/input/geoopt.F90 +++ b/src/dftbp/dftbplus/input/geoopt.F90 @@ -24,14 +24,14 @@ module dftbp_dftbplus_input_geoopt public :: readGeoOptInput, TGeoOptInput - !> General input wrapper for optimizers in this package + !> General input wrapper for optimisers in this package type :: TGeoOptInput !> Input for coordinate transformation and filter step type(TFilterInput) :: filter - !> Optimizer input choice - class(TOptimizerInput), allocatable :: optimizer + !> Optimiser input choice + class(TOptimizerInput), allocatable :: optimiser !> Tolerances for optimization type(TOptTolerance) :: tolerance @@ -66,8 +66,8 @@ subroutine readGeoOptInput(node, geom, input, atomsRange) type(fnode), pointer :: child, value1 type(string) :: buffer - call getChildValue(node, "Optimizer", child, "Rational") - call readOptimizerInput(child, input%optimizer) + call getChildValue(node, "Optimiser", child, "Rational") + call readOptimizerInput(child, input%optimiser) call readFilterInput(node, geom, input%filter, atomsRange) @@ -82,10 +82,10 @@ subroutine readGeoOptInput(node, geom, input, atomsRange) end subroutine readGeoOptInput - !> Reads the optimizer + !> Reads the optimiser subroutine readOptimizerInput(node, input) - !> Optimizer node + !> Optimiser node type(fnode), pointer, intent(in) :: node !> Control structure to be filled @@ -99,7 +99,7 @@ subroutine readOptimizerInput(node, input) call getNodeName(node, buffer) select case (char(buffer)) case default - call detailedError(node, "Invalid optimizer name.") + call detailedError(node, "Invalid optimiser name.") case("fire") allocate(fireInput) call readFireInput(node, fireInput) @@ -220,7 +220,7 @@ subroutine readLbfgsInput(node, input) end subroutine readLbfgsInput - !> Entry point for reading input for rational function optimizer + !> Entry point for reading input for rational function optimiser subroutine readRationalFuncInput(node, input) !> Node to get the information from diff --git a/src/dftbp/dftbplus/oldcompat.F90 b/src/dftbp/dftbplus/oldcompat.F90 index 44749184df..2b74ed384b 100644 --- a/src/dftbp/dftbplus/oldcompat.F90 +++ b/src/dftbp/dftbplus/oldcompat.F90 @@ -5,6 +5,8 @@ ! See the LICENSE file for terms of usage and distribution. ! !--------------------------------------------------------------------------------------------------! +#:include 'common.fypp' + !> Contains routines to convert HSD input for old parser to the current format. !> Note: parserVersion is set in parser.F90 module dftbp_dftbplus_oldcompat @@ -73,6 +75,9 @@ subroutine convertOldHSD(root, oldVersion, curVersion) case (10) call convert_10_11(root) version = 11 + case (11) + call convert_11_12(root) + version = 12 end select end do @@ -740,6 +745,42 @@ subroutine convert_10_11(root) end subroutine convert_10_11 + !> Converts input from version 11 to 12. (Version 12 introduced in June 2022) + subroutine convert_11_12(root) + + !> Root tag of the HSD-tree + type(fnode), pointer :: root + + type(fnode), pointer :: ch1, ch2 + + call getDescendant(root, "Driver/GeometryOptimization", ch1) + if (associated(ch1)) then + call detailedWarning(ch1, "Keyword renamed to 'GeometryOptimisation'.") + call setNodeName(ch1, "GeometryOptimisation") + call getDescendant(root, "Driver/GeometryOptimisation/Optimizer", ch2) + if (associated(ch2)) then + call detailedWarning(ch2, "Keyword renamed to 'Optimiser'.") + call setNodeName(ch2, "Optimiser") + end if + end if + + #:for LABEL in [("Kick"), ("Laser")] + call getDescendant(root, "ElectronDynamics/Perturbation/${LABEL}$/PolarizationDirection", ch1) + if (associated(ch1)) then + call detailedWarning(ch1, "Keyword renamed to 'PolarisationDirection'.") + call setNodeName(ch1, "PolarisationDirection") + end if + call getDescendant(root, "ElectronDynamics/Perturbation/${LABEL}$/ImagPolarizationDirection",& + & ch1) + if (associated(ch1)) then + call detailedWarning(ch1, "Keyword renamed to 'ImagPolarisationDirection'.") + call setNodeName(ch1, "ImagPolarisationDirection") + end if + #:endfor + + end subroutine convert_11_12 + + !> Update values in the DftD3 block to match behaviour of v6 parser subroutine handleD3Defaults(root) diff --git a/src/dftbp/dftbplus/parser.F90 b/src/dftbp/dftbplus/parser.F90 index 97e75228e0..aa1c84cef3 100644 --- a/src/dftbp/dftbplus/parser.F90 +++ b/src/dftbp/dftbplus/parser.F90 @@ -111,12 +111,14 @@ module dftbp_dftbplus_parser !> Mapping between input version and parser version type :: TVersionMap + !> named version of parser input character(10) :: inputVersion + !> Corresponding numerical version of parser input integer :: parserVersion end type TVersionMap - !> Actual input version - parser version maps (must be updated at every public release) - type(TVersionMap), parameter :: versionMaps(*) = [& + !> Actual input version <-> parser version maps (must be updated at every public release) + type(TVersionMap), parameter :: versionMaps(*) = [TVersionMap("22.2", 12),& & TVersionMap("22.1", 11), TVersionMap("21.2", 10), TVersionMap("21.1", 9),& & TVersionMap("20.2", 9), TVersionMap("20.1", 8), TVersionMap("19.1", 7),& & TVersionMap("18.2", 6), TVersionMap("18.1", 5), TVersionMap("17.1", 5)] @@ -466,11 +468,11 @@ subroutine readDriver(node, parent, geom, ctrl) case ("none") modeName = "" continue - case ("geometryoptimization") - modeName = "geometry optimization" + case ("geometryoptimisation") + modeName = "geometry optimisation" if (geom%tHelical) then - call detailedError(node, "GeometryOptimization driver currently does not support helical& + call detailedError(node, "GeometryOptimisation driver currently does not support helical& & geometries") end if @@ -488,7 +490,7 @@ subroutine readDriver(node, parent, geom, ctrl) modeName = "geometry relaxation" call detailedWarning(node, "This driver is deprecated and will be removed in future& & versions."//new_line('a')//& - & "Please use the GeometryOptimization driver instead.") + & "Please use the GeometryOptimisation driver instead.") ! Steepest downhill optimisation ctrl%iGeoOpt = geoOptTypes%steepestDesc @@ -498,7 +500,7 @@ subroutine readDriver(node, parent, geom, ctrl) modeName = "geometry relaxation" call detailedWarning(node, "This driver is deprecated and will be removed in future& - & versions."//new_line('a')// "Please use the GeometryOptimization driver instead.") + & versions."//new_line('a')// "Please use the GeometryOptimisation driver instead.") ! Conjugate gradient location optimisation ctrl%iGeoOpt = geoOptTypes%conjugateGrad @@ -509,7 +511,7 @@ subroutine readDriver(node, parent, geom, ctrl) modeName = "geometry relaxation" call detailedWarning(node, "This driver is deprecated and will be removed in future& & versions."//new_line('a')//& - & "Please use the GeometryOptimization driver instead.") + & "Please use the GeometryOptimisation driver instead.") ! Gradient DIIS optimisation, only stable in the quadratic region ctrl%iGeoOpt = geoOptTypes%diis @@ -522,7 +524,7 @@ subroutine readDriver(node, parent, geom, ctrl) modeName = "geometry relaxation" call detailedWarning(node, "This driver is deprecated and will be removed in future& & versions."//new_line('a')//& - & "Please use the GeometryOptimization driver instead.") + & "Please use the GeometryOptimisation driver instead.") ctrl%iGeoOpt = geoOptTypes%lbfgs @@ -546,7 +548,7 @@ subroutine readDriver(node, parent, geom, ctrl) modeName = "geometry relaxation" call detailedWarning(node, "This driver is deprecated and will be removed in future& & versions."//new_line('a')//& - & "Please use the GeometryOptimization driver instead.") + & "Please use the GeometryOptimisation driver instead.") ctrl%iGeoOpt = geoOptTypes%fire call commonGeoOptions(node, ctrl, geom, atomsRange, .false.) @@ -1711,7 +1713,7 @@ subroutine readDFTBHam(node, ctrl, geo, slako, poisson) end if if (ctrl%tLatOpt .and. .not. geo%tPeriodic) then - call error("Lattice optimization only applies for periodic structures.") + call error("Lattice optimisation only applies for periodic structures.") end if #:if WITH_TRANSPORT @@ -1945,7 +1947,7 @@ subroutine readXTBHam(node, ctrl, geo, poisson) end if if (ctrl%tLatOpt .and. .not. geo%tPeriodic) then - call error("Lattice optimization only applies for periodic structures.") + call error("Lattice optimisation only applies for periodic structures.") end if #:if WITH_TRANSPORT @@ -5576,7 +5578,7 @@ subroutine readElecDynamics(node, input, geom, masses) case ("kick") input%pertType = pertTypes%kick - call getChildValue(value1, "PolarizationDirection", buffer2) + call getChildValue(value1, "PolarisationDirection", buffer2) input%polDir = directionConversion(unquote(char(buffer2)), value1) call getChildValue(value1, "SpinType", buffer2, "Singlet") @@ -5593,8 +5595,8 @@ subroutine readElecDynamics(node, input, geom, masses) case ("laser") input%pertType = pertTypes%laser - call getChildValue(value1, "PolarizationDirection", input%reFieldPolVec) - call getChildValue(value1, "ImagPolarizationDirection", input%imFieldPolVec, & + call getChildValue(value1, "PolarisationDirection", input%reFieldPolVec) + call getChildValue(value1, "ImagPolarisationDirection", input%imFieldPolVec, & & [0.0_dp, 0.0_dp, 0.0_dp]) call getChildValue(value1, "LaserEnergy", input%omega, modifier=modifier, child=child) call convertUnitHsd(char(modifier), energyUnits, child, input%omega) @@ -5758,7 +5760,7 @@ function directionConversion(direction, node) result(iX) case ("all", "All", "ALL") iX = 4 case default - call detailedError(node, "Wrongly specified polarization direction " // trim(direction)& + call detailedError(node, "Wrongly specified polarisation direction " // trim(direction)& & // ". Must be x, y, z or all.") end select @@ -7269,7 +7271,7 @@ subroutine finalizeNegf(input) #:endblock !! Temporarily not supporting surface green function read/load - !! for spin polarized, because spin is handled outside of libnegf + !! for spin polarised, because spin is handled outside of libnegf if (input%ginfo%greendens%defined) then if (input%ctrl%tSpin .and. input%ginfo%greendens%saveSGF) then call error("SaveSurfaceGFs must be disabled in collinear spin calculations") @@ -7766,7 +7768,7 @@ subroutine readSSR22(node, ctrl, geo) !> If true, initial eigenvectors are obtained from 'eigenvec.bin' !> If false, initial eigenvectors are obtained from diagonalisation of H0 call getChildValue(node, "ReadEigenvectors", ctrl%reksInp%tReadMO, default=.false.) - !> Maximum iteration used in FON optimization + !> Maximum iteration used in FON optimisation call getChildValue(node, "FonMaxIter", ctrl%reksInp%FonMaxIter, default=20) !> Shift value in SCC cycle call getChildValue(node, "Shift", ctrl%reksInp%shift, default=0.3_dp) diff --git a/test/src/dftbp/api/mm/testers/test_ehrenfest.f90 b/test/src/dftbp/api/mm/testers/test_ehrenfest.f90 index 554f155c92..fa20d8b3df 100644 --- a/test/src/dftbp/api/mm/testers/test_ehrenfest.f90 +++ b/test/src/dftbp/api/mm/testers/test_ehrenfest.f90 @@ -94,7 +94,7 @@ program test_ehrenfest call setChild(pElecDyn, "Perturbation", pPerturb) call setChild(pPerturb, "Laser", pLaser) ! these twovalues will be overriden - call setChildValue(pLaser, "PolarizationDirection", [0.0_dp, 1.0_dp, 1.0_dp]) + call setChildValue(pLaser, "PolarisationDirection", [0.0_dp, 1.0_dp, 1.0_dp]) call setChildValue(pLaser, "LaserEnergy", 1.0_dp) norm = sqrt(dot_product(poldir, poldir)) diff --git a/test/src/dftbp/api/mm/testers/test_ehrenfest_ext_ions.f90 b/test/src/dftbp/api/mm/testers/test_ehrenfest_ext_ions.f90 index 51a380b1ef..fa861f92e4 100644 --- a/test/src/dftbp/api/mm/testers/test_ehrenfest_ext_ions.f90 +++ b/test/src/dftbp/api/mm/testers/test_ehrenfest_ext_ions.f90 @@ -97,7 +97,7 @@ program test_ehrenfest call setChild(pElecDyn, "Perturbation", pPerturb) call setChild(pPerturb, "Laser", pLaser) ! these twovalues will be overriden - call setChildValue(pLaser, "PolarizationDirection", [0.0_dp, 1.0_dp, 1.0_dp]) + call setChildValue(pLaser, "PolarisationDirection", [0.0_dp, 1.0_dp, 1.0_dp]) call setChildValue(pLaser, "LaserEnergy", 1.0_dp) norm = sqrt(dot_product(poldir, poldir)) diff --git a/test/src/dftbp/api/mm/testers/test_timeprop.f90 b/test/src/dftbp/api/mm/testers/test_timeprop.f90 index 3a5113f478..5633474c6d 100644 --- a/test/src/dftbp/api/mm/testers/test_timeprop.f90 +++ b/test/src/dftbp/api/mm/testers/test_timeprop.f90 @@ -86,7 +86,7 @@ program test_timeprop call setChildValue(pElecDyn, "FieldStrength", fstrength*1.0e10_dp*V_m__au) call setChild(pElecDyn, "Perturbation", pPerturb) call setChild(pPerturb, "Kick", pKick) - call setChildValue(pKick, "PolarizationDirection", "z") + call setChildValue(pKick, "PolarisationDirection", "z") call setChildValue(pElecDyn, "WriteBondPopulation", .true.) print "(A)", 'Input tree in HSD format:' From 5c94f171faa52e9b69a872430554d200ee15f0b4 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sat, 18 Jun 2022 14:55:27 +0100 Subject: [PATCH 34/36] Fix calculation of qBlock in timeprop Corrects bug introduced in commit 11abba39b Co-authored-by: Franco Bonafe --- CHANGELOG.rst | 5 +++++ src/dftbp/timedep/timeprop.F90 | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c51c80d34d..0902d00e1c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,11 @@ Unreleased ========== +Fixed +----- + +- Onsite and +U potentials in real time-propagation, which was broken + in October 2019 by commit 11abba39b 22.1 (2022-05-25) diff --git a/src/dftbp/timedep/timeprop.F90 b/src/dftbp/timedep/timeprop.F90 index f6eaa9e0c9..480c85de43 100644 --- a/src/dftbp/timedep/timeprop.F90 +++ b/src/dftbp/timedep/timeprop.F90 @@ -1525,12 +1525,14 @@ subroutine getChargeDipole(this, deltaQ, qq, multipole, dipole, q0, rho, Ssqr, D & real(matmul(Ssqr(iOrb1:iOrb2-1,:,iSpin), rho(:,iOrb1:iOrb2-1,iSpin)), dp) end do end do - do iAt = 1, this%nAtom - iOrb1 = iSquare(iAt) - iOrb2 = iSquare(iAt+1) - nOrb = iOrb2 - iOrb1 - qBlock(:nOrb,:nOrb,iAt,iSpin) = 0.5_dp * (qBlock(:nOrb,:nOrb,iAt,iSpin)& - & + transpose(qBlock(:nOrb,:nOrb,iAt,iSpin)) ) + do iSpin = 1, this%nSpin + do iAt = 1, this%nAtom + iOrb1 = iSquare(iAt) + iOrb2 = iSquare(iAt+1) + nOrb = iOrb2 - iOrb1 + qBlock(:nOrb,:nOrb,iAt,iSpin) = 0.5_dp * (qBlock(:nOrb,:nOrb,iAt,iSpin)& + & + transpose(qBlock(:nOrb,:nOrb,iAt,iSpin)) ) + end do end do end if From b3baec720dd9cf8a9a8d66fb8a28fb5ef0a72d87 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Wed, 5 Jan 2022 22:43:32 +0000 Subject: [PATCH 35/36] External testing for non-tagged files In practice, grep for broken patterns in files and remove autotest.tag if found. Currently just looking for NaN values in common text files. Hopefully cross platform for different grep dielects and compiler nan capitalisations. --- test/app/dftb+/CMakeLists.txt | 1 + test/app/dftb+/bin/autotest2 | 11 +++++++++++ test/app/dftb+/bin/globalpostrun.sh | 26 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100755 test/app/dftb+/bin/globalpostrun.sh diff --git a/test/app/dftb+/CMakeLists.txt b/test/app/dftb+/CMakeLists.txt index 7c92fd4eac..da9dac2a30 100644 --- a/test/app/dftb+/CMakeLists.txt +++ b/test/app/dftb+/CMakeLists.txt @@ -33,6 +33,7 @@ foreach(test IN LISTS tests) COMMAND ${srcdir}/bin/autotest2 -r ${srcdir} -w ${builddir} -d ${srcdir}/bin/tagdiff -P "${TEST_RUNNER}" -p "$" + -G ${srcdir}/bin/globalpostrun.sh -s P,R,C,S ${test}) set_tests_properties( dftb+_${test} diff --git a/test/app/dftb+/bin/autotest2 b/test/app/dftb+/bin/autotest2 index bf014638eb..7c274b400a 100755 --- a/test/app/dftb+/bin/autotest2 +++ b/test/app/dftb+/bin/autotest2 @@ -80,6 +80,7 @@ Options (default value in parenthesis): -w workdir workdir to run the tests (./) -P prerun command to use before executing binary -Q postrun command on line after binary + -G globalpostrun post-run program to run ancillary tests -p program application program generating tagged output -d tagdiff path to the tagdiff program (SCRIPTDIR/tagdiff) -f testspec file containing test names -- cumulative @@ -162,6 +163,7 @@ do -Q) app_postrun=$2; shift 2;; -p) app_cmd=$2; shift 2 ;; -d) tagdiff_cmd=$2; shift 2 ;; + -G) app_globalpost=$2; shift 2 ;; # the following act cumulatively: -f) testspec_files="$testspec_files $2"; shift 2 ;; @@ -346,6 +348,15 @@ do $TIME_CMD $app_prerun $app_cmd $app_postrun >> $APP_STDOUT 2>> $APP_STDERR fi + if [ -n "$app_globalpost" ]; then + if [ ! -x "$app_globalpost" ]; then + echo "${SCRIPTNAME}: Error: Executable '${app_globalpost}' does not exist" 1>&2 + echo "Type '${SCRIPTNAME} -h' for help" 1>&2 + exit 1 + fi + $app_globalpost + fi + if [ -z "$STAGE_COMPARE" ]; then test -n "$verbose" && echo_n " done." fi diff --git a/test/app/dftb+/bin/globalpostrun.sh b/test/app/dftb+/bin/globalpostrun.sh new file mode 100755 index 0000000000..38b6d57b5c --- /dev/null +++ b/test/app/dftb+/bin/globalpostrun.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +#------------------------------------------------------------------------------# +# DFTB+: general package for performing fast atomistic simulations # +# Copyright (C) 2006 - 2021 DFTB+ developers group # +# # +# See the LICENSE file for terms of usage and distribution. # +#------------------------------------------------------------------------------# + +############################################################################ +# +# Script for automated testing outside of tagged files +# +############################################################################ + +# common text files +for FILE in output *.out *.DAT *.dat *.xyz *.gen +do + if [ -f "$FILE" ] + then + if grep -iw NaN $FILE; then + echo "Error: NaN in file: $FILE" + rm autotest.tag + exit 1 + fi + fi +done From 44c4e6f2f5e3d933412fd66af4f25254cb63c7e3 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sat, 23 Jul 2022 07:19:12 +0100 Subject: [PATCH 36/36] Minor variable and style clean-up --- src/dftbp/type/orbitals.F90 | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/dftbp/type/orbitals.F90 b/src/dftbp/type/orbitals.F90 index 5a5f5d292d..07a8664c75 100644 --- a/src/dftbp/type/orbitals.F90 +++ b/src/dftbp/type/orbitals.F90 @@ -65,12 +65,12 @@ module dftbp_type_orbitals contains - !> Builds a unique names for the atomic orbitals - !> Assign 's', 'p', 'd' to first occurring shells, then 's2', 'p2', ... - subroutine getShellNames(iSpecie, orb, shellNamesTmp) + !> Builds a unique names for the atomic orbitals. + !> Assign 's', 'p', 'd' to first occurring shells of each angular momentum, then 's2', 'p2', ... + subroutine getShellNames(iSpecies, orb, shellNamesTmp) - !> atomic specie - integer, intent(in) :: iSpecie + !> specific atomic species + integer, intent(in) :: iSpecies !> orbital info type(TOrbitals), intent(in) :: orb @@ -82,13 +82,12 @@ subroutine getShellNames(iSpecie, orb, shellNamesTmp) integer, allocatable :: ind(:) character(sc) :: sindx - !allocate(names(orb%nShell(iSpecie))) - allocate(shellNamesTmp(orb%nShell(iSpecie))) - allocate(ind(orb%nShell(iSpecie))) - ind = 1 + allocate(shellNamesTmp(orb%nShell(iSpecies))) + allocate(ind(orb%nShell(iSpecies))) + ind(:) = 1 - do ii = 1, orb%nShell(iSpecie) - write(shellNamesTmp(ii), "(A)") shellNames(orb%angShell(ii, iSpecie) + 1) + do ii = 1, orb%nShell(iSpecies) + write(shellNamesTmp(ii), "(A)") shellNames(orb%angShell(ii, iSpecies) + 1) if (any(shellNamesTmp(ii) == shellNamesTmp(1:ii-1))) then ! at least one example of this shell already ind(ii) = ind(ii) + 1