diff --git a/CMakeLists.txt b/CMakeLists.txt index d3dd9d7ba..cd8bb0551 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,8 @@ ## # Set the name of the project and target: -SET(TARGET "main") -SET(TARGETLIB "dftfe") +SET(TARGET "dftfe") +SET(TARGETLIB "dftfem") INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/include @@ -256,6 +256,26 @@ ELSE() MESSAGE(FATAL_ERROR "-- Provide path to prefix of SPGLIB: -DSPGLIB_DIR=/path/to/prefix") ENDIF (DEFINED SPGLIB_DIR) + +# +# Custom "debug" and "release" make targets: +# +ADD_CUSTOM_TARGET(debug +COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR} +COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all +COMMENT "Switch CMAKE_BUILD_TYPE to Debug" +) + +ADD_CUSTOM_TARGET(release +COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR} +COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all +COMMENT "Switch CMAKE_BUILD_TYPE to Release" +) + + +# +# FIXME: that will not play well with installation +# ADD_DEFINITIONS(-DDFT_PATH="${CMAKE_CURRENT_SOURCE_DIR}") # Enable testing and descent into tests/ subdirectory: @@ -274,3 +294,19 @@ ELSE() ADD_SUBDIRECTORY(tests/dft/pseudopotential/real) ADD_SUBDIRECTORY(tests/dft/allElectron/real) ENDIF() + + +# +# installation target. +# use with -DCMAKE_INSTALL_PREFIX=/path/to/ +# +SET(TARGETLIBEXPORT "femdftTargets") +# 1. Install defined library target +install (TARGETS ${TARGETLIB} EXPORT ${TARGETLIBEXPORT} + LIBRARY DESTINATION lib) +# 2. Install the binary +install (TARGETS ${TARGET} + RUNTIME DESTINATION bin) +# 3. Install content of include dir +install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/" + DESTINATION include) diff --git a/Doxyfile b/Doxyfile index 1b83f4324..fcb5995ef 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "DFT-FE" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "0.5.2" +PROJECT_NUMBER = "0.6.0" # 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 diff --git a/README.md b/README.md index 6d2d49b8b..8059b93e7 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ DFT-FE : Density Functional Theory With Finite-Elements About ----- -DFT-FE is a C++ code for materials modeling from first principles using Kohn-Sham density functional theory. +DFT-FE is a C++ code for materials modeling from first principles using Kohn-Sham density functional theory, developed by the [Computational Materials Physics Group](http://www-personal.umich.edu/~vikramg) at University of Michigan. It is based on adaptive finite-element discretization that handles all-electron and pseudopotential calculations in the same framework, and incorporates scalable and efficient solvers for the solution of the Kohn-Sham equations. Importantly, DFT-FE can handle general geometries and boundary conditions, including periodic, semi-periodic and non-periodic systems. DFT-FE code builds on top of the deal.II library for everything that has to do with finite elements, geometries, meshes, etc., and, through deal.II on p4est for parallel adaptive mesh handling. @@ -32,11 +32,9 @@ Learn more about contributing to DFT-FE's development [here](https://github.com/ More information ---------------- -For more information see: - - - The official [website](https://sites.google.com/umich.edu/dftfe). + - See the official [website](https://sites.google.com/umich.edu/dftfe) for information on code capabilities, appropriate referencing of the code, acknowledgements, and news related to DFT-FE. - - Doxygen generated [documentation](https://dftfedevelopers.github.io/dftfe/). + - See Doxygen generated [documentation](https://dftfedevelopers.github.io/dftfe/). - For questions about DFT-FE, installation, bugs, etc., use the [DFT-FE discussion forum](https://groups.google.com/forum/#!forum/dftfe-user-group). diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/PseudoAtomDat b/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/PseudoAtomDat deleted file mode 100644 index 61086c5b5..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/PseudoAtomDat +++ /dev/null @@ -1,26 +0,0 @@ -18 -0 0 0 0 -1 0 0 1 -2 1 -1 2 -2 1 0 2 -2 1 1 2 -3 1 -1 3 -3 1 0 3 -3 1 1 3 -4 2 -2 4 -4 2 -1 4 -4 2 0 4 -4 2 1 4 -4 2 2 4 -5 2 -2 5 -5 2 -1 5 -5 2 0 5 -5 2 1 5 -5 2 2 5 -proj_l0.dat -2 -proj_l1.dat -2 -proj_l2.dat -2 -denom.dat diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/denom.dat b/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/denom.dat deleted file mode 100644 index 7561308fd..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/denom.dat +++ /dev/null @@ -1,6 +0,0 @@ --3.30892101275000 0.00000000000000 0.00000000000000 0.00000000000000 0.00000000000000 0.00000000000000 - 0.00000000000000 -0.08248237469000 0.00000000000000 0.00000000000000 0.00000000000000 0.00000000000000 - 0.00000000000000 0.00000000000000 -6.08509173800000 0.00000000000000 0.00000000000000 0.00000000000000 - 0.00000000000000 0.00000000000000 0.00000000000000 -2.31936161760000 0.00000000000000 0.00000000000000 - 0.00000000000000 0.00000000000000 0.00000000000000 0.00000000000000 -9.62818298900000 0.00000000000000 - 0.00000000000000 0.00000000000000 0.00000000000000 0.00000000000000 0.00000000000000 -3.54692786140000 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/locPot.dat b/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/locPot.dat deleted file mode 100644 index bdfe6aef6..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/locPot.dat +++ /dev/null @@ -1,600 +0,0 @@ -0.00000000000000e+00 -2.67132910870000e+01 -1.00000000000000e-02 -2.67131471885000e+01 -2.00000000000000e-02 -2.67129809040000e+01 -3.00000000000000e-02 -2.67124501935000e+01 -4.00000000000000e-02 -2.67112130175000e+01 -5.00000000000000e-02 -2.67088578875000e+01 -6.00000000000000e-02 -2.67049528990000e+01 -7.00000000000000e-02 -2.66990894115000e+01 -8.00000000000000e-02 -2.66909144920000e+01 -9.00000000000000e-02 -2.66801498655000e+01 -1.00000000000000e-01 -2.66665982410000e+01 -1.10000000000000e-01 -2.66501398175000e+01 -1.20000000000000e-01 -2.66307224370000e+01 -1.30000000000000e-01 -2.66083486345000e+01 -1.40000000000000e-01 -2.65830620660000e+01 -1.50000000000000e-01 -2.65549349655000e+01 -1.60000000000000e-01 -2.65240574895000e+01 -1.70000000000000e-01 -2.64905292495000e+01 -1.80000000000000e-01 -2.64544529730000e+01 -1.90000000000000e-01 -2.64159300185000e+01 -2.00000000000000e-01 -2.63750574040000e+01 -2.10000000000000e-01 -2.63319260035000e+01 -2.20000000000000e-01 -2.62866195955000e+01 -2.30000000000000e-01 -2.62392145080000e+01 -2.40000000000000e-01 -2.61897796495000e+01 -2.50000000000000e-01 -2.61383767860000e+01 -2.60000000000000e-01 -2.60850609320000e+01 -2.70000000000000e-01 -2.60298808020000e+01 -2.80000000000000e-01 -2.59728792570000e+01 -2.90000000000000e-01 -2.59140937125000e+01 -3.00000000000000e-01 -2.58535564975000e+01 -3.10000000000000e-01 -2.57912951495000e+01 -3.20000000000000e-01 -2.57273326390000e+01 -3.30000000000000e-01 -2.56616875390000e+01 -3.40000000000000e-01 -2.55943741040000e+01 -3.50000000000000e-01 -2.55254023380000e+01 -3.60000000000000e-01 -2.54547779585000e+01 -3.70000000000000e-01 -2.53825023820000e+01 -3.80000000000000e-01 -2.53085726390000e+01 -3.90000000000000e-01 -2.52329813055000e+01 -4.00000000000000e-01 -2.51557164530000e+01 -4.10000000000000e-01 -2.50767616295000e+01 -4.20000000000000e-01 -2.49960959105000e+01 -4.30000000000000e-01 -2.49136940415000e+01 -4.40000000000000e-01 -2.48295267160000e+01 -4.50000000000000e-01 -2.47435610025000e+01 -4.60000000000000e-01 -2.46557609560000e+01 -4.70000000000000e-01 -2.45660884310000e+01 -4.80000000000000e-01 -2.44745040970000e+01 -4.90000000000000e-01 -2.43809686450000e+01 -5.00000000000000e-01 -2.42854442140000e+01 -5.10000000000000e-01 -2.41878959285000e+01 -5.20000000000000e-01 -2.40882934535000e+01 -5.30000000000000e-01 -2.39866127975000e+01 -5.40000000000000e-01 -2.38828377500000e+01 -5.50000000000000e-01 -2.37769613400000e+01 -5.60000000000000e-01 -2.36689871920000e+01 -5.70000000000000e-01 -2.35589301260000e+01 -5.80000000000000e-01 -2.34468171205000e+01 -5.90000000000000e-01 -2.33326870455000e+01 -6.00000000000000e-01 -2.32165907640000e+01 -6.10000000000000e-01 -2.30985904080000e+01 -6.20000000000000e-01 -2.29787582450000e+01 -6.30000000000000e-01 -2.28571759545000e+01 -6.40000000000000e-01 -2.27339327515000e+01 -6.50000000000000e-01 -2.26091240880000e+01 -6.60000000000000e-01 -2.24828502335000e+01 -6.70000000000000e-01 -2.23552145885000e+01 -6.80000000000000e-01 -2.22263223940000e+01 -6.90000000000000e-01 -2.20962795050000e+01 -7.00000000000000e-01 -2.19651912795000e+01 -7.10000000000000e-01 -2.18331617210000e+01 -7.20000000000000e-01 -2.17002927910000e+01 -7.30000000000000e-01 -2.15666839205000e+01 -7.40000000000000e-01 -2.14324315695000e+01 -7.50000000000000e-01 -2.12976290470000e+01 -7.60000000000000e-01 -2.11623664170000e+01 -7.70000000000000e-01 -2.10267304500000e+01 -7.80000000000000e-01 -2.08908046560000e+01 -7.90000000000000e-01 -2.07546693530000e+01 -8.00000000000000e-01 -2.06184017560000e+01 -8.10000000000000e-01 -2.04820760770000e+01 -8.20000000000000e-01 -2.03457636185000e+01 -8.30000000000000e-01 -2.02095328535000e+01 -8.40000000000000e-01 -2.00734494915000e+01 -8.50000000000000e-01 -1.99375765180000e+01 -8.60000000000000e-01 -1.98019742190000e+01 -8.70000000000000e-01 -1.96667001760000e+01 -8.80000000000000e-01 -1.95318092450000e+01 -8.90000000000000e-01 -1.93973535170000e+01 -9.00000000000000e-01 -1.92633822630000e+01 -9.10000000000000e-01 -1.91299418640000e+01 -9.20000000000000e-01 -1.89970757390000e+01 -9.30000000000000e-01 -1.88648242650000e+01 -9.40000000000000e-01 -1.87332246960000e+01 -9.50000000000000e-01 -1.86023110930000e+01 -9.60000000000000e-01 -1.84721142560000e+01 -9.70000000000000e-01 -1.83426617390000e+01 -9.80000000000000e-01 -1.82139777045000e+01 -9.90000000000000e-01 -1.80860828595000e+01 -1.00000000000000e+00 -1.79589946325000e+01 -1.01000000000000e+00 -1.78327271585000e+01 -1.02000000000000e+00 -1.77072913645000e+01 -1.03000000000000e+00 -1.75826951280000e+01 -1.04000000000000e+00 -1.74589434745000e+01 -1.05000000000000e+00 -1.73360383920000e+01 -1.06000000000000e+00 -1.72139795580000e+01 -1.07000000000000e+00 -1.70927644715000e+01 -1.08000000000000e+00 -1.69723888070000e+01 -1.09000000000000e+00 -1.68528466835000e+01 -1.10000000000000e+00 -1.67341309595000e+01 -1.11000000000000e+00 -1.66162339120000e+01 -1.12000000000000e+00 -1.64991475135000e+01 -1.13000000000000e+00 -1.63828636850000e+01 -1.14000000000000e+00 -1.62673749860000e+01 -1.15000000000000e+00 -1.61526748660000e+01 -1.16000000000000e+00 -1.60387578760000e+01 -1.17000000000000e+00 -1.59256198825000e+01 -1.18000000000000e+00 -1.58132589495000e+01 -1.19000000000000e+00 -1.57016748280000e+01 -1.20000000000000e+00 -1.55908688765000e+01 -1.21000000000000e+00 -1.54808450925000e+01 -1.22000000000000e+00 -1.53716093995000e+01 -1.23000000000000e+00 -1.52631692465000e+01 -1.24000000000000e+00 -1.51555341650000e+01 -1.25000000000000e+00 -1.50487154155000e+01 -1.26000000000000e+00 -1.49427251635000e+01 -1.27000000000000e+00 -1.48375768440000e+01 -1.28000000000000e+00 -1.47332846205000e+01 -1.29000000000000e+00 -1.46298628325000e+01 -1.30000000000000e+00 -1.45273260555000e+01 -1.31000000000000e+00 -1.44256882055000e+01 -1.32000000000000e+00 -1.43249628825000e+01 -1.33000000000000e+00 -1.42251624520000e+01 -1.34000000000000e+00 -1.41262976385000e+01 -1.35000000000000e+00 -1.40283787085000e+01 -1.36000000000000e+00 -1.39314126700000e+01 -1.37000000000000e+00 -1.38354054405000e+01 -1.38000000000000e+00 -1.37403611755000e+01 -1.39000000000000e+00 -1.36462806580000e+01 -1.40000000000000e+00 -1.35531642935000e+01 -1.41000000000000e+00 -1.34610089695000e+01 -1.42000000000000e+00 -1.33698105230000e+01 -1.43000000000000e+00 -1.32795633445000e+01 -1.44000000000000e+00 -1.31902597000000e+01 -1.45000000000000e+00 -1.31018918315000e+01 -1.46000000000000e+00 -1.30144504250000e+01 -1.47000000000000e+00 -1.29279264750000e+01 -1.48000000000000e+00 -1.28423105865000e+01 -1.49000000000000e+00 -1.27575942430000e+01 -1.50000000000000e+00 -1.26737687525000e+01 -1.51000000000000e+00 -1.25908275780000e+01 -1.52000000000000e+00 -1.25087636245000e+01 -1.53000000000000e+00 -1.24275727470000e+01 -1.54000000000000e+00 -1.23472504415000e+01 -1.55000000000000e+00 -1.22677945110000e+01 -1.56000000000000e+00 -1.21892030375000e+01 -1.57000000000000e+00 -1.21114754130000e+01 -1.58000000000000e+00 -1.20346114460000e+01 -1.59000000000000e+00 -1.19586115245000e+01 -1.60000000000000e+00 -1.18834758870000e+01 -1.61000000000000e+00 -1.18092051570000e+01 -1.62000000000000e+00 -1.17357986210000e+01 -1.63000000000000e+00 -1.16632562890000e+01 -1.64000000000000e+00 -1.15915753210000e+01 -1.65000000000000e+00 -1.15207542700000e+01 -1.66000000000000e+00 -1.14507873800000e+01 -1.67000000000000e+00 -1.13816709800000e+01 -1.68000000000000e+00 -1.13133961170000e+01 -1.69000000000000e+00 -1.12459561045000e+01 -1.70000000000000e+00 -1.11793397055000e+01 -1.71000000000000e+00 -1.11135375270000e+01 -1.72000000000000e+00 -1.10485369580000e+01 -1.73000000000000e+00 -1.09843267405000e+01 -1.74000000000000e+00 -1.09208931095000e+01 -1.75000000000000e+00 -1.08582231830000e+01 -1.76000000000000e+00 -1.07963024760000e+01 -1.77000000000000e+00 -1.07351168510000e+01 -1.78000000000000e+00 -1.06746515290000e+01 -1.79000000000000e+00 -1.06148916525000e+01 -1.80000000000000e+00 -1.05558224845000e+01 -1.81000000000000e+00 -1.04974291040000e+01 -1.82000000000000e+00 -1.04396970385000e+01 -1.83000000000000e+00 -1.03826120325000e+01 -1.84000000000000e+00 -1.03261599920000e+01 -1.85000000000000e+00 -1.02703280730000e+01 -1.86000000000000e+00 -1.02151026020000e+01 -1.87000000000000e+00 -1.01604726810000e+01 -1.88000000000000e+00 -1.01064255280000e+01 -1.89000000000000e+00 -1.00529518205000e+01 -1.90000000000000e+00 -1.00000408450000e+01 -1.91000000000000e+00 -9.94768375200000e+00 -1.92000000000000e+00 -9.89587197600000e+00 -1.93000000000000e+00 -9.84459692600000e+00 -1.94000000000000e+00 -9.79385071500000e+00 -1.95000000000000e+00 -9.74362510150000e+00 -1.96000000000000e+00 -9.69391223800000e+00 -1.97000000000000e+00 -9.64470384150000e+00 -1.98000000000000e+00 -9.59599253100000e+00 -1.99000000000000e+00 -9.54777080950000e+00 -2.00000000000000e+00 -9.50003128750000e+00 -2.01000000000000e+00 -9.45276694500000e+00 -2.02000000000000e+00 -9.40597037500000e+00 -2.03000000000000e+00 -9.35963501650000e+00 -2.04000000000000e+00 -9.31375386250000e+00 -2.05000000000000e+00 -9.26832035450000e+00 -2.06000000000000e+00 -9.22332804050000e+00 -2.07000000000000e+00 -9.17877030350000e+00 -2.08000000000000e+00 -9.13464116000000e+00 -2.09000000000000e+00 -9.09093420850000e+00 -2.10000000000000e+00 -9.04764356300000e+00 -2.11000000000000e+00 -9.00476332900000e+00 -2.12000000000000e+00 -8.96228750600000e+00 -2.13000000000000e+00 -8.92021065900000e+00 -2.14000000000000e+00 -8.87852696800000e+00 -2.15000000000000e+00 -8.83723106550000e+00 -2.16000000000000e+00 -8.79631762600000e+00 -2.17000000000000e+00 -8.75578112550000e+00 -2.18000000000000e+00 -8.71561665050000e+00 -2.19000000000000e+00 -8.67581893550000e+00 -2.20000000000000e+00 -8.63638299850000e+00 -2.21000000000000e+00 -8.59730407350000e+00 -2.22000000000000e+00 -8.55857705900000e+00 -2.23000000000000e+00 -8.52019746600000e+00 -2.24000000000000e+00 -8.48216058950000e+00 -2.25000000000000e+00 -8.44446171750000e+00 -2.26000000000000e+00 -8.40709658150000e+00 -2.27000000000000e+00 -8.37006060050000e+00 -2.28000000000000e+00 -8.33334948550000e+00 -2.29000000000000e+00 -8.29695910400000e+00 -2.30000000000000e+00 -8.26088502950000e+00 -2.31000000000000e+00 -8.22512335100000e+00 -2.32000000000000e+00 -8.18967003850000e+00 -2.33000000000000e+00 -8.15452090900000e+00 -2.34000000000000e+00 -8.11967230300000e+00 -2.35000000000000e+00 -8.08512029350000e+00 -2.36000000000000e+00 -8.05086101700000e+00 -2.37000000000000e+00 -8.01689095050000e+00 -2.38000000000000e+00 -7.98320630950000e+00 -2.39000000000000e+00 -7.94980351500000e+00 -2.40000000000000e+00 -7.91667917550000e+00 -2.41000000000000e+00 -7.88382965100000e+00 -2.42000000000000e+00 -7.85125161450000e+00 -2.43000000000000e+00 -7.81894180350000e+00 -2.44000000000000e+00 -7.78689672400000e+00 -2.45000000000000e+00 -7.75511326850000e+00 -2.46000000000000e+00 -7.72358830400000e+00 -2.47000000000000e+00 -7.69231848200000e+00 -2.48000000000000e+00 -7.66130088500000e+00 -2.49000000000000e+00 -7.63053251000000e+00 -2.50000000000000e+00 -7.60001015300000e+00 -2.51000000000000e+00 -7.56973106000000e+00 -2.52000000000000e+00 -7.53969235850000e+00 -2.53000000000000e+00 -7.50989098750000e+00 -2.54000000000000e+00 -7.48032433050000e+00 -2.55000000000000e+00 -7.45098964750000e+00 -2.56000000000000e+00 -7.42188401950000e+00 -2.57000000000000e+00 -7.39300494350000e+00 -2.58000000000000e+00 -7.36434981350000e+00 -2.59000000000000e+00 -7.33591585050000e+00 -2.60000000000000e+00 -7.30770064450000e+00 -2.61000000000000e+00 -7.27970172200000e+00 -2.62000000000000e+00 -7.25191644550000e+00 -2.63000000000000e+00 -7.22434247450000e+00 -2.64000000000000e+00 -7.19697747100000e+00 -2.65000000000000e+00 -7.16981893850000e+00 -2.66000000000000e+00 -7.14286458700000e+00 -2.67000000000000e+00 -7.11611221150000e+00 -2.68000000000000e+00 -7.08955945950000e+00 -2.69000000000000e+00 -7.06320407200000e+00 -2.70000000000000e+00 -7.03704397750000e+00 -2.71000000000000e+00 -7.01107696700000e+00 -2.72000000000000e+00 -6.98530079650000e+00 -2.73000000000000e+00 -6.95971352600000e+00 -2.74000000000000e+00 -6.93431308500000e+00 -2.75000000000000e+00 -6.90909725100000e+00 -2.76000000000000e+00 -6.88406419100000e+00 -2.77000000000000e+00 -6.85921193800000e+00 -2.78000000000000e+00 -6.83453840800000e+00 -2.79000000000000e+00 -6.81004174400000e+00 -2.80000000000000e+00 -6.78572011750000e+00 -2.81000000000000e+00 -6.76157159050000e+00 -2.82000000000000e+00 -6.73759426400000e+00 -2.83000000000000e+00 -6.71378644600000e+00 -2.84000000000000e+00 -6.69014634300000e+00 -2.85000000000000e+00 -6.66667201600000e+00 -2.86000000000000e+00 -6.64336189250000e+00 -2.87000000000000e+00 -6.62021426500000e+00 -2.88000000000000e+00 -6.59722733650000e+00 -2.89000000000000e+00 -6.57439946150000e+00 -2.90000000000000e+00 -6.55172907500000e+00 -2.91000000000000e+00 -6.52921452750000e+00 -2.92000000000000e+00 -6.50685409000000e+00 -2.93000000000000e+00 -6.48464633200000e+00 -2.94000000000000e+00 -6.46258969950000e+00 -2.95000000000000e+00 -6.44068254550000e+00 -2.96000000000000e+00 -6.41892339700000e+00 -2.97000000000000e+00 -6.39731082600000e+00 -2.98000000000000e+00 -6.37584333550000e+00 -2.99000000000000e+00 -6.35451934150000e+00 -3.00000000000000e+00 -6.33333755200000e+00 -3.01000000000000e+00 -6.31229655400000e+00 -3.02000000000000e+00 -6.29139486050000e+00 -3.03000000000000e+00 -6.27063109950000e+00 -3.04000000000000e+00 -6.25000398950000e+00 -3.05000000000000e+00 -6.22951218200000e+00 -3.06000000000000e+00 -6.20915421200000e+00 -3.07000000000000e+00 -6.18892889350000e+00 -3.08000000000000e+00 -6.16883495400000e+00 -3.09000000000000e+00 -6.14887107550000e+00 -3.10000000000000e+00 -6.12903592350000e+00 -3.11000000000000e+00 -6.10932837000000e+00 -3.12000000000000e+00 -6.08974719050000e+00 -3.13000000000000e+00 -6.07029108950000e+00 -3.14000000000000e+00 -6.05095888250000e+00 -3.15000000000000e+00 -6.03174946250000e+00 -3.16000000000000e+00 -6.01266166000000e+00 -3.17000000000000e+00 -5.99369421050000e+00 -3.18000000000000e+00 -5.97484605900000e+00 -3.19000000000000e+00 -5.95611611900000e+00 -3.20000000000000e+00 -5.93750327700000e+00 -3.21000000000000e+00 -5.91900630200000e+00 -3.22000000000000e+00 -5.90062424900000e+00 -3.23000000000000e+00 -5.88235605700000e+00 -3.24000000000000e+00 -5.86420064400000e+00 -3.25000000000000e+00 -5.84615687750000e+00 -3.26000000000000e+00 -5.82822384350000e+00 -3.27000000000000e+00 -5.81040052950000e+00 -3.28000000000000e+00 -5.79268589200000e+00 -3.29000000000000e+00 -5.77507887800000e+00 -3.30000000000000e+00 -5.75757860750000e+00 -3.31000000000000e+00 -5.74018411500000e+00 -3.32000000000000e+00 -5.72289439700000e+00 -3.33000000000000e+00 -5.70570846650000e+00 -3.34000000000000e+00 -5.68862547950000e+00 -3.35000000000000e+00 -5.67164451550000e+00 -3.36000000000000e+00 -5.65476461400000e+00 -3.37000000000000e+00 -5.63798483850000e+00 -3.38000000000000e+00 -5.62130438400000e+00 -3.39000000000000e+00 -5.60472237350000e+00 -3.40000000000000e+00 -5.58823789250000e+00 -3.41000000000000e+00 -5.57185004150000e+00 -3.42000000000000e+00 -5.55555805650000e+00 -3.43000000000000e+00 -5.53936110150000e+00 -3.44000000000000e+00 -5.52325831250000e+00 -3.45000000000000e+00 -5.50724881150000e+00 -3.46000000000000e+00 -5.49133188000000e+00 -3.47000000000000e+00 -5.47550672100000e+00 -3.48000000000000e+00 -5.45977252250000e+00 -3.49000000000000e+00 -5.44412841800000e+00 -3.50000000000000e+00 -5.42857373500000e+00 -3.51000000000000e+00 -5.41310771350000e+00 -3.52000000000000e+00 -5.39772959400000e+00 -3.53000000000000e+00 -5.38243852100000e+00 -3.54000000000000e+00 -5.36723385750000e+00 -3.55000000000000e+00 -5.35211488450000e+00 -3.56000000000000e+00 -5.33708087650000e+00 -3.57000000000000e+00 -5.32213103650000e+00 -3.58000000000000e+00 -5.30726470900000e+00 -3.59000000000000e+00 -5.29248123050000e+00 -3.60000000000000e+00 -5.27777991000000e+00 -3.61000000000000e+00 -5.26316001150000e+00 -3.62000000000000e+00 -5.24862085050000e+00 -3.63000000000000e+00 -5.23416182100000e+00 -3.64000000000000e+00 -5.21978226400000e+00 -3.65000000000000e+00 -5.20548150850000e+00 -3.66000000000000e+00 -5.19125883100000e+00 -3.67000000000000e+00 -5.17711368400000e+00 -3.68000000000000e+00 -5.16304543950000e+00 -3.69000000000000e+00 -5.14905347000000e+00 -3.70000000000000e+00 -5.13513707750000e+00 -3.71000000000000e+00 -5.12129570150000e+00 -3.72000000000000e+00 -5.10752876650000e+00 -3.73000000000000e+00 -5.09383567400000e+00 -3.74000000000000e+00 -5.08021579550000e+00 -3.75000000000000e+00 -5.06666850900000e+00 -3.76000000000000e+00 -5.05319330500000e+00 -3.77000000000000e+00 -5.03978961200000e+00 -3.78000000000000e+00 -5.02645686000000e+00 -3.79000000000000e+00 -5.01319440450000e+00 -3.80000000000000e+00 -5.00000175500000e+00 -3.81000000000000e+00 -4.98687838145000e+00 -3.82000000000000e+00 -4.97382373995000e+00 -3.83000000000000e+00 -4.96083726000000e+00 -3.84000000000000e+00 -4.94791837030000e+00 -3.85000000000000e+00 -4.93506661215000e+00 -3.86000000000000e+00 -4.92228146665000e+00 -3.87000000000000e+00 -4.90956241490000e+00 -3.88000000000000e+00 -4.89690887855000e+00 -3.89000000000000e+00 -4.88432038950000e+00 -3.90000000000000e+00 -4.87179647820000e+00 -3.91000000000000e+00 -4.85933664990000e+00 -3.92000000000000e+00 -4.84694040500000e+00 -3.93000000000000e+00 -4.83460717880000e+00 -3.94000000000000e+00 -4.82233657535000e+00 -3.95000000000000e+00 -4.81012812295000e+00 -3.96000000000000e+00 -4.79798134990000e+00 -3.97000000000000e+00 -4.78589575555000e+00 -3.98000000000000e+00 -4.77387085270000e+00 -3.99000000000000e+00 -4.76190624350000e+00 -4.00000000000000e+00 -4.75000147820000e+00 -4.01000000000000e+00 -4.73815610710000e+00 -4.02000000000000e+00 -4.72636963355000e+00 -4.03000000000000e+00 -4.71464163465000e+00 -4.04000000000000e+00 -4.70297171390000e+00 -4.05000000000000e+00 -4.69135944240000e+00 -4.06000000000000e+00 -4.67980439150000e+00 -4.07000000000000e+00 -4.66830607305000e+00 -4.08000000000000e+00 -4.65686411550000e+00 -4.09000000000000e+00 -4.64547812735000e+00 -4.10000000000000e+00 -4.63414769990000e+00 -4.11000000000000e+00 -4.62287242425000e+00 -4.12000000000000e+00 -4.61165182495000e+00 -4.13000000000000e+00 -4.60048556945000e+00 -4.14000000000000e+00 -4.58937327530000e+00 -4.15000000000000e+00 -4.57831455285000e+00 -4.16000000000000e+00 -4.56730901230000e+00 -4.17000000000000e+00 -4.55635619425000e+00 -4.18000000000000e+00 -4.54545579375000e+00 -4.19000000000000e+00 -4.53460744135000e+00 -4.20000000000000e+00 -4.52381076555000e+00 -4.21000000000000e+00 -4.51306539470000e+00 -4.22000000000000e+00 -4.50237088870000e+00 -4.23000000000000e+00 -4.49172695950000e+00 -4.24000000000000e+00 -4.48113325450000e+00 -4.25000000000000e+00 -4.47058941940000e+00 -4.26000000000000e+00 -4.46009509995000e+00 -4.27000000000000e+00 -4.44964987815000e+00 -4.28000000000000e+00 -4.43925347315000e+00 -4.29000000000000e+00 -4.42890555245000e+00 -4.30000000000000e+00 -4.41860577835000e+00 -4.31000000000000e+00 -4.40835381300000e+00 -4.32000000000000e+00 -4.39814926365000e+00 -4.33000000000000e+00 -4.38799184710000e+00 -4.34000000000000e+00 -4.37788125425000e+00 -4.35000000000000e+00 -4.36781716320000e+00 -4.36000000000000e+00 -4.35779925180000e+00 -4.37000000000000e+00 -4.34782715545000e+00 -4.38000000000000e+00 -4.33790057970000e+00 -4.39000000000000e+00 -4.32801924185000e+00 -4.40000000000000e+00 -4.31818283495000e+00 -4.41000000000000e+00 -4.30839105195000e+00 -4.42000000000000e+00 -4.29864355935000e+00 -4.43000000000000e+00 -4.28894004310000e+00 -4.44000000000000e+00 -4.27928024950000e+00 -4.45000000000000e+00 -4.26966388575000e+00 -4.46000000000000e+00 -4.26009065925000e+00 -4.47000000000000e+00 -4.25056027060000e+00 -4.48000000000000e+00 -4.24107237865000e+00 -4.49000000000000e+00 -4.23162676055000e+00 -4.50000000000000e+00 -4.22222313715000e+00 -4.51000000000000e+00 -4.21286122950000e+00 -4.52000000000000e+00 -4.20354075845000e+00 -4.53000000000000e+00 -4.19426139910000e+00 -4.54000000000000e+00 -4.18502291120000e+00 -4.55000000000000e+00 -4.17582504505000e+00 -4.56000000000000e+00 -4.16666753460000e+00 -4.57000000000000e+00 -4.15755011380000e+00 -4.58000000000000e+00 -4.14847249730000e+00 -4.59000000000000e+00 -4.13943440030000e+00 -4.60000000000000e+00 -4.13043561080000e+00 -4.61000000000000e+00 -4.12147587500000e+00 -4.62000000000000e+00 -4.11255493930000e+00 -4.63000000000000e+00 -4.10367255005000e+00 -4.64000000000000e+00 -4.09482840515000e+00 -4.65000000000000e+00 -4.08602229805000e+00 -4.66000000000000e+00 -4.07725399760000e+00 -4.67000000000000e+00 -4.06852326195000e+00 -4.68000000000000e+00 -4.05982984930000e+00 -4.69000000000000e+00 -4.05117350235000e+00 -4.70000000000000e+00 -4.04255395490000e+00 -4.71000000000000e+00 -4.03397101885000e+00 -4.72000000000000e+00 -4.02542446360000e+00 -4.73000000000000e+00 -4.01691405860000e+00 -4.74000000000000e+00 -4.00843957325000e+00 -4.75000000000000e+00 -4.00000074080000e+00 -4.76000000000000e+00 -3.99159735275000e+00 -4.77000000000000e+00 -3.98322921000000e+00 -4.78000000000000e+00 -3.97489609265000e+00 -4.79000000000000e+00 -3.96659778085000e+00 -4.80000000000000e+00 -3.95833405480000e+00 -4.81000000000000e+00 -3.95010464310000e+00 -4.82000000000000e+00 -3.94190938380000e+00 -4.83000000000000e+00 -3.93374807045000e+00 -4.84000000000000e+00 -3.92562049340000e+00 -4.85000000000000e+00 -3.91752644310000e+00 -4.86000000000000e+00 -3.90946569980000e+00 -4.87000000000000e+00 -3.90143802205000e+00 -4.88000000000000e+00 -3.89344325355000e+00 -4.89000000000000e+00 -3.88548119455000e+00 -4.90000000000000e+00 -3.87755164510000e+00 -4.91000000000000e+00 -3.86965440550000e+00 -4.92000000000000e+00 -3.86178925700000e+00 -4.93000000000000e+00 -3.85395598770000e+00 -4.94000000000000e+00 -3.84615444110000e+00 -4.95000000000000e+00 -3.83838442675000e+00 -4.96000000000000e+00 -3.83064575400000e+00 -4.97000000000000e+00 -3.82293823245000e+00 -4.98000000000000e+00 -3.81526164785000e+00 -4.99000000000000e+00 -3.80761580915000e+00 -5.00000000000000e+00 -3.80000056270000e+00 -5.01000000000000e+00 -3.79241572690000e+00 -5.02000000000000e+00 -3.78486112015000e+00 -5.03000000000000e+00 -3.77733656075000e+00 -5.04000000000000e+00 -3.76984184255000e+00 -5.05000000000000e+00 -3.76237678635000e+00 -5.06000000000000e+00 -3.75494124495000e+00 -5.07000000000000e+00 -3.74753504520000e+00 -5.08000000000000e+00 -3.74015801390000e+00 -5.09000000000000e+00 -3.73280997785000e+00 -5.10000000000000e+00 -3.72549074205000e+00 -5.11000000000000e+00 -3.71820013105000e+00 -5.12000000000000e+00 -3.71093800725000e+00 -5.13000000000000e+00 -3.70370420555000e+00 -5.14000000000000e+00 -3.69649856080000e+00 -5.15000000000000e+00 -3.68932090785000e+00 -5.16000000000000e+00 -3.68217106585000e+00 -5.17000000000000e+00 -3.67504885560000e+00 -5.18000000000000e+00 -3.66795415190000e+00 -5.19000000000000e+00 -3.66088679735000e+00 -5.20000000000000e+00 -3.65384663450000e+00 -5.21000000000000e+00 -3.64683350595000e+00 -5.22000000000000e+00 -3.63984724770000e+00 -5.23000000000000e+00 -3.63288766980000e+00 -5.24000000000000e+00 -3.62595466215000e+00 -5.25000000000000e+00 -3.61904807465000e+00 -5.26000000000000e+00 -3.61216775720000e+00 -5.27000000000000e+00 -3.60531355975000e+00 -5.28000000000000e+00 -3.59848533220000e+00 -5.29000000000000e+00 -3.59168288460000e+00 -5.30000000000000e+00 -3.58490610705000e+00 -5.31000000000000e+00 -3.57815486210000e+00 -5.32000000000000e+00 -3.57142900665000e+00 -5.33000000000000e+00 -3.56472839760000e+00 -5.34000000000000e+00 -3.55805289195000e+00 -5.35000000000000e+00 -3.55140232225000e+00 -5.36000000000000e+00 -3.54477655255000e+00 -5.37000000000000e+00 -3.53817546700000e+00 -5.38000000000000e+00 -3.53159892920000e+00 -5.39000000000000e+00 -3.52504680270000e+00 -5.40000000000000e+00 -3.51851895110000e+00 -5.41000000000000e+00 -3.51201523245000e+00 -5.42000000000000e+00 -3.50553547870000e+00 -5.43000000000000e+00 -3.49907959760000e+00 -5.44000000000000e+00 -3.49264745910000e+00 -5.45000000000000e+00 -3.48623893305000e+00 -5.46000000000000e+00 -3.47985388945000e+00 -5.47000000000000e+00 -3.47349219825000e+00 -5.48000000000000e+00 -3.46715370215000e+00 -5.49000000000000e+00 -3.46083828640000e+00 -5.50000000000000e+00 -3.45454584260000e+00 -5.51000000000000e+00 -3.44827624670000e+00 -5.52000000000000e+00 -3.44202937470000e+00 -5.53000000000000e+00 -3.43580510265000e+00 -5.54000000000000e+00 -3.42960330365000e+00 -5.55000000000000e+00 -3.42342381845000e+00 -5.56000000000000e+00 -3.41726656715000e+00 -5.57000000000000e+00 -3.41113143150000e+00 -5.58000000000000e+00 -3.40501829335000e+00 -5.59000000000000e+00 -3.39892703440000e+00 -5.60000000000000e+00 -3.39285753650000e+00 -5.61000000000000e+00 -3.38680966415000e+00 -5.62000000000000e+00 -3.38078329490000e+00 -5.63000000000000e+00 -3.37477833965000e+00 -5.64000000000000e+00 -3.36879468570000e+00 -5.65000000000000e+00 -3.36283222035000e+00 -5.66000000000000e+00 -3.35689083075000e+00 -5.67000000000000e+00 -3.35097040435000e+00 -5.68000000000000e+00 -3.34507080080000e+00 -5.69000000000000e+00 -3.33919192615000e+00 -5.70000000000000e+00 -3.33333368520000e+00 -5.71000000000000e+00 -3.32749597055000e+00 -5.72000000000000e+00 -3.32167867465000e+00 -5.73000000000000e+00 -3.31588169010000e+00 -5.74000000000000e+00 -3.31010490935000e+00 -5.75000000000000e+00 -3.30434819090000e+00 -5.76000000000000e+00 -3.29861146115000e+00 -5.77000000000000e+00 -3.29289462220000e+00 -5.78000000000000e+00 -3.28719757150000e+00 -5.79000000000000e+00 -3.28152020665000e+00 -5.80000000000000e+00 -3.27586242520000e+00 -5.81000000000000e+00 -3.27022412465000e+00 -5.82000000000000e+00 -3.26460516520000e+00 -5.83000000000000e+00 -3.25900548620000e+00 -5.84000000000000e+00 -3.25342499020000e+00 -5.85000000000000e+00 -3.24786357940000e+00 -5.86000000000000e+00 -3.24232115620000e+00 -5.87000000000000e+00 -3.23679762285000e+00 -5.88000000000000e+00 -3.23129288080000e+00 -5.89000000000000e+00 -3.22580679760000e+00 -5.90000000000000e+00 -3.22033931575000e+00 -5.91000000000000e+00 -3.21489034215000e+00 -5.92000000000000e+00 -3.20945978365000e+00 -5.93000000000000e+00 -3.20404754705000e+00 -5.94000000000000e+00 -3.19865353930000e+00 -5.95000000000000e+00 -3.19327766725000e+00 -5.96000000000000e+00 -3.18791980305000e+00 -5.97000000000000e+00 -3.18257989125000e+00 -5.98000000000000e+00 -3.17725784410000e+00 -5.99000000000000e+00 -3.17195357290000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l0.dat b/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l0.dat deleted file mode 100644 index 34918f683..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l0.dat +++ /dev/null @@ -1,600 +0,0 @@ -0.00000000000000e+00 -4.43298168230000e+00 7.65800249580000E+00 -1.00000000000000e-02 -4.43209278760000e+00 7.64914241570000e+00 -2.00000000000000e-02 -4.42942054690000e+00 7.62236677100000e+00 -3.00000000000000e-02 -4.42497053833333e+00 7.57787245700000e+00 -4.00000000000000e-02 -4.41874834050000e+00 7.51585636850000e+00 -5.00000000000000e-02 -4.41076174100000e+00 7.43659267260000e+00 -6.00000000000000e-02 -4.40102071616667e+00 7.34043133250000e+00 -7.00000000000000e-02 -4.38953740328571e+00 7.22779622571429e+00 -8.00000000000000e-02 -4.37632606737500e+00 7.09918286612500e+00 -9.00000000000000e-02 -4.36140306233333e+00 6.95515574388889e+00 -1.00000000000000e-01 -4.34478678690000e+00 6.79634530020000e+00 -1.10000000000000e-01 -4.32649763481818e+00 6.62344455118182e+00 -1.20000000000000e-01 -4.30655794041667e+00 6.43720538516667e+00 -1.30000000000000e-01 -4.28499191953846e+00 6.23843455123077e+00 -1.40000000000000e-01 -4.26182560557143e+00 6.02798936642857e+00 -1.50000000000000e-01 -4.23708678146667e+00 5.80677316186667e+00 -1.60000000000000e-01 -4.21080490831250e+00 5.57573050056250e+00 -1.70000000000000e-01 -4.18301104982353e+00 5.33584218717647e+00 -1.80000000000000e-01 -4.15373779400000e+00 5.08812010744444e+00 -1.90000000000000e-01 -4.12301917194737e+00 4.83360192352632e+00 -2.00000000000000e-01 -4.09089057425000e+00 4.57334564925000e+00 -2.10000000000000e-01 -4.05738866528571e+00 4.30842415095238e+00 -2.20000000000000e-01 -4.02255129590909e+00 4.03991959277273e+00 -2.30000000000000e-01 -3.98641741473913e+00 3.76891786591304e+00 -2.40000000000000e-01 -3.94902697875000e+00 3.49650303045833e+00 -2.50000000000000e-01 -3.91042086304000e+00 3.22375180628000e+00 -2.60000000000000e-01 -3.87064077115385e+00 2.95172813180769e+00 -2.70000000000000e-01 -3.82972914407407e+00 2.68147783855556e+00 -2.80000000000000e-01 -3.78772907250000e+00 2.41402346703571e+00 -2.90000000000000e-01 -3.74468420689655e+00 2.15035923968966e+00 -3.00000000000000e-01 -3.70063867133333e+00 1.89144623063333e+00 -3.10000000000000e-01 -3.65563697741936e+00 1.63820775554839e+00 -3.20000000000000e-01 -3.60972394187500e+00 1.39152501550000e+00 -3.30000000000000e-01 -3.56294460303030e+00 1.15223308054545e+00 -3.40000000000000e-01 -3.51534414441176e+00 9.21116877058824e-01 -3.50000000000000e-01 -3.46696781714286e+00 6.98908055028571e-01 -3.60000000000000e-01 -3.41786086638889e+00 4.86281411277778e-01 -3.70000000000000e-01 -3.36806846297297e+00 2.83852492162162e-01 -3.80000000000000e-01 -3.31763563552632e+00 9.21749029552632e-02 -3.90000000000000e-01 -3.26660720717949e+00 -8.82617771205128e-02 -4.00000000000000e-01 -3.21502773600000e+00 -2.57033551675000e-01 -4.10000000000000e-01 -3.16294146024390e+00 -4.13783376634146e-01 -4.20000000000000e-01 -3.11039224452381e+00 -5.58222077095238e-01 -4.30000000000000e-01 -3.05742353325581e+00 -6.90128867465116e-01 -4.40000000000000e-01 -3.00407830500000e+00 -8.09351477545455e-01 -4.50000000000000e-01 -2.95039903222222e+00 -9.15805889066667e-01 -4.60000000000000e-01 -2.89642764456522e+00 -1.00947568606522e+00 -4.70000000000000e-01 -2.84220549595745e+00 -1.09041102270213e+00 -4.80000000000000e-01 -2.78777333604167e+00 -1.15872716714583e+00 -4.90000000000000e-01 -2.73317128551020e+00 -1.21460261469388e+00 -5.00000000000000e-01 -2.67843880720000e+00 -1.25827765310000e+00 -5.10000000000000e-01 -2.62361469372549e+00 -1.29005124152941e+00 -5.20000000000000e-01 -2.56873705692308e+00 -1.31027802919231e+00 -5.30000000000000e-01 -2.51384329716981e+00 -1.31936661852830e+00 -5.40000000000000e-01 -2.45897011111111e+00 -1.31777493287037e+00 -5.50000000000000e-01 -2.40415347836364e+00 -1.30600721665455e+00 -5.60000000000000e-01 -2.34942864839286e+00 -1.28461066723214e+00 -5.70000000000000e-01 -2.29483015561404e+00 -1.25417052547368e+00 -5.80000000000000e-01 -2.24039179379310e+00 -1.21530716393103e+00 -5.90000000000000e-01 -2.18614664254237e+00 -1.16867070235593e+00 -6.00000000000000e-01 -2.13212704783333e+00 -1.11493742918333e+00 -6.10000000000000e-01 -2.07836463295082e+00 -1.05480506277049e+00 -6.20000000000000e-01 -2.02489031693548e+00 -9.88987962306452e-01 -6.30000000000000e-01 -1.97173428253968e+00 -9.18213257285714e-01 -6.40000000000000e-01 -1.91892601890625e+00 -8.43215658640625e-01 -6.50000000000000e-01 -1.86649431492308e+00 -7.64733301215385e-01 -6.60000000000000e-01 -1.81446724257576e+00 -6.83503147590909e-01 -6.70000000000000e-01 -1.76287218955224e+00 -6.00256636492537e-01 -6.80000000000000e-01 -1.71173586191176e+00 -5.15715678264706e-01 -6.90000000000000e-01 -1.66108426550725e+00 -4.30588081840580e-01 -7.00000000000000e-01 -1.61094272057143e+00 -3.45563705385714e-01 -7.10000000000000e-01 -1.56133586873239e+00 -2.61310866309859e-01 -7.20000000000000e-01 -1.51228766861111e+00 -1.78472677888889e-01 -7.30000000000000e-01 -1.46382140205479e+00 -9.76640279890411e-02 -7.40000000000000e-01 -1.41595965202703e+00 -1.94675695527027e-02 -7.50000000000000e-01 -1.36872431186667e+00 5.55686538706667e-02 -7.60000000000000e-01 -1.32213658144737e+00 1.26933623911842e-01 -7.70000000000000e-01 -1.27621695768831e+00 1.94155807272727e-01 -7.80000000000000e-01 -1.23098522514103e+00 2.56805179115385e-01 -7.90000000000000e-01 -1.18646044607595e+00 3.14494944050633e-01 -8.00000000000000e-01 -1.14266094826250e+00 3.66882947975000e-01 -8.10000000000000e-01 -1.09960431164198e+00 4.13672776493827e-01 -8.20000000000000e-01 -1.05730735340244e+00 4.54614538134146e-01 -8.30000000000000e-01 -1.01578611175904e+00 4.89505332493976e-01 -8.40000000000000e-01 -9.75055828464286e-01 5.18189406023810e-01 -8.50000000000000e-01 -9.35130930282353e-01 5.40557999905882e-01 -8.60000000000000e-01 -8.96025009348837e-01 5.56548896476744e-01 -8.70000000000000e-01 -8.57750802850575e-01 5.66145672597701e-01 -8.80000000000000e-01 -8.20320172068182e-01 5.69376669750000e-01 -8.90000000000000e-01 -7.83744080921348e-01 5.66313692674157e-01 -9.00000000000000e-01 -7.48032574366667e-01 5.57070449466667e-01 -9.10000000000000e-01 -7.13194756802198e-01 5.41800748000000e-01 -9.20000000000000e-01 -6.79238770695652e-01 5.20696464619565e-01 -9.30000000000000e-01 -6.46171775741935e-01 4.93985302935484e-01 -9.40000000000000e-01 -6.13999928808511e-01 4.61928362053191e-01 -9.50000000000000e-01 -5.82728364905263e-01 4.24817534842105e-01 -9.60000000000000e-01 -5.52361179489583e-01 3.82972759072917e-01 -9.70000000000000e-01 -5.22901433030928e-01 3.36738786144330e-01 -9.80000000000000e-01 -4.94351100908163e-01 2.86483072959184e-01 -9.90000000000000e-01 -4.66711043707071e-01 2.32592653151515e-01 -1.00000000000000e+00 -4.39981047050000e-01 1.75470138870000e-01 -1.01000000000000e+00 -4.14159793168317e-01 1.15530990029703e-01 -1.02000000000000e+00 -3.89244856000000e-01 5.32003522676471e-02 -1.03000000000000e+00 -3.65232713019417e-01 -1.10900784174757e-02 -1.04000000000000e+00 -3.42118771125000e-01 -7.69048241644231e-02 -1.05000000000000e+00 -3.19897201314286e-01 -1.43808082028571e-01 -1.06000000000000e+00 -2.98561130707547e-01 -2.11366989584906e-01 -1.07000000000000e+00 -2.78102594831776e-01 -2.79154270009346e-01 -1.08000000000000e+00 -2.58512580870370e-01 -3.46750562305556e-01 -1.09000000000000e+00 -2.39781034440367e-01 -4.13746666431193e-01 -1.10000000000000e+00 -2.21896708127273e-01 -4.79749031672727e-01 -1.11000000000000e+00 -2.04847411549550e-01 -5.44379315828829e-01 -1.12000000000000e+00 -1.88619972187500e-01 -6.07276996919643e-01 -1.13000000000000e+00 -1.73200364902655e-01 -6.68098408061947e-01 -1.14000000000000e+00 -1.58573374956140e-01 -7.26527844052632e-01 -1.15000000000000e+00 -1.44723016008696e-01 -7.82270763991304e-01 -1.16000000000000e+00 -1.31632493534483e-01 -8.35055965137931e-01 -1.17000000000000e+00 -1.19284226829060e-01 -8.84636525897436e-01 -1.18000000000000e+00 -1.07659687262712e-01 -9.30799416525424e-01 -1.19000000000000e+00 -9.67397464705883e-02 -9.73355841680672e-01 -1.20000000000000e+00 -8.65047125166667e-02 -1.01213999658333e+00 -1.21000000000000e+00 -7.69341005446281e-02 -1.04702271495868e+00 -1.22000000000000e+00 -6.80069220663934e-02 -1.07790252639344e+00 -1.23000000000000e+00 -5.97017897040650e-02 -1.10470060544715e+00 -1.24000000000000e+00 -5.19968032282258e-02 -1.12736991580645e+00 -1.25000000000000e+00 -4.48696582008000e-02 -1.14589550520000e+00 -1.26000000000000e+00 -3.82978360341270e-02 -1.16028166365079e+00 -1.27000000000000e+00 -3.22585222590551e-02 -1.17056080086614e+00 -1.28000000000000e+00 -2.67287075296875e-02 -1.17679659039063e+00 -1.29000000000000e+00 -2.16853208759690e-02 -1.17906738891473e+00 -1.30000000000000e+00 -1.71051948584615e-02 -1.17747779707692e+00 -1.31000000000000e+00 -1.29652264221374e-02 -1.17215746885496e+00 -1.32000000000000e+00 -9.24234812348485e-03 -1.16324616386364e+00 -1.33000000000000e+00 -5.91365862939850e-03 -1.15090882315789e+00 -1.34000000000000e+00 -2.95653342320896e-03 -1.13532520686567e+00 -1.35000000000000e+00 -3.48412385311111e-04 -1.11668201925926e+00 -1.36000000000000e+00 1.93267376169118e-03 -1.09518811088235e+00 -1.37000000000000e+00 3.90845227430657e-03 -1.07105545897810e+00 -1.38000000000000e+00 5.60031751311594e-03 -1.04450541000000e+00 -1.39000000000000e+00 7.02884768791367e-03 -1.01576778899281e+00 -1.40000000000000e+00 8.21452832714286e-03 -9.85073400571429e-01 -1.41000000000000e+00 9.17686574822695e-03 -9.52658248936170e-01 -1.42000000000000e+00 9.93488658028169e-03 -9.18756659154930e-01 -1.43000000000000e+00 1.05071878909091e-02 -8.83604145804196e-01 -1.44000000000000e+00 1.09110995229167e-02 -8.47429661666667e-01 -1.45000000000000e+00 1.11640165310345e-02 -8.10462975241379e-01 -1.46000000000000e+00 1.12817667623288e-02 -7.72921921506849e-01 -1.47000000000000e+00 1.12799665986395e-02 -7.35021085306123e-01 -1.48000000000000e+00 1.11732710527027e-02 -6.96965921689189e-01 -1.49000000000000e+00 1.09752778859060e-02 -6.58947912489933e-01 -1.50000000000000e+00 1.06994352433333e-02 -6.21157544753333e-01 -1.51000000000000e+00 1.03573439000000e-02 -5.83758743688742e-01 -1.52000000000000e+00 9.96102271052632e-03 -5.46921825065789e-01 -1.53000000000000e+00 9.52038565424837e-03 -5.10784478339869e-01 -1.54000000000000e+00 9.04561081558442e-03 -4.75488207727273e-01 -1.55000000000000e+00 8.54530052451613e-03 -4.41148650903226e-01 -1.56000000000000e+00 8.02772244358974e-03 -4.07875294743590e-01 -1.57000000000000e+00 7.50020273121019e-03 -3.75761513987261e-01 -1.58000000000000e+00 6.96920275759494e-03 -3.44885212734177e-01 -1.59000000000000e+00 6.44080666603774e-03 -3.15317640949686e-01 -1.60000000000000e+00 5.91982214456250e-03 -2.87107395856250e-01 -1.61000000000000e+00 5.41113354086956e-03 -2.60304246645963e-01 -1.62000000000000e+00 4.91808085253086e-03 -2.34931256086420e-01 -1.63000000000000e+00 4.44440553901841e-03 -2.11018007717791e-01 -1.64000000000000e+00 3.99218617585366e-03 -1.88566920786585e-01 -1.65000000000000e+00 3.56409652496970e-03 -1.67589437551515e-01 -1.66000000000000e+00 3.16116935632530e-03 -1.48072965150602e-01 -1.67000000000000e+00 2.78510685832335e-03 -1.30014076700599e-01 -1.68000000000000e+00 2.43610688285714e-03 -1.13389904619048e-01 -1.69000000000000e+00 2.11502743082840e-03 -9.81893268994083e-02 -1.70000000000000e+00 1.82138383047059e-03 -8.43715251823530e-02 -1.71000000000000e+00 1.55528140286550e-03 -7.19120815906433e-02 -1.72000000000000e+00 1.31570163575581e-03 -6.07489348837209e-02 -1.73000000000000e+00 1.10207835387283e-03 -5.08351397722543e-02 -1.74000000000000e+00 9.13039035574713e-04 -4.20967216942529e-02 -1.75000000000000e+00 7.47486357028571e-04 -3.44685669371429e-02 -1.76000000000000e+00 6.03839578636364e-04 -2.78705969363636e-02 -1.77000000000000e+00 4.80626126870057e-04 -2.22255799118644e-02 -1.78000000000000e+00 3.76170937955056e-04 -1.74516202460674e-02 -1.79000000000000e+00 2.88789510089385e-04 -1.34657654614525e-02 -1.80000000000000e+00 2.16793258194444e-04 -1.01873035588889e-02 -1.81000000000000e+00 1.58450583646409e-04 -7.53408067016575e-03 -1.82000000000000e+00 1.12108817087912e-04 -5.42833768824176e-03 -1.83000000000000e+00 7.61460763442623e-05 -3.79495007382514e-03 -1.84000000000000e+00 4.89706821315217e-05 -2.55993103543478e-03 -1.85000000000000e+00 2.92057637535135e-05 -1.66054458486486e-03 -1.86000000000000e+00 1.53336073946237e-05 -1.02695420489247e-03 -1.87000000000000e+00 6.30086758983957e-06 -6.11714049946524e-04 -1.88000000000000e+00 7.36456402340426e-07 -3.52344187670213e-04 -1.89000000000000e+00 -2.14369739523810e-06 -2.13716707724868e-04 -1.90000000000000e+00 -3.57435621189474e-06 -1.51816215268421e-04 -1.91000000000000e+00 -3.88346550287958e-06 -1.31549260298429e-04 -1.92000000000000e+00 -3.04044559833333e-06 -1.03210627317708e-04 -1.93000000000000e+00 -1.41694973191710e-06 -4.47426071632124e-05 -1.94000000000000e+00 5.02032975149485e-08 1.77408896628866e-06 -1.95000000000000e+00 2.31817521400000e-07 8.19198991435898e-06 -1.96000000000000e+00 5.82995934336735e-08 2.06019665183673e-06 -1.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l1.dat b/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l1.dat deleted file mode 100644 index 927fd2f95..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l1.dat +++ /dev/null @@ -1,600 +0,0 @@ -0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.00000000000000e-02 1.44438429160000e-01 1.20745801180000e-01 -2.00000000000000e-02 2.88605041935000e-01 2.41131420735000e-01 -3.00000000000000e-02 4.32228741233333e-01 3.60797732466667e-01 -4.00000000000000e-02 5.75039866325000e-01 4.79387718950000e-01 -5.00000000000000e-02 7.16770905600000e-01 5.96547520340000e-01 -6.00000000000000e-02 8.57157202450000e-01 7.11927476833333e-01 -7.00000000000000e-02 9.95937652742857e-01 8.25183162228571e-01 -8.00000000000000e-02 1.13285539092500e+00 9.35976406462500e-01 -9.00000000000000e-02 1.26765846344444e+00 1.04397630484444e+00 -1.00000000000000e-01 1.40010048700000e+00 1.14886021160000e+00 -1.10000000000000e-01 1.52994128918182e+00 1.25031471563636e+00 -1.20000000000000e-01 1.65694753083333e+00 1.34803659516667e+00 -1.30000000000000e-01 1.78089330638462e+00 1.44173375038462e+00 -1.40000000000000e-01 1.90156072228571e+00 1.53112610950000e+00 -1.50000000000000e-01 2.01874045000000e+00 1.61594650793333e+00 -1.60000000000000e-01 2.13223225300000e+00 1.69594153568750e+00 -1.70000000000000e-01 2.24184548552941e+00 1.77087235194118e+00 -1.80000000000000e-01 2.34739956216667e+00 1.84051546344444e+00 -1.90000000000000e-01 2.44872439636842e+00 1.90466346410526e+00 -2.00000000000000e-01 2.54566080605000e+00 1.96312573255000e+00 -2.10000000000000e-01 2.63806088685714e+00 2.01572908600000e+00 -2.20000000000000e-01 2.72578834945455e+00 2.06231838613636e+00 -2.30000000000000e-01 2.80871882213043e+00 2.10275709578261e+00 -2.40000000000000e-01 2.88674011608333e+00 2.13692778237500e+00 -2.50000000000000e-01 2.95975245372000e+00 2.16473256612000e+00 -2.60000000000000e-01 3.02766865926923e+00 2.18609351134615e+00 -2.70000000000000e-01 3.09041430985185e+00 2.20095295600000e+00 -2.80000000000000e-01 3.14792784821429e+00 2.20927377828571e+00 -2.90000000000000e-01 3.20016065613793e+00 2.21103959968966e+00 -3.00000000000000e-01 3.24707708870000e+00 2.20625491980000e+00 -3.10000000000000e-01 3.28865446838710e+00 2.19494518241935e+00 -3.20000000000000e-01 3.32488304093750e+00 2.17715677003125e+00 -3.30000000000000e-01 3.35576589060606e+00 2.15295692572727e+00 -3.40000000000000e-01 3.38131881852941e+00 2.12243360620588e+00 -3.50000000000000e-01 3.40157018285714e+00 2.08569525108571e+00 -3.60000000000000e-01 3.41656069888889e+00 2.04287048636111e+00 -3.70000000000000e-01 3.42634320594595e+00 1.99410774621622e+00 -3.80000000000000e-01 3.43098239789474e+00 1.93957482189474e+00 -3.90000000000000e-01 3.43055451461538e+00 1.87945833217949e+00 -4.00000000000000e-01 3.42514700700000e+00 1.81396312322500e+00 -4.10000000000000e-01 3.41485816463415e+00 1.74331159185366e+00 -4.20000000000000e-01 3.39979671452381e+00 1.66774293673810e+00 -4.30000000000000e-01 3.38008139000000e+00 1.58751233890698e+00 -4.40000000000000e-01 3.35584047159091e+00 1.50289007354545e+00 -4.50000000000000e-01 3.32721130311111e+00 1.41416055546667e+00 -4.60000000000000e-01 3.29433978130435e+00 1.32162132150000e+00 -4.70000000000000e-01 3.25737982531915e+00 1.22558195314894e+00 -4.80000000000000e-01 3.21649282833333e+00 1.12636294966667e+00 -4.90000000000000e-01 3.17184709918367e+00 1.02429456544898e+00 -5.00000000000000e-01 3.12361723280000e+00 9.19715492820000e-01 -5.10000000000000e-01 3.07198355039216e+00 8.12971662901961e-01 -5.20000000000000e-01 3.01713152134615e+00 7.04415002884615e-01 -5.30000000000000e-01 2.95925103056604e+00 5.94401865641509e-01 -5.40000000000000e-01 2.89853586351852e+00 4.83291886018518e-01 -5.50000000000000e-01 2.83518303909091e+00 3.71446524472727e-01 -5.60000000000000e-01 2.76939210875000e+00 2.59227522660714e-01 -5.70000000000000e-01 2.70136466894737e+00 1.46995801275439e-01 -5.80000000000000e-01 2.63130352603448e+00 3.51096230948276e-02 -5.90000000000000e-01 2.55941228033898e+00 -7.60763655728814e-02 -6.00000000000000e-01 2.48589453400000e+00 -1.86212888950000e-01 -6.10000000000000e-01 2.41095333147541e+00 -2.94957305049180e-01 -6.20000000000000e-01 2.33479070435484e+00 -4.01974637209677e-01 -6.30000000000000e-01 2.25760673253968e+00 -5.06939644126984e-01 -6.40000000000000e-01 2.17959933484375e+00 -6.09537311156250e-01 -6.50000000000000e-01 2.10096360415385e+00 -7.09464313092308e-01 -6.60000000000000e-01 2.02189104666667e+00 -8.06430675666667e-01 -6.70000000000000e-01 1.94256935268657e+00 -9.00160272074627e-01 -6.80000000000000e-01 1.86318189132353e+00 -9.90391902147059e-01 -6.90000000000000e-01 1.78390701130435e+00 -1.07688077149275e+00 -7.00000000000000e-01 1.70491772214286e+00 -1.15939912650000e+00 -7.10000000000000e-01 1.62638133619718e+00 -1.23773695550704e+00 -7.20000000000000e-01 1.54845903444444e+00 -1.31170282665278e+00 -7.30000000000000e-01 1.47130557589041e+00 -1.38112439972603e+00 -7.40000000000000e-01 1.39506877297297e+00 -1.44584939337838e+00 -7.50000000000000e-01 1.31988932346667e+00 -1.50574577386667e+00 -7.60000000000000e-01 1.24590057082895e+00 -1.56070206460526e+00 -7.70000000000000e-01 1.17322823781818e+00 -1.61062768064935e+00 -7.80000000000000e-01 1.10199022458974e+00 -1.65545309166667e+00 -7.90000000000000e-01 1.03229644024051e+00 -1.69512988278481e+00 -8.00000000000000e-01 9.64248667850000e-01 -1.72963071125000e+00 -8.10000000000000e-01 8.97940462691358e-01 -1.75894915987654e+00 -8.20000000000000e-01 8.33457083524390e-01 -1.78309948817073e+00 -8.30000000000000e-01 7.70875456409639e-01 -1.80211628457831e+00 -8.40000000000000e-01 7.10264170690476e-01 -1.81605401857143e+00 -8.50000000000000e-01 6.51683506329412e-01 -1.82498650011765e+00 -8.60000000000000e-01 5.95185491906977e-01 -1.82900624534884e+00 -8.70000000000000e-01 5.40813992379310e-01 -1.82822375597701e+00 -8.80000000000000e-01 4.88604825693182e-01 -1.82276671431818e+00 -8.90000000000000e-01 4.38585907033708e-01 -1.81277910000000e+00 -9.00000000000000e-01 3.90777419655556e-01 -1.79842023388889e+00 -9.10000000000000e-01 3.45192010868132e-01 -1.77986375395604e+00 -9.20000000000000e-01 3.01835011836957e-01 -1.75729653152174e+00 -9.30000000000000e-01 2.60704679677419e-01 -1.73091753161290e+00 -9.40000000000000e-01 2.21792460085106e-01 -1.70093662882979e+00 -9.50000000000000e-01 1.85083268821053e-01 -1.66757338231579e+00 -9.60000000000000e-01 1.50555790031250e-01 -1.63105578197917e+00 -9.70000000000000e-01 1.18182793237113e-01 -1.59161911360825e+00 -9.80000000000000e-01 8.79314274785714e-02 -1.54950448581633e+00 -9.90000000000000e-01 5.97635972797980e-02 -1.50495730464646e+00 -1.00000000000000e+00 3.36363204440000e-02 -1.45822631570000e+00 -1.01000000000000e+00 9.50207345900990e-03 -1.40956218613861e+00 -1.02000000000000e+00 -1.26908468970588e-02 -1.35921622931373e+00 -1.03000000000000e+00 -3.29979818834951e-02 -1.30743931378641e+00 -1.04000000000000e+00 -5.14784184673077e-02 -1.25448100807692e+00 -1.05000000000000e+00 -6.81941063552381e-02 -1.20058636685714e+00 -1.06000000000000e+00 -8.32097627839622e-02 -1.14599683547170e+00 -1.07000000000000e+00 -9.65924382710280e-02 -1.09094855168224e+00 -1.08000000000000e+00 -1.08411250500000e-01 -1.03567175027778e+00 -1.09000000000000e+00 -1.18737056275229e-01 -9.80389753119266e-01 -1.10000000000000e+00 -1.27641514509091e-01 -9.25315391272727e-01 -1.11000000000000e+00 -1.35197402072072e-01 -8.70653405450450e-01 -1.12000000000000e+00 -1.41478131116071e-01 -8.16598803250000e-01 -1.13000000000000e+00 -1.46557919362832e-01 -7.63337988637168e-01 -1.14000000000000e+00 -1.50509865175439e-01 -7.11041691728070e-01 -1.15000000000000e+00 -1.53407176060870e-01 -6.59870781252174e-01 -1.16000000000000e+00 -1.55322691465517e-01 -6.09974738887931e-01 -1.17000000000000e+00 -1.56328633632479e-01 -5.61491106521368e-01 -1.18000000000000e+00 -1.56494985288136e-01 -5.14540708364407e-01 -1.19000000000000e+00 -1.55890942739496e-01 -4.69233382537815e-01 -1.20000000000000e+00 -1.54584959466667e-01 -4.25668174716667e-01 -1.21000000000000e+00 -1.52642411867769e-01 -3.83926704520661e-01 -1.22000000000000e+00 -1.50126861278689e-01 -3.44078091598361e-01 -1.23000000000000e+00 -1.47100693065041e-01 -3.06180950048780e-01 -1.24000000000000e+00 -1.43623449467742e-01 -2.70279163346774e-01 -1.25000000000000e+00 -1.39751506104000e-01 -2.36402318088000e-01 -1.26000000000000e+00 -1.35540013103175e-01 -2.04570902484127e-01 -1.27000000000000e+00 -1.31041212157480e-01 -1.74792462102362e-01 -1.28000000000000e+00 -1.26303484406250e-01 -1.47060959359375e-01 -1.29000000000000e+00 -1.21374108596899e-01 -1.21362854232558e-01 -1.30000000000000e+00 -1.16296946338462e-01 -9.76727406615385e-02 -1.31000000000000e+00 -1.11112093526718e-01 -7.59544358572519e-02 -1.32000000000000e+00 -1.05858769227273e-01 -5.61656482787879e-02 -1.33000000000000e+00 -1.00571808120301e-01 -3.82533732729323e-02 -1.34000000000000e+00 -9.52831994253731e-02 -2.21577310447761e-02 -1.35000000000000e+00 -9.00242335333333e-02 -7.81351602592593e-03 -1.36000000000000e+00 -8.48205757500000e-02 4.85267547676471e-03 -1.37000000000000e+00 -7.96970758248175e-02 1.59177575700730e-02 -1.38000000000000e+00 -7.46761372971014e-02 2.54638360304348e-02 -1.39000000000000e+00 -6.97759839633093e-02 3.35761242215827e-02 -1.40000000000000e+00 -6.50147031407143e-02 4.03433000192857e-02 -1.41000000000000e+00 -6.04060032063830e-02 4.58555168014184e-02 -1.42000000000000e+00 -5.59623177147887e-02 5.02041393838028e-02 -1.43000000000000e+00 -5.16943885867133e-02 5.34826660769231e-02 -1.44000000000000e+00 -4.76094181902778e-02 5.57814402368056e-02 -1.45000000000000e+00 -4.37147653475862e-02 5.71944305124138e-02 -1.46000000000000e+00 -4.00139559123288e-02 5.78096507034247e-02 -1.47000000000000e+00 -3.65102656034014e-02 5.77164106523810e-02 -1.48000000000000e+00 -3.32048548601351e-02 5.70007738216216e-02 -1.49000000000000e+00 -3.00972993375839e-02 5.57438708382550e-02 -1.50000000000000e+00 -2.71866052940000e-02 5.40284514360000e-02 -1.51000000000000e+00 -2.44694845192053e-02 5.19258123549669e-02 -1.52000000000000e+00 -2.19428277388158e-02 4.95126093236842e-02 -1.53000000000000e+00 -1.96014246947712e-02 4.68512031686275e-02 -1.54000000000000e+00 -1.74401277883117e-02 4.40077714344156e-02 -1.55000000000000e+00 -1.54524962038710e-02 4.10375886896774e-02 -1.56000000000000e+00 -1.36318339416667e-02 3.79946370653846e-02 -1.57000000000000e+00 -1.19707395076433e-02 3.49265382949045e-02 -1.58000000000000e+00 -1.04615482822785e-02 3.18749240291139e-02 -1.59000000000000e+00 -9.09616019182390e-03 2.88792830949686e-02 -1.60000000000000e+00 -7.86645345187500e-03 2.59693635887500e-02 -1.61000000000000e+00 -6.76389384099379e-03 2.31762091180124e-02 -1.62000000000000e+00 -5.78033308907407e-03 2.05186258246914e-02 -1.63000000000000e+00 -4.90706943852761e-03 1.80191306963190e-02 -1.64000000000000e+00 -4.13627629884146e-03 1.56868608524390e-02 -1.65000000000000e+00 -3.45934789727273e-03 1.35359914484848e-02 -1.66000000000000e+00 -2.86904923656627e-03 1.15674649072289e-02 -1.67000000000000e+00 -2.35713230371258e-03 9.78754292754491e-03 -1.68000000000000e+00 -1.91712901988095e-03 8.19061991130952e-03 -1.69000000000000e+00 -1.54145302603550e-03 6.77551987100592e-03 -1.70000000000000e+00 -1.22428313752941e-03 5.53256681547059e-03 -1.71000000000000e+00 -9.58723752105263e-04 4.45479071660819e-03 -1.72000000000000e+00 -7.39498476918605e-04 3.53052007976744e-03 -1.73000000000000e+00 -5.60315662219653e-04 2.74913842537572e-03 -1.74000000000000e+00 -4.16534495971264e-04 2.09798396362069e-03 -1.75000000000000e+00 -3.02593791371429e-04 1.56419155742857e-03 -1.76000000000000e+00 -2.14494065295455e-04 1.13504892710227e-03 -1.77000000000000e+00 -1.47526707355932e-04 7.96842527175141e-04 -1.78000000000000e+00 -9.83050007921348e-05 5.37493963988764e-04 -1.79000000000000e+00 -6.30649031173184e-05 3.43848898508380e-04 -1.80000000000000e+00 -3.89872105477778e-05 2.04873407283333e-04 -1.81000000000000e+00 -2.33100490801105e-05 1.09279897662983e-04 -1.82000000000000e+00 -1.37318244538462e-05 4.72713004483516e-05 -1.83000000000000e+00 -8.51003236284153e-06 1.04997269469945e-05 -1.84000000000000e+00 -5.81855233750000e-06 -9.51805257554348e-06 -1.85000000000000e+00 -4.94792325718919e-06 -1.77010563735135e-05 -1.86000000000000e+00 -4.66244365698925e-06 -2.17504720311828e-05 -1.87000000000000e+00 -4.44909093705882e-06 -1.99727952021390e-05 -1.88000000000000e+00 -2.61398621537234e-06 -1.20015216590426e-05 -1.89000000000000e+00 -5.69229001111111e-07 -2.67306818269841e-06 -1.90000000000000e+00 2.72076817131579e-07 1.20919401610526e-06 -1.91000000000000e+00 1.89030552225131e-07 8.40110579895288e-07 -1.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l2.dat b/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l2.dat deleted file mode 100644 index b560bf644..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/pseudoAtomData/proj_l2.dat +++ /dev/null @@ -1,600 +0,0 @@ -0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.00000000000000e-02 2.79774988840000e-03 1.18169348640000e-03 -2.00000000000000e-02 1.11809226735000e-02 4.72122989675000e-03 -3.00000000000000e-02 2.51193183333333e-02 1.06019847353333e-02 -4.00000000000000e-02 4.45627055400000e-02 1.87962762030000e-02 -5.00000000000000e-02 6.94409746660000e-02 2.92654044000000e-02 -6.00000000000000e-02 9.96643518800000e-02 4.19597075200000e-02 -7.00000000000000e-02 1.35123674191429e-01 5.68186363114286e-02 -8.00000000000000e-02 1.75690725275000e-01 7.37708484237500e-02 -9.00000000000000e-02 2.21218631855556e-01 9.27343245366667e-02 -1.00000000000000e-01 2.71542320250000e-01 1.13616508440000e-01 -1.10000000000000e-01 3.26479032863636e-01 1.36314473472727e-01 -1.20000000000000e-01 3.85828903891667e-01 1.60715117816667e-01 -1.30000000000000e-01 4.49375593800000e-01 1.86695391461538e-01 -1.40000000000000e-01 5.16886981800000e-01 2.14122557521429e-01 -1.50000000000000e-01 5.88115915313333e-01 2.42854490666667e-01 -1.60000000000000e-01 6.62801015500000e-01 2.72740015543750e-01 -1.70000000000000e-01 7.40667537470588e-01 3.03619287682353e-01 -1.80000000000000e-01 8.21428283611111e-01 3.35324219550000e-01 -1.90000000000000e-01 9.04784569052632e-01 3.67678953910526e-01 -2.00000000000000e-01 9.90427235750000e-01 4.00500386490000e-01 -2.10000000000000e-01 1.07803771504762e+00 4.33598739776191e-01 -2.20000000000000e-01 1.16728913440909e+00 4.66778188954545e-01 -2.30000000000000e-01 1.25784746682609e+00 4.99837541217391e-01 -2.40000000000000e-01 1.34937271929167e+00 5.32570968291667e-01 -2.50000000000000e-01 1.44152015676000e+00 5.64768792440000e-01 -2.60000000000000e-01 1.53394155911538e+00 5.96218325423077e-01 -2.70000000000000e-01 1.62628650548148e+00 6.26704758111111e-01 -2.80000000000000e-01 1.71820368292857e+00 6.56012099535714e-01 -2.90000000000000e-01 1.80934221475862e+00 6.83924163103448e-01 -3.00000000000000e-01 1.89935300326667e+00 7.10225595900000e-01 -3.10000000000000e-01 1.98789008212903e+00 7.34702947967742e-01 -3.20000000000000e-01 2.07461197268750e+00 7.57145776031250e-01 -3.30000000000000e-01 2.15918303745455e+00 7.77347775393939e-01 -3.40000000000000e-01 2.24127483197059e+00 7.95107944264706e-01 -3.50000000000000e-01 2.32056743260000e+00 8.10231748942857e-01 -3.60000000000000e-01 2.39675075833333e+00 8.22532322583333e-01 -3.70000000000000e-01 2.46952585345946e+00 8.31831643270270e-01 -3.80000000000000e-01 2.53860614805263e+00 8.37961725947368e-01 -3.90000000000000e-01 2.60371867512821e+00 8.40765794897436e-01 -4.00000000000000e-01 2.66460524275000e+00 8.40099431025000e-01 -4.10000000000000e-01 2.72102355487805e+00 8.35831694219512e-01 -4.20000000000000e-01 2.77274827619048e+00 8.27846204857143e-01 -4.30000000000000e-01 2.81957202953488e+00 8.16042176395349e-01 -4.40000000000000e-01 2.86130632500000e+00 8.00335390863636e-01 -4.50000000000000e-01 2.89778241244444e+00 7.80659107088889e-01 -4.60000000000000e-01 2.92885205195652e+00 7.56964893717391e-01 -4.70000000000000e-01 2.95438819680851e+00 7.29223377382979e-01 -4.80000000000000e-01 2.97428558750000e+00 6.97424899375000e-01 -4.90000000000000e-01 2.98846125571429e+00 6.61580076510204e-01 -5.00000000000000e-01 2.99685489000000e+00 6.21720236680000e-01 -5.10000000000000e-01 2.99942915019608e+00 5.77897758254902e-01 -5.20000000000000e-01 2.99616988326923e+00 5.30186308173077e-01 -5.30000000000000e-01 2.98708610698113e+00 4.78680871339623e-01 -5.40000000000000e-01 2.97221006333333e+00 4.23497762444444e-01 -5.50000000000000e-01 2.95159704818182e+00 3.64774442200000e-01 -5.60000000000000e-01 2.92532507892857e+00 3.02669142714286e-01 -5.70000000000000e-01 2.89349467438596e+00 2.37360547280702e-01 -5.80000000000000e-01 2.85622815189655e+00 1.69047013841379e-01 -5.90000000000000e-01 2.81366926661017e+00 9.79460579745763e-02 -6.00000000000000e-01 2.76598231300000e+00 2.42933133050000e-02 -6.10000000000000e-01 2.71335137147541e+00 -5.16584141081967e-02 -6.20000000000000e-01 2.65597959709677e+00 -1.29640073162903e-01 -6.30000000000000e-01 2.59408774079365e+00 -2.09368083222222e-01 -6.40000000000000e-01 2.52791354000000e+00 -2.90545212484375e-01 -6.50000000000000e-01 2.45771040076923e+00 -3.72862180430769e-01 -6.60000000000000e-01 2.38374578454545e+00 -4.55999602909091e-01 -6.70000000000000e-01 2.30630029716418e+00 -5.39629218373134e-01 -6.80000000000000e-01 2.22566628985294e+00 -6.23415627426471e-01 -6.90000000000000e-01 2.14214601492754e+00 -7.07018532608696e-01 -7.00000000000000e-01 2.05605030614286e+00 -7.90094419600000e-01 -7.10000000000000e-01 1.96769713042254e+00 -8.72298375521127e-01 -7.20000000000000e-01 1.87740992916667e+00 -9.53286137305556e-01 -7.30000000000000e-01 1.78551614328767e+00 -1.03271593184932e+00 -7.40000000000000e-01 1.69234521716216e+00 -1.11025089216216e+00 -7.50000000000000e-01 1.59822720986667e+00 -1.18556078438667e+00 -7.60000000000000e-01 1.50349123618421e+00 -1.25832390921053e+00 -7.70000000000000e-01 1.40846380129870e+00 -1.32822910467532e+00 -7.80000000000000e-01 1.31346722179487e+00 -1.39497762974359e+00 -7.90000000000000e-01 1.21881808451899e+00 -1.45828498278481e+00 -8.00000000000000e-01 1.12482574883750e+00 -1.51788264050000e+00 -8.10000000000000e-01 1.03179090443210e+00 -1.57351970567901e+00 -8.20000000000000e-01 9.40004191121951e-01 -1.62496444914634e+00 -8.30000000000000e-01 8.49744889819277e-01 -1.67200573590361e+00 -8.40000000000000e-01 7.61279691976190e-01 -1.71445432261905e+00 -8.50000000000000e-01 6.74861554705882e-01 -1.75214401741176e+00 -8.60000000000000e-01 5.90728648255814e-01 -1.78493269255814e+00 -8.70000000000000e-01 5.09103401632184e-01 -1.81270314172414e+00 -8.80000000000000e-01 4.30191651943182e-01 -1.83536377340909e+00 -8.90000000000000e-01 3.54181901910112e-01 -1.85284913696629e+00 -9.00000000000000e-01 2.81244689411111e-01 -1.86512027477778e+00 -9.10000000000000e-01 2.11532072395604e-01 -1.87216489813187e+00 -9.20000000000000e-01 1.45177230945652e-01 -1.87399738423913e+00 -9.30000000000000e-01 8.22941881032258e-02 -1.87065859569892e+00 -9.40000000000000e-01 2.29776494755319e-02 -1.86221552212766e+00 -9.50000000000000e-01 -3.26970391926316e-02 -1.84876074873684e+00 -9.60000000000000e-01 -8.46738183989583e-02 -1.83041175593750e+00 -9.70000000000000e-01 -1.32915728659794e-01 -1.80731015628866e+00 -9.80000000000000e-01 -1.77404695193878e-01 -1.77962061673469e+00 -9.90000000000000e-01 -2.18140995000000e-01 -1.74752943303030e+00 -1.00000000000000e+00 -2.55142744250000e-01 -1.71124345410000e+00 -1.01000000000000e+00 -2.88445311148515e-01 -1.67098857089109e+00 -1.02000000000000e+00 -3.18100617872549e-01 -1.62700816127451e+00 -1.03000000000000e+00 -3.44176447116505e-01 -1.57956161786408e+00 -1.04000000000000e+00 -3.66755857759615e-01 -1.52892308682692e+00 -1.05000000000000e+00 -3.85935082219048e-01 -1.47537723419048e+00 -1.06000000000000e+00 -4.01823556905660e-01 -1.41921963556604e+00 -1.07000000000000e+00 -4.14542602878505e-01 -1.36075418149533e+00 -1.08000000000000e+00 -4.24224677407407e-01 -1.30029170379630e+00 -1.09000000000000e+00 -4.31012332779816e-01 -1.23814803036697e+00 -1.10000000000000e+00 -4.35054860900000e-01 -1.17463822954545e+00 -1.11000000000000e+00 -4.36509540081081e-01 -1.11007896738739e+00 -1.12000000000000e+00 -4.35539862678571e-01 -1.04478543294643e+00 -1.13000000000000e+00 -4.32316145150443e-01 -9.79072230176991e-01 -1.14000000000000e+00 -4.27008292131579e-01 -9.13241776578948e-01 -1.15000000000000e+00 -4.19790296565217e-01 -8.47591840252174e-01 -1.16000000000000e+00 -4.10838329534483e-01 -7.82412395853448e-01 -1.17000000000000e+00 -4.00329632222222e-01 -7.17983833470086e-01 -1.18000000000000e+00 -3.88436338559322e-01 -6.54567985940678e-01 -1.19000000000000e+00 -3.75330706747899e-01 -5.92416228521008e-01 -1.20000000000000e+00 -3.61185012100000e-01 -5.31769047883333e-01 -1.21000000000000e+00 -3.46162713239669e-01 -4.72843658123967e-01 -1.22000000000000e+00 -3.30422986065574e-01 -4.15841031827869e-01 -1.23000000000000e+00 -3.14122753943089e-01 -3.60948535243902e-01 -1.24000000000000e+00 -2.97410335048387e-01 -3.08331456854839e-01 -1.25000000000000e+00 -2.80424267784000e-01 -2.58132404128000e-01 -1.26000000000000e+00 -2.63299976634921e-01 -2.10479870984127e-01 -1.27000000000000e+00 -2.46163448685039e-01 -1.65480286551181e-01 -1.28000000000000e+00 -2.29128052140625e-01 -1.23215492273438e-01 -1.29000000000000e+00 -2.12303799666667e-01 -8.37535420620155e-02 -1.30000000000000e+00 -1.95789110300000e-01 -4.71394745069231e-02 -1.31000000000000e+00 -1.79670017900763e-01 -1.33962339343511e-02 -1.32000000000000e+00 -1.64029263856061e-01 1.74665143075758e-02 -1.33000000000000e+00 -1.48934889015038e-01 4.54626316556391e-02 -1.34000000000000e+00 -1.34445653843284e-01 7.06225748335821e-02 -1.35000000000000e+00 -1.20616811281481e-01 9.29902244518518e-02 -1.36000000000000e+00 -1.07486087323529e-01 1.12630466573529e-01 -1.37000000000000e+00 -9.50878071824817e-02 1.29619095956204e-01 -1.38000000000000e+00 -8.34476326376812e-02 1.44046923644928e-01 -1.39000000000000e+00 -7.25792749712230e-02 1.56016595115108e-01 -1.40000000000000e+00 -6.24939700021429e-02 1.65642218421429e-01 -1.41000000000000e+00 -5.31910003794326e-02 1.73046998297872e-01 -1.42000000000000e+00 -4.46653606035211e-02 1.78361780091549e-01 -1.43000000000000e+00 -3.69059348202797e-02 1.81727193174825e-01 -1.44000000000000e+00 -2.98941405777778e-02 1.83283442076389e-01 -1.45000000000000e+00 -2.36086547434483e-02 1.83183033462069e-01 -1.46000000000000e+00 -1.80215248541096e-02 1.81572197993151e-01 -1.47000000000000e+00 -1.31023735761905e-02 1.78604641816327e-01 -1.48000000000000e+00 -8.81659104324324e-03 1.74432571074324e-01 -1.49000000000000e+00 -5.12779587845638e-03 1.69202657248322e-01 -1.50000000000000e+00 -1.99596515013333e-03 1.63069522586667e-01 -1.51000000000000e+00 6.18136323264901e-04 1.56167980350993e-01 -1.52000000000000e+00 2.75803346368421e-03 1.48648219578947e-01 -1.53000000000000e+00 4.46398349339869e-03 1.40633650398693e-01 -1.54000000000000e+00 5.77976439415584e-03 1.32259324240260e-01 -1.55000000000000e+00 6.74603035032258e-03 1.23639845793548e-01 -1.56000000000000e+00 7.40421604487179e-03 1.14889846211538e-01 -1.57000000000000e+00 7.79411653949044e-03 1.06112580840764e-01 -1.58000000000000e+00 7.95301438481013e-03 9.74003113607595e-02 -1.59000000000000e+00 7.91861854654088e-03 8.88425503522012e-02 -1.60000000000000e+00 7.72284827250000e-03 8.05087101562500e-02 -1.61000000000000e+00 7.40018601863354e-03 7.24725519503105e-02 -1.62000000000000e+00 6.97653758888889e-03 6.47813906543210e-02 -1.63000000000000e+00 6.48217780122699e-03 5.74918154889571e-02 -1.64000000000000e+00 5.93683770371951e-03 5.06307683579268e-02 -1.65000000000000e+00 5.36582858381818e-03 4.42369767848485e-02 -1.66000000000000e+00 4.78294559644578e-03 3.83194499728916e-02 -1.67000000000000e+00 4.20804408293413e-03 3.28991502101796e-02 -1.68000000000000e+00 3.64955390404762e-03 2.79701196720238e-02 -1.69000000000000e+00 3.12161505177515e-03 2.35363356118343e-02 -1.70000000000000e+00 2.62833490047059e-03 1.95806245864706e-02 -1.71000000000000e+00 2.17847799801170e-03 1.60921797912281e-02 -1.72000000000000e+00 1.77290999610465e-03 1.30461817395349e-02 -1.73000000000000e+00 1.41576964930636e-03 1.04201898393064e-02 -1.74000000000000e+00 1.10551266166667e-03 8.18451525804598e-03 -1.75000000000000e+00 8.42403637942857e-04 6.30827992171429e-03 -1.76000000000000e+00 6.23303679886364e-04 4.75940470647727e-03 -1.77000000000000e+00 4.45563857367232e-04 3.50222041367232e-03 -1.78000000000000e+00 3.05132389977528e-04 2.50419582078652e-03 -1.79000000000000e+00 1.97581580871508e-04 1.72882609435754e-03 -1.80000000000000e+00 1.18449565650000e-04 1.14446776661111e-03 -1.81000000000000e+00 6.27468384088398e-05 7.17758501049724e-04 -1.82000000000000e+00 2.59326873967033e-05 4.18773702439560e-04 -1.83000000000000e+00 3.62784606043716e-06 2.20908095163934e-04 -1.84000000000000e+00 -8.56992957500000e-06 9.65075458478261e-05 -1.85000000000000e+00 -1.34600164821622e-05 2.85066417102703e-05 -1.86000000000000e+00 -1.51039909666667e-05 -7.87024638655914e-06 -1.87000000000000e+00 -1.42448769128342e-05 -1.93147174812834e-05 -1.88000000000000e+00 -1.44741523473404e-05 -2.57326443138298e-05 -1.89000000000000e+00 -1.37028754333333e-05 -2.44198507677249e-05 -1.90000000000000e+00 -9.36708302052632e-06 -1.65116926221053e-05 -1.91000000000000e+00 -3.25214142858639e-06 -5.84025995863874e-06 -1.92000000000000e+00 6.03660989270833e-07 1.04435356177083e-06 -1.93000000000000e+00 7.68009578134715e-07 1.32868207927461e-06 -1.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.01000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.02000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.03000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.04000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.05000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.06000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.07000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.08000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.09000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.10000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.11000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.12000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.13000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.14000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.15000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.16000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.17000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.18000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.19000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.20000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.21000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.22000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.23000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.24000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.25000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.26000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.27000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.28000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.29000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.30000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.31000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.32000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.33000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.34000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.35000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.36000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.37000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.38000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.39000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.40000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.41000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.42000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.43000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.44000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.45000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.46000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.47000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.48000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.49000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.50000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.51000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.52000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.53000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.54000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.55000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.56000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.57000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.58000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.59000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.60000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.61000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.62000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.63000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.64000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.65000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.66000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.67000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.68000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.69000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.70000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.71000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.72000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.73000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.74000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.75000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.76000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.77000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.78000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.79000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.80000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.81000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.82000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.83000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.84000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.85000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.86000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.87000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.88000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.89000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.90000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.91000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.92000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.93000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.94000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.95000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.96000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.97000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.98000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -5.99000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi32.inp b/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi32.inp deleted file mode 100644 index b2c4d756c..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi32.inp +++ /dev/null @@ -1,525 +0,0 @@ -2.15517241379310e-04 3.44498511992821e-07 -2.20840517241380e-04 3.61726913582449e-07 -2.26295278017240e-04 3.79816909086132e-07 -2.31884771384270e-04 3.98811586893046e-07 -2.37612325237460e-04 4.18756211852096e-07 -2.43481349670820e-04 4.39698270219505e-07 -2.49495339007690e-04 4.61687643536257e-07 -2.55657873881180e-04 4.84776708204032e-07 -2.61972623366050e-04 5.09020459928109e-07 -2.68443347163190e-04 5.34476644753758e-07 -2.75073897838120e-04 5.61205896610583e-07 -2.81868223114720e-04 5.89271881735774e-07 -2.88830368225660e-04 6.18741450320158e-07 -2.95964478320830e-04 6.49684795737655e-07 -3.03274800935350e-04 6.82175621738031e-07 -3.10765688518460e-04 7.16291318000788e-07 -3.18441601024860e-04 7.52113144468748e-07 -3.26307108570180e-04 7.89726424899680e-07 -3.34366894151860e-04 8.29220750097958e-07 -3.42625756437410e-04 8.70690191309235e-07 -3.51088612621420e-04 9.14233524287501e-07 -3.59760501353160e-04 9.59954464567227e-07 -3.68646585736590e-04 1.00796191450157e-06 -3.77752156404280e-04 1.05837022265517e-06 -3.87082634667470e-04 1.11129945616863e-06 -3.96643575743750e-04 1.16687568674422e-06 -4.06440672064620e-04 1.22523129093349e-06 -4.16479756664620e-04 1.28650526544225e-06 -4.26766806654240e-04 1.35084355820383e-06 -4.37307946778600e-04 1.41839941600911e-06 -4.48109453064030e-04 1.48933374952145e-06 -4.59177756554710e-04 1.56381551654590e-06 -4.70519447141610e-04 1.64202212446546e-06 -4.82141277486010e-04 1.72413985280300e-06 -4.94050167039910e-04 1.81036429691541e-06 -5.06253206165800e-04 1.90090083387640e-06 -5.18757660358090e-04 1.99596511165824e-06 -5.31570974568940e-04 2.09578356277637e-06 -5.44700777640790e-04 2.20059394362215e-06 -5.58154886848520e-04 2.31064590076700e-06 -5.71941312553680e-04 2.42620156558521e-06 -5.86068262973750e-04 2.54753617861709e-06 -6.00544149069200e-04 2.67493874515160e-06 -6.15377589551210e-04 2.80871272359792e-06 -6.30577416013130e-04 2.94917674827935e-06 -6.46152678188650e-04 3.09666538837484e-06 -6.62112649339910e-04 3.25152994481347e-06 -6.78466831778610e-04 3.41413928702112e-06 -6.95224962523540e-04 3.58488073151259e-06 -7.12397019097870e-04 3.76416096441948e-06 -7.29993225469590e-04 3.95240701015422e-06 -7.48024058138690e-04 4.15006724851439e-06 -7.66500252374710e-04 4.35761248265142e-06 -7.85432808608370e-04 4.57553706044716e-06 -8.04832998980990e-04 4.80436005196853e-06 -8.24712374055830e-04 5.04462648580396e-06 -8.45082769695000e-04 5.29690864722820e-06 -8.65956314106470e-04 5.56180744128420e-06 -8.87345435064900e-04 5.83995382403245e-06 -9.09262867311000e-04 6.13201030537151e-06 -9.31721660133590e-04 6.43867252701290e-06 -9.54735185138880e-04 6.76067091936732e-06 -9.78317144211820e-04 7.09877244128560e-06 -1.00248157767380e-03 7.45378240680301e-06 -1.02724287264240e-03 7.82654640322880e-06 -1.05261577159670e-03 8.21795230516250e-06 -1.07861538115510e-03 8.62893238921655e-06 -1.10525718106960e-03 9.06046555449287e-06 -1.13255703344200e-03 9.51357965410118e-06 -1.16053119216810e-03 9.98935394326204e-06 -1.18919631261460e-03 1.04889216498415e-05 -1.21856946153620e-03 1.10134726734117e-05 -1.24866812723610e-03 1.15642564192981e-05 -1.27951022997890e-03 1.21425847743337e-05 -1.31111413265940e-03 1.27498352314227e-05 -1.34349865173600e-03 1.33874541703495e-05 -1.37668306843390e-03 1.40569603026357e-05 -1.41068714022420e-03 1.47599482886750e-05 -1.44553111258780e-03 1.54980925357207e-05 -1.48123573106870e-03 1.62731511858048e-05 -1.51782225362610e-03 1.70869703030582e-05 -1.55531246329070e-03 1.79414882704193e-05 -1.59372868113390e-03 1.88387404061912e-05 -1.63309377955790e-03 1.97808638114347e-05 -1.67343119591300e-03 2.07701024597548e-05 -1.71476494645210e-03 2.18088125415804e-05 -1.75711964062940e-03 2.28994680756707e-05 -1.80052049575300e-03 2.40446668012015e-05 -1.84499335199810e-03 2.52471363644697e-05 -1.89056468779240e-03 2.65097408149302e-05 -1.93726163558090e-03 2.78354874260360e-05 -1.98511199797980e-03 2.92275338571227e-05 -2.03414426432990e-03 3.06891956733766e-05 -2.08438762765880e-03 3.22239542417893e-05 -2.13587200206200e-03 3.38354650218938e-05 -2.18862804051290e-03 3.55275662710256e-05 -2.24268715311360e-03 3.73042881847994e-05 -2.29808152579550e-03 3.91698624945933e-05 -2.35484413948260e-03 4.11287325448477e-05 -2.41300878972790e-03 4.31855638741792e-05 -2.47261010683410e-03 4.53452553254983e-05 -2.53368357647290e-03 4.76129507115153e-05 -2.59626556081180e-03 4.99940510634955e-05 -2.66039332016390e-03 5.24942274922740e-05 -2.72610503517190e-03 5.51194346922458e-05 -2.79343982954070e-03 5.78759251203891e-05 -2.86243779333030e-03 6.07702638840849e-05 -2.93314000682560e-03 6.38093443731165e-05 -3.00558856499420e-03 6.70004046730889e-05 -3.07982660254950e-03 7.03510447992202e-05 -3.15589831963250e-03 7.38692447915739e-05 -3.23384900812740e-03 7.75633837147317e-05 -3.31372507862820e-03 8.14422596070530e-05 -3.39557408807030e-03 8.55151104270319e-05 -3.47944476804560e-03 8.97916360464686e-05 -3.56538705381630e-03 9.42820213427913e-05 -3.65345211404560e-03 9.89969604454095e-05 -3.74369238126250e-03 1.03947682193711e-04 -3.83616158307970e-03 1.09145976867229e-04 -3.93091477418180e-03 1.14604224251478e-04 -4.02800836910410e-03 1.20335423106156e-04 -4.12750017582090e-03 1.26353222105701e-04 -4.22944943016370e-03 1.32671952325722e-04 -4.33391683108880e-03 1.39306661352454e-04 -4.44096457681670e-03 1.46273149096233e-04 -4.55065640186400e-03 1.53588005394013e-04 -4.66305761499010e-03 1.61268649490209e-04 -4.77823513808030e-03 1.69333371489614e-04 -4.89625754599090e-03 1.77801375880653e-04 -5.01719510737690e-03 1.86692827232382e-04 -5.14111982652910e-03 1.96028898173532e-04 -5.26810548624440e-03 2.05831819767474e-04 -5.39822769175460e-03 2.16124934402440e-04 -5.53156391574090e-03 2.26932751322546e-04 -5.66819354445970e-03 2.38281004931183e-04 -5.80819792500790e-03 2.50196716004753e-04 -5.95166041375560e-03 2.62708255962133e-04 -6.09866642597530e-03 2.75845414341721e-04 -6.24930348669690e-03 2.89639469645986e-04 -6.40366128281830e-03 3.04123263721249e-04 -6.56183171650400e-03 3.19331279848683e-04 -6.72390895990160e-03 3.35299724731058e-04 -6.88998951121120e-03 3.52066614569385e-04 -7.06017225213810e-03 3.69671865432717e-04 -7.23455850676590e-03 3.88157388134779e-04 -7.41325210188300e-03 4.07567187841332e-04 -7.59635942879950e-03 4.27947468643628e-04 -7.78398950669090e-03 4.49346743344626e-04 -7.97625404750610e-03 4.71815948716862e-04 -8.17326752247950e-03 4.95408566503894e-04 -8.37514723028480e-03 5.20180750450205e-04 -8.58201336687280e-03 5.46191459658965e-04 -8.79398909703460e-03 5.73502598591277e-04 -9.01120062773130e-03 6.02179164036498e-04 -9.23377728323630e-03 6.32289399398826e-04 -9.46185158213220e-03 6.63904956662988e-04 -9.69555931621090e-03 6.97101066418857e-04 -9.93503963132130e-03 7.31956716344187e-04 -1.01804351102150e-02 7.68554838563561e-04 -1.04318918574370e-02 8.06982506322741e-04 -1.06895595863160e-02 8.47331140438047e-04 -1.09535917080980e-02 8.89696726004479e-04 -1.12241454232880e-02 9.34180039867518e-04 -1.15013818152430e-02 9.80886889390398e-04 -1.17854659460800e-02 1.02992836307328e-03 -1.20765669549480e-02 1.08142109360741e-03 -1.23748581587350e-02 1.13548753397666e-03 -1.26805171552560e-02 1.19225624724734e-03 -1.29937259289910e-02 1.25186221071966e-03 -1.33146709594370e-02 1.31444713514393e-03 -1.36435433321350e-02 1.38015979974165e-03 -1.39805388524390e-02 1.44915640380424e-03 -1.43258581620940e-02 1.52160093568180e-03 -1.46797068586970e-02 1.59766556000995e-03 -1.50422956181070e-02 1.67753102406670e-03 -1.54138403198750e-02 1.76138708419027e-03 -1.57945621757750e-02 1.84943295323637e-03 -1.61846878615170e-02 1.94187777009437e-03 -1.65844496516970e-02 2.03894109233826e-03 -1.69940855580930e-02 2.14085341312867e-03 -1.74138394713780e-02 2.24785670354164e-03 -1.78439613063210e-02 2.36020498155374e-03 -1.82847071505880e-02 2.47816490896546e-03 -1.87363394172070e-02 2.60201641761085e-03 -1.91991270008120e-02 2.73205336625663e-03 -1.96733454377320e-02 2.86858422966485e-03 -2.01592770700440e-02 3.01193282135427e-03 -2.06572112136740e-02 3.16243905166956e-03 -2.11674443306520e-02 3.32045972283783e-03 -2.16902802056190e-02 3.48636936276776e-03 -2.22260301266980e-02 3.66056109942438e-03 -2.27750130708270e-02 3.84344757769509e-03 -2.33375558936770e-02 4.03546192074330e-03 -2.39139935242510e-02 4.23705873793840e-03 -2.45046691643000e-02 4.44871518153320e-03 -2.51099344926580e-02 4.67093205436215e-03 -2.57301498746260e-02 4.90423497092219e-03 -2.63656845765300e-02 5.14917557429937e-03 -2.70169169855700e-02 5.40633281151448e-03 -2.76842348351130e-02 5.67631426994679e-03 -2.83680354355410e-02 5.95975757762993e-03 -2.90687259107990e-02 6.25733187029938e-03 -2.97867234407950e-02 6.56973932820243e-03 -3.05224555097830e-02 6.89771678578742e-03 -3.12763601608750e-02 7.24203741751525e-03 -3.20488862568480e-02 7.60351250315075e-03 -3.28404937473920e-02 7.98299327601400e-03 -3.36516539429530e-02 8.38137285780551e-03 -3.44828497953440e-02 8.79958828373057e-03 -3.53345761852890e-02 9.23862262178255e-03 -3.62073402170660e-02 9.69950719017074e-03 -3.71016615204270e-02 1.01833238769998e-02 -3.80180725599820e-02 1.06912075664386e-02 -3.89571189522130e-02 1.12243486757311e-02 -3.99193597903330e-02 1.17839958075284e-02 -4.09053679771540e-02 1.23714585221360e-02 -4.19157305661900e-02 1.29881102343727e-02 -4.29510491111750e-02 1.36353912398595e-02 -4.40119400242210e-02 1.43148118756306e-02 -4.50990349428190e-02 1.50279558200683e-02 -4.62129811059070e-02 1.57764835372196e-02 -4.73544417392220e-02 1.65621358706303e-02 -4.85240964501810e-02 1.73867377918610e-02 -4.97226416325010e-02 1.82522023088983e-02 -5.09507908808230e-02 1.91605345396546e-02 -5.22092754155800e-02 2.01138359557491e-02 -5.34988445183450e-02 2.11143088017080e-02 -5.48202659779480e-02 2.21642606946410e-02 -5.61743265476030e-02 2.32661094093236e-02 -5.75618324133290e-02 2.44223878534654e-02 -5.89836096739380e-02 2.56357492377364e-02 -6.04405048328840e-02 2.69089724448335e-02 -6.19333853022570e-02 2.82449676015781e-02 -6.34631399192220e-02 2.96467818576249e-02 -6.50306794752270e-02 3.11176053738540e-02 -6.66369372582650e-02 3.26607775230510e-02 -6.82828696085440e-02 3.42797933046946e-02 -6.99694564878750e-02 3.59783099750266e-02 -7.16977020631260e-02 3.77601538926053e-02 -7.34686353040850e-02 3.96293275785649e-02 -7.52833105960960e-02 4.15900169896097e-02 -7.71428083678200e-02 4.36465990004539e-02 -7.90482357345050e-02 4.58036490908683e-02 -8.10007271571470e-02 4.80659492307752e-02 -8.30014451179280e-02 5.04384959549028e-02 -8.50515808123410e-02 5.29265086162635e-02 -8.71523548584060e-02 5.55354378052662e-02 -8.93050180234090e-02 5.82709739185007e-02 -9.15108519685870e-02 6.11390558580818e-02 -9.37711700122110e-02 6.41458798389837e-02 -9.60873179115130e-02 6.72979082779019e-02 -9.84606746639270e-02 7.06018787328473e-02 -1.00892653328130e-01 7.40648128578680e-02 -1.03384701865330e-01 7.76940253319737e-02 -1.05938304001400e-01 8.14971327153463e-02 -1.08554980110240e-01 8.54820621795164e-02 -1.11236288118960e-01 8.96570600508379e-02 -1.13983824435500e-01 9.40307000985739e-02 -1.16799224899060e-01 9.86118914903664e-02 -1.19684165754060e-01 1.03409886327934e-01 -1.22640364648190e-01 1.08434286665343e-01 -1.25669581655000e-01 1.13695050900780e-01 -1.28773620321880e-01 1.19202499419595e-01 -1.31954328743830e-01 1.24967319353061e-01 -1.35213600663800e-01 1.31000568301619e-01 -1.38553376600200e-01 1.37313676855318e-01 -1.41975645002220e-01 1.43918449726004e-01 -1.45482443433780e-01 1.50827065286395e-01 -1.49075859786590e-01 1.58052073290403e-01 -1.52758033523320e-01 1.65606390525936e-01 -1.56531156951350e-01 1.73503294127456e-01 -1.60397476528040e-01 1.81756412248970e-01 -1.64359294198290e-01 1.90379711769999e-01 -1.68418968764980e-01 1.99387482677436e-01 -1.72578917293480e-01 2.08794318733476e-01 -1.76841616550630e-01 2.18615094006837e-01 -1.81209604479430e-01 2.28864934807784e-01 -1.85685481710070e-01 2.39559186530498e-01 -1.90271913108310e-01 2.50713374866821e-01 -1.94971629362080e-01 2.62343160814514e-01 -1.99787428607330e-01 2.74464288861117e-01 -2.04722178093930e-01 2.87092527681795e-01 -2.09778815892850e-01 3.00243602645441e-01 -2.14960352645400e-01 3.13933119380604e-01 -2.20269873355740e-01 3.28176477609489e-01 -2.25710539227630e-01 3.42988774417642e-01 -2.31285589546550e-01 3.58384696088085e-01 -2.36998343608350e-01 3.74378397594265e-01 -2.42852202695480e-01 3.90983368816935e-01 -2.48850652102060e-01 4.08212286527856e-01 -2.54997263208980e-01 4.26076851170314e-01 -2.61295695610240e-01 4.44587607465193e-01 -2.67749699291810e-01 4.63753747884744e-01 -2.74363116864320e-01 4.83582898066917e-01 -2.81139885850870e-01 5.04080883295811e-01 -2.88084041031390e-01 5.25251475252120e-01 -2.95199716844860e-01 5.47096118346233e-01 -3.02491149850930e-01 5.69613635091547e-01 -3.09962681252250e-01 5.92799910163108e-01 -3.17618759479180e-01 6.16647553021151e-01 -3.25463942838310e-01 6.41145539271602e-01 -3.33502902226420e-01 6.66278831289993e-01 -3.41740423911410e-01 6.92027979061900e-01 -3.50181412382020e-01 7.18368702700013e-01 -3.58830893267860e-01 7.45271458693557e-01 -3.67694016331580e-01 7.72700992638558e-01 -3.76776058534970e-01 8.00615881995120e-01 -3.86082427180780e-01 8.28968073329090e-01 -3.95618663132140e-01 8.57702419522213e-01 -4.05390444111510e-01 8.86756223584140e-01 -4.15403588081060e-01 9.16058796969044e-01 -4.25664056706670e-01 9.45531041685257e-01 -4.36177958907320e-01 9.75085066979441e-01 -4.46951554492330e-01 1.00462385296032e+00 -4.57991257888290e-01 1.03404097517506e+00 -4.69303641958130e-01 1.06322040583058e+00 -4.80895441914500e-01 1.09203640901346e+00 -4.92773559329790e-01 1.12035354884530e+00 -5.04945066245230e-01 1.14802683093842e+00 -5.17417209381490e-01 1.17490199869575e+00 -5.30197414453210e-01 1.20081600681673e+00 -5.43293290590210e-01 1.22559769469627e+00 -5.56712634867780e-01 1.24906868209038e+00 -5.70463436949020e-01 1.27104450830392e+00 -5.84553883841660e-01 1.29133603405961e+00 -5.98992364772550e-01 1.30975112195162e+00 -6.13787476182430e-01 1.32609660679768e+00 -6.28948026844140e-01 1.34018056111834e+00 -6.44483043107190e-01 1.35181485326668e+00 -6.60401774271930e-01 1.36081798632572e+00 -6.76713698096450e-01 1.36701819478479e+00 -6.93428526439430e-01 1.37025676328938e+00 -7.10556211042490e-01 1.37039151765091e+00 -7.28106949455240e-01 1.36730042316478e+00 -7.46091191106780e-01 1.36088520964616e+00 -7.64519643527120e-01 1.35107492716485e+00 -7.83403278722240e-01 1.33782932213192e+00 -8.02753339706680e-01 1.32114191121885e+00 -8.22581347197430e-01 1.30104262176983e+00 -8.42899106473210e-01 1.27759986314878e+00 -8.63718714403100e-01 1.25092189511220e+00 -8.85052566648850e-01 1.22115736793023e+00 -9.06913365045080e-01 1.18849492547177e+00 -9.29314125161690e-01 1.15316178731228e+00 -9.52268184053190e-01 1.11542125902977e+00 -9.75789208199300e-01 1.07556916052789e+00 -9.99891201641820e-01 1.03392920895851e+00 -1.02458851432240e+00 9.90847443373204e-01 -1.04989585062610e+00 9.46685829641712e-01 -1.07582827813660e+00 9.01815232888675e-01 -1.10240123660660e+00 8.56607986893178e-01 -1.12963054715080e+00 8.11430321726814e-01 -1.15753242166540e+00 7.66634929005925e-01 -1.18612347248050e+00 7.22553945945286e-01 -1.21542072225080e+00 6.79492623620674e-01 -1.24544161409040e+00 6.37723938627050e-01 -1.27620402195840e+00 5.97484211217817e-01 -1.30772626130080e+00 5.58970060065821e-01 -1.34002709995490e+00 5.22336579772056e-01 -1.37312576932380e+00 4.87696789818649e-01 -1.40704197582610e+00 4.55122267800300e-01 -1.44179591262900e+00 4.24644834398593e-01 -1.47740827167090e+00 3.96259120195368e-01 -1.51390025598120e+00 3.69925827286831e-01 -1.55129359230390e+00 3.45575504108000e-01 -1.58961054403390e+00 3.23112680159441e-01 -1.62887392447150e+00 3.02420256109133e-01 -1.66910711040590e+00 2.83364108328478e-01 -1.71033405603300e+00 2.65797935133544e-01 -1.75257930721700e+00 2.49568428670854e-01 -1.79586801610520e+00 2.34520877969046e-01 -1.84022595610300e+00 2.20505263797892e-01 -1.88567953721880e+00 2.07382757761986e-01 -1.93225582178810e+00 1.95032262363564e-01 -1.97998254058630e+00 1.83356108842641e-01 -2.02888810933870e+00 1.72283643907890e-01 -2.07900164563940e+00 1.61771579775538e-01 -2.13035298628670e+00 1.51793329556129e-01 -2.18297270504800e+00 1.42327461219067e-01 -2.23689213086270e+00 1.33353472629704e-01 -2.29214336649500e+00 1.24851305683354e-01 -2.34875930764740e+00 1.16801379553125e-01 -2.40677366254630e+00 1.09184617596822e-01 -2.46622097201120e+00 1.01982468322436e-01 -2.52713663001980e+00 9.51769208620689e-02 -2.58955690478130e+00 8.87505154328863e-02 -2.65351896032940e+00 8.26863492709444e-02 -2.71906087864960e+00 7.69680785120588e-02 -2.78622168235220e+00 7.15799164683335e-02 -2.85504135790630e+00 6.65066287156327e-02 -2.92556087944660e+00 6.17335253728931e-02 -2.99782223316890e+00 5.72464509241369e-02 -3.07186844232820e+00 5.30317719141681e-02 -3.14774359285370e+00 4.90763628413205e-02 -3.22549285959720e+00 4.53675905770612e-02 -3.30516253322930e+00 4.18932976603889e-02 -3.38680004780000e+00 3.86417848409185e-02 -3.47045400898070e+00 3.56017932713071e-02 -3.55617422300250e+00 3.27624867692986e-02 -3.64401172631070e+00 3.01134345739215e-02 -3.73401881595050e+00 2.76445950017297e-02 -3.82624908070450e+00 2.53463003643988e-02 -3.92075743299790e+00 2.32092434371121e-02 -4.01760014159300e+00 2.12244656724782e-02 -4.11683486509030e+00 1.93833472448450e-02 -4.21852068625800e+00 1.76775988943770e-02 -4.32271814720860e+00 1.60992554297546e-02 -4.42948928544470e+00 1.46406706521963e-02 -4.53889767079510e+00 1.32945133889926e-02 -4.65100844326380e+00 1.20537642762041e-02 -4.76588835181240e+00 1.09117129090608e-02 -4.88360579410220e+00 9.86195498395526e-03 -5.00423085721650e+00 8.89838908502908e-03 -5.12783535938970e+00 8.01521281741848e-03 -5.25449289276670e+00 7.20691805401656e-03 -5.38427886721800e+00 6.46828513853235e-03 -5.51727055523830e+00 5.79437596994048e-03 -5.65354713795270e+00 5.18052597702017e-03 -5.79318975226010e+00 4.62233507109448e-03 -5.93628153914090e+00 4.11565773464524e-03 -6.08290769315770e+00 3.65659245779802e-03 -6.23315551317870e+00 3.24147076929793e-03 -6.38711445435420e+00 2.86684612092401e-03 -6.54487618137680e+00 2.52948287406339e-03 -6.70653462305680e+00 2.22634560681452e-03 -6.87218602824630e+00 1.95458891422425e-03 -7.04192902314400e+00 1.71154781934906e-03 -7.21586467001560e+00 1.49472885551659e-03 -7.39409652736500e+00 1.30180182659198e-03 -7.57673071159090e+00 1.13059220701004e-03 -7.76387596016720e+00 9.79074109732737e-04 -7.95564369638330e+00 8.45363729210765e-04 -8.15214809568400e+00 7.27713157319702e-04 -8.35350615364740e+00 6.24504471428920e-04 -8.55983775564250e+00 5.34244002903493e-04 -8.77126574820690e+00 4.55556708901296e-04 -8.98791601218760e+00 3.87180587900554e-04 -9.20991753768860e+00 3.27961097923950e-04 -9.43740250086950e+00 2.76845554310159e-04 -9.67050634264100e+00 2.32877499990478e-04 -9.90936784930420e+00 1.95191054857290e-04 -1.01541292351820e+01 1.63005261622774e-04 -1.04049362272910e+01 1.35618453502967e-04 -1.06619381521050e+01 1.12402674266038e-04 -1.09252880244620e+01 9.27981839288604e-05 -1.11951426386660e+01 7.63080840220080e-05 -1.14716626618410e+01 6.24930952488164e-05 -1.17550127295890e+01 5.09665179207796e-05 -1.20453615440100e+01 4.13894021146690e-05 -1.23428819741470e+01 3.34659503919688e-05 -1.26477511589080e+01 2.69391714290240e-05 -1.29601506125330e+01 2.15867982640968e-05 -1.32802663326630e+01 1.72174802626688e-05 -1.36082889110800e+01 1.36672536322275e-05 -1.39444136471830e+01 1.07962899212749e-05 -1.42888406642690e+01 8.48592730488420e-06 -1.46417750286760e+01 6.63594495770988e-06 -1.50034268718840e+01 5.16216408536068e-06 -1.53740115156200e+01 3.99422094076788e-06 -1.57537496000560e+01 3.07359052195637e-06 -1.61428672151770e+01 2.35186635576719e-06 -1.65415960353920e+01 1.78923424308836e-06 -1.69501734574660e+01 1.35312938087365e-06 -1.73688427418660e+01 1.01707026558231e-06 -1.77978531575900e+01 7.59636089393532e-07 -1.82374601305820e+01 0.00000000000000e+00 -1.86879253958070e+01 0.00000000000000e+00 -1.91495171530840e+01 0.00000000000000e+00 -1.96225102267650e+01 0.00000000000000e+00 -2.01071862293660e+01 0.00000000000000e+00 -2.06038337292320e+01 0.00000000000000e+00 -2.11127484223440e+01 0.00000000000000e+00 -2.16342333083750e+01 0.00000000000000e+00 -2.21685988710920e+01 0.00000000000000e+00 -2.27161632632080e+01 0.00000000000000e+00 -2.32772524958100e+01 0.00000000000000e+00 -2.38522006324560e+01 0.00000000000000e+00 -2.44413499880780e+01 0.00000000000000e+00 -2.50450513327830e+01 0.00000000000000e+00 -2.56636641007030e+01 0.00000000000000e+00 -2.62975566039900e+01 0.00000000000000e+00 -2.69471062521090e+01 0.00000000000000e+00 -2.76126997765360e+01 0.00000000000000e+00 -2.82947334610160e+01 0.00000000000000e+00 -2.89936133775030e+01 0.00000000000000e+00 -2.97097556279280e+01 0.00000000000000e+00 -3.04435865919380e+01 0.00000000000000e+00 -3.11955431807580e+01 0.00000000000000e+00 -3.19660730973230e+01 0.00000000000000e+00 -3.27556351028270e+01 0.00000000000000e+00 -3.35646992898670e+01 0.00000000000000e+00 -3.43937473623270e+01 0.00000000000000e+00 -3.52432729221760e+01 0.00000000000000e+00 -3.61137817633540e+01 0.00000000000000e+00 -3.70057921729090e+01 0.00000000000000e+00 -3.79198352395800e+01 0.00000000000000e+00 -3.88564551699970e+01 0.00000000000000e+00 -3.98162096126960e+01 0.00000000000000e+00 -4.07996699901300e+01 0.00000000000000e+00 -4.18074218388860e+01 0.00000000000000e+00 -4.28400651583060e+01 0.00000000000000e+00 -4.38982147677160e+01 0.00000000000000e+00 -4.49825006724790e+01 0.00000000000000e+00 -4.60935684390890e+01 0.00000000000000e+00 -4.72320795795350e+01 0.00000000000000e+00 -4.83987119451490e+01 0.00000000000000e+00 -4.95941601301950e+01 0.00000000000000e+00 -5.08191358854100e+01 0.00000000000000e+00 -5.20743685417800e+01 0.00000000000000e+00 -5.33606054447620e+01 0.00000000000000e+00 -5.46786123992480e+01 0.00000000000000e+00 -5.60291741255090e+01 0.00000000000000e+00 -5.74130947264090e+01 0.00000000000000e+00 -5.88311981661510e+01 0.00000000000000e+00 -6.02843287608550e+01 0.00000000000000e+00 -6.17733516812480e+01 0.00000000000000e+00 -6.32991534677750e+01 0.00000000000000e+00 -6.48626425584290e+01 0.00000000000000e+00 -6.64647498296220e+01 0.00000000000000e+00 -6.81064291504140e+01 0.00000000000000e+00 -6.97886579504290e+01 0.00000000000000e+00 -7.15124378018050e+01 0.00000000000000e+00 -7.32787950155100e+01 0.00000000000000e+00 -7.50887812523930e+01 0.00000000000000e+00 -7.69434741493270e+01 0.00000000000000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi40.inp b/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi40.inp deleted file mode 100644 index 878bb8b96..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi40.inp +++ /dev/null @@ -1,525 +0,0 @@ -2.15517241379310e-04 2.14653831555243e-01 -2.20840517241380e-04 2.14653831555243e-01 -2.26295278017240e-04 2.14653831555245e-01 -2.31884771384270e-04 2.14653831555242e-01 -2.37612325237460e-04 2.14653831606783e-01 -2.43481349670820e-04 2.14653831669735e-01 -2.49495339007690e-04 2.14653831742249e-01 -2.55657873881180e-04 2.14653831825004e-01 -2.61972623366050e-04 2.14653831918299e-01 -2.68443347163190e-04 2.14653832022451e-01 -2.75073897838120e-04 2.14653832137792e-01 -2.81868223114720e-04 2.14653832264682e-01 -2.88830368225660e-04 2.14653832403497e-01 -2.95964478320830e-04 2.14653832554651e-01 -3.03274800935350e-04 2.14653832718566e-01 -3.10765688518460e-04 2.14653832895691e-01 -3.18441601024860e-04 2.14653833086525e-01 -3.26307108570180e-04 2.14653833291559e-01 -3.34366894151860e-04 2.14653833511351e-01 -3.42625756437410e-04 2.14653833746463e-01 -3.51088612621420e-04 2.14653833997498e-01 -3.59760501353160e-04 2.14653834265104e-01 -3.68646585736590e-04 2.14653834549942e-01 -3.77752156404280e-04 2.14653834852733e-01 -3.87082634667470e-04 2.14653835174220e-01 -3.96643575743750e-04 2.14653835515206e-01 -4.06440672064620e-04 2.14653835876514e-01 -4.16479756664620e-04 2.14653836259028e-01 -4.26766806654240e-04 2.14653836663674e-01 -4.37307946778600e-04 2.14653837091431e-01 -4.48109453064030e-04 2.14653837543331e-01 -4.59177756554710e-04 2.14653838020451e-01 -4.70519447141610e-04 2.14653838523943e-01 -4.82141277486010e-04 2.14653839054971e-01 -4.94050167039910e-04 2.14653839614861e-01 -5.06253206165800e-04 2.14653840204876e-01 -5.18757660358090e-04 2.14653840826456e-01 -5.31570974568940e-04 2.14653841481072e-01 -5.44700777640790e-04 2.14653842170253e-01 -5.58154886848520e-04 2.14653842895629e-01 -5.71941312553680e-04 2.14653843658911e-01 -5.86068262973750e-04 2.14653844461912e-01 -6.00544149069200e-04 2.14653845306510e-01 -6.15377589551210e-04 2.14653846194683e-01 -6.30577416013130e-04 2.14653847128537e-01 -6.46152678188650e-04 2.14653848110269e-01 -6.62112649339910e-04 2.14653849142183e-01 -6.78466831778610e-04 2.14653850226701e-01 -6.95224962523540e-04 2.14653851366373e-01 -7.12397019097870e-04 2.14653852563892e-01 -7.29993225469590e-04 2.14653853822042e-01 -7.48024058138690e-04 2.14653855143800e-01 -7.66500252374710e-04 2.14653856532283e-01 -7.85432808608370e-04 2.14653857990728e-01 -8.04832998980990e-04 2.14653859522590e-01 -8.24712374055830e-04 2.14653861131452e-01 -8.45082769695000e-04 2.14653862821105e-01 -8.65956314106470e-04 2.14653864595525e-01 -8.87345435064900e-04 2.14653866458882e-01 -9.09262867311000e-04 2.14653868415560e-01 -9.31721660133590e-04 2.14653870470173e-01 -9.54735185138880e-04 2.14653872627559e-01 -9.78317144211820e-04 2.14653874892794e-01 -1.00248157767380e-03 2.14653877271229e-01 -1.02724287264240e-03 2.14653879768432e-01 -1.05261577159670e-03 2.14653882390316e-01 -1.07861538115510e-03 2.14653885143074e-01 -1.10525718106960e-03 2.14653888033196e-01 -1.13255703344200e-03 2.14653891067482e-01 -1.16053119216810e-03 2.14653894253087e-01 -1.18919631261460e-03 2.14653897597568e-01 -1.21856946153620e-03 2.14653901108788e-01 -1.24866812723610e-03 2.14653904795073e-01 -1.27951022997890e-03 2.14653908665091e-01 -1.31111413265940e-03 2.14653912728017e-01 -1.34349865173600e-03 2.14653916993464e-01 -1.37668306843390e-03 2.14653921471490e-01 -1.41068714022420e-03 2.14653926172712e-01 -1.44553111258780e-03 2.14653931108220e-01 -1.48123573106870e-03 2.14653936289735e-01 -1.51782225362610e-03 2.14653941729490e-01 -1.55531246329070e-03 2.14653947440374e-01 -1.59372868113390e-03 2.14653953435922e-01 -1.63309377955790e-03 2.14653959730315e-01 -1.67343119591300e-03 2.14653966338467e-01 -1.71476494645210e-03 2.14653973276035e-01 -1.75711964062940e-03 2.14653980559489e-01 -1.80052049575300e-03 2.14653988206052e-01 -1.84499335199810e-03 2.14653996233883e-01 -1.89056468779240e-03 2.14654004662020e-01 -1.93726163558090e-03 2.14654013510425e-01 -1.98511199797980e-03 2.14654022800111e-01 -2.03414426432990e-03 2.14654032553114e-01 -2.08438762765880e-03 2.14654042792577e-01 -2.13587200206200e-03 2.14654053542798e-01 -2.18862804051290e-03 2.14654064829295e-01 -2.24268715311360e-03 2.14654076678864e-01 -2.29808152579550e-03 2.14654089119638e-01 -2.35484413948260e-03 2.14654102181163e-01 -2.41300878972790e-03 2.14654115894446e-01 -2.47261010683410e-03 2.14654130292080e-01 -2.53368357647290e-03 2.14654145408251e-01 -2.59626556081180e-03 2.14654161278869e-01 -2.66039332016390e-03 2.14654177941650e-01 -2.72610503517190e-03 2.14654195436197e-01 -2.79343982954070e-03 2.14654213804068e-01 -2.86243779333030e-03 2.14654233088939e-01 -2.93314000682560e-03 2.14654253336628e-01 -3.00558856499420e-03 2.14654274595284e-01 -3.07982660254950e-03 2.14654296915443e-01 -3.15589831963250e-03 2.14654320350168e-01 -3.23384900812740e-03 2.14654344955184e-01 -3.31372507862820e-03 2.14654370788995e-01 -3.39557408807030e-03 2.14654397913049e-01 -3.47944476804560e-03 2.14654426391849e-01 -3.56538705381630e-03 2.14654456293129e-01 -3.65345211404560e-03 2.14654487688006e-01 -3.74369238126250e-03 2.14654520651170e-01 -3.83616158307970e-03 2.14654555261032e-01 -3.93091477418180e-03 2.14654591599931e-01 -4.02800836910410e-03 2.14654629754319e-01 -4.12750017582090e-03 2.14654669814986e-01 -4.22944943016370e-03 2.14654711877239e-01 -4.33391683108880e-03 2.14654756041166e-01 -4.44096457681670e-03 2.14654802411867e-01 -4.55065640186400e-03 2.14654851099693e-01 -4.66305761499010e-03 2.14654902220509e-01 -4.77823513808030e-03 2.14654955895970e-01 -4.89625754599090e-03 2.14655012253813e-01 -5.01719510737690e-03 2.14655071428219e-01 -5.14111982652910e-03 2.14655133559987e-01 -5.26810548624440e-03 2.14655198797027e-01 -5.39822769175460e-03 2.14655267294619e-01 -5.53156391574090e-03 2.14655339215829e-01 -5.66819354445970e-03 2.14655414731834e-01 -5.80819792500790e-03 2.14655494022426e-01 -5.95166041375560e-03 2.14655577276365e-01 -6.09866642597530e-03 2.14655664691834e-01 -6.24930348669690e-03 2.14655756476956e-01 -6.40366128281830e-03 2.14655852850252e-01 -6.56183171650400e-03 2.14655954041159e-01 -6.72390895990160e-03 2.14656060290623e-01 -6.88998951121120e-03 2.14656171851604e-01 -7.06017225213810e-03 2.14656288989726e-01 -7.23455850676590e-03 2.14656411983890e-01 -7.41325210188300e-03 2.14656541126977e-01 -7.59635942879950e-03 2.14656676726472e-01 -7.78398950669090e-03 2.14656819105274e-01 -7.97625404750610e-03 2.14656968602390e-01 -8.17326752247950e-03 2.14657125573844e-01 -8.37514723028480e-03 2.14657290393385e-01 -8.58201336687280e-03 2.14657463453541e-01 -8.79398909703460e-03 2.14657645166395e-01 -9.01120062773130e-03 2.14657835964684e-01 -9.23377728323630e-03 2.14658036302778e-01 -9.46185158213220e-03 2.14658246657776e-01 -9.69555931621090e-03 2.14658467530614e-01 -9.93503963132130e-03 2.14658699447299e-01 -1.01804351102150e-02 2.14658942960155e-01 -1.04318918574370e-02 2.14659198649119e-01 -1.06895595863160e-02 2.14659467123117e-01 -1.09535917080980e-02 2.14659749021564e-01 -1.12241454232880e-02 2.14660045015819e-01 -1.15013818152430e-02 2.14660355810850e-01 -1.17854659460800e-02 2.14660682146850e-01 -1.20765669549480e-02 2.14661024801064e-01 -1.23748581587350e-02 2.14661384589587e-01 -1.26805171552560e-02 2.14661762369340e-01 -1.29937259289910e-02 2.14662159040097e-01 -1.33146709594370e-02 2.14662575546655e-01 -1.36435433321350e-02 2.14663012881038e-01 -1.39805388524390e-02 2.14663472084886e-01 -1.43258581620940e-02 2.14663954251973e-01 -1.46797068586970e-02 2.14664460530740e-01 -1.50422956181070e-02 2.14664992127070e-01 -1.54138403198750e-02 2.14665550307176e-01 -1.57945621757750e-02 2.14666136400633e-01 -1.61846878615170e-02 2.14666751803433e-01 -1.65844496516970e-02 2.14667397981464e-01 -1.69940855580930e-02 2.14668076473929e-01 -1.74138394713780e-02 2.14668788896966e-01 -1.78439613063210e-02 2.14669536947610e-01 -1.82847071505880e-02 2.14670322407727e-01 -1.87363394172070e-02 2.14671147148378e-01 -1.91991270008120e-02 2.14672013134149e-01 -1.96733454377320e-02 2.14672922427914e-01 -2.01592770700440e-02 2.14673877195744e-01 -2.06572112136740e-02 2.14674879712056e-01 -2.11674443306520e-02 2.14675932365026e-01 -2.16902802056190e-02 2.14677037662313e-01 -2.22260301266980e-02 2.14678198236986e-01 -2.27750130708270e-02 2.14679416853861e-01 -2.33375558936770e-02 2.14680696416026e-01 -2.39139935242510e-02 2.14682039971828e-01 -2.45046691643000e-02 2.14683450722102e-01 -2.51099344926580e-02 2.14684932027792e-01 -2.57301498746260e-02 2.14686487417998e-01 -2.63656845765300e-02 2.14688120598349e-01 -2.70169169855700e-02 2.14689835459896e-01 -2.76842348351130e-02 2.14691636088339e-01 -2.83680354355410e-02 2.14693526773778e-01 -2.90687259107990e-02 2.14695512020972e-01 -2.97867234407950e-02 2.14697596560067e-01 -3.05224555097830e-02 2.14699785357852e-01 -3.12763601608750e-02 2.14702083629655e-01 -3.20488862568480e-02 2.14704496851756e-01 -3.28404937473920e-02 2.14707030774437e-01 -3.36516539429530e-02 2.14709691435730e-01 -3.44828497953440e-02 2.14712485175816e-01 -3.53345761852890e-02 2.14715418652150e-01 -3.62073402170660e-02 2.14718498855335e-01 -3.71016615204270e-02 2.14721733125838e-01 -3.80180725599820e-02 2.14725129171476e-01 -3.89571189522130e-02 2.14728695085847e-01 -3.99193597903330e-02 2.14732439367623e-01 -4.09053679771540e-02 2.14736370940867e-01 -4.19157305661900e-02 2.14740499176321e-01 -4.29510491111750e-02 2.14744833913813e-01 -4.40119400242210e-02 2.14749385485729e-01 -4.50990349428190e-02 2.14754164741717e-01 -4.62129811059070e-02 2.14759183074593e-01 -4.73544417392220e-02 2.14764452447605e-01 -4.85240964501810e-02 2.14769985422925e-01 -4.97226416325010e-02 2.14775795191834e-01 -5.09507908808230e-02 2.14781895606097e-01 -5.22092754155800e-02 2.14788301211198e-01 -5.34988445183450e-02 2.14795027281077e-01 -5.48202659779480e-02 2.14802089854686e-01 -5.61743265476030e-02 2.14809505774322e-01 -5.75618324133290e-02 2.14817292726016e-01 -5.89836096739380e-02 2.14825469281762e-01 -6.04405048328840e-02 2.14834054944084e-01 -6.19333853022570e-02 2.14843070192662e-01 -6.34631399192220e-02 2.14852536533464e-01 -6.50306794752270e-02 2.14862476550161e-01 -6.66369372582650e-02 2.14872913958393e-01 -6.82828696085440e-02 2.14883873662554e-01 -6.99694564878750e-02 2.14895381815501e-01 -7.16977020631260e-02 2.14907465881344e-01 -7.34686353040850e-02 2.14920154701295e-01 -7.52833105960960e-02 2.14933478562978e-01 -7.71428083678200e-02 2.14947469273131e-01 -7.90482357345050e-02 2.14962160233979e-01 -8.10007271571470e-02 2.14977586523599e-01 -8.30014451179280e-02 2.14993784980204e-01 -8.50515808123410e-02 2.15010794290734e-01 -8.71523548584060e-02 2.15028655084051e-01 -8.93050180234090e-02 2.15047410028672e-01 -9.15108519685870e-02 2.15067103935596e-01 -9.37711700122110e-02 2.15087783866295e-01 -9.60873179115130e-02 2.15109499246200e-01 -9.84606746639270e-02 2.15132301983936e-01 -1.00892653328130e-01 2.15156246596665e-01 -1.03384701865330e-01 2.15181390341769e-01 -1.05938304001400e-01 2.15207793355203e-01 -1.08554980110240e-01 2.15235518796995e-01 -1.11236288118960e-01 2.15264633004098e-01 -1.13983824435500e-01 2.15295205650996e-01 -1.16799224899060e-01 2.15327309918650e-01 -1.19684165754060e-01 2.15361022671929e-01 -1.22640364648190e-01 2.15396424646156e-01 -1.25669581655000e-01 2.15433600643301e-01 -1.28773620321880e-01 2.15472639738074e-01 -1.31954328743830e-01 2.15513635494673e-01 -1.35213600663800e-01 2.15556686194580e-01 -1.38553376600200e-01 2.15601895076138e-01 -1.41975645002220e-01 2.15649370586387e-01 -1.45482443433780e-01 2.15699226645768e-01 -1.49075859786590e-01 2.15751582926622e-01 -1.52758033523320e-01 2.15806565145828e-01 -1.56531156951350e-01 2.15864305372635e-01 -1.60397476528040e-01 2.15924942352366e-01 -1.64359294198290e-01 2.15988621846645e-01 -1.68418968764980e-01 2.16055496991472e-01 -1.72578917293480e-01 2.16125728673401e-01 -1.76841616550630e-01 2.16199485925502e-01 -1.81209604479430e-01 2.16276946343486e-01 -1.85685481710070e-01 2.16358296523429e-01 -1.90271913108310e-01 2.16443732522093e-01 -1.94971629362080e-01 2.16533460340989e-01 -1.99787428607330e-01 2.16627696435341e-01 -2.04722178093930e-01 2.16726668249411e-01 -2.09778815892850e-01 2.16830614779242e-01 -2.14960352645400e-01 2.16939787164440e-01 -2.20269873355740e-01 2.17054449310292e-01 -2.25710539227630e-01 2.17174878541770e-01 -2.31285589546550e-01 2.17301366290992e-01 -2.36998343608350e-01 2.17434218819648e-01 -2.42852202695480e-01 2.17573757978216e-01 -2.48850652102060e-01 2.17720322003526e-01 -2.54997263208980e-01 2.17874266356493e-01 -2.61295695610240e-01 2.18035964601789e-01 -2.67749699291810e-01 2.18205809331305e-01 -2.74363116864320e-01 2.18384213133165e-01 -2.81139885850870e-01 2.18571609608206e-01 -2.88084041031390e-01 2.18768454435662e-01 -2.95199716844860e-01 2.18975226489922e-01 -3.02491149850930e-01 2.19192429009976e-01 -3.09962681252250e-01 2.19420590823323e-01 -3.17618759479180e-01 2.19660267625689e-01 -3.25463942838310e-01 2.19912043317962e-01 -3.33502902226420e-01 2.20176531401402e-01 -3.41740423911410e-01 2.20454376431982e-01 -3.50181412382020e-01 2.20746255534144e-01 -3.58830893267860e-01 2.21052879974082e-01 -3.67694016331580e-01 2.21374996791845e-01 -3.76776058534970e-01 2.21713390490948e-01 -3.86082427180780e-01 2.22068884783361e-01 -3.95618663132140e-01 2.22442344386661e-01 -4.05390444111510e-01 2.22834676868907e-01 -4.15403588081060e-01 2.23246834535393e-01 -4.25664056706670e-01 2.23679816349495e-01 -4.36177958907320e-01 2.24134669878002e-01 -4.46951554492330e-01 2.24612493248533e-01 -4.57991257888290e-01 2.25114437104054e-01 -4.69303641958130e-01 2.25641706535590e-01 -4.80895441914500e-01 2.26195562970734e-01 -4.92773559329790e-01 2.26777325990377e-01 -5.04945066245230e-01 2.27388375040360e-01 -5.17417209381490e-01 2.28030150998899e-01 -5.30197414453210e-01 2.28704157552207e-01 -5.43293290590210e-01 2.29411962322429e-01 -5.56712634867780e-01 2.30155197681316e-01 -5.70463436949020e-01 2.30935561171597e-01 -5.84553883841660e-01 2.31754815443440e-01 -5.98992364772550e-01 2.32614787598350e-01 -6.13787476182430e-01 2.33517367813610e-01 -6.28948026844140e-01 2.34464507099763e-01 -6.44483043107190e-01 2.35458214019420e-01 -6.60401774271930e-01 2.36500550167841e-01 -6.76713698096450e-01 2.37593624184543e-01 -6.93428526439430e-01 2.38739584029588e-01 -7.10556211042490e-01 2.39940607217907e-01 -7.28106949455240e-01 2.41198888660485e-01 -7.46091191106780e-01 2.42516625710360e-01 -7.64519643527120e-01 2.43895999956613e-01 -7.83403278722240e-01 2.45339155248105e-01 -8.02753339706680e-01 2.46848171362931e-01 -8.22581347197430e-01 2.48425032668500e-01 -8.42899106473210e-01 2.50071591042883e-01 -8.63718714403100e-01 2.51789522250856e-01 -8.85052566648850e-01 2.53580274891485e-01 -9.06913365045080e-01 2.55445010960087e-01 -9.29314125161690e-01 2.57384537001881e-01 -9.52268184053190e-01 2.59399224782210e-01 -9.75789208199300e-01 2.61488920368317e-01 -9.99891201641820e-01 2.63652840520018e-01 -1.02458851432240e+00 2.65889455334942e-01 -1.04989585062610e+00 2.68196356205010e-01 -1.07582827813660e+00 2.70570108335152e-01 -1.10240123660660e+00 2.73006087378275e-01 -1.12963054715080e+00 2.75498300179815e-01 -1.15753242166540e+00 2.78039190236947e-01 -1.18612347248050e+00 2.80619429295918e-01 -1.21542072225080e+00 2.83227697576878e-01 -1.24544161409040e+00 2.85850456466769e-01 -1.27620402195840e+00 2.88471719191033e-01 -1.30772626130080e+00 2.91072826987991e-01 -1.34002709995490e+00 2.93632240669739e-01 -1.37312576932380e+00 2.96125360134352e-01 -1.40704197582610e+00 2.98524387328977e-01 -1.44179591262900e+00 3.00798251220834e-01 -1.47740827167090e+00 3.02912616310178e-01 -1.51390025598120e+00 3.04829998812531e-01 -1.55129359230390e+00 3.06510016440151e-01 -1.58961054403390e+00 3.07909798198779e-01 -1.62887392447150e+00 3.08984579158186e-01 -1.66910711040590e+00 3.09688501045968e-01 -1.71033405603300e+00 3.09975632036769e-01 -1.75257930721700e+00 3.09801207621153e-01 -1.79586801610520e+00 3.09123078519819e-01 -1.84022595610300e+00 3.07903331225090e-01 -1.88567953721880e+00 3.06110022444102e-01 -1.93225582178810e+00 3.03718941789851e-01 -1.97998254058630e+00 3.00715289707297e-01 -2.02888810933870e+00 2.97095132943087e-01 -2.07900164563940e+00 2.92866481784949e-01 -2.13035298628670e+00 2.88049826261509e-01 -2.18297270504800e+00 2.82677977082751e-01 -2.23689213086270e+00 2.76795085623793e-01 -2.29214336649500e+00 2.70454769536093e-01 -2.34875930764740e+00 2.63717350269578e-01 -2.40677366254630e+00 2.56646320511860e-01 -2.46622097201120e+00 2.49304310991054e-01 -2.52713663001980e+00 2.41749031026618e-01 -2.58955690478130e+00 2.34029938590839e-01 -2.65351896032940e+00 2.26186787050051e-01 -2.71906087864960e+00 2.18251406293697e-01 -2.78622168235220e+00 2.10252208331469e-01 -2.85504135790630e+00 2.02216968174626e-01 -2.92556087944660e+00 1.94172166327038e-01 -2.99782223316890e+00 1.86143025380782e-01 -3.07186844232820e+00 1.78153552700891e-01 -3.14774359285370e+00 1.70226488726556e-01 -3.22549285959720e+00 1.62383274503264e-01 -3.30516253322930e+00 1.54644017496249e-01 -3.38680004780000e+00 1.47027458315418e-01 -3.47045400898070e+00 1.39550939206059e-01 -3.55617422300250e+00 1.32230375387514e-01 -3.64401172631070e+00 1.25080230637748e-01 -3.73401881595050e+00 1.18113498809832e-01 -3.82624908070450e+00 1.11341692823252e-01 -3.92075743299790e+00 1.04774842687614e-01 -4.01760014159300e+00 9.84215045389645e-02 -4.11683486509030e+00 9.22887813023019e-02 -4.21852068625800e+00 8.63823557257112e-02 -4.32271814720860e+00 8.07065358416496e-02 -4.42948928544470e+00 7.52643123273838e-02 -4.53889767079510e+00 7.00574266747519e-02 -4.65100844326380e+00 6.50864485824629e-02 -4.76588835181240e+00 6.03508605863123e-02 -4.88360579410220e+00 5.58491476669323e-02 -5.00423085721650e+00 5.15788894347192e-02 -5.12783535938970e+00 4.75368524916860e-02 -5.25449289276670e+00 4.37190807083103e-02 -5.38427886721800e+00 4.01209814211140e-02 -5.51727055523830e+00 3.67374059382856e-02 -5.65354713795270e+00 3.35627232124384e-02 -5.79318975226010e+00 3.05908860689453e-02 -5.93628153914090e+00 2.78154899241093e-02 -6.08290769315770e+00 2.52298244422828e-02 -6.23315551317870e+00 2.28269190176598e-02 -6.38711445435420e+00 2.05995832831844e-02 -6.54487618137680e+00 1.85404440184739e-02 -6.70653462305680e+00 1.66419798415875e-02 -6.87218602824630e+00 1.48965549371404e-02 -7.04192902314400e+00 1.32964528247852e-02 -7.21586467001560e+00 1.18339108480609e-02 -7.39409652736500e+00 1.05011557095698e-02 -7.57673071159090e+00 9.29044003655989e-03 -7.76387596016720e+00 8.19407966508096e-03 -7.95564369638330e+00 7.20449110333027e-03 -8.15214809568400e+00 6.31422848590217e-03 -8.35350615364740e+00 5.51601926028664e-03 -8.55983775564250e+00 4.80279784711868e-03 -8.77126574820690e+00 4.16773657346537e-03 -8.98791601218760e+00 3.60427327873998e-03 -9.20991753768860e+00 3.10613512053296e-03 -9.43740250086950e+00 2.66735824902093e-03 -9.67050634264100e+00 2.28230316221347e-03 -9.90936784930420e+00 1.94566569124233e-03 -1.01541292351820e+01 1.65248368886318e-03 -1.04049362272910e+01 1.39813960127986e-03 -1.06619381521050e+01 1.17835919119176e-03 -1.09252880244620e+01 9.89206747994838e-04 -1.11951426386660e+01 8.27077169860984e-04 -1.14716626618410e+01 6.88685333304975e-04 -1.17550127295890e+01 5.71053180642655e-04 -1.20453615440100e+01 4.71494956591017e-04 -1.23428819741470e+01 3.87601014383695e-04 -1.26477511589080e+01 3.17220591426089e-04 -1.29601506125330e+01 2.58443926797342e-04 -1.32802663326630e+01 2.09584059803925e-04 -1.36082889110800e+01 1.69158613595338e-04 -1.39444136471830e+01 1.35871812833769e-04 -1.42888406642690e+01 1.08597062448844e-04 -1.46417750286760e+01 8.63598351971291e-05 -1.50034268718840e+01 6.83222367042058e-05 -1.53740115156200e+01 5.37674739479219e-05 -1.57537496000560e+01 4.20855121182987e-05 -1.61428672151770e+01 3.27602400979473e-05 -1.65415960353920e+01 2.53575561990152e-05 -1.69501734574660e+01 1.95144478397007e-05 -1.73688427418660e+01 1.49291353589717e-05 -1.77978531575900e+01 1.13522456376210e-05 -1.82374601305820e+01 8.57896866193708e-06 -1.86879253958070e+01 6.44214058727685e-06 -1.91495171530840e+01 4.80618999120721e-06 -1.96225102267650e+01 3.56187957813049e-06 -2.01071862293660e+01 2.62177331909211e-06 -2.06038337292320e+01 1.91635858337019e-06 -2.11127484223440e+01 1.39075394431362e-06 -2.16342333083750e+01 1.00193573292601e-06 -2.21685988710920e+01 7.16419786986911e-07 -2.27161632632080e+01 5.08338979144018e-07 -2.32772524958100e+01 3.57861612967387e-07 -2.38522006324560e+01 2.49901250512026e-07 -2.44413499880780e+01 1.73071297811187e-07 -2.50450513327830e+01 1.18849339044954e-07 -2.56636641007030e+01 8.09086904445582e-08 -2.62975566039900e+01 5.45918480499697e-08 -2.69471062521090e+01 3.65004985819522e-08 -2.76126997765360e+01 2.41774175899826e-08 -2.82947334610160e+01 1.58620896455083e-08 -2.89936133775030e+01 1.03049757507452e-08 -2.97097556279280e+01 6.62771355369821e-09 -3.04435865919380e+01 4.21892763051982e-09 -3.11955431807580e+01 2.65736160502699e-09 -3.19660730973230e+01 1.65575194983460e-09 -3.27556351028270e+01 1.02027869691846e-09 -3.35646992898670e+01 6.21585921100253e-10 -3.43937473623270e+01 3.74299390592256e-10 -3.52432729221760e+01 2.22713369214572e-10 -3.61137817633540e+01 1.30904030933750e-10 -3.70057921729090e+01 7.59812261766337e-11 -3.79198352395800e+01 4.35381166923099e-11 -3.88564551699970e+01 2.46208472515583e-11 -3.98162096126960e+01 1.37360745268532e-11 -4.07996699901300e+01 7.55789867123108e-12 -4.18074218388860e+01 4.09983960217689e-12 -4.28400651583060e+01 2.19181863891304e-12 -4.38982147677160e+01 1.15439582440627e-12 -4.49825006724790e+01 5.98760871293856e-13 -4.60935684390890e+01 3.05725998787403e-13 -4.72320795795350e+01 1.53609699249948e-13 -4.83987119451490e+01 7.59162461897743e-14 -4.95941601301950e+01 3.68888233433283e-14 -5.08191358854100e+01 1.76161577022131e-14 -5.20743685417800e+01 8.26288460666012e-15 -5.33606054447620e+01 3.80463979002526e-15 -5.46786123992480e+01 0.00000000000000e+00 -5.60291741255090e+01 0.00000000000000e+00 -5.74130947264090e+01 0.00000000000000e+00 -5.88311981661510e+01 0.00000000000000e+00 -6.02843287608550e+01 0.00000000000000e+00 -6.17733516812480e+01 0.00000000000000e+00 -6.32991534677750e+01 0.00000000000000e+00 -6.48626425584290e+01 0.00000000000000e+00 -6.64647498296220e+01 0.00000000000000e+00 -6.81064291504140e+01 0.00000000000000e+00 -6.97886579504290e+01 0.00000000000000e+00 -7.15124378018050e+01 0.00000000000000e+00 -7.32787950155100e+01 0.00000000000000e+00 -7.50887812523930e+01 0.00000000000000e+00 -7.69434741493270e+01 0.00000000000000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi41.inp b/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi41.inp deleted file mode 100644 index c703e5f7b..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi41.inp +++ /dev/null @@ -1,525 +0,0 @@ -2.15517241379310e-04 1.97093601157299e-05 -2.20840517241380e-04 2.01961813105882e-05 -2.26295278017240e-04 2.06950269889601e-05 -2.31884771384270e-04 2.12061941555869e-05 -2.37612325237460e-04 2.17299873031308e-05 -2.43481349670820e-04 2.22667181465503e-05 -2.49495339007690e-04 2.28167062455437e-05 -2.55657873881180e-04 2.33802790547130e-05 -2.61972623366050e-04 2.39577721165049e-05 -2.68443347163190e-04 2.45495292612708e-05 -2.75073897838120e-04 2.51559028119729e-05 -2.81868223114720e-04 2.57772537939544e-05 -2.88830368225660e-04 2.64139521498886e-05 -2.95964478320830e-04 2.70663769600374e-05 -3.03274800935350e-04 2.77349166679478e-05 -3.10765688518460e-04 2.84199693117259e-05 -3.18441601024860e-04 2.91219427610271e-05 -3.26307108570180e-04 2.98412549598868e-05 -3.34366894151860e-04 3.05783341755670e-05 -3.42625756437410e-04 3.13336192535343e-05 -3.51088612621420e-04 3.21075598787400e-05 -3.59760501353160e-04 3.29006168433672e-05 -3.68646585736590e-04 3.37132623211609e-05 -3.77752156404280e-04 3.45459801485759e-05 -3.87082634667470e-04 3.53992661128193e-05 -3.96643575743750e-04 3.62736282470616e-05 -4.06440672064620e-04 3.71695871328893e-05 -4.16479756664620e-04 3.80876762102650e-05 -4.26766806654240e-04 3.90284420951287e-05 -4.37307946778600e-04 3.99924449048357e-05 -4.48109453064030e-04 4.09802585916527e-05 -4.59177756554710e-04 4.19924712844743e-05 -4.70519447141610e-04 4.30296856389861e-05 -4.82141277486010e-04 4.40925191964773e-05 -4.94050167039910e-04 4.51816047515227e-05 -5.06253206165800e-04 4.62975907287269e-05 -5.18757660358090e-04 4.74411415687950e-05 -5.31570974568940e-04 4.86129381241293e-05 -5.44700777640790e-04 4.98136780641987e-05 -5.58154886848520e-04 5.10440762909206e-05 -5.71941312553680e-04 5.23048653643013e-05 -5.86068262973750e-04 5.35967959385952e-05 -6.00544149069200e-04 5.49206372092296e-05 -6.15377589551210e-04 5.62771773707759e-05 -6.30577416013130e-04 5.76672240862268e-05 -6.46152678188650e-04 5.90916049678716e-05 -6.62112649339910e-04 6.05511680700380e-05 -6.78466831778610e-04 6.20467823940162e-05 -6.95224962523540e-04 6.35793384054508e-05 -7.12397019097870e-04 6.51497485645063e-05 -7.29993225469590e-04 6.67589478691390e-05 -7.48024058138690e-04 6.84078944117804e-05 -7.66500252374710e-04 7.00975699497718e-05 -7.85432808608370e-04 7.18289804898835e-05 -8.04832998980990e-04 7.36031568872913e-05 -8.24712374055830e-04 7.54211554593156e-05 -8.45082769695000e-04 7.72840586143599e-05 -8.65956314106470e-04 7.91929754963405e-05 -8.87345435064900e-04 8.11490426450725e-05 -9.09262867311000e-04 8.31534246729448e-05 -9.31721660133590e-04 8.52073149583119e-05 -9.54735185138880e-04 8.73119363560264e-05 -9.78317144211820e-04 8.94685419254983e-05 -1.00248157767380e-03 9.16784156767662e-05 -1.02724287264240e-03 9.39428733349528e-05 -1.05261577159670e-03 9.62632631236814e-05 -1.07861538115510e-03 9.86409665677397e-05 -1.10525718106960e-03 1.01077399315658e-04 -1.13255703344200e-03 1.03574011982556e-04 -1.16053119216810e-03 1.06132291013803e-04 -1.18919631261460e-03 1.08753759570102e-04 -1.21856946153620e-03 1.11439978434258e-04 -1.24866812723610e-03 1.14192546940552e-04 -1.27951022997890e-03 1.17013103926890e-04 -1.31111413265940e-03 1.19903328710613e-04 -1.34349865173600e-03 1.22864942088305e-04 -1.37668306843390e-03 1.25899707360331e-04 -1.41068714022420e-03 1.29009431380743e-04 -1.44553111258780e-03 1.32195965633008e-04 -1.48123573106870e-03 1.35461207332403e-04 -1.51782225362610e-03 1.38807100555583e-04 -1.55531246329070e-03 1.42235637398060e-04 -1.59372868113390e-03 1.45748859160328e-04 -1.63309377955790e-03 1.49348857563163e-04 -1.67343119591300e-03 1.53037775993083e-04 -1.71476494645210e-03 1.56817810778494e-04 -1.75711964062940e-03 1.60691212497375e-04 -1.80052049575300e-03 1.64660287317202e-04 -1.84499335199810e-03 1.68727398368122e-04 -1.89056468779240e-03 1.72894967149901e-04 -1.93726163558090e-03 1.77165474973645e-04 -1.98511199797980e-03 1.81541464439241e-04 -2.03414426432990e-03 1.86025540949169e-04 -2.08438762765880e-03 1.90620374259744e-04 -2.13587200206200e-03 1.95328700070712e-04 -2.18862804051290e-03 2.00153321654086e-04 -2.24268715311360e-03 2.05097111523183e-04 -2.29808152579550e-03 2.10163013142972e-04 -2.35484413948260e-03 2.15354042682572e-04 -2.41300878972790e-03 2.20673290811110e-04 -2.47261010683410e-03 2.26123924537951e-04 -2.53368357647290e-03 2.31709189098266e-04 -2.59626556081180e-03 2.37432409885344e-04 -2.66039332016390e-03 2.43296994430528e-04 -2.72610503517190e-03 2.49306434432096e-04 -2.79343982954070e-03 2.55464307834203e-04 -2.86243779333030e-03 2.61774280957318e-04 -2.93314000682560e-03 2.68240110681096e-04 -3.00558856499420e-03 2.74865646681359e-04 -3.07982660254950e-03 2.81654833722201e-04 -3.15589831963250e-03 2.88611714004761e-04 -3.23384900812740e-03 2.95740429574068e-04 -3.31372507862820e-03 3.03045224785249e-04 -3.39557408807030e-03 3.10530448830710e-04 -3.47944476804560e-03 3.18200558329854e-04 -3.56538705381630e-03 3.26060119982445e-04 -3.65345211404560e-03 3.34113813287978e-04 -3.74369238126250e-03 3.42366433331833e-04 -3.83616158307970e-03 3.50822893640515e-04 -3.93091477418180e-03 3.59488229107265e-04 -4.02800836910410e-03 3.68367598990074e-04 -4.12750017582090e-03 3.77466289983680e-04 -4.22944943016370e-03 3.86789719367512e-04 -4.33391683108880e-03 3.96343438231338e-04 -4.44096457681670e-03 4.06133134780697e-04 -4.55065640186400e-03 4.16164637723883e-04 -4.66305761499010e-03 4.26443919742759e-04 -4.77823513808030e-03 4.36977101049210e-04 -4.89625754599090e-03 4.47770453029407e-04 -5.01719510737690e-03 4.58830401978359e-04 -5.14111982652910e-03 4.70163532926423e-04 -5.26810548624440e-03 4.81776593560612e-04 -5.39822769175460e-03 4.93676498242684e-04 -5.53156391574090e-03 5.05870332126480e-04 -5.66819354445970e-03 5.18365355377058e-04 -5.80819792500790e-03 5.31169007494145e-04 -5.95166041375560e-03 5.44288911742273e-04 -6.09866642597530e-03 5.57732879690439e-04 -6.24930348669690e-03 5.71508915864054e-04 -6.40366128281830e-03 5.85625222511743e-04 -6.56183171650400e-03 6.00090204489931e-04 -6.72390895990160e-03 6.14912474268243e-04 -6.88998951121120e-03 6.30100857058507e-04 -7.06017225213810e-03 6.45664396070592e-04 -7.23455850676590e-03 6.61612357898108e-04 -7.41325210188300e-03 6.77954238037232e-04 -7.59635942879950e-03 6.94699766541930e-04 -7.78398950669090e-03 7.11858913818990e-04 -7.97625404750610e-03 7.29441896566328e-04 -8.17326752247950e-03 7.47459183857948e-04 -8.37514723028480e-03 7.65921503379513e-04 -8.58201336687280e-03 7.84839847818001e-04 -8.79398909703460e-03 8.04225481409211e-04 -9.01120062773130e-03 8.24089946647377e-04 -9.23377728323630e-03 8.44445071160480e-04 -9.46185158213220e-03 8.65302974755698e-04 -9.69555931621090e-03 8.86676076638950e-04 -9.93503963132130e-03 9.08577102813116e-04 -1.01804351102150e-02 9.31019093659115e-04 -1.04318918574370e-02 9.54015411704521e-04 -1.06895595863160e-02 9.77579749584277e-04 -1.09535917080980e-02 1.00172613819840e-03 -1.12241454232880e-02 1.02646895507150e-03 -1.15013818152430e-02 1.05182293291907e-03 -1.17854659460800e-02 1.07780316842543e-03 -1.20765669549480e-02 1.10442513123966e-03 -1.23748581587350e-02 1.13170467319317e-03 -1.26805171552560e-02 1.15965803774579e-03 -1.29937259289910e-02 1.18830186966634e-03 -1.33146709594370e-02 1.21765322495138e-03 -1.36435433321350e-02 1.24772958099090e-03 -1.39805388524390e-02 1.27854884698451e-03 -1.43258581620940e-02 1.31012937461693e-03 -1.46797068586970e-02 1.34248996899624e-03 -1.50422956181070e-02 1.37564989986416e-03 -1.54138403198750e-02 1.40962891308382e-03 -1.57945621757750e-02 1.44444724241212e-03 -1.61846878615170e-02 1.48012562156300e-03 -1.65844496516970e-02 1.51668529657101e-03 -1.69940855580930e-02 1.55414803846049e-03 -1.74138394713780e-02 1.59253615622847e-03 -1.78439613063210e-02 1.63187251015076e-03 -1.82847071505880e-02 1.67218052541644e-03 -1.87363394172070e-02 1.71348420610213e-03 -1.91991270008120e-02 1.75580814949129e-03 -1.96733454377320e-02 1.79917756075026e-03 -2.01592770700440e-02 1.84361826796782e-03 -2.06572112136740e-02 1.88915673756846e-03 -2.11674443306520e-02 1.93582009010796e-03 -2.16902802056190e-02 1.98363611646211e-03 -2.22260301266980e-02 2.03263329441652e-03 -2.27750130708270e-02 2.08284080567013e-03 -2.33375558936770e-02 2.13428855325990e-03 -2.39139935242510e-02 2.18700717942057e-03 -2.45046691643000e-02 2.24102808388708e-03 -2.51099344926580e-02 2.29638344265347e-03 -2.57301498746260e-02 2.35310622719873e-03 -2.63656845765300e-02 2.41123022419079e-03 -2.70169169855700e-02 2.47079005568269e-03 -2.76842348351130e-02 2.53182119981085e-03 -2.83680354355410e-02 2.59436001201006e-03 -2.90687259107990e-02 2.65844374675849e-03 -2.97867234407950e-02 2.72411057986418e-03 -3.05224555097830e-02 2.79139963130885e-03 -3.12763601608750e-02 2.86035098866284e-03 -3.20488862568480e-02 2.93100573108510e-03 -3.28404937473920e-02 3.00340595392321e-03 -3.36516539429530e-02 3.07759479393012e-03 -3.44828497953440e-02 3.15361645511251e-03 -3.53345761852890e-02 3.23151623522596e-03 -3.62073402170660e-02 3.31134055293624e-03 -3.71016615204270e-02 3.39313697566155e-03 -3.80180725599820e-02 3.47695424811490e-03 -3.89571189522130e-02 3.56284232156381e-03 -3.99193597903330e-02 3.65085238382688e-03 -4.09053679771540e-02 3.74103689002548e-03 -4.19157305661900e-02 3.83344959411155e-03 -4.29510491111750e-02 3.92814558119008e-03 -4.40119400242210e-02 4.02518130066060e-03 -4.50990349428190e-02 4.12461460019443e-03 -4.62129811059070e-02 4.22650476057352e-03 -4.73544417392220e-02 4.33091253141398e-03 -4.85240964501810e-02 4.43790016779420e-03 -4.97226416325010e-02 4.54753146781668e-03 -5.09507908808230e-02 4.65987181112418e-03 -5.22092754155800e-02 4.77498819839828e-03 -5.34988445183450e-02 4.89294929186870e-03 -5.48202659779480e-02 5.01382545685541e-03 -5.61743265476030e-02 5.13768880437740e-03 -5.75618324133290e-02 5.26461323485418e-03 -5.89836096739380e-02 5.39467448293159e-03 -6.04405048328840e-02 5.52795016346122e-03 -6.19333853022570e-02 5.66451981866790e-03 -6.34631399192220e-02 5.80446496653747e-03 -6.50306794752270e-02 5.94786915045731e-03 -6.66369372582650e-02 6.09481799014909e-03 -6.82828696085440e-02 6.24539923392659e-03 -6.99694564878750e-02 6.39970281231863e-03 -7.16977020631260e-02 6.55782089309656e-03 -7.34686353040850e-02 6.71984793774520e-03 -7.52833105960960e-02 6.88588075942123e-03 -7.71428083678200e-02 7.05601858244239e-03 -7.90482357345050e-02 7.23036310335218e-03 -8.10007271571470e-02 7.40901855360675e-03 -8.30014451179280e-02 7.59209176393423e-03 -8.50515808123410e-02 7.77969223041579e-03 -8.71523548584060e-02 7.97193218234135e-03 -8.93050180234090e-02 8.16892665189490e-03 -9.15108519685870e-02 8.37079354572528e-03 -9.37711700122110e-02 8.57765371846270e-03 -9.60873179115130e-02 8.78963104824164e-03 -9.84606746639270e-02 9.00685251429416e-03 -1.00892653328130e-01 9.22944827667968e-03 -1.03384701865330e-01 9.45755175822414e-03 -1.05938304001400e-01 9.69129972873204e-03 -1.08554980110240e-01 9.93083239155887e-03 -1.11236288118960e-01 1.01762934726169e-02 -1.13983824435500e-01 1.04278303118878e-02 -1.16799224899060e-01 1.06855939575456e-02 -1.19684165754060e-01 1.09497392627683e-02 -1.22640364648190e-01 1.12204249853297e-02 -1.25669581655000e-01 1.14978138900800e-02 -1.28773620321880e-01 1.17820728544075e-02 -1.31954328743830e-01 1.20733729767959e-02 -1.35213600663800e-01 1.23718896885841e-02 -1.38553376600200e-01 1.26778028690509e-02 -1.41975645002220e-01 1.29912969639487e-02 -1.45482443433780e-01 1.33125611076079e-02 -1.49075859786590e-01 1.36417892487583e-02 -1.52758033523320e-01 1.39791802801985e-02 -1.56531156951350e-01 1.43249381724765e-02 -1.60397476528040e-01 1.46792721117242e-02 -1.64359294198290e-01 1.50423966418117e-02 -1.68418968764980e-01 1.54145318110119e-02 -1.72578917293480e-01 1.57959033233220e-02 -1.76841616550630e-01 1.61867426946686e-02 -1.81209604479430e-01 1.65872874141641e-02 -1.85685481710070e-01 1.69977811106367e-02 -1.90271913108310e-01 1.74184737246543e-02 -1.94971629362080e-01 1.78496216862609e-02 -1.99787428607330e-01 1.82914880986612e-02 -2.04722178093930e-01 1.87443429281211e-02 -2.09778815892850e-01 1.92084632003118e-02 -2.14960352645400e-01 1.96841332033945e-02 -2.20269873355740e-01 2.01716446981088e-02 -2.25710539227630e-01 2.06712971351599e-02 -2.31285589546550e-01 2.11833978802065e-02 -2.36998343608350e-01 2.17082624467420e-02 -2.42852202695480e-01 2.22462147372092e-02 -2.48850652102060e-01 2.27975872926464e-02 -2.54997263208980e-01 2.33627215512049e-02 -2.61295695610240e-01 2.39419681158580e-02 -2.67749699291810e-01 2.45356870316341e-02 -2.74363116864320e-01 2.51442480726915e-02 -2.81139885850870e-01 2.57680310395473e-02 -2.88084041031390e-01 2.64074260667514e-02 -2.95199716844860e-01 2.70628339412901e-02 -3.02491149850930e-01 2.77346664319386e-02 -3.09962681252250e-01 2.84233466297832e-02 -3.17618759479180e-01 2.91293093000304e-02 -3.25463942838310e-01 2.98530012451878e-02 -3.33502902226420e-01 3.05948816795804e-02 -3.41740423911410e-01 3.13554226150746e-02 -3.50181412382020e-01 3.21351092577345e-02 -3.58830893267860e-01 3.29344404149232e-02 -3.67694016331580e-01 3.37539289122586e-02 -3.76776058534970e-01 3.45941020194022e-02 -3.86082427180780e-01 3.54555018835300e-02 -3.95618663132140e-01 3.63386859688498e-02 -4.05390444111510e-01 3.72442275000565e-02 -4.15403588081060e-01 3.81727159072221e-02 -4.25664056706670e-01 3.91247572687573e-02 -4.36177958907320e-01 4.01009747485488e-02 -4.46951554492330e-01 4.11020090222558e-02 -4.57991257888290e-01 4.21285186868505e-02 -4.69303641958130e-01 4.31811806460709e-02 -4.80895441914500e-01 4.42606904630972e-02 -4.92773559329790e-01 4.53677626698578e-02 -5.04945066245230e-01 4.65031310204644e-02 -5.17417209381490e-01 4.76675486737189e-02 -5.30197414453210e-01 4.88617882869367e-02 -5.43293290590210e-01 5.00866419999598e-02 -5.56712634867780e-01 5.13429212844766e-02 -5.70463436949020e-01 5.26314566293214e-02 -5.84553883841660e-01 5.39530970273100e-02 -5.98992364772550e-01 5.53087092232970e-02 -6.13787476182430e-01 5.66991766763246e-02 -6.28948026844140e-01 5.81253981810367e-02 -6.44483043107190e-01 5.95882860845925e-02 -6.60401774271930e-01 6.10887640252994e-02 -6.76713698096450e-01 6.26277641077801e-02 -6.93428526439430e-01 6.42062234165874e-02 -7.10556211042490e-01 6.58250797558761e-02 -7.28106949455240e-01 6.74852664866738e-02 -7.46091191106780e-01 6.91877063156602e-02 -7.64519643527120e-01 7.09333038699866e-02 -7.83403278722240e-01 7.27229368717890e-02 -8.02753339706680e-01 7.45574457035771e-02 -8.22581347197430e-01 7.64376211322501e-02 -8.42899106473210e-01 7.83641899351941e-02 -8.63718714403100e-01 8.03377981477322e-02 -8.85052566648850e-01 8.23589916278344e-02 -9.06913365045080e-01 8.44281936129753e-02 -9.29314125161690e-01 8.65456789268897e-02 -9.52268184053190e-01 8.87115444830932e-02 -9.75789208199300e-01 9.09256757303218e-02 -9.99891201641820e-01 9.31877086959987e-02 -1.02458851432240e+00 9.54969873121882e-02 -1.04989585062610e+00 9.78525157594294e-02 -1.07582827813660e+00 1.00252905643976e-01 -1.10240123660660e+00 1.02696317941233e-01 -1.12963054715080e+00 1.05180399799740e-01 -1.15753242166540e+00 1.07702216517834e-01 -1.18612347248050e+00 1.10258179285749e-01 -1.21542072225080e+00 1.12843969642035e-01 -1.24544161409040e+00 1.15454462031709e-01 -1.27620402195840e+00 1.18083646381231e-01 -1.30772626130080e+00 1.20724553224871e-01 -1.34002709995490e+00 1.23369184623030e-01 -1.37312576932380e+00 1.26008454892094e-01 -1.40704197582610e+00 1.28632145990120e-01 -1.44179591262900e+00 1.31228883228015e-01 -1.47740827167090e+00 1.33786137737057e-01 -1.51390025598120e+00 1.36290262727621e-01 -1.55129359230390e+00 1.38726570903325e-01 -1.58961054403390e+00 1.41079460299219e-01 -1.62887392447150e+00 1.43332595120750e-01 -1.66910711040590e+00 1.45469146677839e-01 -1.71033405603300e+00 1.47472097045253e-01 -1.75257930721700e+00 1.49324604461570e-01 -1.79586801610520e+00 1.51010424588782e-01 -1.84022595610300e+00 1.52514375573252e-01 -1.88567953721880e+00 1.53822827504896e-01 -1.93225582178810e+00 1.54924188705360e-01 -1.97998254058630e+00 1.55809352897909e-01 -2.02888810933870e+00 1.56472063678704e-01 -2.07900164563940e+00 1.56909147205289e-01 -2.13035298628670e+00 1.57120562576649e-01 -2.18297270504800e+00 1.57109224663516e-01 -2.23689213086270e+00 1.56880569871632e-01 -2.29214336649500e+00 1.56441866762374e-01 -2.34875930764740e+00 1.55801349323430e-01 -2.40677366254630e+00 1.54967448231612e-01 -2.46622097201120e+00 1.53948507823575e-01 -2.52713663001980e+00 1.52752863128269e-01 -2.58955690478130e+00 1.51388819761537e-01 -2.65351896032940e+00 1.49864652076221e-01 -2.71906087864960e+00 1.48188608497914e-01 -2.78622168235220e+00 1.46368915150876e-01 -2.85504135790630e+00 1.44413779122758e-01 -2.92556087944660e+00 1.42331390550665e-01 -2.99782223316890e+00 1.40129922900146e-01 -3.07186844232820e+00 1.37817530780616e-01 -3.14774359285370e+00 1.35402344632814e-01 -3.22549285959720e+00 1.32892461666202e-01 -3.30516253322930e+00 1.30295932530245e-01 -3.38680004780000e+00 1.27620743384291e-01 -3.47045400898070e+00 1.24874793288719e-01 -3.55617422300250e+00 1.22065867165869e-01 -3.64401172631070e+00 1.19201604950879e-01 -3.73401881595050e+00 1.16289467938109e-01 -3.82624908070450e+00 1.13336703687669e-01 -3.92075743299790e+00 1.10350311148964e-01 -4.01760014159300e+00 1.07337007846219e-01 -4.11683486509030e+00 1.04303201029700e-01 -4.21852068625800e+00 1.01254964615780e-01 -4.32271814720860e+00 9.81980235186488e-02 -4.42948928544470e+00 9.51377466330415e-02 -4.53889767079510e+00 9.20791492835435e-02 -4.65100844326380e+00 8.90269054398800e-02 -4.76588835181240e+00 8.59853694388456e-02 -4.88360579410220e+00 8.29586063815723e-02 -5.00423085721650e+00 7.99504298195851e-02 -5.12783535938970e+00 7.69644448350135e-02 -5.25449289276670e+00 7.40040941932920e-02 -5.38427886721800e+00 7.10727049362628e-02 -5.51727055523830e+00 6.81735326267490e-02 -5.65354713795270e+00 6.53098004846721e-02 -5.79318975226010e+00 6.24847308904871e-02 -5.93628153914090e+00 5.97015671763842e-02 -6.08290769315770e+00 5.69635842560659e-02 -6.23315551317870e+00 5.42740874103876e-02 -6.38711445435420e+00 5.16363993765862e-02 -6.54487618137680e+00 4.90538366988301e-02 -6.70653462305680e+00 4.65296770042914e-02 -6.87218602824630e+00 4.40671191406151e-02 -7.04192902314400e+00 4.16692401827194e-02 -7.21586467001560e+00 3.93389486100598e-02 -7.39409652736500e+00 3.70789398134302e-02 -7.57673071159090e+00 3.48916541746949e-02 -7.76387596016720e+00 3.27792399689471e-02 -7.95564369638330e+00 3.07435224530983e-02 -8.15214809568400e+00 2.87859800282530e-02 -8.35350615364740e+00 2.69077279117053e-02 -8.55983775564250e+00 2.51095093561440e-02 -8.77126574820690e+00 2.33916941245947e-02 -8.98791601218760e+00 2.17542836762513e-02 -9.20991753768860e+00 2.01969223389554e-02 -9.43740250086950e+00 1.87189136323521e-02 -9.67050634264100e+00 1.73192408518425e-02 -9.90936784930420e+00 1.59965910168175e-02 -1.01541292351820e+01 1.47493813163287e-02 -1.04049362272910e+01 1.35757872414963e-02 -1.06619381521050e+01 1.24737716679310e-02 -1.09252880244620e+01 1.14411142358991e-02 -1.11951426386660e+01 1.04754404653333e-02 -1.14716626618410e+01 9.57425013244713e-03 -1.17550127295890e+01 8.73494452153946e-03 -1.20453615440100e+01 7.95485224717440e-03 -1.23428819741470e+01 7.23125341684062e-03 -1.26477511589080e+01 6.56140197172847e-03 -1.29601506125330e+01 5.94254610173358e-03 -1.32802663326630e+01 5.37194668601292e-03 -1.36082889110800e+01 4.84689378564313e-03 -1.39444136471830e+01 4.36472065236285e-03 -1.42888406642690e+01 3.92281965938519e-03 -1.46417750286760e+01 3.51864093592167e-03 -1.50034268718840e+01 3.14972816040186e-03 -1.53740115156200e+01 2.81370819210242e-03 -1.57537496000560e+01 2.50828577515797e-03 -1.61428672151770e+01 2.23125733893687e-03 -1.65415960353920e+01 1.98051772297682e-03 -1.69501734574660e+01 1.75406222150548e-03 -1.73688427418660e+01 1.54998766351602e-03 -1.77978531575900e+01 1.36649263819768e-03 -1.82374601305820e+01 1.20187697002272e-03 -1.86879253958070e+01 1.05454054144837e-03 -1.91495171530840e+01 9.22981554299949e-04 -1.96225102267650e+01 8.05794313732650e-04 -2.01071862293660e+01 7.01666611441180e-04 -2.06038337292320e+01 6.09376777673599e-04 -2.11127484223440e+01 5.27790464775635e-04 -2.16342333083750e+01 4.55857218364993e-04 -2.21685988710920e+01 3.92606886554539e-04 -2.27161632632080e+01 3.37145916990343e-04 -2.32772524958100e+01 2.88653507187777e-04 -2.38522006324560e+01 2.46378193402543e-04 -2.44413499880780e+01 2.09632485549891e-04 -2.50450513327830e+01 1.77792409292547e-04 -2.56636641007030e+01 1.50291348733673e-04 -2.62975566039900e+01 1.26614994818104e-04 -2.69471062521090e+01 1.06298965482771e-04 -2.76126997765360e+01 8.89256612110038e-05 -2.82947334610160e+01 7.41207550832144e-05 -2.89936133775030e+01 6.15498181275565e-05 -2.97097556279280e+01 5.09150857856550e-05 -3.04435865919380e+01 4.19523706201989e-05 -3.11955431807580e+01 3.44281255937312e-05 -3.19660730973230e+01 2.81366613596386e-05 -3.27556351028270e+01 2.28975200463623e-05 -3.35646992898670e+01 1.85530070047047e-05 -3.43937473623270e+01 1.49658809472375e-05 -3.52432729221760e+01 1.20172018591402e-05 -3.61137817633540e+01 9.60433502251876e-06 -3.70057921729090e+01 7.63910849130426e-06 -3.79198352395800e+01 6.04612039996140e-06 -3.88564551699970e+01 4.76119160339696e-06 -3.98162096126960e+01 3.72995834245469e-06 -4.07996699901300e+01 2.90659892150912e-06 -4.18074218388860e+01 2.25268778156088e-06 -4.28400651583060e+01 1.73616986060481e-06 -4.38982147677160e+01 1.33044775670368e-06 -4.49825006724790e+01 1.01357394902924e-06 -4.60935684390890e+01 7.67540186237710e-07 -4.72320795795350e+01 5.77656115408853e-07 -4.83987119451490e+01 4.32009291571440e-07 -4.95941601301950e+01 3.20998868730704e-07 -5.08191358854100e+01 2.36935517866841e-07 -5.20743685417800e+01 1.73700433941712e-07 -5.33606054447620e+01 1.26456670116422e-07 -5.46786123992480e+01 9.14064603736330e-08 -5.60291741255090e+01 6.55886488392839e-08 -5.74130947264090e+01 4.67108230178335e-08 -5.88311981661510e+01 3.30112373545810e-08 -6.02843287608550e+01 2.31461025019616e-08 -6.17733516812480e+01 1.60982951201805e-08 -6.32991534677750e+01 1.11040050527108e-08 -6.48626425584290e+01 7.59427491402966e-09 -6.64647498296220e+01 5.14879634905543e-09 -6.81064291504140e+01 3.45970627334905e-09 -6.97886579504290e+01 2.30345744403145e-09 -7.15124378018050e+01 0.00000000000000e+00 -7.32787950155100e+01 0.00000000000000e+00 -7.50887812523930e+01 0.00000000000000e+00 -7.69434741493270e+01 0.00000000000000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi43.inp b/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi43.inp deleted file mode 100644 index b2c4d756c..000000000 --- a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/psi43.inp +++ /dev/null @@ -1,525 +0,0 @@ -2.15517241379310e-04 3.44498511992821e-07 -2.20840517241380e-04 3.61726913582449e-07 -2.26295278017240e-04 3.79816909086132e-07 -2.31884771384270e-04 3.98811586893046e-07 -2.37612325237460e-04 4.18756211852096e-07 -2.43481349670820e-04 4.39698270219505e-07 -2.49495339007690e-04 4.61687643536257e-07 -2.55657873881180e-04 4.84776708204032e-07 -2.61972623366050e-04 5.09020459928109e-07 -2.68443347163190e-04 5.34476644753758e-07 -2.75073897838120e-04 5.61205896610583e-07 -2.81868223114720e-04 5.89271881735774e-07 -2.88830368225660e-04 6.18741450320158e-07 -2.95964478320830e-04 6.49684795737655e-07 -3.03274800935350e-04 6.82175621738031e-07 -3.10765688518460e-04 7.16291318000788e-07 -3.18441601024860e-04 7.52113144468748e-07 -3.26307108570180e-04 7.89726424899680e-07 -3.34366894151860e-04 8.29220750097958e-07 -3.42625756437410e-04 8.70690191309235e-07 -3.51088612621420e-04 9.14233524287501e-07 -3.59760501353160e-04 9.59954464567227e-07 -3.68646585736590e-04 1.00796191450157e-06 -3.77752156404280e-04 1.05837022265517e-06 -3.87082634667470e-04 1.11129945616863e-06 -3.96643575743750e-04 1.16687568674422e-06 -4.06440672064620e-04 1.22523129093349e-06 -4.16479756664620e-04 1.28650526544225e-06 -4.26766806654240e-04 1.35084355820383e-06 -4.37307946778600e-04 1.41839941600911e-06 -4.48109453064030e-04 1.48933374952145e-06 -4.59177756554710e-04 1.56381551654590e-06 -4.70519447141610e-04 1.64202212446546e-06 -4.82141277486010e-04 1.72413985280300e-06 -4.94050167039910e-04 1.81036429691541e-06 -5.06253206165800e-04 1.90090083387640e-06 -5.18757660358090e-04 1.99596511165824e-06 -5.31570974568940e-04 2.09578356277637e-06 -5.44700777640790e-04 2.20059394362215e-06 -5.58154886848520e-04 2.31064590076700e-06 -5.71941312553680e-04 2.42620156558521e-06 -5.86068262973750e-04 2.54753617861709e-06 -6.00544149069200e-04 2.67493874515160e-06 -6.15377589551210e-04 2.80871272359792e-06 -6.30577416013130e-04 2.94917674827935e-06 -6.46152678188650e-04 3.09666538837484e-06 -6.62112649339910e-04 3.25152994481347e-06 -6.78466831778610e-04 3.41413928702112e-06 -6.95224962523540e-04 3.58488073151259e-06 -7.12397019097870e-04 3.76416096441948e-06 -7.29993225469590e-04 3.95240701015422e-06 -7.48024058138690e-04 4.15006724851439e-06 -7.66500252374710e-04 4.35761248265142e-06 -7.85432808608370e-04 4.57553706044716e-06 -8.04832998980990e-04 4.80436005196853e-06 -8.24712374055830e-04 5.04462648580396e-06 -8.45082769695000e-04 5.29690864722820e-06 -8.65956314106470e-04 5.56180744128420e-06 -8.87345435064900e-04 5.83995382403245e-06 -9.09262867311000e-04 6.13201030537151e-06 -9.31721660133590e-04 6.43867252701290e-06 -9.54735185138880e-04 6.76067091936732e-06 -9.78317144211820e-04 7.09877244128560e-06 -1.00248157767380e-03 7.45378240680301e-06 -1.02724287264240e-03 7.82654640322880e-06 -1.05261577159670e-03 8.21795230516250e-06 -1.07861538115510e-03 8.62893238921655e-06 -1.10525718106960e-03 9.06046555449287e-06 -1.13255703344200e-03 9.51357965410118e-06 -1.16053119216810e-03 9.98935394326204e-06 -1.18919631261460e-03 1.04889216498415e-05 -1.21856946153620e-03 1.10134726734117e-05 -1.24866812723610e-03 1.15642564192981e-05 -1.27951022997890e-03 1.21425847743337e-05 -1.31111413265940e-03 1.27498352314227e-05 -1.34349865173600e-03 1.33874541703495e-05 -1.37668306843390e-03 1.40569603026357e-05 -1.41068714022420e-03 1.47599482886750e-05 -1.44553111258780e-03 1.54980925357207e-05 -1.48123573106870e-03 1.62731511858048e-05 -1.51782225362610e-03 1.70869703030582e-05 -1.55531246329070e-03 1.79414882704193e-05 -1.59372868113390e-03 1.88387404061912e-05 -1.63309377955790e-03 1.97808638114347e-05 -1.67343119591300e-03 2.07701024597548e-05 -1.71476494645210e-03 2.18088125415804e-05 -1.75711964062940e-03 2.28994680756707e-05 -1.80052049575300e-03 2.40446668012015e-05 -1.84499335199810e-03 2.52471363644697e-05 -1.89056468779240e-03 2.65097408149302e-05 -1.93726163558090e-03 2.78354874260360e-05 -1.98511199797980e-03 2.92275338571227e-05 -2.03414426432990e-03 3.06891956733766e-05 -2.08438762765880e-03 3.22239542417893e-05 -2.13587200206200e-03 3.38354650218938e-05 -2.18862804051290e-03 3.55275662710256e-05 -2.24268715311360e-03 3.73042881847994e-05 -2.29808152579550e-03 3.91698624945933e-05 -2.35484413948260e-03 4.11287325448477e-05 -2.41300878972790e-03 4.31855638741792e-05 -2.47261010683410e-03 4.53452553254983e-05 -2.53368357647290e-03 4.76129507115153e-05 -2.59626556081180e-03 4.99940510634955e-05 -2.66039332016390e-03 5.24942274922740e-05 -2.72610503517190e-03 5.51194346922458e-05 -2.79343982954070e-03 5.78759251203891e-05 -2.86243779333030e-03 6.07702638840849e-05 -2.93314000682560e-03 6.38093443731165e-05 -3.00558856499420e-03 6.70004046730889e-05 -3.07982660254950e-03 7.03510447992202e-05 -3.15589831963250e-03 7.38692447915739e-05 -3.23384900812740e-03 7.75633837147317e-05 -3.31372507862820e-03 8.14422596070530e-05 -3.39557408807030e-03 8.55151104270319e-05 -3.47944476804560e-03 8.97916360464686e-05 -3.56538705381630e-03 9.42820213427913e-05 -3.65345211404560e-03 9.89969604454095e-05 -3.74369238126250e-03 1.03947682193711e-04 -3.83616158307970e-03 1.09145976867229e-04 -3.93091477418180e-03 1.14604224251478e-04 -4.02800836910410e-03 1.20335423106156e-04 -4.12750017582090e-03 1.26353222105701e-04 -4.22944943016370e-03 1.32671952325722e-04 -4.33391683108880e-03 1.39306661352454e-04 -4.44096457681670e-03 1.46273149096233e-04 -4.55065640186400e-03 1.53588005394013e-04 -4.66305761499010e-03 1.61268649490209e-04 -4.77823513808030e-03 1.69333371489614e-04 -4.89625754599090e-03 1.77801375880653e-04 -5.01719510737690e-03 1.86692827232382e-04 -5.14111982652910e-03 1.96028898173532e-04 -5.26810548624440e-03 2.05831819767474e-04 -5.39822769175460e-03 2.16124934402440e-04 -5.53156391574090e-03 2.26932751322546e-04 -5.66819354445970e-03 2.38281004931183e-04 -5.80819792500790e-03 2.50196716004753e-04 -5.95166041375560e-03 2.62708255962133e-04 -6.09866642597530e-03 2.75845414341721e-04 -6.24930348669690e-03 2.89639469645986e-04 -6.40366128281830e-03 3.04123263721249e-04 -6.56183171650400e-03 3.19331279848683e-04 -6.72390895990160e-03 3.35299724731058e-04 -6.88998951121120e-03 3.52066614569385e-04 -7.06017225213810e-03 3.69671865432717e-04 -7.23455850676590e-03 3.88157388134779e-04 -7.41325210188300e-03 4.07567187841332e-04 -7.59635942879950e-03 4.27947468643628e-04 -7.78398950669090e-03 4.49346743344626e-04 -7.97625404750610e-03 4.71815948716862e-04 -8.17326752247950e-03 4.95408566503894e-04 -8.37514723028480e-03 5.20180750450205e-04 -8.58201336687280e-03 5.46191459658965e-04 -8.79398909703460e-03 5.73502598591277e-04 -9.01120062773130e-03 6.02179164036498e-04 -9.23377728323630e-03 6.32289399398826e-04 -9.46185158213220e-03 6.63904956662988e-04 -9.69555931621090e-03 6.97101066418857e-04 -9.93503963132130e-03 7.31956716344187e-04 -1.01804351102150e-02 7.68554838563561e-04 -1.04318918574370e-02 8.06982506322741e-04 -1.06895595863160e-02 8.47331140438047e-04 -1.09535917080980e-02 8.89696726004479e-04 -1.12241454232880e-02 9.34180039867518e-04 -1.15013818152430e-02 9.80886889390398e-04 -1.17854659460800e-02 1.02992836307328e-03 -1.20765669549480e-02 1.08142109360741e-03 -1.23748581587350e-02 1.13548753397666e-03 -1.26805171552560e-02 1.19225624724734e-03 -1.29937259289910e-02 1.25186221071966e-03 -1.33146709594370e-02 1.31444713514393e-03 -1.36435433321350e-02 1.38015979974165e-03 -1.39805388524390e-02 1.44915640380424e-03 -1.43258581620940e-02 1.52160093568180e-03 -1.46797068586970e-02 1.59766556000995e-03 -1.50422956181070e-02 1.67753102406670e-03 -1.54138403198750e-02 1.76138708419027e-03 -1.57945621757750e-02 1.84943295323637e-03 -1.61846878615170e-02 1.94187777009437e-03 -1.65844496516970e-02 2.03894109233826e-03 -1.69940855580930e-02 2.14085341312867e-03 -1.74138394713780e-02 2.24785670354164e-03 -1.78439613063210e-02 2.36020498155374e-03 -1.82847071505880e-02 2.47816490896546e-03 -1.87363394172070e-02 2.60201641761085e-03 -1.91991270008120e-02 2.73205336625663e-03 -1.96733454377320e-02 2.86858422966485e-03 -2.01592770700440e-02 3.01193282135427e-03 -2.06572112136740e-02 3.16243905166956e-03 -2.11674443306520e-02 3.32045972283783e-03 -2.16902802056190e-02 3.48636936276776e-03 -2.22260301266980e-02 3.66056109942438e-03 -2.27750130708270e-02 3.84344757769509e-03 -2.33375558936770e-02 4.03546192074330e-03 -2.39139935242510e-02 4.23705873793840e-03 -2.45046691643000e-02 4.44871518153320e-03 -2.51099344926580e-02 4.67093205436215e-03 -2.57301498746260e-02 4.90423497092219e-03 -2.63656845765300e-02 5.14917557429937e-03 -2.70169169855700e-02 5.40633281151448e-03 -2.76842348351130e-02 5.67631426994679e-03 -2.83680354355410e-02 5.95975757762993e-03 -2.90687259107990e-02 6.25733187029938e-03 -2.97867234407950e-02 6.56973932820243e-03 -3.05224555097830e-02 6.89771678578742e-03 -3.12763601608750e-02 7.24203741751525e-03 -3.20488862568480e-02 7.60351250315075e-03 -3.28404937473920e-02 7.98299327601400e-03 -3.36516539429530e-02 8.38137285780551e-03 -3.44828497953440e-02 8.79958828373057e-03 -3.53345761852890e-02 9.23862262178255e-03 -3.62073402170660e-02 9.69950719017074e-03 -3.71016615204270e-02 1.01833238769998e-02 -3.80180725599820e-02 1.06912075664386e-02 -3.89571189522130e-02 1.12243486757311e-02 -3.99193597903330e-02 1.17839958075284e-02 -4.09053679771540e-02 1.23714585221360e-02 -4.19157305661900e-02 1.29881102343727e-02 -4.29510491111750e-02 1.36353912398595e-02 -4.40119400242210e-02 1.43148118756306e-02 -4.50990349428190e-02 1.50279558200683e-02 -4.62129811059070e-02 1.57764835372196e-02 -4.73544417392220e-02 1.65621358706303e-02 -4.85240964501810e-02 1.73867377918610e-02 -4.97226416325010e-02 1.82522023088983e-02 -5.09507908808230e-02 1.91605345396546e-02 -5.22092754155800e-02 2.01138359557491e-02 -5.34988445183450e-02 2.11143088017080e-02 -5.48202659779480e-02 2.21642606946410e-02 -5.61743265476030e-02 2.32661094093236e-02 -5.75618324133290e-02 2.44223878534654e-02 -5.89836096739380e-02 2.56357492377364e-02 -6.04405048328840e-02 2.69089724448335e-02 -6.19333853022570e-02 2.82449676015781e-02 -6.34631399192220e-02 2.96467818576249e-02 -6.50306794752270e-02 3.11176053738540e-02 -6.66369372582650e-02 3.26607775230510e-02 -6.82828696085440e-02 3.42797933046946e-02 -6.99694564878750e-02 3.59783099750266e-02 -7.16977020631260e-02 3.77601538926053e-02 -7.34686353040850e-02 3.96293275785649e-02 -7.52833105960960e-02 4.15900169896097e-02 -7.71428083678200e-02 4.36465990004539e-02 -7.90482357345050e-02 4.58036490908683e-02 -8.10007271571470e-02 4.80659492307752e-02 -8.30014451179280e-02 5.04384959549028e-02 -8.50515808123410e-02 5.29265086162635e-02 -8.71523548584060e-02 5.55354378052662e-02 -8.93050180234090e-02 5.82709739185007e-02 -9.15108519685870e-02 6.11390558580818e-02 -9.37711700122110e-02 6.41458798389837e-02 -9.60873179115130e-02 6.72979082779019e-02 -9.84606746639270e-02 7.06018787328473e-02 -1.00892653328130e-01 7.40648128578680e-02 -1.03384701865330e-01 7.76940253319737e-02 -1.05938304001400e-01 8.14971327153463e-02 -1.08554980110240e-01 8.54820621795164e-02 -1.11236288118960e-01 8.96570600508379e-02 -1.13983824435500e-01 9.40307000985739e-02 -1.16799224899060e-01 9.86118914903664e-02 -1.19684165754060e-01 1.03409886327934e-01 -1.22640364648190e-01 1.08434286665343e-01 -1.25669581655000e-01 1.13695050900780e-01 -1.28773620321880e-01 1.19202499419595e-01 -1.31954328743830e-01 1.24967319353061e-01 -1.35213600663800e-01 1.31000568301619e-01 -1.38553376600200e-01 1.37313676855318e-01 -1.41975645002220e-01 1.43918449726004e-01 -1.45482443433780e-01 1.50827065286395e-01 -1.49075859786590e-01 1.58052073290403e-01 -1.52758033523320e-01 1.65606390525936e-01 -1.56531156951350e-01 1.73503294127456e-01 -1.60397476528040e-01 1.81756412248970e-01 -1.64359294198290e-01 1.90379711769999e-01 -1.68418968764980e-01 1.99387482677436e-01 -1.72578917293480e-01 2.08794318733476e-01 -1.76841616550630e-01 2.18615094006837e-01 -1.81209604479430e-01 2.28864934807784e-01 -1.85685481710070e-01 2.39559186530498e-01 -1.90271913108310e-01 2.50713374866821e-01 -1.94971629362080e-01 2.62343160814514e-01 -1.99787428607330e-01 2.74464288861117e-01 -2.04722178093930e-01 2.87092527681795e-01 -2.09778815892850e-01 3.00243602645441e-01 -2.14960352645400e-01 3.13933119380604e-01 -2.20269873355740e-01 3.28176477609489e-01 -2.25710539227630e-01 3.42988774417642e-01 -2.31285589546550e-01 3.58384696088085e-01 -2.36998343608350e-01 3.74378397594265e-01 -2.42852202695480e-01 3.90983368816935e-01 -2.48850652102060e-01 4.08212286527856e-01 -2.54997263208980e-01 4.26076851170314e-01 -2.61295695610240e-01 4.44587607465193e-01 -2.67749699291810e-01 4.63753747884744e-01 -2.74363116864320e-01 4.83582898066917e-01 -2.81139885850870e-01 5.04080883295811e-01 -2.88084041031390e-01 5.25251475252120e-01 -2.95199716844860e-01 5.47096118346233e-01 -3.02491149850930e-01 5.69613635091547e-01 -3.09962681252250e-01 5.92799910163108e-01 -3.17618759479180e-01 6.16647553021151e-01 -3.25463942838310e-01 6.41145539271602e-01 -3.33502902226420e-01 6.66278831289993e-01 -3.41740423911410e-01 6.92027979061900e-01 -3.50181412382020e-01 7.18368702700013e-01 -3.58830893267860e-01 7.45271458693557e-01 -3.67694016331580e-01 7.72700992638558e-01 -3.76776058534970e-01 8.00615881995120e-01 -3.86082427180780e-01 8.28968073329090e-01 -3.95618663132140e-01 8.57702419522213e-01 -4.05390444111510e-01 8.86756223584140e-01 -4.15403588081060e-01 9.16058796969044e-01 -4.25664056706670e-01 9.45531041685257e-01 -4.36177958907320e-01 9.75085066979441e-01 -4.46951554492330e-01 1.00462385296032e+00 -4.57991257888290e-01 1.03404097517506e+00 -4.69303641958130e-01 1.06322040583058e+00 -4.80895441914500e-01 1.09203640901346e+00 -4.92773559329790e-01 1.12035354884530e+00 -5.04945066245230e-01 1.14802683093842e+00 -5.17417209381490e-01 1.17490199869575e+00 -5.30197414453210e-01 1.20081600681673e+00 -5.43293290590210e-01 1.22559769469627e+00 -5.56712634867780e-01 1.24906868209038e+00 -5.70463436949020e-01 1.27104450830392e+00 -5.84553883841660e-01 1.29133603405961e+00 -5.98992364772550e-01 1.30975112195162e+00 -6.13787476182430e-01 1.32609660679768e+00 -6.28948026844140e-01 1.34018056111834e+00 -6.44483043107190e-01 1.35181485326668e+00 -6.60401774271930e-01 1.36081798632572e+00 -6.76713698096450e-01 1.36701819478479e+00 -6.93428526439430e-01 1.37025676328938e+00 -7.10556211042490e-01 1.37039151765091e+00 -7.28106949455240e-01 1.36730042316478e+00 -7.46091191106780e-01 1.36088520964616e+00 -7.64519643527120e-01 1.35107492716485e+00 -7.83403278722240e-01 1.33782932213192e+00 -8.02753339706680e-01 1.32114191121885e+00 -8.22581347197430e-01 1.30104262176983e+00 -8.42899106473210e-01 1.27759986314878e+00 -8.63718714403100e-01 1.25092189511220e+00 -8.85052566648850e-01 1.22115736793023e+00 -9.06913365045080e-01 1.18849492547177e+00 -9.29314125161690e-01 1.15316178731228e+00 -9.52268184053190e-01 1.11542125902977e+00 -9.75789208199300e-01 1.07556916052789e+00 -9.99891201641820e-01 1.03392920895851e+00 -1.02458851432240e+00 9.90847443373204e-01 -1.04989585062610e+00 9.46685829641712e-01 -1.07582827813660e+00 9.01815232888675e-01 -1.10240123660660e+00 8.56607986893178e-01 -1.12963054715080e+00 8.11430321726814e-01 -1.15753242166540e+00 7.66634929005925e-01 -1.18612347248050e+00 7.22553945945286e-01 -1.21542072225080e+00 6.79492623620674e-01 -1.24544161409040e+00 6.37723938627050e-01 -1.27620402195840e+00 5.97484211217817e-01 -1.30772626130080e+00 5.58970060065821e-01 -1.34002709995490e+00 5.22336579772056e-01 -1.37312576932380e+00 4.87696789818649e-01 -1.40704197582610e+00 4.55122267800300e-01 -1.44179591262900e+00 4.24644834398593e-01 -1.47740827167090e+00 3.96259120195368e-01 -1.51390025598120e+00 3.69925827286831e-01 -1.55129359230390e+00 3.45575504108000e-01 -1.58961054403390e+00 3.23112680159441e-01 -1.62887392447150e+00 3.02420256109133e-01 -1.66910711040590e+00 2.83364108328478e-01 -1.71033405603300e+00 2.65797935133544e-01 -1.75257930721700e+00 2.49568428670854e-01 -1.79586801610520e+00 2.34520877969046e-01 -1.84022595610300e+00 2.20505263797892e-01 -1.88567953721880e+00 2.07382757761986e-01 -1.93225582178810e+00 1.95032262363564e-01 -1.97998254058630e+00 1.83356108842641e-01 -2.02888810933870e+00 1.72283643907890e-01 -2.07900164563940e+00 1.61771579775538e-01 -2.13035298628670e+00 1.51793329556129e-01 -2.18297270504800e+00 1.42327461219067e-01 -2.23689213086270e+00 1.33353472629704e-01 -2.29214336649500e+00 1.24851305683354e-01 -2.34875930764740e+00 1.16801379553125e-01 -2.40677366254630e+00 1.09184617596822e-01 -2.46622097201120e+00 1.01982468322436e-01 -2.52713663001980e+00 9.51769208620689e-02 -2.58955690478130e+00 8.87505154328863e-02 -2.65351896032940e+00 8.26863492709444e-02 -2.71906087864960e+00 7.69680785120588e-02 -2.78622168235220e+00 7.15799164683335e-02 -2.85504135790630e+00 6.65066287156327e-02 -2.92556087944660e+00 6.17335253728931e-02 -2.99782223316890e+00 5.72464509241369e-02 -3.07186844232820e+00 5.30317719141681e-02 -3.14774359285370e+00 4.90763628413205e-02 -3.22549285959720e+00 4.53675905770612e-02 -3.30516253322930e+00 4.18932976603889e-02 -3.38680004780000e+00 3.86417848409185e-02 -3.47045400898070e+00 3.56017932713071e-02 -3.55617422300250e+00 3.27624867692986e-02 -3.64401172631070e+00 3.01134345739215e-02 -3.73401881595050e+00 2.76445950017297e-02 -3.82624908070450e+00 2.53463003643988e-02 -3.92075743299790e+00 2.32092434371121e-02 -4.01760014159300e+00 2.12244656724782e-02 -4.11683486509030e+00 1.93833472448450e-02 -4.21852068625800e+00 1.76775988943770e-02 -4.32271814720860e+00 1.60992554297546e-02 -4.42948928544470e+00 1.46406706521963e-02 -4.53889767079510e+00 1.32945133889926e-02 -4.65100844326380e+00 1.20537642762041e-02 -4.76588835181240e+00 1.09117129090608e-02 -4.88360579410220e+00 9.86195498395526e-03 -5.00423085721650e+00 8.89838908502908e-03 -5.12783535938970e+00 8.01521281741848e-03 -5.25449289276670e+00 7.20691805401656e-03 -5.38427886721800e+00 6.46828513853235e-03 -5.51727055523830e+00 5.79437596994048e-03 -5.65354713795270e+00 5.18052597702017e-03 -5.79318975226010e+00 4.62233507109448e-03 -5.93628153914090e+00 4.11565773464524e-03 -6.08290769315770e+00 3.65659245779802e-03 -6.23315551317870e+00 3.24147076929793e-03 -6.38711445435420e+00 2.86684612092401e-03 -6.54487618137680e+00 2.52948287406339e-03 -6.70653462305680e+00 2.22634560681452e-03 -6.87218602824630e+00 1.95458891422425e-03 -7.04192902314400e+00 1.71154781934906e-03 -7.21586467001560e+00 1.49472885551659e-03 -7.39409652736500e+00 1.30180182659198e-03 -7.57673071159090e+00 1.13059220701004e-03 -7.76387596016720e+00 9.79074109732737e-04 -7.95564369638330e+00 8.45363729210765e-04 -8.15214809568400e+00 7.27713157319702e-04 -8.35350615364740e+00 6.24504471428920e-04 -8.55983775564250e+00 5.34244002903493e-04 -8.77126574820690e+00 4.55556708901296e-04 -8.98791601218760e+00 3.87180587900554e-04 -9.20991753768860e+00 3.27961097923950e-04 -9.43740250086950e+00 2.76845554310159e-04 -9.67050634264100e+00 2.32877499990478e-04 -9.90936784930420e+00 1.95191054857290e-04 -1.01541292351820e+01 1.63005261622774e-04 -1.04049362272910e+01 1.35618453502967e-04 -1.06619381521050e+01 1.12402674266038e-04 -1.09252880244620e+01 9.27981839288604e-05 -1.11951426386660e+01 7.63080840220080e-05 -1.14716626618410e+01 6.24930952488164e-05 -1.17550127295890e+01 5.09665179207796e-05 -1.20453615440100e+01 4.13894021146690e-05 -1.23428819741470e+01 3.34659503919688e-05 -1.26477511589080e+01 2.69391714290240e-05 -1.29601506125330e+01 2.15867982640968e-05 -1.32802663326630e+01 1.72174802626688e-05 -1.36082889110800e+01 1.36672536322275e-05 -1.39444136471830e+01 1.07962899212749e-05 -1.42888406642690e+01 8.48592730488420e-06 -1.46417750286760e+01 6.63594495770988e-06 -1.50034268718840e+01 5.16216408536068e-06 -1.53740115156200e+01 3.99422094076788e-06 -1.57537496000560e+01 3.07359052195637e-06 -1.61428672151770e+01 2.35186635576719e-06 -1.65415960353920e+01 1.78923424308836e-06 -1.69501734574660e+01 1.35312938087365e-06 -1.73688427418660e+01 1.01707026558231e-06 -1.77978531575900e+01 7.59636089393532e-07 -1.82374601305820e+01 0.00000000000000e+00 -1.86879253958070e+01 0.00000000000000e+00 -1.91495171530840e+01 0.00000000000000e+00 -1.96225102267650e+01 0.00000000000000e+00 -2.01071862293660e+01 0.00000000000000e+00 -2.06038337292320e+01 0.00000000000000e+00 -2.11127484223440e+01 0.00000000000000e+00 -2.16342333083750e+01 0.00000000000000e+00 -2.21685988710920e+01 0.00000000000000e+00 -2.27161632632080e+01 0.00000000000000e+00 -2.32772524958100e+01 0.00000000000000e+00 -2.38522006324560e+01 0.00000000000000e+00 -2.44413499880780e+01 0.00000000000000e+00 -2.50450513327830e+01 0.00000000000000e+00 -2.56636641007030e+01 0.00000000000000e+00 -2.62975566039900e+01 0.00000000000000e+00 -2.69471062521090e+01 0.00000000000000e+00 -2.76126997765360e+01 0.00000000000000e+00 -2.82947334610160e+01 0.00000000000000e+00 -2.89936133775030e+01 0.00000000000000e+00 -2.97097556279280e+01 0.00000000000000e+00 -3.04435865919380e+01 0.00000000000000e+00 -3.11955431807580e+01 0.00000000000000e+00 -3.19660730973230e+01 0.00000000000000e+00 -3.27556351028270e+01 0.00000000000000e+00 -3.35646992898670e+01 0.00000000000000e+00 -3.43937473623270e+01 0.00000000000000e+00 -3.52432729221760e+01 0.00000000000000e+00 -3.61137817633540e+01 0.00000000000000e+00 -3.70057921729090e+01 0.00000000000000e+00 -3.79198352395800e+01 0.00000000000000e+00 -3.88564551699970e+01 0.00000000000000e+00 -3.98162096126960e+01 0.00000000000000e+00 -4.07996699901300e+01 0.00000000000000e+00 -4.18074218388860e+01 0.00000000000000e+00 -4.28400651583060e+01 0.00000000000000e+00 -4.38982147677160e+01 0.00000000000000e+00 -4.49825006724790e+01 0.00000000000000e+00 -4.60935684390890e+01 0.00000000000000e+00 -4.72320795795350e+01 0.00000000000000e+00 -4.83987119451490e+01 0.00000000000000e+00 -4.95941601301950e+01 0.00000000000000e+00 -5.08191358854100e+01 0.00000000000000e+00 -5.20743685417800e+01 0.00000000000000e+00 -5.33606054447620e+01 0.00000000000000e+00 -5.46786123992480e+01 0.00000000000000e+00 -5.60291741255090e+01 0.00000000000000e+00 -5.74130947264090e+01 0.00000000000000e+00 -5.88311981661510e+01 0.00000000000000e+00 -6.02843287608550e+01 0.00000000000000e+00 -6.17733516812480e+01 0.00000000000000e+00 -6.32991534677750e+01 0.00000000000000e+00 -6.48626425584290e+01 0.00000000000000e+00 -6.64647498296220e+01 0.00000000000000e+00 -6.81064291504140e+01 0.00000000000000e+00 -6.97886579504290e+01 0.00000000000000e+00 -7.15124378018050e+01 0.00000000000000e+00 -7.32787950155100e+01 0.00000000000000e+00 -7.50887812523930e+01 0.00000000000000e+00 -7.69434741493270e+01 0.00000000000000e+00 diff --git a/data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/density.inp b/data/electronicStructure/pseudoPotential/z29/singleAtomData/density.inp similarity index 100% rename from data/electronicStructure/pseudoPotential/z29/oncv/singleAtomData/density.inp rename to data/electronicStructure/pseudoPotential/z29/singleAtomData/density.inp diff --git a/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi30.inp b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi30.inp new file mode 100644 index 000000000..df5124176 --- /dev/null +++ b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi30.inp @@ -0,0 +1,1335 @@ +1.00000000000000e-02 3.33855829720000e-02 +2.00000000000000e-02 6.67415121420000e-02 +3.00000000000000e-02 1.00038178330000e-01 +4.00000000000000e-02 1.33246061590000e-01 +5.00000000000000e-02 1.66335775580000e-01 +6.00000000000000e-02 1.99278111620000e-01 +7.00000000000000e-02 2.32044082360000e-01 +8.00000000000000e-02 2.64604965050000e-01 +9.00000000000000e-02 2.96932344090000e-01 +1.00000000000000e-01 3.28998153010000e-01 +1.10000000000000e-01 3.60774715700000e-01 +1.20000000000000e-01 3.92234786710000e-01 +1.30000000000000e-01 4.23351590720000e-01 +1.40000000000000e-01 4.54098860930000e-01 +1.50000000000000e-01 4.84450876380000e-01 +1.60000000000000e-01 5.14382498150000e-01 +1.70000000000000e-01 5.43869204240000e-01 +1.80000000000000e-01 5.72887123240000e-01 +1.90000000000000e-01 6.01413066540000e-01 +2.00000000000000e-01 6.29424559250000e-01 +2.10000000000000e-01 6.56899869470000e-01 +2.20000000000000e-01 6.83818036190000e-01 +2.30000000000000e-01 7.10158895480000e-01 +2.40000000000000e-01 7.35903105210000e-01 +2.50000000000000e-01 7.61032167950000e-01 +2.60000000000000e-01 7.85528452330000e-01 +2.70000000000000e-01 8.09375212570000e-01 +2.80000000000000e-01 8.32556606360000e-01 +2.90000000000000e-01 8.55057710940000e-01 +3.00000000000000e-01 8.76864537410000e-01 +3.10000000000000e-01 8.97964043290000e-01 +3.20000000000000e-01 9.18344143250000e-01 +3.30000000000000e-01 9.37993718100000e-01 +3.40000000000000e-01 9.56902621960000e-01 +3.50000000000000e-01 9.75061687710000e-01 +3.60000000000000e-01 9.92462730620000e-01 +3.70000000000000e-01 1.00909855030000e+00 +3.80000000000000e-01 1.02496293080000e+00 +3.90000000000000e-01 1.04005063920000e+00 +4.00000000000000e-01 1.05435742240000e+00 +4.10000000000000e-01 1.06788000220000e+00 +4.20000000000000e-01 1.08061606910000e+00 +4.30000000000000e-01 1.09256427380000e+00 +4.40000000000000e-01 1.10372421820000e+00 +4.50000000000000e-01 1.11409644400000e+00 +4.60000000000000e-01 1.12368242020000e+00 +4.70000000000000e-01 1.13248452960000e+00 +4.80000000000000e-01 1.14050605270000e+00 +4.90000000000000e-01 1.14775115220000e+00 +5.00000000000000e-01 1.15422485400000e+00 +5.10000000000000e-01 1.15993302920000e+00 +5.20000000000000e-01 1.16488237330000e+00 +5.30000000000000e-01 1.16908038500000e+00 +5.40000000000000e-01 1.17253534400000e+00 +5.50000000000000e-01 1.17525628770000e+00 +5.60000000000000e-01 1.17725298670000e+00 +5.70000000000000e-01 1.17853592000000e+00 +5.80000000000000e-01 1.17911624880000e+00 +5.90000000000000e-01 1.17900579010000e+00 +6.00000000000000e-01 1.17821698930000e+00 +6.10000000000000e-01 1.17676289180000e+00 +6.20000000000000e-01 1.17465711500000e+00 +6.30000000000000e-01 1.17191381880000e+00 +6.40000000000000e-01 1.16854767610000e+00 +6.50000000000000e-01 1.16457384300000e+00 +6.60000000000000e-01 1.16000792850000e+00 +6.70000000000000e-01 1.15486596360000e+00 +6.80000000000000e-01 1.14916437080000e+00 +6.90000000000000e-01 1.14291993290000e+00 +7.00000000000000e-01 1.13614976220000e+00 +7.10000000000000e-01 1.12887126880000e+00 +7.20000000000000e-01 1.12110212980000e+00 +7.30000000000000e-01 1.11286025820000e+00 +7.40000000000000e-01 1.10416377140000e+00 +7.50000000000000e-01 1.09503096080000e+00 +7.60000000000000e-01 1.08548026080000e+00 +7.70000000000000e-01 1.07553021830000e+00 +7.80000000000000e-01 1.06519946290000e+00 +7.90000000000000e-01 1.05450667650000e+00 +8.00000000000000e-01 1.04347056450000e+00 +8.10000000000000e-01 1.03210982630000e+00 +8.20000000000000e-01 1.02044312720000e+00 +8.30000000000000e-01 1.00848907030000e+00 +8.40000000000000e-01 9.96266168810000e-01 +8.50000000000000e-01 9.83792819870000e-01 +8.60000000000000e-01 9.71087278010000e-01 +8.70000000000000e-01 9.58167629860000e-01 +8.80000000000000e-01 9.45051769520000e-01 +8.90000000000000e-01 9.31757374620000e-01 +9.00000000000000e-01 9.18301883270000e-01 +9.10000000000000e-01 9.04702471810000e-01 +9.20000000000000e-01 8.90976033460000e-01 +9.30000000000000e-01 8.77139157890000e-01 +9.40000000000000e-01 8.63208111690000e-01 +9.50000000000000e-01 8.49198819890000e-01 +9.60000000000000e-01 8.35126848350000e-01 +9.70000000000000e-01 8.21007387310000e-01 +9.80000000000000e-01 8.06855235890000e-01 +9.90000000000000e-01 7.92684787640000e-01 +1.00000000000000e+00 7.78510017270000e-01 +1.01000000000000e+00 7.64344468330000e-01 +1.02000000000000e+00 7.50201242120000e-01 +1.03000000000000e+00 7.36092987660000e-01 +1.04000000000000e+00 7.22031892760000e-01 +1.05000000000000e+00 7.08029676310000e-01 +1.06000000000000e+00 6.94097581560000e-01 +1.07000000000000e+00 6.80246370700000e-01 +1.08000000000000e+00 6.66486320410000e-01 +1.09000000000000e+00 6.52827218630000e-01 +1.10000000000000e+00 6.39278362450000e-01 +1.11000000000000e+00 6.25848556990000e-01 +1.12000000000000e+00 6.12546115510000e-01 +1.13000000000000e+00 5.99378860530000e-01 +1.14000000000000e+00 5.86354125910000e-01 +1.15000000000000e+00 5.73478760150000e-01 +1.16000000000000e+00 5.60759130490000e-01 +1.17000000000000e+00 5.48201128120000e-01 +1.18000000000000e+00 5.35810174280000e-01 +1.19000000000000e+00 5.23591227230000e-01 +1.20000000000000e+00 5.11548790170000e-01 +1.21000000000000e+00 4.99686919910000e-01 +1.22000000000000e+00 4.88009236420000e-01 +1.23000000000000e+00 4.76518933000000e-01 +1.24000000000000e+00 4.65218787300000e-01 +1.25000000000000e+00 4.54111172860000e-01 +1.26000000000000e+00 4.43198071370000e-01 +1.27000000000000e+00 4.32481085370000e-01 +1.28000000000000e+00 4.21961451580000e-01 +1.29000000000000e+00 4.11640054570000e-01 +1.30000000000000e+00 4.01517440910000e-01 +1.31000000000000e+00 3.91593833590000e-01 +1.32000000000000e+00 3.81869146830000e-01 +1.33000000000000e+00 3.72343001020000e-01 +1.34000000000000e+00 3.63014737910000e-01 +1.35000000000000e+00 3.53883435890000e-01 +1.36000000000000e+00 3.44947925400000e-01 +1.37000000000000e+00 3.36206804270000e-01 +1.38000000000000e+00 3.27658453120000e-01 +1.39000000000000e+00 3.19301050600000e-01 +1.40000000000000e+00 3.11132588580000e-01 +1.41000000000000e+00 3.03150887080000e-01 +1.42000000000000e+00 2.95353609010000e-01 +1.43000000000000e+00 2.87738274660000e-01 +1.44000000000000e+00 2.80302275830000e-01 +1.45000000000000e+00 2.73042889680000e-01 +1.46000000000000e+00 2.65957292090000e-01 +1.47000000000000e+00 2.59042570710000e-01 +1.48000000000000e+00 2.52295737460000e-01 +1.49000000000000e+00 2.45713740620000e-01 +1.50000000000000e+00 2.39293476370000e-01 +1.51000000000000e+00 2.33031799810000e-01 +1.52000000000000e+00 2.26925535430000e-01 +1.53000000000000e+00 2.20971487030000e-01 +1.54000000000000e+00 2.15166447030000e-01 +1.55000000000000e+00 2.09507205240000e-01 +1.56000000000000e+00 2.03990556960000e-01 +1.57000000000000e+00 1.98613310570000e-01 +1.58000000000000e+00 1.93372294480000e-01 +1.59000000000000e+00 1.88264363470000e-01 +1.60000000000000e+00 1.83286404460000e-01 +1.61000000000000e+00 1.78435341730000e-01 +1.62000000000000e+00 1.73708141500000e-01 +1.63000000000000e+00 1.69101816060000e-01 +1.64000000000000e+00 1.64613427240000e-01 +1.65000000000000e+00 1.60240089480000e-01 +1.66000000000000e+00 1.55978972320000e-01 +1.67000000000000e+00 1.51827302470000e-01 +1.68000000000000e+00 1.47782365420000e-01 +1.69000000000000e+00 1.43841506580000e-01 +1.70000000000000e+00 1.40002132100000e-01 +1.71000000000000e+00 1.36261709310000e-01 +1.72000000000000e+00 1.32617766740000e-01 +1.73000000000000e+00 1.29067893950000e-01 +1.74000000000000e+00 1.25609741010000e-01 +1.75000000000000e+00 1.22241017720000e-01 +1.76000000000000e+00 1.18959492670000e-01 +1.77000000000000e+00 1.15762992080000e-01 +1.78000000000000e+00 1.12649398480000e-01 +1.79000000000000e+00 1.09616649250000e-01 +1.80000000000000e+00 1.06662735100000e-01 +1.81000000000000e+00 1.03785698410000e-01 +1.82000000000000e+00 1.00983631630000e-01 +1.83000000000000e+00 9.82546754800000e-02 +1.84000000000000e+00 9.55970173530000e-02 +1.85000000000000e+00 9.30088895520000e-02 +1.86000000000000e+00 9.04885676780000e-02 +1.87000000000000e+00 8.80343690320000e-02 +1.88000000000000e+00 8.56446510440000e-02 +1.89000000000000e+00 8.33178097900000e-02 +1.90000000000000e+00 8.10522787180000e-02 +1.91000000000000e+00 7.88465272160000e-02 +1.92000000000000e+00 7.66990596670000e-02 +1.93000000000000e+00 7.46084149320000e-02 +1.94000000000000e+00 7.25731655610000e-02 +1.95000000000000e+00 7.05919163360000e-02 +1.96000000000000e+00 6.86633027710000e-02 +1.97000000000000e+00 6.67859912800000e-02 +1.98000000000000e+00 6.49586789030000e-02 +1.99000000000000e+00 6.31800927090000e-02 +2.00000000000000e+00 6.14489893820000e-02 +2.01000000000000e+00 5.97641547720000e-02 +2.02000000000000e+00 5.81244032750000e-02 +2.03000000000000e+00 5.65285772240000e-02 +2.04000000000000e+00 5.49755464130000e-02 +2.05000000000000e+00 5.34642075550000e-02 +2.06000000000000e+00 5.19934837430000e-02 +2.07000000000000e+00 5.05623239250000e-02 +2.08000000000000e+00 4.91697023830000e-02 +2.09000000000000e+00 4.78146182150000e-02 +2.10000000000000e+00 4.64960948220000e-02 +2.11000000000000e+00 4.52131794030000e-02 +2.12000000000000e+00 4.39649424550000e-02 +2.13000000000000e+00 4.27504772770000e-02 +2.14000000000000e+00 4.15688994840000e-02 +2.15000000000000e+00 4.04193465240000e-02 +2.16000000000000e+00 3.93009772060000e-02 +2.17000000000000e+00 3.82129712300000e-02 +2.18000000000000e+00 3.71545287300000e-02 +2.19000000000000e+00 3.61248698130000e-02 +2.20000000000000e+00 3.51232341220000e-02 +2.21000000000000e+00 3.41488803880000e-02 +2.22000000000000e+00 3.32010860050000e-02 +2.23000000000000e+00 3.22791465990000e-02 +2.24000000000000e+00 3.13823756180000e-02 +2.25000000000000e+00 3.05101039140000e-02 +2.26000000000000e+00 2.96616793460000e-02 +2.27000000000000e+00 2.88364663830000e-02 +2.28000000000000e+00 2.80338457140000e-02 +2.29000000000000e+00 2.72532138700000e-02 +2.30000000000000e+00 2.64939828490000e-02 +2.31000000000000e+00 2.57555797500000e-02 +2.32000000000000e+00 2.50374464160000e-02 +2.33000000000000e+00 2.43390390760000e-02 +2.34000000000000e+00 2.36598280060000e-02 +2.35000000000000e+00 2.29992971900000e-02 +2.36000000000000e+00 2.23569439860000e-02 +2.37000000000000e+00 2.17322788030000e-02 +2.38000000000000e+00 2.11248247870000e-02 +2.39000000000000e+00 2.05341175030000e-02 +2.40000000000000e+00 1.99597046390000e-02 +2.41000000000000e+00 1.94011457010000e-02 +2.42000000000000e+00 1.88580117280000e-02 +2.43000000000000e+00 1.83298850010000e-02 +2.44000000000000e+00 1.78163587690000e-02 +2.45000000000000e+00 1.73170369750000e-02 +2.46000000000000e+00 1.68315339890000e-02 +2.47000000000000e+00 1.63594743460000e-02 +2.48000000000000e+00 1.59004924940000e-02 +2.49000000000000e+00 1.54542325450000e-02 +2.50000000000000e+00 1.50203480280000e-02 +2.51000000000000e+00 1.45985016580000e-02 +2.52000000000000e+00 1.41883650940000e-02 +2.53000000000000e+00 1.37896187230000e-02 +2.54000000000000e+00 1.34019514290000e-02 +2.55000000000000e+00 1.30250603820000e-02 +2.56000000000000e+00 1.26586508260000e-02 +2.57000000000000e+00 1.23024358710000e-02 +2.58000000000000e+00 1.19561362900000e-02 +2.59000000000000e+00 1.16194803280000e-02 +2.60000000000000e+00 1.12922035040000e-02 +2.61000000000000e+00 1.09740484260000e-02 +2.62000000000000e+00 1.06647646070000e-02 +2.63000000000000e+00 1.03641082880000e-02 +2.64000000000000e+00 1.00718422640000e-02 +2.65000000000000e+00 9.78773571090000e-03 +2.66000000000000e+00 9.51156402180000e-03 +2.67000000000000e+00 9.24310864560000e-03 +2.68000000000000e+00 8.98215692810000e-03 +2.69000000000000e+00 8.72850195810000e-03 +2.70000000000000e+00 8.48194241770000e-03 +2.71000000000000e+00 8.24228243530000e-03 +2.72000000000000e+00 8.00933144270000e-03 +2.73000000000000e+00 7.78290403650000e-03 +2.74000000000000e+00 7.56281984140000e-03 +2.75000000000000e+00 7.34890337810000e-03 +2.76000000000000e+00 7.14098393430000e-03 +2.77000000000000e+00 6.93889543880000e-03 +2.78000000000000e+00 6.74247633840000e-03 +2.79000000000000e+00 6.55156947880000e-03 +2.80000000000000e+00 6.36602198760000e-03 +2.81000000000000e+00 6.18568516080000e-03 +2.82000000000000e+00 6.01041435220000e-03 +2.83000000000000e+00 5.84006886510000e-03 +2.84000000000000e+00 5.67451184760000e-03 +2.85000000000000e+00 5.51361018940000e-03 +2.86000000000000e+00 5.35723442280000e-03 +2.87000000000000e+00 5.20525862450000e-03 +2.88000000000000e+00 5.05756032160000e-03 +2.89000000000000e+00 4.91402039870000e-03 +2.90000000000000e+00 4.77452300790000e-03 +2.91000000000000e+00 4.63895548140000e-03 +2.92000000000000e+00 4.50720824620000e-03 +2.93000000000000e+00 4.37917474030000e-03 +2.94000000000000e+00 4.25475133250000e-03 +2.95000000000000e+00 4.13383724280000e-03 +2.96000000000000e+00 4.01633446580000e-03 +2.97000000000000e+00 3.90214769620000e-03 +2.98000000000000e+00 3.79118425520000e-03 +2.99000000000000e+00 3.68335402000000e-03 +3.00000000000000e+00 3.57856935450000e-03 +3.01000000000000e+00 3.47674504210000e-03 +3.02000000000000e+00 3.37779822010000e-03 +3.03000000000000e+00 3.28164831570000e-03 +3.04000000000000e+00 3.18821698410000e-03 +3.05000000000000e+00 3.09742804800000e-03 +3.06000000000000e+00 3.00920743840000e-03 +3.07000000000000e+00 2.92348313770000e-03 +3.08000000000000e+00 2.84018512330000e-03 +3.09000000000000e+00 2.75924531400000e-03 +3.10000000000000e+00 2.68059751620000e-03 +3.11000000000000e+00 2.60417737330000e-03 +3.12000000000000e+00 2.52992231490000e-03 +3.13000000000000e+00 2.45777150830000e-03 +3.14000000000000e+00 2.38766581090000e-03 +3.15000000000000e+00 2.31954772430000e-03 +3.16000000000000e+00 2.25336134860000e-03 +3.17000000000000e+00 2.18905233940000e-03 +3.18000000000000e+00 2.12656786470000e-03 +3.19000000000000e+00 2.06585656350000e-03 +3.20000000000000e+00 2.00686850570000e-03 +3.21000000000000e+00 1.94955515230000e-03 +3.22000000000000e+00 1.89386931780000e-03 +3.23000000000000e+00 1.83976513260000e-03 +3.24000000000000e+00 1.78719800690000e-03 +3.25000000000000e+00 1.73612459540000e-03 +3.26000000000000e+00 1.68650276340000e-03 +3.27000000000000e+00 1.63829155280000e-03 +3.28000000000000e+00 1.59145115040000e-03 +3.29000000000000e+00 1.54594285580000e-03 +3.30000000000000e+00 1.50172905080000e-03 +3.31000000000000e+00 1.45877316990000e-03 +3.32000000000000e+00 1.41703967050000e-03 +3.33000000000000e+00 1.37649400540000e-03 +3.34000000000000e+00 1.33710259470000e-03 +3.35000000000000e+00 1.29883279940000e-03 +3.36000000000000e+00 1.26165289520000e-03 +3.37000000000000e+00 1.22553204710000e-03 +3.38000000000000e+00 1.19044028510000e-03 +3.39000000000000e+00 1.15634847960000e-03 +3.40000000000000e+00 1.12322831900000e-03 +3.41000000000000e+00 1.09105228590000e-03 +3.42000000000000e+00 1.05979363620000e-03 +3.43000000000000e+00 1.02942637680000e-03 +3.44000000000000e+00 9.99925244980000e-04 +3.45000000000000e+00 9.71265688230000e-04 +3.46000000000000e+00 9.43423844420000e-04 +3.47000000000000e+00 9.16376522570000e-04 +3.48000000000000e+00 8.90101184180000e-04 +3.49000000000000e+00 8.64575925030000e-04 +3.50000000000000e+00 8.39779457680000e-04 +3.51000000000000e+00 8.15691094090000e-04 +3.52000000000000e+00 7.92290729030000e-04 +3.53000000000000e+00 7.69558823710000e-04 +3.54000000000000e+00 7.47476390170000e-04 +3.55000000000000e+00 7.26024975760000e-04 +3.56000000000000e+00 7.05186648230000e-04 +3.57000000000000e+00 6.84943981170000e-04 +3.58000000000000e+00 6.65280039960000e-04 +3.59000000000000e+00 6.46178367990000e-04 +3.60000000000000e+00 6.27622973260000e-04 +3.61000000000000e+00 6.09598315360000e-04 +3.62000000000000e+00 5.92089292940000e-04 +3.63000000000000e+00 5.75081231390000e-04 +3.64000000000000e+00 5.58559870810000e-04 +3.65000000000000e+00 5.42511354490000e-04 +3.66000000000000e+00 5.26922217510000e-04 +3.67000000000000e+00 5.11779375920000e-04 +3.68000000000000e+00 4.97070115920000e-04 +3.69000000000000e+00 4.82782083510000e-04 +3.70000000000000e+00 4.68903274390000e-04 +3.71000000000000e+00 4.55422024200000e-04 +3.72000000000000e+00 4.42326998960000e-04 +3.73000000000000e+00 4.29607185730000e-04 +3.74000000000000e+00 4.17251883620000e-04 +3.75000000000000e+00 4.05250695050000e-04 +3.76000000000000e+00 3.93593517230000e-04 +3.77000000000000e+00 3.82270533840000e-04 +3.78000000000000e+00 3.71272206960000e-04 +3.79000000000000e+00 3.60589269240000e-04 +3.80000000000000e+00 3.50212716340000e-04 +3.81000000000000e+00 3.40133799490000e-04 +3.82000000000000e+00 3.30344018280000e-04 +3.83000000000000e+00 3.20835113630000e-04 +3.84000000000000e+00 3.11599061070000e-04 +3.85000000000000e+00 3.02628064110000e-04 +3.86000000000000e+00 2.93914547770000e-04 +3.87000000000000e+00 2.85451152350000e-04 +3.88000000000000e+00 2.77230727330000e-04 +3.89000000000000e+00 2.69246325550000e-04 +3.90000000000000e+00 2.61491197420000e-04 +3.91000000000000e+00 2.53958785310000e-04 +3.92000000000000e+00 2.46642718170000e-04 +3.93000000000000e+00 2.39536806190000e-04 +3.94000000000000e+00 2.32635035850000e-04 +3.95000000000000e+00 2.25931564740000e-04 +3.96000000000000e+00 2.19420716850000e-04 +3.97000000000000e+00 2.13096977760000e-04 +3.98000000000000e+00 2.06954990150000e-04 +3.99000000000000e+00 2.00989549380000e-04 +4.00000000000000e+00 1.95195599090000e-04 +4.01000000000000e+00 1.89568227030000e-04 +4.02000000000000e+00 1.84102660940000e-04 +4.03000000000000e+00 1.78794264700000e-04 +4.04000000000000e+00 1.73638534390000e-04 +4.05000000000000e+00 1.68631094520000e-04 +4.06000000000000e+00 1.63767694450000e-04 +4.07000000000000e+00 1.59044204790000e-04 +4.08000000000000e+00 1.54456614030000e-04 +4.09000000000000e+00 1.50001025180000e-04 +4.10000000000000e+00 1.45673652470000e-04 +4.11000000000000e+00 1.41470818240000e-04 +4.12000000000000e+00 1.37388949810000e-04 +4.13000000000000e+00 1.33424576640000e-04 +4.14000000000000e+00 1.29574327280000e-04 +4.15000000000000e+00 1.25834926620000e-04 +4.16000000000000e+00 1.22203193150000e-04 +4.17000000000000e+00 1.18676036270000e-04 +4.18000000000000e+00 1.15250453780000e-04 +4.19000000000000e+00 1.11923529300000e-04 +4.20000000000000e+00 1.08692429840000e-04 +4.21000000000000e+00 1.05554403440000e-04 +4.22000000000000e+00 1.02506776820000e-04 +4.23000000000000e+00 9.95469532740000e-05 +4.24000000000000e+00 9.66724103380000e-05 +4.25000000000000e+00 9.38806977550000e-05 +4.26000000000000e+00 9.11694353950000e-05 +4.27000000000000e+00 8.85363112390000e-05 +4.28000000000000e+00 8.59790795190000e-05 +4.29000000000000e+00 8.34955587570000e-05 +4.30000000000000e+00 8.10836299480000e-05 +4.31000000000000e+00 7.87412347840000e-05 +4.32000000000000e+00 7.64663739010000e-05 +4.33000000000000e+00 7.42571052630000e-05 +4.34000000000000e+00 7.21115424760000e-05 +4.35000000000000e+00 7.00278532060000e-05 +4.36000000000000e+00 6.80042576390000e-05 +4.37000000000000e+00 6.60390269690000e-05 +4.38000000000000e+00 6.41304819820000e-05 +4.39000000000000e+00 6.22769916240000e-05 +4.40000000000000e+00 6.04769716080000e-05 +4.41000000000000e+00 5.87288830890000e-05 +4.42000000000000e+00 5.70312313570000e-05 +4.43000000000000e+00 5.53825645920000e-05 +4.44000000000000e+00 5.37814726540000e-05 +4.45000000000000e+00 5.22265858590000e-05 +4.46000000000000e+00 5.07165738330000e-05 +4.47000000000000e+00 4.92501443870000e-05 +4.48000000000000e+00 4.78260424150000e-05 +4.49000000000000e+00 4.64430488880000e-05 +4.50000000000000e+00 4.50999797610000e-05 +4.51000000000000e+00 4.37956849940000e-05 +4.52000000000000e+00 4.25290475780000e-05 +4.53000000000000e+00 4.12989825760000e-05 +4.54000000000000e+00 4.01044362440000e-05 +4.55000000000000e+00 3.89443851140000e-05 +4.56000000000000e+00 3.78178351210000e-05 +4.57000000000000e+00 3.67238207670000e-05 +4.58000000000000e+00 3.56614042980000e-05 +4.59000000000000e+00 3.46296749150000e-05 +4.60000000000000e+00 3.36277480230000e-05 +4.61000000000000e+00 3.26547644490000e-05 +4.62000000000000e+00 3.17098897240000e-05 +4.63000000000000e+00 3.07923133730000e-05 +4.64000000000000e+00 2.99012482190000e-05 +4.65000000000000e+00 2.90359297490000e-05 +4.66000000000000e+00 2.81956154390000e-05 +4.67000000000000e+00 2.73795841220000e-05 +4.68000000000000e+00 2.65871353760000e-05 +4.69000000000000e+00 2.58175889330000e-05 +4.70000000000000e+00 2.50702840940000e-05 +4.71000000000000e+00 2.43445791980000e-05 +4.72000000000000e+00 2.36398510420000e-05 +4.73000000000000e+00 2.29554943590000e-05 +4.74000000000000e+00 2.22909213080000e-05 +4.75000000000000e+00 2.16455609590000e-05 +4.76000000000000e+00 2.10188588390000e-05 +4.77000000000000e+00 2.04102764420000e-05 +4.78000000000000e+00 1.98192907660000e-05 +4.79000000000000e+00 1.92453938680000e-05 +4.80000000000000e+00 1.86880924390000e-05 +4.81000000000000e+00 1.81469073620000e-05 +4.82000000000000e+00 1.76213733540000e-05 +4.83000000000000e+00 1.71110385240000e-05 +4.84000000000000e+00 1.66154639990000e-05 +4.85000000000000e+00 1.61342235540000e-05 +4.86000000000000e+00 1.56669032430000e-05 +4.87000000000000e+00 1.52131010420000e-05 +4.88000000000000e+00 1.47724265380000e-05 +4.89000000000000e+00 1.43445005590000e-05 +4.90000000000000e+00 1.39289548630000e-05 +4.91000000000000e+00 1.35254318240000e-05 +4.92000000000000e+00 1.31335841220000e-05 +4.93000000000000e+00 1.27530744520000e-05 +4.94000000000000e+00 1.23835752490000e-05 +4.95000000000000e+00 1.20247683840000e-05 +4.96000000000000e+00 1.16763449060000e-05 +4.97000000000000e+00 1.13380047700000e-05 +4.98000000000000e+00 1.10094565830000e-05 +4.99000000000000e+00 1.06904173610000e-05 +5.00000000000000e+00 1.03806122920000e-05 +5.01000000000000e+00 1.00797744860000e-05 +5.02000000000000e+00 9.78764475200000e-06 +5.03000000000000e+00 9.50397137830000e-06 +5.04000000000000e+00 9.22850991070000e-06 +5.05000000000000e+00 8.96102295490000e-06 +5.06000000000000e+00 8.70127997370000e-06 +5.07000000000000e+00 8.44905707850000e-06 +5.08000000000000e+00 8.20413684220000e-06 +5.09000000000000e+00 7.96630811370000e-06 +5.10000000000000e+00 7.73536583250000e-06 +5.11000000000000e+00 7.51111086150000e-06 +5.12000000000000e+00 7.29334981980000e-06 +5.13000000000000e+00 7.08189490470000e-06 +5.14000000000000e+00 6.87656373570000e-06 +5.15000000000000e+00 6.67717919830000e-06 +5.16000000000000e+00 6.48356928970000e-06 +5.17000000000000e+00 6.29556697440000e-06 +5.18000000000000e+00 6.11301005030000e-06 +5.19000000000000e+00 5.93574099460000e-06 +5.20000000000000e+00 5.76360683410000e-06 +5.21000000000000e+00 5.59645901400000e-06 +5.22000000000000e+00 5.43415326960000e-06 +5.23000000000000e+00 5.27654949940000e-06 +5.24000000000000e+00 5.12351166220000e-06 +5.25000000000000e+00 4.97490764110000e-06 +5.26000000000000e+00 4.83060913630000e-06 +5.27000000000000e+00 4.69049155480000e-06 +5.28000000000000e+00 4.55443390400000e-06 +5.29000000000000e+00 4.42231868130000e-06 +5.30000000000000e+00 4.29403179180000e-06 +5.31000000000000e+00 4.16946243420000e-06 +5.32000000000000e+00 4.04850300860000e-06 +5.33000000000000e+00 3.93104902480000e-06 +5.34000000000000e+00 3.81699901290000e-06 +5.35000000000000e+00 3.70625443250000e-06 +5.36000000000000e+00 3.59871959620000e-06 +5.37000000000000e+00 3.49430158560000e-06 +5.38000000000000e+00 3.39291016600000e-06 +5.39000000000000e+00 3.29445771110000e-06 +5.40000000000000e+00 3.19885912830000e-06 +5.41000000000000e+00 3.10603178440000e-06 +5.42000000000000e+00 3.01589543240000e-06 +5.43000000000000e+00 2.92837215530000e-06 +5.44000000000000e+00 2.84338628470000e-06 +5.45000000000000e+00 2.76086434070000e-06 +5.46000000000000e+00 2.68073496810000e-06 +5.47000000000000e+00 2.60292887530000e-06 +5.48000000000000e+00 2.52737877190000e-06 +5.49000000000000e+00 2.45401931850000e-06 +5.50000000000000e+00 2.38278706690000e-06 +5.51000000000000e+00 2.31362040220000e-06 +5.52000000000000e+00 2.24645949200000e-06 +5.53000000000000e+00 2.18124623470000e-06 +5.54000000000000e+00 2.11792420930000e-06 +5.55000000000000e+00 2.05643862350000e-06 +5.56000000000000e+00 1.99673627900000e-06 +5.57000000000000e+00 1.93876551280000e-06 +5.58000000000000e+00 1.88247615680000e-06 +5.59000000000000e+00 1.82781949440000e-06 +5.60000000000000e+00 1.77474821870000e-06 +5.61000000000000e+00 1.72321639010000e-06 +5.62000000000000e+00 1.67317939990000e-06 +5.63000000000000e+00 1.62459393360000e-06 +5.64000000000000e+00 1.57741792810000e-06 +5.65000000000000e+00 1.53161053800000e-06 +5.66000000000000e+00 1.48713209970000e-06 +5.67000000000000e+00 1.44394409790000e-06 +5.68000000000000e+00 1.40200912960000e-06 +5.69000000000000e+00 1.36129087860000e-06 +5.70000000000000e+00 1.32175408020000e-06 +5.71000000000000e+00 1.28336448960000e-06 +5.72000000000000e+00 1.24608885310000e-06 +5.73000000000000e+00 1.20989488000000e-06 +5.74000000000000e+00 1.17475121430000e-06 +5.75000000000000e+00 1.14062740510000e-06 +5.76000000000000e+00 1.10749388890000e-06 +5.77000000000000e+00 1.07532195640000e-06 +5.78000000000000e+00 1.04408372910000e-06 +5.79000000000000e+00 1.01375213590000e-06 +5.80000000000000e+00 9.84300889750000e-07 +5.81000000000000e+00 9.55704464600000e-07 +5.82000000000000e+00 9.27938070980000e-07 +5.83000000000000e+00 9.00977643400000e-07 +5.84000000000000e+00 8.74799810690000e-07 +5.85000000000000e+00 8.49381878590000e-07 +5.86000000000000e+00 8.24701810160000e-07 +5.87000000000000e+00 8.00738206780000e-07 +5.88000000000000e+00 7.77470289590000e-07 +5.89000000000000e+00 7.54877879330000e-07 +5.90000000000000e+00 7.32941386530000e-07 +5.91000000000000e+00 7.11641786840000e-07 +5.92000000000000e+00 6.90960607100000e-07 +5.93000000000000e+00 6.70879909300000e-07 +5.94000000000000e+00 6.51382275160000e-07 +5.95000000000000e+00 6.32450791060000e-07 +5.96000000000000e+00 6.14069031260000e-07 +5.97000000000000e+00 5.96221050540000e-07 +5.98000000000000e+00 5.78891363800000e-07 +5.99000000000000e+00 5.62064934580000e-07 +6.00000000000000e+00 5.45727162160000e-07 +6.01000000000000e+00 5.29863868910000e-07 +6.02000000000000e+00 5.14461288080000e-07 +6.03000000000000e+00 4.99506050260000e-07 +6.04000000000000e+00 4.84985176640000e-07 +6.05000000000000e+00 4.70886063770000e-07 +6.06000000000000e+00 4.57196473180000e-07 +6.07000000000000e+00 4.43904521090000e-07 +6.08000000000000e+00 4.30998668200000e-07 +6.09000000000000e+00 4.18467709690000e-07 +6.10000000000000e+00 4.06300764450000e-07 +6.11000000000000e+00 3.94487268380000e-07 +6.12000000000000e+00 3.83016964110000e-07 +6.13000000000000e+00 3.71879890960000e-07 +6.14000000000000e+00 3.61066377000000e-07 +6.15000000000000e+00 3.50567030730000e-07 +6.16000000000000e+00 3.40372732920000e-07 +6.17000000000000e+00 3.30474628290000e-07 +6.18000000000000e+00 3.20864118180000e-07 +6.19000000000000e+00 3.11532855160000e-07 +6.20000000000000e+00 3.02472732790000e-07 +6.21000000000000e+00 2.93675879690000e-07 +6.22000000000000e+00 2.85134652740000e-07 +6.23000000000000e+00 2.76841630470000e-07 +6.24000000000000e+00 2.68789606630000e-07 +6.25000000000000e+00 2.60971582730000e-07 +6.26000000000000e+00 2.53380765680000e-07 +6.27000000000000e+00 2.46010558540000e-07 +6.28000000000000e+00 2.38854555610000e-07 +6.29000000000000e+00 2.31906536940000e-07 +6.30000000000000e+00 2.25160463020000e-07 +6.31000000000000e+00 2.18610469490000e-07 +6.32000000000000e+00 2.12250861640000e-07 +6.33000000000000e+00 2.06076110240000e-07 +6.34000000000000e+00 2.00080847520000e-07 +6.35000000000000e+00 1.94259860720000e-07 +6.36000000000000e+00 1.88608088340000e-07 +6.37000000000000e+00 1.83120615680000e-07 +6.38000000000000e+00 1.77792670660000e-07 +6.39000000000000e+00 1.72619619620000e-07 +6.40000000000000e+00 1.67596962520000e-07 +6.41000000000000e+00 1.62720331460000e-07 +6.42000000000000e+00 1.57985484880000e-07 +6.43000000000000e+00 1.53388304120000e-07 +6.44000000000000e+00 1.48924790020000e-07 +6.45000000000000e+00 1.44591059470000e-07 +6.46000000000000e+00 1.40383342050000e-07 +6.47000000000000e+00 1.36297976600000e-07 +6.48000000000000e+00 1.32331407750000e-07 +6.49000000000000e+00 1.28480184790000e-07 +6.50000000000000e+00 1.24740956410000e-07 +6.51000000000000e+00 1.21110468580000e-07 +6.52000000000000e+00 1.17585561720000e-07 +6.53000000000000e+00 1.14163167940000e-07 +6.54000000000000e+00 1.10840308390000e-07 +6.55000000000000e+00 1.07614090410000e-07 +6.56000000000000e+00 1.04481705430000e-07 +6.57000000000000e+00 1.01440427150000e-07 +6.58000000000000e+00 9.84876079350000e-08 +6.59000000000000e+00 9.56206770320000e-08 +6.60000000000000e+00 9.28371382990000e-08 +6.61000000000000e+00 9.01345680640000e-08 +6.62000000000000e+00 8.75106130180000e-08 +6.63000000000000e+00 8.49629878130000e-08 +6.64000000000000e+00 8.24894738950000e-08 +6.65000000000000e+00 8.00879174430000e-08 +6.66000000000000e+00 7.77562268710000e-08 +6.67000000000000e+00 7.54923713270000e-08 +6.68000000000000e+00 7.32943789240000e-08 +6.69000000000000e+00 7.11603350350000e-08 +6.70000000000000e+00 6.90883806270000e-08 +6.71000000000000e+00 6.70767103160000e-08 +6.72000000000000e+00 6.51235716100000e-08 +6.73000000000000e+00 6.32272630990000e-08 +6.74000000000000e+00 6.13861325540000e-08 +6.75000000000000e+00 5.95985757290000e-08 +6.76000000000000e+00 5.78630349690000e-08 +6.77000000000000e+00 5.61779978600000e-08 +6.78000000000000e+00 5.45419959120000e-08 +6.79000000000000e+00 5.29536030220000e-08 +6.80000000000000e+00 5.14114348380000e-08 +6.81000000000000e+00 4.99141474510000e-08 +6.82000000000000e+00 4.84604357660000e-08 +6.83000000000000e+00 4.70490325990000e-08 +6.84000000000000e+00 4.56787075790000e-08 +6.85000000000000e+00 4.43482660740000e-08 +6.86000000000000e+00 4.30565481570000e-08 +6.87000000000000e+00 4.18024274280000e-08 +6.88000000000000e+00 4.05848103090000e-08 +6.89000000000000e+00 3.94026353730000e-08 +6.90000000000000e+00 3.82548717830000e-08 +6.91000000000000e+00 3.71405186530000e-08 +6.92000000000000e+00 3.60586041800000e-08 +6.93000000000000e+00 3.50081847940000e-08 +6.94000000000000e+00 3.39883443440000e-08 +6.95000000000000e+00 3.29981932420000e-08 +6.96000000000000e+00 3.20368675620000e-08 +6.97000000000000e+00 3.11035290700000e-08 +6.98000000000000e+00 3.01973635970000e-08 +6.99000000000000e+00 2.93175806350000e-08 +7.00000000000000e+00 2.84634126490000e-08 +7.01000000000000e+00 2.76341144110000e-08 +7.02000000000000e+00 2.68289623480000e-08 +7.03000000000000e+00 2.60472539200000e-08 +7.04000000000000e+00 2.52883067480000e-08 +7.05000000000000e+00 2.45514587630000e-08 +7.06000000000000e+00 2.38360670110000e-08 +7.07000000000000e+00 2.31415071760000e-08 +7.08000000000000e+00 2.24671730880000e-08 +7.09000000000000e+00 2.18124761970000e-08 +7.10000000000000e+00 2.11768450590000e-08 +7.11000000000000e+00 2.05597248440000e-08 +7.12000000000000e+00 1.99605767490000e-08 +7.13000000000000e+00 1.93788776790000e-08 +7.14000000000000e+00 1.88141199940000e-08 +7.15000000000000e+00 1.82658106530000e-08 +7.16000000000000e+00 1.77334709510000e-08 +7.17000000000000e+00 1.72166361000000e-08 +7.18000000000000e+00 1.67148548240000e-08 +7.19000000000000e+00 1.62276889700000e-08 +7.20000000000000e+00 1.57547131220000e-08 +7.21000000000000e+00 1.52955140480000e-08 +7.22000000000000e+00 1.48496908840000e-08 +7.23000000000000e+00 1.44168543200000e-08 +7.24000000000000e+00 1.39966263290000e-08 +7.25000000000000e+00 1.35886398790000e-08 +7.26000000000000e+00 1.31925386120000e-08 +7.27000000000000e+00 1.28079765310000e-08 +7.28000000000000e+00 1.24346177020000e-08 +7.29000000000000e+00 1.20721359210000e-08 +7.30000000000000e+00 1.17202144000000e-08 +7.31000000000000e+00 1.13785458430000e-08 +7.32000000000000e+00 1.10468317430000e-08 +7.33000000000000e+00 1.07247822780000e-08 +7.34000000000000e+00 1.04121160570000e-08 +7.35000000000000e+00 1.01085598690000e-08 +7.36000000000000e+00 9.81384845310000e-09 +7.37000000000000e+00 9.52772426310000e-09 +7.38000000000000e+00 9.24993717180000e-09 +7.39000000000000e+00 8.98024439070000e-09 +7.40000000000000e+00 8.71841030540000e-09 +7.41000000000000e+00 8.46420607210000e-09 +7.42000000000000e+00 8.21740950470000e-09 +7.43000000000000e+00 7.97780488050000e-09 +7.44000000000000e+00 7.74518275270000e-09 +7.45000000000000e+00 7.51933976750000e-09 +7.46000000000000e+00 7.30007848700000e-09 +7.47000000000000e+00 7.08720713760000e-09 +7.48000000000000e+00 6.88053963860000e-09 +7.49000000000000e+00 6.67989535600000e-09 +7.50000000000000e+00 6.48509886110000e-09 +7.51000000000000e+00 6.29597982990000e-09 +7.52000000000000e+00 6.11237289390000e-09 +7.53000000000000e+00 5.93411749660000e-09 +7.54000000000000e+00 5.76105775300000e-09 +7.55000000000000e+00 5.59304231430000e-09 +7.56000000000000e+00 5.42992416420000e-09 +7.57000000000000e+00 5.27156067330000e-09 +7.58000000000000e+00 5.11781337630000e-09 +7.59000000000000e+00 4.96854779940000e-09 +7.60000000000000e+00 4.82363338270000e-09 +7.61000000000000e+00 4.68294336560000e-09 +7.62000000000000e+00 4.54635467670000e-09 +7.63000000000000e+00 4.41374782640000e-09 +7.64000000000000e+00 4.28500680240000e-09 +7.65000000000000e+00 4.16001891530000e-09 +7.66000000000000e+00 4.03867482830000e-09 +7.67000000000000e+00 3.92086841540000e-09 +7.68000000000000e+00 3.80649660260000e-09 +7.69000000000000e+00 3.69545931640000e-09 +7.70000000000000e+00 3.58765939600000e-09 +7.71000000000000e+00 3.48300250880000e-09 +7.72000000000000e+00 3.38139706810000e-09 +7.73000000000000e+00 3.28275415300000e-09 +7.74000000000000e+00 3.18698740000000e-09 +7.75000000000000e+00 3.09401297900000e-09 +7.76000000000000e+00 3.00374956420000e-09 +7.77000000000000e+00 2.91611815370000e-09 +7.78000000000000e+00 2.83104204600000e-09 +7.79000000000000e+00 2.74844677230000e-09 +7.80000000000000e+00 2.66826003190000e-09 +7.81000000000000e+00 2.59041162920000e-09 +7.82000000000000e+00 2.51483341200000e-09 +7.83000000000000e+00 2.44145920460000e-09 +7.84000000000000e+00 2.37022471910000e-09 +7.85000000000000e+00 2.30106764600000e-09 +7.86000000000000e+00 2.23392743730000e-09 +7.87000000000000e+00 2.16874530770000e-09 +7.88000000000000e+00 2.10546418400000e-09 +7.89000000000000e+00 2.04402865470000e-09 +7.90000000000000e+00 1.98438492200000e-09 +7.91000000000000e+00 1.92648075430000e-09 +7.92000000000000e+00 1.87026544130000e-09 +7.93000000000000e+00 1.81568971090000e-09 +7.94000000000000e+00 1.76270579080000e-09 +7.95000000000000e+00 1.71126729250000e-09 +7.96000000000000e+00 1.66132916450000e-09 +7.97000000000000e+00 1.61284766800000e-09 +7.98000000000000e+00 1.56578033770000e-09 +7.99000000000000e+00 1.52008594490000e-09 +8.00000000000000e+00 1.47572446190000e-09 +8.01000000000000e+00 1.43265702670000e-09 +8.02000000000000e+00 1.39084589940000e-09 +8.03000000000000e+00 1.35025442590000e-09 +8.04000000000000e+00 1.31084707930000e-09 +8.05000000000000e+00 1.27258933530000e-09 +8.06000000000000e+00 1.23544767560000e-09 +8.07000000000000e+00 1.19938955790000e-09 +8.08000000000000e+00 1.16438338800000e-09 +8.09000000000000e+00 1.13039849200000e-09 +8.10000000000000e+00 1.09740508930000e-09 +8.11000000000000e+00 1.06537426700000e-09 +8.12000000000000e+00 1.03427793300000e-09 +8.13000000000000e+00 1.00408884350000e-09 +8.14000000000000e+00 9.74780556640000e-10 +8.15000000000000e+00 9.46327387550000e-10 +8.16000000000000e+00 9.18704399640000e-10 +8.17000000000000e+00 8.91887382830000e-10 +8.18000000000000e+00 8.65852832310000e-10 +8.19000000000000e+00 8.40577928060000e-10 +8.20000000000000e+00 8.16040514870000e-10 +8.21000000000000e+00 7.92219083020000e-10 +8.22000000000000e+00 7.69092724610000e-10 +8.23000000000000e+00 7.46641188170000e-10 +8.24000000000000e+00 7.24844796380000e-10 +8.25000000000000e+00 7.03684441570000e-10 +8.26000000000000e+00 6.83141572870000e-10 +8.27000000000000e+00 6.63198179940000e-10 +8.28000000000000e+00 6.43836777200000e-10 +8.29000000000000e+00 6.25040388550000e-10 +8.30000000000000e+00 6.06792532560000e-10 +8.31000000000000e+00 5.89077207740000e-10 +8.32000000000000e+00 5.71878856530000e-10 +8.33000000000000e+00 5.55182421640000e-10 +8.34000000000000e+00 5.38973262500000e-10 +8.35000000000000e+00 5.23237165220000e-10 +8.36000000000000e+00 5.07960330160000e-10 +8.37000000000000e+00 4.93129359850000e-10 +8.38000000000000e+00 4.78731247210000e-10 +8.39000000000000e+00 4.64753364240000e-10 +8.40000000000000e+00 4.51183450920000e-10 +8.41000000000000e+00 4.38009603770000e-10 +8.42000000000000e+00 4.25220249710000e-10 +8.43000000000000e+00 4.12804189390000e-10 +8.44000000000000e+00 4.00750532460000e-10 +8.45000000000000e+00 3.89048706010000e-10 +8.46000000000000e+00 3.77688445310000e-10 +8.47000000000000e+00 3.66659784820000e-10 +8.48000000000000e+00 3.55953049450000e-10 +8.49000000000000e+00 3.45558846080000e-10 +8.50000000000000e+00 3.35468055380000e-10 +8.51000000000000e+00 3.25671823850000e-10 +8.52000000000000e+00 3.16161541510000e-10 +8.53000000000000e+00 3.06928878340000e-10 +8.54000000000000e+00 2.97965734770000e-10 +8.55000000000000e+00 2.89264246620000e-10 +8.56000000000000e+00 2.80816778970000e-10 +8.57000000000000e+00 2.72615919480000e-10 +8.58000000000000e+00 2.64654471840000e-10 +8.59000000000000e+00 2.56925449560000e-10 +8.60000000000000e+00 2.49422069750000e-10 +8.61000000000000e+00 2.42137747310000e-10 +8.62000000000000e+00 2.35066079960000e-10 +8.63000000000000e+00 2.28200867460000e-10 +8.64000000000000e+00 2.21536088260000e-10 +8.65000000000000e+00 2.15065893250000e-10 +8.66000000000000e+00 2.08784603840000e-10 +8.67000000000000e+00 2.02686707030000e-10 +8.68000000000000e+00 1.96766850510000e-10 +8.69000000000000e+00 1.91019838040000e-10 +8.70000000000000e+00 1.85440624850000e-10 +8.71000000000000e+00 1.80024313250000e-10 +8.72000000000000e+00 1.74766144360000e-10 +8.73000000000000e+00 1.69661500270000e-10 +8.74000000000000e+00 1.64705906030000e-10 +8.75000000000000e+00 1.59895011490000e-10 +8.76000000000000e+00 1.55224593310000e-10 +8.77000000000000e+00 1.50690551350000e-10 +8.78000000000000e+00 1.46288904970000e-10 +8.79000000000000e+00 1.42015789650000e-10 +8.80000000000000e+00 1.37867453490000e-10 +8.81000000000000e+00 1.33840254030000e-10 +8.82000000000000e+00 1.29930655000000e-10 +8.83000000000000e+00 1.26135215830000e-10 +8.84000000000000e+00 1.22450610990000e-10 +8.85000000000000e+00 1.18873605740000e-10 +8.86000000000000e+00 1.15401059220000e-10 +8.87000000000000e+00 1.12029922190000e-10 +8.88000000000000e+00 1.08757234310000e-10 +8.89000000000000e+00 1.05580121590000e-10 +8.90000000000000e+00 1.02495793830000e-10 +8.91000000000000e+00 9.95015421940000e-11 +8.92000000000000e+00 9.65947368550000e-11 +8.93000000000000e+00 9.37728224050000e-11 +8.94000000000000e+00 9.10333185250000e-11 +8.95000000000000e+00 8.83738233400000e-11 +8.96000000000000e+00 8.57920011250000e-11 +8.97000000000000e+00 8.32855842890000e-11 +8.98000000000000e+00 8.08523713760000e-11 +8.99000000000000e+00 7.84902251390000e-11 +9.00000000000000e+00 7.61970706590000e-11 +9.01000000000000e+00 7.39708935270000e-11 +9.02000000000000e+00 7.18097380850000e-11 +9.03000000000000e+00 6.97117057120000e-11 +9.04000000000000e+00 6.76749499320000e-11 +9.05000000000000e+00 6.56976829370000e-11 +9.06000000000000e+00 6.37781695850000e-11 +9.07000000000000e+00 6.19147236390000e-11 +9.08000000000000e+00 6.01057080540000e-11 +9.09000000000000e+00 5.83495335340000e-11 +9.10000000000000e+00 5.66446571420000e-11 +9.11000000000000e+00 5.49895809430000e-11 +9.12000000000000e+00 5.33828506880000e-11 +9.13000000000000e+00 5.18230545490000e-11 +9.14000000000000e+00 5.03088218770000e-11 +9.15000000000000e+00 4.88388188280000e-11 +9.16000000000000e+00 4.74117561700000e-11 +9.17000000000000e+00 4.60263807930000e-11 +9.18000000000000e+00 4.46814754050000e-11 +9.19000000000000e+00 4.33758582310000e-11 +9.20000000000000e+00 4.21083819690000e-11 +9.21000000000000e+00 4.08779327840000e-11 +9.22000000000000e+00 3.96834293330000e-11 +9.23000000000000e+00 3.85238218120000e-11 +9.24000000000000e+00 3.73980910410000e-11 +9.25000000000000e+00 3.63052475730000e-11 +9.26000000000000e+00 3.52443282340000e-11 +9.27000000000000e+00 3.42144027100000e-11 +9.28000000000000e+00 3.32145663790000e-11 +9.29000000000000e+00 3.22439405250000e-11 +9.30000000000000e+00 3.13016720670000e-11 +9.31000000000000e+00 3.03869328150000e-11 +9.32000000000000e+00 2.94989187400000e-11 +9.33000000000000e+00 2.86368492670000e-11 +9.34000000000000e+00 2.77999665920000e-11 +9.35000000000000e+00 2.69875350190000e-11 +9.36000000000000e+00 2.61988403140000e-11 +9.37000000000000e+00 2.54331872990000e-11 +9.38000000000000e+00 2.46899040530000e-11 +9.39000000000000e+00 2.39683378710000e-11 +9.40000000000000e+00 2.32678544680000e-11 +9.41000000000000e+00 2.25878380650000e-11 +9.42000000000000e+00 2.19276908530000e-11 +9.43000000000000e+00 2.12868324640000e-11 +9.44000000000000e+00 2.06646994610000e-11 +9.45000000000000e+00 2.00607448470000e-11 +9.46000000000000e+00 1.94744375810000e-11 +9.47000000000000e+00 1.89052621170000e-11 +9.48000000000000e+00 1.83527170020000e-11 +9.49000000000000e+00 1.78163163870000e-11 +9.50000000000000e+00 1.72955896310000e-11 +9.51000000000000e+00 1.67900789080000e-11 +9.52000000000000e+00 1.62993397510000e-11 +9.53000000000000e+00 1.58229406650000e-11 +9.54000000000000e+00 1.53604627450000e-11 +9.55000000000000e+00 1.49114993080000e-11 +9.56000000000000e+00 1.44756555370000e-11 +9.57000000000000e+00 1.40525481340000e-11 +9.58000000000000e+00 1.36418049860000e-11 +9.59000000000000e+00 1.32430646460000e-11 +9.60000000000000e+00 1.28559753210000e-11 +9.61000000000000e+00 1.24801979010000e-11 +9.62000000000000e+00 1.21154019410000e-11 +9.63000000000000e+00 1.17612666400000e-11 +9.64000000000000e+00 1.14174805590000e-11 +9.65000000000000e+00 1.10837413490000e-11 +9.66000000000000e+00 1.07597554810000e-11 +9.67000000000000e+00 1.04452379940000e-11 +9.68000000000000e+00 1.01399122400000e-11 +9.69000000000000e+00 9.84350964200000e-12 +9.70000000000000e+00 9.55576946300000e-12 +9.71000000000000e+00 9.27643785930000e-12 +9.72000000000000e+00 9.00526940850000e-12 +9.73000000000000e+00 8.74202604820000e-12 +9.74000000000000e+00 8.48647624440000e-12 +9.75000000000000e+00 8.23839522200000e-12 +9.76000000000000e+00 7.99756476580000e-12 +9.77000000000000e+00 7.76377302930000e-12 +9.78000000000000e+00 7.53681434750000e-12 +9.79000000000000e+00 7.31648905700000e-12 +9.80000000000000e+00 7.10260332050000e-12 +9.81000000000000e+00 6.89496895740000e-12 +9.82000000000000e+00 6.69340327870000e-12 +9.83000000000000e+00 6.49772807130000e-12 +9.84000000000000e+00 6.30777203930000e-12 +9.85000000000000e+00 6.12336810220000e-12 +9.86000000000000e+00 5.94435403820000e-12 +9.87000000000000e+00 5.77057236070000e-12 +9.88000000000000e+00 5.60187017980000e-12 +9.89000000000000e+00 5.43809906760000e-12 +9.90000000000000e+00 5.27911492730000e-12 +9.91000000000000e+00 5.12477786750000e-12 +9.92000000000000e+00 4.97495207870000e-12 +9.93000000000000e+00 4.82950571530000e-12 +9.94000000000000e+00 4.68831064790000e-12 +9.95000000000000e+00 4.55124220680000e-12 +9.96000000000000e+00 4.41818034160000e-12 +9.97000000000000e+00 4.28900797990000e-12 +9.98000000000000e+00 4.16361146730000e-12 +9.99000000000000e+00 4.04188046720000e-12 +1.00000000000000e+01 3.92370786350000e-12 +1.00100000000000e+01 3.80898966640000e-12 +1.00200000000000e+01 3.69762492080000e-12 +1.00300000000000e+01 3.58951561780000e-12 +1.00400000000000e+01 3.48456660870000e-12 +1.00500000000000e+01 3.38268552180000e-12 +1.00600000000000e+01 3.28378254260000e-12 +1.00700000000000e+01 3.18777037990000e-12 +1.00800000000000e+01 3.09456492490000e-12 +1.00900000000000e+01 3.00408415860000e-12 +1.01000000000000e+01 2.91624845660000e-12 +1.01100000000000e+01 2.83098051930000e-12 +1.01200000000000e+01 2.74820530330000e-12 +1.01300000000000e+01 2.66784995540000e-12 +1.01400000000000e+01 2.58984374870000e-12 +1.01500000000000e+01 2.51411802040000e-12 +1.01600000000000e+01 2.44060611140000e-12 +1.01700000000000e+01 2.36924330840000e-12 +1.01800000000000e+01 2.29996670840000e-12 +1.01900000000000e+01 2.23271508780000e-12 +1.02000000000000e+01 2.16742957290000e-12 +1.02100000000000e+01 2.10405270460000e-12 +1.02200000000000e+01 2.04252870170000e-12 +1.02300000000000e+01 1.98280341160000e-12 +1.02400000000000e+01 1.92482426250000e-12 +1.02500000000000e+01 1.86854021700000e-12 +1.02600000000000e+01 1.81390172730000e-12 +1.02700000000000e+01 1.76086069160000e-12 +1.02800000000000e+01 1.70937041200000e-12 +1.02900000000000e+01 1.65938555370000e-12 +1.03000000000000e+01 1.61086210500000e-12 +1.03100000000000e+01 1.56375704560000e-12 +1.03200000000000e+01 1.51802919990000e-12 +1.03300000000000e+01 1.47363832080000e-12 +1.03400000000000e+01 1.43054533180000e-12 +1.03500000000000e+01 1.38871229780000e-12 +1.03600000000000e+01 1.34810239100000e-12 +1.03700000000000e+01 1.30867985850000e-12 +1.03800000000000e+01 1.27040999110000e-12 +1.03900000000000e+01 1.23325909250000e-12 +1.04000000000000e+01 1.19719444990000e-12 +1.04100000000000e+01 1.16218430540000e-12 +1.04200000000000e+01 1.12819782800000e-12 +1.04300000000000e+01 1.09520494570000e-12 +1.04400000000000e+01 1.06317666450000e-12 +1.04500000000000e+01 1.03208487220000e-12 +1.04600000000000e+01 1.00190219600000e-12 +1.04700000000000e+01 9.72602062230000e-13 +1.04800000000000e+01 9.44158673230000e-13 +1.04900000000000e+01 9.16546984340000e-13 +1.05000000000000e+01 8.89742681950000e-13 +1.05100000000000e+01 8.63722162110000e-13 +1.05200000000000e+01 8.38462509760000e-13 +1.05300000000000e+01 8.13941478690000e-13 +1.05400000000000e+01 7.90137472030000e-13 +1.05500000000000e+01 7.67029503580000e-13 +1.05600000000000e+01 7.44597090410000e-13 +1.05700000000000e+01 7.22820630020000e-13 +1.05800000000000e+01 7.01680948310000e-13 +1.05900000000000e+01 6.81159431190000e-13 +1.06000000000000e+01 6.61238008110000e-13 +1.06100000000000e+01 6.41899136090000e-13 +1.06200000000000e+01 6.23125784260000e-13 +1.06300000000000e+01 6.04901418880000e-13 +1.06400000000000e+01 5.87209988740000e-13 +1.06500000000000e+01 5.70035911140000e-13 +1.06600000000000e+01 5.53364058200000e-13 +1.06700000000000e+01 5.37179743640000e-13 +1.06800000000000e+01 5.21468651820000e-13 +1.06900000000000e+01 5.06216933340000e-13 +1.07000000000000e+01 4.91411226180000e-13 +1.07100000000000e+01 4.77038492110000e-13 +1.07200000000000e+01 4.63086073670000e-13 +1.07300000000000e+01 4.49541683000000e-13 +1.07400000000000e+01 4.36393390970000e-13 +1.07500000000000e+01 4.23629616700000e-13 +1.07600000000000e+01 4.11239117330000e-13 +1.07700000000000e+01 3.99210978120000e-13 +1.07800000000000e+01 3.87534602920000e-13 +1.07900000000000e+01 3.76199704880000e-13 +1.08000000000000e+01 3.65196297410000e-13 +1.08100000000000e+01 3.54514624410000e-13 +1.08200000000000e+01 3.44145304340000e-13 +1.08300000000000e+01 3.34079238100000e-13 +1.08400000000000e+01 3.24307560090000e-13 +1.08500000000000e+01 3.14821663660000e-13 +1.08600000000000e+01 3.05613193440000e-13 +1.08700000000000e+01 2.96674038010000e-13 +1.08800000000000e+01 2.87996322740000e-13 +1.08900000000000e+01 2.79572402840000e-13 +1.09000000000000e+01 2.71394856620000e-13 +1.09100000000000e+01 2.63456479040000e-13 +1.09200000000000e+01 2.55750275350000e-13 +1.09300000000000e+01 2.48269455010000e-13 +1.09400000000000e+01 2.41007377950000e-13 +1.09500000000000e+01 2.33957671930000e-13 +1.09600000000000e+01 2.27114149610000e-13 +1.09700000000000e+01 2.20470782880000e-13 +1.09800000000000e+01 2.14021719710000e-13 +1.09900000000000e+01 2.07761278920000e-13 +1.10000000000000e+01 2.01683945220000e-13 +1.10100000000000e+01 1.95784364300000e-13 +1.10200000000000e+01 1.90057338130000e-13 +1.10300000000000e+01 1.84497820410000e-13 +1.10400000000000e+01 1.79100912100000e-13 +1.10500000000000e+01 1.73861857190000e-13 +1.10600000000000e+01 1.68776038470000e-13 +1.10700000000000e+01 1.63838944470000e-13 +1.10800000000000e+01 1.59046231380000e-13 +1.10900000000000e+01 1.54393699720000e-13 +1.11000000000000e+01 1.49877250850000e-13 +1.11100000000000e+01 1.45492905870000e-13 +1.11200000000000e+01 1.41236802050000e-13 +1.11300000000000e+01 1.37105189430000e-13 +1.11400000000000e+01 1.33094427530000e-13 +1.11500000000000e+01 1.29200982130000e-13 +1.11600000000000e+01 1.25421422150000e-13 +1.11700000000000e+01 1.21752416660000e-13 +1.11800000000000e+01 1.18190731940000e-13 +1.11900000000000e+01 1.14733228680000e-13 +1.12000000000000e+01 1.11376848350000e-13 +1.12100000000000e+01 1.08118616500000e-13 +1.12200000000000e+01 1.04955689550000e-13 +1.12300000000000e+01 1.01885280830000e-13 +1.12400000000000e+01 9.89046851080000e-14 +1.12500000000000e+01 9.60112761330000e-14 +1.12600000000000e+01 9.32025043430000e-14 +1.12700000000000e+01 9.04758946000000e-14 +1.12800000000000e+01 8.78290440160000e-14 +1.12900000000000e+01 8.52596198330000e-14 +1.13000000000000e+01 8.27653573730000e-14 +1.13100000000000e+01 8.03440580570000e-14 +1.13200000000000e+01 7.79935874790000e-14 +1.13300000000000e+01 7.57118735390000e-14 +1.13400000000000e+01 7.34968811600000e-14 +1.13500000000000e+01 7.13466777170000e-14 +1.13600000000000e+01 6.92593728000000e-14 +1.13700000000000e+01 6.72331271840000e-14 +1.13800000000000e+01 6.52661553630000e-14 +1.13900000000000e+01 6.33567239660000e-14 +1.14000000000000e+01 6.15031502320000e-14 +1.14100000000000e+01 5.97038005160000e-14 +1.14200000000000e+01 5.79570888550000e-14 +1.14300000000000e+01 5.62614755720000e-14 +1.14400000000000e+01 5.46154659240000e-14 +1.14500000000000e+01 5.30176087940000e-14 +1.14600000000000e+01 5.14664954200000e-14 +1.14700000000000e+01 4.99607530910000e-14 +1.14800000000000e+01 4.84990443130000e-14 +1.14900000000000e+01 4.70800960380000e-14 +1.15000000000000e+01 4.57026578660000e-14 +1.15100000000000e+01 4.43655159230000e-14 +1.15200000000000e+01 4.30674917850000e-14 +1.15300000000000e+01 4.18074414380000e-14 +1.15400000000000e+01 4.05842542620000e-14 +1.15500000000000e+01 3.93968520560000e-14 +1.15600000000000e+01 3.82441880850000e-14 +1.15700000000000e+01 3.71252461620000e-14 +1.15800000000000e+01 3.60390397530000e-14 +1.15900000000000e+01 3.49846111210000e-14 +1.16000000000000e+01 3.39610304800000e-14 +1.16100000000000e+01 3.29673880330000e-14 +1.16200000000000e+01 3.20028074860000e-14 +1.16300000000000e+01 3.10664461770000e-14 +1.16400000000000e+01 3.01574788820000e-14 +1.16500000000000e+01 2.92751044790000e-14 +1.16600000000000e+01 2.84185452450000e-14 +1.16700000000000e+01 2.75870461600000e-14 +1.16800000000000e+01 2.67798742470000e-14 +1.16900000000000e+01 2.59963179190000e-14 +1.17000000000000e+01 2.52356863580000e-14 +1.17100000000000e+01 2.44973089030000e-14 +1.17200000000000e+01 2.37805344660000e-14 +1.17300000000000e+01 2.30847309600000e-14 +1.17400000000000e+01 2.24092847470000e-14 +1.17500000000000e+01 2.17535941770000e-14 +1.17600000000000e+01 2.11170824830000e-14 +1.17700000000000e+01 2.04991932310000e-14 +1.17800000000000e+01 1.98993818150000e-14 +1.17900000000000e+01 1.93171195370000e-14 +1.18000000000000e+01 1.87518931400000e-14 +1.18100000000000e+01 1.82032043490000e-14 +1.18200000000000e+01 1.76705694380000e-14 +1.18300000000000e+01 1.71535187940000e-14 +1.18400000000000e+01 1.66515965120000e-14 +1.18500000000000e+01 1.61643599870000e-14 +1.18600000000000e+01 1.56913795320000e-14 +1.18700000000000e+01 1.52322379970000e-14 +1.18800000000000e+01 1.47865304100000e-14 +1.18900000000000e+01 1.43538600710000e-14 +1.19000000000000e+01 1.39338449990000e-14 +1.19100000000000e+01 1.35261189410000e-14 +1.19200000000000e+01 1.31303225000000e-14 +1.19300000000000e+01 1.27461067730000e-14 +1.19400000000000e+01 1.23731330510000e-14 +1.19500000000000e+01 1.20110725090000e-14 +1.19600000000000e+01 1.16596059230000e-14 +1.19700000000000e+01 1.13184233860000e-14 +1.19800000000000e+01 1.09872240330000e-14 +1.19900000000000e+01 1.06657157770000e-14 +1.20000000000000e+01 1.03536150550000e-14 +1.20100000000000e+01 1.00506465770000e-14 +1.20200000000000e+01 9.75654309000000e-15 +1.20300000000000e+01 9.47104401570000e-15 +1.20400000000000e+01 9.19389439810000e-15 +1.20500000000000e+01 8.92485414720000e-15 +1.20600000000000e+01 8.66368609370000e-15 +1.20700000000000e+01 8.41015999680000e-15 +1.20800000000000e+01 8.16405234040000e-15 +1.20900000000000e+01 7.92514613400000e-15 +1.21000000000000e+01 7.69323072150000e-15 +1.21100000000000e+01 7.46810159430000e-15 +1.21200000000000e+01 7.24956021140000e-15 +1.21300000000000e+01 7.03741382490000e-15 +1.21400000000000e+01 6.83147531010000e-15 +1.21500000000000e+01 6.63156300250000e-15 +1.21600000000000e+01 6.43750053830000e-15 +1.21700000000000e+01 6.24911670120000e-15 +1.21800000000000e+01 6.06624232540000e-15 +1.21900000000000e+01 5.88871823680000e-15 +1.22000000000000e+01 5.71638878430000e-15 +1.22100000000000e+01 5.54910203640000e-15 +1.22200000000000e+01 5.38671049930000e-15 +1.22300000000000e+01 5.22907098600000e-15 +1.22400000000000e+01 5.07604448950000e-15 +1.22500000000000e+01 4.92749605980000e-15 +1.22600000000000e+01 4.78329468470000e-15 +1.22700000000000e+01 4.64331317450000e-15 +1.22800000000000e+01 4.50742805000000e-15 +1.22900000000000e+01 4.37551943450000e-15 +1.23000000000000e+01 4.24747094880000e-15 +1.23100000000000e+01 4.12316960960000e-15 +1.23200000000000e+01 4.00250527710000e-15 +1.23300000000000e+01 3.88536970740000e-15 +1.23400000000000e+01 3.77166184730000e-15 +1.23500000000000e+01 3.66128144300000e-15 +1.23600000000000e+01 3.55413116940000e-15 +1.23700000000000e+01 3.45011654400000e-15 +1.23800000000000e+01 3.34914584270000e-15 +1.23900000000000e+01 3.25113001870000e-15 +1.24000000000000e+01 3.15598262390000e-15 +1.24100000000000e+01 3.06361973210000e-15 +1.24200000000000e+01 2.97395986570000e-15 +1.24300000000000e+01 2.88692392390000e-15 +1.24400000000000e+01 2.80243511330000e-15 +1.24500000000000e+01 2.72041888110000e-15 +1.24600000000000e+01 2.64080284960000e-15 +1.24700000000000e+01 2.56351602370000e-15 +1.24800000000000e+01 2.48848978570000e-15 +1.24900000000000e+01 2.41565913570000e-15 +1.25000000000000e+01 2.34495985480000e-15 +1.25100000000000e+01 2.27632960020000e-15 +1.25200000000000e+01 2.20970784980000e-15 +1.25300000000000e+01 2.14503584790000e-15 +1.25400000000000e+01 2.08225655420000e-15 +1.25500000000000e+01 2.02131459230000e-15 +1.25600000000000e+01 1.96215620150000e-15 +1.25700000000000e+01 1.90472918920000e-15 +1.25800000000000e+01 1.84898288540000e-15 +1.25900000000000e+01 1.79486809780000e-15 +1.26000000000000e+01 1.74233706920000e-15 +1.26100000000000e+01 1.69134343600000e-15 +1.26200000000000e+01 1.64184162420000e-15 +1.26300000000000e+01 1.59378776320000e-15 +1.26400000000000e+01 1.54714023140000e-15 +1.26500000000000e+01 1.50185789400000e-15 +1.26600000000000e+01 1.45790081790000e-15 +1.26700000000000e+01 1.41523023590000e-15 +1.26800000000000e+01 1.37380851270000e-15 +1.26900000000000e+01 1.33359911120000e-15 +1.27000000000000e+01 1.29456656040000e-15 +1.27100000000000e+01 1.25667642400000e-15 +1.27200000000000e+01 1.21989527000000e-15 +1.27300000000000e+01 1.18419064160000e-15 +1.27400000000000e+01 1.14953102860000e-15 +1.27500000000000e+01 1.11588583980000e-15 +1.27600000000000e+01 1.08322537650000e-15 +1.27700000000000e+01 1.05152054250000e-15 +1.27800000000000e+01 1.02074296880000e-15 +1.27900000000000e+01 9.90866162350000e-16 +1.28000000000000e+01 9.61863775550000e-16 +1.28100000000000e+01 9.33710230380000e-16 +1.28200000000000e+01 9.06380695770000e-16 +1.28300000000000e+01 8.79851065550000e-16 +1.28400000000000e+01 8.54097937010000e-16 +1.28500000000000e+01 8.29098590230000e-16 +1.28600000000000e+01 8.04830968000000e-16 +1.28700000000000e+01 7.81273656410000e-16 +1.28800000000000e+01 7.58405866010000e-16 +1.28900000000000e+01 7.36207413640000e-16 +1.29000000000000e+01 7.14658704740000e-16 +1.29100000000000e+01 6.93740716320000e-16 +1.29200000000000e+01 6.73434980370000e-16 +1.29300000000000e+01 6.53722957630000e-16 +1.29400000000000e+01 6.34587850890000e-16 +1.29500000000000e+01 6.16012804530000e-16 +1.29600000000000e+01 5.97981435910000e-16 +1.29700000000000e+01 5.80477840830000e-16 +1.29800000000000e+01 5.63486579410000e-16 +1.29900000000000e+01 5.46992662360000e-16 +1.30000000000000e+01 5.30981537710000e-16 +1.30100000000000e+01 5.15439077950000e-16 +1.30200000000000e+01 5.00351567550000e-16 +1.30300000000000e+01 4.85705690940000e-16 +1.30400000000000e+01 4.71488520800000e-16 +1.30500000000000e+01 4.57687506760000e-16 +1.30600000000000e+01 4.44290464450000e-16 +1.30700000000000e+01 4.31285564910000e-16 +1.30800000000000e+01 4.18661122810000e-16 +1.30900000000000e+01 4.06405963550000e-16 +1.31000000000000e+01 3.94509510830000e-16 +1.31100000000000e+01 3.82961271940000e-16 +1.31200000000000e+01 3.71751060690000e-16 +1.31300000000000e+01 3.60868988270000e-16 +1.31400000000000e+01 3.50305454530000e-16 +1.31500000000000e+01 3.40051139400000e-16 +1.31600000000000e+01 3.30096994680000e-16 +1.31700000000000e+01 3.20434236050000e-16 +1.31800000000000e+01 3.11054335300000e-16 +1.31900000000000e+01 3.01949012880000e-16 +1.32000000000000e+01 2.93110230600000e-16 +1.32100000000000e+01 2.84530184640000e-16 +1.32200000000000e+01 2.76201298770000e-16 +1.32300000000000e+01 2.68116217710000e-16 +1.32400000000000e+01 2.60267571530000e-16 +1.32500000000000e+01 2.52648596260000e-16 +1.32600000000000e+01 2.45252638990000e-16 +1.32700000000000e+01 2.38073175930000e-16 +1.32800000000000e+01 2.31103873810000e-16 +1.32900000000000e+01 2.24338584290000e-16 +1.33000000000000e+01 2.17771338400000e-16 +1.33100000000000e+01 2.11396341350000e-16 +1.33200000000000e+01 2.05207967310000e-16 +1.33300000000000e+01 1.99200754510000e-16 +1.33400000000000e+01 1.93369400400000e-16 +1.33500000000000e+01 1.87708756990000e-16 diff --git a/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi31.inp b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi31.inp new file mode 100644 index 000000000..e74e14e05 --- /dev/null +++ b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi31.inp @@ -0,0 +1,1335 @@ +1.00000000000000e-02 6.34737419270000e-04 +2.00000000000000e-02 2.53749744100000e-03 +3.00000000000000e-02 5.70392748470000e-03 +4.00000000000000e-02 1.01267872140000e-02 +5.00000000000000e-02 1.57959694600000e-02 +6.00000000000000e-02 2.26985294010000e-02 +7.00000000000000e-02 3.08187218870000e-02 +8.00000000000000e-02 4.01380467750000e-02 +9.00000000000000e-02 5.06353020990000e-02 +1.00000000000000e-01 6.22866448850000e-02 +1.10000000000000e-01 7.50656593800000e-02 +1.20000000000000e-01 8.89434324420000e-02 +1.30000000000000e-01 1.03888635820000e-01 +1.40000000000000e-01 1.19867614990000e-01 +1.50000000000000e-01 1.36844484320000e-01 +1.60000000000000e-01 1.54781228050000e-01 +1.70000000000000e-01 1.73637806890000e-01 +1.80000000000000e-01 1.93372269780000e-01 +1.90000000000000e-01 2.13940870390000e-01 +2.00000000000000e-01 2.35298188000000e-01 +2.10000000000000e-01 2.57397252320000e-01 +2.20000000000000e-01 2.80189671780000e-01 +2.30000000000000e-01 3.03625764930000e-01 +2.40000000000000e-01 3.27654694420000e-01 +2.50000000000000e-01 3.52224603150000e-01 +2.60000000000000e-01 3.77282752130000e-01 +2.70000000000000e-01 4.02775659640000e-01 +2.80000000000000e-01 4.28649241100000e-01 +2.90000000000000e-01 4.54848949410000e-01 +3.00000000000000e-01 4.81319915130000e-01 +3.10000000000000e-01 5.08007086180000e-01 +3.20000000000000e-01 5.34855366560000e-01 +3.30000000000000e-01 5.61809753750000e-01 +3.40000000000000e-01 5.88815474350000e-01 +3.50000000000000e-01 6.15818117440000e-01 +3.60000000000000e-01 6.42763765620000e-01 +3.70000000000000e-01 6.69599122910000e-01 +3.80000000000000e-01 6.96271639620000e-01 +3.90000000000000e-01 7.22729633490000e-01 +4.00000000000000e-01 7.48922406990000e-01 +4.10000000000000e-01 7.74800360530000e-01 +4.20000000000000e-01 8.00315101080000e-01 +4.30000000000000e-01 8.25419546150000e-01 +4.40000000000000e-01 8.50068022910000e-01 +4.50000000000000e-01 8.74216362010000e-01 +4.60000000000000e-01 8.97821986180000e-01 +4.70000000000000e-01 9.20843993300000e-01 +4.80000000000000e-01 9.43243233770000e-01 +4.90000000000000e-01 9.64982382120000e-01 +5.00000000000000e-01 9.86026002720000e-01 +5.10000000000000e-01 1.00634060950000e+00 +5.20000000000000e-01 1.02589471950000e+00 +5.30000000000000e-01 1.04465890080000e+00 +5.40000000000000e-01 1.06260581330000e+00 +5.50000000000000e-01 1.07971024450000e+00 +5.60000000000000e-01 1.09594913860000e+00 +5.70000000000000e-01 1.11130161900000e+00 +5.80000000000000e-01 1.12574900560000e+00 +5.90000000000000e-01 1.13927482580000e+00 +6.00000000000000e-01 1.15186481880000e+00 +6.10000000000000e-01 1.16350693520000e+00 +6.20000000000000e-01 1.17419132990000e+00 +6.30000000000000e-01 1.18391034970000e+00 +6.40000000000000e-01 1.19265851540000e+00 +6.50000000000000e-01 1.20043249830000e+00 +6.60000000000000e-01 1.20723109180000e+00 +6.70000000000000e-01 1.21305517690000e+00 +6.80000000000000e-01 1.21790768460000e+00 +6.90000000000000e-01 1.22179355140000e+00 +7.00000000000000e-01 1.22471967190000e+00 +7.10000000000000e-01 1.22669484620000e+00 +7.20000000000000e-01 1.22772972330000e+00 +7.30000000000000e-01 1.22783674060000e+00 +7.40000000000000e-01 1.22703005980000e+00 +7.50000000000000e-01 1.22532549870000e+00 +7.60000000000000e-01 1.22274046050000e+00 +7.70000000000000e-01 1.21929385980000e+00 +7.80000000000000e-01 1.21500604530000e+00 +7.90000000000000e-01 1.20989872040000e+00 +8.00000000000000e-01 1.20399486190000e+00 +8.10000000000000e-01 1.19731863560000e+00 +8.20000000000000e-01 1.18989531100000e+00 +8.30000000000000e-01 1.18175117400000e+00 +8.40000000000000e-01 1.17291343870000e+00 +8.50000000000000e-01 1.16341015760000e+00 +8.60000000000000e-01 1.15327013190000e+00 +8.70000000000000e-01 1.14252282050000e+00 +8.80000000000000e-01 1.13119824940000e+00 +8.90000000000000e-01 1.11932692070000e+00 +9.00000000000000e-01 1.10693972230000e+00 +9.10000000000000e-01 1.09406783790000e+00 +9.20000000000000e-01 1.08074265820000e+00 +9.30000000000000e-01 1.06699569280000e+00 +9.40000000000000e-01 1.05285848350000e+00 +9.50000000000000e-01 1.03836252000000e+00 +9.60000000000000e-01 1.02353915590000e+00 +9.70000000000000e-01 1.00841952840000e+00 +9.80000000000000e-01 9.93034479500000e-01 +9.90000000000000e-01 9.77414479560000e-01 +1.00000000000000e+00 9.61589554300000e-01 +1.01000000000000e+00 9.45589214240000e-01 +1.02000000000000e+00 9.29442387460000e-01 +1.03000000000000e+00 9.13177355760000e-01 +1.04000000000000e+00 8.96821694210000e-01 +1.05000000000000e+00 8.80402214480000e-01 +1.06000000000000e+00 8.63944911910000e-01 +1.07000000000000e+00 8.47474916600000e-01 +1.08000000000000e+00 8.31016448470000e-01 +1.09000000000000e+00 8.14592776550000e-01 +1.10000000000000e+00 7.98226182490000e-01 +1.11000000000000e+00 7.81937928370000e-01 +1.12000000000000e+00 7.65748228880000e-01 +1.13000000000000e+00 7.49676227860000e-01 +1.14000000000000e+00 7.33739979290000e-01 +1.15000000000000e+00 7.17956432630000e-01 +1.16000000000000e+00 7.02341422560000e-01 +1.17000000000000e+00 6.86909663020000e-01 +1.18000000000000e+00 6.71674745540000e-01 +1.19000000000000e+00 6.56649141770000e-01 +1.20000000000000e+00 6.41844210100000e-01 +1.21000000000000e+00 6.27270206180000e-01 +1.22000000000000e+00 6.12936297460000e-01 +1.23000000000000e+00 5.98850581240000e-01 +1.24000000000000e+00 5.85020106390000e-01 +1.25000000000000e+00 5.71450898340000e-01 +1.26000000000000e+00 5.58147987340000e-01 +1.27000000000000e+00 5.45115439570000e-01 +1.28000000000000e+00 5.32356391050000e-01 +1.29000000000000e+00 5.19873084080000e-01 +1.30000000000000e+00 5.07666905910000e-01 +1.31000000000000e+00 4.95738429500000e-01 +1.32000000000000e+00 4.84087456010000e-01 +1.33000000000000e+00 4.72713058830000e-01 +1.34000000000000e+00 4.61613628920000e-01 +1.35000000000000e+00 4.50786921030000e-01 +1.36000000000000e+00 4.40230100820000e-01 +1.37000000000000e+00 4.29939792320000e-01 +1.38000000000000e+00 4.19912125650000e-01 +1.39000000000000e+00 4.10142784680000e-01 +1.40000000000000e+00 4.00627054460000e-01 +1.41000000000000e+00 3.91359868000000e-01 +1.42000000000000e+00 3.82335852380000e-01 +1.43000000000000e+00 3.73549373820000e-01 +1.44000000000000e+00 3.64994581500000e-01 +1.45000000000000e+00 3.56665450050000e-01 +1.46000000000000e+00 3.48555820400000e-01 +1.47000000000000e+00 3.40659438820000e-01 +1.48000000000000e+00 3.32969994120000e-01 +1.49000000000000e+00 3.25481152700000e-01 +1.50000000000000e+00 3.18186591470000e-01 +1.51000000000000e+00 3.11080028450000e-01 +1.52000000000000e+00 3.04155251020000e-01 +1.53000000000000e+00 2.97406141670000e-01 +1.54000000000000e+00 2.90826701330000e-01 +1.55000000000000e+00 2.84411070140000e-01 +1.56000000000000e+00 2.78153545680000e-01 +1.57000000000000e+00 2.72048598740000e-01 +1.58000000000000e+00 2.66090886510000e-01 +1.59000000000000e+00 2.60275263420000e-01 +1.60000000000000e+00 2.54596789510000e-01 +1.61000000000000e+00 2.49050736540000e-01 +1.62000000000000e+00 2.43632591910000e-01 +1.63000000000000e+00 2.38338060420000e-01 +1.64000000000000e+00 2.33163064090000e-01 +1.65000000000000e+00 2.28103740090000e-01 +1.66000000000000e+00 2.23156437050000e-01 +1.67000000000000e+00 2.18317709710000e-01 +1.68000000000000e+00 2.13584312280000e-01 +1.69000000000000e+00 2.08953190480000e-01 +1.70000000000000e+00 2.04421472610000e-01 +1.71000000000000e+00 1.99986459720000e-01 +1.72000000000000e+00 1.95645615040000e-01 +1.73000000000000e+00 1.91396552920000e-01 +1.74000000000000e+00 1.87237027390000e-01 +1.75000000000000e+00 1.83164920580000e-01 +1.76000000000000e+00 1.79178231060000e-01 +1.77000000000000e+00 1.75275062390000e-01 +1.78000000000000e+00 1.71453611850000e-01 +1.79000000000000e+00 1.67712159740000e-01 +1.80000000000000e+00 1.64049059110000e-01 +1.81000000000000e+00 1.60462726280000e-01 +1.82000000000000e+00 1.56951632050000e-01 +1.83000000000000e+00 1.53514293870000e-01 +1.84000000000000e+00 1.50149268900000e-01 +1.85000000000000e+00 1.46855148080000e-01 +1.86000000000000e+00 1.43630551530000e-01 +1.87000000000000e+00 1.40474124420000e-01 +1.88000000000000e+00 1.37384535110000e-01 +1.89000000000000e+00 1.34360473420000e-01 +1.90000000000000e+00 1.31400649860000e-01 +1.91000000000000e+00 1.28503795800000e-01 +1.92000000000000e+00 1.25668663070000e-01 +1.93000000000000e+00 1.22894023750000e-01 +1.94000000000000e+00 1.20178670190000e-01 +1.95000000000000e+00 1.17521415060000e-01 +1.96000000000000e+00 1.14921091890000e-01 +1.97000000000000e+00 1.12376554250000e-01 +1.98000000000000e+00 1.09886675310000e-01 +1.99000000000000e+00 1.07450347820000e-01 +2.00000000000000e+00 1.05066484010000e-01 +2.01000000000000e+00 1.02734015510000e-01 +2.02000000000000e+00 1.00451892980000e-01 +2.03000000000000e+00 9.82190859580000e-02 +2.04000000000000e+00 9.60345826120000e-02 +2.05000000000000e+00 9.38973895660000e-02 +2.06000000000000e+00 9.18065316480000e-02 +2.07000000000000e+00 8.97610516730000e-02 +2.08000000000000e+00 8.77600102100000e-02 +2.09000000000000e+00 8.58024853500000e-02 +2.10000000000000e+00 8.38875724710000e-02 +2.11000000000000e+00 8.20143840000000e-02 +2.12000000000000e+00 8.01820491760000e-02 +2.13000000000000e+00 7.83897138070000e-02 +2.14000000000000e+00 7.66365400350000e-02 +2.15000000000000e+00 7.49217060900000e-02 +2.16000000000000e+00 7.32444060480000e-02 +2.17000000000000e+00 7.16038495950000e-02 +2.18000000000000e+00 6.99992617820000e-02 +2.19000000000000e+00 6.84298827840000e-02 +2.20000000000000e+00 6.68949676600000e-02 +2.21000000000000e+00 6.53937861190000e-02 +2.22000000000000e+00 6.39256222750000e-02 +2.23000000000000e+00 6.24897744160000e-02 +2.24000000000000e+00 6.10855547640000e-02 +2.25000000000000e+00 5.97122892460000e-02 +2.26000000000000e+00 5.83693172610000e-02 +2.27000000000000e+00 5.70559914480000e-02 +2.28000000000000e+00 5.57716774590000e-02 +2.29000000000000e+00 5.45157537350000e-02 +2.30000000000000e+00 5.32876112800000e-02 +2.31000000000000e+00 5.20866534400000e-02 +2.32000000000000e+00 5.09122956840000e-02 +2.33000000000000e+00 4.97639653870000e-02 +2.34000000000000e+00 4.86411016170000e-02 +2.35000000000000e+00 4.75431549210000e-02 +2.36000000000000e+00 4.64695871180000e-02 +2.37000000000000e+00 4.54198710890000e-02 +2.38000000000000e+00 4.43934905740000e-02 +2.39000000000000e+00 4.33899399740000e-02 +2.40000000000000e+00 4.24087241490000e-02 +2.41000000000000e+00 4.14493582220000e-02 +2.42000000000000e+00 4.05113673900000e-02 +2.43000000000000e+00 3.95942867260000e-02 +2.44000000000000e+00 3.86976609970000e-02 +2.45000000000000e+00 3.78210444780000e-02 +2.46000000000000e+00 3.69640007680000e-02 +2.47000000000000e+00 3.61261026130000e-02 +2.48000000000000e+00 3.53069317270000e-02 +2.49000000000000e+00 3.45060786170000e-02 +2.50000000000000e+00 3.37231424190000e-02 +2.51000000000000e+00 3.29577307180000e-02 +2.52000000000000e+00 3.22094593920000e-02 +2.53000000000000e+00 3.14779524450000e-02 +2.54000000000000e+00 3.07628418470000e-02 +2.55000000000000e+00 3.00637673750000e-02 +2.56000000000000e+00 2.93803764590000e-02 +2.57000000000000e+00 2.87123240320000e-02 +2.58000000000000e+00 2.80592723750000e-02 +2.59000000000000e+00 2.74208909740000e-02 +2.60000000000000e+00 2.67968563740000e-02 +2.61000000000000e+00 2.61868520360000e-02 +2.62000000000000e+00 2.55905681980000e-02 +2.63000000000000e+00 2.50077017370000e-02 +2.64000000000000e+00 2.44379560370000e-02 +2.65000000000000e+00 2.38810408520000e-02 +2.66000000000000e+00 2.33366721820000e-02 +2.67000000000000e+00 2.28045721380000e-02 +2.68000000000000e+00 2.22844688240000e-02 +2.69000000000000e+00 2.17760962100000e-02 +2.70000000000000e+00 2.12791940120000e-02 +2.71000000000000e+00 2.07935075740000e-02 +2.72000000000000e+00 2.03187877510000e-02 +2.73000000000000e+00 1.98547907970000e-02 +2.74000000000000e+00 1.94012782490000e-02 +2.75000000000000e+00 1.89580168230000e-02 +2.76000000000000e+00 1.85247783000000e-02 +2.77000000000000e+00 1.81013394270000e-02 +2.78000000000000e+00 1.76874818060000e-02 +2.79000000000000e+00 1.72829918000000e-02 +2.80000000000000e+00 1.68876604270000e-02 +2.81000000000000e+00 1.65012832660000e-02 +2.82000000000000e+00 1.61236603610000e-02 +2.83000000000000e+00 1.57545961230000e-02 +2.84000000000000e+00 1.53938992440000e-02 +2.85000000000000e+00 1.50413826030000e-02 +2.86000000000000e+00 1.46968631770000e-02 +2.87000000000000e+00 1.43601619570000e-02 +2.88000000000000e+00 1.40311038610000e-02 +2.89000000000000e+00 1.37095176500000e-02 +2.90000000000000e+00 1.33952358480000e-02 +2.91000000000000e+00 1.30880946620000e-02 +2.92000000000000e+00 1.27879339000000e-02 +2.93000000000000e+00 1.24945968990000e-02 +2.94000000000000e+00 1.22079304490000e-02 +2.95000000000000e+00 1.19277847140000e-02 +2.96000000000000e+00 1.16540131660000e-02 +2.97000000000000e+00 1.13864725100000e-02 +2.98000000000000e+00 1.11250226190000e-02 +2.99000000000000e+00 1.08695264590000e-02 +3.00000000000000e+00 1.06198500290000e-02 +3.01000000000000e+00 1.03758622930000e-02 +3.02000000000000e+00 1.01374351170000e-02 +3.03000000000000e+00 9.90444320350000e-03 +3.04000000000000e+00 9.67676403480000e-03 +3.05000000000000e+00 9.45427780980000e-03 +3.06000000000000e+00 9.23686738580000e-03 +3.07000000000000e+00 9.02441822160000e-03 +3.08000000000000e+00 8.81681832050000e-03 +3.09000000000000e+00 8.61395817540000e-03 +3.10000000000000e+00 8.41573071430000e-03 +3.11000000000000e+00 8.22203124830000e-03 +3.12000000000000e+00 8.03275741870000e-03 +3.13000000000000e+00 7.84780914690000e-03 +3.14000000000000e+00 7.66708858450000e-03 +3.15000000000000e+00 7.49050006500000e-03 +3.16000000000000e+00 7.31795005560000e-03 +3.17000000000000e+00 7.14934711100000e-03 +3.18000000000000e+00 6.98460182800000e-03 +3.19000000000000e+00 6.82362680000000e-03 +3.20000000000000e+00 6.66633657440000e-03 +3.21000000000000e+00 6.51264760880000e-03 +3.22000000000000e+00 6.36247822980000e-03 +3.23000000000000e+00 6.21574859170000e-03 +3.24000000000000e+00 6.07238063630000e-03 +3.25000000000000e+00 5.93229805400000e-03 +3.26000000000000e+00 5.79542624510000e-03 +3.27000000000000e+00 5.66169228200000e-03 +3.28000000000000e+00 5.53102487300000e-03 +3.29000000000000e+00 5.40335432550000e-03 +3.30000000000000e+00 5.27861251160000e-03 +3.31000000000000e+00 5.15673283270000e-03 +3.32000000000000e+00 5.03765018670000e-03 +3.33000000000000e+00 4.92130093400000e-03 +3.34000000000000e+00 4.80762286600000e-03 +3.35000000000000e+00 4.69655517310000e-03 +3.36000000000000e+00 4.58803841360000e-03 +3.37000000000000e+00 4.48201448390000e-03 +3.38000000000000e+00 4.37842658850000e-03 +3.39000000000000e+00 4.27721921100000e-03 +3.40000000000000e+00 4.17833808610000e-03 +3.41000000000000e+00 4.08173017150000e-03 +3.42000000000000e+00 3.98734362100000e-03 +3.43000000000000e+00 3.89512775760000e-03 +3.44000000000000e+00 3.80503304810000e-03 +3.45000000000000e+00 3.71701107720000e-03 +3.46000000000000e+00 3.63101452280000e-03 +3.47000000000000e+00 3.54699713170000e-03 +3.48000000000000e+00 3.46491369580000e-03 +3.49000000000000e+00 3.38472002880000e-03 +3.50000000000000e+00 3.30637294350000e-03 +3.51000000000000e+00 3.22983022960000e-03 +3.52000000000000e+00 3.15505063160000e-03 +3.53000000000000e+00 3.08199382800000e-03 +3.54000000000000e+00 3.01062040990000e-03 +3.55000000000000e+00 2.94089186100000e-03 +3.56000000000000e+00 2.87277053780000e-03 +3.57000000000000e+00 2.80621964940000e-03 +3.58000000000000e+00 2.74120323920000e-03 +3.59000000000000e+00 2.67768616600000e-03 +3.60000000000000e+00 2.61563408550000e-03 +3.61000000000000e+00 2.55501343280000e-03 +3.62000000000000e+00 2.49579140460000e-03 +3.63000000000000e+00 2.43793594270000e-03 +3.64000000000000e+00 2.38141571660000e-03 +3.65000000000000e+00 2.32620010760000e-03 +3.66000000000000e+00 2.27225919280000e-03 +3.67000000000000e+00 2.21956372960000e-03 +3.68000000000000e+00 2.16808514000000e-03 +3.69000000000000e+00 2.11779549610000e-03 +3.70000000000000e+00 2.06866750540000e-03 +3.71000000000000e+00 2.02067449620000e-03 +3.72000000000000e+00 1.97379040430000e-03 +3.73000000000000e+00 1.92798975870000e-03 +3.74000000000000e+00 1.88324766850000e-03 +3.75000000000000e+00 1.83953980980000e-03 +3.76000000000000e+00 1.79684241320000e-03 +3.77000000000000e+00 1.75513225090000e-03 +3.78000000000000e+00 1.71438662470000e-03 +3.79000000000000e+00 1.67458335410000e-03 +3.80000000000000e+00 1.63570076450000e-03 +3.81000000000000e+00 1.59771767600000e-03 +3.82000000000000e+00 1.56061339200000e-03 +3.83000000000000e+00 1.52436768830000e-03 +3.84000000000000e+00 1.48896080270000e-03 +3.85000000000000e+00 1.45437342430000e-03 +3.86000000000000e+00 1.42058668340000e-03 +3.87000000000000e+00 1.38758214160000e-03 +3.88000000000000e+00 1.35534178170000e-03 +3.89000000000000e+00 1.32384799880000e-03 +3.90000000000000e+00 1.29308359040000e-03 +3.91000000000000e+00 1.26303174750000e-03 +3.92000000000000e+00 1.23367604580000e-03 +3.93000000000000e+00 1.20500043680000e-03 +3.94000000000000e+00 1.17698923940000e-03 +3.95000000000000e+00 1.14962713160000e-03 +3.96000000000000e+00 1.12289914210000e-03 +3.97000000000000e+00 1.09679064290000e-03 +3.98000000000000e+00 1.07128734080000e-03 +3.99000000000000e+00 1.04637527040000e-03 +4.00000000000000e+00 1.02204078630000e-03 +4.01000000000000e+00 9.98270556130000e-04 +4.02000000000000e+00 9.75051553070000e-04 +4.03000000000000e+00 9.52371049200000e-04 +4.04000000000000e+00 9.30216608660000e-04 +4.05000000000000e+00 9.08576080920000e-04 +4.06000000000000e+00 8.87437594350000e-04 +4.07000000000000e+00 8.66789549830000e-04 +4.08000000000000e+00 8.46620614660000e-04 +4.09000000000000e+00 8.26919716390000e-04 +4.10000000000000e+00 8.07676036940000e-04 +4.11000000000000e+00 7.88879006760000e-04 +4.12000000000000e+00 7.70518299220000e-04 +4.13000000000000e+00 7.52583825100000e-04 +4.14000000000000e+00 7.35065727100000e-04 +4.15000000000000e+00 7.17954374630000e-04 +4.16000000000000e+00 7.01240358560000e-04 +4.17000000000000e+00 6.84914486200000e-04 +4.18000000000000e+00 6.68967776440000e-04 +4.19000000000000e+00 6.53391454830000e-04 +4.20000000000000e+00 6.38176948860000e-04 +4.21000000000000e+00 6.23315883400000e-04 +4.22000000000000e+00 6.08800076120000e-04 +4.23000000000000e+00 5.94621533200000e-04 +4.24000000000000e+00 5.80772444940000e-04 +4.25000000000000e+00 5.67245181550000e-04 +4.26000000000000e+00 5.54032289040000e-04 +4.27000000000000e+00 5.41126485210000e-04 +4.28000000000000e+00 5.28520655750000e-04 +4.29000000000000e+00 5.16207850370000e-04 +4.30000000000000e+00 5.04181279040000e-04 +4.31000000000000e+00 4.92434308310000e-04 +4.32000000000000e+00 4.80960457720000e-04 +4.33000000000000e+00 4.69753396390000e-04 +4.34000000000000e+00 4.58806939480000e-04 +4.35000000000000e+00 4.48115044870000e-04 +4.36000000000000e+00 4.37671809940000e-04 +4.37000000000000e+00 4.27471468280000e-04 +4.38000000000000e+00 4.17508386660000e-04 +4.39000000000000e+00 4.07777061950000e-04 +4.40000000000000e+00 3.98272118100000e-04 +4.41000000000000e+00 3.88988303250000e-04 +4.42000000000000e+00 3.79920486860000e-04 +4.43000000000000e+00 3.71063656940000e-04 +4.44000000000000e+00 3.62412917370000e-04 +4.45000000000000e+00 3.53963485160000e-04 +4.46000000000000e+00 3.45710687890000e-04 +4.47000000000000e+00 3.37649961180000e-04 +4.48000000000000e+00 3.29776846160000e-04 +4.49000000000000e+00 3.22086987120000e-04 +4.50000000000000e+00 3.14576129090000e-04 +4.51000000000000e+00 3.07240115520000e-04 +4.52000000000000e+00 3.00074886030000e-04 +4.53000000000000e+00 2.93076474160000e-04 +4.54000000000000e+00 2.86241005300000e-04 +4.55000000000000e+00 2.79564694480000e-04 +4.56000000000000e+00 2.73043844380000e-04 +4.57000000000000e+00 2.66674843230000e-04 +4.58000000000000e+00 2.60454162920000e-04 +4.59000000000000e+00 2.54378357010000e-04 +4.60000000000000e+00 2.48444058920000e-04 +4.61000000000000e+00 2.42647980040000e-04 +4.62000000000000e+00 2.36986907900000e-04 +4.63000000000000e+00 2.31457704510000e-04 +4.64000000000000e+00 2.26057304540000e-04 +4.65000000000000e+00 2.20782713720000e-04 +4.66000000000000e+00 2.15631007190000e-04 +4.67000000000000e+00 2.10599327860000e-04 +4.68000000000000e+00 2.05684884890000e-04 +4.69000000000000e+00 2.00884952100000e-04 +4.70000000000000e+00 1.96196866560000e-04 +4.71000000000000e+00 1.91618027090000e-04 +4.72000000000000e+00 1.87145892820000e-04 +4.73000000000000e+00 1.82777981810000e-04 +4.74000000000000e+00 1.78511869700000e-04 +4.75000000000000e+00 1.74345188350000e-04 +4.76000000000000e+00 1.70275624580000e-04 +4.77000000000000e+00 1.66300918890000e-04 +4.78000000000000e+00 1.62418864210000e-04 +4.79000000000000e+00 1.58627304660000e-04 +4.80000000000000e+00 1.54924134440000e-04 +4.81000000000000e+00 1.51307296570000e-04 +4.82000000000000e+00 1.47774781880000e-04 +4.83000000000000e+00 1.44324627820000e-04 +4.84000000000000e+00 1.40954917420000e-04 +4.85000000000000e+00 1.37663778190000e-04 +4.86000000000000e+00 1.34449381150000e-04 +4.87000000000000e+00 1.31309939770000e-04 +4.88000000000000e+00 1.28243709060000e-04 +4.89000000000000e+00 1.25248984520000e-04 +4.90000000000000e+00 1.22324101260000e-04 +4.91000000000000e+00 1.19467433080000e-04 +4.92000000000000e+00 1.16677391530000e-04 +4.93000000000000e+00 1.13952425090000e-04 +4.94000000000000e+00 1.11291018300000e-04 +4.95000000000000e+00 1.08691690920000e-04 +4.96000000000000e+00 1.06152997080000e-04 +4.97000000000000e+00 1.03673524550000e-04 +4.98000000000000e+00 1.01251893900000e-04 +4.99000000000000e+00 9.88867577730000e-05 +5.00000000000000e+00 9.65768001570000e-05 +5.01000000000000e+00 9.43207356160000e-05 +5.02000000000000e+00 9.21173086050000e-05 +5.03000000000000e+00 8.99652927730000e-05 +5.04000000000000e+00 8.78634902780000e-05 +5.05000000000000e+00 8.58107311410000e-05 +5.06000000000000e+00 8.38058726050000e-05 +5.07000000000000e+00 8.18477984840000e-05 +5.08000000000000e+00 7.99354185510000e-05 +5.09000000000000e+00 7.80676679420000e-05 +5.10000000000000e+00 7.62435065550000e-05 +5.11000000000000e+00 7.44619184930000e-05 +5.12000000000000e+00 7.27219115060000e-05 +5.13000000000000e+00 7.10225164200000e-05 +5.14000000000000e+00 6.93627866140000e-05 +5.15000000000000e+00 6.77417974950000e-05 +5.16000000000000e+00 6.61586459780000e-05 +5.17000000000000e+00 6.46124499970000e-05 +5.18000000000000e+00 6.31023480330000e-05 +5.19000000000000e+00 6.16274986070000e-05 +5.20000000000000e+00 6.01870798260000e-05 +5.21000000000000e+00 5.87802889290000e-05 +5.22000000000000e+00 5.74063418390000e-05 +5.23000000000000e+00 5.60644727270000e-05 +5.24000000000000e+00 5.47539336150000e-05 +5.25000000000000e+00 5.34739939260000e-05 +5.26000000000000e+00 5.22239400970000e-05 +5.27000000000000e+00 5.10030751770000e-05 +5.28000000000000e+00 4.98107184440000e-05 +5.29000000000000e+00 4.86462050190000e-05 +5.30000000000000e+00 4.75088855250000e-05 +5.31000000000000e+00 4.63981257040000e-05 +5.32000000000000e+00 4.53133060660000e-05 +5.33000000000000e+00 4.42538215520000e-05 +5.34000000000000e+00 4.32190811940000e-05 +5.35000000000000e+00 4.22085077810000e-05 +5.36000000000000e+00 4.12215375610000e-05 +5.37000000000000e+00 4.02576199150000e-05 +5.38000000000000e+00 3.93162170500000e-05 +5.39000000000000e+00 3.83968037000000e-05 +5.40000000000000e+00 3.74988668360000e-05 +5.41000000000000e+00 3.66219053820000e-05 +5.42000000000000e+00 3.57654299280000e-05 +5.43000000000000e+00 3.49289624900000e-05 +5.44000000000000e+00 3.41120362110000e-05 +5.45000000000000e+00 3.33141951130000e-05 +5.46000000000000e+00 3.25349938430000e-05 +5.47000000000000e+00 3.17739974290000e-05 +5.48000000000000e+00 3.10307810270000e-05 +5.49000000000000e+00 3.03049297070000e-05 +5.50000000000000e+00 2.95960382090000e-05 +5.51000000000000e+00 2.89037107170000e-05 +5.52000000000000e+00 2.82275606420000e-05 +5.53000000000000e+00 2.75672104030000e-05 +5.54000000000000e+00 2.69222912220000e-05 +5.55000000000000e+00 2.62924429090000e-05 +5.56000000000000e+00 2.56773136910000e-05 +5.57000000000000e+00 2.50765599860000e-05 +5.58000000000000e+00 2.44898462210000e-05 +5.59000000000000e+00 2.39168446500000e-05 +5.60000000000000e+00 2.33572351660000e-05 +5.61000000000000e+00 2.28107051200000e-05 +5.62000000000000e+00 2.22769491600000e-05 +5.63000000000000e+00 2.17556690580000e-05 +5.64000000000000e+00 2.12465735380000e-05 +5.65000000000000e+00 2.07493781150000e-05 +5.66000000000000e+00 2.02638049370000e-05 +5.67000000000000e+00 1.97895826340000e-05 +5.68000000000000e+00 1.93264461550000e-05 +5.69000000000000e+00 1.88741366450000e-05 +5.70000000000000e+00 1.84324012830000e-05 +5.71000000000000e+00 1.80009931420000e-05 +5.72000000000000e+00 1.75796710580000e-05 +5.73000000000000e+00 1.71681994870000e-05 +5.74000000000000e+00 1.67663483820000e-05 +5.75000000000000e+00 1.63738930560000e-05 +5.76000000000000e+00 1.59906140740000e-05 +5.77000000000000e+00 1.56162971180000e-05 +5.78000000000000e+00 1.52507328680000e-05 +5.79000000000000e+00 1.48937168860000e-05 +5.80000000000000e+00 1.45450495050000e-05 +5.81000000000000e+00 1.42045357150000e-05 +5.82000000000000e+00 1.38719850500000e-05 +5.83000000000000e+00 1.35472115020000e-05 +5.84000000000000e+00 1.32300333960000e-05 +5.85000000000000e+00 1.29202732970000e-05 +5.86000000000000e+00 1.26177579090000e-05 +5.87000000000000e+00 1.23223179810000e-05 +5.88000000000000e+00 1.20337882090000e-05 +5.89000000000000e+00 1.17520071440000e-05 +5.90000000000000e+00 1.14768171150000e-05 +5.91000000000000e+00 1.12080641250000e-05 +5.92000000000000e+00 1.09455977720000e-05 +5.93000000000000e+00 1.06892711630000e-05 +5.94000000000000e+00 1.04389408330000e-05 +5.95000000000000e+00 1.01944666670000e-05 +5.96000000000000e+00 9.95571181220000e-06 +5.97000000000000e+00 9.72254262430000e-06 +5.98000000000000e+00 9.49482857210000e-06 +5.99000000000000e+00 9.27244217130000e-06 +6.00000000000000e+00 9.05525891350000e-06 +6.01000000000000e+00 8.84315719640000e-06 +6.02000000000000e+00 8.63601825640000e-06 +6.03000000000000e+00 8.43372609780000e-06 +6.04000000000000e+00 8.23616744160000e-06 +6.05000000000000e+00 8.04323165120000e-06 +6.06000000000000e+00 7.85481067180000e-06 +6.07000000000000e+00 7.67079897150000e-06 +6.08000000000000e+00 7.49109348200000e-06 +6.09000000000000e+00 7.31559354160000e-06 +6.10000000000000e+00 7.14420083550000e-06 +6.11000000000000e+00 6.97681934950000e-06 +6.12000000000000e+00 6.81335531230000e-06 +6.13000000000000e+00 6.65371714060000e-06 +6.14000000000000e+00 6.49781538940000e-06 +6.15000000000000e+00 6.34556270230000e-06 +6.16000000000000e+00 6.19687376310000e-06 +6.17000000000000e+00 6.05166524630000e-06 +6.18000000000000e+00 5.90985577200000e-06 +6.19000000000000e+00 5.77136586680000e-06 +6.20000000000000e+00 5.63611791010000e-06 +6.21000000000000e+00 5.50403609420000e-06 +6.22000000000000e+00 5.37504638190000e-06 +6.23000000000000e+00 5.24907646500000e-06 +6.24000000000000e+00 5.12605572440000e-06 +6.25000000000000e+00 5.00591518670000e-06 +6.26000000000000e+00 4.88858749730000e-06 +6.27000000000000e+00 4.77400687210000e-06 +6.28000000000000e+00 4.66210906330000e-06 +6.29000000000000e+00 4.55283132410000e-06 +6.30000000000000e+00 4.44611237330000e-06 +6.31000000000000e+00 4.34189236130000e-06 +6.32000000000000e+00 4.24011283510000e-06 +6.33000000000000e+00 4.14071670840000e-06 +6.34000000000000e+00 4.04364823220000e-06 +6.35000000000000e+00 3.94885295750000e-06 +6.36000000000000e+00 3.85627770780000e-06 +6.37000000000000e+00 3.76587054870000e-06 +6.38000000000000e+00 3.67758075940000e-06 +6.39000000000000e+00 3.59135880450000e-06 +6.40000000000000e+00 3.50715630260000e-06 +6.41000000000000e+00 3.42492600890000e-06 +6.42000000000000e+00 3.34462178110000e-06 +6.43000000000000e+00 3.26619855460000e-06 +6.44000000000000e+00 3.18961231760000e-06 +6.45000000000000e+00 3.11482008720000e-06 +6.46000000000000e+00 3.04177988490000e-06 +6.47000000000000e+00 2.97045071280000e-06 +6.48000000000000e+00 2.90079252930000e-06 +6.49000000000000e+00 2.83276623440000e-06 +6.50000000000000e+00 2.76633363910000e-06 +6.51000000000000e+00 2.70145744710000e-06 +6.52000000000000e+00 2.63810123380000e-06 +6.53000000000000e+00 2.57622942610000e-06 +6.54000000000000e+00 2.51580728240000e-06 +6.55000000000000e+00 2.45680087190000e-06 +6.56000000000000e+00 2.39917705790000e-06 +6.57000000000000e+00 2.34290348090000e-06 +6.58000000000000e+00 2.28794853630000e-06 +6.59000000000000e+00 2.23428135820000e-06 +6.60000000000000e+00 2.18187180260000e-06 +6.61000000000000e+00 2.13069042980000e-06 +6.62000000000000e+00 2.08070848890000e-06 +6.63000000000000e+00 2.03189789940000e-06 +6.64000000000000e+00 1.98423123940000e-06 +6.65000000000000e+00 1.93768172940000e-06 +6.66000000000000e+00 1.89222321480000e-06 +6.67000000000000e+00 1.84783015280000e-06 +6.68000000000000e+00 1.80447759770000e-06 +6.69000000000000e+00 1.76214118710000e-06 +6.70000000000000e+00 1.72079712850000e-06 +6.71000000000000e+00 1.68042218440000e-06 +6.72000000000000e+00 1.64099366250000e-06 +6.73000000000000e+00 1.60248940230000e-06 +6.74000000000000e+00 1.56488776040000e-06 +6.75000000000000e+00 1.52816759970000e-06 +6.76000000000000e+00 1.49230827740000e-06 +6.77000000000000e+00 1.45728963370000e-06 +6.78000000000000e+00 1.42309198030000e-06 +6.79000000000000e+00 1.38969608800000e-06 +6.80000000000000e+00 1.35708317910000e-06 +6.81000000000000e+00 1.32523491630000e-06 +6.82000000000000e+00 1.29413339000000e-06 +6.83000000000000e+00 1.26376110980000e-06 +6.84000000000000e+00 1.23410099430000e-06 +6.85000000000000e+00 1.20513636190000e-06 +6.86000000000000e+00 1.17685092100000e-06 +6.87000000000000e+00 1.14922876080000e-06 +6.88000000000000e+00 1.12225434270000e-06 +6.89000000000000e+00 1.09591249400000e-06 +6.90000000000000e+00 1.07018839530000e-06 +6.91000000000000e+00 1.04506757440000e-06 +6.92000000000000e+00 1.02053589760000e-06 +6.93000000000000e+00 9.96579561720000e-07 +6.94000000000000e+00 9.73185086930000e-07 +6.95000000000000e+00 9.50339308330000e-07 +6.96000000000000e+00 9.28029368290000e-07 +6.97000000000000e+00 9.06242712930000e-07 +6.98000000000000e+00 8.84967080740000e-07 +6.99000000000000e+00 8.64190497200000e-07 +7.00000000000000e+00 8.43901268020000e-07 +7.01000000000000e+00 8.24087972630000e-07 +7.02000000000000e+00 8.04739457760000e-07 +7.03000000000000e+00 7.85844831220000e-07 +7.04000000000000e+00 7.67393454440000e-07 +7.05000000000000e+00 7.49374940350000e-07 +7.06000000000000e+00 7.31779144350000e-07 +7.07000000000000e+00 7.14596159070000e-07 +7.08000000000000e+00 6.97816309050000e-07 +7.09000000000000e+00 6.81430145350000e-07 +7.10000000000000e+00 6.65428440200000e-07 +7.11000000000000e+00 6.49802181920000e-07 +7.12000000000000e+00 6.34542569230000e-07 +7.13000000000000e+00 6.19641007180000e-07 +7.14000000000000e+00 6.05089103400000e-07 +7.15000000000000e+00 5.90878661140000e-07 +7.16000000000000e+00 5.77001675610000e-07 +7.17000000000000e+00 5.63450329430000e-07 +7.18000000000000e+00 5.50216988290000e-07 +7.19000000000000e+00 5.37294196640000e-07 +7.20000000000000e+00 5.24674673520000e-07 +7.21000000000000e+00 5.12351307400000e-07 +7.22000000000000e+00 5.00317155330000e-07 +7.23000000000000e+00 4.88565436350000e-07 +7.24000000000000e+00 4.77089528120000e-07 +7.25000000000000e+00 4.65882963400000e-07 +7.26000000000000e+00 4.54939426410000e-07 +7.27000000000000e+00 4.44252749310000e-07 +7.28000000000000e+00 4.33816908710000e-07 +7.29000000000000e+00 4.23626022080000e-07 +7.30000000000000e+00 4.13674344270000e-07 +7.31000000000000e+00 4.03956266340000e-07 +7.32000000000000e+00 3.94466309900000e-07 +7.33000000000000e+00 3.85199124870000e-07 +7.34000000000000e+00 3.76149486520000e-07 +7.35000000000000e+00 3.67312292510000e-07 +7.36000000000000e+00 3.58682560030000e-07 +7.37000000000000e+00 3.50255423010000e-07 +7.38000000000000e+00 3.42026128940000e-07 +7.39000000000000e+00 3.33990037030000e-07 +7.40000000000000e+00 3.26142615960000e-07 +7.41000000000000e+00 3.18479440020000e-07 +7.42000000000000e+00 3.10996187240000e-07 +7.43000000000000e+00 3.03688636880000e-07 +7.44000000000000e+00 2.96552667120000e-07 +7.45000000000000e+00 2.89584252730000e-07 +7.46000000000000e+00 2.82779462800000e-07 +7.47000000000000e+00 2.76134457990000e-07 +7.48000000000000e+00 2.69645489710000e-07 +7.49000000000000e+00 2.63308897430000e-07 +7.50000000000000e+00 2.57121106060000e-07 +7.51000000000000e+00 2.51078624330000e-07 +7.52000000000000e+00 2.45178042760000e-07 +7.53000000000000e+00 2.39416031790000e-07 +7.54000000000000e+00 2.33789339900000e-07 +7.55000000000000e+00 2.28294791800000e-07 +7.56000000000000e+00 2.22929286080000e-07 +7.57000000000000e+00 2.17689794840000e-07 +7.58000000000000e+00 2.12573361230000e-07 +7.59000000000000e+00 2.07577097430000e-07 +7.60000000000000e+00 2.02698183340000e-07 +7.61000000000000e+00 1.97933864960000e-07 +7.62000000000000e+00 1.93281452850000e-07 +7.63000000000000e+00 1.88738320620000e-07 +7.64000000000000e+00 1.84301903460000e-07 +7.65000000000000e+00 1.79969696280000e-07 +7.66000000000000e+00 1.75739253280000e-07 +7.67000000000000e+00 1.71608186190000e-07 +7.68000000000000e+00 1.67574162490000e-07 +7.69000000000000e+00 1.63634904330000e-07 +7.70000000000000e+00 1.59788187270000e-07 +7.71000000000000e+00 1.56031839040000e-07 +7.72000000000000e+00 1.52363738310000e-07 +7.73000000000000e+00 1.48781813480000e-07 +7.74000000000000e+00 1.45284041280000e-07 +7.75000000000000e+00 1.41868446050000e-07 +7.76000000000000e+00 1.38533098980000e-07 +7.77000000000000e+00 1.35276116100000e-07 +7.78000000000000e+00 1.32095657670000e-07 +7.79000000000000e+00 1.28989927090000e-07 +7.80000000000000e+00 1.25957169870000e-07 +7.81000000000000e+00 1.22995672690000e-07 +7.82000000000000e+00 1.20103762420000e-07 +7.83000000000000e+00 1.17279805080000e-07 +7.84000000000000e+00 1.14522204730000e-07 +7.85000000000000e+00 1.11829403720000e-07 +7.86000000000000e+00 1.09199880520000e-07 +7.87000000000000e+00 1.06632149250000e-07 +7.88000000000000e+00 1.04124758940000e-07 +7.89000000000000e+00 1.01676292620000e-07 +7.90000000000000e+00 9.92853665620000e-08 +7.91000000000000e+00 9.69506295150000e-08 +7.92000000000000e+00 9.46707619170000e-08 +7.93000000000000e+00 9.24444748340000e-08 +7.94000000000000e+00 9.02705101340000e-08 +7.95000000000000e+00 8.81476391380000e-08 +7.96000000000000e+00 8.60746618760000e-08 +7.97000000000000e+00 8.40504065310000e-08 +7.98000000000000e+00 8.20737287830000e-08 +7.99000000000000e+00 8.01435111590000e-08 +8.00000000000000e+00 7.82586624070000e-08 +8.01000000000000e+00 7.64181168790000e-08 +8.02000000000000e+00 7.46208338460000e-08 +8.03000000000000e+00 7.28657968750000e-08 +8.04000000000000e+00 7.11520139360000e-08 +8.05000000000000e+00 6.94785159770000e-08 +8.06000000000000e+00 6.78443566930000e-08 +8.07000000000000e+00 6.62486119830000e-08 +8.08000000000000e+00 6.46903794360000e-08 +8.09000000000000e+00 6.31687778150000e-08 +8.10000000000000e+00 6.16829465670000e-08 +8.11000000000000e+00 6.02320453360000e-08 +8.12000000000000e+00 5.88152532810000e-08 +8.13000000000000e+00 5.74317691180000e-08 +8.14000000000000e+00 5.60808104510000e-08 +8.15000000000000e+00 5.47616131200000e-08 +8.16000000000000e+00 5.34734308960000e-08 +8.17000000000000e+00 5.22155350720000e-08 +8.18000000000000e+00 5.09872140410000e-08 +8.19000000000000e+00 4.97877729030000e-08 +8.20000000000000e+00 4.86165330670000e-08 +8.21000000000000e+00 4.74728318740000e-08 +8.22000000000000e+00 4.63560219650000e-08 +8.23000000000000e+00 4.52654716630000e-08 +8.24000000000000e+00 4.42005639580000e-08 +8.25000000000000e+00 4.31606962860000e-08 +8.26000000000000e+00 4.21452802300000e-08 +8.27000000000000e+00 4.11537411880000e-08 +8.28000000000000e+00 4.01855180460000e-08 +8.29000000000000e+00 3.92400628670000e-08 +8.30000000000000e+00 3.83168405750000e-08 +8.31000000000000e+00 3.74153286570000e-08 +8.32000000000000e+00 3.65350166240000e-08 +8.33000000000000e+00 3.56754064840000e-08 +8.34000000000000e+00 3.48360117000000e-08 +8.35000000000000e+00 3.40163571560000e-08 +8.36000000000000e+00 3.32159788960000e-08 +8.37000000000000e+00 3.24344238550000e-08 +8.38000000000000e+00 3.16712496110000e-08 +8.39000000000000e+00 3.09260241270000e-08 +8.40000000000000e+00 3.01983255140000e-08 +8.41000000000000e+00 2.94877417810000e-08 +8.42000000000000e+00 2.87938704210000e-08 +8.43000000000000e+00 2.81163188040000e-08 +8.44000000000000e+00 2.74547033150000e-08 +8.45000000000000e+00 2.68086493500000e-08 +8.46000000000000e+00 2.61777911060000e-08 +8.47000000000000e+00 2.55617713680000e-08 +8.48000000000000e+00 2.49602413110000e-08 +8.49000000000000e+00 2.43728603040000e-08 +8.50000000000000e+00 2.37992957170000e-08 +8.51000000000000e+00 2.32392227300000e-08 +8.52000000000000e+00 2.26923239770000e-08 +8.53000000000000e+00 2.21582899030000e-08 +8.54000000000000e+00 2.16368180700000e-08 +8.55000000000000e+00 2.11276131370000e-08 +8.56000000000000e+00 2.06303867000000e-08 +8.57000000000000e+00 2.01448571290000e-08 +8.58000000000000e+00 1.96707494110000e-08 +8.59000000000000e+00 1.92077949930000e-08 +8.60000000000000e+00 1.87557316300000e-08 +8.61000000000000e+00 1.83143032380000e-08 +8.62000000000000e+00 1.78832596310000e-08 +8.63000000000000e+00 1.74623567020000e-08 +8.64000000000000e+00 1.70513560480000e-08 +8.65000000000000e+00 1.66500248310000e-08 +8.66000000000000e+00 1.62581356810000e-08 +8.67000000000000e+00 1.58754665700000e-08 +8.68000000000000e+00 1.55018006860000e-08 +8.69000000000000e+00 1.51369263130000e-08 +8.70000000000000e+00 1.47806367070000e-08 +8.71000000000000e+00 1.44327299830000e-08 +8.72000000000000e+00 1.40930089440000e-08 +8.73000000000000e+00 1.37612810570000e-08 +8.74000000000000e+00 1.34373584290000e-08 +8.75000000000000e+00 1.31210575030000e-08 +8.76000000000000e+00 1.28121990340000e-08 +8.77000000000000e+00 1.25106079900000e-08 +8.78000000000000e+00 1.22161134520000e-08 +8.79000000000000e+00 1.19285485170000e-08 +8.80000000000000e+00 1.16477502050000e-08 +8.81000000000000e+00 1.13735593630000e-08 +8.82000000000000e+00 1.11058205830000e-08 +8.83000000000000e+00 1.08443819950000e-08 +8.84000000000000e+00 1.05890955190000e-08 +8.85000000000000e+00 1.03398164610000e-08 +8.86000000000000e+00 1.00964035220000e-08 +8.87000000000000e+00 9.85871872290000e-09 +8.88000000000000e+00 9.62662732930000e-09 +8.89000000000000e+00 9.39999777220000e-09 +8.90000000000000e+00 9.17870157480000e-09 +8.91000000000000e+00 8.96261328010000e-09 +8.92000000000000e+00 8.75161037970000e-09 +8.93000000000000e+00 8.54557320940000e-09 +8.94000000000000e+00 8.34438492660000e-09 +8.95000000000000e+00 8.14793153040000e-09 +8.96000000000000e+00 7.95610163850000e-09 +8.97000000000000e+00 7.76878648650000e-09 +8.98000000000000e+00 7.58587986720000e-09 +8.99000000000000e+00 7.40727806940000e-09 +9.00000000000000e+00 7.23287982000000e-09 +9.01000000000000e+00 7.06258622620000e-09 +9.02000000000000e+00 6.89630072010000e-09 +9.03000000000000e+00 6.73392900350000e-09 +9.04000000000000e+00 6.57537894170000e-09 +9.05000000000000e+00 6.42056064590000e-09 +9.06000000000000e+00 6.26938634880000e-09 +9.07000000000000e+00 6.12177031810000e-09 +9.08000000000000e+00 5.97762883720000e-09 +9.09000000000000e+00 5.83688015740000e-09 +9.10000000000000e+00 5.69944445200000e-09 +9.11000000000000e+00 5.56524377080000e-09 +9.12000000000000e+00 5.43420199640000e-09 +9.13000000000000e+00 5.30624480080000e-09 +9.14000000000000e+00 5.18129960340000e-09 +9.15000000000000e+00 5.05929547420000e-09 +9.16000000000000e+00 4.94016325170000e-09 +9.17000000000000e+00 4.82383537420000e-09 +9.18000000000000e+00 4.71024585550000e-09 +9.19000000000000e+00 4.59933026070000e-09 +9.20000000000000e+00 4.49102567020000e-09 +9.21000000000000e+00 4.38527064370000e-09 +9.22000000000000e+00 4.28200518550000e-09 +9.23000000000000e+00 4.18117071050000e-09 +9.24000000000000e+00 4.08271001140000e-09 +9.25000000000000e+00 3.98656722580000e-09 +9.26000000000000e+00 3.89268775600000e-09 +9.27000000000000e+00 3.80101837850000e-09 +9.28000000000000e+00 3.71150709360000e-09 +9.29000000000000e+00 3.62410311520000e-09 +9.30000000000000e+00 3.53875685150000e-09 +9.31000000000000e+00 3.45541987700000e-09 +9.32000000000000e+00 3.37404490460000e-09 +9.33000000000000e+00 3.29458575970000e-09 +9.34000000000000e+00 3.21699735320000e-09 +9.35000000000000e+00 3.14123565640000e-09 +9.36000000000000e+00 3.06725767590000e-09 +9.37000000000000e+00 2.99502139390000e-09 +9.38000000000000e+00 2.92448584050000e-09 +9.39000000000000e+00 2.85561100130000e-09 +9.40000000000000e+00 2.78835779060000e-09 +9.41000000000000e+00 2.72268804190000e-09 +9.42000000000000e+00 2.65856448610000e-09 +9.43000000000000e+00 2.59595073110000e-09 +9.44000000000000e+00 2.53481124030000e-09 +9.45000000000000e+00 2.47511131290000e-09 +9.46000000000000e+00 2.41681706450000e-09 +9.47000000000000e+00 2.35989540730000e-09 +9.48000000000000e+00 2.30431401150000e-09 +9.49000000000000e+00 2.25004132870000e-09 +9.50000000000000e+00 2.19704657490000e-09 +9.51000000000000e+00 2.14529967020000e-09 +9.52000000000000e+00 2.09477124220000e-09 +9.53000000000000e+00 2.04543260950000e-09 +9.54000000000000e+00 1.99725576530000e-09 +9.55000000000000e+00 1.95021336160000e-09 +9.56000000000000e+00 1.90427869340000e-09 +9.57000000000000e+00 1.85942568410000e-09 +9.58000000000000e+00 1.81562887050000e-09 +9.59000000000000e+00 1.77286338390000e-09 +9.60000000000000e+00 1.73110492040000e-09 +9.61000000000000e+00 1.69032980270000e-09 +9.62000000000000e+00 1.65051488260000e-09 +9.63000000000000e+00 1.61163755610000e-09 +9.64000000000000e+00 1.57367575130000e-09 +9.65000000000000e+00 1.53660791530000e-09 +9.66000000000000e+00 1.50041300250000e-09 +9.67000000000000e+00 1.46507046200000e-09 +9.68000000000000e+00 1.43056022650000e-09 +9.69000000000000e+00 1.39686270090000e-09 +9.70000000000000e+00 1.36395875100000e-09 +9.71000000000000e+00 1.33182967480000e-09 +9.72000000000000e+00 1.30045723580000e-09 +9.73000000000000e+00 1.26982363140000e-09 +9.74000000000000e+00 1.23991146730000e-09 +9.75000000000000e+00 1.21070375870000e-09 +9.76000000000000e+00 1.18218392000000e-09 +9.77000000000000e+00 1.15433575610000e-09 +9.78000000000000e+00 1.12714345290000e-09 +9.79000000000000e+00 1.10059156820000e-09 +9.80000000000000e+00 1.07466502320000e-09 +9.81000000000000e+00 1.04934909390000e-09 +9.82000000000000e+00 1.02462940260000e-09 +9.83000000000000e+00 1.00049188790000e-09 +9.84000000000000e+00 9.76922863660000e-10 +9.85000000000000e+00 9.53908945360000e-10 +9.86000000000000e+00 9.31437062960000e-10 +9.87000000000000e+00 9.09494453940000e-10 +9.88000000000000e+00 8.88068656100000e-10 +9.89000000000000e+00 8.67147500440000e-10 +9.90000000000000e+00 8.46719104290000e-10 +9.91000000000000e+00 8.26771864530000e-10 +9.92000000000000e+00 8.07294451080000e-10 +9.93000000000000e+00 7.88275800430000e-10 +9.94000000000000e+00 7.69705105680000e-10 +9.95000000000000e+00 7.51571806330000e-10 +9.96000000000000e+00 7.33865618180000e-10 +9.97000000000000e+00 7.16576484060000e-10 +9.98000000000000e+00 6.99694583480000e-10 +9.99000000000000e+00 6.83210327050000e-10 +1.00000000000000e+01 6.67114351050000e-10 +1.00100000000000e+01 6.51397512070000e-10 +1.00200000000000e+01 6.36050881850000e-10 +1.00300000000000e+01 6.21065742240000e-10 +1.00400000000000e+01 6.06433580210000e-10 +1.00500000000000e+01 5.92146083060000e-10 +1.00600000000000e+01 5.78195129540000e-10 +1.00700000000000e+01 5.64572786570000e-10 +1.00800000000000e+01 5.51271326890000e-10 +1.00900000000000e+01 5.38283194040000e-10 +1.01000000000000e+01 5.25601009390000e-10 +1.01100000000000e+01 5.13217567990000e-10 +1.01200000000000e+01 5.01125834410000e-10 +1.01300000000000e+01 4.89318938800000e-10 +1.01400000000000e+01 4.77790172980000e-10 +1.01500000000000e+01 4.66532986600000e-10 +1.01600000000000e+01 4.55540983480000e-10 +1.01700000000000e+01 4.44807917950000e-10 +1.01800000000000e+01 4.34327688810000e-10 +1.01900000000000e+01 4.24094333410000e-10 +1.02000000000000e+01 4.14102047590000e-10 +1.02100000000000e+01 4.04345153940000e-10 +1.02200000000000e+01 3.94818108700000e-10 +1.02300000000000e+01 3.85515498570000e-10 +1.02400000000000e+01 3.76432037680000e-10 +1.02500000000000e+01 3.67562564530000e-10 +1.02600000000000e+01 3.58902039120000e-10 +1.02700000000000e+01 3.50445540020000e-10 +1.02800000000000e+01 3.42188261670000e-10 +1.02900000000000e+01 3.34125511560000e-10 +1.03000000000000e+01 3.26252707670000e-10 +1.03100000000000e+01 3.18565365550000e-10 +1.03200000000000e+01 3.11059126930000e-10 +1.03300000000000e+01 3.03729726480000e-10 +1.03400000000000e+01 2.96572999150000e-10 +1.03500000000000e+01 2.89584877930000e-10 +1.03600000000000e+01 2.82761391530000e-10 +1.03700000000000e+01 2.76098662140000e-10 +1.03800000000000e+01 2.69592903210000e-10 +1.03900000000000e+01 2.63240417300000e-10 +1.04000000000000e+01 2.57037594000000e-10 +1.04100000000000e+01 2.50980907890000e-10 +1.04200000000000e+01 2.45066916520000e-10 +1.04300000000000e+01 2.39292253200000e-10 +1.04400000000000e+01 2.33653637990000e-10 +1.04500000000000e+01 2.28147869460000e-10 +1.04600000000000e+01 2.22771818470000e-10 +1.04700000000000e+01 2.17522429580000e-10 +1.04800000000000e+01 2.12396719220000e-10 +1.04900000000000e+01 2.07391774100000e-10 +1.05000000000000e+01 2.02504749460000e-10 +1.05100000000000e+01 1.97732867530000e-10 +1.05200000000000e+01 1.93073415910000e-10 +1.05300000000000e+01 1.88523746030000e-10 +1.05400000000000e+01 1.84081271670000e-10 +1.05500000000000e+01 1.79743466710000e-10 +1.05600000000000e+01 1.75507860110000e-10 +1.05700000000000e+01 1.71372050320000e-10 +1.05800000000000e+01 1.67333686560000e-10 +1.05900000000000e+01 1.63390473370000e-10 +1.06000000000000e+01 1.59540169340000e-10 +1.06100000000000e+01 1.55780585830000e-10 +1.06200000000000e+01 1.52109585710000e-10 +1.06300000000000e+01 1.48525082150000e-10 +1.06400000000000e+01 1.45025037450000e-10 +1.06500000000000e+01 1.41607461880000e-10 +1.06600000000000e+01 1.38270412530000e-10 +1.06700000000000e+01 1.35011992230000e-10 +1.06800000000000e+01 1.31830345980000e-10 +1.06900000000000e+01 1.28723664520000e-10 +1.07000000000000e+01 1.25690184800000e-10 +1.07100000000000e+01 1.22728182380000e-10 +1.07200000000000e+01 1.19835973420000e-10 +1.07300000000000e+01 1.17011913710000e-10 +1.07400000000000e+01 1.14254397780000e-10 +1.07500000000000e+01 1.11561857930000e-10 +1.07600000000000e+01 1.08932763360000e-10 +1.07700000000000e+01 1.06365619310000e-10 +1.07800000000000e+01 1.03858966210000e-10 +1.07900000000000e+01 1.01411378860000e-10 +1.08000000000000e+01 9.90214655730000e-11 +1.08100000000000e+01 9.66878646270000e-11 +1.08200000000000e+01 9.44092505250000e-11 +1.08300000000000e+01 9.21843293690000e-11 +1.08400000000000e+01 9.00118362210000e-11 +1.08500000000000e+01 8.78905359250000e-11 +1.08600000000000e+01 8.58192224060000e-11 +1.08700000000000e+01 8.37967179840000e-11 +1.08800000000000e+01 8.18218727010000e-11 +1.08900000000000e+01 7.98935636710000e-11 +1.09000000000000e+01 7.80106944410000e-11 +1.09100000000000e+01 7.61721943690000e-11 +1.09200000000000e+01 7.43770180150000e-11 +1.09300000000000e+01 7.26241445550000e-11 +1.09400000000000e+01 7.09125748050000e-11 +1.09500000000000e+01 6.92413368230000e-11 +1.09600000000000e+01 6.76094814880000e-11 +1.09700000000000e+01 6.60160809440000e-11 +1.09800000000000e+01 6.44602291830000e-11 +1.09900000000000e+01 6.29410415300000e-11 +1.10000000000000e+01 6.14576541380000e-11 +1.10100000000000e+01 6.00092234940000e-11 +1.10200000000000e+01 5.85949259470000e-11 +1.10300000000000e+01 5.72139572330000e-11 +1.10400000000000e+01 5.58655320210000e-11 +1.10500000000000e+01 5.45488834690000e-11 +1.10600000000000e+01 5.32632627890000e-11 +1.10700000000000e+01 5.20079372520000e-11 +1.10800000000000e+01 5.07821933310000e-11 +1.10900000000000e+01 4.95853352450000e-11 +1.11000000000000e+01 4.84166824120000e-11 +1.11100000000000e+01 4.72755702740000e-11 +1.11200000000000e+01 4.61613499220000e-11 +1.11300000000000e+01 4.50733877270000e-11 +1.11400000000000e+01 4.40110649750000e-11 +1.11500000000000e+01 4.29737775180000e-11 +1.11600000000000e+01 4.19609354330000e-11 +1.11700000000000e+01 4.09719626820000e-11 +1.11800000000000e+01 4.00062967910000e-11 +1.11900000000000e+01 3.90633885270000e-11 +1.12000000000000e+01 3.81427009540000e-11 +1.12100000000000e+01 3.72437094810000e-11 +1.12200000000000e+01 3.63659044410000e-11 +1.12300000000000e+01 3.55087866370000e-11 +1.12400000000000e+01 3.46718686270000e-11 +1.12500000000000e+01 3.38546744470000e-11 +1.12600000000000e+01 3.30567393420000e-11 +1.12700000000000e+01 3.22776094960000e-11 +1.12800000000000e+01 3.15168417800000e-11 +1.12900000000000e+01 3.07740034950000e-11 +1.13000000000000e+01 3.00486721320000e-11 +1.13100000000000e+01 2.93404351250000e-11 +1.13200000000000e+01 2.86488896240000e-11 +1.13300000000000e+01 2.79736422640000e-11 +1.13400000000000e+01 2.73143074590000e-11 +1.13500000000000e+01 2.66705114290000e-11 +1.13600000000000e+01 2.60418882900000e-11 +1.13700000000000e+01 2.54280805190000e-11 +1.13800000000000e+01 2.48287390120000e-11 +1.13900000000000e+01 2.42435228870000e-11 +1.14000000000000e+01 2.36720992850000e-11 +1.14100000000000e+01 2.31141431870000e-11 +1.14200000000000e+01 2.25693372250000e-11 +1.14300000000000e+01 2.20373715020000e-11 +1.14400000000000e+01 2.15179434170000e-11 +1.14500000000000e+01 2.10107574940000e-11 +1.14600000000000e+01 2.05155252130000e-11 +1.14700000000000e+01 2.00319645020000e-11 +1.14800000000000e+01 1.95597995990000e-11 +1.14900000000000e+01 1.90987629770000e-11 +1.15000000000000e+01 1.86485924080000e-11 +1.15100000000000e+01 1.82090318400000e-11 +1.15200000000000e+01 1.77798312530000e-11 +1.15300000000000e+01 1.73607465120000e-11 +1.15400000000000e+01 1.69515392320000e-11 +1.15500000000000e+01 1.65519766390000e-11 +1.15600000000000e+01 1.61618314390000e-11 +1.15700000000000e+01 1.57808816920000e-11 +1.15800000000000e+01 1.54089106790000e-11 +1.15900000000000e+01 1.50457067870000e-11 +1.16000000000000e+01 1.46910633840000e-11 +1.16100000000000e+01 1.43447781740000e-11 +1.16200000000000e+01 1.40066541410000e-11 +1.16300000000000e+01 1.36764995060000e-11 +1.16400000000000e+01 1.33541264680000e-11 +1.16500000000000e+01 1.30393516540000e-11 +1.16600000000000e+01 1.27319960060000e-11 +1.16700000000000e+01 1.24318846830000e-11 +1.16800000000000e+01 1.21388469620000e-11 +1.16900000000000e+01 1.18527161380000e-11 +1.17000000000000e+01 1.15733294310000e-11 +1.17100000000000e+01 1.13005278950000e-11 +1.17200000000000e+01 1.10341563230000e-11 +1.17300000000000e+01 1.07740631640000e-11 +1.17400000000000e+01 1.05201004370000e-11 +1.17500000000000e+01 1.02721231680000e-11 +1.17600000000000e+01 1.00299903860000e-11 +1.17700000000000e+01 9.79356472130000e-12 +1.17800000000000e+01 9.56271168160000e-12 +1.17900000000000e+01 9.33729994210000e-12 +1.18000000000000e+01 9.11720127060000e-12 +1.18100000000000e+01 8.90229045450000e-12 +1.18200000000000e+01 8.69244522940000e-12 +1.18300000000000e+01 8.48754620970000e-12 +1.18400000000000e+01 8.28747682010000e-12 +1.18500000000000e+01 8.09212323030000e-12 +1.18600000000000e+01 7.90137428970000e-12 +1.18700000000000e+01 7.71512146460000e-12 +1.18800000000000e+01 7.53325877700000e-12 +1.18900000000000e+01 7.35568243540000e-12 +1.19000000000000e+01 7.18229136730000e-12 +1.19100000000000e+01 7.01298727910000e-12 +1.19200000000000e+01 6.84767385550000e-12 +1.19300000000000e+01 6.68625704970000e-12 +1.19400000000000e+01 6.52864502950000e-12 +1.19500000000000e+01 6.37474812530000e-12 +1.19600000000000e+01 6.22447877900000e-12 +1.19700000000000e+01 6.07775149380000e-12 +1.19800000000000e+01 5.93448278570000e-12 +1.19900000000000e+01 5.79459113640000e-12 +1.20000000000000e+01 5.65799694660000e-12 +1.20100000000000e+01 5.52462249120000e-12 +1.20200000000000e+01 5.39439187510000e-12 +1.20300000000000e+01 5.26723088410000e-12 +1.20400000000000e+01 5.14306686440000e-12 +1.20500000000000e+01 5.02182957680000e-12 +1.20600000000000e+01 4.90345004730000e-12 +1.20700000000000e+01 4.78786092620000e-12 +1.20800000000000e+01 4.67499645020000e-12 +1.20900000000000e+01 4.56479240460000e-12 +1.21000000000000e+01 4.45718608670000e-12 +1.21100000000000e+01 4.35211627000000e-12 +1.21200000000000e+01 4.24952316980000e-12 +1.21300000000000e+01 4.14934840840000e-12 +1.21400000000000e+01 4.05153498300000e-12 +1.21500000000000e+01 3.95602723250000e-12 +1.21600000000000e+01 3.86277080640000e-12 +1.21700000000000e+01 3.77171263390000e-12 +1.21800000000000e+01 3.68280059080000e-12 +1.21900000000000e+01 3.59598430200000e-12 +1.22000000000000e+01 3.51121446160000e-12 +1.22100000000000e+01 3.42844283970000e-12 +1.22200000000000e+01 3.34762234200000e-12 +1.22300000000000e+01 3.26870698350000e-12 +1.22400000000000e+01 3.19165186200000e-12 +1.22500000000000e+01 3.11641313260000e-12 +1.22600000000000e+01 3.04294798240000e-12 +1.22700000000000e+01 2.97121460680000e-12 +1.22800000000000e+01 2.90117218510000e-12 +1.22900000000000e+01 2.83278085760000e-12 +1.23000000000000e+01 2.76600170330000e-12 +1.23100000000000e+01 2.70079671740000e-12 +1.23200000000000e+01 2.63712873910000e-12 +1.23300000000000e+01 2.57496133550000e-12 +1.23400000000000e+01 2.51425938380000e-12 +1.23500000000000e+01 2.45498834620000e-12 +1.23600000000000e+01 2.39711449860000e-12 +1.23700000000000e+01 2.34060491080000e-12 +1.23800000000000e+01 2.28542742840000e-12 +1.23900000000000e+01 2.23155065400000e-12 +1.24000000000000e+01 2.17894392930000e-12 +1.24100000000000e+01 2.12757731800000e-12 +1.24200000000000e+01 2.07742158850000e-12 +1.24300000000000e+01 2.02844819720000e-12 +1.24400000000000e+01 1.98062927260000e-12 +1.24500000000000e+01 1.93393759950000e-12 +1.24600000000000e+01 1.88834660330000e-12 +1.24700000000000e+01 1.84383024620000e-12 +1.24800000000000e+01 1.80036314120000e-12 +1.24900000000000e+01 1.75792069650000e-12 +1.25000000000000e+01 1.71647876240000e-12 +1.25100000000000e+01 1.67601375790000e-12 +1.25200000000000e+01 1.63650265750000e-12 +1.25300000000000e+01 1.59792297780000e-12 +1.25400000000000e+01 1.56025276500000e-12 +1.25500000000000e+01 1.52347058190000e-12 +1.25600000000000e+01 1.48755549600000e-12 +1.25700000000000e+01 1.45248706790000e-12 +1.25800000000000e+01 1.41824533900000e-12 +1.25900000000000e+01 1.38481082070000e-12 +1.26000000000000e+01 1.35216448330000e-12 +1.26100000000000e+01 1.32028774490000e-12 +1.26200000000000e+01 1.28916238650000e-12 +1.26300000000000e+01 1.25877066790000e-12 +1.26400000000000e+01 1.22909539600000e-12 +1.26500000000000e+01 1.20011968480000e-12 +1.26600000000000e+01 1.17182704610000e-12 +1.26700000000000e+01 1.14420138020000e-12 +1.26800000000000e+01 1.11722696620000e-12 +1.26900000000000e+01 1.09088845370000e-12 +1.27000000000000e+01 1.06517085340000e-12 +1.27100000000000e+01 1.04005952910000e-12 +1.27200000000000e+01 1.01554018890000e-12 +1.27300000000000e+01 9.91598877550000e-13 +1.27400000000000e+01 9.68221968250000e-13 +1.27500000000000e+01 9.45396154960000e-13 +1.27600000000000e+01 9.23108444960000e-13 +1.27700000000000e+01 9.01346113040000e-13 +1.27800000000000e+01 8.80096716190000e-13 +1.27900000000000e+01 8.59348256930000e-13 +1.28000000000000e+01 8.39088928530000e-13 +1.28100000000000e+01 8.19307202400000e-13 +1.28200000000000e+01 7.99991821410000e-13 +1.28300000000000e+01 7.81131793550000e-13 +1.28400000000000e+01 7.62716385620000e-13 +1.28500000000000e+01 7.44735117090000e-13 +1.28600000000000e+01 7.27177754160000e-13 +1.28700000000000e+01 7.10034303930000e-13 +1.28800000000000e+01 6.93295008750000e-13 +1.28900000000000e+01 6.76950340620000e-13 +1.29000000000000e+01 6.60990995870000e-13 +1.29100000000000e+01 6.45407889840000e-13 +1.29200000000000e+01 6.30192151780000e-13 +1.29300000000000e+01 6.15335022920000e-13 +1.29400000000000e+01 6.00828141990000e-13 +1.29500000000000e+01 5.86663256950000e-13 +1.29600000000000e+01 5.72832307020000e-13 +1.29700000000000e+01 5.59327421310000e-13 +1.29800000000000e+01 5.46140914230000e-13 +1.29900000000000e+01 5.33265281180000e-13 +1.30000000000000e+01 5.20693194240000e-13 +1.30100000000000e+01 5.08417497990000e-13 +1.30200000000000e+01 4.96431205450000e-13 +1.30300000000000e+01 4.84727494080000e-13 +1.30400000000000e+01 4.73299701970000e-13 +1.30500000000000e+01 4.62141323990000e-13 +1.30600000000000e+01 4.51246008170000e-13 +1.30700000000000e+01 4.40607552060000e-13 +1.30800000000000e+01 4.30219864260000e-13 +1.30900000000000e+01 4.20077026480000e-13 +1.31000000000000e+01 4.10173307120000e-13 +1.31100000000000e+01 4.00503070170000e-13 +1.31200000000000e+01 3.91060812420000e-13 +1.31300000000000e+01 3.81841160230000e-13 +1.31400000000000e+01 3.72838866490000e-13 +1.31500000000000e+01 3.64048807650000e-13 +1.31600000000000e+01 3.55465980740000e-13 +1.31700000000000e+01 3.47085500590000e-13 +1.31800000000000e+01 3.38902596990000e-13 +1.31900000000000e+01 3.30912612030000e-13 +1.32000000000000e+01 3.23110997400000e-13 +1.32100000000000e+01 3.15493311900000e-13 +1.32200000000000e+01 3.08055218830000e-13 +1.32300000000000e+01 3.00792483610000e-13 +1.32400000000000e+01 2.93700927740000e-13 +1.32500000000000e+01 2.86776545730000e-13 +1.32600000000000e+01 2.80015409810000e-13 +1.32700000000000e+01 2.73413672240000e-13 +1.32800000000000e+01 2.66967575910000e-13 +1.32900000000000e+01 2.60673452170000e-13 +1.33000000000000e+01 2.54527718780000e-13 +1.33100000000000e+01 2.48526877800000e-13 +1.33200000000000e+01 2.42667513650000e-13 +1.33300000000000e+01 2.36946291130000e-13 +1.33400000000000e+01 2.31359953550000e-13 +1.33500000000000e+01 2.25905320870000e-13 diff --git a/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi32.inp b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi32.inp new file mode 100644 index 000000000..c7575d2cf --- /dev/null +++ b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi32.inp @@ -0,0 +1,1335 @@ +1.00000000000000e-02 8.65284619640000e-06 +2.00000000000000e-02 6.91783302450000e-05 +3.00000000000000e-02 2.33227084380000e-04 +4.00000000000000e-02 5.52006710290000e-04 +5.00000000000000e-02 1.07606273900000e-03 +6.00000000000000e-02 1.85506255160000e-03 +7.00000000000000e-02 2.93758322330000e-03 +8.00000000000000e-02 4.37090423480000e-03 +9.00000000000000e-02 6.20080596930000e-03 +1.00000000000000e-01 8.47137488490000e-03 +1.10000000000000e-01 1.12248162190000e-02 +1.20000000000000e-01 1.45012750410000e-02 +1.30000000000000e-01 1.83386664370000e-02 +1.40000000000000e-01 2.27725155440000e-02 +1.50000000000000e-01 2.78358081290000e-02 +1.60000000000000e-01 3.35588523390000e-02 +1.70000000000000e-01 3.99691521860000e-02 +1.80000000000000e-01 4.70912933010000e-02 +1.90000000000000e-01 5.49468414010000e-02 +2.00000000000000e-01 6.35542538650000e-02 +2.10000000000000e-01 7.29288047540000e-02 +2.20000000000000e-01 8.30825235390000e-02 +2.30000000000000e-01 9.40241477370000e-02 +2.40000000000000e-01 1.05759089590000e-01 +2.50000000000000e-01 1.18289416850000e-01 +2.60000000000000e-01 1.31613847680000e-01 +2.70000000000000e-01 1.45727759610000e-01 +2.80000000000000e-01 1.60623212380000e-01 +2.90000000000000e-01 1.76288984560000e-01 +3.00000000000000e-01 1.92710623580000e-01 +3.10000000000000e-01 2.09870509000000e-01 +3.20000000000000e-01 2.27747928450000e-01 +3.30000000000000e-01 2.46319166050000e-01 +3.40000000000000e-01 2.65557602610000e-01 +3.50000000000000e-01 2.85433827230000e-01 +3.60000000000000e-01 3.05915759650000e-01 +3.70000000000000e-01 3.26968782710000e-01 +3.80000000000000e-01 3.48555884380000e-01 +3.90000000000000e-01 3.70637808480000e-01 +4.00000000000000e-01 3.93173213530000e-01 +4.10000000000000e-01 4.16118838850000e-01 +4.20000000000000e-01 4.39429677200000e-01 +4.30000000000000e-01 4.63059153140000e-01 +4.40000000000000e-01 4.86959306270000e-01 +4.50000000000000e-01 5.11080978470000e-01 +4.60000000000000e-01 5.35374004520000e-01 +4.70000000000000e-01 5.59787404890000e-01 +4.80000000000000e-01 5.84269580230000e-01 +4.90000000000000e-01 6.08768506450000e-01 +5.00000000000000e-01 6.33231929680000e-01 +5.10000000000000e-01 6.57607560310000e-01 +5.20000000000000e-01 6.81843265150000e-01 +5.30000000000000e-01 7.05887257180000e-01 +5.40000000000000e-01 7.29688281830000e-01 +5.50000000000000e-01 7.53195799260000e-01 +5.60000000000000e-01 7.76360161890000e-01 +5.70000000000000e-01 7.99132786400000e-01 +5.80000000000000e-01 8.21466319660000e-01 +5.90000000000000e-01 8.43314797910000e-01 +6.00000000000000e-01 8.64633798700000e-01 +6.10000000000000e-01 8.85380584910000e-01 +6.20000000000000e-01 9.05514240490000e-01 +6.30000000000000e-01 9.24995797460000e-01 +6.40000000000000e-01 9.43788353640000e-01 +6.50000000000000e-01 9.61857180900000e-01 +6.60000000000000e-01 9.79169823540000e-01 +6.70000000000000e-01 9.95696186550000e-01 +6.80000000000000e-01 1.01140861350000e+00 +6.90000000000000e-01 1.02628195390000e+00 +7.00000000000000e-01 1.04029362010000e+00 +7.10000000000000e-01 1.05342363310000e+00 +7.20000000000000e-01 1.06565465810000e+00 +7.30000000000000e-01 1.07697202870000e+00 +7.40000000000000e-01 1.08736376140000e+00 +7.50000000000000e-01 1.09682055810000e+00 +7.60000000000000e-01 1.10533579960000e+00 +7.70000000000000e-01 1.11290552820000e+00 +7.80000000000000e-01 1.11952842030000e+00 +7.90000000000000e-01 1.12520574920000e+00 +8.00000000000000e-01 1.12994133880000e+00 +8.10000000000000e-01 1.13374150830000e+00 +8.20000000000000e-01 1.13661500740000e+00 +8.30000000000000e-01 1.13857294450000e+00 +8.40000000000000e-01 1.13962870540000e+00 +8.50000000000000e-01 1.13979786660000e+00 +8.60000000000000e-01 1.13909809970000e+00 +8.70000000000000e-01 1.13754907070000e+00 +8.80000000000000e-01 1.13517233310000e+00 +8.90000000000000e-01 1.13199121550000e+00 +9.00000000000000e-01 1.12803070480000e+00 +9.10000000000000e-01 1.12331732440000e+00 +9.20000000000000e-01 1.11787901020000e+00 +9.30000000000000e-01 1.11174498190000e+00 +9.40000000000000e-01 1.10494561350000e+00 +9.50000000000000e-01 1.09751230060000e+00 +9.60000000000000e-01 1.08947732730000e+00 +9.70000000000000e-01 1.08087373240000e+00 +9.80000000000000e-01 1.07173517480000e+00 +9.90000000000000e-01 1.06209580080000e+00 +1.00000000000000e+00 1.05199011070000e+00 +1.01000000000000e+00 1.04145282870000e+00 +1.02000000000000e+00 1.03051877400000e+00 +1.03000000000000e+00 1.01922273470000e+00 +1.04000000000000e+00 1.00759934520000e+00 +1.05000000000000e+00 9.95682966870000e-01 +1.06000000000000e+00 9.83507573340000e-01 +1.07000000000000e+00 9.71106639640000e-01 +1.08000000000000e+00 9.58513036880000e-01 +1.09000000000000e+00 9.45758931910000e-01 +1.10000000000000e+00 9.32875692750000e-01 +1.11000000000000e+00 9.19893799880000e-01 +1.12000000000000e+00 9.06842763850000e-01 +1.13000000000000e+00 8.93751049240000e-01 +1.14000000000000e+00 8.80646005400000e-01 +1.15000000000000e+00 8.67553803950000e-01 +1.16000000000000e+00 8.54499383260000e-01 +1.17000000000000e+00 8.41506400020000e-01 +1.18000000000000e+00 8.28597187890000e-01 +1.19000000000000e+00 8.15792723370000e-01 +1.20000000000000e+00 8.03112598750000e-01 +1.21000000000000e+00 7.90575002130000e-01 +1.22000000000000e+00 7.78196704510000e-01 +1.23000000000000e+00 7.65993053720000e-01 +1.24000000000000e+00 7.53977975100000e-01 +1.25000000000000e+00 7.42163978690000e-01 +1.26000000000000e+00 7.30562172840000e-01 +1.27000000000000e+00 7.19182283840000e-01 +1.28000000000000e+00 7.08032681350000e-01 +1.29000000000000e+00 6.97120409440000e-01 +1.30000000000000e+00 6.86451222750000e-01 +1.31000000000000e+00 6.76029627510000e-01 +1.32000000000000e+00 6.65858927070000e-01 +1.33000000000000e+00 6.55941271540000e-01 +1.34000000000000e+00 6.46277711110000e-01 +1.35000000000000e+00 6.36868252680000e-01 +1.36000000000000e+00 6.27711919380000e-01 +1.37000000000000e+00 6.18806812540000e-01 +1.38000000000000e+00 6.10150175650000e-01 +1.39000000000000e+00 6.01738459960000e-01 +1.40000000000000e+00 5.93567391180000e-01 +1.41000000000000e+00 5.85632036940000e-01 +1.42000000000000e+00 5.77926874550000e-01 +1.43000000000000e+00 5.70445858640000e-01 +1.44000000000000e+00 5.63182488250000e-01 +1.45000000000000e+00 5.56129873060000e-01 +1.46000000000000e+00 5.49280798380000e-01 +1.47000000000000e+00 5.42627788350000e-01 +1.48000000000000e+00 5.36163167340000e-01 +1.49000000000000e+00 5.29879119010000e-01 +1.50000000000000e+00 5.23767742700000e-01 +1.51000000000000e+00 5.17821107180000e-01 +1.52000000000000e+00 5.12031301150000e-01 +1.53000000000000e+00 5.06390480550000e-01 +1.54000000000000e+00 5.00890912420000e-01 +1.55000000000000e+00 4.95525015110000e-01 +1.56000000000000e+00 4.90285394830000e-01 +1.57000000000000e+00 4.85164878340000e-01 +1.58000000000000e+00 4.80156541800000e-01 +1.59000000000000e+00 4.75253735750000e-01 +1.60000000000000e+00 4.70450106220000e-01 +1.61000000000000e+00 4.65739611920000e-01 +1.62000000000000e+00 4.61116537790000e-01 +1.63000000000000e+00 4.56575504750000e-01 +1.64000000000000e+00 4.52111475980000e-01 +1.65000000000000e+00 4.47719759680000e-01 +1.66000000000000e+00 4.43396008750000e-01 +1.67000000000000e+00 4.39136217260000e-01 +1.68000000000000e+00 4.34936714220000e-01 +1.69000000000000e+00 4.30794154590000e-01 +1.70000000000000e+00 4.26705508160000e-01 +1.71000000000000e+00 4.22668046080000e-01 +1.72000000000000e+00 4.18679325730000e-01 +1.73000000000000e+00 4.14737174010000e-01 +1.74000000000000e+00 4.10839669310000e-01 +1.75000000000000e+00 4.06985122580000e-01 +1.76000000000000e+00 4.03172057610000e-01 +1.77000000000000e+00 3.99399191030000e-01 +1.78000000000000e+00 3.95665412060000e-01 +1.79000000000000e+00 3.91969762520000e-01 +1.80000000000000e+00 3.88311417100000e-01 +1.81000000000000e+00 3.84689664490000e-01 +1.82000000000000e+00 3.81103889240000e-01 +1.83000000000000e+00 3.77553554760000e-01 +1.84000000000000e+00 3.74038187720000e-01 +1.85000000000000e+00 3.70557363850000e-01 +1.86000000000000e+00 3.67110695480000e-01 +1.87000000000000e+00 3.63697820620000e-01 +1.88000000000000e+00 3.60318394570000e-01 +1.89000000000000e+00 3.56972082290000e-01 +1.90000000000000e+00 3.53658554490000e-01 +1.91000000000000e+00 3.50377484070000e-01 +1.92000000000000e+00 3.47128545100000e-01 +1.93000000000000e+00 3.43911413240000e-01 +1.94000000000000e+00 3.40725766350000e-01 +1.95000000000000e+00 3.37571284280000e-01 +1.96000000000000e+00 3.34447650420000e-01 +1.97000000000000e+00 3.31354550570000e-01 +1.98000000000000e+00 3.28291672330000e-01 +1.99000000000000e+00 3.25258705550000e-01 +2.00000000000000e+00 3.22255342540000e-01 +2.01000000000000e+00 3.19281278260000e-01 +2.02000000000000e+00 3.16336210180000e-01 +2.03000000000000e+00 3.13419838270000e-01 +2.04000000000000e+00 3.10531865150000e-01 +2.05000000000000e+00 3.07671996030000e-01 +2.06000000000000e+00 3.04839938820000e-01 +2.07000000000000e+00 3.02035404090000e-01 +2.08000000000000e+00 2.99258105140000e-01 +2.09000000000000e+00 2.96507757970000e-01 +2.10000000000000e+00 2.93784081320000e-01 +2.11000000000000e+00 2.91086796710000e-01 +2.12000000000000e+00 2.88415628370000e-01 +2.13000000000000e+00 2.85770303330000e-01 +2.14000000000000e+00 2.83150551360000e-01 +2.15000000000000e+00 2.80556105030000e-01 +2.16000000000000e+00 2.77986699620000e-01 +2.17000000000000e+00 2.75442073230000e-01 +2.18000000000000e+00 2.72921966680000e-01 +2.19000000000000e+00 2.70426123540000e-01 +2.20000000000000e+00 2.67954290130000e-01 +2.21000000000000e+00 2.65506215490000e-01 +2.22000000000000e+00 2.63081651380000e-01 +2.23000000000000e+00 2.60680352260000e-01 +2.24000000000000e+00 2.58302075270000e-01 +2.25000000000000e+00 2.55946580240000e-01 +2.26000000000000e+00 2.53613629630000e-01 +2.27000000000000e+00 2.51302988570000e-01 +2.28000000000000e+00 2.49014424770000e-01 +2.29000000000000e+00 2.46747708550000e-01 +2.30000000000000e+00 2.44502612830000e-01 +2.31000000000000e+00 2.42278913060000e-01 +2.32000000000000e+00 2.40076387230000e-01 +2.33000000000000e+00 2.37894815840000e-01 +2.34000000000000e+00 2.35733981900000e-01 +2.35000000000000e+00 2.33593670860000e-01 +2.36000000000000e+00 2.31473670620000e-01 +2.37000000000000e+00 2.29373771520000e-01 +2.38000000000000e+00 2.27293766260000e-01 +2.39000000000000e+00 2.25233449940000e-01 +2.40000000000000e+00 2.23192619980000e-01 +2.41000000000000e+00 2.21171076160000e-01 +2.42000000000000e+00 2.19168620510000e-01 +2.43000000000000e+00 2.17185057370000e-01 +2.44000000000000e+00 2.15220193300000e-01 +2.45000000000000e+00 2.13273837100000e-01 +2.46000000000000e+00 2.11345799760000e-01 +2.47000000000000e+00 2.09435894430000e-01 +2.48000000000000e+00 2.07543936440000e-01 +2.49000000000000e+00 2.05669743210000e-01 +2.50000000000000e+00 2.03813134260000e-01 +2.51000000000000e+00 2.01973931200000e-01 +2.52000000000000e+00 2.00151957680000e-01 +2.53000000000000e+00 1.98347039370000e-01 +2.54000000000000e+00 1.96559003940000e-01 +2.55000000000000e+00 1.94787681040000e-01 +2.56000000000000e+00 1.93032902260000e-01 +2.57000000000000e+00 1.91294501120000e-01 +2.58000000000000e+00 1.89572313070000e-01 +2.59000000000000e+00 1.87866175400000e-01 +2.60000000000000e+00 1.86175927280000e-01 +2.61000000000000e+00 1.84501409720000e-01 +2.62000000000000e+00 1.82842465510000e-01 +2.63000000000000e+00 1.81198939250000e-01 +2.64000000000000e+00 1.79570677320000e-01 +2.65000000000000e+00 1.77957527820000e-01 +2.66000000000000e+00 1.76359340570000e-01 +2.67000000000000e+00 1.74775967110000e-01 +2.68000000000000e+00 1.73207260640000e-01 +2.69000000000000e+00 1.71653076030000e-01 +2.70000000000000e+00 1.70113269780000e-01 +2.71000000000000e+00 1.68587699990000e-01 +2.72000000000000e+00 1.67076226390000e-01 +2.73000000000000e+00 1.65578710250000e-01 +2.74000000000000e+00 1.64095014410000e-01 +2.75000000000000e+00 1.62625003240000e-01 +2.76000000000000e+00 1.61168542630000e-01 +2.77000000000000e+00 1.59725499960000e-01 +2.78000000000000e+00 1.58295744080000e-01 +2.79000000000000e+00 1.56879145310000e-01 +2.80000000000000e+00 1.55475575390000e-01 +2.81000000000000e+00 1.54084907510000e-01 +2.82000000000000e+00 1.52707016220000e-01 +2.83000000000000e+00 1.51341777490000e-01 +2.84000000000000e+00 1.49989068630000e-01 +2.85000000000000e+00 1.48648768320000e-01 +2.86000000000000e+00 1.47320756540000e-01 +2.87000000000000e+00 1.46004914610000e-01 +2.88000000000000e+00 1.44701125140000e-01 +2.89000000000000e+00 1.43409272010000e-01 +2.90000000000000e+00 1.42129240380000e-01 +2.91000000000000e+00 1.40860916630000e-01 +2.92000000000000e+00 1.39604188400000e-01 +2.93000000000000e+00 1.38358944530000e-01 +2.94000000000000e+00 1.37125075050000e-01 +2.95000000000000e+00 1.35902471200000e-01 +2.96000000000000e+00 1.34691025370000e-01 +2.97000000000000e+00 1.33490631100000e-01 +2.98000000000000e+00 1.32301183070000e-01 +2.99000000000000e+00 1.31122577100000e-01 +3.00000000000000e+00 1.29954710100000e-01 +3.01000000000000e+00 1.28797480090000e-01 +3.02000000000000e+00 1.27650786160000e-01 +3.03000000000000e+00 1.26514528470000e-01 +3.04000000000000e+00 1.25388608240000e-01 +3.05000000000000e+00 1.24272927720000e-01 +3.06000000000000e+00 1.23167390200000e-01 +3.07000000000000e+00 1.22071899970000e-01 +3.08000000000000e+00 1.20986362330000e-01 +3.09000000000000e+00 1.19910683560000e-01 +3.10000000000000e+00 1.18844770930000e-01 +3.11000000000000e+00 1.17788532650000e-01 +3.12000000000000e+00 1.16741877910000e-01 +3.13000000000000e+00 1.15704716810000e-01 +3.14000000000000e+00 1.14676960400000e-01 +3.15000000000000e+00 1.13658520630000e-01 +3.16000000000000e+00 1.12649310360000e-01 +3.17000000000000e+00 1.11649243340000e-01 +3.18000000000000e+00 1.10658234200000e-01 +3.19000000000000e+00 1.09676198460000e-01 +3.20000000000000e+00 1.08703052460000e-01 +3.21000000000000e+00 1.07738713420000e-01 +3.22000000000000e+00 1.06783099400000e-01 +3.23000000000000e+00 1.05836129250000e-01 +3.24000000000000e+00 1.04897722690000e-01 +3.25000000000000e+00 1.03967800200000e-01 +3.26000000000000e+00 1.03046283090000e-01 +3.27000000000000e+00 1.02133093440000e-01 +3.28000000000000e+00 1.01228154110000e-01 +3.29000000000000e+00 1.00331388730000e-01 +3.30000000000000e+00 9.94427216990000e-02 +3.31000000000000e+00 9.85620781480000e-02 +3.32000000000000e+00 9.76893839570000e-02 +3.33000000000000e+00 9.68245657380000e-02 +3.34000000000000e+00 9.59675508240000e-02 +3.35000000000000e+00 9.51182672620000e-02 +3.36000000000000e+00 9.42766438050000e-02 +3.37000000000000e+00 9.34426099030000e-02 +3.38000000000000e+00 9.26160956930000e-02 +3.39000000000000e+00 9.17970319960000e-02 +3.40000000000000e+00 9.09853503010000e-02 +3.41000000000000e+00 9.01809827650000e-02 +3.42000000000000e+00 8.93838621990000e-02 +3.43000000000000e+00 8.85939220660000e-02 +3.44000000000000e+00 8.78110964690000e-02 +3.45000000000000e+00 8.70353201430000e-02 +3.46000000000000e+00 8.62665284520000e-02 +3.47000000000000e+00 8.55046573800000e-02 +3.48000000000000e+00 8.47496435220000e-02 +3.49000000000000e+00 8.40014240780000e-02 +3.50000000000000e+00 8.32599368480000e-02 +3.51000000000000e+00 8.25251202210000e-02 +3.52000000000000e+00 8.17969131750000e-02 +3.53000000000000e+00 8.10752552640000e-02 +3.54000000000000e+00 8.03600866130000e-02 +3.55000000000000e+00 7.96513479140000e-02 +3.56000000000000e+00 7.89489804190000e-02 +3.57000000000000e+00 7.82529259320000e-02 +3.58000000000000e+00 7.75631268040000e-02 +3.59000000000000e+00 7.68795259280000e-02 +3.60000000000000e+00 7.62020667330000e-02 +3.61000000000000e+00 7.55306931740000e-02 +3.62000000000000e+00 7.48653497330000e-02 +3.63000000000000e+00 7.42059814090000e-02 +3.64000000000000e+00 7.35525337130000e-02 +3.65000000000000e+00 7.29049526640000e-02 +3.66000000000000e+00 7.22631847840000e-02 +3.67000000000000e+00 7.16271770870000e-02 +3.68000000000000e+00 7.09968770830000e-02 +3.69000000000000e+00 7.03722327660000e-02 +3.70000000000000e+00 6.97531926110000e-02 +3.71000000000000e+00 6.91397055700000e-02 +3.72000000000000e+00 6.85317210640000e-02 +3.73000000000000e+00 6.79291889840000e-02 +3.74000000000000e+00 6.73320596790000e-02 +3.75000000000000e+00 6.67402839570000e-02 +3.76000000000000e+00 6.61538130780000e-02 +3.77000000000000e+00 6.55725987490000e-02 +3.78000000000000e+00 6.49965931220000e-02 +3.79000000000000e+00 6.44257487850000e-02 +3.80000000000000e+00 6.38600187630000e-02 +3.81000000000000e+00 6.32993565100000e-02 +3.82000000000000e+00 6.27437159070000e-02 +3.83000000000000e+00 6.21930512550000e-02 +3.84000000000000e+00 6.16473172740000e-02 +3.85000000000000e+00 6.11064690970000e-02 +3.86000000000000e+00 6.05704622680000e-02 +3.87000000000000e+00 6.00392527350000e-02 +3.88000000000000e+00 5.95127968470000e-02 +3.89000000000000e+00 5.89910513530000e-02 +3.90000000000000e+00 5.84739733960000e-02 +3.91000000000000e+00 5.79615205080000e-02 +3.92000000000000e+00 5.74536506080000e-02 +3.93000000000000e+00 5.69503219980000e-02 +3.94000000000000e+00 5.64514933610000e-02 +3.95000000000000e+00 5.59571237530000e-02 +3.96000000000000e+00 5.54671726060000e-02 +3.97000000000000e+00 5.49815997160000e-02 +3.98000000000000e+00 5.45003652500000e-02 +3.99000000000000e+00 5.40234297320000e-02 +4.00000000000000e+00 5.35507540490000e-02 +4.01000000000000e+00 5.30822994410000e-02 +4.02000000000000e+00 5.26180275010000e-02 +4.03000000000000e+00 5.21579001700000e-02 +4.04000000000000e+00 5.17018797350000e-02 +4.05000000000000e+00 5.12499288280000e-02 +4.06000000000000e+00 5.08020104180000e-02 +4.07000000000000e+00 5.03580878110000e-02 +4.08000000000000e+00 4.99181246460000e-02 +4.09000000000000e+00 4.94820848940000e-02 +4.10000000000000e+00 4.90499328520000e-02 +4.11000000000000e+00 4.86216331420000e-02 +4.12000000000000e+00 4.81971507080000e-02 +4.13000000000000e+00 4.77764508120000e-02 +4.14000000000000e+00 4.73594990320000e-02 +4.15000000000000e+00 4.69462612590000e-02 +4.16000000000000e+00 4.65367036960000e-02 +4.17000000000000e+00 4.61307928500000e-02 +4.18000000000000e+00 4.57284955370000e-02 +4.19000000000000e+00 4.53297788720000e-02 +4.20000000000000e+00 4.49346102700000e-02 +4.21000000000000e+00 4.45429574440000e-02 +4.22000000000000e+00 4.41547883990000e-02 +4.23000000000000e+00 4.37700714350000e-02 +4.24000000000000e+00 4.33887751370000e-02 +4.25000000000000e+00 4.30108683800000e-02 +4.26000000000000e+00 4.26363203190000e-02 +4.27000000000000e+00 4.22651003950000e-02 +4.28000000000000e+00 4.18971783250000e-02 +4.29000000000000e+00 4.15325241020000e-02 +4.30000000000000e+00 4.11711079960000e-02 +4.31000000000000e+00 4.08129005450000e-02 +4.32000000000000e+00 4.04578725600000e-02 +4.33000000000000e+00 4.01059951170000e-02 +4.34000000000000e+00 3.97572395550000e-02 +4.35000000000000e+00 3.94115774790000e-02 +4.36000000000000e+00 3.90689807500000e-02 +4.37000000000000e+00 3.87294214910000e-02 +4.38000000000000e+00 3.83928720750000e-02 +4.39000000000000e+00 3.80593051340000e-02 +4.40000000000000e+00 3.77286935480000e-02 +4.41000000000000e+00 3.74010104440000e-02 +4.42000000000000e+00 3.70762291990000e-02 +4.43000000000000e+00 3.67543234320000e-02 +4.44000000000000e+00 3.64352670060000e-02 +4.45000000000000e+00 3.61190340230000e-02 +4.46000000000000e+00 3.58055988240000e-02 +4.47000000000000e+00 3.54949359850000e-02 +4.48000000000000e+00 3.51870203150000e-02 +4.49000000000000e+00 3.48818268570000e-02 +4.50000000000000e+00 3.45793308830000e-02 +4.51000000000000e+00 3.42795078910000e-02 +4.52000000000000e+00 3.39823336080000e-02 +4.53000000000000e+00 3.36877839810000e-02 +4.54000000000000e+00 3.33958351820000e-02 +4.55000000000000e+00 3.31064636000000e-02 +4.56000000000000e+00 3.28196458450000e-02 +4.57000000000000e+00 3.25353587390000e-02 +4.58000000000000e+00 3.22535793210000e-02 +4.59000000000000e+00 3.19742848420000e-02 +4.60000000000000e+00 3.16974527610000e-02 +4.61000000000000e+00 3.14230607470000e-02 +4.62000000000000e+00 3.11510866750000e-02 +4.63000000000000e+00 3.08815086260000e-02 +4.64000000000000e+00 3.06143048810000e-02 +4.65000000000000e+00 3.03494539240000e-02 +4.66000000000000e+00 3.00869344390000e-02 +4.67000000000000e+00 2.98267253040000e-02 +4.68000000000000e+00 2.95688055970000e-02 +4.69000000000000e+00 2.93131545870000e-02 +4.70000000000000e+00 2.90597517350000e-02 +4.71000000000000e+00 2.88085766930000e-02 +4.72000000000000e+00 2.85596093040000e-02 +4.73000000000000e+00 2.83128295950000e-02 +4.74000000000000e+00 2.80682177780000e-02 +4.75000000000000e+00 2.78257542520000e-02 +4.76000000000000e+00 2.75854195950000e-02 +4.77000000000000e+00 2.73471945660000e-02 +4.78000000000000e+00 2.71110601030000e-02 +4.79000000000000e+00 2.68769973210000e-02 +4.80000000000000e+00 2.66449875100000e-02 +4.81000000000000e+00 2.64150121360000e-02 +4.82000000000000e+00 2.61870528340000e-02 +4.83000000000000e+00 2.59610914110000e-02 +4.84000000000000e+00 2.57371098450000e-02 +4.85000000000000e+00 2.55150902790000e-02 +4.86000000000000e+00 2.52950150230000e-02 +4.87000000000000e+00 2.50768665520000e-02 +4.88000000000000e+00 2.48606275040000e-02 +4.89000000000000e+00 2.46462806770000e-02 +4.90000000000000e+00 2.44338090320000e-02 +4.91000000000000e+00 2.42231956850000e-02 +4.92000000000000e+00 2.40144239120000e-02 +4.93000000000000e+00 2.38074771430000e-02 +4.94000000000000e+00 2.36023389630000e-02 +4.95000000000000e+00 2.33989931100000e-02 +4.96000000000000e+00 2.31974234720000e-02 +4.97000000000000e+00 2.29976140890000e-02 +4.98000000000000e+00 2.27995491470000e-02 +4.99000000000000e+00 2.26032129820000e-02 +5.00000000000000e+00 2.24085900740000e-02 +5.01000000000000e+00 2.22156650480000e-02 +5.02000000000000e+00 2.20244226720000e-02 +5.03000000000000e+00 2.18348478560000e-02 +5.04000000000000e+00 2.16469256500000e-02 +5.05000000000000e+00 2.14606412440000e-02 +5.06000000000000e+00 2.12759799640000e-02 +5.07000000000000e+00 2.10929272750000e-02 +5.08000000000000e+00 2.09114687750000e-02 +5.09000000000000e+00 2.07315901980000e-02 +5.10000000000000e+00 2.05532774100000e-02 +5.11000000000000e+00 2.03765164070000e-02 +5.12000000000000e+00 2.02012933170000e-02 +5.13000000000000e+00 2.00275943970000e-02 +5.14000000000000e+00 1.98554060300000e-02 +5.15000000000000e+00 1.96847147290000e-02 +5.16000000000000e+00 1.95155071280000e-02 +5.17000000000000e+00 1.93477699880000e-02 +5.18000000000000e+00 1.91814901930000e-02 +5.19000000000000e+00 1.90166547490000e-02 +5.20000000000000e+00 1.88532507800000e-02 +5.21000000000000e+00 1.86912655330000e-02 +5.22000000000000e+00 1.85306863710000e-02 +5.23000000000000e+00 1.83715007760000e-02 +5.24000000000000e+00 1.82136963450000e-02 +5.25000000000000e+00 1.80572607910000e-02 +5.26000000000000e+00 1.79021819400000e-02 +5.27000000000000e+00 1.77484477310000e-02 +5.28000000000000e+00 1.75960462150000e-02 +5.29000000000000e+00 1.74449655540000e-02 +5.30000000000000e+00 1.72951940200000e-02 +5.31000000000000e+00 1.71467199930000e-02 +5.32000000000000e+00 1.69995319600000e-02 +5.33000000000000e+00 1.68536185160000e-02 +5.34000000000000e+00 1.67089683600000e-02 +5.35000000000000e+00 1.65655702960000e-02 +5.36000000000000e+00 1.64234132340000e-02 +5.37000000000000e+00 1.62824861820000e-02 +5.38000000000000e+00 1.61427782520000e-02 +5.39000000000000e+00 1.60042786580000e-02 +5.40000000000000e+00 1.58669767110000e-02 +5.41000000000000e+00 1.57308618210000e-02 +5.42000000000000e+00 1.55959234970000e-02 +5.43000000000000e+00 1.54621513450000e-02 +5.44000000000000e+00 1.53295350640000e-02 +5.45000000000000e+00 1.51980644510000e-02 +5.46000000000000e+00 1.50677293960000e-02 +5.47000000000000e+00 1.49385198800000e-02 +5.48000000000000e+00 1.48104259800000e-02 +5.49000000000000e+00 1.46834378620000e-02 +5.50000000000000e+00 1.45575457820000e-02 +5.51000000000000e+00 1.44327400860000e-02 +5.52000000000000e+00 1.43090112090000e-02 +5.53000000000000e+00 1.41863496750000e-02 +5.54000000000000e+00 1.40647460930000e-02 +5.55000000000000e+00 1.39441911570000e-02 +5.56000000000000e+00 1.38246756510000e-02 +5.57000000000000e+00 1.37061904390000e-02 +5.58000000000000e+00 1.35887264700000e-02 +5.59000000000000e+00 1.34722747770000e-02 +5.60000000000000e+00 1.33568264730000e-02 +5.61000000000000e+00 1.32423727550000e-02 +5.62000000000000e+00 1.31289048970000e-02 +5.63000000000000e+00 1.30164142560000e-02 +5.64000000000000e+00 1.29048922660000e-02 +5.65000000000000e+00 1.27943304390000e-02 +5.66000000000000e+00 1.26847203660000e-02 +5.67000000000000e+00 1.25760537130000e-02 +5.68000000000000e+00 1.24683222230000e-02 +5.69000000000000e+00 1.23615177140000e-02 +5.70000000000000e+00 1.22556320780000e-02 +5.71000000000000e+00 1.21506572810000e-02 +5.72000000000000e+00 1.20465853620000e-02 +5.73000000000000e+00 1.19434084330000e-02 +5.74000000000000e+00 1.18411186770000e-02 +5.75000000000000e+00 1.17397083470000e-02 +5.76000000000000e+00 1.16391697680000e-02 +5.77000000000000e+00 1.15394953340000e-02 +5.78000000000000e+00 1.14406775060000e-02 +5.79000000000000e+00 1.13427088180000e-02 +5.80000000000000e+00 1.12455818660000e-02 +5.81000000000000e+00 1.11492893170000e-02 +5.82000000000000e+00 1.10538239020000e-02 +5.83000000000000e+00 1.09591784180000e-02 +5.84000000000000e+00 1.08653457290000e-02 +5.85000000000000e+00 1.07723187610000e-02 +5.86000000000000e+00 1.06800905050000e-02 +5.87000000000000e+00 1.05886540150000e-02 +5.88000000000000e+00 1.04980024060000e-02 +5.89000000000000e+00 1.04081288590000e-02 +5.90000000000000e+00 1.03190266110000e-02 +5.91000000000000e+00 1.02306889650000e-02 +5.92000000000000e+00 1.01431092800000e-02 +5.93000000000000e+00 1.00562809770000e-02 +5.94000000000000e+00 9.97019753560000e-03 +5.95000000000000e+00 9.88485249370000e-03 +5.96000000000000e+00 9.80023944720000e-03 +5.97000000000000e+00 9.71635204940000e-03 +5.98000000000000e+00 9.63318401030000e-03 +5.99000000000000e+00 9.55072909630000e-03 +6.00000000000000e+00 9.46898112960000e-03 +6.01000000000000e+00 9.38793398760000e-03 +6.02000000000000e+00 9.30758160240000e-03 +6.03000000000000e+00 9.22791796020000e-03 +6.04000000000000e+00 9.14893710100000e-03 +6.05000000000000e+00 9.07063311780000e-03 +6.06000000000000e+00 8.99300015640000e-03 +6.07000000000000e+00 8.91603241460000e-03 +6.08000000000000e+00 8.83972414200000e-03 +6.09000000000000e+00 8.76406963930000e-03 +6.10000000000000e+00 8.68906325800000e-03 +6.11000000000000e+00 8.61469939950000e-03 +6.12000000000000e+00 8.54097251520000e-03 +6.13000000000000e+00 8.46787710580000e-03 +6.14000000000000e+00 8.39540772050000e-03 +6.15000000000000e+00 8.32355895720000e-03 +6.16000000000000e+00 8.25232546140000e-03 +6.17000000000000e+00 8.18170192600000e-03 +6.18000000000000e+00 8.11168309130000e-03 +6.19000000000000e+00 8.04226374360000e-03 +6.20000000000000e+00 7.97343871570000e-03 +6.21000000000000e+00 7.90520288580000e-03 +6.22000000000000e+00 7.83755117760000e-03 +6.23000000000000e+00 7.77047855940000e-03 +6.24000000000000e+00 7.70398004400000e-03 +6.25000000000000e+00 7.63805068820000e-03 +6.26000000000000e+00 7.57268559240000e-03 +6.27000000000000e+00 7.50787990000000e-03 +6.28000000000000e+00 7.44362879730000e-03 +6.29000000000000e+00 7.37992751300000e-03 +6.30000000000000e+00 7.31677131770000e-03 +6.31000000000000e+00 7.25415552350000e-03 +6.32000000000000e+00 7.19207548400000e-03 +6.33000000000000e+00 7.13052659320000e-03 +6.34000000000000e+00 7.06950428580000e-03 +6.35000000000000e+00 7.00900403660000e-03 +6.36000000000000e+00 6.94902135980000e-03 +6.37000000000000e+00 6.88955180910000e-03 +6.38000000000000e+00 6.83059097730000e-03 +6.39000000000000e+00 6.77213449560000e-03 +6.40000000000000e+00 6.71417803340000e-03 +6.41000000000000e+00 6.65671729810000e-03 +6.42000000000000e+00 6.59974803460000e-03 +6.43000000000000e+00 6.54326602510000e-03 +6.44000000000000e+00 6.48726708850000e-03 +6.45000000000000e+00 6.43174708030000e-03 +6.46000000000000e+00 6.37670189200000e-03 +6.47000000000000e+00 6.32212745120000e-03 +6.48000000000000e+00 6.26801972090000e-03 +6.49000000000000e+00 6.21437469920000e-03 +6.50000000000000e+00 6.16118841920000e-03 +6.51000000000000e+00 6.10845694850000e-03 +6.52000000000000e+00 6.05617638900000e-03 +6.53000000000000e+00 6.00434287640000e-03 +6.54000000000000e+00 5.95295258010000e-03 +6.55000000000000e+00 5.90200170280000e-03 +6.56000000000000e+00 5.85148648000000e-03 +6.57000000000000e+00 5.80140318040000e-03 +6.58000000000000e+00 5.75174810450000e-03 +6.59000000000000e+00 5.70251758530000e-03 +6.60000000000000e+00 5.65370798750000e-03 +6.61000000000000e+00 5.60531570750000e-03 +6.62000000000000e+00 5.55733717260000e-03 +6.63000000000000e+00 5.50976884130000e-03 +6.64000000000000e+00 5.46260720280000e-03 +6.65000000000000e+00 5.41584877670000e-03 +6.66000000000000e+00 5.36949011250000e-03 +6.67000000000000e+00 5.32352778990000e-03 +6.68000000000000e+00 5.27795841810000e-03 +6.69000000000000e+00 5.23277863530000e-03 +6.70000000000000e+00 5.18798510930000e-03 +6.71000000000000e+00 5.14357453620000e-03 +6.72000000000000e+00 5.09954364110000e-03 +6.73000000000000e+00 5.05588917690000e-03 +6.74000000000000e+00 5.01260792490000e-03 +6.75000000000000e+00 4.96969669410000e-03 +6.76000000000000e+00 4.92715232100000e-03 +6.77000000000000e+00 4.88497166930000e-03 +6.78000000000000e+00 4.84315162990000e-03 +6.79000000000000e+00 4.80168912040000e-03 +6.80000000000000e+00 4.76058108500000e-03 +6.81000000000000e+00 4.71982449420000e-03 +6.82000000000000e+00 4.67941634460000e-03 +6.83000000000000e+00 4.63935365880000e-03 +6.84000000000000e+00 4.59963348470000e-03 +6.85000000000000e+00 4.56025289590000e-03 +6.86000000000000e+00 4.52120899100000e-03 +6.87000000000000e+00 4.48249889380000e-03 +6.88000000000000e+00 4.44411975240000e-03 +6.89000000000000e+00 4.40606873990000e-03 +6.90000000000000e+00 4.36834305340000e-03 +6.91000000000000e+00 4.33093991410000e-03 +6.92000000000000e+00 4.29385656720000e-03 +6.93000000000000e+00 4.25709028130000e-03 +6.94000000000000e+00 4.22063834880000e-03 +6.95000000000000e+00 4.18449808510000e-03 +6.96000000000000e+00 4.14866682870000e-03 +6.97000000000000e+00 4.11314194090000e-03 +6.98000000000000e+00 4.07792080560000e-03 +6.99000000000000e+00 4.04300082940000e-03 +7.00000000000000e+00 4.00837944070000e-03 +7.01000000000000e+00 3.97405409030000e-03 +7.02000000000000e+00 3.94002225070000e-03 +7.03000000000000e+00 3.90628141610000e-03 +7.04000000000000e+00 3.87282910210000e-03 +7.05000000000000e+00 3.83966284560000e-03 +7.06000000000000e+00 3.80678020470000e-03 +7.07000000000000e+00 3.77417875820000e-03 +7.08000000000000e+00 3.74185610580000e-03 +7.09000000000000e+00 3.70980986770000e-03 +7.10000000000000e+00 3.67803768450000e-03 +7.11000000000000e+00 3.64653721680000e-03 +7.12000000000000e+00 3.61530614540000e-03 +7.13000000000000e+00 3.58434217080000e-03 +7.14000000000000e+00 3.55364301340000e-03 +7.15000000000000e+00 3.52320641290000e-03 +7.16000000000000e+00 3.49303012830000e-03 +7.17000000000000e+00 3.46311193770000e-03 +7.18000000000000e+00 3.43344963850000e-03 +7.19000000000000e+00 3.40404104660000e-03 +7.20000000000000e+00 3.37488399670000e-03 +7.21000000000000e+00 3.34597634200000e-03 +7.22000000000000e+00 3.31731595390000e-03 +7.23000000000000e+00 3.28890072210000e-03 +7.24000000000000e+00 3.26072855440000e-03 +7.25000000000000e+00 3.23279737630000e-03 +7.26000000000000e+00 3.20510513100000e-03 +7.27000000000000e+00 3.17764977950000e-03 +7.28000000000000e+00 3.15042929990000e-03 +7.29000000000000e+00 3.12344168770000e-03 +7.30000000000000e+00 3.09668495550000e-03 +7.31000000000000e+00 3.07015713290000e-03 +7.32000000000000e+00 3.04385626610000e-03 +7.33000000000000e+00 3.01778041820000e-03 +7.34000000000000e+00 2.99192766880000e-03 +7.35000000000000e+00 2.96629611380000e-03 +7.36000000000000e+00 2.94088386520000e-03 +7.37000000000000e+00 2.91568905140000e-03 +7.38000000000000e+00 2.89070981660000e-03 +7.39000000000000e+00 2.86594432070000e-03 +7.40000000000000e+00 2.84139073950000e-03 +7.41000000000000e+00 2.81704726430000e-03 +7.42000000000000e+00 2.79291210180000e-03 +7.43000000000000e+00 2.76898347380000e-03 +7.44000000000000e+00 2.74525961760000e-03 +7.45000000000000e+00 2.72173878510000e-03 +7.46000000000000e+00 2.69841924360000e-03 +7.47000000000000e+00 2.67529927470000e-03 +7.48000000000000e+00 2.65237717500000e-03 +7.49000000000000e+00 2.62965125520000e-03 +7.50000000000000e+00 2.60711984090000e-03 +7.51000000000000e+00 2.58478127150000e-03 +7.52000000000000e+00 2.56263390090000e-03 +7.53000000000000e+00 2.54067609670000e-03 +7.54000000000000e+00 2.51890624060000e-03 +7.55000000000000e+00 2.49732272820000e-03 +7.56000000000000e+00 2.47592396840000e-03 +7.57000000000000e+00 2.45470838400000e-03 +7.58000000000000e+00 2.43367441110000e-03 +7.59000000000000e+00 2.41282049900000e-03 +7.60000000000000e+00 2.39214511040000e-03 +7.61000000000000e+00 2.37164672100000e-03 +7.62000000000000e+00 2.35132381940000e-03 +7.63000000000000e+00 2.33117490720000e-03 +7.64000000000000e+00 2.31119849870000e-03 +7.65000000000000e+00 2.29139312080000e-03 +7.66000000000000e+00 2.27175731310000e-03 +7.67000000000000e+00 2.25228962740000e-03 +7.68000000000000e+00 2.23298862810000e-03 +7.69000000000000e+00 2.21385289160000e-03 +7.70000000000000e+00 2.19488100640000e-03 +7.71000000000000e+00 2.17607157330000e-03 +7.72000000000000e+00 2.15742320470000e-03 +7.73000000000000e+00 2.13893452490000e-03 +7.74000000000000e+00 2.12060417000000e-03 +7.75000000000000e+00 2.10243078770000e-03 +7.76000000000000e+00 2.08441303710000e-03 +7.77000000000000e+00 2.06654958870000e-03 +7.78000000000000e+00 2.04883912460000e-03 +7.79000000000000e+00 2.03128033770000e-03 +7.80000000000000e+00 2.01387193240000e-03 +7.81000000000000e+00 1.99661262380000e-03 +7.82000000000000e+00 1.97950113830000e-03 +7.83000000000000e+00 1.96253621270000e-03 +7.84000000000000e+00 1.94571659500000e-03 +7.85000000000000e+00 1.92904104360000e-03 +7.86000000000000e+00 1.91250832750000e-03 +7.87000000000000e+00 1.89611722630000e-03 +7.88000000000000e+00 1.87986652970000e-03 +7.89000000000000e+00 1.86375503800000e-03 +7.90000000000000e+00 1.84778156160000e-03 +7.91000000000000e+00 1.83194492100000e-03 +7.92000000000000e+00 1.81624394680000e-03 +7.93000000000000e+00 1.80067747950000e-03 +7.94000000000000e+00 1.78524436960000e-03 +7.95000000000000e+00 1.76994347710000e-03 +7.96000000000000e+00 1.75477367210000e-03 +7.97000000000000e+00 1.73973383390000e-03 +7.98000000000000e+00 1.72482285170000e-03 +7.99000000000000e+00 1.71003962400000e-03 +8.00000000000000e+00 1.69538305860000e-03 +8.01000000000000e+00 1.68085207270000e-03 +8.02000000000000e+00 1.66644559270000e-03 +8.03000000000000e+00 1.65216255420000e-03 +8.04000000000000e+00 1.63800190180000e-03 +8.05000000000000e+00 1.62396258910000e-03 +8.06000000000000e+00 1.61004357860000e-03 +8.07000000000000e+00 1.59624384160000e-03 +8.08000000000000e+00 1.58256235820000e-03 +8.09000000000000e+00 1.56899811720000e-03 +8.10000000000000e+00 1.55555011600000e-03 +8.11000000000000e+00 1.54221736060000e-03 +8.12000000000000e+00 1.52899886540000e-03 +8.13000000000000e+00 1.51589365310000e-03 +8.14000000000000e+00 1.50290075480000e-03 +8.15000000000000e+00 1.49001921010000e-03 +8.16000000000000e+00 1.47724806630000e-03 +8.17000000000000e+00 1.46458637920000e-03 +8.18000000000000e+00 1.45203321250000e-03 +8.19000000000000e+00 1.43958763790000e-03 +8.20000000000000e+00 1.42724873500000e-03 +8.21000000000000e+00 1.41501559120000e-03 +8.22000000000000e+00 1.40288730170000e-03 +8.23000000000000e+00 1.39086296950000e-03 +8.24000000000000e+00 1.37894170520000e-03 +8.25000000000000e+00 1.36712262690000e-03 +8.26000000000000e+00 1.35540486020000e-03 +8.27000000000000e+00 1.34378753830000e-03 +8.28000000000000e+00 1.33226980170000e-03 +8.29000000000000e+00 1.32085079820000e-03 +8.30000000000000e+00 1.30952968290000e-03 +8.31000000000000e+00 1.29830561810000e-03 +8.32000000000000e+00 1.28717777320000e-03 +8.33000000000000e+00 1.27614532470000e-03 +8.34000000000000e+00 1.26520745620000e-03 +8.35000000000000e+00 1.25436335820000e-03 +8.36000000000000e+00 1.24361222800000e-03 +8.37000000000000e+00 1.23295326990000e-03 +8.38000000000000e+00 1.22238569490000e-03 +8.39000000000000e+00 1.21190872080000e-03 +8.40000000000000e+00 1.20152157200000e-03 +8.41000000000000e+00 1.19122347950000e-03 +8.42000000000000e+00 1.18101368090000e-03 +8.43000000000000e+00 1.17089142030000e-03 +8.44000000000000e+00 1.16085594820000e-03 +8.45000000000000e+00 1.15090652170000e-03 +8.46000000000000e+00 1.14104240380000e-03 +8.47000000000000e+00 1.13126286420000e-03 +8.48000000000000e+00 1.12156717870000e-03 +8.49000000000000e+00 1.11195462930000e-03 +8.50000000000000e+00 1.10242450390000e-03 +8.51000000000000e+00 1.09297609690000e-03 +8.52000000000000e+00 1.08360870830000e-03 +8.53000000000000e+00 1.07432164430000e-03 +8.54000000000000e+00 1.06511421710000e-03 +8.55000000000000e+00 1.05598574440000e-03 +8.56000000000000e+00 1.04693555020000e-03 +8.57000000000000e+00 1.03796296390000e-03 +8.58000000000000e+00 1.02906732080000e-03 +8.59000000000000e+00 1.02024796180000e-03 +8.60000000000000e+00 1.01150423360000e-03 +8.61000000000000e+00 1.00283548810000e-03 +8.62000000000000e+00 9.94241083130000e-04 +8.63000000000000e+00 9.85720381780000e-04 +8.64000000000000e+00 9.77272752640000e-04 +8.65000000000000e+00 9.68897569700000e-04 +8.66000000000000e+00 9.60594212270000e-04 +8.67000000000000e+00 9.52362064970000e-04 +8.68000000000000e+00 9.44200517680000e-04 +8.69000000000000e+00 9.36108965470000e-04 +8.70000000000000e+00 9.28086808600000e-04 +8.71000000000000e+00 9.20133452450000e-04 +8.72000000000000e+00 9.12248307450000e-04 +8.73000000000000e+00 9.04430789100000e-04 +8.74000000000000e+00 8.96680317870000e-04 +8.75000000000000e+00 8.88996319190000e-04 +8.76000000000000e+00 8.81378223410000e-04 +8.77000000000000e+00 8.73825465710000e-04 +8.78000000000000e+00 8.66337486140000e-04 +8.79000000000000e+00 8.58913729500000e-04 +8.80000000000000e+00 8.51553645350000e-04 +8.81000000000000e+00 8.44256687940000e-04 +8.82000000000000e+00 8.37022316200000e-04 +8.83000000000000e+00 8.29849993670000e-04 +8.84000000000000e+00 8.22739188480000e-04 +8.85000000000000e+00 8.15689373320000e-04 +8.86000000000000e+00 8.08700025360000e-04 +8.87000000000000e+00 8.01770626240000e-04 +8.88000000000000e+00 7.94900662070000e-04 +8.89000000000000e+00 7.88089623300000e-04 +8.90000000000000e+00 7.81337004770000e-04 +8.91000000000000e+00 7.74642305630000e-04 +8.92000000000000e+00 7.68005029300000e-04 +8.93000000000000e+00 7.61424683460000e-04 +8.94000000000000e+00 7.54900780010000e-04 +8.95000000000000e+00 7.48432834980000e-04 +8.96000000000000e+00 7.42020368590000e-04 +8.97000000000000e+00 7.35662905130000e-04 +8.98000000000000e+00 7.29359972980000e-04 +8.99000000000000e+00 7.23111104520000e-04 +9.00000000000000e+00 7.16915836160000e-04 +9.01000000000000e+00 7.10773708280000e-04 +9.02000000000000e+00 7.04684265150000e-04 +9.03000000000000e+00 6.98647054980000e-04 +9.04000000000000e+00 6.92661629830000e-04 +9.05000000000000e+00 6.86727545590000e-04 +9.06000000000000e+00 6.80844361950000e-04 +9.07000000000000e+00 6.75011642360000e-04 +9.08000000000000e+00 6.69228954030000e-04 +9.09000000000000e+00 6.63495867840000e-04 +9.10000000000000e+00 6.57811958360000e-04 +9.11000000000000e+00 6.52176803810000e-04 +9.12000000000000e+00 6.46589985990000e-04 +9.13000000000000e+00 6.41051090310000e-04 +9.14000000000000e+00 6.35559705710000e-04 +9.15000000000000e+00 6.30115424640000e-04 +9.16000000000000e+00 6.24717843070000e-04 +9.17000000000000e+00 6.19366560400000e-04 +9.18000000000000e+00 6.14061179470000e-04 +9.19000000000000e+00 6.08801306510000e-04 +9.20000000000000e+00 6.03586551140000e-04 +9.21000000000000e+00 5.98416526300000e-04 +9.22000000000000e+00 5.93290848250000e-04 +9.23000000000000e+00 5.88209136560000e-04 +9.24000000000000e+00 5.83171014010000e-04 +9.25000000000000e+00 5.78176106660000e-04 +9.26000000000000e+00 5.73224043720000e-04 +9.27000000000000e+00 5.68314457630000e-04 +9.28000000000000e+00 5.63446983930000e-04 +9.29000000000000e+00 5.58621261330000e-04 +9.30000000000000e+00 5.53836931590000e-04 +9.31000000000000e+00 5.49093639560000e-04 +9.32000000000000e+00 5.44391033120000e-04 +9.33000000000000e+00 5.39728763180000e-04 +9.34000000000000e+00 5.35106483630000e-04 +9.35000000000000e+00 5.30523851340000e-04 +9.36000000000000e+00 5.25980526080000e-04 +9.37000000000000e+00 5.21476170610000e-04 +9.38000000000000e+00 5.17010450500000e-04 +9.39000000000000e+00 5.12583034210000e-04 +9.40000000000000e+00 5.08193593030000e-04 +9.41000000000000e+00 5.03841801100000e-04 +9.42000000000000e+00 4.99527335310000e-04 +9.43000000000000e+00 4.95249875360000e-04 +9.44000000000000e+00 4.91009103660000e-04 +9.45000000000000e+00 4.86804705370000e-04 +9.46000000000000e+00 4.82636368320000e-04 +9.47000000000000e+00 4.78503783050000e-04 +9.48000000000000e+00 4.74406642670000e-04 +9.49000000000000e+00 4.70344642980000e-04 +9.50000000000000e+00 4.66317482470000e-04 +9.51000000000000e+00 4.62324862150000e-04 +9.52000000000000e+00 4.58366485570000e-04 +9.53000000000000e+00 4.54442058860000e-04 +9.54000000000000e+00 4.50551290640000e-04 +9.55000000000000e+00 4.46693892050000e-04 +9.56000000000000e+00 4.42869576670000e-04 +9.57000000000000e+00 4.39078060570000e-04 +9.58000000000000e+00 4.35319062230000e-04 +9.59000000000000e+00 4.31592302590000e-04 +9.60000000000000e+00 4.27897505090000e-04 +9.61000000000000e+00 4.24234395190000e-04 +9.62000000000000e+00 4.20602700900000e-04 +9.63000000000000e+00 4.17002152530000e-04 +9.64000000000000e+00 4.13432482740000e-04 +9.65000000000000e+00 4.09893426460000e-04 +9.66000000000000e+00 4.06384720890000e-04 +9.67000000000000e+00 4.02906105490000e-04 +9.68000000000000e+00 3.99457321960000e-04 +9.69000000000000e+00 3.96038114210000e-04 +9.70000000000000e+00 3.92648228350000e-04 +9.71000000000000e+00 3.89287412520000e-04 +9.72000000000000e+00 3.85955417230000e-04 +9.73000000000000e+00 3.82651995210000e-04 +9.74000000000000e+00 3.79376901180000e-04 +9.75000000000000e+00 3.76129891990000e-04 +9.76000000000000e+00 3.72910726580000e-04 +9.77000000000000e+00 3.69719165950000e-04 +9.78000000000000e+00 3.66554973160000e-04 +9.79000000000000e+00 3.63417913290000e-04 +9.80000000000000e+00 3.60307753440000e-04 +9.81000000000000e+00 3.57224262730000e-04 +9.82000000000000e+00 3.54167212240000e-04 +9.83000000000000e+00 3.51136375210000e-04 +9.84000000000000e+00 3.48131526430000e-04 +9.85000000000000e+00 3.45152442820000e-04 +9.86000000000000e+00 3.42198903200000e-04 +9.87000000000000e+00 3.39270688300000e-04 +9.88000000000000e+00 3.36367580710000e-04 +9.89000000000000e+00 3.33489364920000e-04 +9.90000000000000e+00 3.30635827240000e-04 +9.91000000000000e+00 3.27806755820000e-04 +9.92000000000000e+00 3.25001940630000e-04 +9.93000000000000e+00 3.22221173450000e-04 +9.94000000000000e+00 3.19464247820000e-04 +9.95000000000000e+00 3.16730959000000e-04 +9.96000000000000e+00 3.14021104180000e-04 +9.97000000000000e+00 3.11334482210000e-04 +9.98000000000000e+00 3.08670893650000e-04 +9.99000000000000e+00 3.06030140790000e-04 +1.00000000000000e+01 3.03412027600000e-04 +1.00100000000000e+01 3.00816359740000e-04 +1.00200000000000e+01 2.98242944540000e-04 +1.00300000000000e+01 2.95691591000000e-04 +1.00400000000000e+01 2.93162109720000e-04 +1.00500000000000e+01 2.90654312970000e-04 +1.00600000000000e+01 2.88168014620000e-04 +1.00700000000000e+01 2.85703030120000e-04 +1.00800000000000e+01 2.83259176510000e-04 +1.00900000000000e+01 2.80836272390000e-04 +1.01000000000000e+01 2.78434137940000e-04 +1.01100000000000e+01 2.76052594860000e-04 +1.01200000000000e+01 2.73691466390000e-04 +1.01300000000000e+01 2.71350577290000e-04 +1.01400000000000e+01 2.69029753830000e-04 +1.01500000000000e+01 2.66728823740000e-04 +1.01600000000000e+01 2.64447616270000e-04 +1.01700000000000e+01 2.62185962110000e-04 +1.01800000000000e+01 2.59943693400000e-04 +1.01900000000000e+01 2.57720643760000e-04 +1.02000000000000e+01 2.55516648170000e-04 +1.02100000000000e+01 2.53331543060000e-04 +1.02200000000000e+01 2.51165166260000e-04 +1.02300000000000e+01 2.49017356980000e-04 +1.02400000000000e+01 2.46887955850000e-04 +1.02500000000000e+01 2.44776804810000e-04 +1.02600000000000e+01 2.42683747210000e-04 +1.02700000000000e+01 2.40608627710000e-04 +1.02800000000000e+01 2.38551292310000e-04 +1.02900000000000e+01 2.36511588350000e-04 +1.03000000000000e+01 2.34489364450000e-04 +1.03100000000000e+01 2.32484470530000e-04 +1.03200000000000e+01 2.30496757850000e-04 +1.03300000000000e+01 2.28526078900000e-04 +1.03400000000000e+01 2.26572287470000e-04 +1.03500000000000e+01 2.24635238590000e-04 +1.03600000000000e+01 2.22714788530000e-04 +1.03700000000000e+01 2.20810794790000e-04 +1.03800000000000e+01 2.18923116110000e-04 +1.03900000000000e+01 2.17051612440000e-04 +1.04000000000000e+01 2.15196144930000e-04 +1.04100000000000e+01 2.13356575910000e-04 +1.04200000000000e+01 2.11532768920000e-04 +1.04300000000000e+01 2.09724588650000e-04 +1.04400000000000e+01 2.07931900960000e-04 +1.04500000000000e+01 2.06154572860000e-04 +1.04600000000000e+01 2.04392472500000e-04 +1.04700000000000e+01 2.02645469180000e-04 +1.04800000000000e+01 2.00913433310000e-04 +1.04900000000000e+01 1.99196236410000e-04 +1.05000000000000e+01 1.97493751100000e-04 +1.05100000000000e+01 1.95805851110000e-04 +1.05200000000000e+01 1.94132411240000e-04 +1.05300000000000e+01 1.92473307380000e-04 +1.05400000000000e+01 1.90828416480000e-04 +1.05500000000000e+01 1.89197616540000e-04 +1.05600000000000e+01 1.87580786620000e-04 +1.05700000000000e+01 1.85977806810000e-04 +1.05800000000000e+01 1.84388558230000e-04 +1.05900000000000e+01 1.82812923030000e-04 +1.06000000000000e+01 1.81250784360000e-04 +1.06100000000000e+01 1.79702026390000e-04 +1.06200000000000e+01 1.78166534270000e-04 +1.06300000000000e+01 1.76644194140000e-04 +1.06400000000000e+01 1.75134893130000e-04 +1.06500000000000e+01 1.73638519330000e-04 +1.06600000000000e+01 1.72154961790000e-04 +1.06700000000000e+01 1.70684110510000e-04 +1.06800000000000e+01 1.69225856450000e-04 +1.06900000000000e+01 1.67780091490000e-04 +1.07000000000000e+01 1.66346708460000e-04 +1.07100000000000e+01 1.64925601080000e-04 +1.07200000000000e+01 1.63516664020000e-04 +1.07300000000000e+01 1.62119792820000e-04 +1.07400000000000e+01 1.60734883950000e-04 +1.07500000000000e+01 1.59361834730000e-04 +1.07600000000000e+01 1.58000543410000e-04 +1.07700000000000e+01 1.56650909070000e-04 +1.07800000000000e+01 1.55312831700000e-04 +1.07900000000000e+01 1.53986212100000e-04 +1.08000000000000e+01 1.52670951970000e-04 +1.08100000000000e+01 1.51366953810000e-04 +1.08200000000000e+01 1.50074121010000e-04 +1.08300000000000e+01 1.48792357730000e-04 +1.08400000000000e+01 1.47521569020000e-04 +1.08500000000000e+01 1.46261660680000e-04 +1.08600000000000e+01 1.45012539360000e-04 +1.08700000000000e+01 1.43774112510000e-04 +1.08800000000000e+01 1.42546288360000e-04 +1.08900000000000e+01 1.41328975940000e-04 +1.09000000000000e+01 1.40122085050000e-04 +1.09100000000000e+01 1.38925526290000e-04 +1.09200000000000e+01 1.37739210990000e-04 +1.09300000000000e+01 1.36563051270000e-04 +1.09400000000000e+01 1.35396960000000e-04 +1.09500000000000e+01 1.34240850800000e-04 +1.09600000000000e+01 1.33094638020000e-04 +1.09700000000000e+01 1.31958236760000e-04 +1.09800000000000e+01 1.30831562850000e-04 +1.09900000000000e+01 1.29714532830000e-04 +1.10000000000000e+01 1.28607063960000e-04 +1.10100000000000e+01 1.27509074230000e-04 +1.10200000000000e+01 1.26420482310000e-04 +1.10300000000000e+01 1.25341207580000e-04 +1.10400000000000e+01 1.24271170120000e-04 +1.10500000000000e+01 1.23210290680000e-04 +1.10600000000000e+01 1.22158490700000e-04 +1.10700000000000e+01 1.21115692300000e-04 +1.10800000000000e+01 1.20081818250000e-04 +1.10900000000000e+01 1.19056792020000e-04 +1.11000000000000e+01 1.18040537700000e-04 +1.11100000000000e+01 1.17032980050000e-04 +1.11200000000000e+01 1.16034044470000e-04 +1.11300000000000e+01 1.15043657010000e-04 +1.11400000000000e+01 1.14061744350000e-04 +1.11500000000000e+01 1.13088233800000e-04 +1.11600000000000e+01 1.12123053300000e-04 +1.11700000000000e+01 1.11166131390000e-04 +1.11800000000000e+01 1.10217397250000e-04 +1.11900000000000e+01 1.09276780650000e-04 +1.12000000000000e+01 1.08344211970000e-04 +1.12100000000000e+01 1.07419622190000e-04 +1.12200000000000e+01 1.06502942880000e-04 +1.12300000000000e+01 1.05594106200000e-04 +1.12400000000000e+01 1.04693044890000e-04 +1.12500000000000e+01 1.03799692270000e-04 +1.12600000000000e+01 1.02913982240000e-04 +1.12700000000000e+01 1.02035849250000e-04 +1.12800000000000e+01 1.01165228330000e-04 +1.12900000000000e+01 1.00302055060000e-04 +1.13000000000000e+01 9.94462655700000e-05 +1.13100000000000e+01 9.85977965520000e-05 +1.13200000000000e+01 9.77565852310000e-05 +1.13300000000000e+01 9.69225693750000e-05 +1.13400000000000e+01 9.60956872830000e-05 +1.13500000000000e+01 9.52758777900000e-05 +1.13600000000000e+01 9.44630802530000e-05 +1.13700000000000e+01 9.36572345500000e-05 +1.13800000000000e+01 9.28582810770000e-05 +1.13900000000000e+01 9.20661607410000e-05 +1.14000000000000e+01 9.12808149570000e-05 +1.14100000000000e+01 9.05021856420000e-05 +1.14200000000000e+01 8.97302152140000e-05 +1.14300000000000e+01 8.89648465840000e-05 +1.14400000000000e+01 8.82060231560000e-05 +1.14500000000000e+01 8.74536888160000e-05 +1.14600000000000e+01 8.67077879350000e-05 +1.14700000000000e+01 8.59682653620000e-05 +1.14800000000000e+01 8.52350664170000e-05 +1.14900000000000e+01 8.45081368940000e-05 +1.15000000000000e+01 8.37874230490000e-05 +1.15100000000000e+01 8.30728716030000e-05 +1.15200000000000e+01 8.23644297310000e-05 +1.15300000000000e+01 8.16620450640000e-05 +1.15400000000000e+01 8.09656656830000e-05 +1.15500000000000e+01 8.02752401140000e-05 +1.15600000000000e+01 7.95907173260000e-05 +1.15700000000000e+01 7.89120467240000e-05 +1.15800000000000e+01 7.82391781510000e-05 +1.15900000000000e+01 7.75720618790000e-05 +1.16000000000000e+01 7.69106486070000e-05 +1.16100000000000e+01 7.62548894570000e-05 +1.16200000000000e+01 7.56047359710000e-05 +1.16300000000000e+01 7.49601401100000e-05 +1.16400000000000e+01 7.43210542440000e-05 +1.16500000000000e+01 7.36874311540000e-05 +1.16600000000000e+01 7.30592240270000e-05 +1.16700000000000e+01 7.24363864500000e-05 +1.16800000000000e+01 7.18188724100000e-05 +1.16900000000000e+01 7.12066362890000e-05 +1.17000000000000e+01 7.05996328610000e-05 +1.17100000000000e+01 6.99978172880000e-05 +1.17200000000000e+01 6.94011451160000e-05 +1.17300000000000e+01 6.88095722750000e-05 +1.17400000000000e+01 6.82230550730000e-05 +1.17500000000000e+01 6.76415501910000e-05 +1.17600000000000e+01 6.70650146830000e-05 +1.17700000000000e+01 6.64934059740000e-05 +1.17800000000000e+01 6.59266818540000e-05 +1.17900000000000e+01 6.53648004720000e-05 +1.18000000000000e+01 6.48077203420000e-05 +1.18100000000000e+01 6.42554003280000e-05 +1.18200000000000e+01 6.37077996530000e-05 +1.18300000000000e+01 6.31648778870000e-05 +1.18400000000000e+01 6.26265949460000e-05 +1.18500000000000e+01 6.20929110940000e-05 +1.18600000000000e+01 6.15637869330000e-05 +1.18700000000000e+01 6.10391834040000e-05 +1.18800000000000e+01 6.05190617840000e-05 +1.18900000000000e+01 6.00033836820000e-05 +1.19000000000000e+01 5.94921110360000e-05 +1.19100000000000e+01 5.89852061130000e-05 +1.19200000000000e+01 5.84826315030000e-05 +1.19300000000000e+01 5.79843501160000e-05 +1.19400000000000e+01 5.74903251810000e-05 +1.19500000000000e+01 5.70005202430000e-05 +1.19600000000000e+01 5.65148991610000e-05 +1.19700000000000e+01 5.60334261020000e-05 +1.19800000000000e+01 5.55560655420000e-05 +1.19900000000000e+01 5.50827822620000e-05 +1.20000000000000e+01 5.46135413450000e-05 +1.20100000000000e+01 5.41483081740000e-05 +1.20200000000000e+01 5.36870484290000e-05 +1.20300000000000e+01 5.32297280840000e-05 +1.20400000000000e+01 5.27763134050000e-05 +1.20500000000000e+01 5.23267709500000e-05 +1.20600000000000e+01 5.18810675610000e-05 +1.20700000000000e+01 5.14391703670000e-05 +1.20800000000000e+01 5.10010467770000e-05 +1.20900000000000e+01 5.05666644830000e-05 +1.21000000000000e+01 5.01359914500000e-05 +1.21100000000000e+01 4.97089959220000e-05 +1.21200000000000e+01 4.92856464130000e-05 +1.21300000000000e+01 4.88659117070000e-05 +1.21400000000000e+01 4.84497608580000e-05 +1.21500000000000e+01 4.80371631840000e-05 +1.21600000000000e+01 4.76280882660000e-05 +1.21700000000000e+01 4.72225059490000e-05 +1.21800000000000e+01 4.68203863310000e-05 +1.21900000000000e+01 4.64216997730000e-05 +1.22000000000000e+01 4.60264168870000e-05 +1.22100000000000e+01 4.56345085380000e-05 +1.22200000000000e+01 4.52459458410000e-05 +1.22300000000000e+01 4.48607001590000e-05 +1.22400000000000e+01 4.44787431000000e-05 +1.22500000000000e+01 4.41000465160000e-05 +1.22600000000000e+01 4.37245825010000e-05 +1.22700000000000e+01 4.33523233880000e-05 +1.22800000000000e+01 4.29832417470000e-05 +1.22900000000000e+01 4.26173103850000e-05 +1.23000000000000e+01 4.22545023400000e-05 +1.23100000000000e+01 4.18947908830000e-05 +1.23200000000000e+01 4.15381495140000e-05 +1.23300000000000e+01 4.11845519590000e-05 +1.23400000000000e+01 4.08339721720000e-05 +1.23500000000000e+01 4.04863843290000e-05 +1.23600000000000e+01 4.01417628270000e-05 +1.23700000000000e+01 3.98000822840000e-05 +1.23800000000000e+01 3.94613175350000e-05 +1.23900000000000e+01 3.91254436310000e-05 +1.24000000000000e+01 3.87924358370000e-05 +1.24100000000000e+01 3.84622696310000e-05 +1.24200000000000e+01 3.81349206990000e-05 +1.24300000000000e+01 3.78103649380000e-05 +1.24400000000000e+01 3.74885784510000e-05 +1.24500000000000e+01 3.71695375450000e-05 +1.24600000000000e+01 3.68532187320000e-05 +1.24700000000000e+01 3.65395987240000e-05 +1.24800000000000e+01 3.62286544330000e-05 +1.24900000000000e+01 3.59203629690000e-05 +1.25000000000000e+01 3.56147016410000e-05 +1.25100000000000e+01 3.53116479480000e-05 +1.25200000000000e+01 3.50111795860000e-05 +1.25300000000000e+01 3.47132744390000e-05 +1.25400000000000e+01 3.44179105840000e-05 +1.25500000000000e+01 3.41250662830000e-05 +1.25600000000000e+01 3.38347199860000e-05 +1.25700000000000e+01 3.35468503280000e-05 +1.25800000000000e+01 3.32614361270000e-05 +1.25900000000000e+01 3.29784563810000e-05 +1.26000000000000e+01 3.26978902700000e-05 +1.26100000000000e+01 3.24197171530000e-05 +1.26200000000000e+01 3.21439165640000e-05 +1.26300000000000e+01 3.18704682120000e-05 +1.26400000000000e+01 3.15993519840000e-05 +1.26500000000000e+01 3.13305479370000e-05 +1.26600000000000e+01 3.10640362970000e-05 +1.26700000000000e+01 3.07997974630000e-05 +1.26800000000000e+01 3.05378120010000e-05 +1.26900000000000e+01 3.02780606420000e-05 +1.27000000000000e+01 3.00205242850000e-05 +1.27100000000000e+01 2.97651839890000e-05 +1.27200000000000e+01 2.95120209790000e-05 +1.27300000000000e+01 2.92610166390000e-05 +1.27400000000000e+01 2.90121525140000e-05 +1.27500000000000e+01 2.87654103050000e-05 +1.27600000000000e+01 2.85207718710000e-05 +1.27700000000000e+01 2.82782192280000e-05 +1.27800000000000e+01 2.80377345430000e-05 +1.27900000000000e+01 2.77993001390000e-05 +1.28000000000000e+01 2.75628984900000e-05 +1.28100000000000e+01 2.73285122170000e-05 +1.28200000000000e+01 2.70961240950000e-05 +1.28300000000000e+01 2.68657170440000e-05 +1.28400000000000e+01 2.66372741280000e-05 +1.28500000000000e+01 2.64107785620000e-05 +1.28600000000000e+01 2.61862136980000e-05 +1.28700000000000e+01 2.59635630370000e-05 +1.28800000000000e+01 2.57428102170000e-05 +1.28900000000000e+01 2.55239390190000e-05 +1.29000000000000e+01 2.53069333600000e-05 +1.29100000000000e+01 2.50917772980000e-05 +1.29200000000000e+01 2.48784550260000e-05 +1.29300000000000e+01 2.46669508710000e-05 +1.29400000000000e+01 2.44572492980000e-05 +1.29500000000000e+01 2.42493349020000e-05 +1.29600000000000e+01 2.40431924120000e-05 +1.29700000000000e+01 2.38388066870000e-05 +1.29800000000000e+01 2.36361627150000e-05 +1.29900000000000e+01 2.34352456140000e-05 +1.30000000000000e+01 2.32360406280000e-05 +1.30100000000000e+01 2.30385331300000e-05 +1.30200000000000e+01 2.28427086140000e-05 +1.30300000000000e+01 2.26485527030000e-05 +1.30400000000000e+01 2.24560511400000e-05 +1.30500000000000e+01 2.22651897920000e-05 +1.30600000000000e+01 2.20759546450000e-05 +1.30700000000000e+01 2.18883318080000e-05 +1.30800000000000e+01 2.17023075050000e-05 +1.30900000000000e+01 2.15178680810000e-05 +1.31000000000000e+01 2.13349999980000e-05 +1.31100000000000e+01 2.11536898330000e-05 +1.31200000000000e+01 2.09739242790000e-05 +1.31300000000000e+01 2.07956901410000e-05 +1.31400000000000e+01 2.06189743390000e-05 +1.31500000000000e+01 2.04437639040000e-05 +1.31600000000000e+01 2.02700459780000e-05 +1.31700000000000e+01 2.00978078140000e-05 +1.31800000000000e+01 1.99270367740000e-05 +1.31900000000000e+01 1.97577203270000e-05 +1.32000000000000e+01 1.95898460510000e-05 +1.32100000000000e+01 1.94234016290000e-05 +1.32200000000000e+01 1.92583748510000e-05 +1.32300000000000e+01 1.90947536090000e-05 +1.32400000000000e+01 1.89325259000000e-05 +1.32500000000000e+01 1.87716798250000e-05 +1.32600000000000e+01 1.86122035870000e-05 +1.32700000000000e+01 1.84540854870000e-05 +1.32800000000000e+01 1.82973139300000e-05 +1.32900000000000e+01 1.81418774180000e-05 +1.33000000000000e+01 1.79877645510000e-05 +1.33100000000000e+01 1.78349640290000e-05 +1.33200000000000e+01 1.76834646460000e-05 +1.33300000000000e+01 1.75332552930000e-05 +1.33400000000000e+01 1.73843249580000e-05 +1.33500000000000e+01 1.72366627200000e-05 diff --git a/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi40.inp b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi40.inp new file mode 100644 index 000000000..58ff7c7c8 --- /dev/null +++ b/data/electronicStructure/pseudoPotential/z29/singleAtomData/psi40.inp @@ -0,0 +1,1335 @@ +1.00000000000000e-02 8.96893613300000e-03 +2.00000000000000e-02 1.79258905250000e-02 +3.00000000000000e-02 2.68588995820000e-02 +4.00000000000000e-02 3.57560359920000e-02 +5.00000000000000e-02 4.46054267570000e-02 +6.00000000000000e-02 5.33952711080000e-02 +7.00000000000000e-02 6.21138582540000e-02 +8.00000000000000e-02 7.07495849350000e-02 +9.00000000000000e-02 7.92909727300000e-02 +1.00000000000000e-01 8.77266850860000e-02 +1.10000000000000e-01 9.60455440350000e-02 +1.20000000000000e-01 1.04236546560000e-01 +1.30000000000000e-01 1.12288880550000e-01 +1.40000000000000e-01 1.20191940420000e-01 +1.50000000000000e-01 1.27935342120000e-01 +1.60000000000000e-01 1.35508937870000e-01 +1.70000000000000e-01 1.42902830180000e-01 +1.80000000000000e-01 1.50107385490000e-01 +1.90000000000000e-01 1.57113247160000e-01 +2.00000000000000e-01 1.63911347930000e-01 +2.10000000000000e-01 1.70492921700000e-01 +2.20000000000000e-01 1.76849514760000e-01 +2.30000000000000e-01 1.82972996340000e-01 +2.40000000000000e-01 1.88855568500000e-01 +2.50000000000000e-01 1.94489775360000e-01 +2.60000000000000e-01 1.99868511630000e-01 +2.70000000000000e-01 2.04985030460000e-01 +2.80000000000000e-01 2.09832950600000e-01 +2.90000000000000e-01 2.14406262810000e-01 +3.00000000000000e-01 2.18699335610000e-01 +3.10000000000000e-01 2.22706920290000e-01 +3.20000000000000e-01 2.26424155220000e-01 +3.30000000000000e-01 2.29846569430000e-01 +3.40000000000000e-01 2.32970085520000e-01 +3.50000000000000e-01 2.35791021850000e-01 +3.60000000000000e-01 2.38306094050000e-01 +3.70000000000000e-01 2.40512415790000e-01 +3.80000000000000e-01 2.42407498960000e-01 +3.90000000000000e-01 2.43989253140000e-01 +4.00000000000000e-01 2.45255984420000e-01 +4.10000000000000e-01 2.46206393590000e-01 +4.20000000000000e-01 2.46839573720000e-01 +4.30000000000000e-01 2.47155007110000e-01 +4.40000000000000e-01 2.47152561650000e-01 +4.50000000000000e-01 2.46832486670000e-01 +4.60000000000000e-01 2.46195408140000e-01 +4.70000000000000e-01 2.45242323410000e-01 +4.80000000000000e-01 2.43974595410000e-01 +4.90000000000000e-01 2.42393946340000e-01 +5.00000000000000e-01 2.40502450930000e-01 +5.10000000000000e-01 2.38302529190000e-01 +5.20000000000000e-01 2.35796938750000e-01 +5.30000000000000e-01 2.32988766840000e-01 +5.40000000000000e-01 2.29881421770000e-01 +5.50000000000000e-01 2.26478624140000e-01 +5.60000000000000e-01 2.22784397660000e-01 +5.70000000000000e-01 2.18803059620000e-01 +5.80000000000000e-01 2.14539211100000e-01 +5.90000000000000e-01 2.09997726880000e-01 +6.00000000000000e-01 2.05183745050000e-01 +6.10000000000000e-01 2.00102656420000e-01 +6.20000000000000e-01 1.94760093670000e-01 +6.30000000000000e-01 1.89161920340000e-01 +6.40000000000000e-01 1.83314219560000e-01 +6.50000000000000e-01 1.77223282710000e-01 +6.60000000000000e-01 1.70895597850000e-01 +6.70000000000000e-01 1.64337838060000e-01 +6.80000000000000e-01 1.57556849670000e-01 +6.90000000000000e-01 1.50559640400000e-01 +7.00000000000000e-01 1.43353367390000e-01 +7.10000000000000e-01 1.35945325270000e-01 +7.20000000000000e-01 1.28342934060000e-01 +7.30000000000000e-01 1.20553727150000e-01 +7.40000000000000e-01 1.12585339260000e-01 +7.50000000000000e-01 1.04445494380000e-01 +7.60000000000000e-01 9.61419937530000e-02 +7.70000000000000e-01 8.76827039650000e-02 +7.80000000000000e-01 7.90755449980000e-02 +7.90000000000000e-01 7.03284784480000e-02 +8.00000000000000e-01 6.14494958030000e-02 +8.10000000000000e-01 5.24466068470000e-02 +8.20000000000000e-01 4.33278281910000e-02 +8.30000000000000e-01 3.41011719550000e-02 +8.40000000000000e-01 2.47746346060000e-02 +8.50000000000000e-01 1.53561859900000e-02 +8.60000000000000e-01 5.85375853840000e-03 +8.70000000000000e-01 -3.72476329300000e-03 +8.80000000000000e-01 -1.33715533740000e-02 +8.90000000000000e-01 -2.30788540030000e-02 +9.00000000000000e-01 -3.28389857450000e-02 +9.10000000000000e-01 -4.26443570120000e-02 +9.20000000000000e-01 -5.24874733430000e-02 +9.30000000000000e-01 -6.23609463900000e-02 +9.40000000000000e-01 -7.22575025810000e-02 +9.50000000000000e-01 -8.21699914630000e-02 +9.60000000000000e-01 -9.20913936920000e-02 +9.70000000000000e-01 -1.02014828670000e-01 +9.80000000000000e-01 -1.11933561840000e-01 +9.90000000000000e-01 -1.21841011520000e-01 +1.00000000000000e+00 -1.31730755460000e-01 +1.01000000000000e+00 -1.41596536930000e-01 +1.02000000000000e+00 -1.51432270370000e-01 +1.03000000000000e+00 -1.61232046700000e-01 +1.04000000000000e+00 -1.70990138140000e-01 +1.05000000000000e+00 -1.80701002620000e-01 +1.06000000000000e+00 -1.90359287740000e-01 +1.07000000000000e+00 -1.99959834300000e-01 +1.08000000000000e+00 -2.09497679380000e-01 +1.09000000000000e+00 -2.18968058900000e-01 +1.10000000000000e+00 -2.28366409880000e-01 +1.11000000000000e+00 -2.37688372070000e-01 +1.12000000000000e+00 -2.46929789240000e-01 +1.13000000000000e+00 -2.56086710000000e-01 +1.14000000000000e+00 -2.65155388140000e-01 +1.15000000000000e+00 -2.74132282550000e-01 +1.16000000000000e+00 -2.83014056720000e-01 +1.17000000000000e+00 -2.91797577780000e-01 +1.18000000000000e+00 -3.00479915140000e-01 +1.19000000000000e+00 -3.09058338700000e-01 +1.20000000000000e+00 -3.17530316710000e-01 +1.21000000000000e+00 -3.25893513150000e-01 +1.22000000000000e+00 -3.34145784870000e-01 +1.23000000000000e+00 -3.42285178260000e-01 +1.24000000000000e+00 -3.50309925600000e-01 +1.25000000000000e+00 -3.58218441170000e-01 +1.26000000000000e+00 -3.66009316920000e-01 +1.27000000000000e+00 -3.73681317960000e-01 +1.28000000000000e+00 -3.81233377770000e-01 +1.29000000000000e+00 -3.88664593090000e-01 +1.30000000000000e+00 -3.95974218660000e-01 +1.31000000000000e+00 -4.03161661740000e-01 +1.32000000000000e+00 -4.10226476440000e-01 +1.33000000000000e+00 -4.17168357910000e-01 +1.34000000000000e+00 -4.23987136350000e-01 +1.35000000000000e+00 -4.30682770970000e-01 +1.36000000000000e+00 -4.37255343820000e-01 +1.37000000000000e+00 -4.43705053600000e-01 +1.38000000000000e+00 -4.50032209360000e-01 +1.39000000000000e+00 -4.56237224240000e-01 +1.40000000000000e+00 -4.62320609200000e-01 +1.41000000000000e+00 -4.68282966780000e-01 +1.42000000000000e+00 -4.74124984870000e-01 +1.43000000000000e+00 -4.79847430640000e-01 +1.44000000000000e+00 -4.85451144430000e-01 +1.45000000000000e+00 -4.90937033850000e-01 +1.46000000000000e+00 -4.96306067990000e-01 +1.47000000000000e+00 -5.01559271730000e-01 +1.48000000000000e+00 -5.06697720240000e-01 +1.49000000000000e+00 -5.11722533660000e-01 +1.50000000000000e+00 -5.16634871940000e-01 +1.51000000000000e+00 -5.21435929910000e-01 +1.52000000000000e+00 -5.26126932550000e-01 +1.53000000000000e+00 -5.30709130450000e-01 +1.54000000000000e+00 -5.35183795560000e-01 +1.55000000000000e+00 -5.39552217080000e-01 +1.56000000000000e+00 -5.43815697720000e-01 +1.57000000000000e+00 -5.47975550090000e-01 +1.58000000000000e+00 -5.52033093350000e-01 +1.59000000000000e+00 -5.55989650190000e-01 +1.60000000000000e+00 -5.59846543940000e-01 +1.61000000000000e+00 -5.63605096020000e-01 +1.62000000000000e+00 -5.67266623580000e-01 +1.63000000000000e+00 -5.70832437360000e-01 +1.64000000000000e+00 -5.74303839850000e-01 +1.65000000000000e+00 -5.77682123590000e-01 +1.66000000000000e+00 -5.80968569760000e-01 +1.67000000000000e+00 -5.84164446890000e-01 +1.68000000000000e+00 -5.87271009910000e-01 +1.69000000000000e+00 -5.90289499180000e-01 +1.70000000000000e+00 -5.93221139930000e-01 +1.71000000000000e+00 -5.96067141640000e-01 +1.72000000000000e+00 -5.98828697780000e-01 +1.73000000000000e+00 -6.01506985490000e-01 +1.74000000000000e+00 -6.04103165580000e-01 +1.75000000000000e+00 -6.06618382490000e-01 +1.76000000000000e+00 -6.09053764420000e-01 +1.77000000000000e+00 -6.11410423560000e-01 +1.78000000000000e+00 -6.13689456390000e-01 +1.79000000000000e+00 -6.15891944000000e-01 +1.80000000000000e+00 -6.18018952500000e-01 +1.81000000000000e+00 -6.20071533470000e-01 +1.82000000000000e+00 -6.22050724460000e-01 +1.83000000000000e+00 -6.23957549430000e-01 +1.84000000000000e+00 -6.25793019280000e-01 +1.85000000000000e+00 -6.27558132350000e-01 +1.86000000000000e+00 -6.29253874930000e-01 +1.87000000000000e+00 -6.30881221690000e-01 +1.88000000000000e+00 -6.32441136190000e-01 +1.89000000000000e+00 -6.33934571280000e-01 +1.90000000000000e+00 -6.35362469510000e-01 +1.91000000000000e+00 -6.36725763510000e-01 +1.92000000000000e+00 -6.38025376280000e-01 +1.93000000000000e+00 -6.39262221540000e-01 +1.94000000000000e+00 -6.40437203880000e-01 +1.95000000000000e+00 -6.41551218770000e-01 +1.96000000000000e+00 -6.42605152610000e-01 +1.97000000000000e+00 -6.43599882680000e-01 +1.98000000000000e+00 -6.44536276960000e-01 +1.99000000000000e+00 -6.45415194270000e-01 +2.00000000000000e+00 -6.46237484450000e-01 +2.01000000000000e+00 -6.47003988410000e-01 +2.02000000000000e+00 -6.47715538100000e-01 +2.03000000000000e+00 -6.48372956500000e-01 +2.04000000000000e+00 -6.48977057680000e-01 +2.05000000000000e+00 -6.49528646920000e-01 +2.06000000000000e+00 -6.50028520730000e-01 +2.07000000000000e+00 -6.50477466880000e-01 +2.08000000000000e+00 -6.50876264510000e-01 +2.09000000000000e+00 -6.51225684130000e-01 +2.10000000000000e+00 -6.51526487730000e-01 +2.11000000000000e+00 -6.51779428830000e-01 +2.12000000000000e+00 -6.51985252520000e-01 +2.13000000000000e+00 -6.52144695570000e-01 +2.14000000000000e+00 -6.52258486450000e-01 +2.15000000000000e+00 -6.52327345440000e-01 +2.16000000000000e+00 -6.52351984670000e-01 +2.17000000000000e+00 -6.52333108190000e-01 +2.18000000000000e+00 -6.52271412040000e-01 +2.19000000000000e+00 -6.52167584350000e-01 +2.20000000000000e+00 -6.52022305350000e-01 +2.21000000000000e+00 -6.51836247500000e-01 +2.22000000000000e+00 -6.51610075500000e-01 +2.23000000000000e+00 -6.51344446430000e-01 +2.24000000000000e+00 -6.51040009740000e-01 +2.25000000000000e+00 -6.50697407390000e-01 +2.26000000000000e+00 -6.50317273880000e-01 +2.27000000000000e+00 -6.49900236320000e-01 +2.28000000000000e+00 -6.49446914500000e-01 +2.29000000000000e+00 -6.48957920990000e-01 +2.30000000000000e+00 -6.48433861150000e-01 +2.31000000000000e+00 -6.47875333250000e-01 +2.32000000000000e+00 -6.47282928520000e-01 +2.33000000000000e+00 -6.46657231190000e-01 +2.34000000000000e+00 -6.45998818610000e-01 +2.35000000000000e+00 -6.45308261270000e-01 +2.36000000000000e+00 -6.44586122870000e-01 +2.37000000000000e+00 -6.43832960430000e-01 +2.38000000000000e+00 -6.43049324310000e-01 +2.39000000000000e+00 -6.42235758270000e-01 +2.40000000000000e+00 -6.41392799570000e-01 +2.41000000000000e+00 -6.40520979010000e-01 +2.42000000000000e+00 -6.39620821020000e-01 +2.43000000000000e+00 -6.38692843660000e-01 +2.44000000000000e+00 -6.37737558760000e-01 +2.45000000000000e+00 -6.36755471930000e-01 +2.46000000000000e+00 -6.35747082650000e-01 +2.47000000000000e+00 -6.34712884300000e-01 +2.48000000000000e+00 -6.33653364270000e-01 +2.49000000000000e+00 -6.32569003970000e-01 +2.50000000000000e+00 -6.31460278910000e-01 +2.51000000000000e+00 -6.30327658760000e-01 +2.52000000000000e+00 -6.29171607430000e-01 +2.53000000000000e+00 -6.27992583080000e-01 +2.54000000000000e+00 -6.26791038220000e-01 +2.55000000000000e+00 -6.25567419750000e-01 +2.56000000000000e+00 -6.24322169020000e-01 +2.57000000000000e+00 -6.23055721890000e-01 +2.58000000000000e+00 -6.21768508780000e-01 +2.59000000000000e+00 -6.20460954730000e-01 +2.60000000000000e+00 -6.19133479460000e-01 +2.61000000000000e+00 -6.17786497410000e-01 +2.62000000000000e+00 -6.16420417800000e-01 +2.63000000000000e+00 -6.15035644720000e-01 +2.64000000000000e+00 -6.13632577100000e-01 +2.65000000000000e+00 -6.12211608860000e-01 +2.66000000000000e+00 -6.10773128890000e-01 +2.67000000000000e+00 -6.09317521140000e-01 +2.68000000000000e+00 -6.07845164650000e-01 +2.69000000000000e+00 -6.06356433640000e-01 +2.70000000000000e+00 -6.04851697480000e-01 +2.71000000000000e+00 -6.03331320850000e-01 +2.72000000000000e+00 -6.01795663700000e-01 +2.73000000000000e+00 -6.00245081330000e-01 +2.74000000000000e+00 -5.98679924460000e-01 +2.75000000000000e+00 -5.97100539230000e-01 +2.76000000000000e+00 -5.95507267310000e-01 +2.77000000000000e+00 -5.93900445880000e-01 +2.78000000000000e+00 -5.92280407750000e-01 +2.79000000000000e+00 -5.90647481330000e-01 +2.80000000000000e+00 -5.89001990720000e-01 +2.81000000000000e+00 -5.87344255780000e-01 +2.82000000000000e+00 -5.85674592100000e-01 +2.83000000000000e+00 -5.83993311120000e-01 +2.84000000000000e+00 -5.82300720120000e-01 +2.85000000000000e+00 -5.80597122310000e-01 +2.86000000000000e+00 -5.78882816840000e-01 +2.87000000000000e+00 -5.77158098830000e-01 +2.88000000000000e+00 -5.75423259460000e-01 +2.89000000000000e+00 -5.73678585990000e-01 +2.90000000000000e+00 -5.71924361780000e-01 +2.91000000000000e+00 -5.70160866350000e-01 +2.92000000000000e+00 -5.68388375420000e-01 +2.93000000000000e+00 -5.66607160970000e-01 +2.94000000000000e+00 -5.64817491230000e-01 +2.95000000000000e+00 -5.63019630750000e-01 +2.96000000000000e+00 -5.61213840460000e-01 +2.97000000000000e+00 -5.59400377670000e-01 +2.98000000000000e+00 -5.57579496120000e-01 +2.99000000000000e+00 -5.55751446010000e-01 +3.00000000000000e+00 -5.53916474080000e-01 +3.01000000000000e+00 -5.52074823580000e-01 +3.02000000000000e+00 -5.50226734360000e-01 +3.03000000000000e+00 -5.48372442880000e-01 +3.04000000000000e+00 -5.46512182250000e-01 +3.05000000000000e+00 -5.44646182270000e-01 +3.06000000000000e+00 -5.42774669450000e-01 +3.07000000000000e+00 -5.40897867070000e-01 +3.08000000000000e+00 -5.39015995200000e-01 +3.09000000000000e+00 -5.37129270710000e-01 +3.10000000000000e+00 -5.35237907360000e-01 +3.11000000000000e+00 -5.33342115760000e-01 +3.12000000000000e+00 -5.31442103480000e-01 +3.13000000000000e+00 -5.29538075010000e-01 +3.14000000000000e+00 -5.27630231850000e-01 +3.15000000000000e+00 -5.25718772510000e-01 +3.16000000000000e+00 -5.23803892530000e-01 +3.17000000000000e+00 -5.21885784550000e-01 +3.18000000000000e+00 -5.19964638320000e-01 +3.19000000000000e+00 -5.18040640700000e-01 +3.20000000000000e+00 -5.16113975760000e-01 +3.21000000000000e+00 -5.14184824730000e-01 +3.22000000000000e+00 -5.12253366090000e-01 +3.23000000000000e+00 -5.10319775580000e-01 +3.24000000000000e+00 -5.08384226210000e-01 +3.25000000000000e+00 -5.06446888310000e-01 +3.26000000000000e+00 -5.04507929540000e-01 +3.27000000000000e+00 -5.02567514960000e-01 +3.28000000000000e+00 -5.00625807000000e-01 +3.29000000000000e+00 -4.98682965520000e-01 +3.30000000000000e+00 -4.96739147830000e-01 +3.31000000000000e+00 -4.94794508740000e-01 +3.32000000000000e+00 -4.92849200520000e-01 +3.33000000000000e+00 -4.90903373020000e-01 +3.34000000000000e+00 -4.88957173620000e-01 +3.35000000000000e+00 -4.87010747280000e-01 +3.36000000000000e+00 -4.85064236580000e-01 +3.37000000000000e+00 -4.83117781730000e-01 +3.38000000000000e+00 -4.81171520610000e-01 +3.39000000000000e+00 -4.79225588760000e-01 +3.40000000000000e+00 -4.77280119470000e-01 +3.41000000000000e+00 -4.75335243720000e-01 +3.42000000000000e+00 -4.73391090270000e-01 +3.43000000000000e+00 -4.71447785670000e-01 +3.44000000000000e+00 -4.69505454260000e-01 +3.45000000000000e+00 -4.67564218210000e-01 +3.46000000000000e+00 -4.65624197570000e-01 +3.47000000000000e+00 -4.63685510240000e-01 +3.48000000000000e+00 -4.61748272040000e-01 +3.49000000000000e+00 -4.59812596700000e-01 +3.50000000000000e+00 -4.57878595910000e-01 +3.51000000000000e+00 -4.55946379320000e-01 +3.52000000000000e+00 -4.54016054580000e-01 +3.53000000000000e+00 -4.52087727350000e-01 +3.54000000000000e+00 -4.50161501340000e-01 +3.55000000000000e+00 -4.48237478310000e-01 +3.56000000000000e+00 -4.46315758110000e-01 +3.57000000000000e+00 -4.44396438680000e-01 +3.58000000000000e+00 -4.42479616110000e-01 +3.59000000000000e+00 -4.40565384610000e-01 +3.60000000000000e+00 -4.38653836580000e-01 +3.61000000000000e+00 -4.36745062620000e-01 +3.62000000000000e+00 -4.34839151510000e-01 +3.63000000000000e+00 -4.32936190280000e-01 +3.64000000000000e+00 -4.31036264230000e-01 +3.65000000000000e+00 -4.29139456920000e-01 +3.66000000000000e+00 -4.27245850190000e-01 +3.67000000000000e+00 -4.25355524240000e-01 +3.68000000000000e+00 -4.23468557550000e-01 +3.69000000000000e+00 -4.21585027020000e-01 +3.70000000000000e+00 -4.19705007870000e-01 +3.71000000000000e+00 -4.17828573760000e-01 +3.72000000000000e+00 -4.15955796740000e-01 +3.73000000000000e+00 -4.14086747320000e-01 +3.74000000000000e+00 -4.12221494460000e-01 +3.75000000000000e+00 -4.10360105570000e-01 +3.76000000000000e+00 -4.08502646600000e-01 +3.77000000000000e+00 -4.06649181980000e-01 +3.78000000000000e+00 -4.04799774710000e-01 +3.79000000000000e+00 -4.02954486300000e-01 +3.80000000000000e+00 -4.01113376860000e-01 +3.81000000000000e+00 -3.99276505100000e-01 +3.82000000000000e+00 -3.97443928320000e-01 +3.83000000000000e+00 -3.95615702450000e-01 +3.84000000000000e+00 -3.93791882070000e-01 +3.85000000000000e+00 -3.91972520450000e-01 +3.86000000000000e+00 -3.90157669490000e-01 +3.87000000000000e+00 -3.88347379850000e-01 +3.88000000000000e+00 -3.86541700870000e-01 +3.89000000000000e+00 -3.84740680630000e-01 +3.90000000000000e+00 -3.82944366000000e-01 +3.91000000000000e+00 -3.81152802570000e-01 +3.92000000000000e+00 -3.79366034760000e-01 +3.93000000000000e+00 -3.77584105780000e-01 +3.94000000000000e+00 -3.75807057660000e-01 +3.95000000000000e+00 -3.74034931290000e-01 +3.96000000000000e+00 -3.72267766400000e-01 +3.97000000000000e+00 -3.70505601600000e-01 +3.98000000000000e+00 -3.68748474380000e-01 +3.99000000000000e+00 -3.66996421170000e-01 +4.00000000000000e+00 -3.65249477280000e-01 +4.01000000000000e+00 -3.63507677000000e-01 +4.02000000000000e+00 -3.61771053540000e-01 +4.03000000000000e+00 -3.60039639110000e-01 +4.04000000000000e+00 -3.58313464900000e-01 +4.05000000000000e+00 -3.56592561090000e-01 +4.06000000000000e+00 -3.54876956900000e-01 +4.07000000000000e+00 -3.53166680560000e-01 +4.08000000000000e+00 -3.51461759360000e-01 +4.09000000000000e+00 -3.49762219660000e-01 +4.10000000000000e+00 -3.48068086900000e-01 +4.11000000000000e+00 -3.46379385590000e-01 +4.12000000000000e+00 -3.44696139380000e-01 +4.13000000000000e+00 -3.43018371030000e-01 +4.14000000000000e+00 -3.41346102420000e-01 +4.15000000000000e+00 -3.39679354610000e-01 +4.16000000000000e+00 -3.38018147800000e-01 +4.17000000000000e+00 -3.36362501390000e-01 +4.18000000000000e+00 -3.34712433960000e-01 +4.19000000000000e+00 -3.33067963300000e-01 +4.20000000000000e+00 -3.31429106420000e-01 +4.21000000000000e+00 -3.29795879560000e-01 +4.22000000000000e+00 -3.28168298210000e-01 +4.23000000000000e+00 -3.26546377110000e-01 +4.24000000000000e+00 -3.24930130290000e-01 +4.25000000000000e+00 -3.23319571060000e-01 +4.26000000000000e+00 -3.21714712010000e-01 +4.27000000000000e+00 -3.20115565060000e-01 +4.28000000000000e+00 -3.18522141450000e-01 +4.29000000000000e+00 -3.16934451740000e-01 +4.30000000000000e+00 -3.15352505850000e-01 +4.31000000000000e+00 -3.13776313050000e-01 +4.32000000000000e+00 -3.12205881990000e-01 +4.33000000000000e+00 -3.10641220690000e-01 +4.34000000000000e+00 -3.09082336580000e-01 +4.35000000000000e+00 -3.07529236480000e-01 +4.36000000000000e+00 -3.05981926620000e-01 +4.37000000000000e+00 -3.04440412670000e-01 +4.38000000000000e+00 -3.02904699740000e-01 +4.39000000000000e+00 -3.01374792370000e-01 +4.40000000000000e+00 -2.99850694590000e-01 +4.41000000000000e+00 -2.98332409850000e-01 +4.42000000000000e+00 -2.96819941130000e-01 +4.43000000000000e+00 -2.95313290880000e-01 +4.44000000000000e+00 -2.93812461040000e-01 +4.45000000000000e+00 -2.92317453060000e-01 +4.46000000000000e+00 -2.90828267940000e-01 +4.47000000000000e+00 -2.89344906180000e-01 +4.48000000000000e+00 -2.87867367810000e-01 +4.49000000000000e+00 -2.86395652450000e-01 +4.50000000000000e+00 -2.84929759230000e-01 +4.51000000000000e+00 -2.83469686870000e-01 +4.52000000000000e+00 -2.82015433680000e-01 +4.53000000000000e+00 -2.80566997520000e-01 +4.54000000000000e+00 -2.79124375870000e-01 +4.55000000000000e+00 -2.77687565800000e-01 +4.56000000000000e+00 -2.76256564000000e-01 +4.57000000000000e+00 -2.74831366760000e-01 +4.58000000000000e+00 -2.73411970000000e-01 +4.59000000000000e+00 -2.71998369310000e-01 +4.60000000000000e+00 -2.70590559870000e-01 +4.61000000000000e+00 -2.69188536540000e-01 +4.62000000000000e+00 -2.67792293850000e-01 +4.63000000000000e+00 -2.66401825960000e-01 +4.64000000000000e+00 -2.65017126740000e-01 +4.65000000000000e+00 -2.63638189710000e-01 +4.66000000000000e+00 -2.62265008110000e-01 +4.67000000000000e+00 -2.60897574840000e-01 +4.68000000000000e+00 -2.59535882520000e-01 +4.69000000000000e+00 -2.58179923500000e-01 +4.70000000000000e+00 -2.56829689800000e-01 +4.71000000000000e+00 -2.55485173210000e-01 +4.72000000000000e+00 -2.54146365210000e-01 +4.73000000000000e+00 -2.52813257040000e-01 +4.74000000000000e+00 -2.51485839670000e-01 +4.75000000000000e+00 -2.50164103830000e-01 +4.76000000000000e+00 -2.48848039990000e-01 +4.77000000000000e+00 -2.47537638400000e-01 +4.78000000000000e+00 -2.46232889050000e-01 +4.79000000000000e+00 -2.44933781720000e-01 +4.80000000000000e+00 -2.43640305970000e-01 +4.81000000000000e+00 -2.42352451130000e-01 +4.82000000000000e+00 -2.41070206340000e-01 +4.83000000000000e+00 -2.39793560510000e-01 +4.84000000000000e+00 -2.38522502360000e-01 +4.85000000000000e+00 -2.37257020430000e-01 +4.86000000000000e+00 -2.35997103050000e-01 +4.87000000000000e+00 -2.34742738370000e-01 +4.88000000000000e+00 -2.33493914370000e-01 +4.89000000000000e+00 -2.32250618840000e-01 +4.90000000000000e+00 -2.31012839410000e-01 +4.91000000000000e+00 -2.29780563540000e-01 +4.92000000000000e+00 -2.28553778540000e-01 +4.93000000000000e+00 -2.27332471560000e-01 +4.94000000000000e+00 -2.26116629570000e-01 +4.95000000000000e+00 -2.24906239450000e-01 +4.96000000000000e+00 -2.23701287870000e-01 +4.97000000000000e+00 -2.22501761420000e-01 +4.98000000000000e+00 -2.21307646510000e-01 +4.99000000000000e+00 -2.20118929460000e-01 +5.00000000000000e+00 -2.18935596420000e-01 +5.01000000000000e+00 -2.17757633450000e-01 +5.02000000000000e+00 -2.16585026480000e-01 +5.03000000000000e+00 -2.15417761320000e-01 +5.04000000000000e+00 -2.14255823680000e-01 +5.05000000000000e+00 -2.13099199140000e-01 +5.06000000000000e+00 -2.11947873190000e-01 +5.07000000000000e+00 -2.10801831230000e-01 +5.08000000000000e+00 -2.09661058540000e-01 +5.09000000000000e+00 -2.08525540320000e-01 +5.10000000000000e+00 -2.07395261670000e-01 +5.11000000000000e+00 -2.06270207600000e-01 +5.12000000000000e+00 -2.05150363050000e-01 +5.13000000000000e+00 -2.04035712850000e-01 +5.14000000000000e+00 -2.02926241790000e-01 +5.15000000000000e+00 -2.01821934540000e-01 +5.16000000000000e+00 -2.00722775730000e-01 +5.17000000000000e+00 -1.99628749900000e-01 +5.18000000000000e+00 -1.98539841530000e-01 +5.19000000000000e+00 -1.97456035040000e-01 +5.20000000000000e+00 -1.96377314780000e-01 +5.21000000000000e+00 -1.95303665030000e-01 +5.22000000000000e+00 -1.94235070030000e-01 +5.23000000000000e+00 -1.93171513950000e-01 +5.24000000000000e+00 -1.92112980930000e-01 +5.25000000000000e+00 -1.91059455030000e-01 +5.26000000000000e+00 -1.90010920270000e-01 +5.27000000000000e+00 -1.88967360640000e-01 +5.28000000000000e+00 -1.87928760070000e-01 +5.29000000000000e+00 -1.86895102460000e-01 +5.30000000000000e+00 -1.85866371660000e-01 +5.31000000000000e+00 -1.84842551480000e-01 +5.32000000000000e+00 -1.83823625700000e-01 +5.33000000000000e+00 -1.82809578080000e-01 +5.34000000000000e+00 -1.81800392320000e-01 +5.35000000000000e+00 -1.80796052100000e-01 +5.36000000000000e+00 -1.79796541100000e-01 +5.37000000000000e+00 -1.78801842920000e-01 +5.38000000000000e+00 -1.77811941190000e-01 +5.39000000000000e+00 -1.76826819480000e-01 +5.40000000000000e+00 -1.75846461360000e-01 +5.41000000000000e+00 -1.74870850360000e-01 +5.42000000000000e+00 -1.73899970000000e-01 +5.43000000000000e+00 -1.72933803800000e-01 +5.44000000000000e+00 -1.71972335240000e-01 +5.45000000000000e+00 -1.71015547810000e-01 +5.46000000000000e+00 -1.70063424960000e-01 +5.47000000000000e+00 -1.69115950160000e-01 +5.48000000000000e+00 -1.68173106840000e-01 +5.49000000000000e+00 -1.67234878450000e-01 +5.50000000000000e+00 -1.66301248410000e-01 +5.51000000000000e+00 -1.65372200150000e-01 +5.52000000000000e+00 -1.64447717090000e-01 +5.53000000000000e+00 -1.63527782640000e-01 +5.54000000000000e+00 -1.62612380230000e-01 +5.55000000000000e+00 -1.61701493260000e-01 +5.56000000000000e+00 -1.60795105160000e-01 +5.57000000000000e+00 -1.59893199330000e-01 +5.58000000000000e+00 -1.58995759200000e-01 +5.59000000000000e+00 -1.58102768190000e-01 +5.60000000000000e+00 -1.57214209720000e-01 +5.61000000000000e+00 -1.56330067240000e-01 +5.62000000000000e+00 -1.55450324170000e-01 +5.63000000000000e+00 -1.54574963960000e-01 +5.64000000000000e+00 -1.53703970070000e-01 +5.65000000000000e+00 -1.52837325970000e-01 +5.66000000000000e+00 -1.51975015120000e-01 +5.67000000000000e+00 -1.51117021020000e-01 +5.68000000000000e+00 -1.50263327160000e-01 +5.69000000000000e+00 -1.49413917040000e-01 +5.70000000000000e+00 -1.48568774200000e-01 +5.71000000000000e+00 -1.47727882170000e-01 +5.72000000000000e+00 -1.46891224510000e-01 +5.73000000000000e+00 -1.46058784780000e-01 +5.74000000000000e+00 -1.45230546560000e-01 +5.75000000000000e+00 -1.44406493460000e-01 +5.76000000000000e+00 -1.43586609090000e-01 +5.77000000000000e+00 -1.42770877100000e-01 +5.78000000000000e+00 -1.41959281150000e-01 +5.79000000000000e+00 -1.41151804900000e-01 +5.80000000000000e+00 -1.40348432060000e-01 +5.81000000000000e+00 -1.39549146340000e-01 +5.82000000000000e+00 -1.38753931480000e-01 +5.83000000000000e+00 -1.37962771250000e-01 +5.84000000000000e+00 -1.37175649420000e-01 +5.85000000000000e+00 -1.36392549810000e-01 +5.86000000000000e+00 -1.35613456240000e-01 +5.87000000000000e+00 -1.34838352580000e-01 +5.88000000000000e+00 -1.34067222700000e-01 +5.89000000000000e+00 -1.33300050500000e-01 +5.90000000000000e+00 -1.32536819920000e-01 +5.91000000000000e+00 -1.31777514900000e-01 +5.92000000000000e+00 -1.31022119450000e-01 +5.93000000000000e+00 -1.30270617560000e-01 +5.94000000000000e+00 -1.29522993270000e-01 +5.95000000000000e+00 -1.28779230650000e-01 +5.96000000000000e+00 -1.28039313790000e-01 +5.97000000000000e+00 -1.27303226820000e-01 +5.98000000000000e+00 -1.26570953880000e-01 +5.99000000000000e+00 -1.25842479150000e-01 +6.00000000000000e+00 -1.25117786850000e-01 +6.01000000000000e+00 -1.24396861220000e-01 +6.02000000000000e+00 -1.23679686520000e-01 +6.03000000000000e+00 -1.22966247060000e-01 +6.04000000000000e+00 -1.22256527170000e-01 +6.05000000000000e+00 -1.21550511210000e-01 +6.06000000000000e+00 -1.20848183590000e-01 +6.07000000000000e+00 -1.20149528720000e-01 +6.08000000000000e+00 -1.19454531070000e-01 +6.09000000000000e+00 -1.18763175130000e-01 +6.10000000000000e+00 -1.18075445430000e-01 +6.11000000000000e+00 -1.17391326530000e-01 +6.12000000000000e+00 -1.16710803020000e-01 +6.13000000000000e+00 -1.16033859520000e-01 +6.14000000000000e+00 -1.15360480690000e-01 +6.15000000000000e+00 -1.14690651240000e-01 +6.16000000000000e+00 -1.14024355880000e-01 +6.17000000000000e+00 -1.13361579380000e-01 +6.18000000000000e+00 -1.12702306550000e-01 +6.19000000000000e+00 -1.12046522210000e-01 +6.20000000000000e+00 -1.11394211240000e-01 +6.21000000000000e+00 -1.10745358530000e-01 +6.22000000000000e+00 -1.10099949040000e-01 +6.23000000000000e+00 -1.09457967730000e-01 +6.24000000000000e+00 -1.08819399610000e-01 +6.25000000000000e+00 -1.08184229750000e-01 +6.26000000000000e+00 -1.07552443220000e-01 +6.27000000000000e+00 -1.06924025150000e-01 +6.28000000000000e+00 -1.06298960700000e-01 +6.29000000000000e+00 -1.05677235060000e-01 +6.30000000000000e+00 -1.05058833460000e-01 +6.31000000000000e+00 -1.04443741190000e-01 +6.32000000000000e+00 -1.03831943550000e-01 +6.33000000000000e+00 -1.03223425880000e-01 +6.34000000000000e+00 -1.02618173570000e-01 +6.35000000000000e+00 -1.02016172050000e-01 +6.36000000000000e+00 -1.01417406780000e-01 +6.37000000000000e+00 -1.00821863250000e-01 +6.38000000000000e+00 -1.00229527010000e-01 +6.39000000000000e+00 -9.96403836280000e-02 +6.40000000000000e+00 -9.90544187270000e-02 +6.41000000000000e+00 -9.84716179590000e-02 +6.42000000000000e+00 -9.78919670190000e-02 +6.43000000000000e+00 -9.73154516410000e-02 +6.44000000000000e+00 -9.67420575960000e-02 +6.45000000000000e+00 -9.61717706970000e-02 +6.46000000000000e+00 -9.56045767970000e-02 +6.47000000000000e+00 -9.50404617850000e-02 +6.48000000000000e+00 -9.44794115940000e-02 +6.49000000000000e+00 -9.39214121950000e-02 +6.50000000000000e+00 -9.33664495980000e-02 +6.51000000000000e+00 -9.28145098550000e-02 +6.52000000000000e+00 -9.22655790580000e-02 +6.53000000000000e+00 -9.17196433380000e-02 +6.54000000000000e+00 -9.11766888660000e-02 +6.55000000000000e+00 -9.06367018570000e-02 +6.56000000000000e+00 -9.00996685620000e-02 +6.57000000000000e+00 -8.95655752760000e-02 +6.58000000000000e+00 -8.90344083330000e-02 +6.59000000000000e+00 -8.85061541090000e-02 +6.60000000000000e+00 -8.79807990190000e-02 +6.61000000000000e+00 -8.74583295210000e-02 +6.62000000000000e+00 -8.69387321120000e-02 +6.63000000000000e+00 -8.64219933340000e-02 +6.64000000000000e+00 -8.59080997650000e-02 +6.65000000000000e+00 -8.53970380280000e-02 +6.66000000000000e+00 -8.48887947850000e-02 +6.67000000000000e+00 -8.43833567420000e-02 +6.68000000000000e+00 -8.38807106430000e-02 +6.69000000000000e+00 -8.33808432770000e-02 +6.70000000000000e+00 -8.28837414730000e-02 +6.71000000000000e+00 -8.23893921000000e-02 +6.72000000000000e+00 -8.18977820720000e-02 +6.73000000000000e+00 -8.14088983410000e-02 +6.74000000000000e+00 -8.09227279050000e-02 +6.75000000000000e+00 -8.04392577990000e-02 +6.76000000000000e+00 -7.99584751050000e-02 +6.77000000000000e+00 -7.94803669410000e-02 +6.78000000000000e+00 -7.90049204730000e-02 +6.79000000000000e+00 -7.85321229060000e-02 +6.80000000000000e+00 -7.80619614850000e-02 +6.81000000000000e+00 -7.75944235010000e-02 +6.82000000000000e+00 -7.71294962850000e-02 +6.83000000000000e+00 -7.66671672100000e-02 +6.84000000000000e+00 -7.62074236930000e-02 +6.85000000000000e+00 -7.57502531900000e-02 +6.86000000000000e+00 -7.52956432010000e-02 +6.87000000000000e+00 -7.48435812700000e-02 +6.88000000000000e+00 -7.43940549800000e-02 +6.89000000000000e+00 -7.39470519580000e-02 +6.90000000000000e+00 -7.35025598740000e-02 +6.91000000000000e+00 -7.30605664380000e-02 +6.92000000000000e+00 -7.26210594040000e-02 +6.93000000000000e+00 -7.21840265690000e-02 +6.94000000000000e+00 -7.17494557710000e-02 +6.95000000000000e+00 -7.13173348900000e-02 +6.96000000000000e+00 -7.08876518510000e-02 +6.97000000000000e+00 -7.04603946180000e-02 +6.98000000000000e+00 -7.00355511990000e-02 +6.99000000000000e+00 -6.96131096460000e-02 +7.00000000000000e+00 -6.91930580510000e-02 +7.01000000000000e+00 -6.87753845500000e-02 +7.02000000000000e+00 -6.83600773190000e-02 +7.03000000000000e+00 -6.79471245800000e-02 +7.04000000000000e+00 -6.75365145950000e-02 +7.05000000000000e+00 -6.71282356690000e-02 +7.06000000000000e+00 -6.67222761500000e-02 +7.07000000000000e+00 -6.63186244270000e-02 +7.08000000000000e+00 -6.59172689330000e-02 +7.09000000000000e+00 -6.55181981430000e-02 +7.10000000000000e+00 -6.51214005730000e-02 +7.11000000000000e+00 -6.47268647840000e-02 +7.12000000000000e+00 -6.43345793770000e-02 +7.13000000000000e+00 -6.39445329970000e-02 +7.14000000000000e+00 -6.35567143290000e-02 +7.15000000000000e+00 -6.31711121040000e-02 +7.16000000000000e+00 -6.27877150930000e-02 +7.17000000000000e+00 -6.24065121080000e-02 +7.18000000000000e+00 -6.20274920060000e-02 +7.19000000000000e+00 -6.16506436860000e-02 +7.20000000000000e+00 -6.12759560860000e-02 +7.21000000000000e+00 -6.09034181910000e-02 +7.22000000000000e+00 -6.05330190240000e-02 +7.23000000000000e+00 -6.01647476530000e-02 +7.24000000000000e+00 -5.97985931860000e-02 +7.25000000000000e+00 -5.94345447750000e-02 +7.26000000000000e+00 -5.90725916130000e-02 +7.27000000000000e+00 -5.87127229360000e-02 +7.28000000000000e+00 -5.83549280190000e-02 +7.29000000000000e+00 -5.79991961830000e-02 +7.30000000000000e+00 -5.76455167890000e-02 +7.31000000000000e+00 -5.72938792400000e-02 +7.32000000000000e+00 -5.69442729810000e-02 +7.33000000000000e+00 -5.65966874970000e-02 +7.34000000000000e+00 -5.62511123190000e-02 +7.35000000000000e+00 -5.59075370160000e-02 +7.36000000000000e+00 -5.55659512000000e-02 +7.37000000000000e+00 -5.52263445250000e-02 +7.38000000000000e+00 -5.48887066860000e-02 +7.39000000000000e+00 -5.45530274190000e-02 +7.40000000000000e+00 -5.42192965030000e-02 +7.41000000000000e+00 -5.38875037580000e-02 +7.42000000000000e+00 -5.35576390440000e-02 +7.43000000000000e+00 -5.32296922650000e-02 +7.44000000000000e+00 -5.29036533640000e-02 +7.45000000000000e+00 -5.25795123250000e-02 +7.46000000000000e+00 -5.22572591770000e-02 +7.47000000000000e+00 -5.19368839850000e-02 +7.48000000000000e+00 -5.16183768580000e-02 +7.49000000000000e+00 -5.13017279460000e-02 +7.50000000000000e+00 -5.09869274400000e-02 +7.51000000000000e+00 -5.06739655710000e-02 +7.52000000000000e+00 -5.03628326100000e-02 +7.53000000000000e+00 -5.00535188720000e-02 +7.54000000000000e+00 -4.97460147100000e-02 +7.55000000000000e+00 -4.94403105180000e-02 +7.56000000000000e+00 -4.91363967320000e-02 +7.57000000000000e+00 -4.88342638270000e-02 +7.58000000000000e+00 -4.85339023200000e-02 +7.59000000000000e+00 -4.82353027660000e-02 +7.60000000000000e+00 -4.79384557630000e-02 +7.61000000000000e+00 -4.76433519470000e-02 +7.62000000000000e+00 -4.73499819970000e-02 +7.63000000000000e+00 -4.70583366290000e-02 +7.64000000000000e+00 -4.67684066010000e-02 +7.65000000000000e+00 -4.64801827100000e-02 +7.66000000000000e+00 -4.61936557940000e-02 +7.67000000000000e+00 -4.59088167300000e-02 +7.68000000000000e+00 -4.56256564340000e-02 +7.69000000000000e+00 -4.53441658640000e-02 +7.70000000000000e+00 -4.50643360160000e-02 +7.71000000000000e+00 -4.47861579250000e-02 +7.72000000000000e+00 -4.45096226660000e-02 +7.73000000000000e+00 -4.42347213540000e-02 +7.74000000000000e+00 -4.39614451430000e-02 +7.75000000000000e+00 -4.36897852260000e-02 +7.76000000000000e+00 -4.34197328350000e-02 +7.77000000000000e+00 -4.31512792410000e-02 +7.78000000000000e+00 -4.28844157530000e-02 +7.79000000000000e+00 -4.26191337220000e-02 +7.80000000000000e+00 -4.23554245350000e-02 +7.81000000000000e+00 -4.20932796180000e-02 +7.82000000000000e+00 -4.18326904360000e-02 +7.83000000000000e+00 -4.15736484930000e-02 +7.84000000000000e+00 -4.13161453310000e-02 +7.85000000000000e+00 -4.10601725300000e-02 +7.86000000000000e+00 -4.08057217080000e-02 +7.87000000000000e+00 -4.05527845230000e-02 +7.88000000000000e+00 -4.03013526680000e-02 +7.89000000000000e+00 -4.00514178780000e-02 +7.90000000000000e+00 -3.98029719220000e-02 +7.91000000000000e+00 -3.95560066090000e-02 +7.92000000000000e+00 -3.93105137850000e-02 +7.93000000000000e+00 -3.90664853330000e-02 +7.94000000000000e+00 -3.88239131760000e-02 +7.95000000000000e+00 -3.85827892710000e-02 +7.96000000000000e+00 -3.83431056140000e-02 +7.97000000000000e+00 -3.81048542390000e-02 +7.98000000000000e+00 -3.78680272160000e-02 +7.99000000000000e+00 -3.76326166510000e-02 +8.00000000000000e+00 -3.73986146910000e-02 +8.01000000000000e+00 -3.71660135140000e-02 +8.02000000000000e+00 -3.69348053400000e-02 +8.03000000000000e+00 -3.67049824220000e-02 +8.04000000000000e+00 -3.64765370510000e-02 +8.05000000000000e+00 -3.62494615550000e-02 +8.06000000000000e+00 -3.60237482970000e-02 +8.07000000000000e+00 -3.57993896770000e-02 +8.08000000000000e+00 -3.55763781310000e-02 +8.09000000000000e+00 -3.53547061310000e-02 +8.10000000000000e+00 -3.51343661850000e-02 +8.11000000000000e+00 -3.49153508360000e-02 +8.12000000000000e+00 -3.46976526640000e-02 +8.13000000000000e+00 -3.44812642840000e-02 +8.14000000000000e+00 -3.42661783450000e-02 +8.15000000000000e+00 -3.40523875350000e-02 +8.16000000000000e+00 -3.38398845740000e-02 +8.17000000000000e+00 -3.36286622180000e-02 +8.18000000000000e+00 -3.34187132580000e-02 +8.19000000000000e+00 -3.32100305210000e-02 +8.20000000000000e+00 -3.30026068680000e-02 +8.21000000000000e+00 -3.27964351950000e-02 +8.22000000000000e+00 -3.25915084320000e-02 +8.23000000000000e+00 -3.23878195440000e-02 +8.24000000000000e+00 -3.21853615310000e-02 +8.25000000000000e+00 -3.19841274260000e-02 +8.26000000000000e+00 -3.17841102960000e-02 +8.27000000000000e+00 -3.15853032450000e-02 +8.28000000000000e+00 -3.13876994080000e-02 +8.29000000000000e+00 -3.11912919550000e-02 +8.30000000000000e+00 -3.09960740880000e-02 +8.31000000000000e+00 -3.08020390460000e-02 +8.32000000000000e+00 -3.06091800990000e-02 +8.33000000000000e+00 -3.04174905520000e-02 +8.34000000000000e+00 -3.02269637410000e-02 +8.35000000000000e+00 -3.00375930370000e-02 +8.36000000000000e+00 -2.98493718440000e-02 +8.37000000000000e+00 -2.96622935980000e-02 +8.38000000000000e+00 -2.94763517690000e-02 +8.39000000000000e+00 -2.92915398600000e-02 +8.40000000000000e+00 -2.91078514040000e-02 +8.41000000000000e+00 -2.89252799700000e-02 +8.42000000000000e+00 -2.87438191570000e-02 +8.43000000000000e+00 -2.85634625970000e-02 +8.44000000000000e+00 -2.83842039550000e-02 +8.45000000000000e+00 -2.82060369260000e-02 +8.46000000000000e+00 -2.80289552390000e-02 +8.47000000000000e+00 -2.78529526530000e-02 +8.48000000000000e+00 -2.76780229610000e-02 +8.49000000000000e+00 -2.75041599860000e-02 +8.50000000000000e+00 -2.73313575830000e-02 +8.51000000000000e+00 -2.71596096380000e-02 +8.52000000000000e+00 -2.69889100680000e-02 +8.53000000000000e+00 -2.68192528220000e-02 +8.54000000000000e+00 -2.66506318800000e-02 +8.55000000000000e+00 -2.64830412510000e-02 +8.56000000000000e+00 -2.63164749780000e-02 +8.57000000000000e+00 -2.61509271320000e-02 +8.58000000000000e+00 -2.59863918160000e-02 +8.59000000000000e+00 -2.58228631630000e-02 +8.60000000000000e+00 -2.56603353360000e-02 +8.61000000000000e+00 -2.54988025290000e-02 +8.62000000000000e+00 -2.53382589650000e-02 +8.63000000000000e+00 -2.51786988980000e-02 +8.64000000000000e+00 -2.50201166110000e-02 +8.65000000000000e+00 -2.48625064180000e-02 +8.66000000000000e+00 -2.47058626610000e-02 +8.67000000000000e+00 -2.45501797140000e-02 +8.68000000000000e+00 -2.43954519770000e-02 +8.69000000000000e+00 -2.42416738810000e-02 +8.70000000000000e+00 -2.40888398880000e-02 +8.71000000000000e+00 -2.39369444860000e-02 +8.72000000000000e+00 -2.37859821940000e-02 +8.73000000000000e+00 -2.36359475580000e-02 +8.74000000000000e+00 -2.34868351550000e-02 +8.75000000000000e+00 -2.33386395880000e-02 +8.76000000000000e+00 -2.31913554920000e-02 +8.77000000000000e+00 -2.30449775260000e-02 +8.78000000000000e+00 -2.28995003810000e-02 +8.79000000000000e+00 -2.27549187730000e-02 +8.80000000000000e+00 -2.26112274500000e-02 +8.81000000000000e+00 -2.24684211840000e-02 +8.82000000000000e+00 -2.23264947760000e-02 +8.83000000000000e+00 -2.21854430560000e-02 +8.84000000000000e+00 -2.20452608790000e-02 +8.85000000000000e+00 -2.19059431310000e-02 +8.86000000000000e+00 -2.17674847230000e-02 +8.87000000000000e+00 -2.16298805920000e-02 +8.88000000000000e+00 -2.14931257060000e-02 +8.89000000000000e+00 -2.13572150550000e-02 +8.90000000000000e+00 -2.12221436600000e-02 +8.91000000000000e+00 -2.10879065680000e-02 +8.92000000000000e+00 -2.09544988500000e-02 +8.93000000000000e+00 -2.08219156070000e-02 +8.94000000000000e+00 -2.06901519640000e-02 +8.95000000000000e+00 -2.05592030740000e-02 +8.96000000000000e+00 -2.04290641150000e-02 +8.97000000000000e+00 -2.02997302910000e-02 +8.98000000000000e+00 -2.01711968320000e-02 +8.99000000000000e+00 -2.00434589950000e-02 +9.00000000000000e+00 -1.99165120630000e-02 +9.01000000000000e+00 -1.97903513420000e-02 +9.02000000000000e+00 -1.96649721650000e-02 +9.03000000000000e+00 -1.95403698920000e-02 +9.04000000000000e+00 -1.94165399060000e-02 +9.05000000000000e+00 -1.92934776150000e-02 +9.06000000000000e+00 -1.91711784550000e-02 +9.07000000000000e+00 -1.90496378840000e-02 +9.08000000000000e+00 -1.89288513850000e-02 +9.09000000000000e+00 -1.88088144690000e-02 +9.10000000000000e+00 -1.86895226670000e-02 +9.11000000000000e+00 -1.85709715370000e-02 +9.12000000000000e+00 -1.84531566620000e-02 +9.13000000000000e+00 -1.83360736480000e-02 +9.14000000000000e+00 -1.82197181260000e-02 +9.15000000000000e+00 -1.81040857500000e-02 +9.16000000000000e+00 -1.79891721980000e-02 +9.17000000000000e+00 -1.78749731750000e-02 +9.18000000000000e+00 -1.77614844040000e-02 +9.19000000000000e+00 -1.76487016370000e-02 +9.20000000000000e+00 -1.75366206470000e-02 +9.21000000000000e+00 -1.74252372310000e-02 +9.22000000000000e+00 -1.73145472080000e-02 +9.23000000000000e+00 -1.72045464220000e-02 +9.24000000000000e+00 -1.70952307400000e-02 +9.25000000000000e+00 -1.69865960510000e-02 +9.26000000000000e+00 -1.68786382660000e-02 +9.27000000000000e+00 -1.67713533210000e-02 +9.28000000000000e+00 -1.66647371750000e-02 +9.29000000000000e+00 -1.65587858060000e-02 +9.30000000000000e+00 -1.64534952180000e-02 +9.31000000000000e+00 -1.63488614370000e-02 +9.32000000000000e+00 -1.62448805080000e-02 +9.33000000000000e+00 -1.61415485030000e-02 +9.34000000000000e+00 -1.60388615110000e-02 +9.35000000000000e+00 -1.59368156470000e-02 +9.36000000000000e+00 -1.58354070460000e-02 +9.37000000000000e+00 -1.57346318660000e-02 +9.38000000000000e+00 -1.56344862840000e-02 +9.39000000000000e+00 -1.55349665010000e-02 +9.40000000000000e+00 -1.54360687370000e-02 +9.41000000000000e+00 -1.53377892350000e-02 +9.42000000000000e+00 -1.52401242590000e-02 +9.43000000000000e+00 -1.51430700950000e-02 +9.44000000000000e+00 -1.50466230480000e-02 +9.45000000000000e+00 -1.49507794440000e-02 +9.46000000000000e+00 -1.48555356330000e-02 +9.47000000000000e+00 -1.47608879820000e-02 +9.48000000000000e+00 -1.46668328780000e-02 +9.49000000000000e+00 -1.45733667310000e-02 +9.50000000000000e+00 -1.44804859730000e-02 +9.51000000000000e+00 -1.43881870550000e-02 +9.52000000000000e+00 -1.42964664480000e-02 +9.53000000000000e+00 -1.42053206420000e-02 +9.54000000000000e+00 -1.41147461480000e-02 +9.55000000000000e+00 -1.40247394970000e-02 +9.56000000000000e+00 -1.39352972390000e-02 +9.57000000000000e+00 -1.38464159450000e-02 +9.58000000000000e+00 -1.37580922040000e-02 +9.59000000000000e+00 -1.36703226250000e-02 +9.60000000000000e+00 -1.35831038440000e-02 +9.61000000000000e+00 -1.34964325000000e-02 +9.62000000000000e+00 -1.34103052600000e-02 +9.63000000000000e+00 -1.33247188090000e-02 +9.64000000000000e+00 -1.32396698520000e-02 +9.65000000000000e+00 -1.31551551120000e-02 +9.66000000000000e+00 -1.30711713310000e-02 +9.67000000000000e+00 -1.29877152700000e-02 +9.68000000000000e+00 -1.29047837090000e-02 +9.69000000000000e+00 -1.28223734450000e-02 +9.70000000000000e+00 -1.27404812950000e-02 +9.71000000000000e+00 -1.26591040900000e-02 +9.72000000000000e+00 -1.25782386840000e-02 +9.73000000000000e+00 -1.24978819540000e-02 +9.74000000000000e+00 -1.24180307900000e-02 +9.75000000000000e+00 -1.23386821010000e-02 +9.76000000000000e+00 -1.22598328130000e-02 +9.77000000000000e+00 -1.21814798700000e-02 +9.78000000000000e+00 -1.21036202350000e-02 +9.79000000000000e+00 -1.20262508880000e-02 +9.80000000000000e+00 -1.19493688260000e-02 +9.81000000000000e+00 -1.18729710630000e-02 +9.82000000000000e+00 -1.17970546330000e-02 +9.83000000000000e+00 -1.17216165900000e-02 +9.84000000000000e+00 -1.16466539950000e-02 +9.85000000000000e+00 -1.15721639300000e-02 +9.86000000000000e+00 -1.14981434960000e-02 +9.87000000000000e+00 -1.14245898090000e-02 +9.88000000000000e+00 -1.13515000040000e-02 +9.89000000000000e+00 -1.12788712310000e-02 +9.90000000000000e+00 -1.12067006560000e-02 +9.91000000000000e+00 -1.11349854630000e-02 +9.92000000000000e+00 -1.10637228540000e-02 +9.93000000000000e+00 -1.09929100430000e-02 +9.94000000000000e+00 -1.09225442630000e-02 +9.95000000000000e+00 -1.08526227610000e-02 +9.96000000000000e+00 -1.07831428050000e-02 +9.97000000000000e+00 -1.07141016770000e-02 +9.98000000000000e+00 -1.06454966750000e-02 +9.99000000000000e+00 -1.05773251110000e-02 +1.00000000000000e+01 -1.05095843150000e-02 +1.00100000000000e+01 -1.04422716320000e-02 +1.00200000000000e+01 -1.03753844220000e-02 +1.00300000000000e+01 -1.03089200610000e-02 +1.00400000000000e+01 -1.02428759410000e-02 +1.00500000000000e+01 -1.01772494690000e-02 +1.00600000000000e+01 -1.01120380670000e-02 +1.00700000000000e+01 -1.00472391720000e-02 +1.00800000000000e+01 -9.98285023740000e-03 +1.00900000000000e+01 -9.91886872920000e-03 +1.01000000000000e+01 -9.85529213000000e-03 +1.01100000000000e+01 -9.79211793680000e-03 +1.01200000000000e+01 -9.72934366170000e-03 +1.01300000000000e+01 -9.66696683110000e-03 +1.01400000000000e+01 -9.60498498620000e-03 +1.01500000000000e+01 -9.54339568270000e-03 +1.01600000000000e+01 -9.48219649070000e-03 +1.01700000000000e+01 -9.42138499470000e-03 +1.01800000000000e+01 -9.36095879360000e-03 +1.01900000000000e+01 -9.30091550120000e-03 +1.02000000000000e+01 -9.24125274340000e-03 +1.02100000000000e+01 -9.18196816130000e-03 +1.02200000000000e+01 -9.12305940990000e-03 +1.02300000000000e+01 -9.06452415800000e-03 +1.02400000000000e+01 -9.00636008840000e-03 +1.02500000000000e+01 -8.94856489760000e-03 +1.02600000000000e+01 -8.89113629580000e-03 +1.02700000000000e+01 -8.83407200680000e-03 +1.02800000000000e+01 -8.77736976800000e-03 +1.02900000000000e+01 -8.72102733010000e-03 +1.03000000000000e+01 -8.66504245750000e-03 +1.03100000000000e+01 -8.60941292640000e-03 +1.03200000000000e+01 -8.55413652890000e-03 +1.03300000000000e+01 -8.49921106920000e-03 +1.03400000000000e+01 -8.44463436460000e-03 +1.03500000000000e+01 -8.39040424530000e-03 +1.03600000000000e+01 -8.33651855460000e-03 +1.03700000000000e+01 -8.28297514860000e-03 +1.03800000000000e+01 -8.22977189650000e-03 +1.03900000000000e+01 -8.17690668000000e-03 +1.04000000000000e+01 -8.12437739360000e-03 +1.04100000000000e+01 -8.07218194450000e-03 +1.04200000000000e+01 -8.02031825220000e-03 +1.04300000000000e+01 -7.96878424920000e-03 +1.04400000000000e+01 -7.91757787990000e-03 +1.04500000000000e+01 -7.86669710130000e-03 +1.04600000000000e+01 -7.81613988260000e-03 +1.04700000000000e+01 -7.76590420530000e-03 +1.04800000000000e+01 -7.71598806300000e-03 +1.04900000000000e+01 -7.66638946140000e-03 +1.05000000000000e+01 -7.61710641810000e-03 +1.05100000000000e+01 -7.56813696280000e-03 +1.05200000000000e+01 -7.51947913700000e-03 +1.05300000000000e+01 -7.47113099400000e-03 +1.05400000000000e+01 -7.42309059890000e-03 +1.05500000000000e+01 -7.37535602850000e-03 +1.05600000000000e+01 -7.32792537130000e-03 +1.05700000000000e+01 -7.28079672690000e-03 +1.05800000000000e+01 -7.23396820670000e-03 +1.05900000000000e+01 -7.18743793360000e-03 +1.06000000000000e+01 -7.14120404170000e-03 +1.06100000000000e+01 -7.09526467630000e-03 +1.06200000000000e+01 -7.04961799420000e-03 +1.06300000000000e+01 -7.00426216310000e-03 +1.06400000000000e+01 -6.95919536200000e-03 +1.06500000000000e+01 -6.91441578070000e-03 +1.06600000000000e+01 -6.86992162020000e-03 +1.06700000000000e+01 -6.82571109220000e-03 +1.06800000000000e+01 -6.78178241950000e-03 +1.06900000000000e+01 -6.73813383550000e-03 +1.07000000000000e+01 -6.69476358430000e-03 +1.07100000000000e+01 -6.65166992080000e-03 +1.07200000000000e+01 -6.60885111050000e-03 +1.07300000000000e+01 -6.56630542920000e-03 +1.07400000000000e+01 -6.52403116340000e-03 +1.07500000000000e+01 -6.48202661010000e-03 +1.07600000000000e+01 -6.44029007640000e-03 +1.07700000000000e+01 -6.39881987990000e-03 +1.07800000000000e+01 -6.35761434840000e-03 +1.07900000000000e+01 -6.31667181990000e-03 +1.08000000000000e+01 -6.27599064230000e-03 +1.08100000000000e+01 -6.23556917400000e-03 +1.08200000000000e+01 -6.19540578310000e-03 +1.08300000000000e+01 -6.15549884760000e-03 +1.08400000000000e+01 -6.11584675570000e-03 +1.08500000000000e+01 -6.07644790510000e-03 +1.08600000000000e+01 -6.03730070360000e-03 +1.08700000000000e+01 -5.99840356840000e-03 +1.08800000000000e+01 -5.95975492670000e-03 +1.08900000000000e+01 -5.92135321510000e-03 +1.09000000000000e+01 -5.88319687970000e-03 +1.09100000000000e+01 -5.84528437640000e-03 +1.09200000000000e+01 -5.80761417020000e-03 +1.09300000000000e+01 -5.77018473570000e-03 +1.09400000000000e+01 -5.73299455690000e-03 +1.09500000000000e+01 -5.69604212680000e-03 +1.09600000000000e+01 -5.65932594790000e-03 +1.09700000000000e+01 -5.62284453180000e-03 +1.09800000000000e+01 -5.58659639920000e-03 +1.09900000000000e+01 -5.55058007990000e-03 +1.10000000000000e+01 -5.51479411260000e-03 +1.10100000000000e+01 -5.47923704520000e-03 +1.10200000000000e+01 -5.44390743430000e-03 +1.10300000000000e+01 -5.40880384550000e-03 +1.10400000000000e+01 -5.37392485310000e-03 +1.10500000000000e+01 -5.33926904030000e-03 +1.10600000000000e+01 -5.30483499880000e-03 +1.10700000000000e+01 -5.27062132910000e-03 +1.10800000000000e+01 -5.23662664040000e-03 +1.10900000000000e+01 -5.20284955020000e-03 +1.11000000000000e+01 -5.16928868470000e-03 +1.11100000000000e+01 -5.13594267850000e-03 +1.11200000000000e+01 -5.10281017470000e-03 +1.11300000000000e+01 -5.06988982450000e-03 +1.11400000000000e+01 -5.03718028760000e-03 +1.11500000000000e+01 -5.00468023210000e-03 +1.11600000000000e+01 -4.97238833390000e-03 +1.11700000000000e+01 -4.94030327750000e-03 +1.11800000000000e+01 -4.90842375530000e-03 +1.11900000000000e+01 -4.87674846770000e-03 +1.12000000000000e+01 -4.84527612330000e-03 +1.12100000000000e+01 -4.81400543850000e-03 +1.12200000000000e+01 -4.78293513780000e-03 +1.12300000000000e+01 -4.75206395350000e-03 +1.12400000000000e+01 -4.72139062550000e-03 +1.12500000000000e+01 -4.69091390200000e-03 +1.12600000000000e+01 -4.66063253850000e-03 +1.12700000000000e+01 -4.63054529830000e-03 +1.12800000000000e+01 -4.60065095250000e-03 +1.12900000000000e+01 -4.57094827950000e-03 +1.13000000000000e+01 -4.54143606570000e-03 +1.13100000000000e+01 -4.51211310470000e-03 +1.13200000000000e+01 -4.48297819750000e-03 +1.13300000000000e+01 -4.45403015280000e-03 +1.13400000000000e+01 -4.42526778640000e-03 +1.13500000000000e+01 -4.39668992180000e-03 +1.13600000000000e+01 -4.36829538930000e-03 +1.13700000000000e+01 -4.34008302700000e-03 +1.13800000000000e+01 -4.31205167970000e-03 +1.13900000000000e+01 -4.28420019970000e-03 +1.14000000000000e+01 -4.25652744640000e-03 +1.14100000000000e+01 -4.22903228600000e-03 +1.14200000000000e+01 -4.20171359210000e-03 +1.14300000000000e+01 -4.17457024500000e-03 +1.14400000000000e+01 -4.14760113230000e-03 +1.14500000000000e+01 -4.12080514800000e-03 +1.14600000000000e+01 -4.09418119350000e-03 +1.14700000000000e+01 -4.06772817670000e-03 +1.14800000000000e+01 -4.04144501240000e-03 +1.14900000000000e+01 -4.01533062210000e-03 +1.15000000000000e+01 -3.98938393410000e-03 +1.15100000000000e+01 -3.96360388330000e-03 +1.15200000000000e+01 -3.93798941120000e-03 +1.15300000000000e+01 -3.91253946600000e-03 +1.15400000000000e+01 -3.88725300230000e-03 +1.15500000000000e+01 -3.86212898130000e-03 +1.15600000000000e+01 -3.83716637080000e-03 +1.15700000000000e+01 -3.81236414470000e-03 +1.15800000000000e+01 -3.78772128350000e-03 +1.15900000000000e+01 -3.76323677420000e-03 +1.16000000000000e+01 -3.73890960980000e-03 +1.16100000000000e+01 -3.71473878980000e-03 +1.16200000000000e+01 -3.69072331990000e-03 +1.16300000000000e+01 -3.66686221190000e-03 +1.16400000000000e+01 -3.64315448400000e-03 +1.16500000000000e+01 -3.61959916020000e-03 +1.16600000000000e+01 -3.59619527080000e-03 +1.16700000000000e+01 -3.57294185220000e-03 +1.16800000000000e+01 -3.54983794680000e-03 +1.16900000000000e+01 -3.52688260270000e-03 +1.17000000000000e+01 -3.50407487440000e-03 +1.17100000000000e+01 -3.48141382200000e-03 +1.17200000000000e+01 -3.45889851150000e-03 +1.17300000000000e+01 -3.43652801490000e-03 +1.17400000000000e+01 -3.41430140990000e-03 +1.17500000000000e+01 -3.39221777990000e-03 +1.17600000000000e+01 -3.37027621410000e-03 +1.17700000000000e+01 -3.34847580750000e-03 +1.17800000000000e+01 -3.32681566070000e-03 +1.17900000000000e+01 -3.30529487970000e-03 +1.18000000000000e+01 -3.28391257650000e-03 +1.18100000000000e+01 -3.26266786840000e-03 +1.18200000000000e+01 -3.24155987830000e-03 +1.18300000000000e+01 -3.22058773460000e-03 +1.18400000000000e+01 -3.19975057110000e-03 +1.18500000000000e+01 -3.17904752720000e-03 +1.18600000000000e+01 -3.15847774740000e-03 +1.18700000000000e+01 -3.13804038190000e-03 +1.18800000000000e+01 -3.11773458600000e-03 +1.18900000000000e+01 -3.09755952040000e-03 +1.19000000000000e+01 -3.07751435100000e-03 +1.19100000000000e+01 -3.05759824900000e-03 +1.19200000000000e+01 -3.03781039080000e-03 +1.19300000000000e+01 -3.01814995790000e-03 +1.19400000000000e+01 -2.99861613700000e-03 +1.19500000000000e+01 -2.97920811990000e-03 +1.19600000000000e+01 -2.95992510340000e-03 +1.19700000000000e+01 -2.94076628960000e-03 +1.19800000000000e+01 -2.92173088530000e-03 +1.19900000000000e+01 -2.90281810240000e-03 +1.20000000000000e+01 -2.88402715780000e-03 +1.20100000000000e+01 -2.86535727330000e-03 +1.20200000000000e+01 -2.84680767560000e-03 +1.20300000000000e+01 -2.82837759620000e-03 +1.20400000000000e+01 -2.81006627150000e-03 +1.20500000000000e+01 -2.79187294280000e-03 +1.20600000000000e+01 -2.77379685600000e-03 +1.20700000000000e+01 -2.75583726170000e-03 +1.20800000000000e+01 -2.73799341550000e-03 +1.20900000000000e+01 -2.72026457740000e-03 +1.21000000000000e+01 -2.70265001230000e-03 +1.21100000000000e+01 -2.68514898950000e-03 +1.21200000000000e+01 -2.66776078300000e-03 +1.21300000000000e+01 -2.65048467150000e-03 +1.21400000000000e+01 -2.63331993800000e-03 +1.21500000000000e+01 -2.61626587030000e-03 +1.21600000000000e+01 -2.59932176040000e-03 +1.21700000000000e+01 -2.58248690500000e-03 +1.21800000000000e+01 -2.56576060510000e-03 +1.21900000000000e+01 -2.54914216610000e-03 +1.22000000000000e+01 -2.53263089800000e-03 +1.22100000000000e+01 -2.51622611480000e-03 +1.22200000000000e+01 -2.49992713500000e-03 +1.22300000000000e+01 -2.48373328160000e-03 +1.22400000000000e+01 -2.46764388160000e-03 +1.22500000000000e+01 -2.45165826630000e-03 +1.22600000000000e+01 -2.43577577130000e-03 +1.22700000000000e+01 -2.41999573640000e-03 +1.22800000000000e+01 -2.40431750540000e-03 +1.22900000000000e+01 -2.38874042640000e-03 +1.23000000000000e+01 -2.37326385170000e-03 +1.23100000000000e+01 -2.35788713760000e-03 +1.23200000000000e+01 -2.34260964420000e-03 +1.23300000000000e+01 -2.32743073620000e-03 +1.23400000000000e+01 -2.31234978190000e-03 +1.23500000000000e+01 -2.29736615360000e-03 +1.23600000000000e+01 -2.28247922780000e-03 +1.23700000000000e+01 -2.26768838490000e-03 +1.23800000000000e+01 -2.25299300890000e-03 +1.23900000000000e+01 -2.23839248820000e-03 +1.24000000000000e+01 -2.22388621460000e-03 +1.24100000000000e+01 -2.20947358410000e-03 +1.24200000000000e+01 -2.19515399640000e-03 +1.24300000000000e+01 -2.18092685480000e-03 +1.24400000000000e+01 -2.16679156680000e-03 +1.24500000000000e+01 -2.15274754320000e-03 +1.24600000000000e+01 -2.13879419890000e-03 +1.24700000000000e+01 -2.12493095230000e-03 +1.24800000000000e+01 -2.11115722560000e-03 +1.24900000000000e+01 -2.09747244440000e-03 +1.25000000000000e+01 -2.08387603840000e-03 +1.25100000000000e+01 -2.07036744040000e-03 +1.25200000000000e+01 -2.05694608730000e-03 +1.25300000000000e+01 -2.04361141910000e-03 +1.25400000000000e+01 -2.03036287980000e-03 +1.25500000000000e+01 -2.01719991640000e-03 +1.25600000000000e+01 -2.00412198000000e-03 +1.25700000000000e+01 -1.99112852470000e-03 +1.25800000000000e+01 -1.97821900830000e-03 +1.25900000000000e+01 -1.96539289200000e-03 +1.26000000000000e+01 -1.95264964040000e-03 +1.26100000000000e+01 -1.93998872150000e-03 +1.26200000000000e+01 -1.92740960670000e-03 +1.26300000000000e+01 -1.91491177080000e-03 +1.26400000000000e+01 -1.90249469170000e-03 +1.26500000000000e+01 -1.89015785100000e-03 +1.26600000000000e+01 -1.87790073320000e-03 +1.26700000000000e+01 -1.86572282630000e-03 +1.26800000000000e+01 -1.85362362160000e-03 +1.26900000000000e+01 -1.84160261350000e-03 +1.27000000000000e+01 -1.82965929970000e-03 +1.27100000000000e+01 -1.81779318090000e-03 +1.27200000000000e+01 -1.80600376120000e-03 +1.27300000000000e+01 -1.79429054780000e-03 +1.27400000000000e+01 -1.78265305100000e-03 +1.27500000000000e+01 -1.77109078420000e-03 +1.27600000000000e+01 -1.75960326390000e-03 +1.27700000000000e+01 -1.74819000970000e-03 +1.27800000000000e+01 -1.73685054430000e-03 +1.27900000000000e+01 -1.72558439330000e-03 +1.28000000000000e+01 -1.71439108540000e-03 +1.28100000000000e+01 -1.70327015230000e-03 +1.28200000000000e+01 -1.69222112870000e-03 +1.28300000000000e+01 -1.68124355230000e-03 +1.28400000000000e+01 -1.67033696360000e-03 +1.28500000000000e+01 -1.65950090610000e-03 +1.28600000000000e+01 -1.64873492630000e-03 +1.28700000000000e+01 -1.63803857340000e-03 +1.28800000000000e+01 -1.62741139960000e-03 +1.28900000000000e+01 -1.61685295990000e-03 +1.29000000000000e+01 -1.60636281220000e-03 +1.29100000000000e+01 -1.59594051720000e-03 +1.29200000000000e+01 -1.58558563840000e-03 +1.29300000000000e+01 -1.57529774190000e-03 +1.29400000000000e+01 -1.56507639680000e-03 +1.29500000000000e+01 -1.55492117490000e-03 +1.29600000000000e+01 -1.54483165060000e-03 +1.29700000000000e+01 -1.53480740130000e-03 +1.29800000000000e+01 -1.52484800670000e-03 +1.29900000000000e+01 -1.51495304950000e-03 +1.30000000000000e+01 -1.50512211480000e-03 +1.30100000000000e+01 -1.49535479070000e-03 +1.30200000000000e+01 -1.48565066760000e-03 +1.30300000000000e+01 -1.47600933860000e-03 +1.30400000000000e+01 -1.46643039940000e-03 +1.30500000000000e+01 -1.45691344840000e-03 +1.30600000000000e+01 -1.44745808650000e-03 +1.30700000000000e+01 -1.43806391700000e-03 +1.30800000000000e+01 -1.42873054580000e-03 +1.30900000000000e+01 -1.41945758150000e-03 +1.31000000000000e+01 -1.41024463500000e-03 +1.31100000000000e+01 -1.40109131980000e-03 +1.31200000000000e+01 -1.39199725170000e-03 +1.31300000000000e+01 -1.38296204910000e-03 +1.31400000000000e+01 -1.37398533280000e-03 +1.31500000000000e+01 -1.36506672610000e-03 +1.31600000000000e+01 -1.35620585450000e-03 +1.31700000000000e+01 -1.34740234620000e-03 +1.31800000000000e+01 -1.33865583140000e-03 +1.31900000000000e+01 -1.32996594290000e-03 +1.32000000000000e+01 -1.32133231590000e-03 +1.32100000000000e+01 -1.31275458780000e-03 +1.32200000000000e+01 -1.30423239830000e-03 +1.32300000000000e+01 -1.29576538960000e-03 +1.32400000000000e+01 -1.28735320580000e-03 +1.32500000000000e+01 -1.27899549370000e-03 +1.32600000000000e+01 -1.27069190210000e-03 +1.32700000000000e+01 -1.26244208220000e-03 +1.32800000000000e+01 -1.25424568730000e-03 +1.32900000000000e+01 -1.24610237290000e-03 +1.33000000000000e+01 -1.23801179700000e-03 +1.33100000000000e+01 -1.22997361930000e-03 +1.33200000000000e+01 -1.22198750200000e-03 +1.33300000000000e+01 -1.21405310950000e-03 +1.33400000000000e+01 -1.20617010830000e-03 +1.33500000000000e+01 -1.19833816670000e-03 diff --git a/demo/ex1/parameterFile_a.prm b/demo/ex1/parameterFile_a.prm index 7a3e15041..1dd754e83 100644 --- a/demo/ex1/parameterFile_a.prm +++ b/demo/ex1/parameterFile_a.prm @@ -28,8 +28,8 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 40 set TEMPERATURE = 500 set TOLERANCE = 1e-5 diff --git a/demo/ex1/parameterFile_b.prm b/demo/ex1/parameterFile_b.prm index 84238f4ca..31991421e 100644 --- a/demo/ex1/parameterFile_b.prm +++ b/demo/ex1/parameterFile_b.prm @@ -30,8 +30,8 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 40 set TEMPERATURE = 500 set TOLERANCE = 1e-5 diff --git a/demo/ex2/parameterFile_a.prm b/demo/ex2/parameterFile_a.prm index c4b9cfe81..3865f920f 100644 --- a/demo/ex2/parameterFile_a.prm +++ b/demo/ex2/parameterFile_a.prm @@ -46,8 +46,8 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 50 set TEMPERATURE = 500 set TOLERANCE = 1e-5 diff --git a/demo/ex2/parameterFile_b.prm b/demo/ex2/parameterFile_b.prm index 269d07d8d..eb1242a2a 100644 --- a/demo/ex2/parameterFile_b.prm +++ b/demo/ex2/parameterFile_b.prm @@ -48,8 +48,8 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 50 set TEMPERATURE = 500 set TOLERANCE = 1e-5 diff --git a/doc/manual/installation.tex b/doc/manual/installation.tex index b053c6cde..36e724bc6 100644 --- a/doc/manual/installation.tex +++ b/doc/manual/installation.tex @@ -156,8 +156,9 @@ \subsubsection{Instructions for deal.II} $ mkdir build $ cd build $ cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx - -DCMAKE_Fortran_COMPILER=mpif90 -DDEAL_II_CXX_FLAGS_RELEASE=-xMIC-AVX512 - -DDEAL_II_CXX_FLAGS_DEBUG=-xMIC-AVX512 -DDEAL_II_COMPONENT_EXAMPLES=OFF + -DCMAKE_Fortran_COMPILER=mpif90 + -DCMAKE_CXX_FLAGS="-xMIC-AVX512" -DCMAKE_C_FLAGS="-xMIC-AVX512" + -DDEAL_II_CXX_FLAGS_RELEASE=-O3 -DDEAL_II_COMPONENT_EXAMPLES=OFF -DDEAL_II_WITH_MPI=ON -DDEAL_II_WITH_64BIT_INDICES=ON -DDEAL_II_WITH_P4EST=ON -DP4EST_DIR=p4est_install_dir_path @@ -248,8 +249,8 @@ \subsection{Obtaining and Compiling \dftfe{}} \end{verbatim} If compilation is successful, a \verb|/build| directory will be created with the following executables: \begin{verbatim} -/build/release/real/main -/build/release/complex/main +/build/release/real/dftfe +/build/release/complex/dftfe \end{verbatim} \item @@ -259,7 +260,7 @@ \subsection{Obtaining and Compiling \dftfe{}} \end{verbatim} which will create the following debug mode executables: \begin{verbatim} -/build/debug/real/main -/build/debug/complex/main +/build/debug/real/dftfe +/build/debug/complex/dftfe \end{verbatim} \end{enumerate} diff --git a/doc/manual/manual.tex b/doc/manual/manual.tex index bcdb04c06..a8ff1c5d7 100644 --- a/doc/manual/manual.tex +++ b/doc/manual/manual.tex @@ -136,7 +136,7 @@ \hfill{\Huge \fontfamily{\sfdefault}\selectfont User Manual \\ \raggedleft \huge \fontfamily{\sfdefault}\selectfont Version % keep the following line as is so that we can replace this using a script: -0.5 %VERSION-INFO% +0.6 %VERSION-INFO% \\\large(generated \today)\\ \vspace{1.5em} {\Large Sambit Das\,\\Vikram Gavini\,\\Phani Motamarri\\} diff --git a/doc/manual/parameters.tex b/doc/manual/parameters.tex index ad38b3a2f..a836d4772 100644 --- a/doc/manual/parameters.tex +++ b/doc/manual/parameters.tex @@ -789,6 +789,22 @@ \subsection{Parameters in section \tt Parallelization} \label{parameters:Parallelization} \begin{itemize} +\item {\it Parameter name:} {\tt MPI ALLREDUCE BLOCK SIZE} +\phantomsection\label{parameters:Parallelization/MPI ALLREDUCE BLOCK SIZE} +\label{parameters:Parallelization/MPI_20ALLREDUCE_20BLOCK_20SIZE} + + +\index[prmindex]{MPI ALLREDUCE BLOCK SIZE} +\index[prmindexfull]{Parallelization!MPI ALLREDUCE BLOCK SIZE} + + +{\it Default:} 100.0 + + +{\it Description:} [Advanced] Block message size in MB used to break a single MPI\_Allreduce call on wavefunction vectors data into multiple MPI\_Allreduce calls. This is useful on certain architectures which take advantage of High Bandwidth Memory to improve efficiency of MPI operations. This variable is relevant only if NPBAND>1. Default value is 100.0 MB. + + +{\it Possible values:} A floating point number $v$ such that $0 \leq v \leq \text{MAX\_DOUBLE}$ \item {\it Parameter name:} {\tt NPBAND} \phantomsection\label{parameters:Parallelization/NPBAND} @@ -863,51 +879,51 @@ \subsection{Parameters in section \tt SCF parameters} \label{parameters:SCF_20parameters} \begin{itemize} -\item {\it Parameter name:} {\tt ANDERSON SCHEME MIXING HISTORY} -\phantomsection\label{parameters:SCF parameters/ANDERSON SCHEME MIXING HISTORY} -\label{parameters:SCF_20parameters/ANDERSON_20SCHEME_20MIXING_20HISTORY} +\item {\it Parameter name:} {\tt COMPUTE ENERGY EACH ITER} +\phantomsection\label{parameters:SCF parameters/COMPUTE ENERGY EACH ITER} +\label{parameters:SCF_20parameters/COMPUTE_20ENERGY_20EACH_20ITER} -\index[prmindex]{ANDERSON SCHEME MIXING HISTORY} -\index[prmindexfull]{SCF parameters!ANDERSON SCHEME MIXING HISTORY} +\index[prmindex]{COMPUTE ENERGY EACH ITER} +\index[prmindexfull]{SCF parameters!COMPUTE ENERGY EACH ITER} -{\it Default:} 10 +{\it Default:} true -{\it Description:} [Standard] Number of SCF iteration history to be considered for mixing the electron-density using Anderson mixing scheme. For metallic systems, a mixing history larger than the default value provides better scf convergence. +{\it Description:} [Advanced] Boolean parameter specifying whether to compute the total energy at the end of every SCF. Setting it to false can lead to some computational time savings. -{\it Possible values:} An integer $n$ such that $1\leq n \leq 1000$ -\item {\it Parameter name:} {\tt ANDERSON SCHEME MIXING PARAMETER} -\phantomsection\label{parameters:SCF parameters/ANDERSON SCHEME MIXING PARAMETER} -\label{parameters:SCF_20parameters/ANDERSON_20SCHEME_20MIXING_20PARAMETER} +{\it Possible values:} A boolean value (true or false) +\item {\it Parameter name:} {\tt CONSTRAINT MAGNETIZATION} +\phantomsection\label{parameters:SCF parameters/CONSTRAINT MAGNETIZATION} +\label{parameters:SCF_20parameters/CONSTRAINT_20MAGNETIZATION} -\index[prmindex]{ANDERSON SCHEME MIXING PARAMETER} -\index[prmindexfull]{SCF parameters!ANDERSON SCHEME MIXING PARAMETER} +\index[prmindex]{CONSTRAINT MAGNETIZATION} +\index[prmindexfull]{SCF parameters!CONSTRAINT MAGNETIZATION} -{\it Default:} 0.5 +{\it Default:} false -{\it Description:} [Standard] Mixing parameter to be used in Anderson scheme. +{\it Description:} [Standard] Boolean parameter specifying whether to keep the starting magnetization fixed through the SCF iterations. Default is FALSE -{\it Possible values:} A floating point number $v$ such that $0 \leq v \leq 1$ -\item {\it Parameter name:} {\tt COMPUTE ENERGY EACH ITER} -\phantomsection\label{parameters:SCF parameters/COMPUTE ENERGY EACH ITER} -\label{parameters:SCF_20parameters/COMPUTE_20ENERGY_20EACH_20ITER} +{\it Possible values:} A boolean value (true or false) +\item {\it Parameter name:} {\tt HIGHER QUAD NLP} +\phantomsection\label{parameters:SCF parameters/HIGHER QUAD NLP} +\label{parameters:SCF_20parameters/HIGHER_20QUAD_20NLP} -\index[prmindex]{COMPUTE ENERGY EACH ITER} -\index[prmindexfull]{SCF parameters!COMPUTE ENERGY EACH ITER} +\index[prmindex]{HIGHER QUAD NLP} +\index[prmindexfull]{SCF parameters!HIGHER QUAD NLP} {\it Default:} true -{\it Description:} [Advanced] Boolean parameter specifying whether to compute the total energy at the end of every SCF. Setting it to false can lead to some computational time savings. +{\it Description:} [Advanced] Boolean parameter specifying whether to use a higher order quadrature rule for the calculations involving the non-local part of the pseudopotential. Default setting is true. Could be safely set to false if you are using a very refined mesh. {\it Possible values:} A boolean value (true or false) @@ -927,6 +943,54 @@ \subsection{Parameters in section \tt SCF parameters} {\it Possible values:} An integer $n$ such that $1\leq n \leq 1000$ +\item {\it Parameter name:} {\tt MIXING HISTORY} +\phantomsection\label{parameters:SCF parameters/MIXING HISTORY} +\label{parameters:SCF_20parameters/MIXING_20HISTORY} + + +\index[prmindex]{MIXING HISTORY} +\index[prmindexfull]{SCF parameters!MIXING HISTORY} + + +{\it Default:} 10 + + +{\it Description:} [Standard] Number of SCF iteration history to be considered for density mixing schemes. For metallic systems, a mixing history larger than the default value provides better scf convergence. + + +{\it Possible values:} An integer $n$ such that $1\leq n \leq 1000$ +\item {\it Parameter name:} {\tt MIXING METHOD} +\phantomsection\label{parameters:SCF parameters/MIXING METHOD} +\label{parameters:SCF_20parameters/MIXING_20METHOD} + + +\index[prmindex]{MIXING METHOD} +\index[prmindexfull]{SCF parameters!MIXING METHOD} + + +{\it Default:} ANDERSON + + +{\it Description:} [Standard] Method for density mixing. ANDERSON is the default option. + + +{\it Possible values:} Any one of BROYDEN, ANDERSON +\item {\it Parameter name:} {\tt MIXING PARAMETER} +\phantomsection\label{parameters:SCF parameters/MIXING PARAMETER} +\label{parameters:SCF_20parameters/MIXING_20PARAMETER} + + +\index[prmindex]{MIXING PARAMETER} +\index[prmindexfull]{SCF parameters!MIXING PARAMETER} + + +{\it Default:} 0.5 + + +{\it Description:} [Standard] Mixing parameter to be used in density mixing schemes. + + +{\it Possible values:} A floating point number $v$ such that $0 \leq v \leq 1$ \item {\it Parameter name:} {\tt STARTING WFC} \phantomsection\label{parameters:SCF parameters/STARTING WFC} \label{parameters:SCF_20parameters/STARTING_20WFC} @@ -983,6 +1047,22 @@ \subsection{Parameters in section \tt SCF parameters/Eigen-solver parameters} \label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters} \begin{itemize} +\item {\it Parameter name:} {\tt ADAPTIVE FILTER STATES} +\phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/ADAPTIVE FILTER STATES} +\label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/ADAPTIVE_20FILTER_20STATES} + + +\index[prmindex]{ADAPTIVE FILTER STATES} +\index[prmindexfull]{SCF parameters!Eigen-solver parameters!ADAPTIVE FILTER STATES} + + +{\it Default:} 0 + + +{\it Description:} [Advanced] Number of lowest Kohn-Sham eigenstates which are filtered with Chebyshev polynomial degree linearly varying from 50 percent (starting from the lowest) to 80 percent of the value specified by CHEBYSHEV POLYNOMIAL DEGREE. This imposes a step function filtering polynomial order on the ADAPTIVE FILTER STATES as filtering is done with blocks of size WFC BLOCK SIZE. This setting is recommended for large systems (greater than 5000 electrons). Default value is 0 i.e., all states are filtered with the same Chebyshev polynomial degree. + + +{\it Possible values:} An integer $n$ such that $0\leq n \leq 2147483647$ \item {\it Parameter name:} {\tt BATCH GEMM} \phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/BATCH GEMM} \label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/BATCH_20GEMM} @@ -1095,6 +1175,22 @@ \subsection{Parameters in section \tt SCF parameters/Eigen-solver parameters} {\it Possible values:} A floating point number $v$ such that $-\text{MAX\_DOUBLE} \leq v \leq \text{MAX\_DOUBLE}$ +\item {\it Parameter name:} {\tt MIXED PREC STOPPING TOL} +\phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/MIXED PREC STOPPING TOL} +\label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/MIXED_20PREC_20STOPPING_20TOL} + + +\index[prmindex]{MIXED PREC STOPPING TOL} +\index[prmindexfull]{SCF parameters!Eigen-solver parameters!MIXED PREC STOPPING TOL} + + +{\it Default:} 1e-4 + + +{\it Description:} [Advanced] Scf tolerance below which mixed precision cannot be used. Default value is 1e-4. + + +{\it Possible values:} A floating point number $v$ such that $0 \leq v \leq \text{MAX\_DOUBLE}$ \item {\it Parameter name:} {\tt NUMBER OF KOHN-SHAM WAVEFUNCTIONS} \phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/NUMBER OF KOHN_2dSHAM WAVEFUNCTIONS} \label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/NUMBER_20OF_20KOHN_2dSHAM_20WAVEFUNCTIONS} @@ -1175,6 +1271,54 @@ \subsection{Parameters in section \tt SCF parameters/Eigen-solver parameters} {\it Possible values:} An integer $n$ such that $1\leq n \leq 2147483647$ +\item {\it Parameter name:} {\tt USE MIXED PREC CHEBY} +\phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/USE MIXED PREC CHEBY} +\label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/USE_20MIXED_20PREC_20CHEBY} + + +\index[prmindex]{USE MIXED PREC CHEBY} +\index[prmindexfull]{SCF parameters!Eigen-solver parameters!USE MIXED PREC CHEBY} + + +{\it Default:} false + + +{\it Description:} [Advanced] Use mixed precision arithmetic in Chebyshev filtering. Currently this optimization is only enabled for the real executable and batch gemm. Default setting is false. + + +{\it Possible values:} A boolean value (true or false) +\item {\it Parameter name:} {\tt USE MIXED PREC PGS O} +\phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/USE MIXED PREC PGS O} +\label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/USE_20MIXED_20PREC_20PGS_20O} + + +\index[prmindex]{USE MIXED PREC PGS O} +\index[prmindexfull]{SCF parameters!Eigen-solver parameters!USE MIXED PREC PGS O} + + +{\it Default:} false + + +{\it Description:} [Advanced] Use mixed precision arithmetic in overlap matrix computation step of PGS orthogonalization, if ORTHOGONALIZATION TYPE is set to PGS. Currently this optimization is only enabled for the real executable. Default setting is false. + + +{\it Possible values:} A boolean value (true or false) +\item {\it Parameter name:} {\tt USE MIXED PREC PGS SR} +\phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/USE MIXED PREC PGS SR} +\label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/USE_20MIXED_20PREC_20PGS_20SR} + + +\index[prmindex]{USE MIXED PREC PGS SR} +\index[prmindexfull]{SCF parameters!Eigen-solver parameters!USE MIXED PREC PGS SR} + + +{\it Default:} false + + +{\it Description:} [Advanced] Use mixed precision arithmetic in subspace rotation step of PGS orthogonalization, if ORTHOGONALIZATION TYPE is set to PGS. Currently this optimization is only enabled for the real executable. Default setting is false. + + +{\it Possible values:} A boolean value (true or false) \item {\it Parameter name:} {\tt WFC BLOCK SIZE} \phantomsection\label{parameters:SCF parameters/Eigen_2dsolver parameters/WFC BLOCK SIZE} \label{parameters:SCF_20parameters/Eigen_2dsolver_20parameters/WFC_20BLOCK_20SIZE} diff --git a/doc/manual/rundftfe.tex b/doc/manual/rundftfe.tex index 06d6b57a9..e2b35fc55 100644 --- a/doc/manual/rundftfe.tex +++ b/doc/manual/rundftfe.tex @@ -1,10 +1,10 @@ -After compiling \dftfe{} as described in Section~\ref{sec:installation}, we have now two executables --- \verb|/build/release/real/main| and \verb|/build/release/complex/main|. The \verb|/build/release/real/main| executable, which uses real data-structures is sufficient for fully non-periodic problems. The executable can also be used for periodic and semi-periodic problems involving a Gamma point calculation. On the other hand the \verb|/build/release/complex/main| executable, which uses complex data-structures is required for periodic and semi-periodic problems with multiple k point sampling for Brillouin zone integration. These executables are to be used as follows-- for a serial run use +After compiling \dftfe{} as described in Section~\ref{sec:installation}, we have now two executables --- \verb|/build/release/real/dftfe| and \verb|/build/release/complex/dftfe|. The \verb|/build/release/real/dftfe| executable, which uses real data-structures is sufficient for fully non-periodic problems. The executable can also be used for periodic and semi-periodic problems involving a Gamma point calculation. On the other hand the \verb|/build/release/complex/dftfe| executable, which uses complex data-structures is required for periodic and semi-periodic problems with multiple k point sampling for Brillouin zone integration. These executables are to be used as follows-- for a serial run use \begin{verbatim} - ./main parameterFile.prm + ./dftfe parameterFile.prm \end{verbatim} or, for a parallel run use \begin{verbatim} - mpirun -n N ./main parameterFile.prm + mpirun -n N ./dftfe parameterFile.prm \end{verbatim} to run with N processors. \subsection{Structuring the input file} @@ -166,9 +166,9 @@ \subsubsection{Example 1}\label{sec:example1} end end \end{verbatim} -and now run the problem using the \verb|/build/release/real/main| executable +and now run the problem using the \verb|/build/release/real/dftfe| executable \begin{verbatim} - mpirun -n 16 ../../build/release/real/main parameterFile_a.prm > outputMesh1 & + mpirun -n 16 ../../build/release/real/dftfe parameterFile_a.prm > outputMesh1 & \end{verbatim} From the ``outputMesh1'' file, you can obtain information on the number of degrees of freedom in the auto-generated finite-element mesh and the ground-state energy and forces. diff --git a/helpers/XSEDEStampede2KNL/setupStampede2.sh b/helpers/XSEDEStampede2KNL/setupStampede2.sh index b713beee0..7bb5c6e7a 100755 --- a/helpers/XSEDEStampede2KNL/setupStampede2.sh +++ b/helpers/XSEDEStampede2KNL/setupStampede2.sh @@ -8,11 +8,11 @@ set -o pipefail # and optimization flag #Paths for external libraries -dealiiPetscRealDir="/work/05316/dsambit/groupSoftwaresStampede2/dealiiKnl/intel_18.0.0_petscReal_scalapack_64Bit_avx512" -dealiiPetscComplexDir="/work/05316/dsambit/groupSoftwaresStampede2/dealiiExpt/intel_18.0.1_petscComplex_64Bit_scalapack" -alglibDir="/work/05316/dsambit/groupSoftwaresStampede2/alglib/cpp/src" -libxcDir="/work/05316/dsambit/groupSoftwaresStampede2/libxc/libxc-4.0.4_install_intel" -spglibDir="/work/05316/dsambit/groupSoftwaresStampede2/spglibInstall" +dealiiPetscRealDir="/work/05316/dsambit/publicSharedSoftware/dealiiDev/intel_18.0.0_petscReal_scalapack_64Bit" +dealiiPetscComplexDir="/work/05316/dsambit/publicSharedSoftware/dealiiDev/intel_18.0.0_petscComplex_scalapack_64Bit" +alglibDir="/work/05316/dsambit/publicSharedSoftware/alglib/cppIntel18.0.0/src" +libxcDir="/work/05316/dsambit/publicSharedSoftware/libxc/install_intel18.0.0" +spglibDir="/work/05316/dsambit/publicSharedSoftware/spglib/install_intel18.0.0" xmlIncludeDir="/usr/include/libxml2" xmlLibDir="/usr/lib64" diff --git a/include/chebyshevOrthogonalizedSubspaceIterationSolver.h b/include/chebyshevOrthogonalizedSubspaceIterationSolver.h index 9067e160f..6d663f889 100644 --- a/include/chebyshevOrthogonalizedSubspaceIterationSolver.h +++ b/include/chebyshevOrthogonalizedSubspaceIterationSolver.h @@ -28,7 +28,7 @@ namespace dftfe{ /** * @brief Concrete class implementing Chebyshev filtered orthogonalized subspace * iteration solver. - * @author Phani Motamarri + * @author Phani Motamarri */ class chebyshevOrthogonalizedSubspaceIterationSolver : public eigenSolverClass { @@ -54,12 +54,13 @@ namespace dftfe{ * @brief Solve a generalized eigen problem. */ eigenSolverClass::ReturnValueType solve(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & eigenVectorsFlattened, + std::vector & eigenVectorsFlattened, vectorType & tempEigenVec, const unsigned int totalNumberWaveFunctions, std::vector & eigenValues, std::vector & residuals, - const MPI_Comm &interBandGroupComm); + const MPI_Comm &interBandGroupComm, + const bool useMixedPrec); /** * @brief Solve a generalized eigen problem. diff --git a/include/constants.h b/include/constants.h index 895bb811a..648eed789 100644 --- a/include/constants.h +++ b/include/constants.h @@ -23,14 +23,19 @@ namespace dftfe { // //Add prefic C_ to all constants // - + /// Boltzmann constant const double C_kb =3.166811429e-06; - + /// problem space dimensions const int C_DIM=3; /// 1d quadrature rule order template constexpr unsigned int C_num1DQuad(){return FEOrder+1;} + + + /// 1d quadrature rule order for non-local part of pseudopotential + template constexpr unsigned int C_num1DQuadPSP() + {return FEOrder+4 > 8 ? 8 : FEOrder+4;} } #endif diff --git a/include/dft.h b/include/dft.h index 7316821c2..55ae376fb 100644 --- a/include/dft.h +++ b/include/dft.h @@ -276,7 +276,7 @@ namespace dftfe { /** *@brief moves the triangulation vertices using Gaussians such that the all atoms are on triangulation vertices */ - void moveMeshToAtoms(const Triangulation<3,3> & triangulationMove); + void moveMeshToAtoms(Triangulation<3,3> & triangulationMove); /** * Initializes the guess of electron-density and single-atom wavefunctions on the mesh, @@ -286,7 +286,7 @@ namespace dftfe { * In periodic problems, periodic faces are mapped here. Further finite-element nodes * to be pinned for solving the Poisson problem electro-static potential is set here */ - void initUnmovedTriangulation(const parallel::distributed::Triangulation<3> & triangulation); + void initUnmovedTriangulation(parallel::distributed::Triangulation<3> & triangulation); void initBoundaryConditions(); void initElectronicFields(const unsigned int usePreviousGroundStateFields=0); void initPseudoPotentialAll(); @@ -392,6 +392,9 @@ namespace dftfe { double mixing_anderson(); double mixing_simple_spinPolarized(); double mixing_anderson_spinPolarized(); + double mixing_broyden(); + double mixing_broyden_spinPolarized(); + /** * Re solves the all electrostatics on a p refined mesh, and computes @@ -409,6 +412,10 @@ namespace dftfe { */ void compute_fermienergy(const std::vector> & eigenValuesInput, const double numElectronsInput); + /** + *@brief Computes Fermi-energy obtained by imposing separate constraints on the number of spin-up and spin-down electrons + */ + void compute_fermienergy_constraintMagnetization(const std::vector> & eigenValuesInput); /** *@brief write wavefunction solution fields @@ -458,7 +465,7 @@ namespace dftfe { /** * stores required data for Kohn-Sham problem */ - unsigned int numElectrons, numLevels; + unsigned int numElectrons, numElectronsUp, numElectronsDown, numLevels; std::set atomTypes; std::vector > atomLocations,atomLocationsFractional,d_reciprocalLatticeVectors, d_domainBoundingVectors; @@ -572,6 +579,7 @@ namespace dftfe { */ dftUtils::constraintMatrixInfo constraintsNoneDataInfo; + ConstraintMatrix constraintsNone, constraintsNoneEigen, d_constraintsForTotalPotential, d_noConstraints; @@ -582,7 +590,8 @@ namespace dftfe { /// Spectrum split higher eigenvalues computed in Rayleigh-Ritz step std::vector > eigenValuesRRSplit; - std::vector> d_eigenVectorsFlattened; + std::vector > d_eigenVectorsFlattened; + std::vector > d_eigenVectorsFlattenedSTL; /// parallel message stream ConditionalOStream pcout; @@ -603,6 +612,15 @@ namespace dftfe { std::map > * gradRhoOutValues, *gradRhoOutValuesSpinPolarized; std::deque >> gradRhoInVals,gradRhoInValsSpinPolarized,gradRhoOutVals, gradRhoOutValsSpinPolarized; + // Broyden mixing related objects + std::map > FBroyden, gradFBroyden ; + std::deque >> dFBroyden, graddFBroyden ; + std::deque >> uBroyden, gradUBroyden ; + std::deque wtBroyden; + double w0Broyden = 0.0 ; + // + + // storage for total electrostatic potential solution vector corresponding to input scf electron density vectorType d_phiTotRhoIn; @@ -658,20 +676,28 @@ namespace dftfe { std::map, unsigned int> d_projectorIdsNumberingMapCurrentProcess; #ifdef USE_COMPLEX std::vector > > > > d_nonLocalProjectorElementMatrices,d_nonLocalProjectorElementMatricesConjugate,d_nonLocalProjectorElementMatricesTranspose; + + std::vector > > > > d_nonLocalProjectorElementMatricesLowPrec,d_nonLocalProjectorElementMatricesConjugateLowPrec,d_nonLocalProjectorElementMatricesTransposeLowPrec; + std::vector > > d_projectorKetTimesVectorPar; /// parallel vector used in nonLocalHamiltionian times wavefunction vector computation /// pre-initialization of the parallel layout is more efficient than creating the parallel /// layout for every nonLocalHamiltionan times wavefunction computation dealii::parallel::distributed::Vector > d_projectorKetTimesVectorParFlattened; + dealii::parallel::distributed::Vector > d_projectorKetTimesVectorParFlattenedLowPrec; #else std::vector > > > d_nonLocalProjectorElementMatrices,d_nonLocalProjectorElementMatricesConjugate,d_nonLocalProjectorElementMatricesTranspose; + + std::vector > > > d_nonLocalProjectorElementMatricesLowPrec,d_nonLocalProjectorElementMatricesConjugateLowPrec,d_nonLocalProjectorElementMatricesTransposeLowPrec; + std::vector > d_projectorKetTimesVectorPar; /// parallel vector used in nonLocalHamiltionian times wavefunction vector computation /// pre-initialization of the parallel layout is more efficient than creating the parallel /// layout for every nonLocalHamiltionan times wavefunction computation dealii::parallel::distributed::Vector d_projectorKetTimesVectorParFlattened; + dealii::parallel::distributed::Vector d_projectorKetTimesVectorParFlattenedLowPrec; #endif // @@ -720,7 +746,7 @@ namespace dftfe { void recomputeKPointCoordinates(); /// fermi energy - double fermiEnergy; + double fermiEnergy, fermiEnergyUp, fermiEnergyDown; //chebyshev filter variables and functions //int numPass ; // number of filter passes @@ -743,7 +769,8 @@ namespace dftfe { kohnShamDFTOperatorClass & kohnShamDFTEigenOperator, chebyshevOrthogonalizedSubspaceIterationSolver & subspaceIterationSolver, std::vector & residualNormWaveFunctions, - const bool isSpectrumSplit); + const bool isSpectrumSplit, + const bool useMixedPrec); void computeResidualNorm(const std::vector & eigenValuesTemp, kohnShamDFTOperatorClass & kohnShamDFTEigenOperator, diff --git a/include/dftParameters.h b/include/dftParameters.h index 76bb50306..850e422b3 100644 --- a/include/dftParameters.h +++ b/include/dftParameters.h @@ -40,12 +40,13 @@ namespace dftfe { extern double radiusAtomBall, mixingParameter; extern double lowerEndWantedSpectrum,relLinearSolverTolerance,selfConsistentSolverTolerance,TVal, start_magnetization; - extern bool isPseudopotential, periodicX, periodicY, periodicZ, useSymm, timeReversal,pseudoTestsFlag; + extern bool isPseudopotential, periodicX, periodicY, periodicZ, useSymm, timeReversal,pseudoTestsFlag, constraintMagnetization; extern std::string meshFileName,coordinatesFile,domainBoundingVectorsFile,kPointDataFile, ionRelaxFlagsFile, orthogType,pseudoPotentialFile; extern double outerAtomBallRadius, meshSizeOuterDomain; extern double meshSizeInnerBall, meshSizeOuterBall; extern double chebyshevTolerance; + extern std::string mixingMethod ; extern bool isIonOpt, isCellOpt, isIonForce, isCellStress; @@ -76,6 +77,13 @@ namespace dftfe { extern double lowerBoundUnwantedFracUpper; extern bool triMatPGSOpt; extern bool reuseWfcGeoOpt; + extern double mpiAllReduceMessageBlockSizeMB; + extern bool useHigherQuadNLP; + extern bool useMixedPrecPGS_SR; + extern bool useMixedPrecPGS_O; + extern unsigned int numAdaptiveFilterStates; + extern bool useMixedPrecCheby; + extern double mixedPrecStoppingTol; /** * Declare parameters. diff --git a/include/energyCalculator.h b/include/energyCalculator.h index ba26f5add..050152d20 100644 --- a/include/energyCalculator.h +++ b/include/energyCalculator.h @@ -119,6 +119,8 @@ namespace dftfe { * @param eigenValues eigenValues for each k point. * @param kPointWeights * @param fermiEnergy + * @param fermiEnergyUp + * @param fermiEnergyDown * @param funcX exchange functional object. * @param funcC correlation functional object. * @param phiTotRhoIn nodal vector field of total electrostatic potential using input @@ -161,6 +163,8 @@ namespace dftfe { const std::vector > & eigenValues, const std::vector & kPointWeights, const double fermiEnergy, + const double fermiEnergyUp, + const double fermiEnergyDown, const xc_func_type & funcX, const xc_func_type & funcC, const vectorType & phiTotRhoIn, diff --git a/include/eshelbyTensor.h b/include/eshelbyTensor.h index 28d01e329..e5dba3248 100644 --- a/include/eshelbyTensor.h +++ b/include/eshelbyTensor.h @@ -65,41 +65,40 @@ namespace dftfe { /// Eshelby tensor corresponding to nuclear self energy Tensor<2,C_DIM,double > getVselfBallEshelbyTensor(const Tensor<1,C_DIM,double > & gradVself); - /// Local part of the Eshelby tensor for periodic case (only considers terms which are not summed over k points) - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorPeriodicNoKPoints - (const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, - const Tensor<1,C_DIM,VectorizedArray > & gradRho, - const VectorizedArray & exc, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRho, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt); ///Local part of the Eshelby tensor for periodic case (only considers terms which are summed over k points) - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorPeriodicKPoints - (std::vector > >::const_iterator psiBegin, - std::vector > > >::const_iterator gradPsiBegin, - const std::vector & kPointCoordinates, - const std::vector & kPointWeights, - const std::vector > & eigenValues_, - const double fermiEnergy_, - const double tVal); + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorPeriodicKPoints + (std::vector > >::const_iterator psiBegin, + std::vector > > >::const_iterator gradPsiBegin, + const std::vector & kPointCoordinates, + const std::vector & kPointWeights, + const std::vector > & eigenValues_, + const double fermiEnergy_, + const double tVal); /// Local part of the Eshelby tensor for non-periodic case - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorNonPeriodic(const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, - const Tensor<1,C_DIM,VectorizedArray > & gradRho, - const VectorizedArray & exc, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRho, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt, - std::vector >::const_iterator psiBegin, - std::vector > >::const_iterator gradPsiBegin, - const std::vector & eigenValues_, - const double fermiEnergy_, - const double tVal); + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorNonPeriodic + (std::vector >::const_iterator psiBegin, + std::vector > >::const_iterator gradPsiBegin, + const std::vector & eigenValues_, + const double fermiEnergy_, + const double tVal); + + /// All-electron electrostatic part of the Eshelby tensor + Tensor<2,C_DIM,VectorizedArray > getEElectroEshelbyTensor + (const VectorizedArray & phiTot, + const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, + const VectorizedArray & rho, + const VectorizedArray & pseudoVLoc, + const VectorizedArray & phiExt); + + /// exchange-correlation and psp part of the ELoc Eshelby tensor + Tensor<2,C_DIM,VectorizedArray > getELocXcPspEshelbyTensor + (const VectorizedArray & rho, + const Tensor<1,C_DIM,VectorizedArray > & gradRho, + const VectorizedArray & exc, + const Tensor<1,C_DIM,VectorizedArray > & derExcGradRho, + const VectorizedArray & pseudoVLoc); /// Local pseudotential force contribution Tensor<1,C_DIM,VectorizedArray > getFPSPLocal(const VectorizedArray rho, diff --git a/include/eshelbyTensorSpinPolarized.h b/include/eshelbyTensorSpinPolarized.h index fbbe91e96..14d0a3e2b 100644 --- a/include/eshelbyTensorSpinPolarized.h +++ b/include/eshelbyTensorSpinPolarized.h @@ -52,20 +52,8 @@ namespace dftfe { */ namespace eshelbyTensorSP { - ///Local part of the Eshelby tensor for periodic case (only considers terms which are not summed over k points) - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorPeriodicNoKPoints - (const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, - const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin0, - const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin1, - const VectorizedArray & exc, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin0, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin1, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt); ///Local part of the Eshelby tensor for periodic case (only considers terms which are summed over k points) - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorPeriodicKPoints + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorPeriodicKPoints (std::vector > >::const_iterator psiSpin0Begin, std::vector > >::const_iterator psiSpin1Begin, std::vector > > >::const_iterator gradPsiSpin0Begin, @@ -77,18 +65,8 @@ namespace dftfe { const double tVal); ///Local part of the Eshelby tensor for non-periodic case - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorNonPeriodic - (const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, - const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin0, - const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin1, - const VectorizedArray & exc, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin0, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin1, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt, - std::vector >::const_iterator psiSpin0Begin, + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorNonPeriodic + (std::vector >::const_iterator psiSpin0Begin, std::vector >::const_iterator psiSpin1Begin, std::vector > >::const_iterator gradPsiSpin0Begin, std::vector > >::const_iterator gradPsiSpin1Begin, @@ -96,6 +74,16 @@ namespace dftfe { const double fermiEnergy_, const double tVal); + /// exchange-correlation and psp part of the ELoc Eshelby tensor + Tensor<2,C_DIM,VectorizedArray > getELocXcPspEshelbyTensor + (const VectorizedArray & rho, + const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin0, + const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin1, + const VectorizedArray & exc, + const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin0, + const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin1, + const VectorizedArray & pseudoVLoc); + ///Local pseudotential force contribution Tensor<1,C_DIM,VectorizedArray > getFPSPLocal(const VectorizedArray rho, const Tensor<1,C_DIM,VectorizedArray > & gradPseudoVLoc, diff --git a/include/force.h b/include/force.h index 8b6971a02..6d21cc535 100644 --- a/include/force.h +++ b/include/force.h @@ -181,6 +181,7 @@ namespace dftfe { void FnlGammaAtomsElementalContributionPeriodic (std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > > > & pspnlGammaAtomsQuads, const std::vector > > > & projectorKetTimesPsiTimesV, @@ -189,6 +190,7 @@ namespace dftfe { void FnlGammaAtomsElementalContributionPeriodicSpinPolarized (std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > > > & pspnlGammaAtomsQuads, const std::vector > > > & projectorKetTimesPsiSpin0TimesV, @@ -200,6 +202,7 @@ namespace dftfe { void FnlGammaAtomsElementalContributionNonPeriodicSpinPolarized (std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > pspnlGammaAtomQuads, const std::vector > & projectorKetTimesPsiSpin0TimesV, @@ -210,6 +213,7 @@ namespace dftfe { void FnlGammaAtomsElementalContributionNonPeriodic (std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > pspnlGammaAtomQuads, const std::vector > & projectorKetTimesPsiTimesV, @@ -337,14 +341,6 @@ namespace dftfe { /// Storage for configurational force on all global atoms. std::vector d_globalAtomsGaussianForces; -#ifdef USE_COMPLEX - /* Part of the configurational force which is summed over k points. - * It is a temporary data structure required for force evaluation (d_globalAtomsGaussianForces) - * when parallization over k points is on. - */ - std::vector d_globalAtomsGaussianForcesKPoints; -#endif - /// Storage for configurational stress tensor Tensor<2,C_DIM,double> d_stress; diff --git a/include/headers.h b/include/headers.h index 21ab3b97b..6bd3eb03a 100644 --- a/include/headers.h +++ b/include/headers.h @@ -85,9 +85,73 @@ namespace dftfe { #ifdef USE_COMPLEX typedef std::complex number; + typedef std::complex numberLowPrec; #else typedef double number; + typedef float numberLowPrec; #endif + + inline MPI_Datatype + mpi_type_id(const int *) + { + return MPI_INT; + } + + inline MPI_Datatype + mpi_type_id(const long int *) + { + return MPI_LONG; + } + + inline MPI_Datatype + mpi_type_id(const unsigned int *) + { + return MPI_UNSIGNED; + } + + inline MPI_Datatype + mpi_type_id(const unsigned long int *) + { + return MPI_UNSIGNED_LONG; + } + + inline MPI_Datatype + mpi_type_id(const unsigned long long int *) + { + return MPI_UNSIGNED_LONG_LONG; + } + + + inline MPI_Datatype + mpi_type_id(const float *) + { + return MPI_FLOAT; + } + + + inline MPI_Datatype + mpi_type_id(const double *) + { + return MPI_DOUBLE; + } + + inline MPI_Datatype + mpi_type_id(const long double *) + { + return MPI_LONG_DOUBLE; + } + + inline MPI_Datatype + mpi_type_id(const std::complex *) + { + return MPI_COMPLEX; + } + + inline MPI_Datatype + mpi_type_id(const std::complex *) + { + return MPI_DOUBLE_COMPLEX; + } } diff --git a/include/kohnShamDFTOperator.h b/include/kohnShamDFTOperator.h index eeeef2571..b42c9c44b 100644 --- a/include/kohnShamDFTOperator.h +++ b/include/kohnShamDFTOperator.h @@ -31,7 +31,7 @@ namespace dftfe{ /** * @brief Implementation class for building the Kohn-Sham DFT discrete operator and the action of the discrete operator on a single vector or multiple vectors * - * @author Phani Motamarri, + * @author Phani Motamarri, Sambit Das */ // @@ -78,6 +78,7 @@ namespace dftfe{ const unsigned int numberComponents, const bool scaleFlag, const double scalar, + const bool useSinglePrec, dealii::parallel::distributed::Vector & dst); @@ -87,7 +88,7 @@ namespace dftfe{ * @param src given orthogonal basis vectors * @return ProjMatrix projected small matrix */ - void XtHX(dealii::parallel::distributed::Vector & src, + void XtHX(const std::vector & src, const unsigned int numberComponents, std::vector & ProjHam); @@ -105,7 +106,7 @@ namespace dftfe{ * which avoids creation of full projected Hamiltonian matrix memory, and also avoids creation * of another full X memory. */ - void XtHX(const dealii::parallel::distributed::Vector & X, + void XtHX(const std::vector & X, const unsigned int numberComponents, const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, dealii::ScaLAPACKMatrix & projHamPar); @@ -273,6 +274,7 @@ namespace dftfe{ * of complex data type */ std::vector > d_cellHamiltonianMatrix; + std::vector > d_cellHamiltonianMatrixLowPrec; /** * @brief implementation of matrix-vector product using cell-level stiffness matrices. @@ -303,6 +305,12 @@ namespace dftfe{ const unsigned int numberWaveFunctions, dealii::parallel::distributed::Vector & dst) const; + + void computeLocalHamiltonianTimesXBatchGEMMSinglePrec + (const dealii::parallel::distributed::Vector & src, + const unsigned int numberWaveFunctions, + dealii::parallel::distributed::Vector & dst) const; + #endif /** * @brief implementation of non-local Hamiltonian matrix-vector product @@ -332,6 +340,12 @@ namespace dftfe{ void computeNonLocalHamiltonianTimesXBatchGEMM(const dealii::parallel::distributed::Vector & src, const unsigned int numberWaveFunctions, dealii::parallel::distributed::Vector & dst) const; + + + void computeNonLocalHamiltonianTimesXBatchGEMMSinglePrec + (const dealii::parallel::distributed::Vector & src, + const unsigned int numberWaveFunctions, + dealii::parallel::distributed::Vector & dst) const; #endif ///pointer to dft class diff --git a/include/linearAlgebraOperations.h b/include/linearAlgebraOperations.h index 65ce8cb73..803ae52c0 100644 --- a/include/linearAlgebraOperations.h +++ b/include/linearAlgebraOperations.h @@ -30,20 +30,26 @@ namespace dftfe void dgemv_(char* TRANS, const int* M, const int* N, double* alpha, double* A, const int* LDA, double* X, const int* INCX, double* beta, double* C, const int* INCY); void dgesv_( int* n, int* nrhs, double* a, int* lda, int* ipiv, double* b, int* ldb, int* info ); void dscal_(const unsigned int *n, const double *alpha, double *x, const unsigned int *inc); + void sscal_(const unsigned int *n, const float *alpha, float *x, const unsigned int *inc); void zscal_(const unsigned int *n, std::complex *alpha, std::complex *x, const unsigned int *inc); void zdscal_(const unsigned int *n, const double *alpha, std::complex *x, const unsigned int *inc); void daxpy_(const unsigned int *n, const double *alpha, double *x, const unsigned int *incx, double *y, const unsigned int *incy); void dgemm_(const char* transA, const char* transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const double *alpha, const double *A, const unsigned int *lda, const double *B, const unsigned int *ldb, const double *beta, double *C, const unsigned int *ldc); + void sgemm_(const char* transA, const char* transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const float *alpha, const float *A, const unsigned int *lda, const float *B, const unsigned int *ldb, const float *beta, float *C, const unsigned int *ldc); #ifdef WITH_MKL void dgemm_batch_(const char* transa_array,const char* transb_array,const unsigned int* m_array,const unsigned int* n_array,const unsigned int* k_array,const double* alpha_array,double** a_array,const unsigned int * lda_array,const double ** b_array,const unsigned int * ldb_array,const double * beta_array,double** c_array,const unsigned int * ldc_array,const unsigned int* group_count,const unsigned int* group_size); + void sgemm_batch_(const char* transa_array,const char* transb_array,const unsigned int* m_array,const unsigned int* n_array,const unsigned int* k_array,const float* alpha_array,float** a_array,const unsigned int * lda_array,const float ** b_array,const unsigned int * ldb_array,const float * beta_array,float** c_array,const unsigned int * ldc_array,const unsigned int* group_count,const unsigned int* group_size); #endif void dsyevd_(const char* jobz, const char* uplo, const unsigned int* n, double* A, const unsigned int *lda, double* w, double* work, const unsigned int* lwork, int* iwork, const unsigned int* liwork, int* info); void dsyevr_(const char *jobz, const char *range, const char *uplo,const unsigned int *n, double *A,const unsigned int *lda,const double *vl, const double *vu, const unsigned int *il, const unsigned int *iu, const double *abstol, const unsigned int *m, double *w, double *Z, const unsigned int * ldz, unsigned int * isuppz, double *work, const int *lwork, int * iwork, const int *liwork, int *info); void dsyrk_(const char *uplo, const char *trans, const unsigned int *n, const unsigned int *k, const double *alpha, const double *A, const unsigned int *lda, const double *beta, double *C, const unsigned int * ldc); void dcopy_(const unsigned int *n,const double *x,const unsigned int *incx,double *y,const unsigned int *incy); + void scopy_(const unsigned int *n,const float *x,const unsigned int *incx,float *y,const unsigned int *incy); void zgemm_(const char* transA, const char* transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const std::complex *alpha, const std::complex *A, const unsigned int *lda, const std::complex *B, const unsigned int *ldb, const std::complex *beta, std::complex *C, const unsigned int *ldc); + void cgemm_(const char* transA, const char* transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const std::complex *alpha, const std::complex *A, const unsigned int *lda, const std::complex *B, const unsigned int *ldb, const std::complex *beta, std::complex *C, const unsigned int *ldc); #ifdef WITH_MKL void zgemm_batch_(const char* transa_array,const char* transb_array,const unsigned int* m_array,const unsigned int* n_array,const unsigned int* k_array,const std::complex* alpha_array,std::complex** a_array,const unsigned int * lda_array,const std::complex ** b_array,const unsigned int * ldb_array,const std::complex * beta_array,std::complex** c_array,const unsigned int * ldc_array,const unsigned int* group_count,const unsigned int* group_size); + void cgemm_batch_(const char* transa_array,const char* transb_array,const unsigned int* m_array,const unsigned int* n_array,const unsigned int* k_array,const std::complex* alpha_array,std::complex** a_array,const unsigned int * lda_array,const std::complex ** b_array,const unsigned int * ldb_array,const std::complex * beta_array,std::complex** c_array,const unsigned int * ldc_array,const unsigned int* group_count,const unsigned int* group_size); #endif void zheevd_(const char *jobz, const char *uplo, const unsigned int *n,std::complex *A,const unsigned int *lda,double *w,std::complex *work, const unsigned int *lwork,double *rwork, const unsigned int *lrwork, int *iwork,const unsigned int *liwork, int *info); void zheevr_(const char *jobz, const char *range, const char *uplo,const unsigned int *n,std::complex *A,const unsigned int *lda,const double *vl, const double *vu, const unsigned int *il, const unsigned int *iu, const double *abstol, const unsigned int *m, double *w, std::complex *Z, const unsigned int * ldz, unsigned int * isuppz, std::complex *work, const int *lwork, double *rwork, const int *lrwork, int * iwork, const int *liwork, int *info); @@ -130,7 +136,8 @@ namespace dftfe const unsigned int m, const double a, const double b, - const double a0); + const double a0, + const bool useMixedPrec); @@ -152,10 +159,12 @@ namespace dftfe * @param[in,out] X Given subspace as flattened array of multi-vectors. * In-place update of the given subspace * @param[in] numberComponents Number of multiple-fields + * @param[in] mpiComm global communicator */ template - void gramSchmidtOrthogonalization(dealii::parallel::distributed::Vector & X, - const unsigned int numberComponents); + void gramSchmidtOrthogonalization(std::vector & X, + const unsigned int numberComponents, + const MPI_Comm & mpiComm); /** @brief Orthogonalize given subspace using Lowden orthogonalization for double data-type @@ -164,11 +173,12 @@ namespace dftfe * @param[in,out] X Given subspace as flattened array of multi-vectors. * In-place update of the given subspace * @param[in] numberComponents Number of multiple-fields - * + * @param[in] mpiComm global communicator * @return flag indicating success/failure. 1 for failure, 0 for success */ - unsigned int lowdenOrthogonalization(dealii::parallel::distributed::Vector & X, - const unsigned int numberComponents); + unsigned int lowdenOrthogonalization(std::vector & X, + const unsigned int numberComponents, + const MPI_Comm & mpiComm); /** @brief Orthogonalize given subspace using Pseudo-Gram-Schmidt orthogonalization @@ -188,11 +198,13 @@ namespace dftfe * @return flag indicating success/failure. 1 for failure, 0 for success */ template - unsigned int pseudoGramSchmidtOrthogonalization(dealii::parallel::distributed::Vector & X, + unsigned int pseudoGramSchmidtOrthogonalization(std::vector & X, const unsigned int numberComponents, const MPI_Comm &interBandGroupComm, const unsigned int numberCoreVectors, - dealii::parallel::distributed::Vector & nonCoreVectorsArray); + const MPI_Comm &mpiComm, + const bool useMixedPrec, + std::vector & nonCoreVectorsArray); /** @brief Compute Rayleigh-Ritz projection * @@ -215,13 +227,15 @@ namespace dftfe * In-place rotated subspace * @param[in] numberComponents Number of multiple-fields * @param[in] interBandGroupComm interpool communicator for parallelization over band groups + * @param[in] mpiComm domain decomposition communicator * @param[out] eigenValues of the Projected Hamiltonian */ template void rayleighRitz(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & X, + std::vector & X, const unsigned int numberComponents, const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, std::vector & eigenValues); /** @brief Compute Compute residual norm associated with eigenValue problem of the given operator @@ -229,27 +243,16 @@ namespace dftfe * @param[in] operatorMatrix An object which has access to the given matrix * @param[in] X Given subspace as STL vector of dealii vectors * @param[in] eigenValues eigenValues of the operator + * @param[in] mpiComm domain decomposition communicator * @param[out] residualNorms of the eigen Value problem */ + template void computeEigenResidualNorm(operatorDFTClass & operatorMatrix, - std::vector & X, + std::vector & X, const std::vector & eigenValues, + const MPI_Comm &mpiComm, std::vector & residualNorm); - - /** @brief Compute residual norm associated with eigenValue problem of the given operator - * - * @param[in] operatorMatrix An object which has access to the given matrix - * @param[in] X Given eigenvector subspace as flattened array of multi-vectors - * @param[in] eigenValues eigenValues of the operator - * @param[out] residualNorms of the eigen Value problem - */ - template - void computeEigenResidualNorm(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & X, - const std::vector & eigenValues, - std::vector & residualNorm); - } } diff --git a/include/linearAlgebraOperationsInternal.h b/include/linearAlgebraOperationsInternal.h index cf2662d91..785ab9772 100644 --- a/include/linearAlgebraOperationsInternal.h +++ b/include/linearAlgebraOperationsInternal.h @@ -24,7 +24,7 @@ namespace dftfe namespace linearAlgebraOperations { /** - * @brief Contains small internal functions used in linearAlgebraOperations + * @brief Contains internal functions used in linearAlgebraOperations * * @author Sambit Das */ @@ -70,9 +70,9 @@ namespace dftfe const MPI_Comm &interComm, const unsigned int broadcastRoot); - /** @brief Computes S=X^{T}*X and stores in a parallel ScaLAPACK matrix. - * X^{T} is the subspaceVectorsArray in the column major format. S is the - * overlapMatPar. + /** @brief Computes Sc=X^{T}*Xc and stores in a parallel ScaLAPACK matrix. + * X^{T} is the subspaceVectorsArray stored in the column major format (N x M). + * Sc is the overlapMatPar. * * The overlap matrix computation and filling is done in a blocked approach * which avoids creation of full serial overlap matrix memory, and also avoids creation @@ -80,14 +80,35 @@ namespace dftfe * */ template - void fillParallelOverlapMatrix(const dealii::parallel::distributed::Vector & X, + void fillParallelOverlapMatrix(const T* X, + const unsigned int XLocalSize, const unsigned int numberVectors, const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, dealii::ScaLAPACKMatrix & overlapMatPar); - /** @brief Computes X^{T}=Q*X^{T} inplace. X^{T} is the subspaceVectorsArray in the column major - * format. Q is rotationMatPar. + + /** @brief Computes Sc=X^{T}*Xc and stores in a parallel ScaLAPACK matrix. + * X^{T} is the subspaceVectorsArray stored in the column major format (N x M). + * Sc is the overlapMatPar. + * + * The overlap matrix computation and filling is done in a blocked approach + * which avoids creation of full serial overlap matrix memory, and also avoids creation + * of another full X memory. + * + */ + void fillParallelOverlapMatrixMixedPrec + (const dataTypes::number* X, + const unsigned int XLocalSize, + const unsigned int numberVectors, + const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + dealii::ScaLAPACKMatrix & overlapMatPar); + + /** @brief Computes X^{T}=Q*X^{T} inplace. X^{T} is the subspaceVectorsArray + * stored in the column major format (N x M). Q is rotationMatPar. * * The subspace rotation inside this function is done in a blocked approach * which avoids creation of full serial rotation matrix memory, and also avoids creation @@ -95,16 +116,39 @@ namespace dftfe * */ template - void subspaceRotation(dealii::parallel::distributed::Vector & subspaceVectorsArray, + void subspaceRotation(T* subspaceVectorsArray, + const unsigned int subspaceVectorsArrayLocalSize, const unsigned int numberSubspaceVectors, const unsigned int numberCoreVectors, - dealii::parallel::distributed::Vector & nonCoreVectorsArray, + T* nonCoreVectorsArray, const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, const dealii::ScaLAPACKMatrix & rotationMatPar, const bool rotationMatTranspose=false, const bool isRotationMatLowerTria=false); + + /** @brief Computes X^{T}=Q*X^{T} inplace. X^{T} is the subspaceVectorsArray + * stored in the column major format (N x M). Q is rotationMatPar. + * + * The subspace rotation inside this function is done in a blocked approach + * which avoids creation of full serial rotation matrix memory, and also avoids creation + * of another full subspaceVectorsArray memory. + * + */ + void subspaceRotationPGSMixedPrec + (dataTypes::number* subspaceVectorsArray, + const unsigned int subspaceVectorsArrayLocalSize, + const unsigned int N, + const unsigned int numberCoreVectors, + dataTypes::number* nonCoreVectorsArray, + const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + const dealii::ScaLAPACKMatrix & rotationMatPar, + const bool rotationMatTranspose=false); + #endif } } diff --git a/include/meshMovement.h b/include/meshMovement.h index 34a8a2c77..6fb62bb2f 100644 --- a/include/meshMovement.h +++ b/include/meshMovement.h @@ -46,7 +46,7 @@ namespace dftfe { * @param[in] domainBoundingVectors domain vectors of the domain corresponding to * the triangulation object. */ - void init(const Triangulation<3,3> & triangulation, + void init(Triangulation<3,3> & triangulation, const std::vector > & domainBoundingVectors); /** @brief Re-initializes the required data-structures for a given triangulation @@ -88,15 +88,15 @@ namespace dftfe { double controllingParameter)=0; virtual void computeIncrement()=0; - /// Parallel distributed vector of displacements of the triangulation vertices - dealii::parallel::distributed::Vector d_incrementalDisplacementParallel; + /// vector of displacements of the triangulation vertices + Vector d_incrementalDisplacement; - Vector d_incrementalDisplacementSerial; bool d_isParallelMesh; //dealii based FE data structres FESystem FEMoveMesh; DoFHandler d_dofHandlerMoveMesh; + parallel::distributed::Triangulation<3> * triaPtr; IndexSet d_locally_owned_dofs; IndexSet d_locally_relevant_dofs; ConstraintMatrix d_constraintsMoveMesh; diff --git a/include/operator.h b/include/operator.h index c348a7b64..03b41e011 100644 --- a/include/operator.h +++ b/include/operator.h @@ -106,6 +106,7 @@ namespace dftfe{ const unsigned int numberComponents, const bool scaleFlag, const double scalar, + const bool useSinglePrec, dealii::parallel::distributed::Vector & Y) = 0; @@ -113,13 +114,11 @@ namespace dftfe{ /** * @brief Compute projection of the operator into a subspace spanned by a given orthogonal basis * - * @param X Vector of Vectors containing multi-wavefunction fields (though X does not - * change inside the function it is scaled inside HX function and rescaled back to - * avoid duplication of memory and hence is not const) + * @param X Vector of Vectors containing multi-wavefunction fields * @param numberComponents number of wavefunctions associated with a given node * @param ProjMatrix projected small matrix */ - virtual void XtHX(dealii::parallel::distributed::Vector & X, + virtual void XtHX(const std::vector & X, const unsigned int numberComponents, std::vector & ProjHam) = 0; @@ -133,7 +132,7 @@ namespace dftfe{ * @param projHamPar parallel ScaLAPACKMatrix which stores the computed projection * of the operation into the given subspace */ - virtual void XtHX(const dealii::parallel::distributed::Vector & X, + virtual void XtHX(const std::vector & X, const unsigned int numberComponents, const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, dealii::ScaLAPACKMatrix & projHamPar) = 0; diff --git a/include/triangulationManager.h b/include/triangulationManager.h index 135fb9a35..3216b91c7 100644 --- a/include/triangulationManager.h +++ b/include/triangulationManager.h @@ -110,7 +110,7 @@ namespace dftfe { * @brief returns constant reference to serial unmoved triangulation * */ - const parallel::distributed::Triangulation<3> & getSerialMeshUnmoved() const; + parallel::distributed::Triangulation<3> & getSerialMeshUnmoved(); /** * @brief returns reference to parallel moved triangulation @@ -122,14 +122,14 @@ namespace dftfe { * @brief returns constant reference to parallel unmoved triangulation * */ - const parallel::distributed::Triangulation<3> & getParallelMeshUnmoved() const; + parallel::distributed::Triangulation<3> & getParallelMeshUnmoved(); /** * @brief returns constant reference to parallel unmoved previous triangulation * (triangulation used in the last ground state solve during structure optimization). * */ - const parallel::distributed::Triangulation<3> & getParallelMeshUnmovedPrevious() const; + parallel::distributed::Triangulation<3> & getParallelMeshUnmovedPrevious(); /** * @brief returns constant reference to serial unmoved previous triangulation @@ -137,7 +137,7 @@ namespace dftfe { * structure optimization). * */ - const parallel::distributed::Triangulation<3> & getSerialMeshUnmovedPrevious() const; + parallel::distributed::Triangulation<3> & getSerialMeshUnmovedPrevious(); /** * @brief resets the vertices of parallel mesh moved to umoved. This is required before diff --git a/include/vectorUtilities.h b/include/vectorUtilities.h index 856e84c8f..c8b9b3fb9 100644 --- a/include/vectorUtilities.h +++ b/include/vectorUtilities.h @@ -63,6 +63,57 @@ namespace dftfe{ std::vector > & flattenedArrayCellLocalProcIndexId); +#ifdef USE_COMPLEX + /** @brief Copies a single field component from a flattenedArray STL + * vector containing multiple component fields to a 2-component field (real and complex) + * parallel distributed vector. + * + * @param[in] flattenedArray flattened STL vector with multiple component fields + * @param[in] totalNumberComponents total number of component fiels in flattenedArray + * @param[in] componentIndexRange desired range field components + * [componentIndexRange.first,componentIndexRange.second) + * @param[in] localProcDofIndicesReal local dof indices in the current processor + * which correspond to component-1 of 2-component parallel distributed array + * @param[in] localProcDofIndicesImag local dof indices in the current processor + * which correspond to component-2 of 2-component parallel distributed array + * @param[out] componentVectors vector of two component field parallel distributed vectors with + * the values corresponding to fields of componentIndexRange of flattenedArray. + * componentVectors is expected to be of the size + * componentIndexRange.second-componentIndexRange.first. Further, + * each entry of componentVectors is assumed to be already initialized with the 2-component + * version of the same single component partitioner used in the creation of the flattenedArray + * partitioner. + */ + void copyFlattenedSTLVecToSingleCompVec + (const std::vector> & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + const std::vector & localProcDofIndicesReal, + const std::vector & localProcDofIndicesImag, + std::vector> & componentVectors); + +#else + /** @brief Copies a single field component from a flattenedArray STL + * vector containing multiple component fields to a single field parallel distributed vector. + * + * @param[in] flattenedArray flattened STL vector with multiple component fields + * @param[in] totalNumberComponents total number of component fiels in flattenedArray + * @param[in] componentIndexRange desired range field components + * [componentIndexRange.first,componentIndexRange.second) + * @param[out] componentVectors vector of parallel distributed vectors with fields + * corresponding to componentIndexRange. componentVectors is expected to be of the size + * componentIndexRange.second-componentIndexRange.first. Further, each entry of + * componentVectors is assumed to be already initialized with the same single component + * partitioner used in the creation of the flattenedArray partitioner. + */ + void copyFlattenedSTLVecToSingleCompVec + (const std::vector & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + std::vector> & componentVectors); + +#endif + #ifdef USE_COMPLEX /** @brief Copies a single field component from a flattenedArray parallel distributed * vector containing multiple component fields to a 2-component field (real and complex) @@ -83,6 +134,8 @@ namespace dftfe{ * each entry of componentVectors is assumed to be already initialized with the 2-component * version of the same single component partitioner used in the creation of the flattenedArray * partitioner. + * @param[in] isFlattenedDealiiGhostValuesUpdated default is false. Use true for + * optimization if update ghost values has already been called in the flattened dealii vec. */ void copyFlattenedDealiiVecToSingleCompVec (const dealii::parallel::distributed::Vector> & flattenedArray, @@ -90,7 +143,8 @@ namespace dftfe{ const std::pair componentIndexRange, const std::vector & localProcDofIndicesReal, const std::vector & localProcDofIndicesImag, - std::vector> & componentVectors); + std::vector> & componentVectors, + const bool isFlattenedDealiiGhostValuesUpdated=false); #else /** @brief Copies a single field component from a flattenedArray parallel distributed @@ -105,12 +159,15 @@ namespace dftfe{ * componentIndexRange.second-componentIndexRange.first. Further, each entry of * componentVectors is assumed to be already initialized with the same single component * partitioner used in the creation of the flattenedArray partitioner. + * @param[in] isFlattenedDealiiGhostValuesUpdated default is false. Use true for + * optimization if update ghost values has already been called in the flattened dealii vec. */ void copyFlattenedDealiiVecToSingleCompVec (const dealii::parallel::distributed::Vector & flattenedArray, const unsigned int totalNumberComponents, const std::pair componentIndexRange, - std::vector> & componentVectors); + std::vector> & componentVectors, + const bool isFlattenedDealiiGhostValuesUpdated=false); #endif @@ -163,6 +220,57 @@ namespace dftfe{ const std::pair componentIndexRange, const std::vector> & componentVectors); +#endif + +#ifdef USE_COMPLEX + /** @brief Copies to a flattenedArray stl + * vector containing multiple component fields from a 2-component field (real and complex) + * parallel distributed vector. + * + * @param[out] flattenedArray flattened stl vector with multiple component fields + * @param[in] totalNumberComponents total number of component fiels in flattenedArray + * @param[in] componentIndexRange desired range field components + * [componentIndexRange.first,componentIndexRange.second) + * @param[in] localProcDofIndicesReal local dof indices in the current processor + * which correspond to component-1 of 2-component parallel distributed array + * @param[in] localProcDofIndicesImag local dof indices in the current processor + * which correspond to component-2 of 2-component parallel distributed array + * @param[in] componentVectors vector of two component field parallel distributed vectors with + * the values corresponding to fields of componentIndexRange of flattenedArray. + * componentVectors is expected to be of the size + * componentIndexRange.second-componentIndexRange.first. Further, + * each entry of componentVectors is assumed to be already initialized with the 2-component + * version of the same single component partitioner used in the creation of the flattenedArray + * partitioner. + */ + void copySingleCompVecToFlattenedSTLVec + (std::vector> & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + const std::vector & localProcDofIndicesReal, + const std::vector & localProcDofIndicesImag, + const std::vector> & componentVectors); + +#else + /** @brief Copies to a flattenedArray stl + * vector containing multiple component fields from a single field parallel distributed vector. + * + * @param[out] flattenedArray flattened stl vector with multiple component fields + * @param[in] totalNumberComponents total number of component fiels in flattenedArray + * @param[in] componentIndexRange desired range field components + * [componentIndexRange.first,componentIndexRange.second) + * @param[in] componentVectors vector of parallel distributed vectors with fields + * corresponding to componentIndexRange. componentVectors is expected to be of the size + * componentIndexRange.second-componentIndexRange.first. Further, each entry of + * componentVectors is assumed to be already initialized with the same single component + * partitioner used in the creation of the flattenedArray partitioner. + */ + void copySingleCompVecToFlattenedSTLVec + (std::vector & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + const std::vector> & componentVectors); + #endif } diff --git a/src/dft/density.cc b/src/dft/density.cc index 26a49f68b..79aa401d5 100644 --- a/src/dft/density.cc +++ b/src/dft/density.cc @@ -78,7 +78,12 @@ void dftClass::compute_rhoOut() const unsigned int eigenVectorsBlockSize=std::min(dftParameters::wfcBlockSize, bandGroupLowHighPlusOneIndices[1]); + const unsigned int localVectorSize = d_eigenVectorsFlattenedSTL[0].size()/numEigenValues; + std::vector> eigenVectors((1+dftParameters::spinPolarized)*d_kPointWeights.size()); + + std::vector > eigenVectorsFlattenedBlock((1+dftParameters::spinPolarized)*d_kPointWeights.size()); + for(unsigned int ivec = 0; ivec < numEigenValues; ivec+=eigenVectorsBlockSize) { const unsigned int currentBlockSize=std::min(eigenVectorsBlockSize,numEigenValues-ivec); @@ -90,29 +95,61 @@ void dftClass::compute_rhoOut() eigenVectors[kPoint].resize(currentBlockSize); for(unsigned int i= 0; i < currentBlockSize; ++i) eigenVectors[kPoint][i].reinit(d_tempEigenVec); + + + vectorTools::createDealiiVector(matrix_free_data.get_vector_partitioner(), + currentBlockSize, + eigenVectorsFlattenedBlock[kPoint]); + eigenVectorsFlattenedBlock[kPoint] = dataTypes::number(0.0); } + + constraintsNoneDataInfo.precomputeMaps(matrix_free_data.get_vector_partitioner(), + eigenVectorsFlattenedBlock[0].get_partitioner(), + currentBlockSize); } - if ((ivec+currentBlockSize)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && + if((ivec+currentBlockSize)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && (ivec+currentBlockSize)>bandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) { + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + { + + + for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) + for(unsigned int iWave = 0; iWave < currentBlockSize; ++iWave) + eigenVectorsFlattenedBlock[kPoint].local_element(iNode*currentBlockSize+iWave) + = d_eigenVectorsFlattenedSTL[kPoint][iNode*numEigenValues+ivec+iWave]; + + constraintsNoneDataInfo.distribute(eigenVectorsFlattenedBlock[kPoint], + currentBlockSize); + eigenVectorsFlattenedBlock[kPoint].update_ghost_values(); - for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) - { #ifdef USE_COMPLEX vectorTools::copyFlattenedDealiiVecToSingleCompVec - (d_eigenVectorsFlattened[kPoint], - numEigenValues, - std::make_pair(ivec,ivec+currentBlockSize), + (eigenVectorsFlattenedBlock[kPoint], + currentBlockSize, + std::make_pair(0,currentBlockSize), localProc_dof_indicesReal, localProc_dof_indicesImag, - eigenVectors[kPoint]); + eigenVectors[kPoint], + false); + + //FIXME: The underlying call to update_ghost_values + //is required because currently localProc_dof_indicesReal + //and localProc_dof_indicesImag are only available for + //locally owned nodes. Once they are also made available + //for ghost nodes- use true for the last argument in + //copyFlattenedDealiiVecToSingleCompVec(..) above and supress + //underlying call. + for(unsigned int i= 0; i < currentBlockSize; ++i) + eigenVectors[kPoint][i].update_ghost_values(); #else vectorTools::copyFlattenedDealiiVecToSingleCompVec - (d_eigenVectorsFlattened[kPoint], - numEigenValues, - std::make_pair(ivec,ivec+currentBlockSize), - eigenVectors[kPoint]); + (eigenVectorsFlattenedBlock[kPoint], + currentBlockSize, + std::make_pair(0,currentBlockSize), + eigenVectors[kPoint], + true); #endif } @@ -194,17 +231,26 @@ void dftClass::compute_rhoOut() for(unsigned int iEigenVec=0; iEigenVec fermiEnergyDown) + partialOccupancy2 = 0.0 ; + if (eigenValues[kPoint][ivec+iEigenVec] > fermiEnergyUp) + partialOccupancy = 0.0 ; + + } for(unsigned int q=0; q::compute_rhoOut() gradRhoInValsSpinPolarized.pop_front(); gradRhoOutValsSpinPolarized.pop_front(); } + + if (dftParameters::mixingMethod=="BROYDEN") + { + dFBroyden.pop_front(); + uBroyden.pop_front(); + if(dftParameters::xc_id == 4)//GGA + { + graddFBroyden.pop_front(); + gradUBroyden.pop_front(); + } + } + } } diff --git a/src/dft/dft.cc b/src/dft/dft.cc index 44c006e70..f6c802e7d 100644 --- a/src/dft/dft.cc +++ b/src/dft/dft.cc @@ -315,6 +315,26 @@ namespace dftfe { } } + if (dftParameters::constraintMagnetization) + { + numElectronsUp = std::ceil(static_cast(numElectrons)/2.0); + numElectronsDown = numElectrons - numElectronsUp; + // + int netMagnetization = std::round(2.0 * static_cast(numElectrons) * dftParameters::start_magnetization ) ; + // + while ( (numElectronsUp-numElectronsDown) < std::abs(netMagnetization)) + { + numElectronsDown -=1 ; + numElectronsUp +=1 ; + } + // + if(dftParameters::verbosity >= 1) + { + pcout <<" Number of spin up electrons "< & triangulationPar = d_mesh.getParallelMeshMoved(); + parallel::distributed::Triangulation<3> & triangulationPar = d_mesh.getParallelMeshMoved(); // //initialize dofHandlers and hanging-node constraints and periodic constraints on the unmoved Mesh @@ -577,7 +597,8 @@ namespace dftfe { computingTimerStandard.enter_section("KSDFT problem initialization"); initImageChargesUpdateKPoints(); - updatePrevMeshDataStructures(); + if (dftParameters::isIonOpt) + updatePrevMeshDataStructures(); // //reinitialize dirichlet BCs for total potential and vSelf poisson solutions // @@ -718,7 +739,7 @@ namespace dftfe { double norm = 1.0; //CAUTION: Choosing a looser tolerance might lead to failed tests const double adaptiveChebysevFilterPassesTol = dftParameters::chebyshevTolerance; - + const double mixedPrecStoppingNorm=dftParameters::mixedPrecStoppingTol; pcout<=1) - pcout<<"Anderson mixing, L2 norm of electron-density difference: "<< norm<< std::endl; + pcout<<"L2 norm of electron-density difference: "<< norm<< std::endl; } + d_phiTotRhoIn = d_phiTotRhoOut; } else if (dftParameters::restartFromChk && dftParameters::chkType==2) @@ -862,7 +892,8 @@ namespace dftfe { kohnShamDFTEigenOperator, subspaceIterationSolver, residualNormWaveFunctionsAllkPointsSpins[s][kPoint], - true); + true, + norm(matrix_free_data.get_vector_partitioner(), + numEigenValues, + d_eigenVectorsFlattened[kPoint]); + + + d_eigenVectorsFlattened[kPoint] = dataTypes::number(0.0); + + } + + + Assert(d_eigenVectorsFlattened[0].local_size()==d_eigenVectorsFlattenedSTL[0].size(), + dealii::ExcMessage("Incorrect local sizes of STL and dealii arrays")); + + constraintsNoneDataInfo.precomputeMaps(matrix_free_data.get_vector_partitioner(), + d_eigenVectorsFlattened[0].get_partitioner(), + numEigenValues); + + const unsigned int localVectorSize = d_eigenVectorsFlattenedSTL[0].size()/numEigenValues; + + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + { + for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) + { + for(unsigned int iWave = 0; iWave < numEigenValues; ++iWave) + { + d_eigenVectorsFlattened[kPoint].local_element(iNode*numEigenValues+iWave) + = d_eigenVectorsFlattenedSTL[kPoint][iNode*numEigenValues+iWave]; + } + } + + constraintsNoneDataInfo.distribute(d_eigenVectorsFlattened[kPoint], + numEigenValues); + + } + + + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + { + d_eigenVectorsFlattenedSTL[kPoint].clear(); + std::vector().swap(d_eigenVectorsFlattenedSTL[kPoint]); + } + + } + if (dftParameters::isIonForce) { if(dftParameters::selfConsistentSolverTolerance>1e-5 && dftParameters::verbosity>=1) pcout<<"DFT-FE Warning: Ion force accuracy may be affected for the given scf iteration solve tolerance: "<computeAtomsForces(); @@ -1406,6 +1515,41 @@ namespace dftfe { } #endif + if(dftParameters::isIonForce || dftParameters::isCellStress) + { + // + //Create the full STL array from dealii flattened array + // + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + d_eigenVectorsFlattenedSTL[kPoint].resize(numEigenValues*matrix_free_data.get_vector_partitioner()->local_size(),dataTypes::number(0.0)); + + Assert(d_eigenVectorsFlattened[0].local_size()==d_eigenVectorsFlattenedSTL[0].size(), + dealii::ExcMessage("Incorrect local sizes of STL and dealii arrays")); + + const unsigned int localVectorSize = d_eigenVectorsFlattenedSTL[0].size()/numEigenValues; + + // + //copy the data into STL array + // + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + { + for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) + { + for(unsigned int iWave = 0; iWave < numEigenValues; ++iWave) + { + d_eigenVectorsFlattenedSTL[kPoint][iNode*numEigenValues+iWave] = d_eigenVectorsFlattened[kPoint].local_element(iNode*numEigenValues+iWave); + } + } + } + + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + { + d_eigenVectorsFlattened[kPoint].reinit(0); + } + + } + + //if (dftParameters::electrostaticsPRefinement) // computeElectrostaticEnergyPRefined(); @@ -1472,8 +1616,8 @@ namespace dftfe { dealii::parallel::distributed::Vector rhoNodalField; matrix_free_data.initialize_dof_vector(rhoNodalField,densityDofHandlerIndex); rhoNodalField=0; - std::function::active_cell_iterator & cell , - const unsigned int q)> funcRho = + std::function::active_cell_iterator & cell , + const unsigned int q)> funcRho = [&](const typename dealii::DoFHandler<3>::active_cell_iterator & cell , const unsigned int q) {return (*rhoOutValues).find(cell->id())->second[q];}; @@ -1491,8 +1635,8 @@ namespace dftfe { { matrix_free_data.initialize_dof_vector(rhoNodalFieldSpin0,densityDofHandlerIndex); rhoNodalFieldSpin0=0; - std::function::active_cell_iterator & cell , - const unsigned int q)> funcRhoSpin0 = + std::function::active_cell_iterator & cell , + const unsigned int q)> funcRhoSpin0 = [&](const typename dealii::DoFHandler<3>::active_cell_iterator & cell , const unsigned int q) {return (*rhoOutValuesSpinPolarized).find(cell->id())->second[2*q];}; @@ -1507,8 +1651,8 @@ namespace dftfe { matrix_free_data.initialize_dof_vector(rhoNodalFieldSpin1,densityDofHandlerIndex); rhoNodalFieldSpin1=0; - std::function::active_cell_iterator & cell , - const unsigned int q)> funcRhoSpin1 = + std::function::active_cell_iterator & cell , + const unsigned int q)> funcRhoSpin1 = [&](const typename dealii::DoFHandler<3>::active_cell_iterator & cell , const unsigned int q) {return (*rhoOutValuesSpinPolarized).find(cell->id())->second[2*q+1];}; @@ -1555,3 +1699,4 @@ namespace dftfe { template class dftClass<12>; } + diff --git a/src/dft/energyCalculator.cc b/src/dft/energyCalculator.cc index c4d034c5d..8cad3bf77 100644 --- a/src/dft/energyCalculator.cc +++ b/src/dft/energyCalculator.cc @@ -51,7 +51,10 @@ namespace dftfe pcout < > & eigenValues, const std::vector & kPointWeights, const double fermiEnergy, + const double fermiEnergyUp, + const double fermiEnergyDown, const double TVal, const unsigned int spinPolarized, const dealii::ConditionalOStream & scout, @@ -102,26 +107,45 @@ namespace dftfe scout<<" Printing KS eigen values (spin split if this is a spin polarized calculation ) and fractional occupancies for kPoint " << (lowerBoundKindex + kPoint) << std::endl; scout << " " << std::endl ; } - for (unsigned int i=0; i2) scout << i<<" : "<< eigenValues[kPoint][i] << " " << partialOccupancy< fermiEnergyDown) + partialOccupancy2 = 0.0 ; + if (eigenValues[kPoint][i] > fermiEnergyUp) + partialOccupancy = 0.0 ; + + } + bandEnergyLocal+= partialOccupancy*kPointWeights[kPoint]*eigenValues[kPoint][i]; + bandEnergyLocal+= partialOccupancy2*kPointWeights[kPoint]*eigenValues[kPoint][i+numEigenValues]; // if (verbosity>2) scout<< i<<" : "<< eigenValues[kPoint][i] << " " << eigenValues[kPoint][i+numEigenValues] << " " << @@ -246,6 +270,8 @@ namespace dftfe dealii::Utilities::MPI::sum(internal::localBandEnergy(eigenValues, kPointWeights, fermiEnergy, + fermiEnergy, + fermiEnergy, dftParameters::TVal, dftParameters::spinPolarized, scout, @@ -420,6 +446,8 @@ namespace dftfe const std::vector > & eigenValues, const std::vector & kPointWeights, const double fermiEnergy, + const double fermiEnergyUp, + const double fermiEnergyDown, const xc_func_type & funcX, const xc_func_type & funcC, const vectorType & phiTotRhoIn, @@ -454,6 +482,8 @@ namespace dftfe dealii::Utilities::MPI::sum(internal::localBandEnergy(eigenValues, kPointWeights, fermiEnergy, + fermiEnergyUp, + fermiEnergyDown, dftParameters::TVal, dftParameters::spinPolarized, scout, diff --git a/src/dft/fermiEnergy.cc b/src/dft/fermiEnergy.cc index e24e5ddb4..8aa7d1b19 100644 --- a/src/dft/fermiEnergy.cc +++ b/src/dft/fermiEnergy.cc @@ -228,3 +228,38 @@ void dftClass::compute_fermienergy(const std::vector=2) pcout<< "Fermi energy : "<< fermiEnergy< +void dftClass::compute_fermienergy_constraintMagnetization(const std::vector> & eigenValuesInput) +{ + + + int countUp = numElectronsUp; + int countDown = numElectronsDown; + + + std::vector eigenValuesAllkPointsUp, eigenValuesAllkPointsDown; + for(int kPoint = 0; kPoint < d_kPointWeights.size(); ++kPoint) + { + for(int statesIter = 0; statesIter < numEigenValues; ++statesIter) + { + eigenValuesAllkPointsUp.push_back(eigenValuesInput[kPoint][statesIter]); + eigenValuesAllkPointsDown.push_back(eigenValuesInput[kPoint][numEigenValues+statesIter]); + } + } + + std::sort(eigenValuesAllkPointsUp.begin(),eigenValuesAllkPointsUp.end()); + std::sort(eigenValuesAllkPointsDown.begin(),eigenValuesAllkPointsDown.end()); + + fermiEnergyUp = eigenValuesAllkPointsUp[countUp - 1] ; + fermiEnergyDown = eigenValuesAllkPointsDown[countDown - 1] ; + // + fermiEnergy = std::max(fermiEnergyUp, fermiEnergyDown) ; + // + if (dftParameters::verbosity==2) + { + pcout << "This is a constrained magnetization calculation " << std::endl ; + pcout<< "Fermi energy for spin up : "<< fermiEnergyUp<::initBoundaryConditions(){ std::vector > quadratureVector; quadratureVector.push_back(QGauss<1>(C_num1DQuad())); quadratureVector.push_back(QGaussLobatto<1>(FEOrder+1)); + quadratureVector.push_back(QGauss<1>(C_num1DQuadPSP())); // // diff --git a/src/dft/initElectronicFields.cc b/src/dft/initElectronicFields.cc index b083da37e..6bd5ad46c 100644 --- a/src/dft/initElectronicFields.cc +++ b/src/dft/initElectronicFields.cc @@ -110,11 +110,13 @@ void dftClass::initElectronicFields(const unsigned int usePreviousGroun { for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) { - vectorTools::createDealiiVector(matrix_free_data.get_vector_partitioner(), + /*vectorTools::createDealiiVector(matrix_free_data.get_vector_partitioner(), numEigenValues, - d_eigenVectorsFlattened[kPoint]); + d_eigenVectorsFlattened[kPoint]);*/ - d_eigenVectorsFlattened[kPoint] = dataTypes::number(0.0); + d_eigenVectorsFlattenedSTL[kPoint].resize(numEigenValues*matrix_free_data.get_vector_partitioner()->local_size(),dataTypes::number(0.0)); + + //d_eigenVectorsFlattened[kPoint] = dataTypes::number(0.0); } @@ -141,10 +143,7 @@ void dftClass::initElectronicFields(const unsigned int usePreviousGroun else if (usePreviousGroundStateFields==1) { for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) - vectorTools::createDealiiVector - (matrix_free_data.get_vector_partitioner(), - numEigenValues, - d_eigenVectorsFlattened[kPoint]); + d_eigenVectorsFlattenedSTL[kPoint].resize(numEigenValues*matrix_free_data.get_vector_partitioner()->local_size(),dataTypes::number(0.0)); pcout <::initElectronicFields(const unsigned int usePreviousGroun for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) { #ifdef USE_COMPLEX - vectorTools::copyFlattenedDealiiVecToSingleCompVec - (d_eigenVectorsFlattened[kPoint], + vectorTools::copyFlattenedSTLVecToSingleCompVec + (d_eigenVectorsFlattenedSTL[kPoint], numEigenValues, std::make_pair(0,numEigenValues), localProc_dof_indicesReal, localProc_dof_indicesImag, eigenVectors[kPoint]); #else - vectorTools::copyFlattenedDealiiVecToSingleCompVec - (d_eigenVectorsFlattened[kPoint], + vectorTools::copyFlattenedSTLVecToSingleCompVec + (d_eigenVectorsFlattenedSTL[kPoint], numEigenValues, std::make_pair(0,numEigenValues), eigenVectors[kPoint]); #endif - d_eigenVectorsFlattened[kPoint].reinit(0); + for(unsigned int i= 0; i < numEigenValues; ++i) + { + constraintsNoneEigenDataInfoPrev.distribute(eigenVectors[kPoint][i]); + eigenVectors[kPoint][i].update_ghost_values(); + } + + d_eigenVectorsFlattenedSTL[kPoint].clear(); + std::vector().swap(d_eigenVectorsFlattenedSTL[kPoint]); } initPsiAndRhoFromPreviousGroundStatePsi(eigenVectors); for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) { - vectorTools::createDealiiVector(matrix_free_data.get_vector_partitioner(), - numEigenValues, - d_eigenVectorsFlattened[kPoint]); + //Create the full STL array + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + d_eigenVectorsFlattenedSTL[kPoint].resize(numEigenValues*matrix_free_data.get_vector_partitioner()->local_size(), + dataTypes::number(0.0)); + #ifdef USE_COMPLEX - vectorTools::copySingleCompVecToFlattenedDealiiVec - (d_eigenVectorsFlattened[kPoint], + vectorTools::copySingleCompVecToFlattenedSTLVec + (d_eigenVectorsFlattenedSTL[kPoint], numEigenValues, std::make_pair(0,numEigenValues), localProc_dof_indicesReal, localProc_dof_indicesImag, eigenVectors[kPoint]); #else - vectorTools::copySingleCompVecToFlattenedDealiiVec - (d_eigenVectorsFlattened[kPoint], + vectorTools::copySingleCompVecToFlattenedSTLVec + (d_eigenVectorsFlattenedSTL[kPoint], numEigenValues, std::make_pair(0,numEigenValues), eigenVectors[kPoint]); @@ -206,9 +214,10 @@ void dftClass::initElectronicFields(const unsigned int usePreviousGroun } } - updatePrevMeshDataStructures(); + if (dftParameters::isIonOpt) + updatePrevMeshDataStructures(); - if (dftParameters::verbosity>=2) + if (dftParameters::verbosity>=2) if (dftParameters::spinPolarized==1) pcout<< std::endl<<"net magnetization: "<< totalMagnetization(rhoInValuesSpinPolarized) <::updatePrevMeshDataStructures() { matrix_free_data.initialize_dof_vector(d_tempEigenVecPrev,eigenDofHandlerIndex); + constraintsNoneEigenDataInfoPrev.initialize(d_tempEigenVecPrev.get_partitioner(), - constraintsNoneEigen); + constraintsNoneEigen); + // //update serial and parallel unmoved previous mesh // - if (dftParameters::isIonOpt || dftParameters::isCellOpt) - d_mesh.generateSerialAndParallelUnmovedPreviousMesh(atomLocations, + d_mesh.generateSerialAndParallelUnmovedPreviousMesh(atomLocations, d_imagePositions, d_domainBoundingVectors); if (dftParameters::verbosity>=4) diff --git a/src/dft/initPseudo-OV.cc b/src/dft/initPseudo-OV.cc index 2bdeebe13..891d36c1e 100644 --- a/src/dft/initPseudo-OV.cc +++ b/src/dft/initPseudo-OV.cc @@ -40,10 +40,14 @@ void dftClass::computeElementalOVProjectorKets() //get FE data structures // QGauss<3> quadrature(C_num1DQuad()); + QGauss<3> quadratureHigh(C_num1DQuadPSP()); + //FEValues<3> fe_values(FE, quadrature, update_values | update_gradients | update_JxW_values); - FEValues<3> fe_values(FE, quadrature, update_values | update_JxW_values| update_quadrature_points); + FEValues<3> fe_values(FE, dftParameters::useHigherQuadNLP?quadratureHigh:quadrature, + update_values | update_JxW_values| update_quadrature_points); const unsigned int numberNodesPerElement = FE.dofs_per_cell; - const unsigned int numberQuadraturePoints = quadrature.size(); + const unsigned int numberQuadraturePoints = dftParameters::useHigherQuadNLP?quadratureHigh.size() + :quadrature.size(); // @@ -58,9 +62,18 @@ void dftClass::computeElementalOVProjectorKets() d_nonLocalProjectorElementMatrices.clear(); d_nonLocalProjectorElementMatricesConjugate.clear(); d_nonLocalProjectorElementMatricesTranspose.clear(); + + d_nonLocalProjectorElementMatricesLowPrec.clear(); + d_nonLocalProjectorElementMatricesConjugateLowPrec.clear(); + d_nonLocalProjectorElementMatricesTransposeLowPrec.clear(); + d_nonLocalProjectorElementMatrices.resize(numberNonLocalAtoms); d_nonLocalProjectorElementMatricesConjugate.resize(numberNonLocalAtoms); d_nonLocalProjectorElementMatricesTranspose.resize(numberNonLocalAtoms); + + d_nonLocalProjectorElementMatricesLowPrec.resize(numberNonLocalAtoms); + d_nonLocalProjectorElementMatricesConjugateLowPrec.resize(numberNonLocalAtoms); + d_nonLocalProjectorElementMatricesTransposeLowPrec.resize(numberNonLocalAtoms); int cumulativeWaveSplineId = 0; int waveFunctionId; // @@ -100,6 +113,10 @@ void dftClass::computeElementalOVProjectorKets() d_nonLocalProjectorElementMatricesConjugate[iAtom].resize(numberElementsInAtomCompactSupport); d_nonLocalProjectorElementMatricesTranspose[iAtom].resize(numberElementsInAtomCompactSupport); + d_nonLocalProjectorElementMatricesLowPrec[iAtom].resize(numberElementsInAtomCompactSupport); + d_nonLocalProjectorElementMatricesConjugateLowPrec[iAtom].resize(numberElementsInAtomCompactSupport); + d_nonLocalProjectorElementMatricesTransposeLowPrec[iAtom].resize(numberElementsInAtomCompactSupport); + for(int iElemComp = 0; iElemComp < numberElementsInAtomCompactSupport; ++iElemComp) { @@ -116,11 +133,24 @@ void dftClass::computeElementalOVProjectorKets() d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp].resize(maxkPoints, std::vector > (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); + + d_nonLocalProjectorElementMatricesLowPrec[iAtom][iElemComp].resize(maxkPoints, + std::vector > (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); + d_nonLocalProjectorElementMatricesConjugateLowPrec[iAtom][iElemComp].resize(maxkPoints, + std::vector > (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); + d_nonLocalProjectorElementMatricesTransposeLowPrec[iAtom][iElemComp].resize(maxkPoints, + std::vector > (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); + #else d_nonLocalProjectorElementMatrices[iAtom][iElemComp].resize(maxkPoints, std::vector (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp].resize(maxkPoints, std::vector (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); + + d_nonLocalProjectorElementMatricesLowPrec[iAtom][iElemComp].resize(maxkPoints, + std::vector (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); + d_nonLocalProjectorElementMatricesTransposeLowPrec[iAtom][iElemComp].resize(maxkPoints, + std::vector (numberNodesPerElement*numberPseudoWaveFunctions,0.0)); #endif int iPsp = -1; @@ -255,7 +285,22 @@ void dftClass::computeElementalOVProjectorKets() tempImag += nonLocalProjectorBasisImag[maxkPoints*iQuadPoint+kPoint]*fe_values.shape_value(iNode,iQuadPoint)*fe_values.JxW(iQuadPoint); #else d_nonLocalProjectorElementMatrices[iAtom][iElemComp][kPoint][numberNodesPerElement*iPseudoWave + iNode] += nonLocalProjectorBasisReal[maxkPoints*iQuadPoint+kPoint]*fe_values.shape_value(iNode,iQuadPoint)*fe_values.JxW(iQuadPoint); - d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp][kPoint][numberPseudoWaveFunctions*iNode+iPseudoWave] += nonLocalProjectorBasisReal[maxkPoints*iQuadPoint+kPoint]*fe_values.shape_value(iNode,iQuadPoint)*fe_values.JxW(iQuadPoint); + + d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp][kPoint] + [numberPseudoWaveFunctions*iNode+iPseudoWave] + += nonLocalProjectorBasisReal[maxkPoints*iQuadPoint+kPoint]*fe_values.shape_value(iNode,iQuadPoint)*fe_values.JxW(iQuadPoint); + + d_nonLocalProjectorElementMatricesLowPrec[iAtom][iElemComp][kPoint] + [numberNodesPerElement*iPseudoWave + iNode] + += (dataTypes::numberLowPrec) + nonLocalProjectorBasisReal[maxkPoints*iQuadPoint+kPoint] + *fe_values.shape_value(iNode,iQuadPoint)*fe_values.JxW(iQuadPoint); + + d_nonLocalProjectorElementMatricesTransposeLowPrec[iAtom][iElemComp][kPoint] + [numberPseudoWaveFunctions*iNode+iPseudoWave] + += (dataTypes::numberLowPrec) + nonLocalProjectorBasisReal[maxkPoints*iQuadPoint+kPoint] + *fe_values.shape_value(iNode,iQuadPoint)*fe_values.JxW(iQuadPoint); #endif } #ifdef USE_COMPLEX @@ -265,8 +310,26 @@ void dftClass::computeElementalOVProjectorKets() d_nonLocalProjectorElementMatricesConjugate[iAtom][iElemComp][kPoint][numberNodesPerElement*iPseudoWave + iNode].real(tempReal); d_nonLocalProjectorElementMatricesConjugate[iAtom][iElemComp][kPoint][numberNodesPerElement*iPseudoWave + iNode].imag(-tempImag); - d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp][kPoint][numberPseudoWaveFunctions*iNode+iPseudoWave].real(tempReal); - d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp][kPoint][numberPseudoWaveFunctions*iNode+iPseudoWave].imag(tempImag); + d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp][kPoint] + [numberPseudoWaveFunctions*iNode+iPseudoWave].real(tempReal); + d_nonLocalProjectorElementMatricesTranspose[iAtom][iElemComp][kPoint] + [numberPseudoWaveFunctions*iNode+iPseudoWave].imag(tempImag); + + + d_nonLocalProjectorElementMatricesLowPrec[iAtom][iElemComp][kPoint] + [numberNodesPerElement*iPseudoWave + iNode].real((float)tempReal); + d_nonLocalProjectorElementMatricesLowPrec[iAtom][iElemComp][kPoint] + [numberNodesPerElement*iPseudoWave + iNode].imag((float)tempImag); + + d_nonLocalProjectorElementMatricesConjugateLowPrec[iAtom][iElemComp][kPoint] + [numberNodesPerElement*iPseudoWave + iNode].real((float)tempReal); + d_nonLocalProjectorElementMatricesConjugateLowPrec[iAtom][iElemComp][kPoint] + [numberNodesPerElement*iPseudoWave + iNode].imag((float)-tempImag); + + d_nonLocalProjectorElementMatricesTransposeLowPrec[iAtom][iElemComp][kPoint] + [numberPseudoWaveFunctions*iNode+iPseudoWave].real((float)tempReal); + d_nonLocalProjectorElementMatricesTransposeLowPrec[iAtom][iElemComp][kPoint] + [numberPseudoWaveFunctions*iNode+iPseudoWave].imag((float)tempImag); #endif } diff --git a/src/dft/initRho.cc b/src/dft/initRho.cc index 1be8b4332..76ab89f2a 100644 --- a/src/dft/initRho.cc +++ b/src/dft/initRho.cc @@ -32,6 +32,10 @@ void dftClass::clearRhoData() rhoOutValsSpinPolarized.clear(); gradRhoInValsSpinPolarized.clear(); gradRhoOutValsSpinPolarized.clear(); + dFBroyden.clear(); + graddFBroyden.clear() ; + uBroyden.clear(); + gradUBroyden.clear() ; } template diff --git a/src/dft/initUnmovedTriangulation.cc b/src/dft/initUnmovedTriangulation.cc index ec34bd824..dd5b2bc27 100644 --- a/src/dft/initUnmovedTriangulation.cc +++ b/src/dft/initUnmovedTriangulation.cc @@ -28,7 +28,7 @@ template -void dftClass::initUnmovedTriangulation(const parallel::distributed::Triangulation<3> & triangulation) +void dftClass::initUnmovedTriangulation(parallel::distributed::Triangulation<3> & triangulation) { computing_timer.enter_section("unmoved setup"); @@ -142,9 +142,9 @@ void dftClass::initUnmovedTriangulation(const parallel::distributed::Tr std::vector periodicDirectionVector; const std::array periodic = {dftParameters::periodicX, dftParameters::periodicY, dftParameters::periodicZ}; - for(unsigned int d= 0; d < 3; ++d) + for(unsigned int d= 0; d < 3; ++d) { - if(periodic[d]==1) + if(periodic[d]==1) { periodicDirectionVector.push_back(d); } diff --git a/src/dft/kohnShamEigenSolve.cc b/src/dft/kohnShamEigenSolve.cc index 06fb94b01..a99ec2aea 100644 --- a/src/dft/kohnShamEigenSolve.cc +++ b/src/dft/kohnShamEigenSolve.cc @@ -39,14 +39,14 @@ namespace internal const std::shared_ptr & singleComponentPartitioner, const unsigned int numberFields, const std::vector & localProc_dof_indicesReal, - dealii::parallel::distributed::Vector & fieldsArrayFlattened, + std::vector & fieldsArrayFlattened, dftUtils::constraintMatrixInfo & constraintsNoneDataInfo) { - constraintsNoneDataInfo.precomputeMaps(singleComponentPartitioner, - fieldsArrayFlattened.get_partitioner(), - numberFields); - const unsigned int numberDofs = fieldsArrayFlattened.local_size()/numberFields; + //constraintsNoneDataInfo.precomputeMaps(singleComponentPartitioner, + // fieldsArrayFlattened.get_partitioner(), + // numberFields); + const unsigned int numberDofs = fieldsArrayFlattened.size()/numberFields; const unsigned int inc = 1; for(unsigned int i = 0; i < numberDofs; ++i) @@ -56,20 +56,20 @@ namespace internal diagonal.local_element(localProc_dof_indicesReal[i]); zdscal_(&numberFields, &scalingCoeff, - fieldsArrayFlattened.begin()+i*numberFields, + &fieldsArrayFlattened[i*numberFields], &inc); #else double scalingCoeff = diagonal.local_element(i); dscal_(&numberFields, &scalingCoeff, - fieldsArrayFlattened.begin()+i*numberFields, + &fieldsArrayFlattened[i*numberFields], &inc); #endif } - constraintsNoneDataInfo.distribute(fieldsArrayFlattened, - numberFields); - fieldsArrayFlattened.update_ghost_values(); + //constraintsNoneDataInfo.distribute(fieldsArrayFlattened, + // numberFields); + //fieldsArrayFlattened.update_ghost_values(); } } @@ -81,7 +81,8 @@ void dftClass::kohnShamEigenSpaceCompute(const unsigned int spinType, kohnShamDFTOperatorClass & kohnShamDFTEigenOperator, chebyshevOrthogonalizedSubspaceIterationSolver & subspaceIterationSolver, std::vector & residualNormWaveFunctions, - const bool isSpectrumSplit) + const bool isSpectrumSplit, + const bool useMixedPrec) { computing_timer.enter_section("Chebyshev solve"); @@ -99,7 +100,7 @@ void dftClass::kohnShamEigenSpaceCompute(const unsigned int spinType, matrix_free_data.get_vector_partitioner(), numEigenValues, localProc_dof_indicesReal, - d_eigenVectorsFlattened[(1+dftParameters::spinPolarized)*kPointIndex+spinType], + d_eigenVectorsFlattenedSTL[(1+dftParameters::spinPolarized)*kPointIndex+spinType], constraintsNoneDataInfo); std::vector eigenValuesTemp(isSpectrumSplit?numEigenValuesRR @@ -109,12 +110,13 @@ void dftClass::kohnShamEigenSpaceCompute(const unsigned int spinType, bLow[(1+dftParameters::spinPolarized)*kPointIndex+spinType]); subspaceIterationSolver.solve(kohnShamDFTEigenOperator, - d_eigenVectorsFlattened[(1+dftParameters::spinPolarized)*kPointIndex+spinType], + d_eigenVectorsFlattenedSTL[(1+dftParameters::spinPolarized)*kPointIndex+spinType], d_tempEigenVec, numEigenValues, eigenValuesTemp, residualNormWaveFunctions, - interBandGroupComm); + interBandGroupComm, + useMixedPrec); // //scale the eigenVectors with M^{-1/2} to represent the wavefunctions in the usual FE basis @@ -123,7 +125,7 @@ void dftClass::kohnShamEigenSpaceCompute(const unsigned int spinType, matrix_free_data.get_vector_partitioner(), numEigenValues, localProc_dof_indicesReal, - d_eigenVectorsFlattened[(1+dftParameters::spinPolarized)*kPointIndex+spinType], + d_eigenVectorsFlattenedSTL[(1+dftParameters::spinPolarized)*kPointIndex+spinType], constraintsNoneDataInfo); // diff --git a/src/dft/mixingschemes.cc b/src/dft/mixingschemes.cc index f19648aea..ddd58aa8a 100644 --- a/src/dft/mixingschemes.cc +++ b/src/dft/mixingschemes.cc @@ -19,7 +19,24 @@ //source file for all the mixing schemes +void calldgesv(const unsigned int dimensionMatrix, + double *matrix, + double *matrixInverse) + { + int N = dimensionMatrix; + int NRHS=N, lda=N, ldb=N, info; + std::vector ipiv(N); + // + dgesv_(&N, &NRHS, &matrix[0], &lda, &ipiv[0], &matrixInverse[0], &ldb, &info); + /* Check for convergence */ + if( info != 0 ) { + std::cout << "zgesv algorithm failed to compute inverse " << info << std::endl; + exit( 1 ); + } + + + } //implement simple mixing scheme template @@ -224,6 +241,465 @@ double dftClass::mixing_anderson(){ return Utilities::MPI::sum(normValue, mpi_communicator); } + +//implement Broyden mixing scheme +template +double dftClass::mixing_broyden(){ + double normValue=0.0; + QGauss<3> quadrature(C_num1DQuad()); + FEValues<3> fe_values (FE, quadrature, update_JxW_values); + const unsigned int num_quad_points = quadrature.size(); + // + int N = dFBroyden.size() + 1; + + // + std::map > delRho, delGradRho ; + dFBroyden.push_back(std::map >()); + uBroyden.push_back(std::map >()); + if (dftParameters::xc_id == 4) + { + graddFBroyden.push_back(std::map >()); + gradUBroyden.push_back(std::map >()); + } + // + double FOld ; + std::vector gradFOld (3,0.0) ; + // + //parallel loop over all elements + double dfMag = 0.0, dfMagLoc=0.0 ; + double wtTemp = 0.0, wtTempLoc=0.0 ; + double w0Loc = 0.0 ; + // + typename DoFHandler<3>::active_cell_iterator cell = dofHandler.begin_active(), endc = dofHandler.end(); + for (; cell!=endc; ++cell) { + if (cell->is_locally_owned()){ + // + (dFBroyden[N-1])[cell->id()]=std::vector(num_quad_points); + delRho[cell->id()]=std::vector(num_quad_points); + if (N==1) + FBroyden[cell->id()]=std::vector(num_quad_points); + // + if (dftParameters::xc_id == 4) + { + (graddFBroyden[N-1])[cell->id()]=std::vector(3*num_quad_points); + delGradRho[cell->id()]=std::vector(3*num_quad_points); + if (N==1) + gradFBroyden[cell->id()]=std::vector(3*num_quad_points); + } + fe_values.reinit (cell); + for (unsigned int q_point=0; q_pointid()][q_point])- ((rhoInVals[0])[cell->id()][q_point]); + w0Loc += FOld * FOld * fe_values.JxW(q_point) ; + if (dftParameters::xc_id == 4) + { + for (unsigned int dir=0; dir < 3; ++dir) + gradFOld[dir] = ((gradRhoOutVals[0])[cell->id()][3*q_point+dir])- ((gradRhoInVals[0])[cell->id()][3*q_point+dir]); + } + } + else + { + FOld = FBroyden[cell->id()][q_point] ; + if (dftParameters::xc_id == 4) + for (unsigned int dir=0; dir < 3; ++dir) + gradFOld[dir] = gradFBroyden[cell->id()][3*q_point+dir] ; + } + // + FBroyden[cell->id()][q_point] = (rhoOutVals[N])[cell->id()][q_point]- (rhoInVals[N])[cell->id()][q_point]; + delRho[cell->id()][q_point] = (rhoInVals[N])[cell->id()][q_point]- (rhoInVals[N-1])[cell->id()][q_point]; + // + (dFBroyden[N-1])[cell->id()][q_point] = FBroyden[cell->id()][q_point]- FOld; + if (dftParameters::xc_id == 4) + { + for (unsigned int dir=0; dir < 3; ++dir) { + delGradRho[cell->id()][3*q_point+dir] = (gradRhoInVals[N])[cell->id()][3*q_point + dir]- (gradRhoInVals[N-1])[cell->id()][3*q_point+dir]; + gradFBroyden[cell->id()][3*q_point+dir] = (gradRhoOutVals[N])[cell->id()][3*q_point + dir]- (gradRhoInVals[N])[cell->id()][3*q_point+dir]; + (graddFBroyden[N-1])[cell->id()][3*q_point+dir] = gradFBroyden[cell->id()][3*q_point+dir]- gradFOld[dir]; + } + } + dfMagLoc += (dFBroyden[N-1])[cell->id()][q_point] * (dFBroyden[N-1])[cell->id()][q_point] *fe_values.JxW(q_point); + wtTempLoc += FBroyden[cell->id()][q_point] * FBroyden[cell->id()][q_point] *fe_values.JxW(q_point) ; + } + } + } + // + wtTemp=Utilities::MPI::sum(wtTempLoc, mpi_communicator); + dfMag=Utilities::MPI::sum(dfMagLoc, mpi_communicator); + if (N==1) { + w0Broyden = Utilities::MPI::sum(w0Loc, mpi_communicator); + w0Broyden = std::pow(w0Broyden, -0.5 ) ; + } + // Comment out following line, for using w0 computed from simply mixed rho (not recommended) + w0Broyden = 0.0 ; + // + wtTemp = std::pow(wtTemp, -0.5 ) ; + // + // Comment out push_back(1.0) and uncomment push_back(wtTemp) to include history dependence in wtBroyden (not recommended) + //wtBroyden.push_back(wtTemp) ; + wtBroyden.push_back(1.0) ; + // + // + double G = dftParameters::mixingParameter ; + // + std::vector c(N, 0.0) , invBeta(N*N, 0.0), beta(N*N, 0.0), gamma(N, 0.0), cLoc(N, 0.0) , invBetaLoc(N*N, 0.0) ; + // + cell = dofHandler.begin_active(), endc = dofHandler.end(); + for (; cell!=endc; ++cell) + if (cell->is_locally_owned()) + { + (uBroyden[N-1])[cell->id()]=std::vector(num_quad_points); + if (dftParameters::xc_id == 4) + (gradUBroyden[N-1])[cell->id()]=std::vector(3*num_quad_points); + fe_values.reinit (cell); + // + for (unsigned int q_point=0; q_pointid()][q_point] /= dfMag ; + delRho[cell->id()][q_point] /= dfMag ; + (uBroyden[N-1])[cell->id()][q_point] = G * (dFBroyden[N-1])[cell->id()][q_point] + delRho[cell->id()][q_point] ; + // + if (dftParameters::xc_id == 4) + { + for (unsigned int dir=0; dir < 3; ++dir) { + (graddFBroyden[N-1])[cell->id()][3*q_point+dir] /= dfMag ; + delGradRho[cell->id()][3*q_point+dir] /= dfMag ; + (gradUBroyden[N-1])[cell->id()][3*q_point+dir] = G * (graddFBroyden[N-1])[cell->id()][3*q_point+dir] + delGradRho[cell->id()][3*q_point+dir] ; + } + } + // + for (unsigned int k = 0; k < N ; ++k) { + cLoc[k] += wtBroyden[k] * (dFBroyden[k])[cell->id()][q_point] * FBroyden[cell->id()][q_point] *fe_values.JxW(q_point); + for (unsigned int l = k; l < N ; ++l) + { + invBetaLoc[N*k + l] += wtBroyden[k] * wtBroyden[l] * (dFBroyden[k])[cell->id()][q_point] * (dFBroyden[l])[cell->id()][q_point] *fe_values.JxW(q_point); + invBetaLoc[N*l + k] = invBetaLoc[N*k + l] ; + } + } + } + } + // + for (unsigned int k = 0; k < N ; ++k) { + for (unsigned int l = 0; l < N ; ++l) { + invBeta[N*k + l]=Utilities::MPI::sum(invBetaLoc[N*k + l], mpi_communicator); + if (l==k) + { + invBeta[N*l + l] = w0Broyden*w0Broyden + invBeta[N*l + l] ; + beta[N*l + l] = 1.0 ; + } + } + c[k]=Utilities::MPI::sum(cLoc[k], mpi_communicator); + } + + // + // Invert beta + // + calldgesv(N, + &invBeta[0], + &beta[0]); + + + for (unsigned int m = 0; m < N ; ++m) + for (unsigned int l = 0; l < N ; ++l) + gamma[m] += c[l] * beta[N*m + l] ; + // + std::map > rhoInValuesOld= *rhoInValues; + rhoInVals.push_back(std::map >()); + rhoInValues=&(rhoInVals.back()); + // + std::map > gradRhoInValuesOld ; + if (dftParameters::xc_id == 4) + { + gradRhoInValuesOld=*gradRhoInValues; + gradRhoInVals.push_back(std::map >()); + gradRhoInValues=&(gradRhoInVals.back()); + } + // + cell = dofHandler.begin_active(); + for (; cell!=endc; ++cell) { + if (cell->is_locally_owned()){ + (*rhoInValues)[cell->id()]=std::vector(num_quad_points); + if (dftParameters::xc_id == 4) + (*gradRhoInValues)[cell->id()]=std::vector(3*num_quad_points); + fe_values.reinit (cell); + for (unsigned int q_point=0; q_pointid()][q_point]-(*rhoOutValues)[cell->id()][q_point],2.0)*fe_values.JxW(q_point);; + (*rhoInValues)[cell->id()][q_point] = rhoInValuesOld[cell->id()][q_point] + G * FBroyden[cell->id()][q_point] ; + if (dftParameters::xc_id == 4) + for (unsigned int dir=0; dir < 3; ++dir) + (*gradRhoInValues)[cell->id()][3*q_point + dir] = gradRhoInValuesOld[cell->id()][3*q_point + dir] + G * gradFBroyden[cell->id()][3*q_point+dir] ; + // + for (int i = 0; i < N; ++i){ + (*rhoInValues)[cell->id()][q_point] -= wtBroyden[i] * gamma[i] * (uBroyden[i])[cell->id()][q_point] ; + if (dftParameters::xc_id == 4) + for (unsigned int dir=0; dir < 3; ++dir) + (*gradRhoInValues)[cell->id()][3*q_point + dir] -= wtBroyden[i] * gamma[i] * (gradUBroyden[i])[cell->id()][3*q_point+dir] ; + } + } + } + } + // + // + + + + + return Utilities::MPI::sum(normValue, mpi_communicator); +} + + + +//implement Broyden mixing scheme +template +double dftClass::mixing_broyden_spinPolarized(){ + double normValue=0.0; + QGauss<3> quadrature(C_num1DQuad()); + FEValues<3> fe_values (FE, quadrature, update_JxW_values); + const unsigned int num_quad_points = quadrature.size(); + // + int N = dFBroyden.size() + 1; + // + std::map > delRho, delGradRho ; + dFBroyden.push_back(std::map >()); + uBroyden.push_back(std::map >()); + if (dftParameters::xc_id == 4) + { + graddFBroyden.push_back(std::map >()); + gradUBroyden.push_back(std::map >()); + } + // + double FOld ; + std::vector gradFOld (3,0.0) ; + // + //parallel loop over all elements + double dfMag = 0.0, dfMagLoc=0.0 ; + double wtTemp = 0.0, wtTempLoc=0.0 ; + double w0Loc = 0.0 ; + // + typename DoFHandler<3>::active_cell_iterator cell = dofHandler.begin_active(), endc = dofHandler.end(); + for (; cell!=endc; ++cell) { + if (cell->is_locally_owned()){ + // + (dFBroyden[N-1])[cell->id()]=std::vector(2*num_quad_points); + delRho[cell->id()]=std::vector(2*num_quad_points); + if (N==1) + FBroyden[cell->id()]=std::vector(2*num_quad_points); + // + if (dftParameters::xc_id == 4) + { + (graddFBroyden[N-1])[cell->id()]=std::vector(6*num_quad_points); + delGradRho[cell->id()]=std::vector(6*num_quad_points); + if (N==1) + gradFBroyden[cell->id()]=std::vector(6*num_quad_points); + } + fe_values.reinit (cell); + for (unsigned int q_point=0; q_point<2*num_quad_points; ++q_point){ // factor 2 due to spin splitting + if (N==1){ + FOld = ((rhoOutValsSpinPolarized[0])[cell->id()][q_point])- ((rhoInValsSpinPolarized[0])[cell->id()][q_point]); + //w0Loc += FOld * FOld * fe_values.JxW(q_point) ; + //F[cell->id()]=std::vector(num_quad_points); + if (dftParameters::xc_id == 4) + { + //gradF[cell->id()]=std::vector(6*num_quad_points); + for (unsigned int dir=0; dir < 3; ++dir) + gradFOld[dir] = ((gradRhoOutValsSpinPolarized[0])[cell->id()][3*q_point+dir])- ((gradRhoInValsSpinPolarized[0])[cell->id()][3*q_point+dir]); + } + } + else + { + FOld = FBroyden[cell->id()][q_point] ; + if (dftParameters::xc_id == 4) + for (unsigned int dir=0; dir < 3; ++dir) + gradFOld[dir] = gradFBroyden[cell->id()][3*q_point+dir] ; + } + + FBroyden[cell->id()][q_point] = (rhoOutValsSpinPolarized[N])[cell->id()][q_point]- (rhoInValsSpinPolarized[N])[cell->id()][q_point]; + delRho[cell->id()][q_point] = (rhoInValsSpinPolarized[N])[cell->id()][q_point]- (rhoInValsSpinPolarized[N-1])[cell->id()][q_point]; + // + (dFBroyden[N-1])[cell->id()][q_point] = FBroyden[cell->id()][q_point]- FOld; + if (dftParameters::xc_id == 4) + { + for (unsigned int dir=0; dir < 3; ++dir) { + delGradRho[cell->id()][3*q_point+dir] = (gradRhoInValsSpinPolarized[N])[cell->id()][3*q_point + dir]- (gradRhoInValsSpinPolarized[N-1])[cell->id()][3*q_point+dir]; + gradFBroyden[cell->id()][3*q_point+dir] = (gradRhoOutValsSpinPolarized[N])[cell->id()][3*q_point + dir]- (gradRhoInValsSpinPolarized[N])[cell->id()][3*q_point+dir]; + (graddFBroyden[N-1])[cell->id()][3*q_point+dir] = gradFBroyden[cell->id()][3*q_point+dir]- gradFOld[dir]; + } + } + } + // + for (unsigned int q_point=0; q_pointid()][2*q_point] + + (dFBroyden[N-1])[cell->id()][2*q_point+1] ) * ( (dFBroyden[N-1])[cell->id()][2*q_point] + (dFBroyden[N-1])[cell->id()][2*q_point+1] ) ) *fe_values.JxW(q_point); + // + wtTempLoc += ( (FBroyden[cell->id()][2*q_point] + FBroyden[cell->id()][2*q_point+1]) * ((FBroyden[cell->id()][2*q_point] + FBroyden[cell->id()][2*q_point+1]))) *fe_values.JxW(q_point) ; + if (N==1){ + FOld = ((rhoOutVals[0])[cell->id()][q_point])- ((rhoInVals[0])[cell->id()][q_point]); + w0Loc += FOld * FOld * fe_values.JxW(q_point) ; + } + } + } + } + // + wtTemp=Utilities::MPI::sum(wtTempLoc, mpi_communicator); + dfMag=Utilities::MPI::sum(dfMagLoc, mpi_communicator); + if (N==1) { + w0Broyden = Utilities::MPI::sum(w0Loc, mpi_communicator); + w0Broyden = std::pow(w0Broyden, -0.5 ) ; + } + // Comment out following line, for using w0 computed from simply mixed rho (not recommended) + w0Broyden = 0.0 ; + // + wtTemp = std::pow(wtTemp, -0.5 ) ; + // + // Comment out push_back(1.0) and uncomment push_back(wtTemp) to include history dependence in wtBroyden (not recommended) + //wtBroyden.push_back(wtTemp) ; + wtBroyden.push_back(1.0) ; + // + double G = dftParameters::mixingParameter ; + // + std::vector c(N, 0.0) , invBeta(N*N, 0.0), beta(N*N, 0.0), gamma(N, 0.0), cLoc(N, 0.0) , invBetaLoc(N*N, 0.0) ; + // + cell = dofHandler.begin_active(), endc = dofHandler.end(); + for (; cell!=endc; ++cell) + if (cell->is_locally_owned()) + { + (uBroyden[N-1])[cell->id()]=std::vector(2*num_quad_points); + if (dftParameters::xc_id == 4) + (gradUBroyden[N-1])[cell->id()]=std::vector(6*num_quad_points); + fe_values.reinit (cell); + // + for (unsigned int q_point=0; q_pointid()][2*q_point] /= dfMag ; (dFBroyden[N-1])[cell->id()][2*q_point+1] /= dfMag ; + delRho[cell->id()][2*q_point] /= dfMag ; delRho[cell->id()][2*q_point+1] /= dfMag ; + // + (uBroyden[N-1])[cell->id()][2*q_point] = G * (dFBroyden[N-1])[cell->id()][2*q_point] + delRho[cell->id()][2*q_point] ; + (uBroyden[N-1])[cell->id()][2*q_point+1] = G * (dFBroyden[N-1])[cell->id()][2*q_point+1] + delRho[cell->id()][2*q_point+1] ; + // + if (dftParameters::xc_id == 4) + { + for (unsigned int dir=0; dir < 3; ++dir) { + (graddFBroyden[N-1])[cell->id()][6*q_point+dir] /= dfMag ; (graddFBroyden[N-1])[cell->id()][6*q_point+3+dir] /= dfMag ; + delGradRho[cell->id()][6*q_point+dir] /= dfMag ; delGradRho[cell->id()][6*q_point+3+dir] /= dfMag ; + // + (gradUBroyden[N-1])[cell->id()][6*q_point+dir] = G * (graddFBroyden[N-1])[cell->id()][6*q_point+dir] + delGradRho[cell->id()][6*q_point+dir] ; + (gradUBroyden[N-1])[cell->id()][6*q_point+3+dir] = G * (graddFBroyden[N-1])[cell->id()][6*q_point+3+dir] + delGradRho[cell->id()][6*q_point+3+dir] ; + } + } + // + for (unsigned int k = 0; k < N ; ++k) { + cLoc[k] += wtBroyden[k] * ( (dFBroyden[k])[cell->id()][2*q_point] + + (dFBroyden[k])[cell->id()][2*q_point+1]) * ( FBroyden[cell->id()][2*q_point] + FBroyden[cell->id()][2*q_point+1] ) *fe_values.JxW(q_point); + for (unsigned int l = k; l < N ; ++l) + { + invBetaLoc[N*k + l] += wtBroyden[k] * wtBroyden[l] * ( (dFBroyden[k])[cell->id()][2*q_point] + (dFBroyden[k])[cell->id()][2*q_point+1]) * + ( (dFBroyden[l])[cell->id()][2*q_point] + (dFBroyden[l])[cell->id()][2*q_point+1]) *fe_values.JxW(q_point); + invBetaLoc[N*l + k] = invBetaLoc[N*k + l] ; + } + } + } + } + // + for (unsigned int k = 0; k < N ; ++k) { + for (unsigned int l = 0; l < N ; ++l) { + invBeta[N*k + l]=Utilities::MPI::sum(invBetaLoc[N*k + l], mpi_communicator); + // + if (l==k) + { + invBeta[N*l + l] = w0Broyden*w0Broyden + invBeta[N*l + l] ; + beta[N*l + l] = 1.0 ; + } + } + c[k]=Utilities::MPI::sum(cLoc[k], mpi_communicator); + } + + // + // Invert beta + // + calldgesv(N, + &invBeta[0], + &beta[0]); + // + + for (unsigned int m = 0; m < N ; ++m) + for (unsigned int l = 0; l < N ; ++l) + gamma[m] += c[l] * beta[N*m + l] ; + + // + std::map > rhoInValuesOld= *rhoInValues; + rhoInVals.push_back(std::map >()); + rhoInValues=&(rhoInVals.back()); + // + std::map > rhoInValuesOldSpinPolarized= *rhoInValuesSpinPolarized; + rhoInValsSpinPolarized.push_back(std::map >()); + rhoInValuesSpinPolarized=&(rhoInValsSpinPolarized.back()); + // + std::map > gradRhoInValuesOld ; + std::map > gradRhoInValuesOldSpinPolarized ; + if (dftParameters::xc_id == 4) + { + gradRhoInValuesOld=*gradRhoInValues; + gradRhoInVals.push_back(std::map >()); + gradRhoInValues=&(gradRhoInVals.back()); + // + gradRhoInValuesOldSpinPolarized=*gradRhoInValuesSpinPolarized; + gradRhoInValsSpinPolarized.push_back(std::map >()); + gradRhoInValuesSpinPolarized=&(gradRhoInValsSpinPolarized.back()); + } + // + cell = dofHandler.begin_active(); + for (; cell!=endc; ++cell) { + if (cell->is_locally_owned()){ + (*rhoInValues)[cell->id()]=std::vector(num_quad_points); + (*rhoInValuesSpinPolarized)[cell->id()]=std::vector(2*num_quad_points); + if (dftParameters::xc_id == 4) + { + (*gradRhoInValues)[cell->id()]=std::vector(3*num_quad_points); + (*gradRhoInValuesSpinPolarized)[cell->id()]=std::vector(6*num_quad_points); + } + fe_values.reinit (cell); + for (unsigned int q_point=0; q_pointid()][q_point]-(*rhoOutValues)[cell->id()][q_point],2.0)*fe_values.JxW(q_point); + (*rhoInValuesSpinPolarized)[cell->id()][2*q_point] = rhoInValuesOldSpinPolarized[cell->id()][2*q_point] + G * FBroyden[cell->id()][2*q_point] ; + (*rhoInValuesSpinPolarized)[cell->id()][2*q_point+1] = rhoInValuesOldSpinPolarized[cell->id()][2*q_point+1] + G * FBroyden[cell->id()][2*q_point+1] ; + // + if (dftParameters::xc_id == 4) + for (unsigned int dir=0; dir < 3; ++dir) { + (*gradRhoInValuesSpinPolarized)[cell->id()][6*q_point + dir] = gradRhoInValuesOldSpinPolarized[cell->id()][6*q_point + dir] + G * gradFBroyden[cell->id()][6*q_point+dir] ; + (*gradRhoInValuesSpinPolarized)[cell->id()][6*q_point + 3 + dir] = gradRhoInValuesOldSpinPolarized[cell->id()][6*q_point + 3 + dir] + G * gradFBroyden[cell->id()][6*q_point+3+dir] ; + } + // + for (int i = 0; i < N; ++i){ + (*rhoInValuesSpinPolarized)[cell->id()][2*q_point] -= wtBroyden[i] * gamma[i] * (uBroyden[i])[cell->id()][2*q_point] ; + (*rhoInValuesSpinPolarized)[cell->id()][2*q_point+1] -= wtBroyden[i] * gamma[i] * (uBroyden[i])[cell->id()][2*q_point+1] ; + if (dftParameters::xc_id == 4) + for (unsigned int dir=0; dir < 3; ++dir) { + (*gradRhoInValuesSpinPolarized)[cell->id()][6*q_point + dir] -= wtBroyden[i] * gamma[i] * (gradUBroyden[i])[cell->id()][6*q_point+dir] ; + (*gradRhoInValuesSpinPolarized)[cell->id()][6*q_point + 3 + dir] -= wtBroyden[i] * gamma[i] * (gradUBroyden[i])[cell->id()][6*q_point+3+dir] ; + } + } + (*rhoInValues)[cell->id()][q_point] = (*rhoInValuesSpinPolarized)[cell->id()][2*q_point] + (*rhoInValuesSpinPolarized)[cell->id()][2*q_point+1] ; + if (dftParameters::xc_id == 4) + for (unsigned int dir=0; dir < 3; ++dir) + (*gradRhoInValues)[cell->id()][3*q_point+dir] = (*gradRhoInValuesSpinPolarized)[cell->id()][6*q_point+dir] + (*gradRhoInValuesSpinPolarized)[cell->id()][6*q_point+3+dir] ; + + + } + } + } + // + // + + + + + return Utilities::MPI::sum(normValue, mpi_communicator); +} + + + template double dftClass::mixing_simple_spinPolarized() { @@ -514,3 +990,4 @@ double dftClass::mixing_anderson_spinPolarized(){ } return Utilities::MPI::sum(normValue, mpi_communicator); } + diff --git a/src/dft/moveMeshToAtoms.cc b/src/dft/moveMeshToAtoms.cc index 954a20831..1a47ce2f8 100644 --- a/src/dft/moveMeshToAtoms.cc +++ b/src/dft/moveMeshToAtoms.cc @@ -17,7 +17,7 @@ // template -void dftClass::moveMeshToAtoms(const Triangulation<3,3> & triangulationMove) +void dftClass::moveMeshToAtoms(Triangulation<3,3> & triangulationMove) { meshMovementGaussianClass gaussianMove(mpi_communicator); diff --git a/src/dft/psiInitialGuess.cc b/src/dft/psiInitialGuess.cc index dd4d7aa59..cb7916a14 100644 --- a/src/dft/psiInitialGuess.cc +++ b/src/dft/psiInitialGuess.cc @@ -246,8 +246,8 @@ void dftClass::readPSIRadialValues(){ const dealii::types::global_dof_index dofID = locallyOwnedDOFs[dof]; Point<3> node = d_supportPoints[dofID]; - if(d_eigenVectorsFlattened[0].in_local_range(dofID*numEigenValues)) - { + //if(d_eigenVectorsFlattened[0].in_local_range(dofID*numEigenValues)) + //{ if(!constraintsNone.is_constrained(dofID)) { // @@ -312,17 +312,17 @@ void dftClass::readPSIRadialValues(){ //spherical part if (it->m > 0) { - d_eigenVectorsFlattened[kPoint][dofID*numEigenValues+waveFunction] += + d_eigenVectorsFlattenedSTL[kPoint][dof*numEigenValues+waveFunction] += dataTypes::number(R*std::sqrt(2)*boost::math::spherical_harmonic_r(it->l,it->m,theta,phi)); } else if (it->m == 0) { - d_eigenVectorsFlattened[kPoint][dofID*numEigenValues+waveFunction] += + d_eigenVectorsFlattenedSTL[kPoint][dof*numEigenValues+waveFunction] += dataTypes::number(R*boost::math::spherical_harmonic_r(it->l,it->m,theta,phi)); } else { - d_eigenVectorsFlattened[kPoint][dofID*numEigenValues+waveFunction] += + d_eigenVectorsFlattenedSTL[kPoint][dof*numEigenValues+waveFunction] += dataTypes::number(R*std::sqrt(2)*boost::math::spherical_harmonic_i(it->l,-(it->m),theta,phi)); } } @@ -348,21 +348,21 @@ void dftClass::readPSIRadialValues(){ if(rand()%2 == 0) value = -1.0*value; - d_eigenVectorsFlattened[kPoint][dofID*numEigenValues+iWave] = dataTypes::number(value); + d_eigenVectorsFlattenedSTL[kPoint][dof*numEigenValues+iWave] = dataTypes::number(value); } } } } - } + //} } - for(int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) - { - d_eigenVectorsFlattened[kPoint].compress(VectorOperation::insert); - d_eigenVectorsFlattened[kPoint].update_ghost_values(); - } + //for(int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*d_kPointWeights.size(); ++kPoint) + //{ + // d_eigenVectorsFlattened[kPoint].compress(VectorOperation::insert); + // d_eigenVectorsFlattened[kPoint].update_ghost_values(); + // } if (dftParameters::startingWFCType=="RANDOM") { diff --git a/src/dft/vselfBinsManager.cc b/src/dft/vselfBinsManager.cc index e7bcd6a6c..3298b2ec4 100644 --- a/src/dft/vselfBinsManager.cc +++ b/src/dft/vselfBinsManager.cc @@ -97,6 +97,79 @@ namespace dftfe } } + + void exchangeInteractionMaps(const unsigned int totalNumberAtoms, + std::map > & interactionMap, + const unsigned int numMeshPartitions, + const MPI_Comm & mpi_communicator) + + { + std::map >::iterator iter; + + for(unsigned int iGlobal = 0; iGlobal < totalNumberAtoms; ++iGlobal) + { + + // + // for each charge, exchange its global list across all procs + // + iter = interactionMap.find(iGlobal); + + std::vector localAtomToInteractingAtomsList; + + if(iter != interactionMap.end()) + { + std::set & localInteractingAtomsSet = iter->second; + std::copy(localInteractingAtomsSet.begin(), + localInteractingAtomsSet.end(), + std::back_inserter(localAtomToInteractingAtomsList)); + + } + + const int sizeOnLocalProc = localAtomToInteractingAtomsList.size(); + + std::vector interactionMapListSizes(numMeshPartitions); + + MPI_Allgather(&sizeOnLocalProc, + 1, + MPI_INT, + &(interactionMapListSizes[0]), + 1, + MPI_INT, + mpi_communicator); + + const int newListSize = + std::accumulate(&(interactionMapListSizes[0]), + &(interactionMapListSizes[numMeshPartitions]), + 0); + + std::vector globalInteractionMapList(newListSize); + + std::vector mpiOffsets(numMeshPartitions); + + mpiOffsets[0] = 0; + + for(unsigned int i = 1; i < numMeshPartitions; ++i) + mpiOffsets[i] = interactionMapListSizes[i-1]+ mpiOffsets[i-1]; + + MPI_Allgatherv(&(localAtomToInteractingAtomsList[0]), + sizeOnLocalProc, + MPI_INT, + &(globalInteractionMapList[0]), + &(interactionMapListSizes[0]), + &(mpiOffsets[0]), + MPI_INT, + mpi_communicator); + + // + // over-write local interaction with items of globalInteractionList + // + for(unsigned int i = 0 ; i < globalInteractionMapList.size(); ++i) + (interactionMap[iGlobal]).insert(globalInteractionMapList[i]); + + } + } + + // unsigned int createAndCheckInteractionMap(std::map > & interactionMap, const dealii::DoFHandler<3> & dofHandler, @@ -144,7 +217,7 @@ namespace dftfe std::vector cell_dof_indices(dofs_per_cell); for(; cell!= endc; ++cell) - if(cell->is_locally_owned()) + if(cell->is_locally_owned() || cell->is_ghost()) { int cutOffFlag = 0; cell->get_dof_indices(cell_dof_indices); @@ -175,27 +248,26 @@ namespace dftfe }//cell locally owned if loop - atomToGlobalNodeIdMap[iAtom] = tempNodalSet; + if (!tempNodalSet.empty()) + atomToGlobalNodeIdMap[iAtom] = tempNodalSet; }//atom loop // //exchange atomToGlobalNodeIdMap across all processors // - internal::exchangeAtomToGlobalNodeIdMaps(totalNumberAtoms, - atomToGlobalNodeIdMap, - n_mpi_processes, - mpi_communicator); + //internal::exchangeAtomToGlobalNodeIdMaps(totalNumberAtoms, + // atomToGlobalNodeIdMap, + // n_mpi_processes, + // mpi_communicator); - // - //erase keys which have empty values - // - for(unsigned int iAtom = numberGlobalAtoms; iAtom < totalNumberAtoms; ++iAtom) - if(atomToGlobalNodeIdMap[iAtom].empty() == true) - atomToGlobalNodeIdMap.erase(iAtom); + unsigned int ilegalInteraction=0; for(unsigned int iAtom = 0; iAtom < totalNumberAtoms; ++iAtom) { + if (atomToGlobalNodeIdMap.find(iAtom)==atomToGlobalNodeIdMap.end()) + continue; + // //Add iAtom to the interactionMap corresponding to the key iAtom // @@ -207,7 +279,8 @@ namespace dftfe for(int jAtom = iAtom - 1; jAtom > -1; jAtom--) { //std::cout<<"JAtom: "<0) + return 1; + + internal::exchangeInteractionMaps(totalNumberAtoms, + interactionMap, + n_mpi_processes, + mpi_communicator); return 0; } } diff --git a/src/dftOperator/computeNonLocalHamiltonianTimesXMemoryOptBatchGEMM.cc b/src/dftOperator/computeNonLocalHamiltonianTimesXMemoryOptBatchGEMM.cc index 866fd7a22..bbe9ac6c8 100644 --- a/src/dftOperator/computeNonLocalHamiltonianTimesXMemoryOptBatchGEMM.cc +++ b/src/dftOperator/computeNonLocalHamiltonianTimesXMemoryOptBatchGEMM.cc @@ -217,6 +217,15 @@ void kohnShamDFTOperatorClass::computeNonLocalHamiltonianTimesXBatchGEM }//non local atomid loop } + +template +void kohnShamDFTOperatorClass::computeNonLocalHamiltonianTimesXBatchGEMMSinglePrec + (const dealii::parallel::distributed::Vector> & src, + const unsigned int numberWaveFunctions, + dealii::parallel::distributed::Vector> & dst) const +{ + AssertThrow(false,dftUtils::ExcNotImplementedYet()); +} #else template void kohnShamDFTOperatorClass::computeNonLocalHamiltonianTimesXBatchGEMM(const dealii::parallel::distributed::Vector & src, @@ -412,6 +421,213 @@ void kohnShamDFTOperatorClass::computeNonLocalHamiltonianTimesXBatchGEM }//non local atomid loop +} + +template +void kohnShamDFTOperatorClass::computeNonLocalHamiltonianTimesXBatchGEMMSinglePrec + (const dealii::parallel::distributed::Vector & src, + const unsigned int numberWaveFunctions, + dealii::parallel::distributed::Vector & dst) const +{ + + + std::map > projectorKetTimesVector; + + // + //allocate memory for matrix-vector product + // + for(unsigned int iAtom = 0; iAtom < dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); ++iAtom) + { + const unsigned int atomId=dftPtr->d_nonLocalAtomIdsInCurrentProcess[iAtom]; + const int numberSingleAtomPseudoWaveFunctions = dftPtr->d_numberPseudoAtomicWaveFunctions[atomId]; + projectorKetTimesVector[atomId].resize(numberWaveFunctions*numberSingleAtomPseudoWaveFunctions,0.0); + } + + + // + //blas required settings + // + const char transA = 'N'; + const char transB = 'N'; + const dataTypes::numberLowPrec alpha = 1.0; + const dataTypes::numberLowPrec beta = 1.0; + const unsigned int inc = 1; + std::vector temp(numberWaveFunctions); + std::vector cellWaveFunctionMatrix(d_numberNodesPerElement*numberWaveFunctions,0.0); + typename DoFHandler<3>::active_cell_iterator cell = dftPtr->dofHandler.begin_active(), endc = dftPtr->dofHandler.end(); + int iElem = -1; + for(; cell!=endc; ++cell) + if(cell->is_locally_owned()) + { + iElem++; + if (dftPtr->d_nonLocalAtomIdsInElement[iElem].size()>0) + for(unsigned int iNode = 0; iNode < d_numberNodesPerElement; ++iNode) + { + dealii::types::global_dof_index localNodeId = d_flattenedArrayCellLocalProcIndexIdMap[iElem][iNode]; + dcopy_(&numberWaveFunctions, + src.begin()+localNodeId, + &inc, + &temp[0], + &inc); + for (unsigned int iwave=0; iwave< numberWaveFunctions;++iwave) + cellWaveFunctionMatrix[numberWaveFunctions*iNode+iwave] + =(dataTypes::numberLowPrec)temp[iwave]; + } + + for(unsigned int iAtom = 0; iAtom < dftPtr->d_nonLocalAtomIdsInElement[iElem].size();++iAtom) + { + const unsigned int atomId = dftPtr->d_nonLocalAtomIdsInElement[iElem][iAtom]; + const unsigned int numberPseudoWaveFunctions = dftPtr->d_numberPseudoAtomicWaveFunctions[atomId]; + const int nonZeroElementMatrixId = dftPtr->d_sparsityPattern[atomId][iElem]; + + sgemm_(&transA, + &transB, + &numberWaveFunctions, + &numberPseudoWaveFunctions, + &d_numberNodesPerElement, + &alpha, + &cellWaveFunctionMatrix[0], + &numberWaveFunctions, + &dftPtr->d_nonLocalProjectorElementMatricesLowPrec[atomId][nonZeroElementMatrixId][d_kPointIndex][0], + &d_numberNodesPerElement, + &beta, + &projectorKetTimesVector[atomId][0], + &numberWaveFunctions); + } + } + + + + dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec=0.0; + + for(unsigned int iAtom = 0; iAtom < dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); ++iAtom) + { + const unsigned int atomId=dftPtr->d_nonLocalAtomIdsInCurrentProcess[iAtom]; + const unsigned int numberPseudoWaveFunctions = dftPtr->d_numberPseudoAtomicWaveFunctions[atomId]; + + for(unsigned int iPseudoAtomicWave = 0; iPseudoAtomicWave < numberPseudoWaveFunctions; ++iPseudoAtomicWave) + { + const unsigned int id=dftPtr->d_projectorIdsNumberingMapCurrentProcess[std::make_pair(atomId,iPseudoAtomicWave)]; + + scopy_(&numberWaveFunctions, + &projectorKetTimesVector[atomId][numberWaveFunctions*iPseudoAtomicWave], + &inc, + &dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec[id*numberWaveFunctions], + &inc); + + } + } + + dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec.compress(VectorOperation::add); + dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec.update_ghost_values(); + + // + //compute V*C^{T}*X + // + for(unsigned int iAtom = 0; iAtom < dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); ++iAtom) + { + const unsigned int atomId=dftPtr->d_nonLocalAtomIdsInCurrentProcess[iAtom]; + const unsigned int numberPseudoWaveFunctions = dftPtr->d_numberPseudoAtomicWaveFunctions[atomId]; + for(unsigned int iPseudoAtomicWave = 0; iPseudoAtomicWave < numberPseudoWaveFunctions; ++iPseudoAtomicWave) + { + dataTypes::numberLowPrec nonlocalConstantV + =(dataTypes::numberLowPrec)dftPtr->d_nonLocalPseudoPotentialConstants[atomId][iPseudoAtomicWave]; + + const unsigned int id=dftPtr->d_projectorIdsNumberingMapCurrentProcess[std::make_pair(atomId,iPseudoAtomicWave)]; + + sscal_(&numberWaveFunctions, + &nonlocalConstantV, + &dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec[id*numberWaveFunctions], + &inc); + + scopy_(&numberWaveFunctions, + &dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec[id*numberWaveFunctions], + &inc, + &projectorKetTimesVector[atomId][numberWaveFunctions*iPseudoAtomicWave], + &inc); + + } + + } + + + //blas required settings + const char transA1 = 'N'; + const char transB1 = 'N'; + const dataTypes::numberLowPrec alpha1 = 1.0; + const dataTypes::number alpha1HighPrec=1.0; + const dataTypes::numberLowPrec beta1 = 0.0; + const unsigned int inc1 = 1; + + // + //compute C*V*C^{T}*x + // + for(unsigned int iAtom = 0; iAtom < dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); ++iAtom) + { + const unsigned int atomId = dftPtr->d_nonLocalAtomIdsInCurrentProcess[iAtom]; + const unsigned int numberPseudoWaveFunctions = dftPtr->d_numberPseudoAtomicWaveFunctions[atomId]; + + const unsigned int groupCount=1; + const unsigned int groupSize=dftPtr->d_elementIteratorsInAtomCompactSupport[atomId].size(); + dataTypes::numberLowPrec ** cellProjectorKetTimesVectorMatrixBatch = new dataTypes::numberLowPrec*[groupSize]; + dataTypes::numberLowPrec ** cellNonLocalHamTimesWaveMatrixBatch = new dataTypes::numberLowPrec*[groupSize]; + const dataTypes::numberLowPrec ** cellNonLocalProjectorKetBatch = new dataTypes::numberLowPrec*[groupSize]; + for(unsigned int i = 0; i < groupSize; i++) + cellNonLocalHamTimesWaveMatrixBatch[i] = new dataTypes::numberLowPrec[d_numberNodesPerElement*numberWaveFunctions]; + + for(unsigned int iElemComp = 0; iElemComp < dftPtr->d_elementIteratorsInAtomCompactSupport[atomId].size(); ++iElemComp) + { + cellProjectorKetTimesVectorMatrixBatch[iElemComp] + =&projectorKetTimesVector[atomId][0]; + cellNonLocalProjectorKetBatch[iElemComp] + =&dftPtr->d_nonLocalProjectorElementMatricesTransposeLowPrec[atomId][iElemComp][d_kPointIndex][0]; + } + + sgemm_batch_(&transA1, + &transB1, + &numberWaveFunctions, + &d_numberNodesPerElement, + &numberPseudoWaveFunctions, + &alpha1, + cellProjectorKetTimesVectorMatrixBatch, + &numberWaveFunctions, + cellNonLocalProjectorKetBatch, + &numberPseudoWaveFunctions, + &beta1, + cellNonLocalHamTimesWaveMatrixBatch, + &numberWaveFunctions, + &groupCount, + &groupSize); + + for(unsigned int iElemComp = 0; iElemComp < dftPtr->d_elementIteratorsInAtomCompactSupport[atomId].size(); ++iElemComp) + { + const unsigned int elementId = dftPtr->d_elementIdsInAtomCompactSupport[atomId][iElemComp]; + for(unsigned int iNode = 0; iNode < d_numberNodesPerElement; ++iNode) + { + + for (unsigned int iwave=0; iwave< numberWaveFunctions;++iwave) + temp[iwave]=(dataTypes::number) + cellNonLocalHamTimesWaveMatrixBatch[iElemComp][numberWaveFunctions*iNode+iwave]; + + dealii::types::global_dof_index localNodeId = d_flattenedArrayCellLocalProcIndexIdMap[elementId][iNode]; + daxpy_(&numberWaveFunctions, + &alpha1HighPrec, + &temp[0], + &inc1, + dst.begin()+localNodeId, + &inc1); + } + } + + for(unsigned int i = 0; i < groupSize; i++) + delete [] cellNonLocalHamTimesWaveMatrixBatch[i]; + + delete [] cellNonLocalHamTimesWaveMatrixBatch; + delete [] cellNonLocalProjectorKetBatch; + delete [] cellProjectorKetTimesVectorMatrixBatch; + + }//non local atomid loop + } #endif #endif diff --git a/src/dftOperator/hamiltonianMatrixCalculator.cc b/src/dftOperator/hamiltonianMatrixCalculator.cc index ed4901830..9a4eaaa1a 100644 --- a/src/dftOperator/hamiltonianMatrixCalculator.cc +++ b/src/dftOperator/hamiltonianMatrixCalculator.cc @@ -34,6 +34,8 @@ void kohnShamDFTOperatorClass::computeHamiltonianMatrix(unsigned int kP d_cellHamiltonianMatrix.clear(); d_cellHamiltonianMatrix.resize(totalLocallyOwnedCells); + d_cellHamiltonianMatrixLowPrec.clear(); + d_cellHamiltonianMatrixLowPrec.resize(totalLocallyOwnedCells); // //Get some FE related Data // @@ -153,7 +155,16 @@ void kohnShamDFTOperatorClass::computeHamiltonianMatrix(unsigned int kP for(unsigned int iSubCell = 0; iSubCell < n_sub_cells; ++iSubCell) { - d_cellHamiltonianMatrix[iElem].resize(numberDofsPerElement*numberDofsPerElement,0.0); + //Aligning to 64 byte memory boundaries as required for efficient AVX512 vectorization. + //FIXME: However, this memory alignement is not guaranteed to work. + //Use functions like mkl_malloc for 64 byte memory alignment. +#ifdef USE_COMPLEX + d_cellHamiltonianMatrix[iElem].resize(numberDofsPerElement*numberDofsPerElement+(numberDofsPerElement*numberDofsPerElement)%4,0.0); +#else + d_cellHamiltonianMatrix[iElem].resize(numberDofsPerElement*numberDofsPerElement+(numberDofsPerElement*numberDofsPerElement)%8,0.0); +#endif + d_cellHamiltonianMatrixLowPrec[iElem].resize(numberDofsPerElement*numberDofsPerElement,0.0); + for(unsigned int iNode = 0; iNode < numberDofsPerElement; ++iNode) { for(unsigned int jNode = 0; jNode < numberDofsPerElement; ++jNode) @@ -161,8 +172,16 @@ void kohnShamDFTOperatorClass::computeHamiltonianMatrix(unsigned int kP #ifdef USE_COMPLEX d_cellHamiltonianMatrix[iElem][numberDofsPerElement*iNode + jNode].real(elementHamiltonianMatrix[numberDofsPerElement*iNode + jNode][iSubCell]); d_cellHamiltonianMatrix[iElem][numberDofsPerElement*iNode + jNode].imag(elementHamiltonianMatrixImag[numberDofsPerElement*iNode + jNode][iSubCell]); + + d_cellHamiltonianMatrixLowPrec[iElem][numberDofsPerElement*iNode + jNode].real((float)elementHamiltonianMatrix[numberDofsPerElement*iNode + jNode][iSubCell]); + d_cellHamiltonianMatrixLowPrec[iElem][numberDofsPerElement*iNode + jNode].imag((float)elementHamiltonianMatrixImag[numberDofsPerElement*iNode + jNode][iSubCell]); + #else - d_cellHamiltonianMatrix[iElem][numberDofsPerElement*iNode + jNode] = elementHamiltonianMatrix[numberDofsPerElement*iNode + jNode][iSubCell]; + d_cellHamiltonianMatrix[iElem][numberDofsPerElement*iNode + jNode] + = elementHamiltonianMatrix[numberDofsPerElement*iNode + jNode][iSubCell]; + + d_cellHamiltonianMatrixLowPrec[iElem][numberDofsPerElement*iNode + jNode] + = (dataTypes::numberLowPrec)elementHamiltonianMatrix[numberDofsPerElement*iNode + jNode][iSubCell]; #endif } diff --git a/src/dftOperator/kohnShamDFTOperator.cc b/src/dftOperator/kohnShamDFTOperator.cc index 640a3719d..5807eb577 100644 --- a/src/dftOperator/kohnShamDFTOperator.cc +++ b/src/dftOperator/kohnShamDFTOperator.cc @@ -107,10 +107,16 @@ namespace dftfe { flattenedArray); if(dftParameters::isPseudopotential) + { vectorTools::createDealiiVector(dftPtr->d_projectorKetTimesVectorPar[0].get_partitioner(), numberWaveFunctions, dftPtr->d_projectorKetTimesVectorParFlattened); + vectorTools::createDealiiVector(dftPtr->d_projectorKetTimesVectorPar[0].get_partitioner(), + numberWaveFunctions, + dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec); + } + vectorTools::computeCellLocalIndexSetMap(flattenedArray.get_partitioner(), @@ -129,9 +135,15 @@ void kohnShamDFTOperatorClass::reinit(const unsigned int numberWaveFunc { if(dftParameters::isPseudopotential) + { vectorTools::createDealiiVector(dftPtr->d_projectorKetTimesVectorPar[0].get_partitioner(), numberWaveFunctions, dftPtr->d_projectorKetTimesVectorParFlattened); + vectorTools::createDealiiVector + (dftPtr->d_projectorKetTimesVectorPar[0].get_partitioner(), + numberWaveFunctions, + dftPtr->d_projectorKetTimesVectorParFlattenedLowPrec); + } } @@ -388,6 +400,7 @@ void kohnShamDFTOperatorClass::computeVEff(const std::map > & dst) @@ -516,6 +529,7 @@ void kohnShamDFTOperatorClass::computeVEff(const std::map & dst) @@ -563,9 +577,16 @@ void kohnShamDFTOperatorClass::computeVEff(const std::map::computeVEff(const std::map::computeVEff(const std::map - void kohnShamDFTOperatorClass::XtHX(dealii::parallel::distributed::Vector > & X, + void kohnShamDFTOperatorClass::XtHX(const std::vector > & X, const unsigned int numberWaveFunctions, std::vector > & ProjHam) { // //Get access to number of locally owned nodes on the current processor // - const unsigned int numberDofs = X.local_size()/numberWaveFunctions; + const unsigned int numberDofs = X.size()/numberWaveFunctions; // //Resize ProjHam // ProjHam.clear(); ProjHam.resize(numberWaveFunctions*numberWaveFunctions,0.0); - + // + //create temporary array XTemp + // + dealii::parallel::distributed::Vector> XTemp; + reinit(numberWaveFunctions, + XTemp, + true); + for(unsigned int iNode = 0; iNode::computeVEff(const std::map::computeVEff(const std::map::computeVEff(const std::map - void kohnShamDFTOperatorClass::XtHX(dealii::parallel::distributed::Vector & X, + void kohnShamDFTOperatorClass::XtHX(const std::vector & X, const unsigned int numberWaveFunctions, std::vector & ProjHam) { @@ -910,7 +950,7 @@ void kohnShamDFTOperatorClass::computeVEff(const std::map::computeVEff(const std::map XTemp; + reinit(numberWaveFunctions, + XTemp, + true); + for(unsigned int iNode = 0; iNode::computeVEff(const std::map::computeVEff(const std::map::computeVEff(const std::map - void kohnShamDFTOperatorClass::XtHX(const dealii::parallel::distributed::Vector & X, + void kohnShamDFTOperatorClass::XtHX(const std::vector & X, const unsigned int numberWaveFunctions, const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, dealii::ScaLAPACKMatrix & projHamPar) @@ -975,7 +1029,7 @@ void kohnShamDFTOperatorClass::computeVEff(const std::map XBlock,HXBlock; @@ -995,11 +1049,26 @@ void kohnShamDFTOperatorClass::computeVEff(const std::map::computeVEff(const std::mapbandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) { XBlock=0; - //fill XBlock from X: + //fill XBlock^{T} from X: for(unsigned int iNode = 0; iNode::computeVEff(const std::mapis_process_active()) for (unsigned int j = 0; j ::iterator it= globalToLocalRowIdMap.find(i); if (it!=globalToLocalRowIdMap.end()) projHamPar.local_el(it->second, localColumnId) - =projHamBlock[j*numberWaveFunctions+i]; + =projHamBlock[j*D+i-jvec]; } } diff --git a/src/dftOperator/matrixVectorProductImplementations.cc b/src/dftOperator/matrixVectorProductImplementations.cc index 733d6c034..54b6299d9 100644 --- a/src/dftOperator/matrixVectorProductImplementations.cc +++ b/src/dftOperator/matrixVectorProductImplementations.cc @@ -389,6 +389,15 @@ void kohnShamDFTOperatorClass::computeLocalHamiltonianTimesXBatchGEMM ( delete [] cellHamMatrixTimesWaveMatrixBatch; delete [] cellHamMatrixBatch; } + +template +void kohnShamDFTOperatorClass::computeLocalHamiltonianTimesXBatchGEMMSinglePrec + (const dealii::parallel::distributed::Vector & src, + const unsigned int numberWaveFunctions, + dealii::parallel::distributed::Vector & dst) const +{ + AssertThrow(false,dftUtils::ExcNotImplementedYet()); +} #endif #else template @@ -540,5 +549,105 @@ void kohnShamDFTOperatorClass::computeLocalHamiltonianTimesXBatchGEMM ( delete [] cellHamMatrixTimesWaveMatrixBatch; delete [] cellHamMatrixBatch; } + +template +void kohnShamDFTOperatorClass::computeLocalHamiltonianTimesXBatchGEMMSinglePrec + (const dealii::parallel::distributed::Vector & src, + const unsigned int numberWaveFunctions, + dealii::parallel::distributed::Vector & dst) const +{ + + // + //element level matrix-vector multiplications + // + const char transA = 'N',transB = 'N'; + const dataTypes::number scalarCoeffAlpha = 1.0,scalarCoeffBeta = 0.0; + const dataTypes::numberLowPrec scalarCoeffAlphaLowPrec = 1.0,scalarCoeffBetaLowPrec = 0.0; + const unsigned int inc = 1; + + const unsigned int groupCount=1; + const unsigned int groupSize=VectorizedArray::n_array_elements; + + dataTypes::numberLowPrec ** cellWaveFunctionMatrixBatch = new dataTypes::numberLowPrec*[groupSize]; + dataTypes::numberLowPrec ** cellHamMatrixTimesWaveMatrixBatch = new dataTypes::numberLowPrec*[groupSize]; + const dataTypes::numberLowPrec ** cellHamMatrixBatch = new dataTypes::numberLowPrec*[groupSize]; + for(unsigned int i = 0; i < groupSize; i++) + { + cellWaveFunctionMatrixBatch[i] = new dataTypes::numberLowPrec[d_numberNodesPerElement*numberWaveFunctions]; + cellHamMatrixTimesWaveMatrixBatch[i] = new dataTypes::numberLowPrec[d_numberNodesPerElement*numberWaveFunctions]; + } + + unsigned int iElem= 0; + std::vector temp(numberWaveFunctions); + for(unsigned int iMacroCell = 0; iMacroCell < d_numberMacroCells; ++iMacroCell) + { + + for(unsigned int isubcell = 0; isubcell < d_macroCellSubCellMap[iMacroCell]; isubcell++) + { + for(unsigned int iNode = 0; iNode < d_numberNodesPerElement; ++iNode) + { + + dealii::types::global_dof_index localNodeId = d_flattenedArrayMacroCellLocalProcIndexIdMap[iElem+isubcell][iNode]; + dcopy_(&numberWaveFunctions, + src.begin()+localNodeId, + &inc, + &temp[0], + &inc); + + for (unsigned int iwave=0; iwave< numberWaveFunctions;++iwave) + cellWaveFunctionMatrixBatch[isubcell][numberWaveFunctions*iNode+iwave] + =(dataTypes::numberLowPrec)temp[iwave]; + } + + cellHamMatrixBatch[isubcell] =&d_cellHamiltonianMatrixLowPrec[iElem+isubcell][0]; + } + + sgemm_batch_(&transA, + &transB, + &numberWaveFunctions, + &d_numberNodesPerElement, + &d_numberNodesPerElement, + &scalarCoeffAlphaLowPrec, + cellWaveFunctionMatrixBatch, + &numberWaveFunctions, + cellHamMatrixBatch, + &d_numberNodesPerElement, + &scalarCoeffBetaLowPrec, + cellHamMatrixTimesWaveMatrixBatch, + &numberWaveFunctions, + &groupCount, + &d_macroCellSubCellMap[iMacroCell]); + + for(unsigned int isubcell = 0; isubcell < d_macroCellSubCellMap[iMacroCell]; isubcell++) + for(unsigned int iNode = 0; iNode < d_numberNodesPerElement; ++iNode) + { + + for (unsigned int iwave=0; iwave< numberWaveFunctions;++iwave) + temp[iwave]=(dataTypes::number) + cellHamMatrixTimesWaveMatrixBatch[isubcell][numberWaveFunctions*iNode+iwave]; + + dealii::types::global_dof_index localNodeId + = d_flattenedArrayMacroCellLocalProcIndexIdMap[iElem+isubcell][iNode]; + daxpy_(&numberWaveFunctions, + &scalarCoeffAlpha, + &temp[0], + &inc, + dst.begin()+localNodeId, + &inc); + } + + + iElem+=d_macroCellSubCellMap[iMacroCell]; + }//macrocell loop + + for(unsigned int i = 0; i < groupSize; i++) + { + delete [] cellWaveFunctionMatrixBatch[i]; + delete [] cellHamMatrixTimesWaveMatrixBatch[i]; + } + delete [] cellWaveFunctionMatrixBatch; + delete [] cellHamMatrixTimesWaveMatrixBatch; + delete [] cellHamMatrixBatch; +} #endif #endif diff --git a/src/force/configurationalForceCompute/FnlGammaAtomsElementalContribution.cc b/src/force/configurationalForceCompute/FnlGammaAtomsElementalContribution.cc index d210b8f5c..e52e1ef28 100644 --- a/src/force/configurationalForceCompute/FnlGammaAtomsElementalContribution.cc +++ b/src/force/configurationalForceCompute/FnlGammaAtomsElementalContribution.cc @@ -20,6 +20,7 @@ template void forceClass::FnlGammaAtomsElementalContributionPeriodic(std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > > > & pspnlGammaAtomsQuads, const std::vector > > > & projectorKetTimesPsiTimesV, @@ -30,7 +31,9 @@ void forceClass::FnlGammaAtomsElementalContributionPeriodic(std::mapnumEigenValues; const unsigned int numKPoints=dftPtr->d_kPointWeights.size(); const unsigned int numSubCells= dftPtr->matrix_free_data.n_components_filled(cell); - const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPoints=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points + :forceEval.n_q_points; DoFHandler::active_cell_iterator subCellPtr; const unsigned int numNonLocalAtomsCurrentProcess= dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); @@ -49,36 +52,60 @@ void forceClass::FnlGammaAtomsElementalContributionPeriodic(std::map > > > > > temp1(1); - temp1[0]=pspnlGammaAtomsQuads[q][iAtom]; - - const Tensor<1,C_DIM,VectorizedArray > - F=-eshelbyTensor::getFnlPeriodic(temp1, - temp2, - psiQuads.begin()+q*numEigenVectors*numKPoints, - dftPtr->d_kPointWeights, - dftPtr->eigenValues, - dftPtr->fermiEnergy, - dftParameters::TVal); - - forceEval.submit_value(F,q); + if (dftParameters::useHigherQuadNLP) + { + for (unsigned int q=0; q > > > > > temp1(1); + temp1[0]=pspnlGammaAtomsQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > + F=-eshelbyTensor::getFnlPeriodic(temp1, + temp2, + psiQuads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + + forceEvalNLP.submit_value(F,q); + } + } + else + { + for (unsigned int q=0; q > > > > > temp1(1); + temp1[0]=pspnlGammaAtomsQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > + F=-eshelbyTensor::getFnlPeriodic(temp1, + temp2, + psiQuads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + + forceEval.submit_value(F,q); + } } + const Tensor<1,C_DIM,VectorizedArray > forceContributionFnlGammaiAtomCells - =forceEval.integrate_value(); + =dftParameters::useHigherQuadNLP? + forceEvalNLP.integrate_value() + :forceEval.integrate_value(); if (forceContributionFnlGammaAtoms.find(globalChargeIdNonLocalAtom)==forceContributionFnlGammaAtoms.end()) forceContributionFnlGammaAtoms[globalChargeIdNonLocalAtom]=std::vector(C_DIM,0.0); + for (unsigned int iSubCell=0; iSubCell::FnlGammaAtomsElementalContributionPeriodic(std::map void forceClass::FnlGammaAtomsElementalContributionNonPeriodic(std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > pspnlGammaAtomQuads, const std::vector > & projectorKetTimesPsiTimesV, @@ -96,7 +124,9 @@ void forceClass::FnlGammaAtomsElementalContributionNonPeriodic(std::map const unsigned int numberGlobalAtoms = dftPtr->atomLocations.size(); const unsigned int numEigenVectors=dftPtr->numEigenValues; const unsigned int numSubCells= dftPtr->matrix_free_data.n_components_filled(cell); - const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPoints=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points + :forceEval.n_q_points; DoFHandler::active_cell_iterator subCellPtr; const unsigned int numNonLocalAtomsCurrentProcess= dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); @@ -110,35 +140,60 @@ void forceClass::FnlGammaAtomsElementalContributionNonPeriodic(std::map const int globalChargeIdNonLocalAtom = dftPtr->d_nonLocalAtomGlobalChargeIds[nonLocalAtomId]; std::vector > temp2(1); temp2[0]=projectorKetTimesPsiTimesV[iAtom]; - for (unsigned int q=0; q > > > temp1(1); - temp1[0]=pspnlGammaAtomQuads[q][iAtom]; - const Tensor<1,C_DIM,VectorizedArray > F= - -eshelbyTensor::getFnlNonPeriodic(temp1, - temp2, - psiQuads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); - - forceEval.submit_value(F,q); + if (dftParameters::useHigherQuadNLP) + { + for (unsigned int q=0; q > > > temp1(1); + temp1[0]=pspnlGammaAtomQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > F= + -eshelbyTensor::getFnlNonPeriodic(temp1, + temp2, + psiQuads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + + + forceEvalNLP.submit_value(F,q); + } + } + else + { + for (unsigned int q=0; q > > > temp1(1); + temp1[0]=pspnlGammaAtomQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > F= + -eshelbyTensor::getFnlNonPeriodic(temp1, + temp2, + psiQuads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + + + forceEval.submit_value(F,q); + } } + const Tensor<1,C_DIM,VectorizedArray > forceContributionFnlGammaiAtomCells - =forceEval.integrate_value(); + =dftParameters::useHigherQuadNLP? + forceEvalNLP.integrate_value() + :forceEval.integrate_value(); if (forceContributionFnlGammaAtoms.find(globalChargeIdNonLocalAtom)==forceContributionFnlGammaAtoms.end()) forceContributionFnlGammaAtoms[globalChargeIdNonLocalAtom]=std::vector(C_DIM,0.0); + for (unsigned int iSubCell=0; iSubCell::FnlGammaAtomsElementalContributionNonPeriodic(std::map template void forceClass::distributeForceContributionFnlGammaAtoms(const std::map > & forceContributionFnlGammaAtoms) { - for (unsigned int iAtom=0;iAtom atomLocations.size(); iAtom++){ + for (unsigned int iAtom=0;iAtom atomLocations.size(); iAtom++) + { bool doesAtomIdExistOnLocallyOwnedNode=false; - if (d_atomsForceDofs.find(std::pair(iAtom,0))!=d_atomsForceDofs.end()){ + if (d_atomsForceDofs.find(std::pair(iAtom,0))!=d_atomsForceDofs.end()) doesAtomIdExistOnLocallyOwnedNode=true; - } std::vector forceContributionFnlGammaiAtomGlobal(C_DIM); std::vector forceContributionFnlGammaiAtomLocal(C_DIM,0.0); @@ -167,7 +222,8 @@ void forceClass::distributeForceContributionFnlGammaAtoms(const std::ma MPI_SUM, mpi_communicator); - if (doesAtomIdExistOnLocallyOwnedNode){ + if (doesAtomIdExistOnLocallyOwnedNode) + { std::vector forceLocalDofIndices(C_DIM); for (unsigned int idim=0; idim(iAtom,idim)]; diff --git a/src/force/configurationalForceCompute/FnlGammaAtomsElementalContributionSpinPolarized.cc b/src/force/configurationalForceCompute/FnlGammaAtomsElementalContributionSpinPolarized.cc index 356f3ce63..492c2fccb 100644 --- a/src/force/configurationalForceCompute/FnlGammaAtomsElementalContributionSpinPolarized.cc +++ b/src/force/configurationalForceCompute/FnlGammaAtomsElementalContributionSpinPolarized.cc @@ -22,6 +22,7 @@ template void forceClass::FnlGammaAtomsElementalContributionPeriodicSpinPolarized (std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > > > & pspnlGammaAtomsQuads, const std::vector > > > & projectorKetTimesPsiSpin0TimesV, @@ -34,7 +35,9 @@ void forceClass::FnlGammaAtomsElementalContributionPeriodicSpinPolarize const unsigned int numEigenVectors=dftPtr->numEigenValues; const unsigned int numKPoints=dftPtr->d_kPointWeights.size(); const unsigned int numSubCells= dftPtr->matrix_free_data.n_components_filled(cell); - const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPoints=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points + :forceEval.n_q_points; DoFHandler::active_cell_iterator subCellPtr; const unsigned int numNonLocalAtomsCurrentProcess= dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); @@ -55,36 +58,56 @@ void forceClass::FnlGammaAtomsElementalContributionPeriodicSpinPolarize temp2Spin1[ikPoint].resize(1); temp2Spin1[ikPoint][0]=projectorKetTimesPsiSpin1TimesV[ikPoint][iAtom]; } - for (unsigned int q=0; q > > > > > temp1(1); - temp1[0]=pspnlGammaAtomsQuads[q][iAtom]; - - const Tensor<1,C_DIM,VectorizedArray > - F=-eshelbyTensorSP::getFnlPeriodic(temp1, - temp2Spin0, - temp2Spin1, - psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, - psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, - dftPtr->d_kPointWeights, - dftPtr->eigenValues, - dftPtr->fermiEnergy, - dftParameters::TVal); - forceEval.submit_value(F,q); - } + + if (dftParameters::useHigherQuadNLP) + for (unsigned int q=0; q > > > > > temp1(1); + temp1[0]=pspnlGammaAtomsQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > + F=-eshelbyTensorSP::getFnlPeriodic(temp1, + temp2Spin0, + temp2Spin1, + psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, + psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEvalNLP.submit_value(F,q); + } + else + for (unsigned int q=0; q > > > > > temp1(1); + temp1[0]=pspnlGammaAtomsQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > + F=-eshelbyTensorSP::getFnlPeriodic(temp1, + temp2Spin0, + temp2Spin1, + psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, + psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEval.submit_value(F,q); + } + const Tensor<1,C_DIM,VectorizedArray > forceContributionFnlGammaiAtomCells - =forceEval.integrate_value(); + =dftParameters::useHigherQuadNLP? + forceEvalNLP.integrate_value() + :forceEval.integrate_value(); if (forceContributionFnlGammaAtoms.find(globalChargeIdNonLocalAtom)==forceContributionFnlGammaAtoms.end()) forceContributionFnlGammaAtoms[globalChargeIdNonLocalAtom]=std::vector(C_DIM,0.0); + for (unsigned int iSubCell=0; iSubCell void forceClass::FnlGammaAtomsElementalContributionNonPeriodicSpinPolarized (std::map > & forceContributionFnlGammaAtoms, FEEvaluation(),C_DIM> & forceEval, + FEEvaluation(),C_DIM> & forceEvalNLP, const unsigned int cell, const std::vector > > > > pspnlGammaAtomQuads, const std::vector > & projectorKetTimesPsiSpin0TimesV, @@ -105,7 +129,9 @@ void forceClass::FnlGammaAtomsElementalContributionNonPeriodicSpinPolar const unsigned int numberGlobalAtoms = dftPtr->atomLocations.size(); const unsigned int numEigenVectors=dftPtr->numEigenValues; const unsigned int numSubCells= dftPtr->matrix_free_data.n_components_filled(cell); - const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPoints=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points + :forceEval.n_q_points; DoFHandler::active_cell_iterator subCellPtr; const unsigned int numNonLocalAtomsCurrentProcess= dftPtr->d_nonLocalAtomIdsInCurrentProcess.size(); @@ -121,35 +147,54 @@ void forceClass::FnlGammaAtomsElementalContributionNonPeriodicSpinPolar temp2Spin0[0]=projectorKetTimesPsiSpin0TimesV[iAtom]; std::vector > temp2Spin1(1); temp2Spin1[0]=projectorKetTimesPsiSpin1TimesV[iAtom]; - for (unsigned int q=0; q > > > temp1(1); - temp1[0]=pspnlGammaAtomQuads[q][iAtom]; - - const Tensor<1,C_DIM,VectorizedArray > F= - -eshelbyTensorSP::getFnlNonPeriodic(temp1, - temp2Spin0, - temp2Spin1, - psiSpin0Quads.begin()+q*numEigenVectors, - psiSpin1Quads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); - forceEval.submit_value(F,q); - } + + if (dftParameters::useHigherQuadNLP) + for (unsigned int q=0; q > > > temp1(1); + temp1[0]=pspnlGammaAtomQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > F= + -eshelbyTensorSP::getFnlNonPeriodic(temp1, + temp2Spin0, + temp2Spin1, + psiSpin0Quads.begin()+q*numEigenVectors, + psiSpin1Quads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEvalNLP.submit_value(F,q); + } + else + for (unsigned int q=0; q > > > temp1(1); + temp1[0]=pspnlGammaAtomQuads[q][iAtom]; + + const Tensor<1,C_DIM,VectorizedArray > F= + -eshelbyTensorSP::getFnlNonPeriodic(temp1, + temp2Spin0, + temp2Spin1, + psiSpin0Quads.begin()+q*numEigenVectors, + psiSpin1Quads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEval.submit_value(F,q); + } + const Tensor<1,C_DIM,VectorizedArray > forceContributionFnlGammaiAtomCells - =forceEval.integrate_value(); + =dftParameters::useHigherQuadNLP? + forceEvalNLP.integrate_value() + :forceEval.integrate_value(); if (forceContributionFnlGammaAtoms.find(globalChargeIdNonLocalAtom)==forceContributionFnlGammaAtoms.end()) forceContributionFnlGammaAtoms[globalChargeIdNonLocalAtom]=std::vector(C_DIM,0.0); + for (unsigned int iSubCell=0; iSubCell::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( const unsigned int numVectorizedArrayElements=VectorizedArray::n_array_elements; const MatrixFree<3,double> & matrix_free_data=dftPtr->matrix_free_data; - FEEvaluation(),C_DIM> forceEval(matrix_free_data,d_forceDofHandlerIndex, 0); + FEEvaluation(),C_DIM> forceEval(matrix_free_data, + d_forceDofHandlerIndex, + 0); + FEEvaluation(),C_DIM> forceEvalNLP(matrix_free_data, + d_forceDofHandlerIndex, + 2); #ifdef USE_COMPLEX - FEEvaluation(),C_DIM> forceEvalKPoints(matrix_free_data,d_forceDofHandlerIndex, 0); + FEEvaluation(),C_DIM> forceEvalKPoints(matrix_free_data, + d_forceDofHandlerIndex, + 0); + FEEvaluation(),C_DIM> forceEvalKPointsNLP(matrix_free_data, + d_forceDofHandlerIndex, + 2); #endif #ifdef USE_COMPLEX - FEEvaluation(),2> psiEval(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); + FEEvaluation(),2> psiEval(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + + FEEvaluation(),2> psiEvalNLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); #else - FEEvaluation(),1> psiEval(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); + FEEvaluation(),1> psiEval(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + + FEEvaluation(),1> psiEvalNLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); #endif - FEEvaluation(),1> phiTotEval(matrix_free_data,dftPtr->phiTotDofHandlerIndex, 0); - FEEvaluation(),1> phiTotInEval(matrix_free_data,dftPtr->phiTotDofHandlerIndex, 0); - FEEvaluation(),1> phiExtEval(matrix_free_data, dftPtr->phiExtDofHandlerIndex, 0); + FEEvaluation(),1> phiTotEval(matrix_free_data, + dftPtr->phiTotDofHandlerIndex, + 0); + FEEvaluation(),1> phiTotInEval(matrix_free_data, + dftPtr->phiTotDofHandlerIndex, + 0); + FEEvaluation(),1> phiExtEval(matrix_free_data, + dftPtr->phiExtDofHandlerIndex, + 0); QGauss quadrature(C_num1DQuad()); FEValues feVselfValues (dftPtr->FE, quadrature, update_gradients | update_quadrature_points); const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPointsNLP=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points:numQuadPoints; const unsigned int numEigenVectors=dftPtr->numEigenValues; const unsigned int numKPoints=dftPtr->d_kPointWeights.size(); DoFHandler::active_cell_iterator subCellPtr; @@ -158,8 +188,19 @@ void forceClass::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( #ifdef USE_COMPLEX forceEvalKPoints.reinit(cell); #endif + psiEval.reinit(cell); + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { + forceEvalNLP.reinit(cell); +#ifdef USE_COMPLEX + forceEvalKPointsNLP.reinit(cell); +#endif + + psiEvalNLP.reinit(cell); + } + phiTotEval.reinit(cell); phiTotEval.read_dof_values_plain(dftPtr->d_phiTotRhoOut);//read without taking constraints into account phiTotEval.evaluate(true,true); @@ -202,13 +243,13 @@ void forceClass::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( #endif if(isPseudopotential) { - ZetaDeltaVQuads.resize(numQuadPoints); - gradZetaDeltaVQuads.resize(numQuadPoints); + ZetaDeltaVQuads.resize(numQuadPointsNLP); + gradZetaDeltaVQuads.resize(numQuadPointsNLP); #ifdef USE_COMPLEX - pspnlGammaAtomsQuads.resize(numQuadPoints); + pspnlGammaAtomsQuads.resize(numQuadPointsNLP); #endif - for (unsigned int q=0; q::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( ; } +#ifdef USE_COMPLEX + std::vector > > psiQuadsNLP; +#else + std::vector< VectorizedArray > psiQuadsNLP; +#endif + + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { +#ifdef USE_COMPLEX + psiQuadsNLP.resize(numQuadPointsNLP*numEigenVectors*numKPoints,zeroTensor1); +#else + psiQuadsNLP.resize(numQuadPointsNLP*numEigenVectors,make_vectorized_array(0.0)); +#endif + for (unsigned int ikPoint=0; ikPoint::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( gradPseudoVLocQuads[q][2][iSubCell]=d_gradPseudoVLoc[subCellId][C_DIM*q+2]; } - for (unsigned int q=0; q::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( #ifdef USE_COMPLEX for (unsigned int ikPoint=0; ikPoint::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( rhoQuads); #ifdef USE_COMPLEX - FnlGammaAtomsElementalContributionPeriodic(forceContributionFnlGammaAtoms, - forceEval, - cell, - pspnlGammaAtomsQuads, - projectorKetTimesPsiTimesV, - psiQuads); + FnlGammaAtomsElementalContributionPeriodic + (forceContributionFnlGammaAtoms, + forceEval, + forceEvalNLP, + cell, + pspnlGammaAtomsQuads, + projectorKetTimesPsiTimesV, + dftParameters::useHigherQuadNLP?psiQuadsNLP:psiQuads); + #else - FnlGammaAtomsElementalContributionNonPeriodic(forceContributionFnlGammaAtoms, - forceEval, - cell, - gradZetaDeltaVQuads, - projectorKetTimesPsiTimesV[0], - psiQuads); + FnlGammaAtomsElementalContributionNonPeriodic + (forceContributionFnlGammaAtoms, + forceEval, + forceEvalNLP, + cell, + gradZetaDeltaVQuads, + projectorKetTimesPsiTimesV[0], + dftParameters::useHigherQuadNLP?psiQuadsNLP:psiQuads); #endif + }//is pseudopotential check for (unsigned int q=0; q::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( VectorizedArray phiTot_q =phiTotEval.get_value(q); Tensor<1,C_DIM,VectorizedArray > gradPhiTot_q =phiTotEval.get_gradient(q); VectorizedArray phiExt_q =phiExtEval.get_value(q)*phiExtFactor; -#ifdef USE_COMPLEX - Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensor::getELocEshelbyTensorPeriodicNoKPoints + + Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensor::getEElectroEshelbyTensor (phiTot_q, gradPhiTot_q, rhoQuads[q], - gradRhoQuads[q], - excQuads[q], - derExchCorrEnergyWithGradRhoOutQuads[q], pseudoVLocQuads[q], phiExt_q); - Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensor::getELocEshelbyTensorPeriodicKPoints + E+=eshelbyTensor::getELocXcPspEshelbyTensor + (rhoQuads[q], + gradRhoQuads[q], + excQuads[q], + derExchCorrEnergyWithGradRhoOutQuads[q], + pseudoVLocQuads[q]); +#ifdef USE_COMPLEX + Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensor::getELocWfcEshelbyTensorPeriodicKPoints (psiQuads.begin()+q*numEigenVectors*numKPoints, gradPsiQuads.begin()+q*numEigenVectors*numKPoints, dftPtr->d_kPointCoordinates, @@ -459,19 +539,12 @@ void forceClass::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( dftPtr->fermiEnergy, dftParameters::TVal); #else - Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensor::getELocEshelbyTensorNonPeriodic(phiTot_q, - gradPhiTot_q, - rhoQuads[q], - gradRhoQuads[q], - excQuads[q], - derExchCorrEnergyWithGradRhoOutQuads[q], - pseudoVLocQuads[q], - phiExt_q, - psiQuads.begin()+q*numEigenVectors, - gradPsiQuads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); + E+=eshelbyTensor::getELocWfcEshelbyTensorNonPeriodic + (psiQuads.begin()+q*numEigenVectors, + gradPsiQuads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); #endif Tensor<1,C_DIM,VectorizedArray > F=zeroTensor3; if(isPseudopotential) @@ -480,41 +553,43 @@ void forceClass::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( F+=eshelbyTensor::getFPSPLocal(rhoQuads[q], gradPseudoVLocQuads[q], gradPhiExt_q); - + if (!dftParameters::useHigherQuadNLP) + { #ifdef USE_COMPLEX - Tensor<1,C_DIM,VectorizedArray > FKPoints; - FKPoints+=eshelbyTensor::getFnlPeriodic(gradZetaDeltaVQuads[q], - projectorKetTimesPsiTimesV, - psiQuads.begin()+q*numEigenVectors*numKPoints, - dftPtr->d_kPointWeights, - dftPtr->eigenValues, - dftPtr->fermiEnergy, - dftParameters::TVal); - - - EKPoints+=eshelbyTensor::getEnlEshelbyTensorPeriodic(ZetaDeltaVQuads[q], - projectorKetTimesPsiTimesV, - psiQuads.begin()+q*numEigenVectors*numKPoints, - dftPtr->d_kPointWeights, - dftPtr->eigenValues, - dftPtr->fermiEnergy, - dftParameters::TVal); - forceEvalKPoints.submit_value(FKPoints,q); + Tensor<1,C_DIM,VectorizedArray > FKPoints + =eshelbyTensor::getFnlPeriodic(gradZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV, + psiQuads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + + EKPoints+=eshelbyTensor::getEnlEshelbyTensorPeriodic(ZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV, + psiQuads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEvalKPoints.submit_value(FKPoints,q); #else - F+=eshelbyTensor::getFnlNonPeriodic(gradZetaDeltaVQuads[q], - projectorKetTimesPsiTimesV[0], - psiQuads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); - - E+=eshelbyTensor::getEnlEshelbyTensorNonPeriodic(ZetaDeltaVQuads[q], - projectorKetTimesPsiTimesV[0], - psiQuads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); + F+=eshelbyTensor::getFnlNonPeriodic(gradZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV[0], + psiQuads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + + E+=eshelbyTensor::getEnlEshelbyTensorNonPeriodic(ZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV[0], + psiQuads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); #endif + } } @@ -533,12 +608,71 @@ void forceClass::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( forceEvalKPoints.submit_gradient(EKPoints,q); #endif }//quad point loop + + if (isPseudopotential && dftParameters::useHigherQuadNLP) + for (unsigned int q=0; q > FKPoints + =eshelbyTensor::getFnlPeriodic(gradZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV, + psiQuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + Tensor<2,C_DIM,VectorizedArray > EKPoints + =eshelbyTensor::getEnlEshelbyTensorPeriodic(ZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV, + psiQuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEvalKPointsNLP.submit_value(FKPoints,q); + forceEvalKPointsNLP.submit_gradient(EKPoints,q); +#else + Tensor<1,C_DIM,VectorizedArray > F + =eshelbyTensor::getFnlNonPeriodic(gradZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV[0], + psiQuadsNLP.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + + Tensor<2,C_DIM,VectorizedArray > E + =eshelbyTensor::getEnlEshelbyTensorNonPeriodic(ZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV[0], + psiQuadsNLP.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + + forceEvalNLP.submit_value(F,q); + forceEvalNLP.submit_gradient(E,q); +#endif + }//nonlocal psp quad points loop + if(isPseudopotential) { forceEval.integrate(true,true); #ifdef USE_COMPLEX - forceEvalKPoints.integrate(true,true); + if (dftParameters::useHigherQuadNLP) + forceEvalKPoints.integrate(false,true); + else + forceEvalKPoints.integrate(true,true); +#endif + + if (dftParameters::useHigherQuadNLP) + { + +#ifdef USE_COMPLEX + forceEvalKPointsNLP.integrate(true,true); +#else + forceEvalNLP.integrate(true,true); #endif + } } else { @@ -547,10 +681,20 @@ void forceClass::computeConfigurationalForceEEshelbyTensorFPSPFnlLinFE( forceEvalKPoints.integrate(false,true); #endif } + forceEval.distribute_local_to_global(d_configForceVectorLinFE);//also takes care of constraints #ifdef USE_COMPLEX forceEvalKPoints.distribute_local_to_global(d_configForceVectorLinFEKPoints); #endif + + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { +#ifdef USE_COMPLEX + forceEvalKPointsNLP.distribute_local_to_global(d_configForceVectorLinFEKPoints); +#else + forceEvalNLP.distribute_local_to_global(d_configForceVectorLinFE); +#endif + } } // add global FPSPLocal contribution due to Gamma(Rj) to the configurational force vector diff --git a/src/force/configurationalForceCompute/configurationalForceSpinPolarizedEEshelbyFPSPFnlLinFE.cc b/src/force/configurationalForceCompute/configurationalForceSpinPolarizedEEshelbyFPSPFnlLinFE.cc index 775e8f47b..ab5d41384 100644 --- a/src/force/configurationalForceCompute/configurationalForceSpinPolarizedEEshelbyFPSPFnlLinFE.cc +++ b/src/force/configurationalForceCompute/configurationalForceSpinPolarizedEEshelbyFPSPFnlLinFE.cc @@ -51,17 +51,47 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor const unsigned int numVectorizedArrayElements=VectorizedArray::n_array_elements; const MatrixFree<3,double> & matrix_free_data=dftPtr->matrix_free_data; - FEEvaluation(),C_DIM> forceEval(matrix_free_data,d_forceDofHandlerIndex, 0); + FEEvaluation(),C_DIM> forceEval(matrix_free_data, + d_forceDofHandlerIndex, + 0); + FEEvaluation(),C_DIM> forceEvalNLP(matrix_free_data, + d_forceDofHandlerIndex, + 2); #ifdef USE_COMPLEX - FEEvaluation(),C_DIM> forceEvalKPoints(matrix_free_data,d_forceDofHandlerIndex, 0); + FEEvaluation(),C_DIM> forceEvalKPoints(matrix_free_data, + d_forceDofHandlerIndex, + 0); + FEEvaluation(),C_DIM> forceEvalKPointsNLP(matrix_free_data, + d_forceDofHandlerIndex, + 2); #endif #ifdef USE_COMPLEX - FEEvaluation(),2> psiEvalSpin0(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); - FEEvaluation(),2> psiEvalSpin1(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); + FEEvaluation(),2> psiEvalSpin0(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + FEEvaluation(),2> psiEvalSpin1(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + FEEvaluation(),2> psiEvalSpin0NLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); + FEEvaluation(),2> psiEvalSpin1NLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); #else - FEEvaluation(),1> psiEvalSpin0(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); - FEEvaluation(),1> psiEvalSpin1(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); + FEEvaluation(),1> psiEvalSpin0(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + FEEvaluation(),1> psiEvalSpin1(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + FEEvaluation(),1> psiEvalSpin0NLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); + FEEvaluation(),1> psiEvalSpin1NLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); #endif FEEvaluation(),1> phiTotEval(matrix_free_data,dftPtr->phiTotDofHandlerIndex, 0); @@ -71,6 +101,8 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor FEValues feVselfValues (dftPtr->FE, quadrature, update_gradients | update_quadrature_points); const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPointsNLP=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points:numQuadPoints; const unsigned int numEigenVectors=dftPtr->numEigenValues; const unsigned int numKPoints=dftPtr->d_kPointWeights.size(); DoFHandler::active_cell_iterator subCellPtr; @@ -138,6 +170,17 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor psiEvalSpin0.reinit(cell); psiEvalSpin1.reinit(cell); + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { + forceEvalNLP.reinit(cell); +#ifdef USE_COMPLEX + forceEvalKPointsNLP.reinit(cell); +#endif + + psiEvalSpin0NLP.reinit(cell); + psiEvalSpin1NLP.reinit(cell); + } + phiTotEval.reinit(cell); phiTotEval.read_dof_values_plain(dftPtr->d_phiTotRhoOut);//read without taking constraints into account phiTotEval.evaluate(true,true); @@ -187,13 +230,13 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor #endif if(isPseudopotential) { - ZetaDeltaVQuads.resize(numQuadPoints); - gradZetaDeltaVQuads.resize(numQuadPoints); + ZetaDeltaVQuads.resize(numQuadPointsNLP); + gradZetaDeltaVQuads.resize(numQuadPointsNLP); #ifdef USE_COMPLEX - pspnlGammaAtomsQuads.resize(numQuadPoints); + pspnlGammaAtomsQuads.resize(numQuadPointsNLP); #endif - for (unsigned int q=0; q::computeConfigurationalForceSpinPolarizedEEshelbyTensor } } +#ifdef USE_COMPLEX + std::vector > > psiSpin0QuadsNLP; + std::vector > > psiSpin1QuadsNLP; +#else + std::vector< VectorizedArray > psiSpin0QuadsNLP; + std::vector< VectorizedArray > psiSpin1QuadsNLP; +#endif + + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { +#ifdef USE_COMPLEX + psiSpin0QuadsNLP.resize(numQuadPointsNLP*numEigenVectors*numKPoints,zeroTensor1); + psiSpin1QuadsNLP.resize(numQuadPointsNLP*numEigenVectors*numKPoints,zeroTensor1); +#else + psiSpin0QuadsNLP.resize(numQuadPointsNLP*numEigenVectors,make_vectorized_array(0.0)); + psiSpin1QuadsNLP.resize(numQuadPointsNLP*numEigenVectors,make_vectorized_array(0.0)); +#endif + for (unsigned int ikPoint=0; ikPoint::computeConfigurationalForceSpinPolarizedEEshelbyTensor gradPseudoVLocQuads[q][2][iSubCell]=d_gradPseudoVLoc[subCellId][C_DIM*q+2]; } - for (unsigned int q=0; q::computeConfigurationalForceSpinPolarizedEEshelbyTensor #ifdef USE_COMPLEX for (unsigned int ikPoint=0; ikPoint::computeConfigurationalForceSpinPolarizedEEshelbyTensor #ifdef USE_COMPLEX FnlGammaAtomsElementalContributionPeriodicSpinPolarized(forceContributionFnlGammaAtoms, - forceEval, - cell, - pspnlGammaAtomsQuads, - projectorKetTimesPsiSpin0TimesV, - projectorKetTimesPsiSpin1TimesV, - psiSpin0Quads, - psiSpin1Quads); + forceEval, + forceEvalNLP, + cell, + pspnlGammaAtomsQuads, + projectorKetTimesPsiSpin0TimesV, + projectorKetTimesPsiSpin1TimesV, + dftParameters::useHigherQuadNLP? + psiSpin0QuadsNLP: + psiSpin0Quads, + dftParameters::useHigherQuadNLP? + psiSpin1QuadsNLP: + psiSpin1Quads); #else FnlGammaAtomsElementalContributionNonPeriodicSpinPolarized (forceContributionFnlGammaAtoms, forceEval, + forceEvalNLP, cell, gradZetaDeltaVQuads, projectorKetTimesPsiSpin0TimesV[0], projectorKetTimesPsiSpin1TimesV[0], - psiSpin0Quads, + dftParameters::useHigherQuadNLP? + psiSpin0QuadsNLP: + psiSpin0Quads, + dftParameters::useHigherQuadNLP? + psiSpin1QuadsNLP: psiSpin1Quads); #endif }//is pseudopotential check @@ -487,20 +579,24 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor VectorizedArray phiTot_q =phiTotEval.get_value(q); Tensor<1,C_DIM,VectorizedArray > gradPhiTot_q =phiTotEval.get_gradient(q); VectorizedArray phiExt_q =phiExtEval.get_value(q)*phiExtFactor; -#ifdef USE_COMPLEX - Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensorSP::getELocEshelbyTensorPeriodicNoKPoints + + Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensor::getEElectroEshelbyTensor (phiTot_q, gradPhiTot_q, rhoQuads[q], - gradRhoSpin0Quads[q], - gradRhoSpin1Quads[q], - excQuads[q], - derExchCorrEnergyWithGradRhoOutSpin0Quads[q], - derExchCorrEnergyWithGradRhoOutSpin1Quads[q], pseudoVLocQuads[q], phiExt_q); - Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensorSP::getELocEshelbyTensorPeriodicKPoints + E+=eshelbyTensorSP::getELocXcPspEshelbyTensor + (rhoQuads[q], + gradRhoSpin0Quads[q], + gradRhoSpin1Quads[q], + excQuads[q], + derExchCorrEnergyWithGradRhoOutSpin0Quads[q], + derExchCorrEnergyWithGradRhoOutSpin1Quads[q], + pseudoVLocQuads[q]); +#ifdef USE_COMPLEX + Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensorSP::getELocWfcEshelbyTensorPeriodicKPoints (psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, gradPsiSpin0Quads.begin()+q*numEigenVectors*numKPoints, @@ -511,24 +607,14 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor dftPtr->fermiEnergy, dftParameters::TVal); #else - Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensorSP::getELocEshelbyTensorNonPeriodic - (phiTot_q, - gradPhiTot_q, - rhoQuads[q], - gradRhoSpin0Quads[q], - gradRhoSpin1Quads[q], - excQuads[q], - derExchCorrEnergyWithGradRhoOutSpin0Quads[q], - derExchCorrEnergyWithGradRhoOutSpin1Quads[q], - pseudoVLocQuads[q], - phiExt_q, - psiSpin0Quads.begin()+q*numEigenVectors, - psiSpin1Quads.begin()+q*numEigenVectors, - gradPsiSpin0Quads.begin()+q*numEigenVectors, - gradPsiSpin1Quads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); + E+=eshelbyTensorSP::getELocWfcEshelbyTensorNonPeriodic + (psiSpin0Quads.begin()+q*numEigenVectors, + psiSpin1Quads.begin()+q*numEigenVectors, + gradPsiSpin0Quads.begin()+q*numEigenVectors, + gradPsiSpin1Quads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); #endif Tensor<1,C_DIM,VectorizedArray > F=zeroTensor3; if(isPseudopotential) @@ -538,51 +624,55 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor gradPseudoVLocQuads[q], gradPhiExt_q); + if (!dftParameters::useHigherQuadNLP) + { #ifdef USE_COMPLEX - Tensor<1,C_DIM,VectorizedArray > FKPoints; - FKPoints+=eshelbyTensorSP::getFnlPeriodic - (gradZetaDeltaVQuads[q], - projectorKetTimesPsiSpin0TimesV, - projectorKetTimesPsiSpin1TimesV, - psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, - psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, - dftPtr->d_kPointWeights, - dftPtr->eigenValues, - dftPtr->fermiEnergy, - dftParameters::TVal); - - - EKPoints+=eshelbyTensorSP::getEnlEshelbyTensorPeriodic - (ZetaDeltaVQuads[q], - projectorKetTimesPsiSpin0TimesV, - projectorKetTimesPsiSpin1TimesV, - psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, - psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, - dftPtr->d_kPointWeights, - dftPtr->eigenValues, - dftPtr->fermiEnergy, - dftParameters::TVal); - forceEvalKPoints.submit_value(FKPoints,q); + Tensor<1,C_DIM,VectorizedArray > FKPoints + =eshelbyTensorSP::getFnlPeriodic + (gradZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV, + projectorKetTimesPsiSpin1TimesV, + psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, + psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + + EKPoints+=eshelbyTensorSP::getEnlEshelbyTensorPeriodic + (ZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV, + projectorKetTimesPsiSpin1TimesV, + psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, + psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEvalKPoints.submit_value(FKPoints,q); #else - F+=eshelbyTensorSP::getFnlNonPeriodic - (gradZetaDeltaVQuads[q], - projectorKetTimesPsiSpin0TimesV[0], - projectorKetTimesPsiSpin1TimesV[0], - psiSpin0Quads.begin()+q*numEigenVectors, - psiSpin1Quads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); - - E+=eshelbyTensorSP::getEnlEshelbyTensorNonPeriodic(ZetaDeltaVQuads[q], - projectorKetTimesPsiSpin0TimesV[0], - projectorKetTimesPsiSpin1TimesV[0], - psiSpin0Quads.begin()+q*numEigenVectors, - psiSpin1Quads.begin()+q*numEigenVectors, - (dftPtr->eigenValues)[0], - dftPtr->fermiEnergy, - dftParameters::TVal); + F+=eshelbyTensorSP::getFnlNonPeriodic + (gradZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV[0], + projectorKetTimesPsiSpin1TimesV[0], + psiSpin0Quads.begin()+q*numEigenVectors, + psiSpin1Quads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + + E+=eshelbyTensorSP::getEnlEshelbyTensorNonPeriodic(ZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV[0], + projectorKetTimesPsiSpin1TimesV[0], + psiSpin0Quads.begin()+q*numEigenVectors, + psiSpin1Quads.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); #endif + } + } @@ -608,12 +698,78 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor forceEvalKPoints.submit_gradient(EKPoints,q); #endif }//quad point loop + + if (isPseudopotential && dftParameters::useHigherQuadNLP) + for (unsigned int q=0; q > FKPoints + =eshelbyTensorSP::getFnlPeriodic + (gradZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV, + projectorKetTimesPsiSpin1TimesV, + psiSpin0QuadsNLP.begin()+q*numEigenVectors*numKPoints, + psiSpin1QuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + Tensor<2,C_DIM,VectorizedArray > EKPoints + =eshelbyTensorSP::getEnlEshelbyTensorPeriodic + (ZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV, + projectorKetTimesPsiSpin1TimesV, + psiSpin0QuadsNLP.begin()+q*numEigenVectors*numKPoints, + psiSpin1QuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEvalKPointsNLP.submit_value(FKPoints,q); + forceEvalKPointsNLP.submit_gradient(EKPoints,q); +#else + Tensor<1,C_DIM,VectorizedArray > F + =eshelbyTensorSP::getFnlNonPeriodic + (gradZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV[0], + projectorKetTimesPsiSpin1TimesV[0], + psiSpin0QuadsNLP.begin()+q*numEigenVectors, + psiSpin1QuadsNLP.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + Tensor<2,C_DIM,VectorizedArray > E + =eshelbyTensorSP::getEnlEshelbyTensorNonPeriodic(ZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV[0], + projectorKetTimesPsiSpin1TimesV[0], + psiSpin0QuadsNLP.begin()+q*numEigenVectors, + psiSpin1QuadsNLP.begin()+q*numEigenVectors, + (dftPtr->eigenValues)[0], + dftPtr->fermiEnergy, + dftParameters::TVal); + forceEvalNLP.submit_value(F,q); + forceEvalNLP.submit_gradient(E,q); +#endif + }//nonlocal psp quad points loop + if(isPseudopotential) { forceEval.integrate(true,true); #ifdef USE_COMPLEX - forceEvalKPoints.integrate(true,true); + if (dftParameters::useHigherQuadNLP) + forceEvalKPoints.integrate(false,true); + else + forceEvalKPoints.integrate(true,true); #endif + if (dftParameters::useHigherQuadNLP) + { +#ifdef USE_COMPLEX + forceEvalKPointsNLP.integrate(true,true); +#else + forceEvalNLP.integrate(true,true); +#endif + } } else { @@ -622,10 +778,19 @@ void forceClass::computeConfigurationalForceSpinPolarizedEEshelbyTensor forceEvalKPoints.integrate(false,true); #endif } + forceEval.distribute_local_to_global(d_configForceVectorLinFE);//also takes care of constraints #ifdef USE_COMPLEX forceEvalKPoints.distribute_local_to_global(d_configForceVectorLinFEKPoints); #endif + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { +#ifdef USE_COMPLEX + forceEvalKPointsNLP.distribute_local_to_global(d_configForceVectorLinFEKPoints); +#else + forceEvalNLP.distribute_local_to_global(d_configForceVectorLinFE); +#endif + } } // add global FPSPLocal contribution due to Gamma(Rj) to the configurational force vector diff --git a/src/force/configurationalForceCompute/gaussianGeneratorConfForceOpt.cc b/src/force/configurationalForceCompute/gaussianGeneratorConfForceOpt.cc index 766425be0..881c3d28a 100644 --- a/src/force/configurationalForceCompute/gaussianGeneratorConfForceOpt.cc +++ b/src/force/configurationalForceCompute/gaussianGeneratorConfForceOpt.cc @@ -365,10 +365,10 @@ void forceClass::computeAtomsForcesGaussianGenerator(bool allowGaussian std::vector globalAtomsGaussianForcesLocalPart(numberGlobalAtoms*C_DIM,0); d_globalAtomsGaussianForces.clear(); d_globalAtomsGaussianForces.resize(numberGlobalAtoms*C_DIM,0.0); + #ifdef USE_COMPLEX std::vector globalAtomsGaussianForcesKPointsLocalPart(numberGlobalAtoms*C_DIM,0); - d_globalAtomsGaussianForcesKPoints.clear(); - d_globalAtomsGaussianForcesKPoints.resize(numberGlobalAtoms*C_DIM,0.0); + std::vector globalAtomsGaussianForcesKPoints(numberGlobalAtoms*C_DIM,0.0); #endif std::vector vertex_touched(d_dofHandlerForce.get_triangulation().n_vertices(), false); @@ -437,9 +437,11 @@ void forceClass::computeAtomsForcesGaussianGenerator(bool allowGaussian const unsigned int globalDofIndex=cell->vertex_dof_index(i,idim); if (!d_constraintsNoneForce.is_constrained(globalDofIndex) && d_locally_owned_dofsForce.is_element(globalDofIndex)) { - globalAtomsGaussianForcesLocalPart[C_DIM*atomId+idim]+=gaussianWeight*d_configForceVectorLinFE[globalDofIndex]; + globalAtomsGaussianForcesLocalPart[C_DIM*atomId+idim]+= + gaussianWeight*(d_configForceVectorLinFE[globalDofIndex]); #ifdef USE_COMPLEX - globalAtomsGaussianForcesKPointsLocalPart[C_DIM*atomId+idim]+=gaussianWeight*d_configForceVectorLinFEKPoints[globalDofIndex]; + globalAtomsGaussianForcesKPointsLocalPart[C_DIM*atomId+idim]+= + gaussianWeight*(d_configForceVectorLinFEKPoints[globalDofIndex]); #endif } }//idim loop @@ -459,7 +461,7 @@ void forceClass::computeAtomsForcesGaussianGenerator(bool allowGaussian #ifdef USE_COMPLEX //Sum all processor contributions and distribute to all processors MPI_Allreduce(&(globalAtomsGaussianForcesKPointsLocalPart[0]), - &(d_globalAtomsGaussianForcesKPoints[0]), + &(globalAtomsGaussianForcesKPoints[0]), numberGlobalAtoms*C_DIM, MPI_DOUBLE, MPI_SUM, @@ -469,8 +471,8 @@ void forceClass::computeAtomsForcesGaussianGenerator(bool allowGaussian { for (unsigned int idim=0; idim < C_DIM ; idim++) { - d_globalAtomsGaussianForcesKPoints[iAtom*C_DIM+idim]= Utilities::MPI::sum(d_globalAtomsGaussianForcesKPoints[iAtom*C_DIM+idim], dftPtr->interpoolcomm); - d_globalAtomsGaussianForces[iAtom*C_DIM+idim]+=d_globalAtomsGaussianForcesKPoints[iAtom*C_DIM+idim]; + globalAtomsGaussianForcesKPoints[iAtom*C_DIM+idim]= Utilities::MPI::sum(globalAtomsGaussianForcesKPoints[iAtom*C_DIM+idim], dftPtr->interpoolcomm); + d_globalAtomsGaussianForces[iAtom*C_DIM+idim]+=globalAtomsGaussianForcesKPoints[iAtom*C_DIM+idim]; } } #endif diff --git a/src/force/configurationalStressCompute/computeStressEEshelbyEPSPEnlEk.cc b/src/force/configurationalStressCompute/computeStressEEshelbyEPSPEnlEk.cc index 34d630b16..65def6343 100644 --- a/src/force/configurationalStressCompute/computeStressEEshelbyEPSPEnlEk.cc +++ b/src/force/configurationalStressCompute/computeStressEEshelbyEPSPEnlEk.cc @@ -51,15 +51,35 @@ void forceClass::computeStressEEshelbyEPSPEnlEk() const unsigned int numVectorizedArrayElements=VectorizedArray::n_array_elements; const MatrixFree<3,double> & matrix_free_data=dftPtr->matrix_free_data; - FEEvaluation(),C_DIM> forceEval(matrix_free_data,d_forceDofHandlerIndex, 0); - FEEvaluation(),1> phiTotEval(matrix_free_data,dftPtr->phiTotDofHandlerIndex, 0); - FEEvaluation(),2> psiEval(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); - FEEvaluation(),1> phiTotInEval(matrix_free_data,dftPtr->phiTotDofHandlerIndex, 0); - FEEvaluation(),1> phiExtEval(matrix_free_data, dftPtr->phiExtDofHandlerIndex, 0); + FEEvaluation(),C_DIM> forceEval(matrix_free_data, + d_forceDofHandlerIndex, + 0); + FEEvaluation(),C_DIM> forceEvalNLP(matrix_free_data, + d_forceDofHandlerIndex, + 2); + + FEEvaluation(),2> psiEval(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + FEEvaluation(),2> psiEvalNLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); + + FEEvaluation(),1> phiTotEval(matrix_free_data, + dftPtr->phiTotDofHandlerIndex, + 0); + FEEvaluation(),1> phiTotInEval(matrix_free_data, + dftPtr->phiTotDofHandlerIndex, + 0); + FEEvaluation(),1> phiExtEval(matrix_free_data, + dftPtr->phiExtDofHandlerIndex, + 0); QGauss quadrature(C_num1DQuad()); FEValues feVselfValues (dftPtr->FE, quadrature, update_gradients | update_quadrature_points); const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPointsNLP=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points:numQuadPoints; const unsigned int numEigenVectors=dftPtr->numEigenValues; const unsigned int numKPoints=dftPtr->d_kPointWeights.size(); @@ -111,6 +131,13 @@ void forceClass::computeStressEEshelbyEPSPEnlEk() forceEval.reinit(cell); psiEval.reinit(cell); + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { + forceEvalNLP.reinit(cell); + psiEvalNLP.reinit(cell); + } + + phiTotEval.reinit(cell); phiTotEval.read_dof_values_plain(dftPtr->d_phiTotRhoOut);//read without taking constraints into account phiTotEval.evaluate(true,true); @@ -143,9 +170,9 @@ void forceClass::computeStressEEshelbyEPSPEnlEk() std::vector > > > > > >gradZetalmDeltaVlDyadicDistImageAtomsQuads; if(isPseudopotential) { - ZetaDeltaVQuads.resize(numQuadPoints); - gradZetalmDeltaVlDyadicDistImageAtomsQuads.resize(numQuadPoints); - for (unsigned int q=0; q::computeStressEEshelbyEPSPEnlEk() for (unsigned int iSubCell=0; iSubCellinterpoolcomm); -; + gradRhoQuads[q][idim][iSubCell]= + Utilities::MPI::sum(gradRhoQuads[q][idim][iSubCell],dftPtr->interpoolcomm); + + std::vector > > psiQuadsNLP; + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { + psiQuadsNLP.resize(numQuadPointsNLP*numEigenVectors*numKPoints,zeroTensor1); + for (unsigned int ikPoint=0; ikPoint::computeStressEEshelbyEPSPEnlEk() gradPseudoVLocQuads[q][2][iSubCell]=d_gradPseudoVLoc[subCellId][C_DIM*q+2]; } - for (unsigned int q=0; q::computeStressEEshelbyEPSPEnlEk() { for (unsigned int ikPoint=0; ikPoint::computeStressEEshelbyEPSPEnlEk() rhoQuads); }//is pseudopotential check + Tensor<2,C_DIM,VectorizedArray > EQuadSum=zeroTensor4; + Tensor<2,C_DIM,VectorizedArray > EKPointsQuadSum=zeroTensor4; for (unsigned int q=0; q phiTot_q =phiTotEval.get_value(q); Tensor<1,C_DIM,VectorizedArray > gradPhiTot_q =phiTotEval.get_gradient(q); VectorizedArray phiExt_q =phiExtEval.get_value(q)*phiExtFactor; - Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensor::getELocEshelbyTensorPeriodicNoKPoints + Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensor::getEElectroEshelbyTensor (phiTot_q, gradPhiTot_q, rhoQuads[q], - gradRhoQuads[q], - excQuads[q], - derExchCorrEnergyWithGradRhoOutQuads[q], pseudoVLocQuads[q], phiExt_q); - Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensor::getELocEshelbyTensorPeriodicKPoints + E+=eshelbyTensor::getELocXcPspEshelbyTensor + (rhoQuads[q], + gradRhoQuads[q], + excQuads[q], + derExchCorrEnergyWithGradRhoOutQuads[q], + pseudoVLocQuads[q]); + + Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensor::getELocWfcEshelbyTensorPeriodicKPoints (psiQuads.begin()+q*numEigenVectors*numKPoints, gradPsiQuads.begin()+q*numEigenVectors*numKPoints, dftPtr->d_kPointCoordinates, @@ -353,7 +404,7 @@ void forceClass::computeStressEEshelbyEPSPEnlEk() dftPtr->fermiEnergy, dftParameters::TVal); - if(isPseudopotential) + if(isPseudopotential && !dftParameters::useHigherQuadNLP) { EKPoints+=eshelbyTensor::getEnlEshelbyTensorPeriodic(ZetaDeltaVQuads[q], projectorKetTimesPsiTimesV, @@ -373,20 +424,42 @@ void forceClass::computeStressEEshelbyEPSPEnlEk() }//is pseudopotential check - E=E*forceEval.JxW(q); - EKPoints=EKPoints*forceEval.JxW(q); - for (unsigned int iSubCell=0; iSubCell > EKPoints + =eshelbyTensor::getEnlEshelbyTensorPeriodic(ZetaDeltaVQuads[q], + projectorKetTimesPsiTimesV, + psiQuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + EKPoints+=eshelbyTensor::getEnlStress(gradZetalmDeltaVlDyadicDistImageAtomsQuads[q], + projectorKetTimesPsiTimesV, + psiQuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + + EKPointsQuadSum+=EKPoints*forceEvalNLP.JxW(q); + + } + + for (unsigned int iSubCell=0; iSubCell::computeStressSpinPolarizedEEshelbyEPSPEnlEk() const unsigned int numVectorizedArrayElements=VectorizedArray::n_array_elements; const MatrixFree<3,double> & matrix_free_data=dftPtr->matrix_free_data; - FEEvaluation(),C_DIM> forceEval(matrix_free_data,d_forceDofHandlerIndex, 0); - FEEvaluation(),2> psiEvalSpin0(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); - FEEvaluation(),2> psiEvalSpin1(matrix_free_data,dftPtr->eigenDofHandlerIndex , 0); - FEEvaluation(),1> phiTotEval(matrix_free_data,dftPtr->phiTotDofHandlerIndex, 0); - FEEvaluation(),1> phiTotInEval(matrix_free_data,dftPtr->phiTotDofHandlerIndex, 0); - FEEvaluation(),1> phiExtEval(matrix_free_data, dftPtr->phiExtDofHandlerIndex, 0); + FEEvaluation(),C_DIM> forceEval(matrix_free_data, + d_forceDofHandlerIndex, + 0); + FEEvaluation(),C_DIM> forceEvalNLP(matrix_free_data, + d_forceDofHandlerIndex, + 2); + + FEEvaluation(),2> psiEvalSpin0(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + FEEvaluation(),2> psiEvalSpin1(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 0); + FEEvaluation(),2> psiEvalSpin0NLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); + FEEvaluation(),2> psiEvalSpin1NLP(matrix_free_data, + dftPtr->eigenDofHandlerIndex, + 2); + + FEEvaluation(),1> phiTotEval(matrix_free_data, + dftPtr->phiTotDofHandlerIndex, + 0); + FEEvaluation(),1> phiTotInEval(matrix_free_data, + dftPtr->phiTotDofHandlerIndex, + 0); + FEEvaluation(),1> phiExtEval(matrix_free_data, + dftPtr->phiExtDofHandlerIndex, + 0); QGauss quadrature(C_num1DQuad()); FEValues feVselfValues (dftPtr->FE, quadrature, update_gradients | update_quadrature_points); const unsigned int numQuadPoints=forceEval.n_q_points; + const unsigned int numQuadPointsNLP=dftParameters::useHigherQuadNLP? + forceEvalNLP.n_q_points:numQuadPoints; const unsigned int numEigenVectors=dftPtr->numEigenValues; const unsigned int numKPoints=dftPtr->d_kPointWeights.size(); @@ -128,6 +153,13 @@ void forceClass::computeStressSpinPolarizedEEshelbyEPSPEnlEk() psiEvalSpin0.reinit(cell); psiEvalSpin1.reinit(cell); + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { + forceEvalNLP.reinit(cell); + psiEvalSpin0NLP.reinit(cell); + psiEvalSpin1NLP.reinit(cell); + } + phiTotEval.reinit(cell); phiTotEval.read_dof_values_plain(dftPtr->d_phiTotRhoOut);//read without taking constraints into account phiTotEval.evaluate(true,true); @@ -167,9 +199,9 @@ void forceClass::computeStressSpinPolarizedEEshelbyEPSPEnlEk() std::vector > > > > > >gradZetalmDeltaVlDyadicDistImageAtomsQuads; if(isPseudopotential) { - ZetaDeltaVQuads.resize(numQuadPoints); - gradZetalmDeltaVlDyadicDistImageAtomsQuads.resize(numQuadPoints); - for (unsigned int q=0; q::computeStressSpinPolarizedEEshelbyEPSPEnlEk() gradRhoSpin1Quads[q][idim][iSubCell]=Utilities::MPI::sum(gradRhoSpin1Quads[q][idim][iSubCell],dftPtr->interpoolcomm); } + std::vector > > psiSpin0QuadsNLP; + std::vector > > psiSpin1QuadsNLP; + if (isPseudopotential && dftParameters::useHigherQuadNLP) + { + psiSpin0QuadsNLP.resize(numQuadPointsNLP*numEigenVectors*numKPoints,zeroTensor1); + psiSpin1QuadsNLP.resize(numQuadPointsNLP*numEigenVectors*numKPoints,zeroTensor1); + for (unsigned int ikPoint=0; ikPoint::computeStressSpinPolarizedEEshelbyEPSPEnlEk() gradPseudoVLocQuads[q][2][iSubCell]=d_gradPseudoVLoc[subCellId][C_DIM*q+2]; } - for (unsigned int q=0; q::computeStressSpinPolarizedEEshelbyEPSPEnlEk() { for (unsigned int ikPoint=0; ikPoint::computeStressSpinPolarizedEEshelbyEPSPEnlEk() rhoQuads); }//is pseudopotential check + Tensor<2,C_DIM,VectorizedArray > EQuadSum=zeroTensor4; + Tensor<2,C_DIM,VectorizedArray > EKPointsQuadSum=zeroTensor4; for (unsigned int q=0; q phiTot_q =phiTotEval.get_value(q); Tensor<1,C_DIM,VectorizedArray > gradPhiTot_q =phiTotEval.get_gradient(q); VectorizedArray phiExt_q =phiExtEval.get_value(q)*phiExtFactor; - Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensorSP::getELocEshelbyTensorPeriodicNoKPoints + + Tensor<2,C_DIM,VectorizedArray > E=eshelbyTensor::getEElectroEshelbyTensor (phiTot_q, gradPhiTot_q, rhoQuads[q], - gradRhoSpin0Quads[q], - gradRhoSpin1Quads[q], - excQuads[q], - derExchCorrEnergyWithGradRhoOutSpin0Quads[q], - derExchCorrEnergyWithGradRhoOutSpin1Quads[q], pseudoVLocQuads[q], phiExt_q); - Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensorSP::getELocEshelbyTensorPeriodicKPoints + E+=eshelbyTensorSP::getELocXcPspEshelbyTensor + (rhoQuads[q], + gradRhoSpin0Quads[q], + gradRhoSpin1Quads[q], + excQuads[q], + derExchCorrEnergyWithGradRhoOutSpin0Quads[q], + derExchCorrEnergyWithGradRhoOutSpin1Quads[q], + pseudoVLocQuads[q]); + + Tensor<2,C_DIM,VectorizedArray > EKPoints=eshelbyTensorSP::getELocWfcEshelbyTensorPeriodicKPoints (psiSpin0Quads.begin()+q*numEigenVectors*numKPoints, psiSpin1Quads.begin()+q*numEigenVectors*numKPoints, gradPsiSpin0Quads.begin()+q*numEigenVectors*numKPoints, @@ -423,7 +486,7 @@ void forceClass::computeStressSpinPolarizedEEshelbyEPSPEnlEk() dftPtr->fermiEnergy, dftParameters::TVal); - if(isPseudopotential) + if(isPseudopotential && !dftParameters::useHigherQuadNLP) { EKPoints+=eshelbyTensorSP::getEnlEshelbyTensorPeriodic (ZetaDeltaVQuads[q], @@ -448,20 +511,47 @@ void forceClass::computeStressSpinPolarizedEEshelbyEPSPEnlEk() }//is pseudopotential check - E=E*forceEval.JxW(q); - EKPoints=EKPoints*forceEval.JxW(q); - for (unsigned int iSubCell=0; iSubCell > EKPoints + =eshelbyTensorSP::getEnlEshelbyTensorPeriodic + (ZetaDeltaVQuads[q], + projectorKetTimesPsiSpin0TimesV, + projectorKetTimesPsiSpin1TimesV, + psiSpin0QuadsNLP.begin()+q*numEigenVectors*numKPoints, + psiSpin1QuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + EKPoints+=eshelbyTensorSP::getEnlStress(gradZetalmDeltaVlDyadicDistImageAtomsQuads[q], + projectorKetTimesPsiSpin0TimesV, + projectorKetTimesPsiSpin1TimesV, + psiSpin0QuadsNLP.begin()+q*numEigenVectors*numKPoints, + psiSpin1QuadsNLP.begin()+q*numEigenVectors*numKPoints, + dftPtr->d_kPointWeights, + dftPtr->eigenValues, + dftPtr->fermiEnergy, + dftParameters::TVal); + + + EKPointsQuadSum+=EKPoints*forceEvalNLP.JxW(q); + } + + for (unsigned int iSubCell=0; iSubCell > getELocEshelbyTensorPeriodicNoKPoints - (const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, - const Tensor<1,C_DIM,VectorizedArray > & gradRho, - const VectorizedArray & exc, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRho, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt) - { - Tensor<2,C_DIM,VectorizedArray > eshelbyTensor= make_vectorized_array(1.0/(4.0*M_PI))*outer_product(gradPhiTot,gradPhiTot)-outer_product(derExcGradRho,gradRho); - VectorizedArray identityTensorFactor=make_vectorized_array(-1.0/(8.0*M_PI))*scalar_product(gradPhiTot,gradPhiTot)+rho*phiTot+exc*rho + (pseudoVLoc-phiExt)*rho; - eshelbyTensor[0][0]+=identityTensorFactor; - eshelbyTensor[1][1]+=identityTensorFactor; - eshelbyTensor[2][2]+=identityTensorFactor; - return eshelbyTensor; - } - - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorPeriodicKPoints - (std::vector > >::const_iterator psiBegin, - std::vector > > >::const_iterator gradPsiBegin, - const std::vector & kPointCoordinates, - const std::vector & kPointWeights, - const std::vector > & eigenValues_, - const double fermiEnergy_, - const double tVal) + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorPeriodicKPoints + (std::vector > >::const_iterator psiBegin, + std::vector > > >::const_iterator gradPsiBegin, + const std::vector & kPointCoordinates, + const std::vector & kPointWeights, + const std::vector > & eigenValues_, + const double fermiEnergy_, + const double tVal) { Tensor<2,C_DIM,VectorizedArray > eshelbyTensor; for (unsigned int idim=0; idim > getELocEshelbyTensorNonPeriodic(const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, - const Tensor<1,C_DIM,VectorizedArray > & gradRho, - const VectorizedArray & exc, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRho, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt, - std::vector >::const_iterator psiBegin, - std::vector > >::const_iterator gradPsiBegin, - const std::vector & eigenValues_, - const double fermiEnergy_, - const double tVal) + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorNonPeriodic + (std::vector >::const_iterator psiBegin, + std::vector > >::const_iterator gradPsiBegin, + const std::vector & eigenValues_, + const double fermiEnergy_, + const double tVal) { - Tensor<2,C_DIM,VectorizedArray > eshelbyTensor= make_vectorized_array(1.0/(4.0*M_PI))*outer_product(gradPhiTot,gradPhiTot)-outer_product(derExcGradRho,gradRho); - VectorizedArray identityTensorFactor=make_vectorized_array(-1.0/(8.0*M_PI))*scalar_product(gradPhiTot,gradPhiTot)+rho*phiTot+exc*rho + (pseudoVLoc-phiExt)*rho; + Tensor<2,C_DIM,VectorizedArray > eshelbyTensor; + for (unsigned int idim=0; idim identityTensorFactor=make_vectorized_array(0.0); std::vector >::const_iterator it1=psiBegin; std::vector > >::const_iterator it2=gradPsiBegin; @@ -174,6 +153,42 @@ namespace eshelbyTensor } + Tensor<2,C_DIM,VectorizedArray > getEElectroEshelbyTensor + (const VectorizedArray & phiTot, + const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, + const VectorizedArray & rho, + const VectorizedArray & pseudoVLoc, + const VectorizedArray & phiExt) + { + + Tensor<2,C_DIM,VectorizedArray > eshelbyTensor= + make_vectorized_array(1.0/(4.0*M_PI))*outer_product(gradPhiTot,gradPhiTot); + VectorizedArray identityTensorFactor=make_vectorized_array(-1.0/(8.0*M_PI))*scalar_product(gradPhiTot,gradPhiTot)+rho*phiTot -phiExt*rho; + + eshelbyTensor[0][0]+=identityTensorFactor; + eshelbyTensor[1][1]+=identityTensorFactor; + eshelbyTensor[2][2]+=identityTensorFactor; + return eshelbyTensor; + } + + Tensor<2,C_DIM,VectorizedArray > getELocXcPspEshelbyTensor + (const VectorizedArray & rho, + const Tensor<1,C_DIM,VectorizedArray > & gradRho, + const VectorizedArray & exc, + const Tensor<1,C_DIM,VectorizedArray > & derExcGradRho, + const VectorizedArray & pseudoVLoc) + { + + Tensor<2,C_DIM,VectorizedArray > eshelbyTensor=-outer_product(derExcGradRho,gradRho); + VectorizedArray identityTensorFactor=exc*rho + pseudoVLoc*rho; + + + eshelbyTensor[0][0]+=identityTensorFactor; + eshelbyTensor[1][1]+=identityTensorFactor; + eshelbyTensor[2][2]+=identityTensorFactor; + return eshelbyTensor; + } + Tensor<2,C_DIM,VectorizedArray > getEnlEshelbyTensorNonPeriodic(const std::vector > > & ZetaDeltaV, const std::vector > & projectorKetTimesPsiTimesV, std::vector >::const_iterator psiBegin, diff --git a/src/force/eshelbyTensor/eshelbyTensorSpinPolarized.cc b/src/force/eshelbyTensor/eshelbyTensorSpinPolarized.cc index 1f2e6664b..077f457a0 100644 --- a/src/force/eshelbyTensor/eshelbyTensorSpinPolarized.cc +++ b/src/force/eshelbyTensor/eshelbyTensorSpinPolarized.cc @@ -23,27 +23,25 @@ namespace dftfe { namespace eshelbyTensorSP { - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorPeriodicNoKPoints - (const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, + Tensor<2,C_DIM,VectorizedArray > getELocXcPspEshelbyTensor + (const VectorizedArray & rho, const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin0, const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin1, const VectorizedArray & exc, const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin0, const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin1, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt) + const VectorizedArray & pseudoVLoc) { - Tensor<2,C_DIM,VectorizedArray > eshelbyTensor= make_vectorized_array(1.0/(4.0*M_PI))*outer_product(gradPhiTot,gradPhiTot)-outer_product(derExcGradRhoSpin0,gradRhoSpin0)-outer_product(derExcGradRhoSpin1,gradRhoSpin1); - VectorizedArray identityTensorFactor=make_vectorized_array(-1.0/(8.0*M_PI))*scalar_product(gradPhiTot,gradPhiTot)+rho*phiTot+exc*rho + (pseudoVLoc-phiExt)*rho; + Tensor<2,C_DIM,VectorizedArray > eshelbyTensor= -outer_product(derExcGradRhoSpin0,gradRhoSpin0) + -outer_product(derExcGradRhoSpin1,gradRhoSpin1); + VectorizedArray identityTensorFactor=exc*rho + pseudoVLoc*rho; eshelbyTensor[0][0]+=identityTensorFactor; eshelbyTensor[1][1]+=identityTensorFactor; eshelbyTensor[2][2]+=identityTensorFactor; return eshelbyTensor; } - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorPeriodicKPoints + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorPeriodicKPoints (std::vector > >::const_iterator psiSpin0Begin, std::vector > >::const_iterator psiSpin1Begin, std::vector > > >::const_iterator gradPsiSpin0Begin, @@ -58,12 +56,9 @@ namespace eshelbyTensorSP Tensor<2,C_DIM,VectorizedArray > eshelbyTensor; for (unsigned int idim=0; idim identityTensorFactor=make_vectorized_array(0.0); std::vector > >::const_iterator it1Spin0=psiSpin0Begin; @@ -117,18 +112,8 @@ namespace eshelbyTensorSP return eshelbyTensor; } - Tensor<2,C_DIM,VectorizedArray > getELocEshelbyTensorNonPeriodic - (const VectorizedArray & phiTot, - const Tensor<1,C_DIM,VectorizedArray > & gradPhiTot, - const VectorizedArray & rho, - const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin0, - const Tensor<1,C_DIM,VectorizedArray > & gradRhoSpin1, - const VectorizedArray & exc, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin0, - const Tensor<1,C_DIM,VectorizedArray > & derExcGradRhoSpin1, - const VectorizedArray & pseudoVLoc, - const VectorizedArray & phiExt, - std::vector >::const_iterator psiSpin0Begin, + Tensor<2,C_DIM,VectorizedArray > getELocWfcEshelbyTensorNonPeriodic + (std::vector >::const_iterator psiSpin0Begin, std::vector >::const_iterator psiSpin1Begin, std::vector > >::const_iterator gradPsiSpin0Begin, std::vector > >::const_iterator gradPsiSpin1Begin, @@ -137,8 +122,12 @@ namespace eshelbyTensorSP const double tVal) { - Tensor<2,C_DIM,VectorizedArray > eshelbyTensor= make_vectorized_array(1.0/(4.0*M_PI))*outer_product(gradPhiTot,gradPhiTot)-outer_product(derExcGradRhoSpin0,gradRhoSpin0)-outer_product(derExcGradRhoSpin1,gradRhoSpin1); - VectorizedArray identityTensorFactor=make_vectorized_array(-1.0/(8.0*M_PI))*scalar_product(gradPhiTot,gradPhiTot)+rho*phiTot+exc*rho + (pseudoVLoc-phiExt)*rho; + Tensor<2,C_DIM,VectorizedArray > eshelbyTensor; + for (unsigned int idim=0; idim identityTensorFactor=make_vectorized_array(0.0); std::vector >::const_iterator it1Spin0=psiSpin0Begin; std::vector > >::const_iterator it2Spin0=gradPsiSpin0Begin; diff --git a/src/force/force.cc b/src/force/force.cc index 187b192d7..a090277bb 100644 --- a/src/force/force.cc +++ b/src/force/force.cc @@ -115,9 +115,9 @@ void forceClass::initUnmoved(const Triangulation<3,3> & triangulation) std::vector periodicDirectionVector; - for(unsigned int d= 0; d < 3; ++d) + for(unsigned int d= 0; d < 3; ++d) { - if(periodic[d]==1) + if(periodic[d]==1) { periodicDirectionVector.push_back(d); } @@ -176,7 +176,7 @@ void forceClass::configForceLinFEInit() { dftPtr->matrix_free_data.initialize_dof_vector(d_configForceVectorLinFE,d_forceDofHandlerIndex); - d_configForceVectorLinFE=0;//also zeros out the ghost vectors + d_configForceVectorLinFE=0; #ifdef USE_COMPLEX dftPtr->matrix_free_data.initialize_dof_vector(d_configForceVectorLinFEKPoints,d_forceDofHandlerIndex); d_configForceVectorLinFEKPoints=0; @@ -190,6 +190,7 @@ void forceClass::configForceLinFEFinalize() //d_configForceVectorLinFE.update_ghost_values(); d_constraintsNoneForce.distribute(d_configForceVectorLinFE);//distribute to constrained degrees of freedom (for example periodic) d_configForceVectorLinFE.update_ghost_values(); + #ifdef USE_COMPLEX d_configForceVectorLinFEKPoints.compress(VectorOperation::add);//copies the ghost element cache to the owning element //d_configForceVectorLinFEKPoints.update_ghost_values(); diff --git a/src/force/initPseudoOVForce.cc b/src/force/initPseudoOVForce.cc index 756ab07ec..b20f31fc0 100644 --- a/src/force/initPseudoOVForce.cc +++ b/src/force/initPseudoOVForce.cc @@ -34,9 +34,11 @@ void forceClass::computeElementalNonLocalPseudoOVDataForce() //get FE data structures // QGauss<3> quadrature(C_num1DQuad()); - FEValues<3> fe_values(dftPtr->FE, quadrature, update_quadrature_points); + QGauss<3> quadratureHigh(C_num1DQuadPSP()); + FEValues<3> fe_values(dftPtr->FE, dftParameters::useHigherQuadNLP?quadratureHigh:quadrature, update_quadrature_points); const unsigned int numberNodesPerElement = dftPtr->FE.dofs_per_cell; - const unsigned int numberQuadraturePoints = quadrature.size(); + const unsigned int numberQuadraturePoints = dftParameters::useHigherQuadNLP?quadratureHigh.size() + :quadrature.size(); const unsigned int numKPoints=dftPtr->d_kPointWeights.size(); // diff --git a/src/linAlg/linearAlgebraOperationsInternal.cc b/src/linAlg/linearAlgebraOperationsInternal.cc index 024b4298a..940cd504c 100644 --- a/src/linAlg/linearAlgebraOperationsInternal.cc +++ b/src/linAlg/linearAlgebraOperationsInternal.cc @@ -34,113 +34,115 @@ namespace dftfe namespace internal { #ifdef DEAL_II_WITH_SCALAPACK - void createProcessGridSquareMatrix(const MPI_Comm & mpi_communicator, - const unsigned size, - std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid) - { - const unsigned int numberProcs = dealii::Utilities::MPI::n_mpi_processes(mpi_communicator); - - //Rule of thumb from http://netlib.org/scalapack/slug/node106.html#SECTION04511000000000000000 - const unsigned int rowProcs=dftParameters::scalapackParalProcs==0? - std::min(std::floor(std::sqrt(numberProcs)), - std::ceil((double)size/(double)(1000))): - std::min((unsigned int)std::floor(std::sqrt(numberProcs)), - dftParameters::scalapackParalProcs); - if(dftParameters::verbosity>=4) - { - dealii::ConditionalOStream pcout(std::cout, (dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0)); - pcout<<"Scalapack Matrix created, row procs: "<< rowProcs< & processGrid) + { + const unsigned int numberProcs = dealii::Utilities::MPI::n_mpi_processes(mpi_communicator); + + //Rule of thumb from http://netlib.org/scalapack/slug/node106.html#SECTION04511000000000000000 + const unsigned int rowProcs=dftParameters::scalapackParalProcs==0? + std::min(std::floor(std::sqrt(numberProcs)), + std::ceil((double)size/(double)(1000))): + std::min((unsigned int)std::floor(std::sqrt(numberProcs)), + dftParameters::scalapackParalProcs); + if(dftParameters::verbosity>=4) + { + dealii::ConditionalOStream pcout(std::cout, (dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0)); + pcout<<"Scalapack Matrix created, row procs: "<< rowProcs<(mpi_communicator, - rowProcs, - rowProcs); - } + processGrid=std::make_shared(mpi_communicator, + rowProcs, + rowProcs); + } - template - void createGlobalToLocalIdMapsScaLAPACKMat(const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - const dealii::ScaLAPACKMatrix & mat, - std::map & globalToLocalRowIdMap, - std::map & globalToLocalColumnIdMap) - { + template + void createGlobalToLocalIdMapsScaLAPACKMat(const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const dealii::ScaLAPACKMatrix & mat, + std::map & globalToLocalRowIdMap, + std::map & globalToLocalColumnIdMap) + { #ifdef USE_COMPLEX - AssertThrow(false,dftUtils::ExcNotImplementedYet()); + AssertThrow(false,dftUtils::ExcNotImplementedYet()); #else - globalToLocalRowIdMap.clear(); - globalToLocalColumnIdMap.clear(); - if (processGrid->is_process_active()) + globalToLocalRowIdMap.clear(); + globalToLocalColumnIdMap.clear(); + if (processGrid->is_process_active()) { - for (unsigned int i = 0; i < mat.local_m(); ++i) - globalToLocalRowIdMap[mat.global_row(i)]=i; + for (unsigned int i = 0; i < mat.local_m(); ++i) + globalToLocalRowIdMap[mat.global_row(i)]=i; - for (unsigned int j = 0; j < mat.local_n(); ++j) - globalToLocalColumnIdMap[mat.global_column(j)]=j; + for (unsigned int j = 0; j < mat.local_n(); ++j) + globalToLocalColumnIdMap[mat.global_column(j)]=j; } #endif - } + } - template - void sumAcrossInterCommScaLAPACKMat(const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - dealii::ScaLAPACKMatrix & mat, - const MPI_Comm &interComm) - { + template + void sumAcrossInterCommScaLAPACKMat(const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + dealii::ScaLAPACKMatrix & mat, + const MPI_Comm &interComm) + { #ifdef USE_COMPLEX - AssertThrow(false,dftUtils::ExcNotImplementedYet()); + AssertThrow(false,dftUtils::ExcNotImplementedYet()); #else - //sum across all inter communicator groups - if (processGrid->is_process_active() && - dealii::Utilities::MPI::n_mpi_processes(interComm)>1) + //sum across all inter communicator groups + if (processGrid->is_process_active() && + dealii::Utilities::MPI::n_mpi_processes(interComm)>1) { - MPI_Allreduce(MPI_IN_PLACE, - &mat.local_el(0,0), - mat.local_m()*mat.local_n(), - MPI_DOUBLE, - MPI_SUM, - interComm); + MPI_Allreduce(MPI_IN_PLACE, + &mat.local_el(0,0), + mat.local_m()*mat.local_n(), + MPI_DOUBLE, + MPI_SUM, + interComm); - } + } #endif - } - - template - void broadcastAcrossInterCommScaLAPACKMat - (const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - dealii::ScaLAPACKMatrix & mat, - const MPI_Comm &interComm, - const unsigned int broadcastRoot) - { + } + + template + void broadcastAcrossInterCommScaLAPACKMat + (const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + dealii::ScaLAPACKMatrix & mat, + const MPI_Comm &interComm, + const unsigned int broadcastRoot) + { #ifdef USE_COMPLEX - AssertThrow(false,dftUtils::ExcNotImplementedYet()); + AssertThrow(false,dftUtils::ExcNotImplementedYet()); #else - //sum across all inter communicator groups - if (processGrid->is_process_active() && - dealii::Utilities::MPI::n_mpi_processes(interComm)>1) + //sum across all inter communicator groups + if (processGrid->is_process_active() && + dealii::Utilities::MPI::n_mpi_processes(interComm)>1) { - MPI_Bcast(&mat.local_el(0,0), - mat.local_m()*mat.local_n(), - MPI_DOUBLE, - broadcastRoot, - interComm); + MPI_Bcast(&mat.local_el(0,0), + mat.local_m()*mat.local_n(), + MPI_DOUBLE, + broadcastRoot, + interComm); - } + } #endif - } - - template - void fillParallelOverlapMatrix(const dealii::parallel::distributed::Vector & X, - const unsigned int numberVectors, - const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - const MPI_Comm &interBandGroupComm, - dealii::ScaLAPACKMatrix & overlapMatPar) - { + } + + void fillParallelOverlapMatrixMixedPrec(const dataTypes::number* subspaceVectorsArray, + const unsigned int subspaceVectorsArrayLocalSize, + const unsigned int N, + const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + dealii::ScaLAPACKMatrix & overlapMatPar) + { + #ifdef USE_COMPLEX - AssertThrow(false,dftUtils::ExcNotImplementedYet()); + AssertThrow(false,dftUtils::ExcNotImplementedYet()); #else - const unsigned int numLocalDofs = X.local_size()/numberVectors; + const unsigned int numLocalDofs = subspaceVectorsArrayLocalSize/N; //band group parallelization data structures const unsigned int numberBandGroups= @@ -148,7 +150,7 @@ namespace dftfe const unsigned int bandGroupTaskId = dealii::Utilities::MPI::this_mpi_process(interBandGroupComm); std::vector bandGroupLowHighPlusOneIndices; dftUtils::createBandParallelizationIndices(interBandGroupComm, - numberVectors, + N, bandGroupLowHighPlusOneIndices); //get global to local index maps for Scalapack matrix @@ -159,92 +161,162 @@ namespace dftfe globalToLocalRowIdMap, globalToLocalColumnIdMap); + + /* + * Sc=X^{T}*Xc is done in a blocked approach for memory optimization: + * Sum_{blocks} X^{T}*XcBlock. The result of each X^{T}*XBlock + * has a much smaller memory compared to X^{T}*Xc. + * X^{T} is a matrix with size number of wavefunctions times + * number of local degrees of freedom (N x MLoc). + * MLoc is denoted by numLocalDofs. + * Xc denotes complex conjugate of X. + * XcBlock is a matrix with size (MLoc x B). B is the block size. + * A further optimization is done to reduce floating point operations: + * As X^{T}*Xc is a Hermitian matrix, it suffices to compute only the lower + * triangular part. To exploit this, we do + * X^{T}*Xc=Sum_{blocks} XTrunc^{T}*XcBlock + * where XTrunc^{T} is a (D x MLoc) sub matrix of X^{T} with the row indices + * ranging fromt the lowest global index of XcBlock (denoted by ivec in the code) + * to N. D=N-ivec. + * The parallel ScaLapack overlap matrix is directly filled from + * the XTrunc^{T}*XcBlock result + */ const unsigned int vectorsBlockSize=std::min(dftParameters::wfcBlockSize, bandGroupLowHighPlusOneIndices[1]); - std::vector overlapMatrixBlock(numberVectors*vectorsBlockSize,0.0); - std::vector blockVectorsMatrix(numLocalDofs*vectorsBlockSize,0.0); + std::vector overlapMatrixBlock(N*vectorsBlockSize,0.0); + std::vector blockVectorsMatrix(numLocalDofs*vectorsBlockSize,0.0); + std::vector blockVectorsMatrixLowPrec(numLocalDofs*vectorsBlockSize,0.0); + std::vector overlapMatrixBlockLowPrec(N*vectorsBlockSize,0.0); - for (unsigned int ivec = 0; ivec < numberVectors; ivec += vectorsBlockSize) + std::vector subspaceVectorsArrayLowPrec(subspaceVectorsArray, + subspaceVectorsArray+ + subspaceVectorsArrayLocalSize); + for (unsigned int ivec = 0; ivec < N; ivec += vectorsBlockSize) { // Correct block dimensions if block "goes off edge of" the matrix - const unsigned int B = std::min(vectorsBlockSize, numberVectors-ivec); + const unsigned int B = std::min(vectorsBlockSize, N-ivec); + // If one plus the ending index of a block lies within a band parallelization group + // do computations for that block within the band group, otherwise skip that + // block. This is only activated if NPBAND>1 if ((ivec+B)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && (ivec+B)>bandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) { const char transA = 'N',transB = 'N'; - const T scalarCoeffAlpha = 1.0,scalarCoeffBeta = 0.0; + const dataTypes::number scalarCoeffAlpha = 1.0,scalarCoeffBeta = 0.0; + const dataTypes::numberLowPrec scalarCoeffAlphaLowPrec = 1.0,scalarCoeffBetaLowPrec = 0.0; std::fill(overlapMatrixBlock.begin(),overlapMatrixBlock.end(),0.); + std::fill(overlapMatrixBlockLowPrec.begin(),overlapMatrixBlockLowPrec.end(),0.); + // Extract XcBlock from X^{T}. for (unsigned int i = 0; i is_process_active()) for(unsigned int i = 0; i ::iterator it= globalToLocalRowIdMap.find(j); if(it!=globalToLocalRowIdMap.end()) overlapMatPar.local_el(it->second, localColumnId) - =overlapMatrixBlock[i*numberVectors+j]; + =overlapMatrixBlock[i*D+j-ivec]; } } - }//band parallelization + }//band parallelization }//block loop + + //accumulate contribution from all band parallelization groups linearAlgebraOperations::internal::sumAcrossInterCommScaLAPACKMat (processGrid, overlapMatPar, interBandGroupComm); + #endif - } - - - template - void subspaceRotation(dealii::parallel::distributed::Vector & subspaceVectorsArray, - const unsigned int numberSubspaceVectors, - const unsigned int numberCoreVectors, - dealii::parallel::distributed::Vector & nonCoreVectorsArray, - const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - const MPI_Comm &interBandGroupComm, - const dealii::ScaLAPACKMatrix & rotationMatPar, - const bool rotationMatTranspose, - const bool isRotationMatLowerTria) - { + } + + template + void fillParallelOverlapMatrix(const T* subspaceVectorsArray, + const unsigned int subspaceVectorsArrayLocalSize, + const unsigned int N, + const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + dealii::ScaLAPACKMatrix & overlapMatPar) + { + #ifdef USE_COMPLEX - AssertThrow(false,dftUtils::ExcNotImplementedYet()); + AssertThrow(false,dftUtils::ExcNotImplementedYet()); #else - const unsigned int numLocalDofs = subspaceVectorsArray.local_size()/numberSubspaceVectors; - - const unsigned int maxNumLocalDofs=dealii::Utilities::MPI::max(numLocalDofs, - subspaceVectorsArray.get_mpi_communicator()); + const unsigned int numLocalDofs = subspaceVectorsArrayLocalSize/N; //band group parallelization data structures const unsigned int numberBandGroups= @@ -252,96 +324,282 @@ namespace dftfe const unsigned int bandGroupTaskId = dealii::Utilities::MPI::this_mpi_process(interBandGroupComm); std::vector bandGroupLowHighPlusOneIndices; dftUtils::createBandParallelizationIndices(interBandGroupComm, - numberSubspaceVectors, + N, bandGroupLowHighPlusOneIndices); + //get global to local index maps for Scalapack matrix std::map globalToLocalColumnIdMap; std::map globalToLocalRowIdMap; internal::createGlobalToLocalIdMapsScaLAPACKMat(processGrid, - rotationMatPar, + overlapMatPar, globalToLocalRowIdMap, globalToLocalColumnIdMap); + /* + * Sc=X^{T}*Xc is done in a blocked approach for memory optimization: + * Sum_{blocks} X^{T}*XcBlock. The result of each X^{T}*XBlock + * has a much smaller memory compared to X^{T}*Xc. + * X^{T} is a matrix with size number of wavefunctions times + * number of local degrees of freedom (N x MLoc). + * MLoc is denoted by numLocalDofs. + * Xc denotes complex conjugate of X. + * XcBlock is a matrix with size (MLoc x B). B is the block size. + * A further optimization is done to reduce floating point operations: + * As X^{T}*Xc is a Hermitian matrix, it suffices to compute only the lower + * triangular part. To exploit this, we do + * X^{T}*Xc=Sum_{blocks} XTrunc^{T}*XcBlock + * where XTrunc^{T} is a (D x MLoc) sub matrix of X^{T} with the row indices + * ranging fromt the lowest global index of XcBlock (denoted by ivec in the code) + * to N. D=N-ivec. + * The parallel ScaLapack overlap matrix is directly filled from + * the XTrunc^{T}*XcBlock result + */ const unsigned int vectorsBlockSize=std::min(dftParameters::wfcBlockSize, bandGroupLowHighPlusOneIndices[1]); - const unsigned int dofsBlockSize=dftParameters::subspaceRotDofsBlockSize; - - std::vector rotationMatBlock(vectorsBlockSize*numberSubspaceVectors,0.0); - std::vector rotatedVectorsMatBlock(numberSubspaceVectors*dofsBlockSize,0.0); - std::vector rotatedVectorsMatBlockTemp(vectorsBlockSize*dofsBlockSize,0.0); - if (dftParameters::verbosity>=4) - dftUtils::printCurrentMemoryUsage(subspaceVectorsArray.get_mpi_communicator(), - "Inside Blocked susbpace rotation"); + std::vector overlapMatrixBlock(N*vectorsBlockSize,0.0); + std::vector blockVectorsMatrix(numLocalDofs*vectorsBlockSize,0.0); - for (unsigned int idof = 0; idof < maxNumLocalDofs; idof += dofsBlockSize) + for (unsigned int ivec = 0; ivec < N; ivec += vectorsBlockSize) { // Correct block dimensions if block "goes off edge of" the matrix - unsigned int BDof=0; - if (numLocalDofs>=idof) - BDof = std::min(dofsBlockSize, numLocalDofs-idof); + const unsigned int B = std::min(vectorsBlockSize, N-ivec); + + // If one plus the ending index of a block lies within a band parallelization group + // do computations for that block within the band group, otherwise skip that + // block. This is only activated if NPBAND>1 + if ((ivec+B)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && + (ivec+B)>bandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) + { + const char transA = 'N',transB = 'N'; + const T scalarCoeffAlpha = 1.0,scalarCoeffBeta = 0.0; + + std::fill(overlapMatrixBlock.begin(),overlapMatrixBlock.end(),0.); + + // Extract XcBlock from X^{T}. + for (unsigned int i = 0; i is_process_active()) + for(unsigned int i = 0; i ::iterator it= + globalToLocalRowIdMap.find(j); + if(it!=globalToLocalRowIdMap.end()) + overlapMatPar.local_el(it->second, + localColumnId) + =overlapMatrixBlock[i*D+j-ivec]; + } + } + }//band parallelization + }//block loop + + + //accumulate contribution from all band parallelization groups + linearAlgebraOperations::internal::sumAcrossInterCommScaLAPACKMat + (processGrid, + overlapMatPar, + interBandGroupComm); + +#endif + } + + + template + void subspaceRotation(T* subspaceVectorsArray, + const unsigned int subspaceVectorsArrayLocalSize, + const unsigned int N, + const unsigned int numberCoreVectors, + T* nonCoreVectorsArray, + const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + const dealii::ScaLAPACKMatrix & rotationMatPar, + const bool rotationMatTranspose, + const bool isRotationMatLowerTria) + { +#ifdef USE_COMPLEX + AssertThrow(false,dftUtils::ExcNotImplementedYet()); +#else + const unsigned int numLocalDofs = subspaceVectorsArrayLocalSize/N; + + const unsigned int maxNumLocalDofs=dealii::Utilities::MPI::max(numLocalDofs, + mpiComm); + + //band group parallelization data structures + const unsigned int numberBandGroups= + dealii::Utilities::MPI::n_mpi_processes(interBandGroupComm); + const unsigned int bandGroupTaskId = dealii::Utilities::MPI::this_mpi_process(interBandGroupComm); + std::vector bandGroupLowHighPlusOneIndices; + dftUtils::createBandParallelizationIndices(interBandGroupComm, + N, + bandGroupLowHighPlusOneIndices); + + std::map globalToLocalColumnIdMap; + std::map globalToLocalRowIdMap; + internal::createGlobalToLocalIdMapsScaLAPACKMat(processGrid, + rotationMatPar, + globalToLocalRowIdMap, + globalToLocalColumnIdMap); + + + /* + * Q*X^{T} is done in a blocked approach for memory optimization: + * Sum_{dof_blocks} Sum_{vector_blocks} QBvec*XBdof^{T}. + * The result of each QBvec*XBdof^{T} + * has a much smaller memory compared to Q*X^{T}. + * X^{T} (denoted by subspaceVectorsArray in the code with column major format storage) + * is a matrix with size (N x MLoc). + * N is denoted by numberWaveFunctions in the code. + * MLoc, which is number of local dofs is denoted by numLocalDofs in the code. + * QBvec is a matrix of size (BVec x N). BVec is the vectors block size. + * XBdof is a matrix of size (N x BDof). BDof is the block size of dofs. + * A further optimization is done to reduce floating point operations when + * Q is a lower triangular matrix in the subspace rotation step of PGS: + * Then it suffices to compute only the multiplication of lower + * triangular part of Q with X^{T}. To exploit this, we do + * Sum_{dof_blocks} Sum_{vector_blocks} QBvecTrunc*XBdofTrunc^{T}. + * where QBvecTrunc is a (BVec x D) sub matrix of QBvec with the column indices + * ranging from O to D-1, where D=jvec(lowest global index of QBvec) + BVec. + * XBdofTrunc is a (D x BDof) sub matrix of XBdof with the row indices + * ranging from 0 to D-1. + * X^{T} is directly updated from + * the Sum_{vector_blocks} QBvecTrunc*XBdofTrunc^{T} result + * for each {dof_block}. + */ + const unsigned int vectorsBlockSize=std::min(dftParameters::wfcBlockSize, + bandGroupLowHighPlusOneIndices[1]); + const unsigned int dofsBlockSize=std::min(maxNumLocalDofs, + dftParameters::subspaceRotDofsBlockSize); + + std::vector rotationMatBlock(vectorsBlockSize*N,0.0); + std::vector rotatedVectorsMatBlock(N*dofsBlockSize,0.0); + std::vector rotatedVectorsMatBlockTemp(vectorsBlockSize*dofsBlockSize,0.0); + + + if (dftParameters::verbosity>=4) + dftUtils::printCurrentMemoryUsage(mpiComm, + "Inside Blocked susbpace rotation"); + + for (unsigned int idof = 0; idof < maxNumLocalDofs; idof += dofsBlockSize) + { + // Correct block dimensions if block "goes off edge of" the matrix + unsigned int BDof=0; + if (numLocalDofs>=idof) + BDof = std::min(dofsBlockSize, numLocalDofs-idof); std::fill(rotatedVectorsMatBlock.begin(),rotatedVectorsMatBlock.end(),0.); - for (unsigned int jvec = 0; jvec < numberSubspaceVectors; jvec += vectorsBlockSize) + for (unsigned int jvec = 0; jvec < N; jvec += vectorsBlockSize) { // Correct block dimensions if block "goes off edge of" the matrix - const unsigned int BVec = std::min(vectorsBlockSize, numberSubspaceVectors-jvec); + const unsigned int BVec = std::min(vectorsBlockSize, N-jvec); - const unsigned int nonZeroVectorsSize=isRotationMatLowerTria? + const unsigned int D=isRotationMatLowerTria? (jvec+BVec) - :numberSubspaceVectors; + :N; + // If one plus the ending index of a block lies within a band parallelization group + // do computations for that block within the band group, otherwise skip that + // block. This is only activated if NPBAND>1 if ((jvec+BVec)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && (jvec+BVec)>bandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) { - const char transA = 'N',transB = 'N'; - const T scalarCoeffAlpha = 1.0,scalarCoeffBeta = 0.0; + const char transA = 'N',transB = 'N'; + const T scalarCoeffAlpha = 1.0,scalarCoeffBeta = 0.0; - std::fill(rotationMatBlock.begin(),rotationMatBlock.end(),0.); + std::fill(rotationMatBlock.begin(),rotationMatBlock.end(),0.); - if (rotationMatTranspose) + //Extract QBVec from parallel ScaLAPACK matrix Q + if (rotationMatTranspose) { - if (processGrid->is_process_active()) - for (unsigned int i = 0; i is_process_active()) + for (unsigned int i = 0; i ::iterator it= - globalToLocalColumnIdMap.find(j+jvec); - if(it!=globalToLocalColumnIdMap.end()) - rotationMatBlock[i*BVec+j]= - rotationMatPar.local_el(localRowId, - it->second); - } + std::map::iterator it= + globalToLocalColumnIdMap.find(j+jvec); + if(it!=globalToLocalColumnIdMap.end()) + rotationMatBlock[i*BVec+j]= + rotationMatPar.local_el(localRowId, + it->second); } + } } - else + else { - if (processGrid->is_process_active()) - for (unsigned int i = 0; i is_process_active()) + for (unsigned int i = 0; i ::iterator it= - globalToLocalRowIdMap.find(j+jvec); - if (it!=globalToLocalRowIdMap.end()) - rotationMatBlock[i*BVec+j]= - rotationMatPar.local_el(it->second, - localColumnId); - } + std::map::iterator it= + globalToLocalRowIdMap.find(j+jvec); + if (it!=globalToLocalRowIdMap.end()) + rotationMatBlock[i*BVec+j]= + rotationMatPar.local_el(it->second, + localColumnId); } + } } - dealii::Utilities::MPI::sum(rotationMatBlock, - subspaceVectorsArray.get_mpi_communicator(), - rotationMatBlock); + + MPI_Allreduce(MPI_IN_PLACE, + &rotationMatBlock[0], + vectorsBlockSize*D, + dataTypes::mpi_type_id(&rotationMatBlock[0]), + MPI_SUM, + mpiComm); + if (BDof!=0) { @@ -349,112 +607,385 @@ namespace dftfe &transB, &BVec, &BDof, - &nonZeroVectorsSize, + &D, &scalarCoeffAlpha, &rotationMatBlock[0], &BVec, - subspaceVectorsArray.begin()+idof*numberSubspaceVectors, - &numberSubspaceVectors, + subspaceVectorsArray+idof*N, + &N, &scalarCoeffBeta, &rotatedVectorsMatBlockTemp[0], &BVec); for (unsigned int i = 0; i 1) { if (numberCoreVectors!=0) { - const unsigned int numberNonCoreVectors=numberSubspaceVectors-numberCoreVectors; + const unsigned int numberNonCoreVectors=N-numberCoreVectors; for(unsigned int iNode = 0; iNode < numLocalDofs; ++iNode) - for(unsigned int iWave = 0; iWave < numberNonCoreVectors; ++iWave) - nonCoreVectorsArray.local_element(iNode*numberNonCoreVectors +iWave) - =subspaceVectorsArray.local_element(iNode*numberSubspaceVectors - +numberCoreVectors - +iWave); - - MPI_Allreduce(MPI_IN_PLACE, - nonCoreVectorsArray.begin(), - numberNonCoreVectors*numLocalDofs, - MPI_DOUBLE, - MPI_SUM, - interBandGroupComm); + for(unsigned int iWave = 0; iWave < numberNonCoreVectors; ++iWave) + *(nonCoreVectorsArray+iNode*numberNonCoreVectors +iWave) + =*(subspaceVectorsArray+iNode*N+numberCoreVectors+iWave); + + const unsigned int blockSize=dftParameters::mpiAllReduceMessageBlockSizeMB*1e+6/sizeof(T); + + for (unsigned int i=0; i & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + const dealii::ScaLAPACKMatrix & rotationMatPar, + const bool rotationMatTranspose) + { +#ifdef USE_COMPLEX + AssertThrow(false,dftUtils::ExcNotImplementedYet()); +#else + const unsigned int numLocalDofs = subspaceVectorsArrayLocalSize/N; + + const unsigned int maxNumLocalDofs=dealii::Utilities::MPI::max(numLocalDofs, + mpiComm); + + //band group parallelization data structures + const unsigned int numberBandGroups= + dealii::Utilities::MPI::n_mpi_processes(interBandGroupComm); + const unsigned int bandGroupTaskId = dealii::Utilities::MPI::this_mpi_process(interBandGroupComm); + std::vector bandGroupLowHighPlusOneIndices; + dftUtils::createBandParallelizationIndices(interBandGroupComm, + N, + bandGroupLowHighPlusOneIndices); + + std::map globalToLocalColumnIdMap; + std::map globalToLocalRowIdMap; + internal::createGlobalToLocalIdMapsScaLAPACKMat(processGrid, + rotationMatPar, + globalToLocalRowIdMap, + globalToLocalColumnIdMap); + + + /* + * Q*X^{T} is done in a blocked approach for memory optimization: + * Sum_{dof_blocks} Sum_{vector_blocks} QBvec*XBdof^{T}. + * The result of each QBvec*XBdof^{T} + * has a much smaller memory compared to Q*X^{T}. + * X^{T} (denoted by subspaceVectorsArray in the code with column major format storage) + * is a matrix with size (N x MLoc). + * N is denoted by numberWaveFunctions in the code. + * MLoc, which is number of local dofs is denoted by numLocalDofs in the code. + * QBvec is a matrix of size (BVec x N). BVec is the vectors block size. + * XBdof is a matrix of size (N x BDof). BDof is the block size of dofs. + * A further optimization is done to reduce floating point operations when + * Q is a lower triangular matrix in the subspace rotation step of PGS: + * Then it suffices to compute only the multiplication of lower + * triangular part of Q with X^{T}. To exploit this, we do + * Sum_{dof_blocks} Sum_{vector_blocks} QBvecTrunc*XBdofTrunc^{T}. + * where QBvecTrunc is a (BVec x D) sub matrix of QBvec with the column indices + * ranging from O to D-1, where D=jvec(lowest global index of QBvec) + BVec. + * XBdofTrunc is a (D x BDof) sub matrix of XBdof with the row indices + * ranging from 0 to D-1. + * X^{T} is directly updated from + * the Sum_{vector_blocks} QBvecTrunc*XBdofTrunc^{T} result + * for each {dof_block}. + */ + const unsigned int vectorsBlockSize=std::min(dftParameters::wfcBlockSize, + bandGroupLowHighPlusOneIndices[1]); + const unsigned int dofsBlockSize=std::min(maxNumLocalDofs, + dftParameters::subspaceRotDofsBlockSize); -#ifdef DEAL_II_WITH_SCALAPACK - template - void createGlobalToLocalIdMapsScaLAPACKMat(const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - const dealii::ScaLAPACKMatrix & mat, - std::map & globalToLocalRowIdMap, - std::map & globalToLocalColumnIdMap); - - template - void fillParallelOverlapMatrix(const dealii::parallel::distributed::Vector & X, - const unsigned int numberVectors, - const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - const MPI_Comm &interBandGroupComm, - dealii::ScaLAPACKMatrix & overlapMatPar); - - template - void subspaceRotation(dealii::parallel::distributed::Vector & subspaceVectorsArray, - const unsigned int numberSubspaceVectors, - const unsigned int numberCoreVectors, - dealii::parallel::distributed::Vector & nonCoreVectorsArray, - const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - const MPI_Comm &interBandGroupComm, - const dealii::ScaLAPACKMatrix & rotationMatPar, - const bool rotationMatTranpose, - const bool isRotationMatLowerTria); - - template - void sumAcrossInterCommScaLAPACKMat(const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - dealii::ScaLAPACKMatrix & mat, - const MPI_Comm &interComm); - template - void broadcastAcrossInterCommScaLAPACKMat - (const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, - dealii::ScaLAPACKMatrix & mat, - const MPI_Comm &interComm, - const unsigned int broadcastRoot); + std::vector rotationMatBlock(vectorsBlockSize*N,0.0); + std::vector rotatedVectorsMatBlockTemp(vectorsBlockSize*dofsBlockSize,0.0); + + std::vector subspaceVectorsArraySinglePrec(subspaceVectorsArray, + subspaceVectorsArray+ + subspaceVectorsArrayLocalSize); + + if (dftParameters::verbosity>=4) + dftUtils::printCurrentMemoryUsage(mpiComm, + "Inside Blocked susbpace rotation"); + + for (unsigned int idof = 0; idof < maxNumLocalDofs; idof += dofsBlockSize) + { + // Correct block dimensions if block "goes off edge of" the matrix + unsigned int BDof=0; + if (numLocalDofs>=idof) + BDof = std::min(dofsBlockSize, numLocalDofs-idof); + + for (unsigned int jvec = 0; jvec < N; jvec += vectorsBlockSize) + { + // Correct block dimensions if block "goes off edge of" the matrix + const unsigned int BVec = std::min(vectorsBlockSize, N-jvec); + + const unsigned int D=jvec+BVec; + + // If one plus the ending index of a block lies within a band parallelization group + // do computations for that block within the band group, otherwise skip that + // block. This is only activated if NPBAND>1 + if ((jvec+BVec)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && + (jvec+BVec)>bandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) + { + const char transA = 'N',transB = 'N'; + const dataTypes::numberLowPrec scalarCoeffAlpha = 1.0,scalarCoeffBeta = 0.0; + + std::fill(rotationMatBlock.begin(),rotationMatBlock.end(),0.); + + //Extract QBVec from parallel ScaLAPACK matrix Q + if (rotationMatTranspose) + { + if (processGrid->is_process_active()) + for (unsigned int i = 0; i ::iterator it= + globalToLocalColumnIdMap.find(j+jvec); + if(it!=globalToLocalColumnIdMap.end()) + { + rotationMatBlock[i*BVec+j]= + rotationMatPar.local_el(localRowId, + it->second); + + } + } + + if (i>=jvec && i<(jvec+BVec)) + if (globalToLocalColumnIdMap.find(i)!=globalToLocalColumnIdMap.end()) + rotationMatBlock[i*BVec+i-jvec]-=(dataTypes::numberLowPrec)1.0; + } + } + else + { + if (processGrid->is_process_active()) + for (unsigned int i = 0; i ::iterator it= + globalToLocalRowIdMap.find(j+jvec); + if (it!=globalToLocalRowIdMap.end()) + { + rotationMatBlock[i*BVec+j]= + rotationMatPar.local_el(it->second, + localColumnId); + } + } + + if (i>=jvec && i<(jvec+BVec)) + if (globalToLocalRowIdMap.find(i)!=globalToLocalRowIdMap.end()) + rotationMatBlock[i*BVec+i-jvec]-=(dataTypes::numberLowPrec)1.0; + } + } + + + MPI_Allreduce(MPI_IN_PLACE, + &rotationMatBlock[0], + vectorsBlockSize*D, + dataTypes::mpi_type_id(&rotationMatBlock[0]), + MPI_SUM, + mpiComm); + + if (BDof!=0) + { + + sgemm_(&transA, + &transB, + &BVec, + &BDof, + &D, + &scalarCoeffAlpha, + &rotationMatBlock[0], + &BVec, + &subspaceVectorsArraySinglePrec[0]+idof*N, + &N, + &scalarCoeffBeta, + &rotatedVectorsMatBlockTemp[0], + &BVec); + + for (unsigned int i = 0; i 1) + { + if (numberCoreVectors!=0) + { + + const unsigned int numberNonCoreVectors=N-numberCoreVectors; + for(unsigned int iNode = 0; iNode < numLocalDofs; ++iNode) + for(unsigned int iWave = 0; iWave < numberNonCoreVectors; ++iWave) + *(nonCoreVectorsArray+iNode*numberNonCoreVectors +iWave) + =*(subspaceVectorsArray+iNode*N+numberCoreVectors+iWave); + + const unsigned int blockSize=dftParameters::mpiAllReduceMessageBlockSizeMB*1e+6 + /sizeof(dataTypes::number); + + for (unsigned int i=0; i & processGrid, + const dealii::ScaLAPACKMatrix & mat, + std::map & globalToLocalRowIdMap, + std::map & globalToLocalColumnIdMap); + + template + void fillParallelOverlapMatrix(const dataTypes::number* X, + const unsigned int XLocalSize, + const unsigned int numberVectors, + const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + dealii::ScaLAPACKMatrix & overlapMatPar); + + template + void subspaceRotation(dataTypes::number* subspaceVectorsArray, + const unsigned int subspaceVectorsArrayLocalSize, + const unsigned int N, + const unsigned int numberCoreVectors, + dataTypes::number* nonCoreVectorsArray, + const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpiComm, + const dealii::ScaLAPACKMatrix & rotationMatPar, + const bool rotationMatTranpose, + const bool isRotationMatLowerTria); + + template + void sumAcrossInterCommScaLAPACKMat(const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + dealii::ScaLAPACKMatrix & mat, + const MPI_Comm &interComm); + template + void broadcastAcrossInterCommScaLAPACKMat + (const std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> & processGrid, + dealii::ScaLAPACKMatrix & mat, + const MPI_Comm &interComm, + const unsigned int broadcastRoot); #endif } } diff --git a/src/linAlg/linearAlgebraOperationsOpt.cc b/src/linAlg/linearAlgebraOperationsOpt.cc index 030f398f2..8b56fc286 100644 --- a/src/linAlg/linearAlgebraOperationsOpt.cc +++ b/src/linAlg/linearAlgebraOperationsOpt.cc @@ -204,8 +204,8 @@ namespace dftfe{ void callgemm(const unsigned int numberEigenValues, const unsigned int localVectorSize, const std::vector & eigenVectorSubspaceMatrix, - const dealii::parallel::distributed::Vector & X, - dealii::parallel::distributed::Vector & Y) + const std::vector & X, + std::vector & Y) { @@ -219,10 +219,10 @@ namespace dftfe{ &alpha, &eigenVectorSubspaceMatrix[0], &numberEigenValues, - X.begin(), + &X[0], &numberEigenValues, &beta, - Y.begin(), + &Y[0], &numberEigenValues); } @@ -231,8 +231,8 @@ namespace dftfe{ void callgemm(const unsigned int numberEigenValues, const unsigned int localVectorSize, const std::vector > & eigenVectorSubspaceMatrix, - const dealii::parallel::distributed::Vector > & X, - dealii::parallel::distributed::Vector > & Y) + const std::vector > & X, + std::vector > & Y) { @@ -246,10 +246,10 @@ namespace dftfe{ &alpha, &eigenVectorSubspaceMatrix[0], &numberEigenValues, - X.begin(), + &X[0], &numberEigenValues, &beta, - Y.begin(), + &Y[0], &numberEigenValues); } @@ -266,7 +266,8 @@ namespace dftfe{ const unsigned int m, const double a, const double b, - const double a0) + const double a0, + const bool useMixedPrec) { double e, c, sigma, sigma1, sigma2, gamma; e = (b-a)/2.0; c = (b+a)/2.0; @@ -292,10 +293,12 @@ namespace dftfe{ // bool scaleFlag = false; double scalar = 1.0; + operatorMatrix.HX(XArray, numberWaveFunctions, scaleFlag, scalar, + false, YArray); @@ -326,11 +329,21 @@ namespace dftfe{ //call HX // bool scaleFlag = true; - operatorMatrix.HX(YArray, - numberWaveFunctions, - scaleFlag, - alpha1, - XArray); + + if (degree<0.9*m && useMixedPrec) + operatorMatrix.HX(YArray, + numberWaveFunctions, + scaleFlag, + alpha1, + true, + XArray); + else + operatorMatrix.HX(YArray, + numberWaveFunctions, + scaleFlag, + alpha1, + false, + XArray); // //XArray = YArray @@ -350,17 +363,18 @@ namespace dftfe{ } template - void gramSchmidtOrthogonalization(dealii::parallel::distributed::Vector & X, - const unsigned int numberVectors) + void gramSchmidtOrthogonalization(std::vector & X, + const unsigned int numberVectors, + const MPI_Comm & mpiComm) { - const unsigned int localVectorSize = X.local_size()/numberVectors; + const unsigned int localVectorSize = X.size()/numberVectors; // //Create template PETSc vector to create BV object later // Vec templateVec; - VecCreateMPI(X.get_mpi_communicator(), + VecCreateMPI(mpiComm, localVectorSize, PETSC_DETERMINE, &templateVec); @@ -371,7 +385,7 @@ namespace dftfe{ //Set BV options after creating BV object // BV columnSpaceOfVectors; - BVCreate(X.get_mpi_communicator(),&columnSpaceOfVectors); + BVCreate(mpiComm,&columnSpaceOfVectors); BVSetSizesFromVec(columnSpaceOfVectors, templateVec, numberVectors); @@ -407,7 +421,7 @@ namespace dftfe{ &v); VecSet(v,0.0); for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) - data[iNode] = X.local_element(numberVectors*iNode + iColumn); + data[iNode] = X[numberVectors*iNode + iColumn]; VecSetValues(v, localVectorSize, @@ -443,7 +457,7 @@ namespace dftfe{ &pointerv1); for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) - X.local_element(numberVectors*iNode + iColumn) = pointerv1[iNode]; + X[numberVectors*iNode + iColumn] = pointerv1[iNode]; VecRestoreArray(v1, &pointerv1); @@ -460,9 +474,10 @@ namespace dftfe{ #if(defined DEAL_II_WITH_SCALAPACK && !USE_COMPLEX) template void rayleighRitz(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & X, + std::vector & X, const unsigned int numberWaveFunctions, const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpi_communicator, std::vector & eigenValues) { @@ -477,7 +492,7 @@ namespace dftfe{ // const unsigned rowsBlockSize=std::min((unsigned int)50,numberWaveFunctions); std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> processGrid; - internal::createProcessGridSquareMatrix(X.get_mpi_communicator(), + internal::createProcessGridSquareMatrix(mpi_communicator, numberWaveFunctions, processGrid); @@ -513,15 +528,20 @@ namespace dftfe{ //stored in the column major format // computing_timer.enter_section("Blocked subspace rotation, RR step"); - dealii::parallel::distributed::Vector temp; - internal::subspaceRotation(X, + std::vector temp; + const unsigned int numberCoreWaveFunctions=0; + + internal::subspaceRotation(&X[0], + X.size(), numberWaveFunctions, - 0, - temp, + numberCoreWaveFunctions, + &temp[0], processGrid, interBandGroupComm, + mpi_communicator, projHamPar, true); + computing_timer.exit_section("Blocked subspace rotation, RR step"); } @@ -529,9 +549,10 @@ namespace dftfe{ template void rayleighRitz(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & X, + std::vector & X, const unsigned int numberWaveFunctions, const MPI_Comm &interBandGroupComm, + const MPI_Comm &mpi_communicator, std::vector & eigenValues) { dealii::ConditionalOStream pcout(std::cout, (dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0)); @@ -566,13 +587,13 @@ namespace dftfe{ numberEigenValues*numberEigenValues, MPI_C_DOUBLE_COMPLEX, 0, - X.get_mpi_communicator()); + mpi_communicator); #else MPI_Bcast(&ProjHam[0], numberEigenValues*numberEigenValues, MPI_DOUBLE, 0, - X.get_mpi_communicator()); + mpi_communicator); #endif computing_timer.exit_section("eigen decomp in RR"); @@ -581,9 +602,8 @@ namespace dftfe{ // //rotate the basis in the subspace X = X*Q // - const unsigned int localVectorSize = X.local_size()/numberEigenValues; - dealii::parallel::distributed::Vector rotatedBasis; - rotatedBasis.reinit(X); + const unsigned int localVectorSize = X.size()/numberEigenValues; + std::vector rotatedBasis(X.size()); computing_timer.enter_section("subspace rotation in RR"); callgemm(numberEigenValues, @@ -597,11 +617,12 @@ namespace dftfe{ } #endif -#ifdef DEAL_II_WITH_SCALAPACK + template void computeEigenResidualNorm(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & X, + std::vector & X, const std::vector & eigenValues, + const MPI_Comm &mpiComm, std::vector & residualNorm) { @@ -610,11 +631,11 @@ namespace dftfe{ //get the number of eigenVectors // const unsigned int totalNumberVectors = eigenValues.size(); - const unsigned int localVectorSize = X.local_size()/totalNumberVectors; + const unsigned int localVectorSize = X.size()/totalNumberVectors; std::vector residualNormSquare(totalNumberVectors,0.0); //create temporary arrays XBlock,HXBlock - dealii::parallel::distributed::Vector XBlock,HXBlock; + dealii::parallel::distributed::Vector XBlock,HXBlock; // Do H*X using a blocked approach and compute // the residual norms: H*XBlock-XBlock*D, where @@ -640,7 +661,7 @@ namespace dftfe{ for(unsigned int iWave = 0; iWave < B; ++iWave) XBlock.local_element(iNode*B +iWave) - =X.local_element(iNode*totalNumberVectors+jvec+iWave); + =X[iNode*totalNumberVectors+jvec+iWave]; //evaluate H times XBlock and store in HXBlock @@ -651,6 +672,7 @@ namespace dftfe{ B, scaleFlag, scalar, + false, HXBlock); //compute residual norms: @@ -664,7 +686,9 @@ namespace dftfe{ } - dealii::Utilities::MPI::sum(residualNormSquare,X.get_mpi_communicator(),residualNormSquare); + dealii::Utilities::MPI::sum(residualNormSquare, + mpiComm, + residualNormSquare); if(dftParameters::verbosity>=4) { if(dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0) @@ -684,99 +708,14 @@ namespace dftfe{ std::cout < - void computeEigenResidualNorm(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & X, - const std::vector & eigenValues, - std::vector & residualNorm) - - { - - // - //get the number of eigenVectors - // - const unsigned int totalNumberVectors = eigenValues.size(); - std::vector residualNormSquare(totalNumberVectors,0.0); - - // - //reinit blockSize require for HX later - // - operatorMatrix.reinit(totalNumberVectors, - X, - false); - - // - //create temp Array - // - dealii::parallel::distributed::Vector Y; - Y.reinit(X); - - // - //initialize to zero - // - const T zeroValue = 0.0; - Y = zeroValue; - - // - //compute operator times X - // - const bool scaleFlag = false; - const double scalar = 1.0; - operatorMatrix.HX(X, - totalNumberVectors, - scaleFlag, - scalar, - Y); - - if(dftParameters::verbosity>=4) - { - if(dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0) - std::cout<<"L-2 Norm of residue :"<=4) - { - if(dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0) - std::cout<<"eigen vector "<< iWave<<": "<=4) - { - if(dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0) - std::cout < > & X, - const unsigned int numberVectors) + unsigned int lowdenOrthogonalization(std::vector > & X, + const unsigned int numberVectors, + const MPI_Comm & mpiComm) { - const unsigned int localVectorSize = X.local_size()/numberVectors; + const unsigned int localVectorSize = X.size()/numberVectors; std::vector > overlapMatrix(numberVectors*numberVectors,0.0); // @@ -801,14 +740,16 @@ namespace dftfe{ &numberVectors, &localVectorSize, &alpha, - X.begin(), + &X[0], &numberVectors, &beta, &overlapMatrix[0], &numberVectors); - dealii::Utilities::MPI::sum(overlapMatrix, X.get_mpi_communicator(), overlapMatrix); + dealii::Utilities::MPI::sum(overlapMatrix, + mpiComm, + overlapMatrix); // //evaluate the conjugate of {S^T} to get actual overlap matrix @@ -868,7 +809,7 @@ namespace dftfe{ break; } } - nanFlag=dealii::Utilities::MPI::max(nanFlag,X.get_mpi_communicator()); + nanFlag=dealii::Utilities::MPI::max(nanFlag,mpiComm); if (dftParameters::enableSwitchToGS && nanFlag==1) return nanFlag; @@ -919,21 +860,22 @@ namespace dftfe{ //using the column major format of blas // const char transA2 = 'T', transB2 = 'N'; - dealii::parallel::distributed::Vector > orthoNormalizedBasis; - orthoNormalizedBasis.reinit(X); + //dealii::parallel::distributed::Vector > orthoNormalizedBasis; + std::vector > orthoNormalizedBasis(X.size(),0.0); + zgemm_(&transA2, - &transB2, - &numberEigenValues, - &localVectorSize, - &numberEigenValues, - &alpha1, - &invSqrtOverlapMatrix[0], - &numberEigenValues, - X.begin(), - &numberEigenValues, - &beta1, - orthoNormalizedBasis.begin(), - &numberEigenValues); + &transB2, + &numberEigenValues, + &localVectorSize, + &numberEigenValues, + &alpha1, + &invSqrtOverlapMatrix[0], + &numberEigenValues, + &X[0], + &numberEigenValues, + &beta1, + &orthoNormalizedBasis[0], + &numberEigenValues); X = orthoNormalizedBasis; @@ -941,10 +883,11 @@ namespace dftfe{ return 0; } #else - unsigned int lowdenOrthogonalization(dealii::parallel::distributed::Vector & X, - const unsigned int numberVectors) + unsigned int lowdenOrthogonalization(std::vector & X, + const unsigned int numberVectors, + const MPI_Comm & mpiComm) { - const unsigned int localVectorSize = X.local_size()/numberVectors; + const unsigned int localVectorSize = X.size()/numberVectors; std::vector overlapMatrix(numberVectors*numberVectors,0.0); @@ -982,14 +925,16 @@ namespace dftfe{ &numberVectors, &localVectorSize, &alpha, - X.begin(), + &X[0], &numberVectors, &beta, &overlapMatrix[0], &numberVectors); computing_timer.exit_section("local overlap matrix for lowden"); - dealii::Utilities::MPI::sum(overlapMatrix, X.get_mpi_communicator(), overlapMatrix); + dealii::Utilities::MPI::sum(overlapMatrix, + mpiComm, + overlapMatrix); std::vector eigenValuesOverlap(numberVectors); computing_timer.enter_section("eigen decomp. of overlap matrix"); @@ -1013,7 +958,7 @@ namespace dftfe{ } } - nanFlag=dealii::Utilities::MPI::max(nanFlag,X.get_mpi_communicator()); + nanFlag=dealii::Utilities::MPI::max(nanFlag,mpiComm); if (dftParameters::enableSwitchToGS && nanFlag==1) return nanFlag; @@ -1094,8 +1039,10 @@ namespace dftfe{ //using the column major format of blas // const char transA2 = 'N', transB2 = 'N'; - dealii::parallel::distributed::Vector orthoNormalizedBasis; - orthoNormalizedBasis.reinit(X); + //dealii::parallel::distributed::Vector orthoNormalizedBasis; + //orthoNormalizedBasis.reinit(X); + std::vector orthoNormalizedBasis(X.size(),0.0); + computing_timer.enter_section("subspace rotation in lowden"); dgemm_(&transA2, &transB2, @@ -1105,10 +1052,10 @@ namespace dftfe{ &alpha, &invSqrtOverlapMatrix[0], &numberEigenValues, - X.begin(), + &X[0], &numberEigenValues, &beta, - orthoNormalizedBasis.begin(), + &orthoNormalizedBasis[0], &numberEigenValues); computing_timer.exit_section("subspace rotation in lowden"); @@ -1127,27 +1074,33 @@ namespace dftfe{ const unsigned int, const double , const double , - const double ); + const double, + const bool useMixedPrec); - template void gramSchmidtOrthogonalization(dealii::parallel::distributed::Vector &, - const unsigned int); + template void gramSchmidtOrthogonalization(std::vector &, + const unsigned int, + const MPI_Comm &); - template unsigned int pseudoGramSchmidtOrthogonalization(dealii::parallel::distributed::Vector &, + template unsigned int pseudoGramSchmidtOrthogonalization(std::vector &, const unsigned int, const MPI_Comm &, const unsigned int numberCoreVectors, - dealii::parallel::distributed::Vector & tempNonCoreVectorsArray); + const MPI_Comm &mpiComm, + const bool useMixedPrec, + std::vector & tempNonCoreVectorsArray); template void rayleighRitz(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector &, + std::vector &, const unsigned int numberWaveFunctions, const MPI_Comm &, + const MPI_Comm &, std::vector & eigenValues); template void computeEigenResidualNorm(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & X, + std::vector & X, const std::vector & eigenValues, + const MPI_Comm &mpiComm, std::vector & residualNorm); }//end of namespace diff --git a/src/linAlg/pseudoGS.cc b/src/linAlg/pseudoGS.cc index 8abf4af28..72cea3b3b 100644 --- a/src/linAlg/pseudoGS.cc +++ b/src/linAlg/pseudoGS.cc @@ -28,13 +28,16 @@ namespace dftfe { #if(defined DEAL_II_WITH_SCALAPACK && !USE_COMPLEX) template - unsigned int pseudoGramSchmidtOrthogonalization(dealii::parallel::distributed::Vector & X, - const unsigned int numberVectors, - const MPI_Comm &interBandGroupComm, - const unsigned int numberCoreVectors, - dealii::parallel::distributed::Vector & tempNonCoreVectorsArray) + unsigned int pseudoGramSchmidtOrthogonalization(std::vector & X, + const unsigned int numberVectors, + const MPI_Comm &interBandGroupComm, + const unsigned int numberCoreVectors, + const MPI_Comm & mpiComm, + const bool useMixedPrec, + std::vector & tempNonCoreVectorsArray) + { - const unsigned int numLocalDofs = X.local_size()/numberVectors; + const unsigned int numLocalDofs = X.size()/numberVectors; dealii::ConditionalOStream pcout(std::cout, (dealii::Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0)); dealii::TimerOutput computing_timer(pcout, @@ -45,9 +48,9 @@ namespace dftfe const unsigned rowsBlockSize=std::min((unsigned int)50,numberVectors); std::shared_ptr< const dealii::Utilities::MPI::ProcessGrid> processGrid; - internal::createProcessGridSquareMatrix(X.get_mpi_communicator(), - numberVectors, - processGrid); + internal::createProcessGridSquareMatrix(mpiComm, + numberVectors, + processGrid); dealii::ScaLAPACKMatrix overlapMatPar(numberVectors, processGrid, @@ -55,11 +58,22 @@ namespace dftfe //S=X*X^{T}. Implemented as S=X^{T}*X with X^{T} stored in the column major format computing_timer.enter_section("Fill overlap matrix for PGS"); - internal::fillParallelOverlapMatrix(X, - numberVectors, - processGrid, - interBandGroupComm, - overlapMatPar); + if (!(dftParameters::useMixedPrecPGS_O && useMixedPrec)) + internal::fillParallelOverlapMatrix(&X[0], + X.size(), + numberVectors, + processGrid, + interBandGroupComm, + mpiComm, + overlapMatPar); + else + internal::fillParallelOverlapMatrixMixedPrec(&X[0], + X.size(), + numberVectors, + processGrid, + interBandGroupComm, + mpiComm, + overlapMatPar); computing_timer.exit_section("Fill overlap matrix for PGS"); //S=L*L^{T} @@ -122,7 +136,7 @@ namespace dftfe break; } - flag=dealii::Utilities::MPI::max(flag,X.get_mpi_communicator()); + flag=dealii::Utilities::MPI::max(flag,mpiComm); if (dftParameters::enableSwitchToGS && flag==1) return flag; @@ -132,15 +146,30 @@ namespace dftfe //X=X*L^{-1}^{T} implemented as X^{T}=L^{-1}*X^{T} with X^{T} stored in the column major format computing_timer.enter_section("Subspace rotation PGS"); - internal::subspaceRotation(X, - numberVectors, - numberCoreVectors, - tempNonCoreVectorsArray, - processGrid, - interBandGroupComm, - LMatPar, - overlapMatPropertyPostCholesky==dealii::LAPACKSupport::Property::upper_triangular?true:false, - dftParameters::triMatPGSOpt?true:false); + + if (!(dftParameters::useMixedPrecPGS_SR && useMixedPrec)) + internal::subspaceRotation(&X[0], + X.size(), + numberVectors, + numberCoreVectors, + &tempNonCoreVectorsArray[0], + processGrid, + interBandGroupComm, + mpiComm, + LMatPar, + overlapMatPropertyPostCholesky==dealii::LAPACKSupport::Property::upper_triangular?true:false, + dftParameters::triMatPGSOpt?true:false); + else + internal::subspaceRotationPGSMixedPrec(&X[0], + X.size(), + numberVectors, + numberCoreVectors, + &tempNonCoreVectorsArray[0], + processGrid, + interBandGroupComm, + mpiComm, + LMatPar, + overlapMatPropertyPostCholesky==dealii::LAPACKSupport::Property::upper_triangular?true:false); computing_timer.exit_section("Subspace rotation PGS"); @@ -148,13 +177,15 @@ namespace dftfe } #else template - unsigned int pseudoGramSchmidtOrthogonalization(dealii::parallel::distributed::Vector & X, - const unsigned int numberVectors, - const MPI_Comm &interBandGroupComm, - const unsigned int numberCoreVectors, - dealii::parallel::distributed::Vector & tempNonCoreVectorsArray) + unsigned int pseudoGramSchmidtOrthogonalization(std::vector & X, + const unsigned int numberVectors, + const MPI_Comm &interBandGroupComm, + const unsigned int numberCoreVectors, + const MPI_Comm & mpiComm, + const bool useMixedPrec, + std::vector & tempNonCoreVectorsArray) { - const unsigned int localVectorSize = X.local_size()/numberVectors; + const unsigned int localVectorSize = X.size()/numberVectors; std::vector overlapMatrix(numberVectors*numberVectors,0.0); @@ -186,7 +217,7 @@ namespace dftfe &numberVectors, &localVectorSize, &alpha1, - X.begin(), + &X[0], &numberVectors, &beta1, &overlapMatrix[0], @@ -197,13 +228,13 @@ namespace dftfe &numberVectors, &localVectorSize, &alpha1, - X.begin(), + &X[0], &numberVectors, &beta1, &overlapMatrix[0], &numberVectors); #endif - dealii::Utilities::MPI::sum(overlapMatrix, X.get_mpi_communicator(), overlapMatrix); + dealii::Utilities::MPI::sum(overlapMatrix, mpiComm, overlapMatrix); computing_timer.exit_section("local overlap matrix for pgs"); computing_timer.enter_section("PGS cholesky and triangular matrix invert"); @@ -269,8 +300,9 @@ namespace dftfe //X=X*Lc^{-1}^{T} implemented as X^{T}=Lc^{-1}*X^{T} with X^{T} stored in the column major format computing_timer.enter_section("subspace rotation in pgs"); - dealii::parallel::distributed::Vector orthoNormalizedBasis; - orthoNormalizedBasis.reinit(X); + //dealii::parallel::distributed::Vector orthoNormalizedBasis; + //orthoNormalizedBasis.reinit(X); + std::vector orthoNormalizedBasis(X.size(),0.0); const char transA4 = 'N', transB4 = 'N'; const T alpha4 = 1.0, beta4 = 0.0; #ifdef USE_COMPLEX @@ -282,10 +314,10 @@ namespace dftfe &alpha4, &overlapMatrix[0], &numberVectors, - X.begin(), + &X[0], &numberVectors, &beta4, - orthoNormalizedBasis.begin(), + &orthoNormalizedBasis[0], &numberVectors); #else dgemm_(&transA4, @@ -296,10 +328,10 @@ namespace dftfe &alpha4, &overlapMatrix[0], &numberVectors, - X.begin(), + &X[0], &numberVectors, &beta4, - orthoNormalizedBasis.begin(), + &orthoNormalizedBasis[0], &numberVectors); #endif computing_timer.exit_section("subspace rotation in pgs"); diff --git a/src/solvers/eigenSolvers/chebyshevOrthogonalizedSubspaceIterationSolver.cc b/src/solvers/eigenSolvers/chebyshevOrthogonalizedSubspaceIterationSolver.cc index 0d617424b..419989e0d 100755 --- a/src/solvers/eigenSolvers/chebyshevOrthogonalizedSubspaceIterationSolver.cc +++ b/src/solvers/eigenSolvers/chebyshevOrthogonalizedSubspaceIterationSolver.cc @@ -108,25 +108,26 @@ namespace dftfe{ // solve // eigenSolverClass::ReturnValueType - chebyshevOrthogonalizedSubspaceIterationSolver::solve(operatorDFTClass & operatorMatrix, - dealii::parallel::distributed::Vector & eigenVectorsFlattened, + chebyshevOrthogonalizedSubspaceIterationSolver::solve(operatorDFTClass & operatorMatrix, + std::vector & eigenVectorsFlattened, vectorType & tempEigenVec, const unsigned int totalNumberWaveFunctions, std::vector & eigenValues, std::vector & residualNorms, - const MPI_Comm &interBandGroupComm) + const MPI_Comm &interBandGroupComm, + const bool useMixedPrec) { if (dftParameters::verbosity>=4) - dftUtils::printCurrentMemoryUsage(eigenVectorsFlattened.get_mpi_communicator(), + dftUtils::printCurrentMemoryUsage(operatorMatrix.getMPICommunicator(), "Before Lanczos k-step upper Bound"); computing_timer.enter_section("Lanczos k-step Upper Bound"); operatorMatrix.reinit(1); const double upperBoundUnwantedSpectrum =linearAlgebraOperations::lanczosUpperBoundEigenSpectrum(operatorMatrix, - tempEigenVec); + tempEigenVec); computing_timer.exit_section("Lanczos k-step Upper Bound"); unsigned int chebyshevOrder = dftParameters::chebyshevOrder; @@ -155,15 +156,15 @@ namespace dftfe{ // //Set the constraints to zero // - operatorMatrix.getOverloadedConstraintMatrix()->set_zero(eigenVectorsFlattened, - totalNumberWaveFunctions); + //operatorMatrix.getOverloadedConstraintMatrix()->set_zero(eigenVectorsFlattened, + // totalNumberWaveFunctions); if (dftParameters::verbosity>=4) - dftUtils::printCurrentMemoryUsage(eigenVectorsFlattened.get_mpi_communicator(), + dftUtils::printCurrentMemoryUsage(operatorMatrix.getMPICommunicator(), "Before starting chebyshev filtering"); - const unsigned int localVectorSize = eigenVectorsFlattened.local_size()/totalNumberWaveFunctions; + const unsigned int localVectorSize = eigenVectorsFlattened.size()/totalNumberWaveFunctions; //band group parallelization data structures @@ -178,140 +179,135 @@ namespace dftfe{ const unsigned int vectorsBlockSize=std::min(dftParameters::wfcBlockSize, bandGroupLowHighPlusOneIndices[1]); - if(totalNumberBlocks > 1 || numberBandGroups>1) + + // + //allocate storage for eigenVectorsFlattenedArray for multiple blocks + // + dealii::parallel::distributed::Vector eigenVectorsFlattenedArrayBlock; + operatorMatrix.reinit(vectorsBlockSize, + eigenVectorsFlattenedArrayBlock, + true); + + for (unsigned int jvec = 0; jvec < totalNumberWaveFunctions; jvec += vectorsBlockSize) { - // - //allocate storage for eigenVectorsFlattenedArray for multiple blocks - // - dealii::parallel::distributed::Vector eigenVectorsFlattenedArrayBlock; - operatorMatrix.reinit(vectorsBlockSize, - eigenVectorsFlattenedArrayBlock, - true); - - for (unsigned int jvec = 0; jvec < totalNumberWaveFunctions; jvec += vectorsBlockSize) - { - // Correct block dimensions if block "goes off edge of" the matrix - const unsigned int BVec = std::min(vectorsBlockSize, totalNumberWaveFunctions-jvec); - - if ((jvec+BVec)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && - (jvec+BVec)>bandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) - { - //create custom partitioned dealii array - if (BVec!=vectorsBlockSize) - operatorMatrix.reinit(BVec, - eigenVectorsFlattenedArrayBlock, - true); - - //fill the eigenVectorsFlattenedArrayBlock from eigenVectorsFlattenedArray - computing_timer.enter_section("Copy from full to block flattened array"); - for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) - for(unsigned int iWave = 0; iWave < BVec; ++iWave) - eigenVectorsFlattenedArrayBlock.local_element(iNode*BVec+iWave) - =eigenVectorsFlattened.local_element(iNode*totalNumberWaveFunctions+jvec+iWave); - - computing_timer.exit_section("Copy from full to block flattened array"); - - // - //call Chebyshev filtering function only for the current block to be filtered - //and does in-place filtering - computing_timer.enter_section("Chebyshev filtering opt"); - linearAlgebraOperations::chebyshevFilter(operatorMatrix, - eigenVectorsFlattenedArrayBlock, - BVec, - chebyshevOrder, - d_lowerBoundUnWantedSpectrum, - upperBoundUnwantedSpectrum, - d_lowerBoundWantedSpectrum); - computing_timer.exit_section("Chebyshev filtering opt"); - - if (dftParameters::verbosity>=4) - dftUtils::printCurrentMemoryUsage(eigenVectorsFlattened.get_mpi_communicator(), - "During blocked chebyshev filtering"); - - //copy the eigenVectorsFlattenedArrayBlock into eigenVectorsFlattenedArray after filtering - computing_timer.enter_section("Copy from block to full flattened array"); - for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) - for(unsigned int iWave = 0; iWave < BVec; ++iWave) - eigenVectorsFlattened.local_element(iNode*totalNumberWaveFunctions+jvec+iWave) - = eigenVectorsFlattenedArrayBlock.local_element(iNode*BVec+iWave); - - computing_timer.exit_section("Copy from block to full flattened array"); + // Correct block dimensions if block "goes off edge of" the matrix + const unsigned int BVec = std::min(vectorsBlockSize, totalNumberWaveFunctions-jvec); + + if ((jvec+BVec)<=bandGroupLowHighPlusOneIndices[2*bandGroupTaskId+1] && + (jvec+BVec)>bandGroupLowHighPlusOneIndices[2*bandGroupTaskId]) + { + //create custom partitioned dealii array + if (BVec!=vectorsBlockSize) + operatorMatrix.reinit(BVec, + eigenVectorsFlattenedArrayBlock, + true); + + //fill the eigenVectorsFlattenedArrayBlock from eigenVectorsFlattenedArray + computing_timer.enter_section("Copy from full to block flattened array"); + for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) + for(unsigned int iWave = 0; iWave < BVec; ++iWave) + eigenVectorsFlattenedArrayBlock.local_element(iNode*BVec+iWave) + =eigenVectorsFlattened[iNode*totalNumberWaveFunctions+jvec+iWave]; + + computing_timer.exit_section("Copy from full to block flattened array"); + + // + //call Chebyshev filtering function only for the current block to be filtered + //and does in-place filtering + computing_timer.enter_section("Chebyshev filtering opt"); + if (jvec+BVec=4) + dftUtils::printCurrentMemoryUsage(operatorMatrix.getMPICommunicator(), + "During blocked chebyshev filtering"); + + //copy the eigenVectorsFlattenedArrayBlock into eigenVectorsFlattenedArray after filtering + computing_timer.enter_section("Copy from block to full flattened array"); + for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) + for(unsigned int iWave = 0; iWave < BVec; ++iWave) + eigenVectorsFlattened[iNode*totalNumberWaveFunctions+jvec+iWave] + = eigenVectorsFlattenedArrayBlock.local_element(iNode*BVec+iWave); + + computing_timer.exit_section("Copy from block to full flattened array"); + } + else + { + //set to zero wavefunctions which wont go through chebyshev filtering inside a given band group + for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) + for(unsigned int iWave = 0; iWave < BVec; ++iWave) + eigenVectorsFlattened[iNode*totalNumberWaveFunctions+jvec+iWave] + = dataTypes::number(0.0); - } - }//block loop + } + }//block loop - eigenVectorsFlattenedArrayBlock.reinit(0); + eigenVectorsFlattenedArrayBlock.reinit(0); - if (numberBandGroups>1) - { - computing_timer.enter_section("MPI All Reduce wavefunctions across all band groups"); + if (numberBandGroups>1) + { + computing_timer.enter_section("MPI All Reduce wavefunctions across all band groups"); -#ifdef USE_COMPLEX + const unsigned int blockSize=dftParameters::mpiAllReduceMessageBlockSizeMB*1e+6/sizeof(dataTypes::number); + for (unsigned int i=0; i= 4) pcout<<"ChebyShev Filtering Done: "< eigenVectorsFlattenedRR; + std::vector eigenVectorsFlattenedRR; if (eigenValues.size()!=totalNumberWaveFunctions) { - operatorMatrix.reinit(eigenValues.size(), - eigenVectorsFlattenedRR, - true); + eigenVectorsFlattenedRR.resize(eigenValues.size()*localVectorSize,dataTypes::number(0.0)); + //operatorMatrix.reinit(eigenValues.size(), + // eigenVectorsFlattenedRR, + // true); } if(dftParameters::orthogType.compare("LW") == 0) { computing_timer.enter_section("Lowden Orthogn Opt"); - const unsigned int flag=linearAlgebraOperations::lowdenOrthogonalization - (eigenVectorsFlattened, - totalNumberWaveFunctions); + const unsigned int flag = linearAlgebraOperations::lowdenOrthogonalization(eigenVectorsFlattened, + totalNumberWaveFunctions, + operatorMatrix.getMPICommunicator()); if (flag==1) { @@ -320,7 +316,8 @@ namespace dftfe{ computing_timer.enter_section("Gram-Schmidt Orthogn Opt"); linearAlgebraOperations::gramSchmidtOrthogonalization(eigenVectorsFlattened, - totalNumberWaveFunctions); + totalNumberWaveFunctions, + operatorMatrix.getMPICommunicator()); computing_timer.exit_section("Gram-Schmidt Orthogn Opt"); } computing_timer.exit_section("Lowden Orthogn Opt"); @@ -329,11 +326,14 @@ namespace dftfe{ { computing_timer.enter_section("Pseudo-Gram-Schmidt"); const unsigned int flag=linearAlgebraOperations::pseudoGramSchmidtOrthogonalization - (eigenVectorsFlattened, - totalNumberWaveFunctions, - interBandGroupComm, - totalNumberWaveFunctions-eigenValues.size(), - eigenVectorsFlattenedRR); + (eigenVectorsFlattened, + totalNumberWaveFunctions, + interBandGroupComm, + totalNumberWaveFunctions-eigenValues.size(), + operatorMatrix.getMPICommunicator(), + useMixedPrec, + eigenVectorsFlattenedRR); + if (flag==1) { if(dftParameters::verbosity >= 1) @@ -341,7 +341,8 @@ namespace dftfe{ computing_timer.enter_section("Gram-Schmidt Orthogn Opt"); linearAlgebraOperations::gramSchmidtOrthogonalization(eigenVectorsFlattened, - totalNumberWaveFunctions); + totalNumberWaveFunctions, + operatorMatrix.getMPICommunicator()); computing_timer.exit_section("Gram-Schmidt Orthogn Opt"); } computing_timer.exit_section("Pseudo-Gram-Schmidt"); @@ -350,7 +351,8 @@ namespace dftfe{ { computing_timer.enter_section("Gram-Schmidt Orthogn Opt"); linearAlgebraOperations::gramSchmidtOrthogonalization(eigenVectorsFlattened, - totalNumberWaveFunctions); + totalNumberWaveFunctions, + operatorMatrix.getMPICommunicator()); computing_timer.exit_section("Gram-Schmidt Orthogn Opt"); } @@ -364,32 +366,33 @@ namespace dftfe{ for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) for(unsigned int iWave = 0; iWave < eigenValues.size(); ++iWave) - eigenVectorsFlattenedRR.local_element(iNode*eigenValues.size() - +iWave) - =eigenVectorsFlattened.local_element(iNode*totalNumberWaveFunctions - +(totalNumberWaveFunctions-eigenValues.size()) - +iWave); + eigenVectorsFlattenedRR[iNode*eigenValues.size() + +iWave] + =eigenVectorsFlattened[iNode*totalNumberWaveFunctions+(totalNumberWaveFunctions-eigenValues.size())+iWave]; linearAlgebraOperations::rayleighRitz(operatorMatrix, eigenVectorsFlattenedRR, eigenValues.size(), interBandGroupComm, + operatorMatrix.getMPICommunicator(), eigenValues); for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) for(unsigned int iWave = 0; iWave < eigenValues.size(); ++iWave) - eigenVectorsFlattened.local_element(iNode*totalNumberWaveFunctions - +(totalNumberWaveFunctions-eigenValues.size()) - +iWave) - = eigenVectorsFlattenedRR.local_element(iNode*eigenValues.size() - +iWave); + eigenVectorsFlattened[iNode*totalNumberWaveFunctions+(totalNumberWaveFunctions-eigenValues.size())+iWave] + = eigenVectorsFlattenedRR[iNode*eigenValues.size()+iWave]; } else - linearAlgebraOperations::rayleighRitz(operatorMatrix, - eigenVectorsFlattened, - totalNumberWaveFunctions, - interBandGroupComm, - eigenValues); + { + + + linearAlgebraOperations::rayleighRitz(operatorMatrix, + eigenVectorsFlattened, + totalNumberWaveFunctions, + interBandGroupComm, + operatorMatrix.getMPICommunicator(), + eigenValues); + } computing_timer.exit_section("Rayleigh-Ritz proj Opt"); @@ -402,15 +405,17 @@ namespace dftfe{ computing_timer.enter_section("eigen vectors residuals opt"); if (eigenValues.size()!=totalNumberWaveFunctions) - linearAlgebraOperations::computeEigenResidualNorm(operatorMatrix, - eigenVectorsFlattenedRR, - eigenValues, - residualNorms); + linearAlgebraOperations::computeEigenResidualNorm(operatorMatrix, + eigenVectorsFlattenedRR, + eigenValues, + operatorMatrix.getMPICommunicator(), + residualNorms); else - linearAlgebraOperations::computeEigenResidualNorm(operatorMatrix, - eigenVectorsFlattened, - eigenValues, - residualNorms); + linearAlgebraOperations::computeEigenResidualNorm(operatorMatrix, + eigenVectorsFlattened, + eigenValues, + operatorMatrix.getMPICommunicator(), + residualNorms); computing_timer.exit_section("eigen vectors residuals opt"); if(dftParameters::verbosity >= 4) @@ -420,8 +425,8 @@ namespace dftfe{ } if (dftParameters::verbosity>=4) - dftUtils::printCurrentMemoryUsage(eigenVectorsFlattened.get_mpi_communicator(), - "After all steps of subspace iteration"); + dftUtils::printCurrentMemoryUsage(operatorMatrix.getMPICommunicator(), + "After all steps of subspace iteration"); return; @@ -523,10 +528,10 @@ namespace dftfe{ computing_timer.enter_section("compute eigen vectors residuals"); - linearAlgebraOperations::computeEigenResidualNorm(operatorMatrix, - eigenVectors, - eigenValues, - residualNorms); + //linearAlgebraOperations::computeEigenResidualNorm(operatorMatrix, + // eigenVectors, + // eigenValues, + // residualNorms); computing_timer.exit_section("compute eigen vectors residuals"); return; diff --git a/src/symmetry/symmetrizeRho.cc b/src/symmetry/symmetrizeRho.cc index e03167eb4..c0b6a9930 100644 --- a/src/symmetry/symmetrizeRho.cc +++ b/src/symmetry/symmetrizeRho.cc @@ -172,6 +172,18 @@ void symmetryClass::computeAndSymmetrize_rhoOut() dftPtr->gradRhoOutValsSpinPolarized.pop_front(); } } + // + if (dftParameters::mixingMethod=="BROYDEN") + { + dftPtr->dFBroyden.pop_front(); + dftPtr->uBroyden.pop_front(); + if(dftParameters::xc_id == 4)//GGA + { + dftPtr->graddFBroyden.pop_front(); + dftPtr->gradUBroyden.pop_front(); + } + } + } } //============================================================================================================================================= @@ -184,14 +196,36 @@ template void symmetryClass::computeLocalrhoOut() { std::vector> eigenVectors((1+dftParameters::spinPolarized)*dftPtr->d_kPointWeights.size()); + + const unsigned int localVectorSize = dftPtr->d_eigenVectorsFlattenedSTL[0].size()/dftPtr->numEigenValues; + + dealii::parallel::distributed::Vector eigenVectorsFlattenedArrayFullBlock; + vectorTools::createDealiiVector(dftPtr->matrix_free_data.get_vector_partitioner(), + dftPtr->numEigenValues, + eigenVectorsFlattenedArrayFullBlock); + + dftPtr->constraintsNoneDataInfo.precomputeMaps(dftPtr->matrix_free_data.get_vector_partitioner(), + eigenVectorsFlattenedArrayFullBlock.get_partitioner(), + dftPtr->numEigenValues); + for(unsigned int kPoint = 0; kPoint < (1+dftParameters::spinPolarized)*dftPtr->d_kPointWeights.size(); ++kPoint) { eigenVectors[kPoint].resize(dftPtr->numEigenValues); for(unsigned int i = 0; i < dftPtr->numEigenValues; ++i) eigenVectors[kPoint][i].reinit(dftPtr->d_tempEigenVec); + + for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) + for(unsigned int iWave = 0; iWave < dftPtr->numEigenValues; ++iWave) + eigenVectorsFlattenedArrayFullBlock.local_element(iNode*dftPtr->numEigenValues+iWave) + = dftPtr->d_eigenVectorsFlattenedSTL[kPoint][iNode*dftPtr->numEigenValues+iWave]; + + dftPtr->constraintsNoneDataInfo.distribute(eigenVectorsFlattenedArrayFullBlock, + dftPtr->numEigenValues); + + #ifdef USE_COMPLEX vectorTools::copyFlattenedDealiiVecToSingleCompVec - (dftPtr->d_eigenVectorsFlattened[kPoint], + (eigenVectorsFlattenedArrayFullBlock, dftPtr->numEigenValues, std::make_pair(0,dftPtr->numEigenValues), dftPtr->localProc_dof_indicesReal, @@ -288,10 +322,19 @@ void symmetryClass::computeLocalrhoOut() for(unsigned int i=0; i<(dftPtr->numEigenValues); ++i) { double factor=((dftPtr->eigenValues)[kPoint][i]-(dftPtr->fermiEnergy))/(C_kb*dftParameters::TVal); - const double partialOccupancyAlpha = getOccupancy(factor) ; + double partialOccupancyAlpha = getOccupancy(factor) ; // factor=((dftPtr->eigenValues)[kPoint][i+dftParameters::spinPolarized*(dftPtr->numEigenValues)]-(dftPtr->fermiEnergy))/(C_kb*dftParameters::TVal); - const double partialOccupancyBeta = getOccupancy(factor) ; + double partialOccupancyBeta = getOccupancy(factor) ; + // + if(dftParameters::constraintMagnetization) + { + partialOccupancyAlpha = 1.0 , partialOccupancyBeta = 1.0 ; + if ((dftPtr->eigenValues)[kPoint][i+dftParameters::spinPolarized*(dftPtr->numEigenValues)] > (dftPtr->fermiEnergyDown)) + partialOccupancyBeta = 0.0 ; + if ((dftPtr->eigenValues)[kPoint][i] > (dftPtr->fermiEnergyUp)) + partialOccupancyAlpha = 0.0 ; + } // fe_values.get_function_values((eigenVectors[(1+dftParameters::spinPolarized)*kPoint][i]), tempPsiAlpha); if (dftParameters::spinPolarized==1) diff --git a/src/triangulation/meshMovement/meshMovement.cc b/src/triangulation/meshMovement/meshMovement.cc index 1d701dea1..3a56a3a72 100644 --- a/src/triangulation/meshMovement/meshMovement.cc +++ b/src/triangulation/meshMovement/meshMovement.cc @@ -77,7 +77,7 @@ meshMovementClass::meshMovementClass(const MPI_Comm &mpi_comm_replica): } -void meshMovementClass::init(const Triangulation<3,3> & triangulation, const std::vector > & domainBoundingVectors) +void meshMovementClass::init(Triangulation<3,3> & triangulation, const std::vector > & domainBoundingVectors) { d_domainBoundingVectors=domainBoundingVectors; if (triangulation.locally_owned_subdomain()==numbers::invalid_subdomain_id) @@ -89,7 +89,11 @@ void meshMovementClass::init(const Triangulation<3,3> & triangulation, const std d_dofHandlerMoveMesh.clear(); if (d_isParallelMesh) - d_dofHandlerMoveMesh.initialize(dynamic_cast & >(triangulation),FEMoveMesh); + { + triaPtr=&(dynamic_cast & >(triangulation)); + d_dofHandlerMoveMesh.initialize(*triaPtr,FEMoveMesh); + + } else d_dofHandlerMoveMesh.initialize(triangulation,FEMoveMesh); d_dofHandlerMoveMesh.distribute_dofs(FEMoveMesh); @@ -126,9 +130,9 @@ void meshMovementClass::init(const Triangulation<3,3> & triangulation, const std const std::array periodic = {dftParameters::periodicX, dftParameters::periodicY, dftParameters::periodicZ}; std::vector periodicDirectionVector; - for (unsigned int d= 0; d < 3; ++d) + for (unsigned int d= 0; d < 3; ++d) { - if (periodic[d]==1) + if (periodic[d]==1) { periodicDirectionVector.push_back(d); } @@ -151,39 +155,16 @@ void meshMovementClass::initMoved(const std::vector > & doma void meshMovementClass::initIncrementField() { - //dftPtr->matrix_free_data.initialize_dof_vector(d_incrementalDisplacement,d_forceDofHandlerIndex); - IndexSet ghost_indices=d_locally_relevant_dofs; - ghost_indices.subtract_set(d_locally_owned_dofs); - if(!d_isParallelMesh) - { - d_incrementalDisplacementSerial.reinit(d_locally_owned_dofs.size()); - d_incrementalDisplacementSerial=0; - } - else - { - d_incrementalDisplacementParallel=dealii::parallel::distributed::Vector(d_locally_owned_dofs, - ghost_indices, - mpi_communicator); - d_incrementalDisplacementParallel=0; - } + d_incrementalDisplacement.reinit(d_locally_relevant_dofs.size()); + d_incrementalDisplacement=0; + } void meshMovementClass::finalizeIncrementField() { - if (d_isParallelMesh) - { - //d_incrementalDisplacement.compress(VectorOperation::insert);//inserts current value at owned node and sets ghosts to zero - //d_incrementalDisplacementParallel.update_ghost_values(); - d_constraintsMoveMesh.distribute(d_incrementalDisplacementParallel);//distribute to constrained degrees of freedom (periodic and hanging nodes) - d_incrementalDisplacementParallel.update_ghost_values(); - } - else - { - d_incrementalDisplacementSerial.update_ghost_values(); - d_constraintsMoveMesh.distribute(d_incrementalDisplacementSerial); - } + d_constraintsMoveMesh.distribute(d_incrementalDisplacement); } void meshMovementClass::updateTriangulationVertices() @@ -193,25 +174,28 @@ void meshMovementClass::updateTriangulationVertices() pcout << "Start moving triangulation..." << std::endl; std::vector vertex_moved(d_dofHandlerMoveMesh.get_triangulation().n_vertices(), false); + const std::vector locally_owned_vertices = + dealii::GridTools::get_locally_owned_vertices(d_dofHandlerMoveMesh.get_triangulation()); // Next move vertices on locally owned cells DoFHandler<3>::active_cell_iterator cell = d_dofHandlerMoveMesh.begin_active(); DoFHandler<3>::active_cell_iterator endc = d_dofHandlerMoveMesh.end(); for (; cell!=endc; ++cell) { - if (!cell->is_artificial()) + if (cell->is_locally_owned()) { for (unsigned int vertex_no=0; vertex_no::vertices_per_cell;++vertex_no) { const unsigned global_vertex_no = cell->vertex_index(vertex_no); - if (vertex_moved[global_vertex_no]) + if (vertex_moved[global_vertex_no] + || !locally_owned_vertices[global_vertex_no]) continue; Point vertexDisplacement; - for (unsigned int d=0; dvertex_dof_index(vertex_no,d); - vertexDisplacement[d]=d_isParallelMesh?d_incrementalDisplacementParallel[globalDofIndex]: - d_incrementalDisplacementSerial[globalDofIndex]; + vertexDisplacement[d]=d_incrementalDisplacement[globalDofIndex]; } cell->vertex(vertex_no) += vertexDisplacement; @@ -219,6 +203,9 @@ void meshMovementClass::updateTriangulationVertices() } } } + if (d_isParallelMesh) + triaPtr->communicate_locally_moved_vertices(locally_owned_vertices); + d_dofHandlerMoveMesh.distribute_dofs(FEMoveMesh); if (dftParameters::verbosity>=4) pcout << "...End moving triangulation" << std::endl; @@ -251,6 +238,7 @@ std::pair meshMovementClass::movedMeshCheck() offsetVectors[i][j] = unitVectorsXYZ[i][j] - d_domainBoundingVectors[i][j]; } } + /* if (dftParameters::verbosity>=4) pcout << "Sanity check for periodic matched faces on moved triangulation..." << std::endl; for(unsigned int i=0; i< d_periodicity_vector.size(); ++i) @@ -271,6 +259,7 @@ std::pair meshMovementClass::movedMeshCheck() if (dftParameters::verbosity>=4) pcout << "...Sanity check passed" << std::endl; + */ //print out mesh metrics typename Triangulation<3,3>::active_cell_iterator cell, endc; double minElemLength=1e+6; diff --git a/src/triangulation/meshMovement/meshMovementAffineTransform.cc b/src/triangulation/meshMovement/meshMovementAffineTransform.cc index fe2b1f863..131801823 100644 --- a/src/triangulation/meshMovement/meshMovementAffineTransform.cc +++ b/src/triangulation/meshMovement/meshMovementAffineTransform.cc @@ -61,9 +61,10 @@ void meshMovementAffineTransform::computeIncrement() DoFHandler<3>::active_cell_iterator cell = d_dofHandlerMoveMesh.begin_active(), endc = d_dofHandlerMoveMesh.end(); - for (; cell!=endc; ++cell) { - if (!cell->is_artificial()){ - for (unsigned int i=0; iis_artificial()) + for (unsigned int i=0; ivertex_index(i); if (vertex_touched[global_vertex_no]) @@ -76,15 +77,10 @@ void meshMovementAffineTransform::computeIncrement() { const unsigned int globalDofIndex=cell->vertex_dof_index(i,idim); - if (d_isParallelMesh) - d_incrementalDisplacementParallel[globalDofIndex]=increment[idim]; - else - d_incrementalDisplacementSerial[globalDofIndex]=increment[idim]; - } + d_incrementalDisplacement[globalDofIndex]=increment[idim]; + } } - } - } } } diff --git a/src/triangulation/meshMovement/meshMovementGaussian.cc b/src/triangulation/meshMovement/meshMovementGaussian.cc index 6b184d66e..268dc295d 100644 --- a/src/triangulation/meshMovement/meshMovementGaussian.cc +++ b/src/triangulation/meshMovement/meshMovementGaussian.cc @@ -63,9 +63,10 @@ void meshMovementGaussianClass::computeIncrement() DoFHandler<3>::active_cell_iterator cell = d_dofHandlerMoveMesh.begin_active(), endc = d_dofHandlerMoveMesh.end(); - for (; cell!=endc; ++cell) { - if (!cell->is_artificial()){ - for (unsigned int i=0; iis_artificial()) + for (unsigned int i=0; ivertex_index(i); if (vertex_touched[global_vertex_no]) @@ -74,9 +75,11 @@ void meshMovementGaussianClass::computeIncrement() Point nodalCoor = cell->vertex(i); int overlappedControlPointId=-1; - for (unsigned int jControl=0;jControl vertex_dof_index(i,idim); if(!d_constraintsMoveMesh.is_constrained(globalDofIndex)) - { - if (d_isParallelMesh) - d_incrementalDisplacementParallel[globalDofIndex]+=gaussianWeight*d_controlPointDisplacements[iControl][idim]; - else - d_incrementalDisplacementSerial[globalDofIndex]+=gaussianWeight*d_controlPointDisplacements[iControl][idim]; - } + d_incrementalDisplacement[globalDofIndex] + +=gaussianWeight*d_controlPointDisplacements[iControl][idim]; } } } - } - } } } diff --git a/src/triangulation/triangulationManager/triangulationManager.cc b/src/triangulation/triangulationManager/triangulationManager.cc index 19f51e41c..7b964b3d8 100644 --- a/src/triangulation/triangulationManager/triangulationManager.cc +++ b/src/triangulation/triangulationManager/triangulationManager.cc @@ -156,8 +156,8 @@ void triangulationManager::generateCoarseMeshesForRestart // //get unmoved serial mesh // -const parallel::distributed::Triangulation<3> & -triangulationManager::getSerialMeshUnmoved() const +parallel::distributed::Triangulation<3> & +triangulationManager::getSerialMeshUnmoved() { return d_serialTriangulationUnmoved; } @@ -174,8 +174,8 @@ triangulationManager::getParallelMeshMoved() // //get unmoved parallel mesh // -const parallel::distributed::Triangulation<3> & -triangulationManager::getParallelMeshUnmoved() const +parallel::distributed::Triangulation<3> & +triangulationManager::getParallelMeshUnmoved() { return d_parallelTriangulationUnmoved; } @@ -183,8 +183,8 @@ triangulationManager::getParallelMeshUnmoved() const // //get unmoved parallel mesh // -const parallel::distributed::Triangulation<3> & -triangulationManager::getParallelMeshUnmovedPrevious() const +parallel::distributed::Triangulation<3> & +triangulationManager::getParallelMeshUnmovedPrevious() { return d_parallelTriangulationUnmovedPrevious; } @@ -192,8 +192,8 @@ triangulationManager::getParallelMeshUnmovedPrevious() const // //get unmoved serial mesh // -const parallel::distributed::Triangulation<3> & -triangulationManager::getSerialMeshUnmovedPrevious() const +parallel::distributed::Triangulation<3> & +triangulationManager::getSerialMeshUnmovedPrevious() { return d_serialTriangulationUnmovedPrevious; } diff --git a/tests/dft/allElectron/complex/silicon_01.prm.in b/tests/dft/allElectron/complex/silicon_01.prm.in index 38e4361b8..45355b1fa 100644 --- a/tests/dft/allElectron/complex/silicon_01.prm.in +++ b/tests/dft/allElectron/complex/silicon_01.prm.in @@ -68,8 +68,8 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC subsection Eigen-solver parameters diff --git a/tests/dft/allElectron/real/methane_01.prm.in b/tests/dft/allElectron/real/methane_01.prm.in index 352e2008d..c2899bf16 100644 --- a/tests/dft/allElectron/real/methane_01.prm.in +++ b/tests/dft/allElectron/real/methane_01.prm.in @@ -36,8 +36,8 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 40 set TEMPERATURE = 500 set TOLERANCE = 1e-6 diff --git a/tests/dft/pseudopotential/complex/cubicAlPrim_01.prm.in b/tests/dft/pseudopotential/complex/cubicAlPrim_01.prm.in index d573d1a77..72c526055 100644 --- a/tests/dft/pseudopotential/complex/cubicAlPrim_01.prm.in +++ b/tests/dft/pseudopotential/complex/cubicAlPrim_01.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/cubicAlPrim_01_b.mpirun=4.output b/tests/dft/pseudopotential/complex/cubicAlPrim_01_b.mpirun=4.output new file mode 100644 index 000000000..1d70dec16 --- /dev/null +++ b/tests/dft/pseudopotential/complex/cubicAlPrim_01_b.mpirun=4.output @@ -0,0 +1,48 @@ +number of atoms: 1 +number of atoms types: 1 +Z:13 +============================================================================================================================= +number of electrons: 3 +number of eigen values: 20 +============================================================================================================================= +Total number of k-points 2 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 7.599999999999999645e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 7.599999999999999645e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 7.599999999999999645e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 918 + +Finite element mesh information +------------------------------------------------- +number of elements: 736 +number of degrees of freedom: 7377 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 15 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -35.85604372 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000000,0.000001,0.000003 +-------------------------------------------------------------------------------------------- + +Absolute value of cell stress (Hartree/Bohr^3) +------------------------------------------------------------------------ +0.000131 0.000000 0.000000 +0.000000 0.000131 0.000001 +0.000000 0.000001 0.000125 +------------------------------------------------------------------------ diff --git a/tests/dft/pseudopotential/complex/cubicAlPrim_01_b.prm.in b/tests/dft/pseudopotential/complex/cubicAlPrim_01_b.prm.in new file mode 100644 index 000000000..bdedcf15d --- /dev/null +++ b/tests/dft/pseudopotential/complex/cubicAlPrim_01_b.prm.in @@ -0,0 +1,87 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Geometry + set NATOMS=1 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/cubicAl_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/cubicAl_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=true + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 2 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 1 + end + + set USE GROUP SYMMETRY =false + set USE TIME REVERSAL SYMMETRY =false +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoAlONCV.inp + set EXCHANGE CORRELATION TYPE = 4 + set PSEUDO TESTS FLAG = true + set SPIN POLARIZATION=1 + set START MAGNETIZATION=0.4 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=GS + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/complex/fccAl_01.prm.in b/tests/dft/pseudopotential/complex/fccAl_01.prm.in index 636fd2f81..624519c2f 100644 --- a/tests/dft/pseudopotential/complex/fccAl_01.prm.in +++ b/tests/dft/pseudopotential/complex/fccAl_01.prm.in @@ -57,12 +57,13 @@ end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 50 set TEMPERATURE = 500 set TOLERANCE = 1e-7 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set CHEBYSHEV FILTER TOLERANCE=1e-3 diff --git a/tests/dft/pseudopotential/complex/fccAl_02.prm.in b/tests/dft/pseudopotential/complex/fccAl_02.prm.in index 38d7ed4c6..a3570314b 100644 --- a/tests/dft/pseudopotential/complex/fccAl_02.prm.in +++ b/tests/dft/pseudopotential/complex/fccAl_02.prm.in @@ -65,12 +65,13 @@ end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 50 set TEMPERATURE = 500 set TOLERANCE = 1e-6 set STARTING WFC=RANDOM + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set CHEBYSHEV FILTER TOLERANCE=1e-3 diff --git a/tests/dft/pseudopotential/complex/fccAl_02_b.mpirun=16.output b/tests/dft/pseudopotential/complex/fccAl_02_b.mpirun=16.output new file mode 100644 index 000000000..57557f4f7 --- /dev/null +++ b/tests/dft/pseudopotential/complex/fccAl_02_b.mpirun=16.output @@ -0,0 +1,79 @@ +number of atoms: 4 +number of atoms types: 1 +Total number of k-points 8 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 7.599999999999999645e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 7.599999999999999645e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 7.599999999999999645e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 +AtomId 2: 5.000000000000000000e-01 0.000000000000000000e+00 5.000000000000000000e-01 +AtomId 3: 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- +Number Image Charges 3664 + +Finite element mesh information +------------------------------------------------- +number of elements: 1408 +number of degrees of freedom: 15849 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 12 +number of eigen values: 20 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 11 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -8.36530748 + +Absolute value of cell stress (Hartree/Bohr^3) +------------------------------------------------------------------------ +0.000011 0.000000 0.000000 +0.000000 0.000011 0.000000 +0.000000 0.000000 0.000011 +------------------------------------------------------------------------ +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 7.596205 0.000000 0.000000 +v2 : 0.000000 7.596205 0.000000 +v3 : 0.000000 0.000000 7.596205 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000 0.000000 0.000000 +AtomId 1: 0.000000 0.500000 0.500000 +AtomId 2: 0.500000 0.000000 0.500000 +AtomId 3: 0.500000 0.500000 0.000000 +----------------------------------------------------------------------------------------- +Number Image Charges 3664 + +Finite element mesh information +------------------------------------------------- +number of elements: 1408 +number of degrees of freedom: 15849 +------------------------------------------------- + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 11 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -8.36532516 + +Absolute value of cell stress (Hartree/Bohr^3) +------------------------------------------------------------------------ +0.000008 0.000000 0.000000 +0.000000 0.000008 0.000000 +0.000000 0.000000 0.000008 +------------------------------------------------------------------------ diff --git a/tests/dft/pseudopotential/complex/fccAl_02_b.prm.in b/tests/dft/pseudopotential/complex/fccAl_02_b.prm.in new file mode 100644 index 000000000..19eb2a9f4 --- /dev/null +++ b/tests/dft/pseudopotential/complex/fccAl_02_b.prm.in @@ -0,0 +1,81 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT=true + +subsection Boundary conditions + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true + set SELF POTENTIAL RADIUS = 0 +end + + +subsection Brillouin zone k point sampling options + set USE TIME REVERSAL SYMMETRY = true + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 2 + set SAMPLING POINTS 2 = 2 + set SAMPLING POINTS 3 = 2 + set SAMPLING SHIFT 1 = 1 + set SAMPLING SHIFT 2 = 1 + set SAMPLING SHIFT 3 = 1 + end +end + +subsection Parallelization + set NPKPT=4 +end + +subsection DFT functional parameters + set EXCHANGE CORRELATION TYPE = 1 + set PSEUDOPOTENTIAL CALCULATION = true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoAlKB.inp + set PSEUDO TESTS FLAG = true +end + + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + subsection Auto mesh generation parameters + set ATOM BALL RADIUS = 2.0 + set BASE MESH SIZE = 4.0 + set MESH SIZE AT ATOM = 0.6 + set MESH SIZE AROUND ATOM = 0.6 + end + +end + +subsection Geometry + set NATOMS=4 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/fccAl_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/fccAl_domainBoundingVectors.inp + subsection Optimization + set STRESS TOL = 1e-5 + set CELL OPT = true + set CELL CONSTRAINT TYPE = 1 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end + + +subsection SCF parameters + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.2 + set MIXING METHOD = BROYDEN + set MAXIMUM ITERATIONS = 50 + set TEMPERATURE = 500 + set TOLERANCE = 1e-6 + set STARTING WFC=RANDOM + set HIGHER QUAD NLP = false + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=LW + end +end diff --git a/tests/dft/pseudopotential/complex/graphene_01.prm.in b/tests/dft/pseudopotential/complex/graphene_01.prm.in index 2bdbe9b14..a6a33b1d4 100644 --- a/tests/dft/pseudopotential/complex/graphene_01.prm.in +++ b/tests/dft/pseudopotential/complex/graphene_01.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_01.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_01.prm.in index 6fcfb6a1c..0366c3412 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_01.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_01.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_01_b.mpirun=5.output b/tests/dft/pseudopotential/complex/hcpMgPrim_01_b.mpirun=5.output new file mode 100644 index 000000000..0721cbc46 --- /dev/null +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_01_b.mpirun=5.output @@ -0,0 +1,50 @@ +number of atoms: 2 +number of atoms types: 1 +Z:12 +============================================================================================================================= +number of electrons: 20 +number of eigen values: 20 +============================================================================================================================= +Total number of k-points 2 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 5.882191053999999752e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : -2.941095526999999876e+00 5.094126882677563195e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 9.585777736000000715e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 6.666666666666666297e-01 3.333333333333333148e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 2661 + +Finite element mesh information +------------------------------------------------- +number of elements: 976 +number of degrees of freedom: 10699 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -108.71526648 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000044,0.000026,0.003540 +AtomId 1: 0.005209,0.003007,0.003541 +-------------------------------------------------------------------------------------------- + +Absolute value of cell stress (Hartree/Bohr^3) +------------------------------------------------------------------------ +0.002554 0.000974 0.000000 +0.000974 0.001429 0.000000 +0.000000 0.000000 0.000536 +------------------------------------------------------------------------ diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_01_b.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_01_b.prm.in new file mode 100644 index 000000000..dc87ca409 --- /dev/null +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_01_b.prm.in @@ -0,0 +1,87 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/hcpMgPrim_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/hcpMgPrim_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=true + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 2 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 1 + end + + set USE GROUP SYMMETRY =false + set USE TIME REVERSAL SYMMETRY = true +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoMgONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 + set SPIN POLARIZATION=0 + set START MAGNETIZATION=0.0 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-7 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=GS + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_01_c.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_01_c.prm.in index 5ea58476e..ef68243c0 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_01_c.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_01_c.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_01_d.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_01_d.prm.in index f9a89448e..911553f8c 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_01_d.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_01_d.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set SPECTRUM SPLIT CORE EIGENSTATES=6 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_02.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_02.prm.in index 5d5376aac..c621469fb 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_02.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_02.prm.in @@ -70,10 +70,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_02_b.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_02_b.prm.in index 7a29e7190..1bc445b9d 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_02_b.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_02_b.prm.in @@ -71,10 +71,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 23 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_02_c.mpirun=8.output b/tests/dft/pseudopotential/complex/hcpMgPrim_02_c.mpirun=8.output new file mode 100644 index 000000000..1f014edfc --- /dev/null +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_02_c.mpirun=8.output @@ -0,0 +1,50 @@ +number of atoms: 2 +number of atoms types: 1 +Z:12 +============================================================================================================================= +number of electrons: 20 +number of eigen values: 23 +============================================================================================================================= +Total number of k-points 2 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 5.882191053999999752e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : -2.941095526999999876e+00 5.094126882677563195e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 9.585777736000000715e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 6.666666666666666297e-01 3.333333333333333148e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 2661 + +Finite element mesh information +------------------------------------------------- +number of elements: 976 +number of degrees of freedom: 10699 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -108.71470322 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000044,0.000025,0.003542 +AtomId 1: 0.005210,0.003008,0.003543 +-------------------------------------------------------------------------------------------- + +Absolute value of cell stress (Hartree/Bohr^3) +------------------------------------------------------------------------ +0.002550 0.000981 0.000000 +0.000981 0.001417 0.000000 +0.000000 0.000000 0.000632 +------------------------------------------------------------------------ diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_02_c.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_02_c.prm.in new file mode 100644 index 000000000..fcbada626 --- /dev/null +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_02_c.prm.in @@ -0,0 +1,94 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Parallelization + set NPKPT=2 + set NPBAND=2 + set MPI ALLREDUCE BLOCK SIZE=0.1 +end + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/hcpMgPrim_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/hcpMgPrim_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=true + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 2 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 1 + end + + set USE GROUP SYMMETRY =false + set USE TIME REVERSAL SYMMETRY =false +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoMgONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 + set SPIN POLARIZATION=0 + set START MAGNETIZATION=0.0 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-7 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 23 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=GS + set WFC BLOCK SIZE=3 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_03.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_03.prm.in index b22ae9dfe..d8f4c8415 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_03.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_03.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_04.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_04.prm.in index 0681e7b28..a334c8945 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_04.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_04.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_04_b.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_04_b.prm.in index 94ffc6daa..a5dafe635 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_04_b.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_04_b.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_04_c.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_04_c.prm.in index efff1ef23..92a38986e 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_04_c.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_04_c.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set SPECTRUM SPLIT CORE EIGENSTATES=6 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_05.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_05.prm.in index 2c7300dca..06bdd6981 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_05.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_05.prm.in @@ -64,10 +64,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_06.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_06.prm.in index 461a44b5e..6f1cb8d08 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_06.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_06.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_06_b.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_06_b.prm.in index de7685b4c..05c33ca49 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_06_b.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_06_b.prm.in @@ -66,10 +66,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/hcpMgPrim_07.prm.in b/tests/dft/pseudopotential/complex/hcpMgPrim_07.prm.in index 6d6c99fb0..677f0c6c1 100644 --- a/tests/dft/pseudopotential/complex/hcpMgPrim_07.prm.in +++ b/tests/dft/pseudopotential/complex/hcpMgPrim_07.prm.in @@ -70,10 +70,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/complex/nitrogenMolecule_02.mpirun=10.output b/tests/dft/pseudopotential/complex/nitrogenMolecule_02.mpirun=10.output index a438af63a..914d635fd 100644 --- a/tests/dft/pseudopotential/complex/nitrogenMolecule_02.mpirun=10.output +++ b/tests/dft/pseudopotential/complex/nitrogenMolecule_02.mpirun=10.output @@ -7,15 +7,15 @@ v2 : 0.000000000000000000e+00 8.000000000000000000e+01 0.000000000000000000e+00 v3 : 0.000000000000000000e+00 0.000000000000000000e+00 8.000000000000000000e+01 ----------------------------------------------------------------------------------------- -----Fractional coordinates of atoms------ -AtomId 0: 4.871249999999999747e-01 0.000000000000000000e+00 0.000000000000000000e+00 -AtomId 1: 5.128749999999999698e-01 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 0: 4.837500000000000133e-01 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 5.162499999999999867e-01 0.000000000000000000e+00 0.000000000000000000e+00 ----------------------------------------------------------------------------------------- Number Image Charges 14 Finite element mesh information ------------------------------------------------- -number of elements: 960 -number of degrees of freedom: 33369 +number of elements: 2792 +number of degrees of freedom: 94211 ------------------------------------------------- Setting initial guess for wavefunctions.... @@ -33,12 +33,12 @@ SCF iterations converged to the specified tolerance after: 12 iterations. Energy computations (Hartree) ------------------- - Total energy: -19.88860965 + Total energy: -19.79765523 Absolute values of ion forces (Hartree/Bohr) -------------------------------------------------------------------------------------------- -AtomId 0: 0.078047,0.000000,0.000000 -AtomId 1: 0.078047,0.000000,0.000000 +AtomId 0: 0.292464,0.000001,0.000000 +AtomId 1: 0.292450,0.000015,0.000014 -------------------------------------------------------------------------------------------- -----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- v1 : 80.000000 0.000000 0.000000 @@ -46,15 +46,128 @@ v2 : 0.000000 80.000000 0.000000 v3 : 0.000000 0.000000 80.000000 ----------------------------------------------------------------------------------------- -----Fractional coordinates of atoms------ -AtomId 0: 0.486442 0.000000 0.000000 -AtomId 1: 0.513558 0.000000 0.000000 +AtomId 0: 0.486309 0.000000 0.000000 +AtomId 1: 0.513691 0.000000 0.000000 ----------------------------------------------------------------------------------------- Number Image Charges 14 Finite element mesh information ------------------------------------------------- -number of elements: 960 -number of degrees of freedom: 33369 +number of elements: 2736 +number of degrees of freedom: 92699 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.89600555 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.126047,0.000000,0.000000 +AtomId 1: 0.126055,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.488248 0.000000 0.000000 +AtomId 1: 0.511753 0.000000 0.000000 +----------------------------------------------------------------------------------------- +Number Image Charges 14 + +Finite element mesh information +------------------------------------------------- +number of elements: 2624 +number of degrees of freedom: 88475 +------------------------------------------------- + +Reading initial guess for PSI.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.83955968 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.401591,0.000000,0.000000 +AtomId 1: 0.401590,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.486772 0.000000 0.000000 +AtomId 1: 0.513228 0.000000 0.000000 +----------------------------------------------------------------------------------------- +Number Image Charges 14 + +Finite element mesh information +------------------------------------------------- +number of elements: 2736 +number of degrees of freedom: 92699 +------------------------------------------------- + +Reading initial guess for PSI.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.90260829 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.044741,0.000000,0.000000 +AtomId 1: 0.044727,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.486920 0.000000 0.000000 +AtomId 1: 0.513080 0.000000 0.000000 +----------------------------------------------------------------------------------------- +Number Image Charges 14 + +Finite element mesh information +------------------------------------------------- +number of elements: 2736 +number of degrees of freedom: 92699 ------------------------------------------------- Interpolating previous groundstate PSI into the new finite element mesh.... @@ -62,14 +175,14 @@ Interpolating previous groundstate PSI into the new finite element mesh.... Pseudopotential initalization.... Starting SCF iterations.... -SCF iterations converged to the specified tolerance after: 9 iterations. +SCF iterations converged to the specified tolerance after: 11 iterations. Energy computations (Hartree) ------------------- - Total energy: -19.88297263 + Total energy: -19.90333351 Absolute values of ion forces (Hartree/Bohr) -------------------------------------------------------------------------------------------- -AtomId 0: 0.072328,0.000000,0.000000 -AtomId 1: 0.072326,0.000000,0.000000 +AtomId 0: 0.013421,0.000000,0.000000 +AtomId 1: 0.013422,0.000000,0.000000 -------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/complex/nitrogenMolecule_02.prm.in b/tests/dft/pseudopotential/complex/nitrogenMolecule_02.prm.in index 081c14ded..d6c343582 100644 --- a/tests/dft/pseudopotential/complex/nitrogenMolecule_02.prm.in +++ b/tests/dft/pseudopotential/complex/nitrogenMolecule_02.prm.in @@ -8,7 +8,7 @@ subsection Geometry set DOMAIN VECTORS FILE = @SOURCE_DIR@/nitrogenMolecule_domainVectors.inp subsection Optimization set ION OPT=true - set FORCE TOL=0.075 + set FORCE TOL=4e-2 set ION RELAX FLAGS FILE =@SOURCE_DIR@/nitrogenMolecule_relaxationFlags.inp set REUSE WFC=true end @@ -24,10 +24,10 @@ end subsection Finite element mesh parameters set POLYNOMIAL ORDER=3 subsection Auto mesh generation parameters - set MESH SIZE AROUND ATOM = 0.7 - set BASE MESH SIZE = 10.0 + set MESH SIZE AROUND ATOM = 0.5 + set BASE MESH SIZE = 13.0 set ATOM BALL RADIUS = 2.0 - set MESH SIZE AT ATOM = 0.7 + set MESH SIZE AT ATOM = 0.5 end end @@ -39,16 +39,16 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 40 set TEMPERATURE = 500 - set TOLERANCE = 5e-6 - + set TOLERANCE = 1e-5 + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 - set ORTHOGONALIZATION TYPE=LW - set CHEBYSHEV POLYNOMIAL DEGREE = 30 - set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=PGS + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-2 end end diff --git a/tests/dft/pseudopotential/complex/nitrogenMolecule_coordinates2.inp b/tests/dft/pseudopotential/complex/nitrogenMolecule_coordinates2.inp index 547edf486..a8442a9f2 100644 --- a/tests/dft/pseudopotential/complex/nitrogenMolecule_coordinates2.inp +++ b/tests/dft/pseudopotential/complex/nitrogenMolecule_coordinates2.inp @@ -1,2 +1,2 @@ -7 5 0.487125 0.00000000E+00 0.00000000E+00 -7 5 0.512875 0.00000000E+00 0.00000000E+00 +7 5 0.48375 0.00000000E+00 0.00000000E+00 +7 5 0.51625 0.00000000E+00 0.00000000E+00 diff --git a/tests/dft/pseudopotential/real/Al_ONCV_PBE-1.0.upf b/tests/dft/pseudopotential/real/Al_ONCV_PBE-1.0.upf new file mode 100644 index 000000000..f981939f8 --- /dev/null +++ b/tests/dft/pseudopotential/real/Al_ONCV_PBE-1.0.upf @@ -0,0 +1,1227 @@ + + + + This pseudopotential file has been produced using the code + ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) + scalar-relativistic version 2.1.1, 03/26/2014 by D. R. Hamann + The code is available through a link at URL www.mat-simresearch.com. + Documentation with the package provides a full discription of the + input data below. + + + While it is not required under the terms of the GNU GPL, it is + suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) + in any publication using these pseudopotentials. + + + Copyright 2015 The Regents of the University of California + + This work is licensed under the Creative Commons Attribution-ShareAlike + 4.0 International License. To view a copy of this license, visit + http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to + Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. + + This pseudopotential is part of the Schlipf-Gygi norm-conserving + pseudopotential library. Its construction parameters were tuned to + reproduce materials of a training set with very high accuracy and + should be suitable as a general purpose pseudopotential to treat a + variety of different compounds. For details of the construction and + testing of the pseudopotential please refer to: + + M. Schlipf, F. Gygi, Comp. Phys. Comm. 196, 36 (2015) + http://dx.doi.org/10.1016/j.cpc.2015.05.011 + + We kindly ask that you include this reference in all publications + associated to this pseudopotential. + + + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + Al 13.00 1 4 4 upf +# +# n l f energy (Ha) + 1 0 2.00 + 2 0 2.00 + 2 1 6.00 + 3 0 2.00 + 3 1 1.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 1 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.29657 -3.97500 5 8 10.30030 + 1 2.41091 -2.55934 5 8 7.02214 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 0.93955 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 3.69008 + 1 2 2.45967 +# +# MODEL CORE CHARGE +# icmod, fcfact + 0 0.00000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -5.00 3.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 0 +# nvcnf +# n l f + + + + + + + + + 0.0000 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 + 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300 0.1400 0.1500 + 0.1600 0.1700 0.1800 0.1900 0.2000 0.2100 0.2200 0.2300 + 0.2400 0.2500 0.2600 0.2700 0.2800 0.2900 0.3000 0.3100 + 0.3200 0.3300 0.3400 0.3500 0.3600 0.3700 0.3800 0.3900 + 0.4000 0.4100 0.4200 0.4300 0.4400 0.4500 0.4600 0.4700 + 0.4800 0.4900 0.5000 0.5100 0.5200 0.5300 0.5400 0.5500 + 0.5600 0.5700 0.5800 0.5900 0.6000 0.6100 0.6200 0.6300 + 0.6400 0.6500 0.6600 0.6700 0.6800 0.6900 0.7000 0.7100 + 0.7200 0.7300 0.7400 0.7500 0.7600 0.7700 0.7800 0.7900 + 0.8000 0.8100 0.8200 0.8300 0.8400 0.8500 0.8600 0.8700 + 0.8800 0.8900 0.9000 0.9100 0.9200 0.9300 0.9400 0.9500 + 0.9600 0.9700 0.9800 0.9900 1.0000 1.0100 1.0200 1.0300 + 1.0400 1.0500 1.0600 1.0700 1.0800 1.0900 1.1000 1.1100 + 1.1200 1.1300 1.1400 1.1500 1.1600 1.1700 1.1800 1.1900 + 1.2000 1.2100 1.2200 1.2300 1.2400 1.2500 1.2600 1.2700 + 1.2800 1.2900 1.3000 1.3100 1.3200 1.3300 1.3400 1.3500 + 1.3600 1.3700 1.3800 1.3900 1.4000 1.4100 1.4200 1.4300 + 1.4400 1.4500 1.4600 1.4700 1.4800 1.4900 1.5000 1.5100 + 1.5200 1.5300 1.5400 1.5500 1.5600 1.5700 1.5800 1.5900 + 1.6000 1.6100 1.6200 1.6300 1.6400 1.6500 1.6600 1.6700 + 1.6800 1.6900 1.7000 1.7100 1.7200 1.7300 1.7400 1.7500 + 1.7600 1.7700 1.7800 1.7900 1.8000 1.8100 1.8200 1.8300 + 1.8400 1.8500 1.8600 1.8700 1.8800 1.8900 1.9000 1.9100 + 1.9200 1.9300 1.9400 1.9500 1.9600 1.9700 1.9800 1.9900 + 2.0000 2.0100 2.0200 2.0300 2.0400 2.0500 2.0600 2.0700 + 2.0800 2.0900 2.1000 2.1100 2.1200 2.1300 2.1400 2.1500 + 2.1600 2.1700 2.1800 2.1900 2.2000 2.2100 2.2200 2.2300 + 2.2400 2.2500 2.2600 2.2700 2.2800 2.2900 2.3000 2.3100 + 2.3200 2.3300 2.3400 2.3500 2.3600 2.3700 2.3800 2.3900 + 2.4000 2.4100 2.4200 2.4300 2.4400 2.4500 2.4600 2.4700 + 2.4800 2.4900 2.5000 2.5100 2.5200 2.5300 2.5400 2.5500 + 2.5600 2.5700 2.5800 2.5900 2.6000 2.6100 2.6200 2.6300 + 2.6400 2.6500 2.6600 2.6700 2.6800 2.6900 2.7000 2.7100 + 2.7200 2.7300 2.7400 2.7500 2.7600 2.7700 2.7800 2.7900 + 2.8000 2.8100 2.8200 2.8300 2.8400 2.8500 2.8600 2.8700 + 2.8800 2.8900 2.9000 2.9100 2.9200 2.9300 2.9400 2.9500 + 2.9600 2.9700 2.9800 2.9900 3.0000 3.0100 3.0200 3.0300 + 3.0400 3.0500 3.0600 3.0700 3.0800 3.0900 3.1000 3.1100 + 3.1200 3.1300 3.1400 3.1500 3.1600 3.1700 3.1800 3.1900 + 3.2000 3.2100 3.2200 3.2300 3.2400 3.2500 3.2600 3.2700 + 3.2800 3.2900 3.3000 3.3100 3.3200 3.3300 3.3400 3.3500 + 3.3600 3.3700 3.3800 3.3900 3.4000 3.4100 3.4200 3.4300 + 3.4400 3.4500 3.4600 3.4700 3.4800 3.4900 3.5000 3.5100 + 3.5200 3.5300 3.5400 3.5500 3.5600 3.5700 3.5800 3.5900 + 3.6000 3.6100 3.6200 3.6300 3.6400 3.6500 3.6600 3.6700 + 3.6800 3.6900 3.7000 3.7100 3.7200 3.7300 3.7400 3.7500 + 3.7600 3.7700 3.7800 3.7900 3.8000 3.8100 3.8200 3.8300 + 3.8400 3.8500 3.8600 3.8700 3.8800 3.8900 3.9000 3.9100 + 3.9200 3.9300 3.9400 3.9500 3.9600 3.9700 3.9800 3.9900 + 4.0000 4.0100 4.0200 4.0300 4.0400 4.0500 4.0600 4.0700 + 4.0800 4.0900 4.1000 4.1100 4.1200 4.1300 4.1400 4.1500 + 4.1600 4.1700 4.1800 4.1900 4.2000 4.2100 4.2200 4.2300 + 4.2400 4.2500 4.2600 4.2700 4.2800 4.2900 4.3000 4.3100 + 4.3200 4.3300 4.3400 4.3500 4.3600 4.3700 4.3800 4.3900 + 4.4000 4.4100 4.4200 4.4300 4.4400 4.4500 4.4600 4.4700 + 4.4800 4.4900 4.5000 4.5100 4.5200 4.5300 4.5400 4.5500 + 4.5600 4.5700 4.5800 4.5900 4.6000 4.6100 4.6200 4.6300 + 4.6400 4.6500 4.6600 4.6700 4.6800 4.6900 4.7000 4.7100 + 4.7200 4.7300 4.7400 4.7500 4.7600 4.7700 4.7800 4.7900 + 4.8000 4.8100 4.8200 4.8300 4.8400 4.8500 4.8600 4.8700 + 4.8800 4.8900 4.9000 4.9100 4.9200 4.9300 4.9400 4.9500 + 4.9600 4.9700 4.9800 4.9900 5.0000 5.0100 5.0200 5.0300 + 5.0400 5.0500 5.0600 5.0700 5.0800 5.0900 5.1000 5.1100 + 5.1200 5.1300 5.1400 5.1500 5.1600 5.1700 5.1800 5.1900 + 5.2000 5.2100 5.2200 5.2300 5.2400 5.2500 5.2600 5.2700 + 5.2800 5.2900 5.3000 5.3100 5.3200 5.3300 5.3400 5.3500 + 5.3600 5.3700 5.3800 5.3900 5.4000 5.4100 5.4200 5.4300 + 5.4400 5.4500 5.4600 5.4700 5.4800 5.4900 5.5000 5.5100 + 5.5200 5.5300 5.5400 5.5500 5.5600 5.5700 5.5800 5.5900 + 5.6000 5.6100 5.6200 5.6300 5.6400 5.6500 5.6600 5.6700 + 5.6800 5.6900 5.7000 5.7100 5.7200 5.7300 5.7400 5.7500 + 5.7600 5.7700 5.7800 5.7900 5.8000 5.8100 5.8200 5.8300 + 5.8400 5.8500 5.8600 5.8700 5.8800 5.8900 5.9000 5.9100 + 5.9200 5.9300 5.9400 5.9500 5.9600 5.9700 5.9800 5.9900 + 6.0000 6.0100 + + + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 + + + + -4.5793174225E+01 -4.5788454271E+01 -4.5774276797E+01 -4.5750659428E+01 + -4.5717619792E+01 -4.5675182552E+01 -4.5623379390E+01 -4.5562248988E+01 + -4.5491837004E+01 -4.5412196044E+01 -4.5323385623E+01 -4.5225472132E+01 + -4.5118528788E+01 -4.5002635589E+01 -4.4877879255E+01 -4.4744353169E+01 + -4.4602157309E+01 -4.4451398177E+01 -4.4292188720E+01 -4.4124648245E+01 + -4.3948902327E+01 -4.3765082717E+01 -4.3573327237E+01 -4.3373779671E+01 + -4.3166589651E+01 -4.2951912547E+01 -4.2729909330E+01 -4.2500746455E+01 + -4.2264595727E+01 -4.2021634162E+01 -4.1772043851E+01 -4.1516011824E+01 + -4.1253729894E+01 -4.0985394533E+01 -4.0711206709E+01 -4.0431371752E+01 + -4.0146099200E+01 -3.9855602666E+01 -3.9560099675E+01 -3.9259811534E+01 + -3.8954963181E+01 -3.8645783041E+01 -3.8332502872E+01 -3.8015357622E+01 + -3.7694585273E+01 -3.7370426682E+01 -3.7043125420E+01 -3.6712927591E+01 + -3.6380081658E+01 -3.6044838254E+01 -3.5707449960E+01 -3.5368171082E+01 + -3.5027257428E+01 -3.4684966035E+01 -3.4341554884E+01 -3.3997282619E+01 + -3.3652408207E+01 -3.3307190596E+01 -3.2961888362E+01 -3.2616759283E+01 + -3.2272059999E+01 -3.1928045476E+01 -3.1584968662E+01 -3.1243079972E+01 + -3.0902626759E+01 -3.0563852936E+01 -3.0226998404E+01 -2.9892298452E+01 + -2.9559983380E+01 -2.9230277982E+01 -2.8903400893E+01 -2.8579564063E+01 + -2.8258972337E+01 -2.7941822884E+01 -2.7628304667E+01 -2.7318598034E+01 + -2.7012873867E+01 -2.6711293357E+01 -2.6414007425E+01 -2.6121156194E+01 + -2.5832868475E+01 -2.5549261252E+01 -2.5270439163E+01 -2.4996493981E+01 + -2.4727504090E+01 -2.4463533948E+01 -2.4204633551E+01 -2.3950837873E+01 + -2.3702166308E+01 -2.3458622083E+01 -2.3220191664E+01 -2.2986844139E+01 + -2.2758530585E+01 -2.2535183375E+01 -2.2316715573E+01 -2.2103021768E+01 + -2.1893987279E+01 -2.1689498489E+01 -2.1489442457E+01 -2.1293706326E+01 + -2.1102176634E+01 -2.0914738702E+01 -2.0731276196E+01 -2.0551670390E+01 + -2.0375799754E+01 -2.0203539748E+01 -2.0034762549E+01 -1.9869337083E+01 + -1.9707128683E+01 -1.9547999147E+01 -1.9391807463E+01 -1.9238410108E+01 + -1.9087661528E+01 -1.8939414588E+01 -1.8793522086E+01 -1.8649837370E+01 + -1.8508214910E+01 -1.8368512890E+01 -1.8230593513E+01 -1.8094323159E+01 + -1.7959575768E+01 -1.7826233921E+01 -1.7694187632E+01 -1.7563336319E+01 + -1.7433593958E+01 -1.7304883939E+01 -1.7177140271E+01 -1.7050316722E+01 + -1.6924377020E+01 -1.6799297378E+01 -1.6675076787E+01 -1.6551723315E+01 + -1.6429261334E+01 -1.6307737259E+01 -1.6187204514E+01 -1.6067738582E+01 + -1.5949430494E+01 -1.5832376776E+01 -1.5716700129E+01 -1.5602525316E+01 + -1.5489990378E+01 -1.5379242195E+01 -1.5270429836E+01 -1.5163707747E+01 + -1.5059226717E+01 -1.4957136513E+01 -1.4857570026E+01 -1.4760663767E+01 + -1.4666511197E+01 -1.4575211522E+01 -1.4486807710E+01 -1.4401324722E+01 + -1.4318744132E+01 -1.4238980817E+01 -1.4161938010E+01 -1.4087395431E+01 + -1.4015161855E+01 -1.3944887653E+01 -1.3876268641E+01 -1.3808878106E+01 + -1.3742319487E+01 -1.3676155917E+01 -1.3609972047E+01 -1.3543392863E+01 + -1.3476076459E+01 -1.3407777571E+01 -1.3338297766E+01 -1.3267560877E+01 + -1.3195533856E+01 -1.3122304307E+01 -1.3047978845E+01 -1.2972761216E+01 + -1.2896845774E+01 -1.2820482588E+01 -1.2743900257E+01 -1.2667329709E+01 + -1.2590993198E+01 -1.2515060914E+01 -1.2439723914E+01 -1.2365079394E+01 + -1.2291274968E+01 -1.2218347544E+01 -1.2146390771E+01 -1.2075410030E+01 + -1.2005443278E+01 -1.1936484441E+01 -1.1868531365E+01 -1.1801570383E+01 + -1.1735578217E+01 -1.1670534625E+01 -1.1606409500E+01 -1.1543176908E+01 + -1.1480807926E+01 -1.1419273524E+01 -1.1358547699E+01 -1.1298603110E+01 + -1.1239414754E+01 -1.1180959916E+01 -1.1123213929E+01 -1.1066158555E+01 + -1.1009771504E+01 -1.0954036114E+01 -1.0898934548E+01 -1.0844449966E+01 + -1.0790568699E+01 -1.0737274132E+01 -1.0684554834E+01 -1.0632397012E+01 + -1.0580788619E+01 -1.0529718843E+01 -1.0479175385E+01 -1.0429149053E+01 + -1.0379629099E+01 -1.0330605943E+01 -1.0282070767E+01 -1.0234013649E+01 + -1.0186426820E+01 -1.0139301497E+01 -1.0092629437E+01 -1.0046403192E+01 + -1.0000614450E+01 -9.9552562574E+00 -9.9103213175E+00 -9.8658021883E+00 + -9.8216925418E+00 -9.7779853200E+00 -9.7346741018E+00 -9.6917528630E+00 + -9.6492148919E+00 -9.6070546837E+00 -9.5652664266E+00 -9.5238440186E+00 + -9.4827825370E+00 -9.4420764134E+00 -9.4017203379E+00 -9.3617097175E+00 + -9.3220393177E+00 -9.2827045571E+00 -9.2437011572E+00 -9.2050242481E+00 + -9.1666698740E+00 -9.1286340414E+00 -9.0909123106E+00 -9.0535011176E+00 + -9.0163966698E+00 -8.9795949149E+00 -8.9430924504E+00 -8.9068856197E+00 + -8.8709706212E+00 -8.8353441902E+00 -8.8000028322E+00 -8.7649429429E+00 + -8.7301613994E+00 -8.6956548633E+00 -8.6614198846E+00 -8.6274535016E+00 + -8.5937525419E+00 -8.5603136998E+00 -8.5271341568E+00 -8.4942109030E+00 + -8.4615407433E+00 -8.4291210081E+00 -8.3969488321E+00 -8.3650211679E+00 + -8.3333354339E+00 -8.3018889174E+00 -8.2706787325E+00 -8.2397023489E+00 + -8.2089572110E+00 -8.1784405968E+00 -8.1481500047E+00 -8.1180830358E+00 + -8.0882371342E+00 -8.0586098070E+00 -8.0291988103E+00 -8.0000017559E+00 + -7.9710161441E+00 -7.9422398810E+00 -7.9136707096E+00 -7.8853062259E+00 + -7.8571443658E+00 -7.8291830147E+00 -7.8014199340E+00 -7.7738530065E+00 + -7.7464802780E+00 -7.7192996806E+00 -7.6923090311E+00 -7.6655065287E+00 + -7.6388902172E+00 -7.6124580244E+00 -7.5862081118E+00 -7.5601386729E+00 + -7.5342478061E+00 -7.5085335693E+00 -7.4829943156E+00 -7.4576282669E+00 + -7.4324335284E+00 -7.4074084470E+00 -7.3825513770E+00 -7.3578605956E+00 + -7.3333343157E+00 -7.3089710527E+00 -7.2847691902E+00 -7.2607270198E+00 + -7.2368429926E+00 -7.2131156354E+00 -7.1895434072E+00 -7.1661246255E+00 + -7.1428579503E+00 -7.1197419205E+00 -7.0967750240E+00 -7.0739557449E+00 + -7.0512827904E+00 -7.0287547599E+00 -7.0063701691E+00 -6.9841276710E+00 + -6.9620259959E+00 -6.9400638084E+00 -6.9182396593E+00 -6.8965523464E+00 + -6.8750006260E+00 -6.8535832250E+00 -6.8322987355E+00 -6.8111460762E+00 + -6.7901240341E+00 -6.7692313755E+00 -6.7484667982E+00 -6.7278292605E+00 + -6.7073176048E+00 -6.6869306406E+00 -6.6666671559E+00 -6.6465261477E+00 + -6.6265065128E+00 -6.6066071075E+00 -6.5868267918E+00 -6.5671646050E+00 + -6.5476194954E+00 -6.5281903708E+00 -6.5088761451E+00 -6.4896759038E+00 + -6.4705886441E+00 -6.4516133289E+00 -6.4327489098E+00 -6.4139945219E+00 + -6.3953492088E+00 -6.3768119923E+00 -6.3583818464E+00 -6.3400579585E+00 + -6.3218394170E+00 -6.3037253054E+00 -6.2857146065E+00 -6.2678065624E+00 + -6.2500003039E+00 -6.2322949620E+00 -6.2146895692E+00 -6.1971833707E+00 + -6.1797755553E+00 -6.1624652945E+00 -6.1452516893E+00 -6.1281339595E+00 + -6.1111113599E+00 -6.0941831004E+00 -6.0773483541E+00 -6.0606063040E+00 + -6.0439562720E+00 -6.0273975048E+00 -6.0109292492E+00 -5.9945506474E+00 + -5.9782610829E+00 -5.9620598393E+00 -5.9459461983E+00 -5.9299193785E+00 + -5.9139787003E+00 -5.8981235231E+00 -5.8823531622E+00 -5.8666669171E+00 + -5.8510640359E+00 -5.8355439529E+00 -5.8201060154E+00 -5.8047495705E+00 + -5.7894738992E+00 -5.7742783981E+00 -5.7591624809E+00 -5.7441255252E+00 + -5.7291668988E+00 -5.7142859036E+00 -5.6994820342E+00 -5.6847546971E+00 + -5.6701032988E+00 -5.6555271981E+00 -5.6410258128E+00 -5.6265986270E+00 + -5.6122450750E+00 -5.5979645910E+00 -5.5837565316E+00 -5.5696204135E+00 + -5.5555557140E+00 -5.5415618937E+00 -5.5276384028E+00 -5.5137846338E+00 + -5.5000001533E+00 -5.4862844471E+00 -5.4726370009E+00 -5.4590572697E+00 + -5.4455447177E+00 -5.4320989146E+00 -5.4187193700E+00 -5.4054055938E+00 + -5.3921570507E+00 -5.3789732622E+00 -5.3658538052E+00 -5.3527982121E+00 + -5.3398060155E+00 -5.3268766948E+00 -5.3140098151E+00 -5.3012049642E+00 + -5.2884616967E+00 -5.2757795668E+00 -5.2631580727E+00 -5.2505968098E+00 + -5.2380953817E+00 -5.2256533635E+00 -5.2132703304E+00 -5.2009458033E+00 + -5.1886793955E+00 -5.1764707305E+00 -5.1643194032E+00 -5.1522250085E+00 + -5.1401870938E+00 -5.1282052788E+00 -5.1162792108E+00 -5.1044085035E+00 + -5.0925927708E+00 -5.0808315898E+00 -5.0691245763E+00 -5.0574714045E+00 + -5.0458717063E+00 -5.0343251134E+00 -5.0228312366E+00 -5.0113896772E+00 + -5.0000001400E+00 -4.9886622737E+00 -4.9773757274E+00 -4.9661401487E+00 + -4.9549551157E+00 -4.9438203658E+00 -4.9327355642E+00 -4.9217003762E+00 + -4.9107144672E+00 -4.8997774511E+00 -4.8888890330E+00 -4.8780489159E+00 + -4.8672567807E+00 -4.8565123083E+00 -4.8458151563E+00 -4.8351649849E+00 + -4.8245615383E+00 -4.8140045122E+00 -4.8034936025E+00 -4.7930285048E+00 + -4.7826088542E+00 -4.7722344106E+00 -4.7619048927E+00 -4.7516200103E+00 + -4.7413794734E+00 -4.7311829666E+00 -4.7210301867E+00 -4.7109209003E+00 + -4.7008548308E+00 -4.6908317017E+00 -4.6808512365E+00 -4.6709131059E+00 + -4.6610170820E+00 -4.6511629151E+00 -4.6413503415E+00 -4.6315790976E+00 + -4.6218489098E+00 -4.6121594711E+00 -4.6025105849E+00 -4.5929019999E+00 + -4.5833334646E+00 -4.5738047277E+00 -4.5643155095E+00 -4.5548655562E+00 + -4.5454546636E+00 -4.5360825922E+00 -4.5267491023E+00 -4.5174539542E+00 + -4.5081968671E+00 -4.4989776284E+00 -4.4897960308E+00 -4.4806518458E+00 + -4.4715448449E+00 -4.4624747996E+00 -4.4534414324E+00 -4.4444445607E+00 + -4.4354839781E+00 -4.4265594668E+00 -4.4176708089E+00 -4.4088177866E+00 + -4.4000001296E+00 -4.3912176749E+00 -4.3824702213E+00 -4.3737575609E+00 + -4.3650794862E+00 -4.3564357893E+00 -4.3478262108E+00 -4.3392505977E+00 + -4.3307087577E+00 -4.3222004926E+00 -4.3137256045E+00 -4.3052838953E+00 + -4.2968751196E+00 -4.2884991254E+00 -4.2801557329E+00 -4.2718447532E+00 + -4.2635659975E+00 -4.2553192771E+00 -4.2471043640E+00 -4.2389210984E+00 + -4.2307693165E+00 -4.2226488383E+00 -4.2145594838E+00 -4.2065010729E+00 + -4.1984733984E+00 -4.1904762847E+00 -4.1825095871E+00 -4.1745731339E+00 + -4.1666667536E+00 -4.1587902745E+00 -4.1509435132E+00 -4.1431262707E+00 + -4.1353384242E+00 -4.1275798099E+00 -4.1198502644E+00 -4.1121496240E+00 + -4.1044777250E+00 -4.0968343597E+00 -4.0892194079E+00 -4.0816327208E+00 + -4.0740741423E+00 -4.0665435164E+00 -4.0590406871E+00 -4.0515654768E+00 + -4.0441177254E+00 -4.0366973128E+00 -4.0293040903E+00 -4.0219379092E+00 + -4.0145986208E+00 -4.0072860764E+00 -4.0000000825E+00 -3.9927405372E+00 + -3.9855073028E+00 -3.9783002375E+00 -3.9711191995E+00 -3.9639640470E+00 + -3.9568346222E+00 -3.9497307693E+00 -3.9426523852E+00 -3.9355993345E+00 + -3.9285714822E+00 -3.9215686930E+00 -3.9145908318E+00 -3.9076377324E+00 + -3.9007092786E+00 -3.8938053575E+00 -3.8869258402E+00 -3.8800705978E+00 + -3.8732395014E+00 -3.8664324222E+00 -3.8596491897E+00 -3.8528897179E+00 + -3.8461538879E+00 -3.8394415767E+00 -3.8327526616E+00 -3.8260870197E+00 + -3.8194445241E+00 -3.8128250158E+00 -3.8062284180E+00 -3.7996546136E+00 + -3.7931034854E+00 -3.7865749162E+00 -3.7800687890E+00 -3.7735849788E+00 + -3.7671233412E+00 -3.7606838002E+00 -3.7542662442E+00 -3.7478705615E+00 + -3.7414966404E+00 -3.7351443691E+00 -3.7288136282E+00 -3.7225042799E+00 + -3.7162162523E+00 -3.7099494390E+00 -3.7037037335E+00 -3.6974790292E+00 + -3.6912752197E+00 -3.6850921941E+00 -3.6789298138E+00 -3.6727880140E+00 + -3.6666666933E+00 -3.6605657501E+00 + + + + 0.0000000000E+00 8.1959788337E-02 1.6389680452E-01 2.4578292762E-01 + 3.2757945385E-01 4.0923209012E-01 4.9066628384E-01 5.7178299213E-01 + 6.5245498564E-01 7.3252377312E-01 8.1179722184E-01 8.9004793688E-01 + 9.6701244883E-01 1.0423912454E+00 1.1158496674E+00 1.1870196733E+00 + 1.2555024628E+00 1.3208719323E+00 1.3826789204E+00 1.4404561895E+00 + 1.4937240648E+00 1.5419966682E+00 1.5847886227E+00 1.6216221501E+00 + 1.6520344202E+00 1.6755850973E+00 1.6918638179E+00 1.7004976921E+00 + 1.7011584600E+00 1.6935693577E+00 1.6775114916E+00 1.6528296167E+00 + 1.6194371715E+00 1.5773206519E+00 1.5265428914E+00 1.4672455267E+00 + 1.3996503949E+00 1.3240598869E+00 1.2408561029E+00 1.1504990593E+00 + 1.0535236873E+00 9.5053575514E-01 8.4220679309E-01 7.2926802100E-01 + 6.1250336841E-01 4.9274167614E-01 3.7084818278E-01 2.4771546294E-01 + 1.2425386707E-01 1.3813194463E-03 -1.1998657264E-01 -2.3894639470E-01 + -3.5461775436E-01 -4.6615303210E-01 -5.7274544611E-01 -6.7364109027E-01 + -7.6814360571E-01 -8.5562532978E-01 -9.3553062351E-01 -1.0073854605E+00 + -1.0707974255E+00 -1.1254649411E+00 -1.1711748262E+00 -1.2078060192E+00 + -1.2353302905E+00 -1.2538089488E+00 -1.2633921704E+00 -1.2643161462E+00 + -1.2568972238E+00 -1.2415270112E+00 -1.2186667307E+00 -1.1888397354E+00 + -1.1526235486E+00 -1.1106417836E+00 -1.0635554309E+00 -1.0120542028E+00 + -9.5684640407E-01 -8.9865036693E-01 -8.3818527115E-01 -7.7616221762E-01 + -7.1327568510E-01 -6.5019544375E-01 -5.8755902571E-01 -5.2596484036E-01 + -4.6596600774E-01 -4.0806496843E-01 -3.5270891279E-01 -3.0028605589E-01 + -2.5112276889E-01 -2.0548156076E-01 -1.6355988888E-01 -1.2548976165E-01 + -9.1338081356E-02 -6.1107635535E-02 -3.4738766420E-02 -1.2113182579E-02 + 6.9366425281E-03 2.2612724892E-02 3.5145144523E-02 4.4786293794E-02 + 5.1804938121E-02 5.6480406614E-02 5.9097799689E-02 5.9941271770E-02 + 5.9288880955E-02 5.7409099658E-02 5.4556678865E-02 5.0970738549E-02 + 4.6869448638E-02 4.2446513423E-02 3.7873610309E-02 3.3298679834E-02 + 2.8847425361E-02 2.4614620657E-02 2.0675219413E-02 1.7083365056E-02 + 1.3873528814E-02 1.1058091993E-02 8.6372297172E-03 6.5992973718E-03 + 4.9200658773E-03 3.5689959976E-03 2.5113059388E-03 1.7086013343E-03 + 1.1227305605E-03 7.1611571407E-04 4.5225014442E-04 2.9869025096E-04 + 2.2376348042E-04 2.0808442838E-04 1.5295374786E-04 2.3398705055E-05 + -1.2623857798E-05 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 + + + 0.0000000000E+00 -7.7175952907E-03 -1.4916854342E-02 -2.1086880496E-02 + -2.5731546758E-02 -2.8376608547E-02 -2.8576494606E-02 -2.5920676461E-02 + -2.0039523233E-02 -1.0609556503E-02 2.6419710152E-03 1.9933238862E-02 + 4.1424818823E-02 6.7217473921E-02 9.7350826557E-02 1.3180291127E-01 + 1.7049061644E-01 2.1327100328E-01 2.5994347910E-01 3.1025278862E-01 + 3.6389277025E-01 4.2051082780E-01 4.7971303013E-01 5.4106977360E-01 + 6.0412189959E-01 6.6838722019E-01 7.3336724280E-01 7.9855416069E-01 + 8.6343781125E-01 9.2751264008E-01 9.9028450228E-01 1.0512772086E+00 + 1.1100386765E+00 1.1661467811E+00 1.2192144736E+00 1.2688944425E+00 + 1.3148830711E+00 1.3569237057E+00 1.3948090182E+00 1.4283828005E+00 + 1.4575408219E+00 1.4822308453E+00 1.5024519230E+00 1.5182528874E+00 + 1.5297301022E+00 1.5370245181E+00 1.5403180955E+00 1.5398296691E+00 + 1.5358103451E+00 1.5285384000E+00 1.5183139567E+00 1.5054535589E+00 + 1.4902842587E+00 1.4731378880E+00 1.4543460523E+00 1.4342333766E+00 + 1.4131138878E+00 1.3912845692E+00 1.3690225108E+00 1.3465791146E+00 + 1.3241790763E+00 1.3020147293E+00 1.2802464515E+00 1.2589999252E+00 + 1.2383649827E+00 1.2183967307E+00 1.1991152464E+00 1.1805064719E+00 + 1.1625248997E+00 1.1450957228E+00 1.1281173437E+00 1.1114649877E+00 + 1.0949946488E+00 1.0785470304E+00 1.0619518542E+00 1.0450321853E+00 + 1.0276093245E+00 1.0095071212E+00 9.9055641022E-01 9.7059928504E-01 + 9.4949311358E-01 9.2711424462E-01 9.0336134563E-01 8.7815832242E-01 + 8.5145678087E-01 8.2323800106E-01 7.9351440554E-01 7.6233051397E-01 + 7.2976338788E-01 6.9592258017E-01 6.6094961455E-01 6.2501703037E-01 + 5.8832703790E-01 5.5110988669E-01 5.1362180519E-01 4.7614111278E-01 + 4.3895065095E-01 4.0231969623E-01 3.6650170831E-01 3.3173181093E-01 + 2.9822472583E-01 2.6617282323E-01 2.3574556921E-01 2.0708504676E-01 + 1.8030598672E-01 1.5549603366E-01 1.3271474535E-01 1.1199467316E-01 + 9.3339304043E-02 7.6723714857E-02 6.2098903174E-02 4.9392524523E-02 + 3.8511312292E-02 2.9340007125E-02 2.1749511592E-02 1.5598113229E-02 + 1.0733579834E-02 6.9985976130E-03 4.2344967945E-03 2.2819866171E-03 + 9.8836865576E-04 2.1129921025E-04 -1.8286643702E-04 -3.1447636558E-04 + -2.8064364907E-04 -1.6485866071E-04 -3.3670708672E-05 7.7242412191E-05 + 1.4571537069E-04 1.8119691635E-04 1.3914527860E-04 2.1967252687E-05 + -1.1290354030E-05 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 + + + 0.0000000000E+00 -9.9945741232E-05 -3.9560031198E-04 -8.7445007377E-04 + -1.5157531248E-03 -2.2907097090E-03 -3.1626991244E-03 -4.0875814821E-03 + -5.0140622112E-03 -5.8841167683E-03 -6.6334725893E-03 -7.1921449151E-03 + -7.4850227480E-03 -7.4325008418E-03 -6.9511532780E-03 -5.9544439475E-03 + -4.3534688675E-03 -2.0577252197E-03 1.0240984534E-03 4.9833163186E-03 + 9.9104295560E-03 1.5894306215E-02 2.3021363142E-02 3.1374755220E-02 + 4.1033578177E-02 5.2072090186E-02 6.4558958812E-02 7.8556537617E-02 + 9.4120178816E-02 1.1129758635E-01 1.3012821457E-01 1.5064271702E-01 + 1.7286244865E-01 1.9679902857E-01 2.2245396123E-01 2.4981832421E-01 + 2.7887252334E-01 3.0958611888E-01 3.4191771634E-01 3.7581493977E-01 + 4.1121447434E-01 4.4804217871E-01 4.8621327613E-01 5.2563261712E-01 + 5.6619501398E-01 6.0778564550E-01 6.5028052974E-01 6.9354705693E-01 + 7.3744458996E-01 7.8182514807E-01 8.2653409566E-01 8.7141088548E-01 + 9.1628993048E-01 9.6100144068E-01 1.0053722068E+00 1.0492267463E+00 + 1.0923879728E+00 1.1346784219E+00 1.1759209742E+00 1.2159401209E+00 + 1.2545625893E+00 1.2916187470E+00 1.3269431848E+00 1.3603758483E+00 + 1.3917630209E+00 1.4209580136E+00 1.4478221533E+00 1.4722256652E+00 + 1.4940482806E+00 1.5131799734E+00 1.5295217172E+00 1.5429860473E+00 + 1.5534975253E+00 1.5609932333E+00 1.5654231610E+00 1.5667505007E+00 + 1.5649519402E+00 1.5600177460E+00 1.5519518544E+00 1.5407718645E+00 + 1.5265089452E+00 1.5092076591E+00 1.4889257061E+00 1.4657335853E+00 + 1.4397141783E+00 1.4109622556E+00 1.3795839089E+00 1.3456959119E+00 + 1.3094250127E+00 1.2709071634E+00 1.2302866879E+00 1.1877153964E+00 + 1.1433516483E+00 1.0973593749E+00 1.0499070494E+00 1.0011667239E+00 + 9.5131123738E-01 9.0051243413E-01 8.4894081664E-01 7.9676488342E-01 + 7.4415063150E-01 6.9126107080E-01 6.3825619210E-01 5.8529138955E-01 + 5.3251756215E-01 4.8008106322E-01 4.2812307808E-01 3.7677966204E-01 + 3.2618054523E-01 2.7644862879E-01 2.2770078076E-01 1.8004723701E-01 + 1.3359184254E-01 8.8429474919E-02 4.4648519264E-02 2.3301135114E-03 + -3.8451993596E-02 -7.7633161320E-02 -1.1515564636E-01 -1.5096888387E-01 + -1.8503104826E-01 -2.1730791748E-01 -2.4777221308E-01 -2.7640431165E-01 + -3.0319233793E-01 -3.2813076609E-01 -3.5122097694E-01 -3.7247096173E-01 + -3.9189436432E-01 -4.0951091419E-01 -4.2534488669E-01 -4.3942561004E-01 + -4.5178693326E-01 -4.6246509387E-01 -4.7150113564E-01 -4.7893759190E-01 + -4.8481857411E-01 -4.8919295626E-01 -4.9210676034E-01 -4.9361023819E-01 + -4.9375409540E-01 -4.9258812052E-01 -4.9016680037E-01 -4.8654128055E-01 + -4.8176718158E-01 -4.7590038102E-01 -4.6899787912E-01 -4.6112073751E-01 + -4.5232902827E-01 -4.4268815818E-01 -4.3226315395E-01 -4.2112269111E-01 + -4.0933692057E-01 -3.9697638130E-01 -3.8411532119E-01 -3.7082386619E-01 + -3.5717873644E-01 -3.4324733042E-01 -3.2910537333E-01 -3.1481669456E-01 + -3.0045212655E-01 -2.8607106868E-01 -2.7173708238E-01 -2.5750367759E-01 + -2.4342593838E-01 -2.2955040551E-01 -2.1592329726E-01 -2.0258351882E-01 + -1.8956864256E-01 -1.7690966706E-01 -1.6463610250E-01 -1.5277111163E-01 + -1.4133688289E-01 -1.3034908904E-01 -1.1982335088E-01 -1.0976841093E-01 + -1.0019400584E-01 -9.1102675466E-02 -8.2498843713E-02 -7.4379711613E-02 + -6.6744837374E-02 -5.9587158080E-02 -5.2901396754E-02 -4.6677544158E-02 + -4.0905749075E-02 -3.5573783526E-02 -3.0668209988E-02 -2.6174638782E-02 + -2.2077320689E-02 -1.8359626189E-02 -1.5004818525E-02 -1.1993901594E-02 + -9.3100303837E-03 -6.9329121560E-03 -4.8450842795E-03 -3.0267586224E-03 + -1.4590651946E-03 -1.2421266598E-04 9.9844507624E-04 1.9242844757E-03 + 2.6738537500E-03 3.2621653424E-03 3.7066144692E-03 4.0238714604E-03 + 4.2268163111E-03 4.3337759130E-03 4.3545668729E-03 4.3040747398E-03 + 4.1939566699E-03 4.0336342835E-03 3.8366308830E-03 3.6086533374E-03 + 3.3600764424E-03 3.0980594804E-03 2.8276771418E-03 2.5578082615E-03 + 2.2903823604E-03 2.0308352750E-03 1.7829911670E-03 1.5480999508E-03 + 1.3301987527E-03 1.1293525376E-03 9.4656834312E-04 7.8328267224E-04 + 6.3832556782E-04 5.1194173150E-04 4.0340561061E-04 3.1134588957E-04 + 2.3498049038E-04 1.7273223574E-04 1.2308531443E-04 8.4466871588E-05 + 5.5468983325E-05 3.4361185347E-05 1.9569994672E-05 1.0087586140E-05 + 4.1587949536E-06 8.4730539255E-07 -4.0457636654E-07 -1.0986793689E-06 + -1.2459491952E-06 -9.2168416541E-07 -6.4347904540E-07 -3.1381847554E-07 + 1.6418605726E-09 5.8064837812E-08 4.4046055656E-08 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 + + + 0.0000000000E+00 2.3473144743E-04 9.3978935350E-04 2.1177458006E-03 + 3.7728257410E-03 5.9108148403E-03 8.5389316960E-03 1.1665665657E-02 + 1.5300581804E-02 1.9454094970E-02 2.4137214993E-02 2.9361265674E-02 + 3.5137580187E-02 4.1477175938E-02 4.8390412106E-02 5.5886633240E-02 + 6.3973802576E-02 7.2658128719E-02 8.1943689618E-02 9.1832057686E-02 + 1.0232193013E-01 1.1340876835E-01 1.2508445054E-01 1.3733694131E-01 + 1.5014998218E-01 1.6350280681E-01 1.7736988415E-01 1.9172069375E-01 + 2.0651953526E-01 2.2172537608E-01 2.3729173945E-01 2.5316663539E-01 + 2.6929253566E-01 2.8560639842E-01 3.0203973685E-01 3.1851873963E-01 + 3.3496444078E-01 3.5129294089E-01 3.6741567203E-01 3.8323972110E-01 + 3.9866819739E-01 4.1360064373E-01 4.2793349734E-01 4.4156059231E-01 + 4.5437370253E-01 4.6626312197E-01 4.7711827907E-01 4.8682837783E-01 + 4.9528306943E-01 5.0237316183E-01 5.0799131236E-01 5.1203273816E-01 + 5.1439598694E-01 5.1498365821E-01 5.1370307399E-01 5.1046713457E-01 + 5.0519486974E-01 4.9781227632E-01 4.8825284902E-01 4.7645835944E-01 + 4.6237928701E-01 4.4597557094E-01 4.2721695957E-01 4.0608355463E-01 + 3.8256623348E-01 3.5666693805E-01 3.2839900562E-01 2.9778739082E-01 + 2.6486878623E-01 2.2969172089E-01 1.9231655823E-01 1.5281540433E-01 + 1.1127196706E-01 6.7781320239E-02 2.2449589342E-02 -2.4606399304E-02 + -7.3259712313E-02 -1.2337376689E-01 -1.7480297607E-01 -2.2739345818E-01 + -2.8098381332E-01 -3.3540596893E-01 -3.9048609077E-01 -4.4604555536E-01 + -5.0190197939E-01 -5.5787030140E-01 -6.1376391058E-01 -6.6939581712E-01 + -7.2457985848E-01 -7.7913193545E-01 -8.3287127169E-01 -8.8562169027E-01 + -9.3721290067E-01 -9.8748179707E-01 -1.0362737300E+00 -1.0834432764E+00 + -1.1288533943E+00 -1.1723733832E+00 -1.2138791736E+00 -1.2532538460E+00 + -1.2903880678E+00 -1.3251804953E+00 -1.3575379316E+00 -1.3873762280E+00 + -1.4146202902E+00 -1.4392041677E+00 -1.4610713935E+00 -1.4801750180E+00 + -1.4964781344E+00 -1.5099539804E+00 -1.5205855875E+00 -1.5283659736E+00 + -1.5332980959E+00 -1.5353952942E+00 -1.5346804782E+00 -1.5311862536E+00 + -1.5249549122E+00 -1.5160379684E+00 -1.5044958200E+00 -1.4903978412E+00 + -1.4738214928E+00 -1.4548516999E+00 -1.4335811137E+00 -1.4101094271E+00 + -1.3845410012E+00 -1.3569863736E+00 -1.3275617315E+00 -1.2963840341E+00 + -1.2635747891E+00 -1.2292587253E+00 -1.1935571827E+00 -1.1565948216E+00 + -1.1184951743E+00 -1.0793757950E+00 -1.0393570420E+00 -9.9855161617E-01 + -9.5706768190E-01 -9.1501560887E-01 -8.7249185934E-01 -8.2959565947E-01 + -7.8642043018E-01 -7.4305414195E-01 -6.9958717760E-01 -6.5610269483E-01 + -6.1268736121E-01 -5.6942628572E-01 -5.2640623485E-01 -4.8371616181E-01 + -4.4144677760E-01 -3.9969189463E-01 -3.5854728903E-01 -3.1811069556E-01 + -2.7848167142E-01 -2.3975796567E-01 -2.0204019809E-01 -1.6542001159E-01 + -1.2999526555E-01 -9.5845740202E-02 -6.3059876657E-02 -3.1703203855E-02 + -1.8478069897E-03 2.6456388633E-02 5.3157312817E-02 7.8222294671E-02 + 1.0162022624E-01 1.2333624746E-01 1.4335935819E-01 1.6169204316E-01 + 1.7834145331E-01 1.9332609886E-01 2.0666887111E-01 2.1840235270E-01 + 2.2856277217E-01 2.3719441418E-01 2.4434470705E-01 2.5006702838E-01 + 2.5441823366E-01 2.5745807803E-01 2.5925143176E-01 2.5986170558E-01 + 2.5936066275E-01 2.5781313365E-01 2.5529563060E-01 2.5187401911E-01 + 2.4762567618E-01 2.4261845523E-01 2.3692721571E-01 2.3062201653E-01 + 2.2377226232E-01 2.1645046611E-01 2.0871801154E-01 2.0064985720E-01 + 1.9229951254E-01 1.8373774650E-01 1.7501646743E-01 1.6619557601E-01 + 1.5732879776E-01 1.4846228171E-01 1.3965183306E-01 1.3093126852E-01 + 1.2235110638E-01 1.1394168184E-01 1.0573925716E-01 9.7776770635E-02 + 9.0074365687E-02 8.2666351382E-02 7.5562674454E-02 6.8785364645E-02 + 6.2347453467E-02 5.6255327952E-02 5.0523756717E-02 4.5149397336E-02 + 4.0137616957E-02 3.5486734122E-02 3.1190137804E-02 2.7246728723E-02 + 2.3643672271E-02 2.0372238964E-02 1.7421055170E-02 1.4775017024E-02 + 1.2420317981E-02 1.0340462914E-02 8.5182289126E-03 6.9356094255E-03 + 5.5753944786E-03 4.4175665075E-03 3.4440767234E-03 2.6378733749E-03 + 1.9768667837E-03 1.4468136594E-03 1.0304532927E-03 7.0724358018E-04 + 4.6709087668E-04 2.9297414211E-04 1.7010811352E-04 9.1216598523E-05 + 4.1230126412E-05 1.2498772302E-05 8.1912250875E-07 -5.7304560233E-06 + -7.4821006550E-06 -5.2773363344E-06 -3.8024302514E-06 -1.9122122872E-06 + 9.2792861288E-09 3.2816443312E-07 2.4893462946E-07 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 + + + 5.3707838603E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 -8.2930195943E-01 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 -6.5836757852E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 -4.6797927123E+00 + + + + + + 0.0000000000E+00 3.6337392512E-03 1.4532726686E-02 3.2690254089E-02 + 5.8095083688E-02 9.0731362153E-02 1.3057850042E-01 1.7761101960E-01 + 2.3179836335E-01 2.9310467717E-01 3.6148855530E-01 4.3690275613E-01 + 5.1929388710E-01 6.0860206053E-01 7.0476052195E-01 8.0769525292E-01 + 9.1732455075E-01 1.0335585876E+00 1.1562989524E+00 1.2854381786E+00 + 1.4208592623E+00 1.5624351747E+00 1.7100283733E+00 1.8634903182E+00 + 2.0226609977E+00 2.1873684690E+00 2.3574284220E+00 2.5326437698E+00 + 2.7128042747E+00 2.8976862147E+00 3.0870520986E+00 3.2806504354E+00 + 3.4782155630E+00 3.6794675480E+00 3.8841121546E+00 4.0918408942E+00 + 4.3023311599E+00 4.5152464500E+00 4.7302366781E+00 4.9469385892E+00 + 5.1649762707E+00 5.3839617584E+00 5.6034957507E+00 5.8231684219E+00 + 6.0425603366E+00 6.2612434633E+00 6.4787822832E+00 6.6947349849E+00 + 6.9086547535E+00 7.1200911721E+00 7.3285916360E+00 7.5337028366E+00 + 7.7349724152E+00 7.9319505675E+00 8.1241915721E+00 8.3112557863E+00 + 8.4927110052E+00 8.6681345343E+00 8.8371145884E+00 8.9992523726E+00 + 9.1541633151E+00 9.3014792651E+00 9.4408496187E+00 9.5719431028E+00 + 9.6944493238E+00 9.8080799314E+00 9.9125700903E+00 1.0007679760E+01 + 1.0093194629E+01 1.0168927143E+01 1.0234717464E+01 1.0290434168E+01 + 1.0335974800E+01 1.0371266368E+01 1.0396265673E+01 1.0410959508E+01 + 1.0415364647E+01 1.0409527749E+01 1.0393525104E+01 1.0367462228E+01 + 1.0331473323E+01 1.0285720597E+01 1.0230393446E+01 1.0165707519E+01 + 1.0091903652E+01 1.0009246696E+01 9.9180242353E+00 9.8185452072E+00 + 9.7111384364E+00 9.5961510889E+00 9.4739470582E+00 9.3449052926E+00 + 9.2094180770E+00 9.0678892777E+00 8.9207325646E+00 8.7683700317E+00 + 8.6112294809E+00 8.4497429486E+00 8.2843452989E+00 8.1154722690E+00 + 7.9435587681E+00 7.7690372271E+00 7.5923368874E+00 7.4138800648E+00 + 7.2340816365E+00 7.0533484206E+00 6.8720774257E+00 6.6906555240E+00 + 6.5094564964E+00 6.3288395036E+00 6.1491505419E+00 5.9707208962E+00 + 5.7938674803E+00 5.6188868212E+00 5.4460604926E+00 5.2756533163E+00 + 5.1079129335E+00 4.9430658776E+00 4.7813225332E+00 4.6228764242E+00 + 4.4679007281E+00 4.3165508358E+00 4.1689657220E+00 4.0252663456E+00 + 3.8855554730E+00 3.7499205335E+00 3.6184323546E+00 3.4911456193E+00 + 3.3681006701E+00 3.2493225176E+00 3.1348234429E+00 3.0246019824E+00 + 2.9186436753E+00 2.8169246302E+00 2.7194071560E+00 2.6260454034E+00 + 2.5367854140E+00 2.4515589197E+00 2.3702979672E+00 2.2929218291E+00 + 2.2193439190E+00 2.1494770076E+00 2.0832191146E+00 2.0204757977E+00 + 1.9611404784E+00 1.9051060938E+00 1.8522672026E+00 1.8025059353E+00 + 1.7557184211E+00 1.7117841216E+00 1.6705956276E+00 1.6320368440E+00 + 1.5959953992E+00 1.5623623163E+00 1.5310219477E+00 1.5018733788E+00 + 1.4747995986E+00 1.4497071160E+00 1.4264823982E+00 1.4050359478E+00 + 1.3852617971E+00 1.3670731484E+00 1.3503725061E+00 1.3350767537E+00 + 1.3210966541E+00 1.3083536863E+00 1.2967664067E+00 1.2862616781E+00 + 1.2767652268E+00 1.2682099288E+00 1.2605279717E+00 1.2536586994E+00 + 1.2475400254E+00 1.2421180367E+00 1.2373356593E+00 1.2331458190E+00 + 1.2294958038E+00 1.2263452962E+00 1.2236453955E+00 1.2213622815E+00 + 1.2194504458E+00 1.2178816542E+00 1.2166149560E+00 1.2156251607E+00 + 1.2148777815E+00 1.2143485156E+00 1.2140095293E+00 1.2138371121E+00 + 1.2138095524E+00 1.2139036413E+00 1.2141030896E+00 1.2143853120E+00 + 1.2147378237E+00 1.2151412592E+00 1.2155835681E+00 1.2160501540E+00 + 1.2165283430E+00 1.2170080212E+00 1.2174761507E+00 1.2179257517E+00 + 1.2183454395E+00 1.2187286550E+00 1.2190674121E+00 1.2193542786E+00 + 1.2195844911E+00 1.2197502235E+00 1.2198483732E+00 1.2198733400E+00 + 1.2198210656E+00 1.2196885929E+00 1.2194712638E+00 1.2191675791E+00 + 1.2187742775E+00 1.2182892598E+00 1.2177111876E+00 1.2170374526E+00 + 1.2162677177E+00 1.2154005329E+00 1.2144349485E+00 1.2133708105E+00 + 1.2122071235E+00 1.2109440931E+00 1.2095816422E+00 1.2081195667E+00 + 1.2065584875E+00 1.2048985591E+00 1.2031402985E+00 1.2012844650E+00 + 1.1993315328E+00 1.1972824616E+00 1.1951381338E+00 1.1928993789E+00 + 1.1905673346E+00 1.1881430440E+00 1.1856276106E+00 1.1830222548E+00 + 1.1803281860E+00 1.1775466610E+00 1.1746789772E+00 1.1717264817E+00 + 1.1686905067E+00 1.1655724200E+00 1.1623736766E+00 1.1590956410E+00 + 1.1557397436E+00 1.1523075175E+00 1.1488003414E+00 1.1452197002E+00 + 1.1415671671E+00 1.1378441391E+00 1.1340521336E+00 1.1301927496E+00 + 1.1262673905E+00 1.1222775883E+00 1.1182249603E+00 1.1141109034E+00 + 1.1099369471E+00 1.1057047233E+00 1.1014156105E+00 1.0970711187E+00 + 1.0926728944E+00 1.0882222862E+00 1.0837207811E+00 1.0791700051E+00 + 1.0745713035E+00 1.0699261228E+00 1.0652360438E+00 1.0605024265E+00 + 1.0557266617E+00 1.0509102695E+00 1.0460546343E+00 1.0411610808E+00 + 1.0362310553E+00 1.0312659736E+00 1.0262670873E+00 1.0212357582E+00 + 1.0161734365E+00 1.0110812978E+00 1.0059606377E+00 1.0008128611E+00 + 9.9563914560E-01 9.9044070744E-01 9.8521885185E-01 9.7997480791E-01 + 9.7470969675E-01 9.6942471810E-01 9.6412114931E-01 9.5880002099E-01 + 9.5346246389E-01 9.4810968078E-01 9.4274273075E-01 9.3736265040E-01 + 9.3197053163E-01 9.2656748811E-01 9.2115446008E-01 9.1573245889E-01 + 9.1030255379E-01 9.0486568236E-01 8.9942277207E-01 8.9397478368E-01 + 8.8852270283E-01 8.8306736527E-01 8.7760966109E-01 8.7215051076E-01 + 8.6669076178E-01 8.6123122146E-01 8.5577271562E-01 8.5031610936E-01 + 8.4486214142E-01 8.3941158119E-01 8.3396520155E-01 8.2852376589E-01 + 8.2308796716E-01 8.1765851498E-01 8.1223612231E-01 8.0682146521E-01 + 8.0141519287E-01 7.9601795348E-01 7.9063039288E-01 7.8525312049E-01 + 7.7988673579E-01 7.7453182714E-01 7.6918896874E-01 7.6385872049E-01 + 7.5854162766E-01 7.5323821877E-01 7.4794900044E-01 7.4267448993E-01 + 7.3741517779E-01 7.3217153222E-01 7.2694400112E-01 7.2173305912E-01 + 7.1653914459E-01 7.1136266724E-01 7.0620402105E-01 7.0106363983E-01 + 6.9594191255E-01 6.9083919455E-01 6.8575582635E-01 6.8069220471E-01 + 6.7564867225E-01 6.7062553616E-01 6.6562307970E-01 6.6064166829E-01 + 6.5568160130E-01 6.5074314620E-01 6.4582652108E-01 6.4093206741E-01 + 6.3606004453E-01 6.3121069062E-01 6.2638414702E-01 6.2158073995E-01 + 6.1680069198E-01 6.1204420820E-01 6.0731138695E-01 6.0260250037E-01 + 5.9791775360E-01 5.9325731829E-01 5.8862127567E-01 5.8400981118E-01 + 5.7942312965E-01 5.7486137257E-01 5.7032462109E-01 5.6581294949E-01 + 5.6132657600E-01 5.5686561518E-01 5.5243016428E-01 5.4802016798E-01 + 5.4363586382E-01 5.3927734478E-01 5.3494468457E-01 5.3063784966E-01 + 5.2635693302E-01 5.2210206658E-01 5.1787330362E-01 5.1367065629E-01 + 5.0949403909E-01 5.0534363783E-01 5.0121948821E-01 4.9712160943E-01 + 4.9304989315E-01 4.8900440633E-01 4.8498523012E-01 4.8099236931E-01 + 4.7702579480E-01 4.7308534188E-01 4.6917117612E-01 4.6528329053E-01 + 4.6142166239E-01 4.5758616045E-01 4.5377675072E-01 4.4999351224E-01 + 4.4623641341E-01 4.4250540727E-01 4.3880027158E-01 4.3512109643E-01 + 4.3146787739E-01 4.2784056136E-01 4.2423905777E-01 4.2066313465E-01 + 4.1711292351E-01 4.1358836714E-01 4.1008939400E-01 4.0661584752E-01 + 4.0316757642E-01 3.9974465785E-01 3.9634701856E-01 3.9297457142E-01 + 3.8962710727E-01 3.8630453791E-01 3.8300689577E-01 3.7973409424E-01 + 3.7648603335E-01 3.7326246566E-01 3.7006334429E-01 3.6688866911E-01 + 3.6373834268E-01 3.6061225471E-01 3.5751013444E-01 3.5443195167E-01 + 3.5137768748E-01 3.4834723595E-01 3.4534047887E-01 3.4235713759E-01 + 3.3939717182E-01 3.3646055869E-01 3.3354718596E-01 3.3065692964E-01 + 3.2778951925E-01 3.2494487605E-01 3.2212298854E-01 3.1932374013E-01 + 3.1654700304E-01 3.1379253165E-01 3.1106017927E-01 3.0834996112E-01 + 3.0566175806E-01 3.0299544026E-01 3.0035080419E-01 2.9772760550E-01 + 2.9512590082E-01 2.9254557001E-01 2.8998648282E-01 2.8744849490E-01 + 2.8493123602E-01 2.8243481716E-01 2.7995911859E-01 2.7750401105E-01 + 2.7506935560E-01 2.7265484123E-01 2.7026043368E-01 2.6788608470E-01 + 2.6553166718E-01 2.6319704491E-01 2.6088199743E-01 2.5858630197E-01 + 2.5630999879E-01 2.5405296400E-01 2.5181506514E-01 2.4959616109E-01 + 2.4739590190E-01 2.4521433867E-01 2.4305138020E-01 2.4090689864E-01 + 2.3878075797E-01 2.3667272923E-01 2.3458261485E-01 2.3251044351E-01 + 2.3045609267E-01 2.2841943216E-01 2.2640032411E-01 2.2439844431E-01 + 2.2241380244E-01 2.2044632927E-01 2.1849590099E-01 2.1656238659E-01 + 2.1464561395E-01 2.1274528782E-01 2.1086148488E-01 2.0899408806E-01 + 2.0714297360E-01 2.0530801092E-01 2.0348896494E-01 2.0168568084E-01 + 1.9989817205E-01 1.9812632228E-01 1.9637000893E-01 1.9462910303E-01 + 1.9290332547E-01 1.9119262730E-01 1.8949697398E-01 1.8781625099E-01 + 1.8615033789E-01 1.8449910828E-01 1.8286225705E-01 1.8123980610E-01 + 1.7963168936E-01 1.7803779494E-01 1.7645800539E-01 1.7489219768E-01 + 1.7334005745E-01 1.7180164353E-01 1.7027687481E-01 1.6876564271E-01 + 1.6726783349E-01 1.6578332817E-01 1.6431181865E-01 1.6285336847E-01 + 1.6140789735E-01 1.5997530064E-01 1.5855546884E-01 1.5714828758E-01 + 1.5575346966E-01 1.5437105276E-01 1.5300097253E-01 1.5164312865E-01 + 1.5029741632E-01 1.4896372623E-01 1.4764180602E-01 1.4633163879E-01 + 1.4503318997E-01 1.4374636395E-01 1.4247106098E-01 1.4120717711E-01 + 1.3995450820E-01 1.3871295607E-01 1.3748252837E-01 1.3626313447E-01 + 1.3505467991E-01 1.3385706629E-01 1.3267015027E-01 1.3149372853E-01 + 1.3032786142E-01 1.2917246345E-01 1.2802744557E-01 1.2689271513E-01 + 1.2576817583E-01 1.2465357395E-01 1.2354895607E-01 1.2245426661E-01 + 1.2136942200E-01 1.2029433538E-01 1.1922891650E-01 1.1817299678E-01 + 1.1712646443E-01 1.1608934316E-01 1.1506155491E-01 1.1404301858E-01 + 1.1303364995E-01 1.1203336173E-01 1.1104191034E-01 1.1005936167E-01 + 1.0908565688E-01 1.0812072055E-01 1.0716447442E-01 1.0621683739E-01 + 1.0527767162E-01 1.0434684171E-01 1.0342438843E-01 1.0251024196E-01 + 1.0160432985E-01 1.0070657703E-01 9.9816905799E-02 9.8935132159E-02 + 9.8061235924E-02 9.7195205765E-02 9.6336974888E-02 9.5486474088E-02 + 9.4643631728E-02 9.3808373729E-02 9.2980486778E-02 9.2160032146E-02 + 9.1346961575E-02 9.0541211504E-02 8.9742716146E-02 8.8951407471E-02 + 8.8167202844E-02 8.7389911584E-02 8.6619608133E-02 8.5856234335E-02 + 8.5099729995E-02 8.4350032869E-02 8.3607078648E-02 8.2870776603E-02 + 8.2140970530E-02 8.1417721111E-02 8.0700973471E-02 7.9990670860E-02 + 7.9286754644E-02 7.8589164292E-02 7.7897813190E-02 7.7212554420E-02 + 7.6533446468E-02 7.5860437783E-02 7.5193475091E-02 7.4532503386E-02 + 7.3877465923E-02 7.3228291074E-02 7.2584818662E-02 7.1947115361E-02 + 7.1315132942E-02 7.0688821596E-02 + + diff --git a/tests/dft/pseudopotential/real/aluminumSingleAtom_01.prm.in b/tests/dft/pseudopotential/real/aluminumSingleAtom_01.prm.in index 4a0685ae4..1ae33d69e 100644 --- a/tests/dft/pseudopotential/real/aluminumSingleAtom_01.prm.in +++ b/tests/dft/pseudopotential/real/aluminumSingleAtom_01.prm.in @@ -46,11 +46,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 # low tolerance ot run in Debug mode - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/aluminumSingleAtom_01_b.prm.in b/tests/dft/pseudopotential/real/aluminumSingleAtom_01_b.prm.in index 995b6c7e1..5a300da61 100644 --- a/tests/dft/pseudopotential/real/aluminumSingleAtom_01_b.prm.in +++ b/tests/dft/pseudopotential/real/aluminumSingleAtom_01_b.prm.in @@ -46,11 +46,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 # low tolerance ot run in Debug mode - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/aluminumSingleAtom_02.output b/tests/dft/pseudopotential/real/aluminumSingleAtom_02.output new file mode 100644 index 000000000..6c7626d79 --- /dev/null +++ b/tests/dft/pseudopotential/real/aluminumSingleAtom_02.output @@ -0,0 +1,39 @@ +number of atoms: 1 +number of atoms types: 1 +Z:13 +============================================================================================================================= +number of electrons: 3 +number of eigen values: 20 +============================================================================================================================= +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 4.000000000000000000e+01 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 4.000000000000000000e+01 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 4.000000000000000000e+01 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 288 +number of degrees of freedom: 10381 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 9 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -35.96469222 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000000,0.000000,0.000000 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/aluminumSingleAtom_02.prm.in b/tests/dft/pseudopotential/real/aluminumSingleAtom_02.prm.in new file mode 100644 index 000000000..458cad6fe --- /dev/null +++ b/tests/dft/pseudopotential/real/aluminumSingleAtom_02.prm.in @@ -0,0 +1,68 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT = true + +subsection Geometry + set NATOMS=1 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/aluminumSingleAtom_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/aluminumSingleAtom_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 8.0 + set PERIODIC1 = false + set PERIODIC2 = false + set PERIODIC3 = false +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 3 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 10.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 1.0 + set MESH SIZE AT ATOM = 1.0 + end + +end + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoAlONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 # low tolerance ot run in Debug mode + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING METHOD = BROYDEN + set TEMPERATURE = 500 + set STARTING WFC=ATOMIC + + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set ORTHOGONALIZATION TYPE=GS + set CHEBYSHEV FILTER TOLERANCE=1e-3 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/real/aluminumSingleAtom_02_b.output b/tests/dft/pseudopotential/real/aluminumSingleAtom_02_b.output new file mode 100644 index 000000000..deb00e3c2 --- /dev/null +++ b/tests/dft/pseudopotential/real/aluminumSingleAtom_02_b.output @@ -0,0 +1,39 @@ +number of atoms: 1 +number of atoms types: 1 +Z:13 +============================================================================================================================= +number of electrons: 3 +number of eigen values: 20 +============================================================================================================================= +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 4.000000000000000000e+01 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 4.000000000000000000e+01 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 4.000000000000000000e+01 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 288 +number of degrees of freedom: 10381 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 11 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -36.01107261 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000000,0.000000,0.000000 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/aluminumSingleAtom_02_b.prm.in b/tests/dft/pseudopotential/real/aluminumSingleAtom_02_b.prm.in new file mode 100644 index 000000000..44b701208 --- /dev/null +++ b/tests/dft/pseudopotential/real/aluminumSingleAtom_02_b.prm.in @@ -0,0 +1,70 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT = true + +subsection Geometry + set NATOMS=1 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/aluminumSingleAtom_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/aluminumSingleAtom_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 8.0 + set PERIODIC1 = false + set PERIODIC2 = false + set PERIODIC3 = false +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 3 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 10.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 1.0 + set MESH SIZE AT ATOM = 1.0 + end + +end + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoAlONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 + set SPIN POLARIZATION = 1 + set START MAGNETIZATION = 0.25 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 # low tolerance ot run in Debug mode + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING METHOD = BROYDEN + set TEMPERATURE = 500 + set STARTING WFC=ATOMIC + + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set ORTHOGONALIZATION TYPE=GS + set CHEBYSHEV FILTER TOLERANCE=1e-3 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01.prm.in index 67d060483..99152a17c 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_01.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01.prm.in @@ -61,11 +61,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC = ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_b.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_b.prm.in index b1644bcf2..cfd58481b 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_01_b.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_b.prm.in @@ -61,11 +61,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-7 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC= ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_c.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_c.prm.in index d42121f40..cbd92b5cd 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_01_c.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_c.prm.in @@ -65,11 +65,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC= ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 27 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_d.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_d.prm.in index 58c812f7c..d5acc2ba8 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_01_d.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_d.prm.in @@ -65,11 +65,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC= ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 27 set SPECTRUM SPLIT CORE EIGENSTATES=7 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_e.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_e.prm.in index 5f35db14c..cf25c36ed 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_01_e.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_e.prm.in @@ -65,11 +65,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC= ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 27 set SPECTRUM SPLIT CORE EIGENSTATES=7 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_f.mpirun=8.output b/tests/dft/pseudopotential/real/hcpMgPrim_01_f.mpirun=8.output new file mode 100644 index 000000000..eccad9ebc --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_f.mpirun=8.output @@ -0,0 +1,42 @@ +number of atoms: 2 +number of atoms types: 1 +Z:12 +============================================================================================================================= +number of electrons: 20 +number of eigen values: 27 +============================================================================================================================= +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 5.882191053999999752e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : -2.941095526999999876e+00 5.094126882677563195e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 9.585777736000000715e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 6.666666666666666297e-01 3.333333333333333148e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 2661 + +Finite element mesh information +------------------------------------------------- +number of elements: 976 +number of degrees of freedom: 10699 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -108.57428916 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000046,0.000027,0.005593 +AtomId 1: 0.005189,0.002996,0.005591 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_f.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_f.prm.in new file mode 100644 index 000000000..0373992f6 --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_f.prm.in @@ -0,0 +1,90 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Parallelization + set NPBAND=2 +end + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/hcpMgPrim_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/hcpMgPrim_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=false + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 1 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 0 + end +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoMgONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC= ATOMIC + set HIGHER QUAD NLP = false + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 27 + set SPECTRUM SPLIT CORE EIGENSTATES=7 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=PGS + set WFC BLOCK SIZE=5 + set ENABLE SUBSPACE ROT PGS OPT=true + set SUBSPACE ROT DOFS BLOCK SIZE=10000 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_g.mpirun=8.output b/tests/dft/pseudopotential/real/hcpMgPrim_01_g.mpirun=8.output new file mode 100644 index 000000000..eccad9ebc --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_g.mpirun=8.output @@ -0,0 +1,42 @@ +number of atoms: 2 +number of atoms types: 1 +Z:12 +============================================================================================================================= +number of electrons: 20 +number of eigen values: 27 +============================================================================================================================= +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 5.882191053999999752e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : -2.941095526999999876e+00 5.094126882677563195e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 9.585777736000000715e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 6.666666666666666297e-01 3.333333333333333148e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 2661 + +Finite element mesh information +------------------------------------------------- +number of elements: 976 +number of degrees of freedom: 10699 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -108.57428916 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000046,0.000027,0.005593 +AtomId 1: 0.005189,0.002996,0.005591 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_g.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_g.prm.in new file mode 100644 index 000000000..2b939b470 --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_g.prm.in @@ -0,0 +1,91 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Parallelization + set NPBAND=2 + set MPI ALLREDUCE BLOCK SIZE=0.1 +end + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/hcpMgPrim_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/hcpMgPrim_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=false + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 1 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 0 + end +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoMgONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC= ATOMIC + set HIGHER QUAD NLP = false + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 27 + set SPECTRUM SPLIT CORE EIGENSTATES=7 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=PGS + set WFC BLOCK SIZE=5 + set ENABLE SUBSPACE ROT PGS OPT=true + set SUBSPACE ROT DOFS BLOCK SIZE=10000 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_h.mpirun=5.output b/tests/dft/pseudopotential/real/hcpMgPrim_01_h.mpirun=5.output new file mode 100644 index 000000000..b736f3b10 --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_h.mpirun=5.output @@ -0,0 +1,42 @@ +number of atoms: 2 +number of atoms types: 1 +Z:12 +============================================================================================================================= +number of electrons: 20 +number of eigen values: 20 +============================================================================================================================= +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 5.882191053999999752e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : -2.941095526999999876e+00 5.094126882677563195e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 9.585777736000000715e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 6.666666666666666297e-01 3.333333333333333148e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 2661 + +Finite element mesh information +------------------------------------------------- +number of elements: 976 +number of degrees of freedom: 10699 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -108.57498649 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000048,0.000027,0.005601 +AtomId 1: 0.005188,0.002995,0.005599 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_h.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_h.prm.in new file mode 100644 index 000000000..e184253b7 --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_h.prm.in @@ -0,0 +1,81 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/hcpMgPrim_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/hcpMgPrim_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=false + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 1 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 0 + end +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoMgONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC = ATOMIC + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_i.mpirun=8.output b/tests/dft/pseudopotential/real/hcpMgPrim_01_i.mpirun=8.output new file mode 100644 index 000000000..eccad9ebc --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_i.mpirun=8.output @@ -0,0 +1,42 @@ +number of atoms: 2 +number of atoms types: 1 +Z:12 +============================================================================================================================= +number of electrons: 20 +number of eigen values: 27 +============================================================================================================================= +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 5.882191053999999752e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : -2.941095526999999876e+00 5.094126882677563195e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 9.585777736000000715e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 6.666666666666666297e-01 3.333333333333333148e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 2661 + +Finite element mesh information +------------------------------------------------- +number of elements: 976 +number of degrees of freedom: 10699 +------------------------------------------------- + +Setting initial guess for wavefunctions.... + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -108.57428916 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000046,0.000027,0.005593 +AtomId 1: 0.005189,0.002996,0.005591 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_01_i.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_01_i.prm.in new file mode 100644 index 000000000..991f56477 --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_01_i.prm.in @@ -0,0 +1,91 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Parallelization + set NPBAND=2 +end + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/hcpMgPrim_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/hcpMgPrim_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=false + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 2 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 1 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 0 + end +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoMgONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC= ATOMIC + set HIGHER QUAD NLP = false + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 27 + set SPECTRUM SPLIT CORE EIGENSTATES=7 + set ADAPTIVE FILTER STATES=7 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=PGS + set WFC BLOCK SIZE=5 + set ENABLE SUBSPACE ROT PGS OPT=true + set SUBSPACE ROT DOFS BLOCK SIZE=10000 + end +end + + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_02.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_02.prm.in index a7fcfa084..4fd17c9aa 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_02.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_02.prm.in @@ -61,11 +61,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_02_b.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_02_b.prm.in index db446f311..47f67022d 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_02_b.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_02_b.prm.in @@ -61,11 +61,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_02_c.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_02_c.prm.in index 8600b7672..038795e31 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_02_c.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_02_c.prm.in @@ -61,11 +61,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_03.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_03.prm.in index 37f525e96..b7e3b7327 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_03.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_03.prm.in @@ -61,10 +61,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_03_b.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_03_b.prm.in index 2d98e7571..0d6712a01 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_03_b.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_03_b.prm.in @@ -61,10 +61,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 20 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_03_c.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_03_c.prm.in index fb2e62c68..b51708e00 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_03_c.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_03_c.prm.in @@ -64,10 +64,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 23 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_03_d.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_03_d.prm.in index 095046700..3c3a6f052 100644 --- a/tests/dft/pseudopotential/real/hcpMgPrim_03_d.prm.in +++ b/tests/dft/pseudopotential/real/hcpMgPrim_03_d.prm.in @@ -64,10 +64,11 @@ end subsection SCF parameters set MAXIMUM ITERATIONS = 100 set TOLERANCE = 1e-6 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 - set ANDERSON SCHEME MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 set TEMPERATURE = 500 set STARTING WFC=ATOMIC + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 23 set LOWER BOUND WANTED SPECTRUM = -10.0 diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_03_e.mpirun=5.output b/tests/dft/pseudopotential/real/hcpMgPrim_03_e.mpirun=5.output new file mode 100644 index 000000000..5b5bd0f96 --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_03_e.mpirun=5.output @@ -0,0 +1,41 @@ +number of atoms: 2 +number of atoms types: 1 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 5.882191053999999752e+00 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : -2.941095526999999876e+00 5.094126882677563195e+00 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 9.585777736000000715e+00 +----------------------------------------------------------------------------------------- +-----Fractional coordinates of atoms------ +AtomId 0: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 6.666666666666666297e-01 3.333333333333333148e-01 5.000000000000000000e-01 +----------------------------------------------------------------------------------------- +Number Image Charges 2661 + +Finite element mesh information +------------------------------------------------- +number of elements: 976 +number of degrees of freedom: 32917 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 20 +number of eigen values: 40 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -108.89374054 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.000005,0.000003,0.000023 +AtomId 1: 0.000102,0.000059,0.000031 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/hcpMgPrim_03_e.prm.in b/tests/dft/pseudopotential/real/hcpMgPrim_03_e.prm.in new file mode 100644 index 000000000..0ba41b07b --- /dev/null +++ b/tests/dft/pseudopotential/real/hcpMgPrim_03_e.prm.in @@ -0,0 +1,84 @@ +set VERBOSITY= 0 +set REPRODUCIBLE OUTPUT=true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/hcpMgPrim_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/hcpMgPrim_domainBoundingVectors.inp + + subsection Optimization + set ION FORCE=true + set CELL STRESS=false + end + +end + + +subsection Boundary conditions + set SELF POTENTIAL RADIUS = 1.6 + set PERIODIC1 = true + set PERIODIC2 = true + set PERIODIC3 = true +end + + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER = 3 + + subsection Auto mesh generation parameters + set BASE MESH SIZE = 1.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AROUND ATOM = 0.5 + set MESH SIZE AT ATOM = 0.5 + end + +end + + +subsection Brillouin zone k point sampling options + + subsection Monkhorst-Pack (MP) grid generation + set SAMPLING POINTS 1 = 1 + set SAMPLING POINTS 2 = 1 + set SAMPLING POINTS 3 = 1 + set SAMPLING SHIFT 1 = 0 + set SAMPLING SHIFT 2 = 0 + set SAMPLING SHIFT 3 = 0 + end +end + + + +subsection DFT functional parameters + set PSEUDOPOTENTIAL CALCULATION =true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoMgONCV.inp + set PSEUDO TESTS FLAG = true + set EXCHANGE CORRELATION TYPE = 4 + set SPIN POLARIZATION=1 + set START MAGNETIZATION=0.2 +end + + +subsection SCF parameters + set MAXIMUM ITERATIONS = 100 + set TOLERANCE = 1e-6 + set MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set TEMPERATURE = 500 + set STARTING WFC=RANDOM + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 40 + set LOWER BOUND WANTED SPECTRUM = -10.0 + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=LW + set ENABLE SWITCH TO GS=true + end +end + +subsection Poisson problem parameters + set MAXIMUM ITERATIONS = 10000 + set TOLERANCE = 1e-12 +end diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_01.prm.in b/tests/dft/pseudopotential/real/nitrogenMolecule_01.prm.in index f925ad190..303a6d834 100644 --- a/tests/dft/pseudopotential/real/nitrogenMolecule_01.prm.in +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_01.prm.in @@ -38,12 +38,12 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 40 set TEMPERATURE = 500 set TOLERANCE = 5e-6 - + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 set ORTHOGONALIZATION TYPE=LW diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_02.mpirun=10.output b/tests/dft/pseudopotential/real/nitrogenMolecule_02.mpirun=10.output index 34ff6ff16..b579edc16 100644 --- a/tests/dft/pseudopotential/real/nitrogenMolecule_02.mpirun=10.output +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_02.mpirun=10.output @@ -6,14 +6,14 @@ v2 : 0.000000000000000000e+00 8.000000000000000000e+01 0.000000000000000000e+00 v3 : 0.000000000000000000e+00 0.000000000000000000e+00 8.000000000000000000e+01 ----------------------------------------------------------------------------------------- ------------Cartesian coordinates of atoms (origin at center of domain)------------------ -AtomId 0: -1.030000000000000027e+00 0.000000000000000000e+00 0.000000000000000000e+00 -AtomId 1: 1.030000000000000027e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 0: -1.300000000000000044e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 1.300000000000000044e+00 0.000000000000000000e+00 0.000000000000000000e+00 ----------------------------------------------------------------------------------------- Finite element mesh information ------------------------------------------------- -number of elements: 960 -number of degrees of freedom: 31257 +number of elements: 2792 +number of degrees of freedom: 88305 ------------------------------------------------- Setting initial guess for wavefunctions.... @@ -26,17 +26,127 @@ Reading initial guess for electron-density..... Pseudopotential initalization.... +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.79765864 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.292441,0.000000,0.000000 +AtomId 1: 0.292440,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.095291 0.000000 0.000000 +AtomId 1: 1.095292 0.000000 0.000000 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2736 +number of degrees of freedom: 86793 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 11 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.89600270 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.126070,0.000000,0.000000 +AtomId 1: 0.126076,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -0.940163 0.000000 0.000000 +AtomId 1: 0.940165 0.000000 0.000000 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2624 +number of degrees of freedom: 83069 +------------------------------------------------- + +Reading initial guess for PSI.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.83952675 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.401845,0.000000,0.000000 +AtomId 1: 0.401847,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.058245 0.000000 0.000000 +AtomId 1: 1.058246 0.000000 0.000000 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2736 +number of degrees of freedom: 86793 +------------------------------------------------- + +Reading initial guess for PSI.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Pseudopotential initalization.... + Starting SCF iterations.... SCF iterations converged to the specified tolerance after: 12 iterations. Energy computations (Hartree) ------------------- - Total energy: -19.88861860 + Total energy: -19.90260726 Absolute values of ion forces (Hartree/Bohr) -------------------------------------------------------------------------------------------- -AtomId 0: 0.078047,0.000000,0.000000 -AtomId 1: 0.078045,0.000000,0.000000 +AtomId 0: 0.044776,0.000000,0.000000 +AtomId 1: 0.044776,0.000000,0.000000 -------------------------------------------------------------------------------------------- -----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- v1 : 80.000000 0.000000 0.000000 @@ -44,14 +154,14 @@ v2 : 0.000000 80.000000 0.000000 v3 : 0.000000 0.000000 80.000000 ----------------------------------------------------------------------------------------- ------------Cartesian coordinates of atoms (origin at center of domain)------------------ -AtomId 0: -1.084633 0.000000 0.000000 -AtomId 1: 1.084631 0.000000 0.000000 +AtomId 0: -1.046407 0.000000 0.000000 +AtomId 1: 1.046408 0.000000 0.000000 ----------------------------------------------------------------------------------------- Finite element mesh information ------------------------------------------------- -number of elements: 960 -number of degrees of freedom: 31257 +number of elements: 2736 +number of degrees of freedom: 86793 ------------------------------------------------- Interpolating previous groundstate PSI into the new finite element mesh.... @@ -59,14 +169,14 @@ Interpolating previous groundstate PSI into the new finite element mesh.... Pseudopotential initalization.... Starting SCF iterations.... -SCF iterations converged to the specified tolerance after: 9 iterations. +SCF iterations converged to the specified tolerance after: 11 iterations. Energy computations (Hartree) ------------------- - Total energy: -19.88298179 + Total energy: -19.90333345 Absolute values of ion forces (Hartree/Bohr) -------------------------------------------------------------------------------------------- -AtomId 0: 0.072326,0.000000,0.000000 -AtomId 1: 0.072323,0.000000,0.000000 +AtomId 0: 0.013435,0.000000,0.000000 +AtomId 1: 0.013434,0.000000,0.000000 -------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_02.prm.in b/tests/dft/pseudopotential/real/nitrogenMolecule_02.prm.in index d51bc0d98..bf834d583 100644 --- a/tests/dft/pseudopotential/real/nitrogenMolecule_02.prm.in +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_02.prm.in @@ -8,7 +8,7 @@ subsection Geometry set DOMAIN VECTORS FILE = @SOURCE_DIR@/nitrogenMolecule_domainVectors.inp subsection Optimization set ION OPT=true - set FORCE TOL=0.075 + set FORCE TOL=4e-2 set ION RELAX FLAGS FILE =@SOURCE_DIR@/nitrogenMolecule_relaxationFlags.inp set REUSE WFC=true end @@ -24,10 +24,10 @@ end subsection Finite element mesh parameters set POLYNOMIAL ORDER=3 subsection Auto mesh generation parameters - set MESH SIZE AROUND ATOM = 0.7 - set BASE MESH SIZE = 10.0 + set MESH SIZE AROUND ATOM = 0.5 + set BASE MESH SIZE = 13.0 set ATOM BALL RADIUS = 2.0 - set MESH SIZE AT ATOM = 0.7 + set MESH SIZE AT ATOM = 0.5 end end @@ -39,16 +39,16 @@ subsection DFT functional parameters end subsection SCF parameters - set ANDERSON SCHEME MIXING HISTORY = 70 - set ANDERSON SCHEME MIXING PARAMETER = 0.5 + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 set MAXIMUM ITERATIONS = 40 set TEMPERATURE = 500 - set TOLERANCE = 5e-6 - + set TOLERANCE = 1e-5 + set HIGHER QUAD NLP = false subsection Eigen-solver parameters set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 - set ORTHOGONALIZATION TYPE=LW - set CHEBYSHEV POLYNOMIAL DEGREE = 30 - set CHEBYSHEV FILTER TOLERANCE=1e-3 + set ORTHOGONALIZATION TYPE=PGS + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-2 end end diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_02_b.mpirun=10.output b/tests/dft/pseudopotential/real/nitrogenMolecule_02_b.mpirun=10.output new file mode 100644 index 000000000..d23d685d6 --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_02_b.mpirun=10.output @@ -0,0 +1,182 @@ +number of atoms: 2 +number of atoms types: 1 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 8.000000000000000000e+01 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 8.000000000000000000e+01 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 8.000000000000000000e+01 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.300000000000000044e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 1.300000000000000044e+00 0.000000000000000000e+00 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2792 +number of degrees of freedom: 88305 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 16 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.79765864 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.292445,0.000000,0.000000 +AtomId 1: 0.292445,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.095288 0.000000 0.000000 +AtomId 1: 1.095288 0.000000 0.000000 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2736 +number of degrees of freedom: 86793 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 18 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.89600352 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.126065,0.000000,0.000000 +AtomId 1: 0.126065,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -0.940180 0.000000 0.000000 +AtomId 1: 0.940180 0.000000 0.000000 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2624 +number of degrees of freedom: 83069 +------------------------------------------------- + +Reading initial guess for PSI.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 14 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.83953900 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.401760,0.000000,0.000000 +AtomId 1: 0.401760,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.058242 0.000000 0.000000 +AtomId 1: 1.058242 0.000000 0.000000 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2736 +number of degrees of freedom: 86793 +------------------------------------------------- + +Reading initial guess for PSI.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.90260753 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.044727,0.000000,0.000000 +AtomId 1: 0.044727,0.000000,0.000000 +-------------------------------------------------------------------------------------------- +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 80.000000 0.000000 0.000000 +v2 : 0.000000 80.000000 0.000000 +v3 : 0.000000 0.000000 80.000000 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.046415 0.000000 0.000000 +AtomId 1: 1.046415 0.000000 0.000000 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 2736 +number of degrees of freedom: 86793 +------------------------------------------------- + +Interpolating previous groundstate PSI into the new finite element mesh.... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 11 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.90333319 + +Absolute values of ion forces (Hartree/Bohr) +-------------------------------------------------------------------------------------------- +AtomId 0: 0.013450,0.000000,0.000000 +AtomId 1: 0.013450,0.000000,0.000000 +-------------------------------------------------------------------------------------------- diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_02_b.prm.in b/tests/dft/pseudopotential/real/nitrogenMolecule_02_b.prm.in new file mode 100644 index 000000000..0ff407b06 --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_02_b.prm.in @@ -0,0 +1,55 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT = true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/nitrogenMolecule_coordinates2.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/nitrogenMolecule_domainVectors.inp + subsection Optimization + set ION OPT=true + set FORCE TOL=4e-2 + set ION RELAX FLAGS FILE =@SOURCE_DIR@/nitrogenMolecule_relaxationFlags.inp + set REUSE WFC=true + end +end + +subsection Boundary conditions + set PERIODIC1 = false + set PERIODIC2 = false + set PERIODIC3 = false + set SELF POTENTIAL RADIUS = 4.0 +end + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER=3 + subsection Auto mesh generation parameters + set MESH SIZE AROUND ATOM = 0.5 + set BASE MESH SIZE = 13.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AT ATOM = 0.5 + end +end + +subsection DFT functional parameters + set EXCHANGE CORRELATION TYPE = 4 + set PSEUDOPOTENTIAL CALCULATION = true + set PSEUDO TESTS FLAG = true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoNGGA.inp +end + +subsection SCF parameters + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.2 + set MIXING METHOD = BROYDEN + set MAXIMUM ITERATIONS = 40 + set TEMPERATURE = 500 + set TOLERANCE = 1e-5 + set HIGHER QUAD NLP = false + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 + set ORTHOGONALIZATION TYPE=PGS + set CHEBYSHEV POLYNOMIAL DEGREE = 40 + set CHEBYSHEV FILTER TOLERANCE=1e-2 + end +end diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03.mpirun=10.output b/tests/dft/pseudopotential/real/nitrogenMolecule_03.mpirun=10.output new file mode 100644 index 000000000..25608355f --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03.mpirun=10.output @@ -0,0 +1,34 @@ +number of atoms: 2 +number of atoms types: 1 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 8.000000000000000000e+01 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 8.000000000000000000e+01 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 8.000000000000000000e+01 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 960 +number of degrees of freedom: 31257 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.834557 diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03.prm.in b/tests/dft/pseudopotential/real/nitrogenMolecule_03.prm.in new file mode 100644 index 000000000..b75095c4b --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03.prm.in @@ -0,0 +1,50 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT = true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/nitrogenMolecule_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/nitrogenMolecule_domainVectors.inp +end + +subsection Boundary conditions + set PERIODIC1 = false + set PERIODIC2 = false + set PERIODIC3 = false + set SELF POTENTIAL RADIUS = 4.0 +end + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER=3 + subsection Auto mesh generation parameters + set MESH SIZE AROUND ATOM = 0.7 + set BASE MESH SIZE = 10.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AT ATOM = 0.7 + end +end + +subsection DFT functional parameters + set EXCHANGE CORRELATION TYPE = 4 + set PSEUDOPOTENTIAL CALCULATION = true + set PSEUDO TESTS FLAG = true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoNGGA.inp +end + +subsection SCF parameters + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MAXIMUM ITERATIONS = 40 + set TEMPERATURE = 500 + set TOLERANCE = 5e-6 + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 + set ORTHOGONALIZATION TYPE=PGS + set CHEBYSHEV POLYNOMIAL DEGREE = 30 + set CHEBYSHEV FILTER TOLERANCE=2e-3 + set USE MIXED PREC PGS SR=true + set USE MIXED PREC PGS O=true + end +end diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03_b.mpirun=10.output b/tests/dft/pseudopotential/real/nitrogenMolecule_03_b.mpirun=10.output new file mode 100644 index 000000000..98f3257f8 --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03_b.mpirun=10.output @@ -0,0 +1,34 @@ +number of atoms: 2 +number of atoms types: 1 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 8.000000000000000000e+01 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 8.000000000000000000e+01 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 8.000000000000000000e+01 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 960 +number of degrees of freedom: 31257 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.834557 diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03_b.prm.in b/tests/dft/pseudopotential/real/nitrogenMolecule_03_b.prm.in new file mode 100644 index 000000000..4c5cea9df --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03_b.prm.in @@ -0,0 +1,57 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT = true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/nitrogenMolecule_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/nitrogenMolecule_domainVectors.inp +end + +subsection Boundary conditions + set PERIODIC1 = false + set PERIODIC2 = false + set PERIODIC3 = false + set SELF POTENTIAL RADIUS = 4.0 +end + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER=3 + subsection Auto mesh generation parameters + set MESH SIZE AROUND ATOM = 0.7 + set BASE MESH SIZE = 10.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AT ATOM = 0.7 + end +end + +subsection DFT functional parameters + set EXCHANGE CORRELATION TYPE = 4 + set PSEUDOPOTENTIAL CALCULATION = true + set PSEUDO TESTS FLAG = true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoNGGA.inp +end + +subsection Parallelization + set NPBAND=2 +end + + +subsection SCF parameters + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MAXIMUM ITERATIONS = 40 + set TEMPERATURE = 500 + set TOLERANCE = 5e-6 + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 + set ORTHOGONALIZATION TYPE=PGS + set CHEBYSHEV POLYNOMIAL DEGREE = 30 + set CHEBYSHEV FILTER TOLERANCE=2e-3 + set USE MIXED PREC PGS SR=true + set USE MIXED PREC PGS O=true + set WFC BLOCK SIZE=3 + set SUBSPACE ROT DOFS BLOCK SIZE=500 + end +end diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03_c.mpirun=10.output b/tests/dft/pseudopotential/real/nitrogenMolecule_03_c.mpirun=10.output new file mode 100644 index 000000000..25608355f --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03_c.mpirun=10.output @@ -0,0 +1,34 @@ +number of atoms: 2 +number of atoms types: 1 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 8.000000000000000000e+01 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 8.000000000000000000e+01 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 8.000000000000000000e+01 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 960 +number of degrees of freedom: 31257 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 13 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.834557 diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03_c.prm.in b/tests/dft/pseudopotential/real/nitrogenMolecule_03_c.prm.in new file mode 100644 index 000000000..02e32e797 --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03_c.prm.in @@ -0,0 +1,59 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT = true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/nitrogenMolecule_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/nitrogenMolecule_domainVectors.inp +end + +subsection Boundary conditions + set PERIODIC1 = false + set PERIODIC2 = false + set PERIODIC3 = false + set SELF POTENTIAL RADIUS = 4.0 +end + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER=3 + subsection Auto mesh generation parameters + set MESH SIZE AROUND ATOM = 0.7 + set BASE MESH SIZE = 10.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AT ATOM = 0.7 + end +end + +subsection DFT functional parameters + set EXCHANGE CORRELATION TYPE = 4 + set PSEUDOPOTENTIAL CALCULATION = true + set PSEUDO TESTS FLAG = true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoNGGA.inp +end + +subsection Parallelization + set NPBAND=2 +end + + +subsection SCF parameters + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MAXIMUM ITERATIONS = 40 + set TEMPERATURE = 500 + set TOLERANCE = 5e-6 + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 + set ORTHOGONALIZATION TYPE=PGS + set CHEBYSHEV POLYNOMIAL DEGREE = 30 + set CHEBYSHEV FILTER TOLERANCE=2e-3 + set USE MIXED PREC PGS SR=true + set USE MIXED PREC PGS O=true + set WFC BLOCK SIZE=3 + set SUBSPACE ROT DOFS BLOCK SIZE=500 + set SCALAPACKPROCS=2 + set SPECTRUM SPLIT CORE EIGENSTATES=3 + end +end diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03_d.mpirun=10.output b/tests/dft/pseudopotential/real/nitrogenMolecule_03_d.mpirun=10.output new file mode 100644 index 000000000..98f3257f8 --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03_d.mpirun=10.output @@ -0,0 +1,34 @@ +number of atoms: 2 +number of atoms types: 1 +-----------Simulation Domain bounding vectors (lattice vectors in fully periodic case)------------- +v1 : 8.000000000000000000e+01 0.000000000000000000e+00 0.000000000000000000e+00 +v2 : 0.000000000000000000e+00 8.000000000000000000e+01 0.000000000000000000e+00 +v3 : 0.000000000000000000e+00 0.000000000000000000e+00 8.000000000000000000e+01 +----------------------------------------------------------------------------------------- +------------Cartesian coordinates of atoms (origin at center of domain)------------------ +AtomId 0: -1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +AtomId 1: 1.199999999999999956e+00 0.000000000000000000e+00 0.000000000000000000e+00 +----------------------------------------------------------------------------------------- + +Finite element mesh information +------------------------------------------------- +number of elements: 960 +number of degrees of freedom: 31257 +------------------------------------------------- + +Setting initial guess for wavefunctions.... +============================================================================================================================= +number of electrons: 10 +number of eigen values: 12 +============================================================================================================================= + +Reading initial guess for electron-density..... + +Pseudopotential initalization.... + +Starting SCF iterations.... +SCF iterations converged to the specified tolerance after: 12 iterations. + +Energy computations (Hartree) +------------------- + Total energy: -19.834557 diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_03_d.prm.in b/tests/dft/pseudopotential/real/nitrogenMolecule_03_d.prm.in new file mode 100644 index 000000000..5ceac33e3 --- /dev/null +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_03_d.prm.in @@ -0,0 +1,59 @@ +set VERBOSITY = 0 +set REPRODUCIBLE OUTPUT = true + +subsection Geometry + set NATOMS=2 + set NATOM TYPES=1 + set ATOMIC COORDINATES FILE = @SOURCE_DIR@/nitrogenMolecule_coordinates.inp + set DOMAIN VECTORS FILE = @SOURCE_DIR@/nitrogenMolecule_domainVectors.inp +end + +subsection Boundary conditions + set PERIODIC1 = false + set PERIODIC2 = false + set PERIODIC3 = false + set SELF POTENTIAL RADIUS = 4.0 +end + +subsection Finite element mesh parameters + set POLYNOMIAL ORDER=3 + subsection Auto mesh generation parameters + set MESH SIZE AROUND ATOM = 0.7 + set BASE MESH SIZE = 10.0 + set ATOM BALL RADIUS = 2.0 + set MESH SIZE AT ATOM = 0.7 + end +end + +subsection DFT functional parameters + set EXCHANGE CORRELATION TYPE = 4 + set PSEUDOPOTENTIAL CALCULATION = true + set PSEUDO TESTS FLAG = true + set PSEUDOPOTENTIAL FILE NAMES LIST = @SOURCE_DIR@/pseudoNGGA.inp +end + +subsection Parallelization + set NPBAND=2 +end + + +subsection SCF parameters + set MIXING HISTORY = 70 + set MIXING PARAMETER = 0.5 + set MAXIMUM ITERATIONS = 40 + set TEMPERATURE = 500 + set TOLERANCE = 5e-6 + set HIGHER QUAD NLP = true + subsection Eigen-solver parameters + set NUMBER OF KOHN-SHAM WAVEFUNCTIONS = 12 + set ORTHOGONALIZATION TYPE=PGS + set CHEBYSHEV POLYNOMIAL DEGREE = 30 + set CHEBYSHEV FILTER TOLERANCE=2e-3 + set USE MIXED PREC PGS SR=true + set USE MIXED PREC PGS O=true + set USE MIXED PREC CHEBY=true + set MIXED PREC STOPPING TOL=1e-4 + set WFC BLOCK SIZE=3 + set SUBSPACE ROT DOFS BLOCK SIZE=500 + end +end diff --git a/tests/dft/pseudopotential/real/nitrogenMolecule_coordinates2.inp b/tests/dft/pseudopotential/real/nitrogenMolecule_coordinates2.inp index 6b72b102d..ed186382c 100644 --- a/tests/dft/pseudopotential/real/nitrogenMolecule_coordinates2.inp +++ b/tests/dft/pseudopotential/real/nitrogenMolecule_coordinates2.inp @@ -1,2 +1,2 @@ -7 5 -1.030000000E+00 0.00000000E+00 0.00000000E+00 -7 5 1.030000000E+00 0.00000000E+00 0.00000000E+00 +7 5 -1.30000000E+00 0.00000000E+00 0.00000000E+00 +7 5 1.30000000E+00 0.00000000E+00 0.00000000E+00 diff --git a/tests/dft/pseudopotential/real/pseudoAlONCV.inp b/tests/dft/pseudopotential/real/pseudoAlONCV.inp new file mode 100644 index 000000000..820d18371 --- /dev/null +++ b/tests/dft/pseudopotential/real/pseudoAlONCV.inp @@ -0,0 +1 @@ +13 Al_ONCV_PBE-1.0.upf diff --git a/utils/dftParameters.cc b/utils/dftParameters.cc index 5f104865d..d3896c5fd 100644 --- a/utils/dftParameters.cc +++ b/utils/dftParameters.cc @@ -33,8 +33,9 @@ namespace dftParameters double radiusAtomBall=0.0, mixingParameter=0.5; double lowerEndWantedSpectrum=0.0,relLinearSolverTolerance=1e-10,selfConsistentSolverTolerance=1e-10,TVal=500, start_magnetization=0.0; double chebyshevTolerance = 1e-02; + std::string mixingMethod = ""; - bool isPseudopotential=false,periodicX=false,periodicY=false,periodicZ=false, useSymm=false, timeReversal=false,pseudoTestsFlag=false; + bool isPseudopotential=false,periodicX=false,periodicY=false,periodicZ=false, useSymm=false, timeReversal=false,pseudoTestsFlag=false, constraintMagnetization=false; std::string meshFileName="",coordinatesFile="",domainBoundingVectorsFile="",kPointDataFile="", ionRelaxFlagsFile="",orthogType="",pseudoPotentialFile=""; double outerAtomBallRadius=2.0, meshSizeOuterDomain=10.0; @@ -66,6 +67,13 @@ namespace dftParameters unsigned int numCoreWfcRR=0; bool triMatPGSOpt=true; bool reuseWfcGeoOpt=true; + extern double mpiAllReduceMessageBlockSizeMB=2.0; + bool useHigherQuadNLP=true; + bool useMixedPrecPGS_SR=false; + bool useMixedPrecPGS_O=false; + bool useMixedPrecCheby=false; + unsigned int numAdaptiveFilterStates=0; + double mixedPrecStoppingTol=1e-4; void declare_parameters(ParameterHandler &prm) { @@ -94,6 +102,10 @@ namespace dftParameters prm.declare_entry("NPBAND", "1", Patterns::Integer(1), "[Standard] Number of groups of MPI tasks across which the work load of the bands is parallelised. NPKPT times NPBAND must be a divisor of total number of MPI tasks. Further, NPBAND must be less than or equal to NUMBER OF KOHN-SHAM WAVEFUNCTIONS."); + + prm.declare_entry("MPI ALLREDUCE BLOCK SIZE", "100.0", + Patterns::Double(0), + "[Advanced] Block message size in MB used to break a single MPI_Allreduce call on wavefunction vectors data into multiple MPI_Allreduce calls. This is useful on certain architectures which take advantage of High Bandwidth Memory to improve efficiency of MPI operations. This variable is relevant only if NPBAND>1. Default value is 100.0 MB."); } prm.leave_subsection (); @@ -322,13 +334,21 @@ namespace dftParameters Patterns::Double(1e-12,1.0), "[Standard] SCF iterations stopping tolerance in terms of $L_2$ norm of the electron-density difference between two successive iterations. CAUTION: A tolerance close to 1e-7 or lower can deteriorate the SCF convergence due to the round-off error accumulation."); - prm.declare_entry("ANDERSON SCHEME MIXING HISTORY", "10", + prm.declare_entry("MIXING HISTORY", "10", Patterns::Integer(1,1000), - "[Standard] Number of SCF iteration history to be considered for mixing the electron-density using Anderson mixing scheme. For metallic systems, a mixing history larger than the default value provides better scf convergence."); + "[Standard] Number of SCF iteration history to be considered for density mixing schemes. For metallic systems, a mixing history larger than the default value provides better scf convergence."); - prm.declare_entry("ANDERSON SCHEME MIXING PARAMETER", "0.5", + prm.declare_entry("MIXING PARAMETER", "0.5", Patterns::Double(0.0,1.0), - "[Standard] Mixing parameter to be used in Anderson scheme."); + "[Standard] Mixing parameter to be used in density mixing schemes."); + + prm.declare_entry("MIXING METHOD","ANDERSON", + Patterns::Selection("BROYDEN|ANDERSON"), + "[Standard] Method for density mixing. ANDERSON is the default option."); + + prm.declare_entry("CONSTRAINT MAGNETIZATION", "false", + Patterns::Bool(), + "[Standard] Boolean parameter specifying whether to keep the starting magnetization fixed through the SCF iterations. Default is FALSE"); prm.declare_entry("STARTING WFC","RANDOM", Patterns::Selection("ATOMIC|RANDOM"), @@ -338,6 +358,10 @@ namespace dftParameters Patterns::Bool(), "[Advanced] Boolean parameter specifying whether to compute the total energy at the end of every SCF. Setting it to false can lead to some computational time savings."); + prm.declare_entry("HIGHER QUAD NLP", "true", + Patterns::Bool(), + "[Advanced] Boolean parameter specifying whether to use a higher order quadrature rule for the calculations involving the non-local part of the pseudopotential. Default setting is true. Could be safely set to false if you are using a very refined mesh."); + prm.enter_subsection ("Eigen-solver parameters"); { @@ -393,6 +417,26 @@ namespace dftParameters prm.declare_entry("SCALAPACKPROCS", "0", Patterns::Integer(0,300), "[Advanced] Uses a processor grid of SCALAPACKPROCS times SCALAPACKPROCS for parallel distribution of the subspace projected matrix in the Rayleigh-Ritz step and the overlap matrix in the Pseudo-Gram-Schmidt step. Default value is 0 for which a thumb rule is used (see http://netlib.org/scalapack/slug/node106.html). This parameter is only used if dealii library is compiled with ScaLAPACK."); + + prm.declare_entry("USE MIXED PREC PGS SR", "false", + Patterns::Bool(), + "[Advanced] Use mixed precision arithmetic in subspace rotation step of PGS orthogonalization, if ORTHOGONALIZATION TYPE is set to PGS. Currently this optimization is only enabled for the real executable. Default setting is false."); + + prm.declare_entry("USE MIXED PREC PGS O", "false", + Patterns::Bool(), + "[Advanced] Use mixed precision arithmetic in overlap matrix computation step of PGS orthogonalization, if ORTHOGONALIZATION TYPE is set to PGS. Currently this optimization is only enabled for the real executable. Default setting is false."); + + prm.declare_entry("USE MIXED PREC CHEBY", "false", + Patterns::Bool(), + "[Advanced] Use mixed precision arithmetic in Chebyshev filtering. Currently this optimization is only enabled for the real executable and batch gemm. Default setting is false."); + + prm.declare_entry("MIXED PREC STOPPING TOL", "1e-4", + Patterns::Double(0), + "[Advanced] Scf tolerance below which mixed precision cannot be used. Default value is 1e-4."); + + prm.declare_entry("ADAPTIVE FILTER STATES", "0", + Patterns::Integer(0), + "[Advanced] Number of lowest Kohn-Sham eigenstates which are filtered with Chebyshev polynomial degree linearly varying from 50 percent (starting from the lowest) to 80 percent of the value specified by CHEBYSHEV POLYNOMIAL DEGREE. This imposes a step function filtering polynomial order on the ADAPTIVE FILTER STATES as filtering is done with blocks of size WFC BLOCK SIZE. This setting is recommended for large systems (greater than 5000 electrons). Default value is 0 i.e., all states are filtered with the same Chebyshev polynomial degree."); } prm.leave_subsection (); } @@ -423,6 +467,7 @@ namespace dftParameters { dftParameters::npool = prm.get_integer("NPKPT"); dftParameters::nbandGrps = prm.get_integer("NPBAND"); + dftParameters::mpiAllReduceMessageBlockSizeMB = prm.get_double("MPI ALLREDUCE BLOCK SIZE"); } prm.leave_subsection (); @@ -516,10 +561,13 @@ namespace dftParameters dftParameters::TVal = prm.get_double("TEMPERATURE"); dftParameters::numSCFIterations = prm.get_integer("MAXIMUM ITERATIONS"); dftParameters::selfConsistentSolverTolerance = prm.get_double("TOLERANCE"); - dftParameters::mixingHistory = prm.get_integer("ANDERSON SCHEME MIXING HISTORY"); - dftParameters::mixingParameter = prm.get_double("ANDERSON SCHEME MIXING PARAMETER"); + dftParameters::mixingHistory = prm.get_integer("MIXING HISTORY"); + dftParameters::mixingParameter = prm.get_double("MIXING PARAMETER"); + dftParameters::mixingMethod = prm.get("MIXING METHOD"); + dftParameters::constraintMagnetization = prm.get_bool("CONSTRAINT MAGNETIZATION"); dftParameters::startingWFCType = prm.get("STARTING WFC"); dftParameters::computeEnergyEverySCF = prm.get_bool("COMPUTE ENERGY EACH ITER"); + dftParameters::useHigherQuadNLP = prm.get_bool("HIGHER QUAD NLP"); prm.enter_subsection ("Eigen-solver parameters"); @@ -537,6 +585,11 @@ namespace dftParameters dftParameters::enableSwitchToGS= prm.get_bool("ENABLE SWITCH TO GS"); dftParameters::triMatPGSOpt= prm.get_bool("ENABLE SUBSPACE ROT PGS OPT"); dftParameters::scalapackParalProcs= prm.get_integer("SCALAPACKPROCS"); + dftParameters::useMixedPrecPGS_SR= prm.get_bool("USE MIXED PREC PGS SR"); + dftParameters::useMixedPrecPGS_O= prm.get_bool("USE MIXED PREC PGS O"); + dftParameters::useMixedPrecCheby= prm.get_bool("USE MIXED PREC CHEBY"); + dftParameters::mixedPrecStoppingTol= prm.get_double("MIXED PREC STOPPING TOL"); + dftParameters::numAdaptiveFilterStates= prm.get_integer("ADAPTIVE FILTER STATES"); } prm.leave_subsection (); } @@ -562,10 +615,11 @@ namespace dftParameters { std::cout << "==========================================================================================================" << std::endl ; std::cout << "==========================================================================================================" << std::endl ; - std::cout << " Welcome to the Open Source program DFT-FE v0.5 " << std::endl ; - std::cout << "This is a C++ code for materials modeling from first principles using Kohn-Sham density functional theory " << std::endl ; - std::cout << "It is based on adaptive finite-element based methodologies. " << std::endl ; - std::cout << "For details and citing please refer to our website: https://sites.google.com/umich.edu/dftfe" << std::endl ; + std::cout << " Welcome to the Open Source program DFT-FE v0.6.0 " << std::endl ; + std::cout << "This is a C++ code for materials modeling from first principles using Kohn-Sham density functional theory." << std::endl ; + std::cout << "This is a real-space code for periodic, semi-periodic and non-periodic pseudopotential" << std::endl ; + std::cout << "and all-electron calculations, and is based on adaptive finite-element discretization." << std::endl ; + std::cout << "For further details, and citing, please refer to our website: https://sites.google.com/umich.edu/dftfe" << std::endl ; std::cout << "==========================================================================================================" << std::endl ; std::cout << " DFT-FE Principal developers and Mentors (alphabetically) : " << std::endl ; std::cout << " " << std::endl ; diff --git a/utils/vectorTools/vectorUtilities.cc b/utils/vectorTools/vectorUtilities.cc index f9cee9372..731990167 100644 --- a/utils/vectorTools/vectorUtilities.cc +++ b/utils/vectorTools/vectorUtilities.cc @@ -199,10 +199,9 @@ namespace dftfe } - #ifdef USE_COMPLEX - void copyFlattenedDealiiVecToSingleCompVec - (const dealii::parallel::distributed::Vector> & flattenedArray, + void copyFlattenedSTLVecToSingleCompVec + (const std::vector> & flattenedArray, const unsigned int totalNumberComponents, const std::pair componentIndexRange, const std::vector & localProcDofIndicesReal, @@ -215,26 +214,22 @@ namespace dftfe && componentIndexRange.second <=totalNumberComponents, dealii::ExcMessage("componentIndexRange doesn't lie within totalNumberComponents")); - const unsigned int localVectorSize = flattenedArray.local_size()/totalNumberComponents; + const unsigned int localVectorSize = flattenedArray.size()/totalNumberComponents; for(unsigned int iNode = 0; iNode < localVectorSize; ++iNode) - { for(unsigned int icomp = componentIndexRange.first; icomp & flattenedArray, + void copyFlattenedSTLVecToSingleCompVec + (const std::vector & flattenedArray, const unsigned int totalNumberComponents, const std::pair componentIndexRange, std::vector> & componentVectors) @@ -244,20 +239,119 @@ namespace dftfe Assert(componentIndexRange.first > & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + const std::vector & localProcDofIndicesReal, + const std::vector & localProcDofIndicesImag, + std::vector> & componentVectors, + const bool isFlattenedDealiiGhostValuesUpdated) + { + Assert(componentVectors.size()==(componentIndexRange.second-componentIndexRange.first), + dealii::ExcMessage("Incorrect dimensions of componentVectors")); + Assert(componentIndexRange.first & partitioner + =flattenedArray.get_partitioner(); + const unsigned int localSize = partitioner->local_size()/totalNumberComponents; + const unsigned int n_ghosts = partitioner->n_ghost_indices()/totalNumberComponents; + const unsigned int totalSize = localSize + n_ghosts; + + if (!isFlattenedDealiiGhostValuesUpdated) + { + for(unsigned int iNode = 0; iNode < localSize; ++iNode) + for(unsigned int icomp = componentIndexRange.first; icomp & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + std::vector> & componentVectors, + const bool isFlattenedDealiiGhostValuesUpdated) + { + Assert(componentVectors.size()==(componentIndexRange.second-componentIndexRange.first), + dealii::ExcMessage("Incorrect dimensions of componentVectors")); + Assert(componentIndexRange.first & partitioner + =flattenedArray.get_partitioner(); + const unsigned int localSize = partitioner->local_size()/totalNumberComponents; + const unsigned int n_ghosts = partitioner->n_ghost_indices()/totalNumberComponents; + const unsigned int totalSize = localSize + n_ghosts; + + if (!isFlattenedDealiiGhostValuesUpdated) + { + for(unsigned int iNode = 0; iNode < localSize; ++iNode) + for(unsigned int icomp = componentIndexRange.first; icomp> & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + const std::vector & localProcDofIndicesReal, + const std::vector & localProcDofIndicesImag, + const std::vector> & componentVectors) + { + Assert(componentVectors.size()==(componentIndexRange.second-componentIndexRange.first), + dealii::ExcMessage("Incorrect dimensions of componentVectors")); + Assert(componentIndexRange.first (real,imag); + } + + } +#else + void copySingleCompVecToFlattenedSTLVec + (std::vector & flattenedArray, + const unsigned int totalNumberComponents, + const std::pair componentIndexRange, + const std::vector> & componentVectors) + { + Assert(componentVectors.size()==(componentIndexRange.second-componentIndexRange.first), + dealii::ExcMessage("Incorrect dimensions of componentVectors")); + Assert(componentIndexRange.first &, const unsigned int , dealii::parallel::distributed::Vector &); + template void createDealiiVector(const std::shared_ptr &, + const unsigned int , + dealii::parallel::distributed::Vector &); }//end of namespace diff --git a/version b/version index 9df29be5c..e26d1601b 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.5.2 +0.6.0