From 830cb8489411437bc2edb1eb77daced6912d9acc Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Mon, 15 Jun 2026 21:29:05 +0200 Subject: [PATCH 01/16] [test] add spin-orbit + spin-polarized Wien2k converter golden test (CaOs2) dftkit's Wien2k converter is only covered by the non-SOC SrVO3 case. This adds a SOC + spin-polarized golden test: CaOs2, a cubic fluorite cell with two symmetry-equivalent correlated Os atoms whose magnetic point group has 16 operations, 8 of them time-reversal. It exercises the combined-spin 'ud' block and the time-reversal symmetry path of dmftproj + the converter on a small 8-k-point fixture, validated by h5diff against a reference produced by this converter. --- test/python/wien2k/CMakeLists.txt | 12 + test/python/wien2k/CaOs2.ctqmcout | 134 ++++ test/python/wien2k/CaOs2.oubwindn | 5 + test/python/wien2k/CaOs2.oubwinup | 5 + test/python/wien2k/CaOs2.outputs | 562 ++++++++++++++++ test/python/wien2k/CaOs2.struct | 82 +++ test/python/wien2k/CaOs2.symqmc | 658 +++++++++++++++++++ test/python/wien2k/wien2k_soc_convert.py | 39 ++ test/python/wien2k/wien2k_soc_convert.ref.h5 | Bin 0 -> 394665 bytes 9 files changed, 1497 insertions(+) create mode 100644 test/python/wien2k/CaOs2.ctqmcout create mode 100644 test/python/wien2k/CaOs2.oubwindn create mode 100644 test/python/wien2k/CaOs2.oubwinup create mode 100644 test/python/wien2k/CaOs2.outputs create mode 100644 test/python/wien2k/CaOs2.struct create mode 100644 test/python/wien2k/CaOs2.symqmc create mode 100644 test/python/wien2k/wien2k_soc_convert.py create mode 100644 test/python/wien2k/wien2k_soc_convert.ref.h5 diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index d9968e3..ef7b78a 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -11,3 +11,15 @@ add_test(NAME Py_wien2k_convert WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_convert APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Spin-orbit + spin-polarized converter test (CaOs2: cubic, two equivalent +# correlated atoms, 8 time-reversal symmetry operations). +file(COPY CaOs2.ctqmcout CaOs2.symqmc CaOs2.struct CaOs2.outputs + CaOs2.oubwinup CaOs2.oubwindn wien2k_soc_convert.ref.h5 + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + +add_test(NAME Py_wien2k_soc_convert + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_soc_convert.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_soc_convert APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2.ctqmcout b/test/python/wien2k/CaOs2.ctqmcout new file mode 100644 index 0000000..f8eceb3 --- /dev/null +++ b/test/python/wien2k/CaOs2.ctqmcout @@ -0,0 +1,134 @@ +13.605698 + 1 + 1 + 1 + 59.000000000000000 + 65.999999999899998 + 2 + 2 2 2 10 + 3 2 2 10 + 2 + 2 2 2 10 1 1 + 3 2 2 10 1 1 + -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -7.4940054162198066E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4940054162198066E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4710455076283324E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4940054162198066E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4940054162198066E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -7.4940054162198066E-015 + 0 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0 + 1 10 + 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.70710676908493042 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 -0.70710676908493042 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.70710676908493042 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 17 + -8.3299679140668938E-010 -3.5057042301671724E-009 -9.0778752951110879E-011 4.3994421658180770E-009 -0.22604524201885492 1.0252359371842728E-009 -2.5885195722099340E-010 -1.7703903665814329E-006 0.63346497200953678 4.7085772120157830E-009 3.2168261973412012E-010 6.8086940399583740E-009 -1.4336687194883592E-009 -8.6465192714255539E-009 -7.9289581186997688E-010 -1.2643135952078624E-008 -0.19390348449684927 + 2.7875320957046725E-002 -7.3845757203589953E-011 -3.3416871606259615E-009 -1.5097375409670037E-009 8.7834224456321541E-010 3.5023907154183279E-009 -1.0960999111772395E-009 -5.1944668126119510E-002 7.2545203300412573E-007 7.0739484934453384E-009 3.7982939037925732E-009 1.5089887658752093E-008 3.2864269746920833E-009 1.1800270817920332E-008 -2.2396654374342643E-010 4.0329883612251065E-009 2.6366512075195883E-009 + 0.19110210146926443 -3.4436533064337062E-008 -2.6683237742250913E-008 1.6138811151545152E-008 -5.8742261833616966E-009 -2.0314134946061775E-008 2.4106529625787708E-009 -3.4444091184561601E-003 4.9463237746716913E-008 2.2659456512881252E-009 3.2533425080388864E-009 -3.7371461066871586E-008 -1.6173701722363227E-008 -1.3288306691953403E-007 -2.5767148098387525E-008 -1.2860252369440123E-007 -3.4279981637971879E-008 + -6.3360927468246183E-010 0.29092641044527373 -1.6477291307334632E-009 -0.26186268654086892 1.5477325823317174E-008 0.13228898130385094 -6.5521444396587446E-009 -8.2791955663305931E-010 3.7056060740662385E-010 -2.3840145058860160E-002 -1.0608104666099270E-002 0.14437182985321692 -2.6426299240781399E-009 -4.7709287571015731E-003 -1.1239829313273361E-008 2.1963783981507640E-002 9.4289349906196928E-009 + 1.4961467982546612E-009 0.29092646333998567 9.5975253636800232E-009 0.26186265908420431 3.1747904727937180E-008 -0.13228900642366040 4.1464334170642749E-009 2.7986631787690147E-009 -3.6187674597597083E-010 -2.3840147091004005E-002 1.0608105105972935E-002 -0.14437181976884197 -3.7281336600102403E-009 -4.7707542969127508E-003 -7.2797947955948550E-009 -2.1963849360600005E-002 4.4167589902492833E-008 + 1.0039589913984849E-009 0.18297860178968400 8.7659236444506661E-010 1.5855880537716929E-009 -6.0035755532783913E-009 7.0213346959298328E-010 -4.9178382618002181E-009 -6.9226548234801613E-009 4.6307842930149818E-009 -0.44807657873110213 -5.8815852134525494E-009 -1.6402268060583112E-009 -4.7987551701168416E-009 1.5170820152346831E-002 2.2229040750045391E-009 1.2424973519047697E-010 -9.2881616556298885E-009 + 3.5373657277014276E-010 6.2332107169847930E-010 2.1689739315318539E-009 0.16250577372197955 -3.8616292225916767E-009 0.11724038767226909 -1.7122215996122070E-008 -2.5187434186782653E-009 1.1619110792842111E-009 -5.2710969837603278E-009 0.35421161489594100 8.7769739897989266E-002 -1.7384549110945082E-008 -2.9982643379309126E-009 6.2293012892351294E-009 0.14251485666180103 -8.0952132391343457E-009 + 3.2265677954116015E-010 2.9084882731672920E-008 -7.4809575289557740E-010 -0.15563645342054747 -6.8938741857066284E-009 -0.49211256005692877 9.7702556418361562E-009 2.5741460899789715E-012 1.8138595920421220E-011 4.2183745426848146E-009 -2.4850487137840646E-002 -0.14074228859154700 -9.9646589278844428E-009 8.6626000939887052E-008 -6.2187767533370221E-009 5.9909763791093834E-002 4.2328438196510027E-009 + -0.40614675191198857 -1.2201415619873962E-008 -5.0778743172647521E-009 5.4428234621562731E-009 0.35500913497411135 -3.1204110106636236E-009 -7.3980575523277595E-009 -2.5927895277863214E-003 -4.4846237416844778E-002 -4.8276326086368341E-010 1.6318623080302618E-009 -1.4286625163694114E-008 -6.1254078291712071E-009 -5.1338547227842901E-008 -9.3593679260922174E-009 -4.9024165651568930E-008 -6.1732169886954437E-002 + -0.40614674520930860 -4.2493903148634571E-009 -4.6192522377311604E-009 2.8026941708637719E-009 -0.35500913878544688 -1.2437135157761745E-009 -4.4061968035356253E-009 -2.5930386582233961E-003 4.4846310241099877E-002 2.2204433219579400E-009 4.7620757146208721E-010 -3.7917169368684442E-009 5.4884755119931811E-009 -1.1909913386479099E-008 3.5767044187481123E-010 -1.1475479522502086E-008 6.1732154622804354E-002 + 4.3837502409173806E-010 -1.2069046077572535E-009 4.5607855886780769E-010 -1.2052649755254989E-009 -0.18214494426849240 -5.3621258141555078E-009 -1.6311530041349841E-010 -8.0210618934773325E-008 -0.30620242876026471 5.0246184737694380E-010 1.0730103905250364E-009 3.2243999570428951E-011 -2.2053123986745525E-010 4.4101536309430388E-009 -2.3235184699365617E-009 -2.8425597984922128E-009 -0.61492130318258065 + 1.6762972887265609E-002 5.1827077079243715E-009 -0.27082885808175988 1.0521384205224081E-008 -1.6622730964325055E-009 -8.2077503935203481E-009 -7.3945720284099070E-002 0.70189400889294717 1.6170428114531511E-006 -1.5271333965654951E-009 -1.7503913657430100E-009 2.7982824193395947E-009 0.13535439377510053 6.6039258000866135E-009 0.63471485587785181 1.3017401939907034E-010 -2.8449714520381681E-009 + 0.11492027885010124 -2.4047276832549414E-008 -0.62205400368739472 -4.2599831828169497E-008 1.0399672317010063E-008 -1.4149985824883871E-008 0.15344527971029964 4.6541891096153754E-002 1.1095481347637038E-007 2.2088828844447553E-009 6.4139738650325561E-010 -1.9303405974296217E-008 -0.22237926263754706 -4.8687336089975644E-009 -0.20012700922787482 9.0355596375230946E-008 1.8401263411644663E-008 + -6.8610767262250032E-011 -0.35224927253460986 -1.9825037313949780E-008 -0.32529743139417566 1.2897506711506551E-008 7.8572465495299657E-002 -1.0785888749646738E-008 -8.9641214449424737E-009 5.4878692231778805E-010 -2.8967090906579382E-002 1.8246442430606694E-002 -0.14705803473474219 1.1258717131017391E-008 0.20312441045024937 7.4135048352683751E-008 -9.4783001201539069E-002 5.7073238002914006E-008 + -2.5086072562117885E-010 -0.35224924646448746 5.0469322704829116E-008 0.32529737984881296 2.5062885675841260E-008 -7.8572508764394366E-002 2.1707500351952256E-008 2.9316799603189222E-009 -1.1749541068909464E-009 -2.8967105047732991E-002 -1.8246443486593402E-002 0.14705806305024458 -2.6114495525480216E-008 0.20312436810216816 -1.6555054768660104E-007 9.4783179624406383E-002 9.9487133677350929E-008 + -2.2063352845771332E-010 -0.22154768334481009 -6.3042745669445578E-009 2.7005887744251005E-009 -2.9063207929608116E-010 2.1488924888596998E-009 -3.4506175550819407E-009 3.3536261365153001E-009 1.6351745591338704E-009 -0.54443778965806056 -8.7241644668895284E-010 -2.0021126734768195E-009 -1.5063791969541749E-009 -0.64591433613615201 1.1164114332395333E-008 -1.1310898537066399E-008 -1.1217631733907829E-008 + 7.2913698959286745E-011 -2.5611254737974581E-010 -9.2929422419518749E-010 0.20187186581904454 5.0496420276272970E-009 6.9634422469070728E-002 -2.6898941495831632E-009 -4.1561131132327149E-009 3.4398084293356818E-010 2.6830013046855405E-009 -0.60926071611138766 -8.9402799293602633E-002 -2.4096341478056873E-009 1.3485349002152279E-009 2.1262341458105618E-008 -0.61501098919122033 2.5197152618226495E-009 + -9.6388212521149193E-010 8.2918722190767037E-009 -2.0641479835418408E-008 -0.19333845419887349 -9.5651365493208182E-009 -0.29228814680462101 -7.6704394798460981E-009 -1.0107369447802224E-009 -5.6639379821640123E-010 5.1141187506059893E-009 4.2744007170702154E-002 0.14336097342757043 1.0130585477106605E-008 -1.0821989659467784E-008 7.6187073990721425E-008 -0.25853528479334242 -3.0340749308132834E-008 + -0.24423851284230236 -9.6155883758618136E-009 -0.12760980788501020 -1.7439329975127749E-008 0.28606273689723316 -1.6224296939787636E-008 -0.41400168738077581 3.5036323816719880E-002 2.1677741335387517E-002 -3.0901874000658984E-010 -7.4347262977335866E-010 -1.4213548070969048E-008 0.20257530193220008 -3.0147670339452186E-009 -0.14588211300457646 3.4157790714657123E-008 -0.19576966629829526 + -0.24423851127462287 -3.1002437592927778E-009 -0.12760981350147563 -5.9073264387075969E-009 -0.28606273164405227 -1.0447780036287766E-008 -0.41400168257437203 3.5036312007608345E-002 -2.1677578806517522E-002 -6.4105671242936678E-010 4.7375350888110749E-010 -4.9882386014146498E-009 0.20257529569692234 1.0267331351637828E-009 -0.14588209568237315 2.7215975006503735E-009 0.19576967466443063 + 9.0679959717190494E-010 -2.2008400003486777E-009 9.2035868261477254E-010 3.3288764885573450E-009 -0.22604523984136474 1.5637625703876123E-009 1.9593894887330856E-010 1.7704037111927574E-006 -0.63346497199144092 -4.7103098826979136E-009 -3.1788027507582721E-010 8.4249310197293698E-009 1.3205661308364376E-010 -3.0045809786992074E-009 9.2010441555505037E-010 -6.9960449757271001E-009 -0.19390348258411713 + -2.7875320742772505E-002 -5.5652216619116035E-009 -5.3919198104982360E-009 1.7979462905085161E-009 -3.1360491633054101E-010 -3.4506668900795779E-011 -1.6636890545135745E-009 5.1944668296159922E-002 -7.2545506761884178E-007 -7.0677779442959870E-009 -3.8064223125941971E-009 8.7475938961619824E-009 8.1208549121748724E-010 -1.1984587475102177E-008 -4.4623233150022333E-009 -1.8937803252982954E-008 -3.4118403903437977E-009 + -0.19110210185571147 3.2098355548141706E-008 2.9850241838703112E-009 -1.8243118650007592E-008 8.0058531325819546E-009 1.8019168709954248E-008 -2.3321667059186324E-009 3.4444086962004640E-003 -4.9325673696455648E-008 -2.3537665498847274E-009 -3.3061871902567654E-009 3.6242792700179439E-008 1.0953769709190307E-008 1.3292529535615360E-007 2.7598304079520308E-008 1.2991079651253922E-007 3.2786491579603253E-008 + 2.3374181877352316E-009 0.29092645352944940 6.0312934310529206E-009 -0.26186270339587536 -1.2943019679467309E-008 0.13228898707758815 -8.0343754450769576E-009 9.9056370928967718E-010 -4.2365989890189233E-010 2.3840145004905076E-002 1.0608104553252604E-002 0.14437182045626487 5.7301941859411843E-009 -4.7707832008221981E-003 1.5615679002047344E-008 2.1963836398739948E-002 -8.4581837067390464E-009 + -1.6476810471490893E-009 0.29092641826824844 -3.3404472711913858E-009 0.26186273496277812 -3.6569188267729177E-008 -0.13228898258792449 3.9411462919995131E-009 -2.9978139337362623E-009 2.0435246999474907E-010 2.3840147308039506E-002 -1.0608105330102667E-002 -0.14437183758378880 -1.1663541875049487E-010 -4.7709545207769433E-003 8.3870793607462596E-009 -2.1963765092619086E-002 -4.3226822835084896E-008 + -1.0418574039701412E-009 0.18297860155812268 1.1484244496900985E-009 -1.6890924387014436E-009 -8.9450289709911508E-010 -7.4209721155303773E-010 -4.7176463909255783E-009 6.9341190906076067E-009 -4.6300413394911136E-009 0.44807657870630990 5.8726380651018723E-009 -4.5069432250077972E-010 -5.3983655029008815E-009 1.5170823084105606E-002 -6.3989030029144390E-011 -7.2331199761342548E-009 -3.7048777346235618E-009 + -3.4450609640268585E-010 -2.3492461177066976E-010 2.9677098891881702E-009 0.16250576895511321 -1.8392566431204764E-009 0.11724038654236243 -1.6900495974753669E-008 2.5369876577508581E-009 -1.1517017232773736E-009 5.2515884722091468E-009 -0.35421161491741920 8.7769736485274918E-002 -1.6442313055607173E-008 -5.0652239911959127E-009 7.4271871553378331E-009 0.14251484250139418 -6.5750405118294949E-009 + -1.8855836694504242E-010 -2.1040698381036500E-008 -2.5236665009274601E-009 -0.15563647740207270 4.6934585134236764E-009 -0.49211257035103367 1.3923516256101850E-008 -5.0536015268481205E-011 -4.7560119836804341E-011 -4.1424021447722052E-009 2.4850486814616497E-002 -0.14074234035153330 1.8907298256623521E-009 -8.9619446025855078E-008 5.6435029576626218E-009 5.9909581218084366E-002 -3.7148206597465794E-009 + 0.40614675120082444 1.2997943938488268E-008 8.3657743690829842E-009 -8.5070193002980489E-009 0.35500915446013603 9.3244147324613229E-009 -5.1446667626781596E-009 2.5927897837433036E-003 4.4846237491878028E-002 5.1309145986880473E-010 -1.6966586512037322E-009 1.4399171769292269E-008 1.4851373378450752E-008 5.0014954769297710E-008 1.4589832093235581E-008 5.0822710813470125E-008 -6.1732141171463896E-002 + 0.40614674597945394 1.5781094763172180E-009 1.5653401164845076E-009 1.9210785193353018E-009 -0.35500915288868584 4.0274777028046712E-009 -7.2910595461953055E-009 2.5930386966897790E-003 -4.4846310572172622E-002 -2.2160852569940781E-009 -4.6931890970976455E-010 1.5220150672891460E-009 1.5711335669818199E-009 9.7168031884898235E-009 7.8740436311457900E-010 8.5323588652117350E-009 6.1732157170305016E-002 + -3.9574553229144208E-010 8.6974434992783100E-011 -3.2734043700568200E-010 6.8488724456921905E-010 -0.18214494227915443 -5.0631468638144217E-009 3.0377601513418316E-010 8.0210113088572794E-008 0.30620242875715253 -4.9929895677420183E-010 -1.0720966614833382E-009 1.3900744402695991E-009 -1.1855906063073843E-009 5.0302758990648091E-009 1.5466556279300948E-011 -7.2738549646613615E-009 -0.61492129806347584 + -1.6762973009369166E-002 1.0836612877683691E-010 -0.27082885484593716 7.4621304188467907E-010 9.1402418052358922E-010 -1.1263526508468045E-008 -7.3945718973022448E-002 -0.70189400887955866 -1.6170645019239372E-006 1.5300763815350784E-009 1.7356474169187969E-009 -1.2044768808134150E-009 0.13535439164257576 5.6453665311754195E-009 0.63471484630532748 1.6997038090569337E-008 3.3351835515760884E-010 + -0.11492027969985288 3.1697756855716351E-008 -0.62205404016623855 5.5363910264751692E-008 -1.1351717665261505E-008 2.1195254044855871E-008 0.15344526559194852 -4.6541891054502363E-002 -1.1130483340715734E-007 -2.2288441476278565E-009 -7.2630585956928035E-010 2.7149105814925575E-008 -0.22237923822447400 6.2228461722933433E-009 -0.20012690201569222 -9.7501242006243981E-008 -1.7242424919294614E-008 + -4.0513742066645548E-009 -0.35224924279837649 1.3463913611148244E-008 -0.32529741356733882 -1.5709872784958772E-008 7.8572485881360621E-002 8.4980573756536786E-009 8.9495474200250719E-009 -6.5262706897084931E-010 2.8967090644634326E-002 -1.8246442215921543E-002 -0.14705802443644461 -1.5332806187234664E-008 0.20312433191514159 -6.9283105628942235E-008 -9.4783007358669569E-002 -5.6125141528545545E-008 + -1.1532429341588326E-009 -0.35224929352112549 -5.2798190762740624E-008 0.32529746529464437 -1.9380389672850138E-008 -7.8572456713884561E-002 -1.4126967956908924E-008 -3.0578201952579793E-009 8.1358752011917108E-010 2.8967104694346171E-002 1.8246443881922807E-002 0.14705800478036199 3.7364755952798559E-008 0.20312437712091169 1.5962309522891740E-007 9.4782827036815648E-002 -9.9025226357374557E-008 + 2.1299158910158361E-010 -0.22154768191422422 -2.4750723025704329E-009 -2.8659928856953602E-009 3.5740684375069561E-009 -1.7175908117087390E-009 -2.5007897188534218E-009 -3.3557564066314483E-009 -1.6296956823415182E-009 0.54443778968121725 8.8990042975629124E-010 4.1851783341140154E-010 -3.4879465618082223E-009 -0.64591433231307815 1.5067229522957532E-009 7.6018394582859758E-009 5.3805137926965139E-009 + -1.0598699429996071E-010 7.7134402605760225E-011 5.8292503697917106E-009 0.20187185885980286 7.0190349448783808E-009 6.9634420922647197E-002 5.6205284764449031E-010 4.1504309623553247E-009 -3.4135989366755027E-010 -2.6938579289149447E-009 0.60926071610766075 -8.9402795057407849E-002 -6.3417020086222932E-009 4.3686766941523182E-010 -2.8362662670884689E-009 -0.61501096620745832 9.3448702992217342E-009 + 1.2441597619438833E-009 -1.6538459018641143E-008 1.6821870042303133E-008 -0.19333854486782040 1.1633189650359068E-008 -0.29228816742295732 1.4738565647031249E-008 1.0633883021185138E-009 5.6928291285678825E-010 -5.0750192863357723E-009 -4.2744007647320573E-002 0.14336100501680429 -6.6735901246573234E-009 1.5745556932365030E-008 -6.6596699671902497E-008 -0.25853510343471031 3.0603943956483639E-008 + 0.24423851347702183 1.1796410324744897E-008 -0.12760982192851061 2.1172803094302839E-008 0.28606274182397395 -5.2744044210568111E-009 -0.41400168710922308 -3.5036323872070299E-002 -2.1677741287455074E-002 2.4789952767997181E-010 7.5151242756730389E-010 6.5822327705578110E-009 0.20257530132277951 4.3604120108252495E-009 -0.14588207184133795 -4.0418820004883398E-008 -0.19576963825055146 + 0.24423851152907769 1.4490126594049515E-009 -0.12760981581860137 4.4841925557596892E-009 -0.28606274746068738 -4.2085331345566214E-009 -0.41400169122870312 -3.5036312051076199E-002 2.1677578858922079E-002 6.3461307469453046E-010 -4.6812706070410901E-010 -4.0596300792422499E-009 0.20257530833187692 -8.8338485037074876E-010 -0.14588208766544986 -9.6266154426627010E-009 0.19576963039007630 + 1.0000000000000000 + -0.14719728634143203 + -6.2687483552602008E-002 + -5.6791699157407005E-002 + -4.6939855280641041E-002 + -2.3731054975468013E-002 + -5.9289132889430718E-003 + 0.0000000000000000 + 7.0047796896619996E-002 + 7.0116347318387007E-002 + 0.10027100453936799 + 0.10379476904357798 + 0.14516977295802591 + 0.15348172411197192 + 0.20481842207514100 + 0.21209028506752292 + 0.21406914507310593 + 0.22096001200155491 diff --git a/test/python/wien2k/CaOs2.oubwindn b/test/python/wien2k/CaOs2.oubwindn new file mode 100644 index 0000000..778773d --- /dev/null +++ b/test/python/wien2k/CaOs2.oubwindn @@ -0,0 +1,5 @@ + 1 + 1 + 1 + 60 76 + 1.0000000000000000 diff --git a/test/python/wien2k/CaOs2.oubwinup b/test/python/wien2k/CaOs2.oubwinup new file mode 100644 index 0000000..778773d --- /dev/null +++ b/test/python/wien2k/CaOs2.oubwinup @@ -0,0 +1,5 @@ + 1 + 1 + 1 + 60 76 + 1.0000000000000000 diff --git a/test/python/wien2k/CaOs2.outputs b/test/python/wien2k/CaOs2.outputs new file mode 100644 index 0000000..e97a1f8 --- /dev/null +++ b/test/python/wien2k/CaOs2.outputs @@ -0,0 +1,562 @@ +CaOs2 fluorite test s-o calc. M|| 0.00 0.00 1.00 + Bravais Matrix: + 0.00000 0.50000 0.50000 + 0.50000 0.00000 0.50000 + 0.50000 0.50000 0.00000 + ATOMIC POSITIONS: + 1 0.00000000 0.00000000 0.00000000 + 2 3.00000000 3.00000000 3.00000000 + 3 9.00000000 9.00000000 9.00000000 + PGLSYM: THE CRYSTAL SYSTEM IS CUBIC + PGLSYM: ORDER OF LATTICE POINT GROUP (NO BASE) = 48 + PGBSYM: ORDER OF LATTICE SPACE GROUP (WITH BASE) = 48 + PGBSYM: SPACE GROUP IS SYMMORPHIC + PGBSYM: SPACE GROUP CONTAINS INVERSION + Symmetry operation 1 + 1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 1 in struct file + Symmetry operation 2 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 2 in struct file + Symmetry operation 3 + -1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 3 in struct file + Symmetry operation 4 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 4 in struct file + Symmetry operation 5 + 0.00000 -1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 5 in struct file + Symmetry operation 6 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 -1.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 6 in struct file + Symmetry operation 7 + 0.00000 1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 7 in struct file + Symmetry operation 8 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 -1.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 8 in struct file + Symmetry operation 9 + 0.00000 0.00000 -1.00000 + 1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 9 in struct file + Symmetry operation 10 + 0.00000 0.00000 -1.00000 + 0.00000 -1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 10 in struct file + Symmetry operation 11 + 0.00000 0.00000 1.00000 + 1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 11 in struct file + Symmetry operation 12 + 0.00000 0.00000 1.00000 + 0.00000 -1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 12 in struct file + Symmetry operation 13 + 0.00000 -1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 13 in struct file + Symmetry operation 14 + 0.00000 1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 14 in struct file + Symmetry operation 15 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 -1.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 15 in struct file + Symmetry operation 16 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 -1.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 16 in struct file + Symmetry operation 17 + 1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 17 in struct file + Symmetry operation 18 + -1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + this is operation 18 in struct file + Symmetry operation 19 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 19 in struct file + Symmetry operation 20 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 -1.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + this is operation 20 in struct file + Symmetry operation 21 + 0.00000 0.00000 -1.00000 + -1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 21 in struct file + Symmetry operation 22 + 0.00000 0.00000 -1.00000 + 0.00000 -1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 22 in struct file + Symmetry operation 23 + 0.00000 0.00000 1.00000 + -1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 23 in struct file + Symmetry operation 24 + 0.00000 0.00000 1.00000 + 0.00000 -1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 24 in struct file + Symmetry operation 25 + 0.00000 0.00000 -1.00000 + 0.00000 1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 25 in struct file + Symmetry operation 26 + 0.00000 0.00000 -1.00000 + 1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 26 in struct file + Symmetry operation 27 + 0.00000 0.00000 1.00000 + 0.00000 1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 27 in struct file + Symmetry operation 28 + 0.00000 0.00000 1.00000 + 1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 28 in struct file + Symmetry operation 29 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 29 in struct file + Symmetry operation 30 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 30 in struct file + Symmetry operation 31 + 1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 31 in struct file + Symmetry operation 32 + -1.00000 0.00000 0.00000 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 32 in struct file + Symmetry operation 33 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 1.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 33 in struct file + Symmetry operation 34 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 1.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 34 in struct file + Symmetry operation 35 + 0.00000 -1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 35 in struct file + Symmetry operation 36 + 0.00000 1.00000 0.00000 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + 0.0000 1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 36 in struct file + Symmetry operation 37 + 0.00000 0.00000 -1.00000 + 0.00000 1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 37 in struct file + Symmetry operation 38 + 0.00000 0.00000 -1.00000 + -1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + this is operation 38 in struct file + Symmetry operation 39 + 0.00000 0.00000 1.00000 + 0.00000 1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 39 in struct file + Symmetry operation 40 + 0.00000 0.00000 1.00000 + -1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + this is operation 40 in struct file + Symmetry operation 41 + 0.00000 -1.00000 0.00000 + 0.00000 0.00000 1.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 41 in struct file + Symmetry operation 42 + 0.00000 -1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 42 in struct file + Symmetry operation 43 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 1.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + 0.0000 0.0000 -1.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 43 in struct file + Symmetry operation 44 + 0.00000 1.00000 0.00000 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + 0.0000 -1.0000 0.0000 0.0000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 44 in struct file + Symmetry operation 45 + 1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 45 in struct file + Symmetry operation 46 + 1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + 1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 46 in struct file + Symmetry operation 47 + -1.00000 0.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + this is operation 47 in struct file + Symmetry operation 48 + -1.00000 0.00000 0.00000 + 0.00000 1.00000 0.00000 + 0.00000 0.00000 1.00000 + 0.00000 0.00000 0.00000 + -1.0000 0.0000 0.0000 0.0000 + 0.0000 1.0000 0.0000 0.0000 + 0.0000 0.0000 1.0000 0.0000 + this is operation 48 in struct file + + + +DETERMINATION OF POINTGROUP FOR ALL POSITIONS +CaOs2 fluorite test s-o calc. M|| 0.00 0.00 1.00 + 1 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 + 2 6.0000000 6.0000000 0.0000000 0.5000000 0.5000000 0.0000000 + 3 6.0000000 0.0000000 6.0000000 0.5000000 0.0000000 0.5000000 + 4 0.0000000 6.0000000 6.0000000 0.0000000 0.5000000 0.5000000 +Ca : 4 Atoms, Index 1 to 4 + 5 3.0000000 3.0000000 3.0000000 0.2500000 0.2500000 0.2500000 + 6 9.0000000 9.0000000 3.0000000 0.7500000 0.7500000 0.2500000 + 7 9.0000000 3.0000000 9.0000000 0.7500000 0.2500000 0.7500000 + 8 3.0000000 9.0000000 9.0000000 0.2500000 0.7500000 0.7500000 + 9 9.0000000 9.0000000 9.0000000 0.7500000 0.7500000 0.7500000 + 10 3.0000000 3.0000000 9.0000000 0.2500000 0.2500000 0.7500000 + 11 3.0000000 9.0000000 3.0000000 0.2500000 0.7500000 0.2500000 + 12 9.0000000 3.0000000 3.0000000 0.7500000 0.2500000 0.2500000 +Os : 8 Atoms, Index 5 to 12 +number of atoms: 12 + + ATOM: 1 +Ca operation # 1 1 +Ca operation # 2 -1 +Ca operation # 3 2 || x +Ca operation # 4 2 || y +Ca operation # 5 2 || z +Ca operation # 6 m n z +Ca operation # 7 m n y +Ca operation # 8 m n x +Ca operation # 9 4 || x +Ca operation # 10 4 || y +Ca operation # 11 4 || z +Ca operation # 12 m n 110 +Ca operation # 13 m n -110 +Ca operation # 14 m n 101 +Ca operation # 15 m n 011 +Ca operation # 16 m n -101 +Ca operation # 17 m n 0-11 +Ca operation # 18 2 || 110 +Ca operation # 19 2 || -110 +Ca operation # 20 2 || 101 +Ca operation # 21 2 || 011 +Ca operation # 22 2 || -101 +Ca operation # 23 2 || 0-11 +Ca operation # 24 3 || 111 +Ca operation # 25 3 || 11-1 +Ca operation # 26 3 || -111 +Ca operation # 27 3 || 1-11 +Ca operation # 28 S6 || 111 +Ca operation # 29 S6 || -1-11 +Ca operation # 30 S6 || 1-1-1 +Ca operation # 31 S6 || 1-11 +Ca operation # 32 S4 || x +Ca operation # 33 S4 || y +Ca operation # 34 S4 || z +Ca operation # 35 4 || x +Ca operation # 36 4 || y +Ca operation # 37 4 || z +Ca operation # 38 3 || 111 +Ca operation # 39 3 || 11-1 +Ca operation # 40 3 || -111 +Ca operation # 41 3 || 1-11 +Ca operation # 42 S6 || 111 +Ca operation # 43 S6 || -1-11 +Ca operation # 44 S6 || 1-1-1 +Ca operation # 45 S6 || 1-11 +Ca operation # 46 S4 || x +Ca operation # 47 S4 || y +Ca operation # 48 S4 || z + pointgroup is m3m (pos. iatnr!!) + axes should be: any + z-rotation vector: 0.0000 0.0000 1.0000 + y-rotation vector: 0.0000 0.0000 0.0000 0 +LOCAL ROT MATRIX: NEW OLD + 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 + 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 + 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000 +lm: 0 0 4 0 4 4 6 0 6 4 + ============================================== + + ATOM: 2 +Os operation # 1 1 +Os operation # 3 2 || x +Os operation # 4 2 || y +Os operation # 5 2 || z +Os operation # 12 m n 110 +Os operation # 13 m n -110 +Os operation # 14 m n 101 +Os operation # 15 m n 011 +Os operation # 16 m n -101 +Os operation # 17 m n 0-11 +Os operation # 24 3 || 111 +Os operation # 25 3 || 11-1 +Os operation # 26 3 || -111 +Os operation # 27 3 || 1-11 +Os operation # 32 S4 || x +Os operation # 33 S4 || y +Os operation # 34 S4 || z +Os operation # 38 3 || 111 +Os operation # 39 3 || 11-1 +Os operation # 40 3 || -111 +Os operation # 41 3 || 1-11 +Os operation # 46 S4 || x +Os operation # 47 S4 || y +Os operation # 48 S4 || z + pointgroup is -43m (pos. iatnr!!) + axes should be: any + z-rotation vector: 0.0000 0.0000 1.0000 + y-rotation vector: 1.0000 0.0000 0.0000 0 +LOCAL ROT MATRIX: NEW OLD + 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 + 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 + 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000 +lm: 0 0 4 0 4 4 6 0 6 4 -3 2 + ============================================== diff --git a/test/python/wien2k/CaOs2.struct b/test/python/wien2k/CaOs2.struct new file mode 100644 index 0000000..0db2f5f --- /dev/null +++ b/test/python/wien2k/CaOs2.struct @@ -0,0 +1,82 @@ +CaOs2 fluorite test s-o calc. M|| 0.00 0.00 1.00 +F 2 + RELA + 12.000000 12.000000 12.000000 90.000000 90.000000 90.000000 +ATOM -1: X=0.00000000 Y=0.00000000 Z=0.00000000 + MULT= 1 ISPLIT=-2 +Ca NPT= 781 R0=.000010000 RMT= 2.30000 Z: 20.00000 +LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000 + 0.0000000 1.0000000 0.0000000 + 0.0000000 0.0000000 1.0000000 +ATOM -2: X=0.25000000 Y=0.25000000 Z=0.25000000 + MULT= 2 ISPLIT=-2 + -2: X=0.75000000 Y=0.75000000 Z=0.75000000 +Os NPT= 781 R0=.000005000 RMT= 2.00000 Z: 76.00000 +LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000 + 0.0000000 1.0000000 0.0000000 + 0.0000000 0.0000000 1.0000000 + 16 NUMBER OF SYMMETRY OPERATIONS +-1 0 0 0.00000000 + 0-1 0 0.00000000 + 0 0-1 0.00000000 + 1 A 3 so. oper. type orig. index + 0 1 0 0.00000000 +-1 0 0 0.00000000 + 0 0-1 0.00000000 + 2 A 5 + 0-1 0 0.00000000 + 1 0 0 0.00000000 + 0 0-1 0.00000000 + 3 A 14 + 1 0 0 0.00000000 + 0 1 0 0.00000000 + 0 0-1 0.00000000 + 4 A 17 +-1 0 0 0.00000000 + 0-1 0 0.00000000 + 0 0 1 0.00000000 + 5 A 32 + 0 1 0 0.00000000 +-1 0 0 0.00000000 + 0 0 1 0.00000000 + 6 A 35 + 0-1 0 0.00000000 + 1 0 0 0.00000000 + 0 0 1 0.00000000 + 7 A 44 + 1 0 0 0.00000000 + 0 1 0 0.00000000 + 0 0 1 0.00000000 + 8 A 46 + 1 0 0 0.00000000 + 0-1 0 0.00000000 + 0 0-1 0.00000000 + 9 B 1 + 0 1 0 0.00000000 + 1 0 0 0.00000000 + 0 0-1 0.00000000 + 10 B 7 + 0-1 0 0.00000000 +-1 0 0 0.00000000 + 0 0-1 0.00000000 + 11 B 13 +-1 0 0 0.00000000 + 0 1 0 0.00000000 + 0 0-1 0.00000000 + 12 B 18 + 1 0 0 0.00000000 + 0-1 0 0.00000000 + 0 0 1 0.00000000 + 13 B 31 + 0 1 0 0.00000000 + 1 0 0 0.00000000 + 0 0 1 0.00000000 + 14 B 36 + 0-1 0 0.00000000 +-1 0 0 0.00000000 + 0 0 1 0.00000000 + 15 B 42 +-1 0 0 0.00000000 + 0 1 0 0.00000000 + 0 0 1 0.00000000 + 16 B 48 diff --git a/test/python/wien2k/CaOs2.symqmc b/test/python/wien2k/CaOs2.symqmc new file mode 100644 index 0000000..69009e9 --- /dev/null +++ b/test/python/wien2k/CaOs2.symqmc @@ -0,0 +1,658 @@ + 16 3 + 1 3 2 + 1 2 3 + 1 2 3 + 1 3 2 + 1 2 3 + 1 3 2 + 1 3 2 + 1 2 3 + 1 2 3 + 1 3 2 + 1 3 2 + 1 2 3 + 1 3 2 + 1 2 3 + 1 2 3 + 1 3 2 + 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 + -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 + -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 + -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 + -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 + -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 + -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 + -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 + 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 + -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 + -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 + -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 + -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 + 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 + -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 + -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 + 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 diff --git a/test/python/wien2k/wien2k_soc_convert.py b/test/python/wien2k/wien2k_soc_convert.py new file mode 100644 index 0000000..dc2a426 --- /dev/null +++ b/test/python/wien2k/wien2k_soc_convert.py @@ -0,0 +1,39 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by M. Aichhorn, L. Pourovskii, V. Vildosola +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +# Spin-orbit + spin-polarized Wien2k converter test. +# +# CaOs2 is a cubic fluorite-type cell with two symmetry-equivalent correlated Os +# atoms; its magnetic point group has 16 operations, 8 of them time-reversal. +# This exercises the SOC path of dmftproj and the converter (combined-spin 'ud' +# block, time-reversal symmetry operations) that the non-SOC SrVO3 test does not. + +from h5 import * +from triqs.utility.h5diff import h5diff +import triqs.utility.mpi as mpi +from triqs_dftkit.wien2k import Converter + +Converter = Converter(filename='CaOs2') +Converter.hdf_file = 'wien2k_soc_convert.out.h5' +Converter.convert_dft_input() + +if mpi.is_master_node(): + h5diff('wien2k_soc_convert.out.h5', 'wien2k_soc_convert.ref.h5') diff --git a/test/python/wien2k/wien2k_soc_convert.ref.h5 b/test/python/wien2k/wien2k_soc_convert.ref.h5 new file mode 100644 index 0000000000000000000000000000000000000000..e541e6bec84207e2e396b2a94192212b78047ec7 GIT binary patch literal 394665 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 literal 0 HcmV?d00001 From 7d21b9c4ad018b61321a0706310e58c826c69ebb Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Mon, 15 Jun 2026 22:42:56 +0200 Subject: [PATCH 02/16] [wien2k] pure-Python case.symqmc generator (first dmftproj port step) triqs_dftkit.wien2k.symqmc.write_symqmc builds the correlated-shell spinor symmetry matrices (case.symqmc) from case.dmftsym + case.indmftpr + case.struct, reproducing the dmftproj Fortran construction (Wigner D, orbital and spinor time-reversal operators, angular-harmonics basis transform, spin-1/2 phase blocks). It is a full replacement of the symqmc-writing, covering every path: - non-mixing spin-diagonal bases (complex, cubic): the up/up block scaled by the +-(a+g)/2 phase, with the orbital time-reversal operator on the magnetic operations; - mixing fromfile bases that couple spin (the |j,m_j> basis): the full 2(2l+1) spinor representation P spinrot P^dag with the spinor time-reversal -i sigma_y (x) T on the magnetic operations; - l=0 (s) shells: the 2x2 spin phase block. Verified against the dmftproj Fortran output for all three paths on CaOs2 (16 operations, 8 time-reversal): the cubic converter HDF5 is identical (h5diff) and every matrix matches to machine precision. The mixing fromfile path is the one dft_tools #148 singles out; dmftproj reads that basis with a single-precision CMPLX cast and a 250-column line cap (set_ang_trans.f), so its case.symqmc carries a ~1e-7 error there while this generator is full double precision. Tests: the cubic path reuses the SOC golden h5; the mixing and l=0 paths compare to the dmftproj matrix data (single precision, ~26 kB) and assert unitarity. --- python/triqs_dftkit/wien2k/symqmc.py | 293 ++++++++++++++++++ test/python/wien2k/CMakeLists.txt | 21 ++ test/python/wien2k/CaOs2.dmftsym | 124 ++++++++ test/python/wien2k/CaOs2.indmftpr | 11 + test/python/wien2k/CaOs2_jbasis.indmftpr | 12 + test/python/wien2k/CaOs2_l0.indmftpr | 11 + test/python/wien2k/jbasis_d.dat | 10 + .../wien2k/wien2k_symqmc_jbasis.ref.npy | Bin 0 -> 25728 bytes test/python/wien2k/wien2k_symqmc_l0.ref.npy | Bin 0 -> 1152 bytes test/python/wien2k/wien2k_symqmc_mixing.py | 88 ++++++ test/python/wien2k/wien2k_symqmc_python.py | 23 ++ 11 files changed, 593 insertions(+) create mode 100644 python/triqs_dftkit/wien2k/symqmc.py create mode 100644 test/python/wien2k/CaOs2.dmftsym create mode 100644 test/python/wien2k/CaOs2.indmftpr create mode 100644 test/python/wien2k/CaOs2_jbasis.indmftpr create mode 100644 test/python/wien2k/CaOs2_l0.indmftpr create mode 100644 test/python/wien2k/jbasis_d.dat create mode 100644 test/python/wien2k/wien2k_symqmc_jbasis.ref.npy create mode 100644 test/python/wien2k/wien2k_symqmc_l0.ref.npy create mode 100644 test/python/wien2k/wien2k_symqmc_mixing.py create mode 100644 test/python/wien2k/wien2k_symqmc_python.py diff --git a/python/triqs_dftkit/wien2k/symqmc.py b/python/triqs_dftkit/wien2k/symqmc.py new file mode 100644 index 0000000..22e9a2d --- /dev/null +++ b/python/triqs_dftkit/wien2k/symqmc.py @@ -0,0 +1,293 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by M. Aichhorn, L. Pourovskii, V. Vildosola +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +"""Pure-Python generation of the dmftproj correlated-shell symmetry file +(case.symqmc), replacing the corresponding output of the dmftproj Fortran +executable. + +Given the dmftproj symmetry input (case.dmftsym), the projector definition +(case.indmftpr) and the structure (case.struct), this builds the spinor symmetry +matrices and writes them in the case.symqmc format the converter reads. It +reproduces the Fortran construction: the Wigner D matrix (dmat), the orbital +time-reversal operator for the magnetic (SP+SO) operations, the basis transform +to the chosen angular harmonics, and the spin-1/2 phase blocks. + +Covers all dmftproj spin-orbit cases: + +- non-mixing spin-diagonal bases (complex, cubic, and a fromfile basis whose + spin-up and spin-down blocks coincide): the spin-reduced up/up block scaled + by the +-(a+g)/2 phase, with the orbital time-reversal operator on the + magnetic operations; +- mixing bases (a fromfile basis that couples spin, e.g. the |j, m_j> basis): + the full 2(2l+1) spinor representation P spinrot P^dag, with the spinor + time-reversal operator -i sigma_y (x) T applied to the magnetic operations; +- l = 0 (s) shells: the 2x2 spin phase block. + +The mixing fromfile path is the one dft_tools #148 singles out. dmftproj reads +that basis with a single-precision CMPLX cast and a 250-column line cap (Fortran +set_ang_trans.f), so its case.symqmc carries a ~1e-7 error there; this generator +is full double precision. +""" + +import math +import os +import numpy as np + +# --- angular bases (transpose(P) = , m = -l..l) ----------------------- + +_COMPLEX = {l: np.eye(2 * l + 1, dtype=complex) for l in range(4)} + +# standard cubic harmonics, Wien2k convention +_CUBIC = { + 1: np.array([[0, 1, 0], [-1j, 0, -1j], [1, 0, -1]], dtype=complex) / 1.0, + 2: np.array([ + [0, 0, 1, 0, 0], + [2 ** -0.5, 0, 0, 0, 2 ** -0.5], + [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], + [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], + [0, 2 ** -0.5, 0, 2 ** -0.5, 0], + ], dtype=complex), +} + + +def _reptrans(basis, l): + if basis == 'cubic' and l in _CUBIC: + return _CUBIC[l] + return _COMPLEX[l] + + +# --- Wigner D matrix (dmftproj convention, setsym.f) ------------------------- + +def _small_d(l, m, n, b): + f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ + (math.factorial(l + n) * math.factorial(l - n)) + s = 0.0 + for t in range(0, 2 * l + 1): + if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: + f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ + (math.factorial(l - m - t) * math.factorial(m + n + t) * + math.factorial(l - n - t) * math.factorial(t)) + f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 else math.sin(b / 2) ** (2 * l - m - n - 2 * t) + f4 = 1.0 if (2 * t + n + m) == 0 else math.cos(b / 2) ** (2 * t + n + m) + s += (-1) ** (l - m - t) * f2 * f3 * f4 + return math.sqrt(f1) * s + + +def _dmat(l, a, b, c, det): + D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + for n in range(-l, l + 1): + v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) + if det < -0.5: + v *= (-1) ** l + D[m + l, n + l] = v + return D + + +def _tmat(l): + """Complex-conjugation operator in the spherical-harmonic basis, + T[m, -m] = (-1)^m (timeinv.f).""" + T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + T[-m + l, m + l] = (-1) ** m + return T + + +def _timeinv_orbital(l, mat): + return _tmat(l) @ np.conj(mat) + + +# --- fromfile angular basis --------------------------------------------------- + +def _read_fromfile(path, l): + """Parse a dmftproj fromfile basis (each line: the coefficients of a new + basis vector in {|m,up>, |m,dn>}, m = -l..l, real/imag interleaved; '*' + marks the end of an irep). Return (P, mixing) where P = is the + transform matrix (reptrans.transmat), full 2(2l+1) for a spin-mixing basis + or the (2l+1) up/up block otherwise.""" + n = 2 * (2 * l + 1) + rows = [] + for line in open(path): + line = line.rstrip('\n') + if not line.strip(): + continue + body = line[1:] + vals = [float(x) for x in body.split()][:2 * n] + rows.append([vals[2 * k] + 1j * vals[2 * k + 1] for k in range(n)]) + if len(rows) == n: + break + R = np.array(rows) # R[i, :] = |new_i> in old basis + d = 2 * l + 1 + up_up, up_dn = R[:d, :d], R[:d, d:] + dn_up, dn_dn = R[d:, :d], R[d:, d:] + mixing = not (np.allclose(dn_dn, up_up) and + np.allclose(up_dn, 0) and np.allclose(dn_up, 0)) + P = np.conj(R) if mixing else np.conj(up_up) # = conj() + return P, mixing + + +# --- input parsing ----------------------------------------------------------- + +def _read_dmftsym(path): + lines = open(path).read().split('\n') + nsym = int(lines[0].split()[0]) + perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] + rest = lines[1 + nsym:] + starts = [i for i, l in enumerate(rest) if 'Sym. op.' in l] + ops = [] + for k, s in enumerate(starts): + ang = rest[s + 1].split() + a, b, c = (math.radians(float(x)) for x in ang[:3]) + krotm = np.array([[float(x) for x in rest[s + 2 + r].split()] for r in range(3)]) + ops.append(dict(perm=perms[k], a=a, b=b, c=c, krotm=krotm)) + return nsym, ops + + +def _read_correlated_shells(indmftpr, struct): + """Return the list of correlated shells, one entry per correlated atom, plus + the SO flag, from case.indmftpr and case.struct multiplicities. Each shell + carries l, the basis name, its transform matrix P = and a mixing + flag (True for a spin-coupling fromfile basis).""" + raw = [l.split('!')[0].strip() for l in open(indmftpr)] + raw = [l for l in raw if l != ''] + nsort = int(raw[0].split()[0]) + mult = [int(x) for x in raw[1].split()][:nsort] + i = 3 + so = 0 + shells = [] + for isort in range(nsort): + basis = raw[i].split()[0] + i += 1 + sourcefile = None + if basis == 'fromfile': + sourcefile = os.path.join(os.path.dirname(indmftpr), raw[i]) + i += 1 + l_inc = [int(x) for x in raw[i].split()] + i += 1 + ireps = [int(x) for x in raw[i].split()] + i += 1 + correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] + if any(n > 0 for n in ireps): + i += 1 # skip the correps line + if correlated_ls: + so = int(raw[i].split()[0]) # SO flag follows a correlated sort + i += 1 + for l in correlated_ls: + if basis == 'fromfile': + P, mixing = _read_fromfile(sourcefile, l) + else: + P, mixing = _reptrans(basis, l), False + for _ in range(mult[isort]): + shells.append(dict(l=l, basis=basis, P=P, mixing=mixing)) + return shells, so + + +def write_symqmc(case): + """Write .symqmc from .dmftsym, .indmftpr, .struct.""" + nsym, ops = _read_dmftsym(case + '.dmftsym') + shells, so = _read_correlated_shells(case + '.indmftpr', case + '.struct') + natom = len(ops[0]['perm']) + + timeinv = [] + for op in ops: + det2 = op['krotm'][0, 0] * op['krotm'][1, 1] - op['krotm'][0, 1] * op['krotm'][1, 0] + timeinv.append(1 if (so and det2 < 0.0) else 0) + + with open(case + '.symqmc', 'w') as f: + f.write('%6d %6d\n' % (nsym, natom)) + for op in ops: + f.write(''.join('%6d ' % p for p in op['perm']) + '\n') + if so: + f.write(''.join('%6d ' % t for t in timeinv) + '\n') + for isym, op in enumerate(ops): + for sh in shells: + f.write(_format_matrix(_shell_matrix(op, sh, timeinv[isym]))) + + +def _shell_matrix(op, shell, ti): + """Spinor symmetry matrix for one correlated shell under one operation.""" + l = shell['l'] + if l == 0: + return _l0_matrix(op, ti) + if shell['mixing']: + return _mixing_matrix(op, shell, ti) + return _nonmixing_matrix(op, shell, ti) + + +def _phase(op, ti): + a, c = op['a'], op['c'] + return (c - a) if ti else (a + c) # (g-a) on magnetic ops, else (a+g) + + +def _l0_matrix(op, ti): + """s shell: 2x2 spin phase block diag(e, conj(e)) (outputqmc.f l==0).""" + e = np.exp(1j * _phase(op, ti) / 2) + return np.array([[e, 0], [0, np.conj(e)]], dtype=complex) + + +def _nonmixing_matrix(op, shell, ti): + """Spin-diagonal basis: the up/up block scaled by +-(a+g)/2, with the + orbital time-reversal operator on the magnetic operations.""" + l, P = shell['l'], shell['P'] + rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + if ti: + rotl = _timeinv_orbital(l, rotl) + rotrep = P @ rotl @ np.conj(P.T) + e = np.exp(1j * _phase(op, ti) / 2) + d = 2 * l + 1 + mat = np.zeros((2 * d, 2 * d), dtype=complex) + mat[:d, :d] = e * rotrep + mat[d:, d:] = np.conj(e) * rotrep + return mat + + +def _mixing_matrix(op, shell, ti): + """Spin-coupling basis: full 2(2l+1) spinor representation. The orbital + rotation enters block-diagonal (beta=0) or block-antidiagonal (beta=pi, the + magnetic operations); the spinor time-reversal -i sigma_y (x) T is then + applied to the magnetic operations (setsym.f, timeinv.f).""" + l, P = shell['l'], shell['P'] + rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + e = np.exp(1j * _phase(op, ti) / 2) + d = 2 * l + 1 + spinrot = np.zeros((2 * d, 2 * d), dtype=complex) + if ti: # beta = pi, block-antidiagonal + spinrot[:d, d:] = e * rotl + spinrot[d:, :d] = -np.conj(e) * rotl + else: # beta = 0, block-diagonal + spinrot[:d, :d] = e * rotl + spinrot[d:, d:] = np.conj(e) * rotl + rotrep = P @ spinrot @ np.conj(P.T) + if ti: + tm = _tmat(l) + tinv = np.zeros((2 * d, 2 * d), dtype=complex) + tinv[:d, d:] = -tm + tinv[d:, :d] = tm + rotrep = (P @ tinv @ P.T) @ np.conj(rotrep) + return rotrep + + +def _format_matrix(mat): + out = [] + for part in (mat.real, mat.imag): + for row in part: + out.append(''.join(' %.14E' % x for x in row) + '\n') + return ''.join(out) diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index ef7b78a..133bfd8 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -23,3 +23,24 @@ add_test(NAME Py_wien2k_soc_convert WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_soc_convert APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Pure-Python case.symqmc generator vs the dmftproj Fortran output (reuses the +# SOC reference h5; adds only the small text inputs the generator reads). +file(COPY CaOs2.dmftsym CaOs2.indmftpr DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +add_test(NAME Py_wien2k_symqmc_python + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_symqmc_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_symqmc_python APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Generator on the two paths the cubic test does not reach: the spin-mixing +# fromfile (|j,m_j>) basis and an l=0 shell. Reuses CaOs2.dmftsym/struct; the +# references are the dmftproj matrix data (single precision, ~26 kB total). +file(COPY CaOs2_jbasis.indmftpr CaOs2_l0.indmftpr jbasis_d.dat + wien2k_symqmc_jbasis.ref.npy wien2k_symqmc_l0.ref.npy + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +add_test(NAME Py_wien2k_symqmc_mixing + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_symqmc_mixing.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_symqmc_mixing APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2.dmftsym b/test/python/wien2k/CaOs2.dmftsym new file mode 100644 index 0000000..aa6f374 --- /dev/null +++ b/test/python/wien2k/CaOs2.dmftsym @@ -0,0 +1,124 @@ + 16 + 1 3 2 + 1 2 3 + 1 2 3 + 1 3 2 + 1 2 3 + 1 3 2 + 1 3 2 + 1 2 3 + 1 2 3 + 1 3 2 + 1 3 2 + 1 2 3 + 1 3 2 + 1 2 3 + 1 2 3 + 1 3 2 + +Sym. op. : 1 + 0.0 0.0 0.0 -1 - euler angles: a,b,c; iprop + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 2 + 270.0 0.0 0.0 -1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 3 + 90.0 0.0 0.0 -1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 4 + 180.0 0.0 0.0 -1 - euler angles: a,b,c; iprop + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 5 + 180.0 0.0 0.0 1 - euler angles: a,b,c; iprop + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 6 + 90.0 0.0 0.0 1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 7 + 270.0 0.0 0.0 1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 8 + 0.0 0.0 0.0 1 - euler angles: a,b,c; iprop + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + +Sym. op. : 9 + 0.0 180.0 180.0 1 - euler angles: a,b,c; iprop + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + +Sym. op. : 10 + 0.0 180.0 90.0 1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + +Sym. op. : 11 + 0.0 180.0 270.0 1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + +Sym. op. : 12 + 0.0 180.0 0.0 1 - euler angles: a,b,c; iprop + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + +Sym. op. : 13 + 0.0 180.0 0.0 -1 - euler angles: a,b,c; iprop + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + +Sym. op. : 14 + 0.0 180.0 270.0 -1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + +Sym. op. : 15 + 0.0 180.0 90.0 -1 - euler angles: a,b,c; iprop + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + +Sym. op. : 16 + 0.0 180.0 180.0 -1 - euler angles: a,b,c; iprop + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + Global->local coordinates rotation matrices + 1 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + 0.0 0.0 0.0 1 - euler angles: a,b,c; iprop + 2 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + 0.0 0.0 0.0 1 - euler angles: a,b,c; iprop diff --git a/test/python/wien2k/CaOs2.indmftpr b/test/python/wien2k/CaOs2.indmftpr new file mode 100644 index 0000000..abca02f --- /dev/null +++ b/test/python/wien2k/CaOs2.indmftpr @@ -0,0 +1,11 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +cubic +0 0 2 0 +0 0 0 0 +1 +-0.15 0.30 diff --git a/test/python/wien2k/CaOs2_jbasis.indmftpr b/test/python/wien2k/CaOs2_jbasis.indmftpr new file mode 100644 index 0000000..5589430 --- /dev/null +++ b/test/python/wien2k/CaOs2_jbasis.indmftpr @@ -0,0 +1,12 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +fromfile +jbasis_d.dat +0 0 2 0 +0 0 0 0 +1 +-0.15 0.30 diff --git a/test/python/wien2k/CaOs2_l0.indmftpr b/test/python/wien2k/CaOs2_l0.indmftpr new file mode 100644 index 0000000..15ca9ef --- /dev/null +++ b/test/python/wien2k/CaOs2_l0.indmftpr @@ -0,0 +1,11 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +complex +2 0 0 0 +0 0 0 0 +1 +-0.15 0.30 diff --git a/test/python/wien2k/jbasis_d.dat b/test/python/wien2k/jbasis_d.dat new file mode 100644 index 0000000..95c4843 --- /dev/null +++ b/test/python/wien2k/jbasis_d.dat @@ -0,0 +1,10 @@ + -0.89442719 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.44721360 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 -0.77459667 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.63245553 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 -0.63245553 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.77459667 0.00000000 0.00000000 0.00000000 +*0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 -0.44721360 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.89442719 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.44721360 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.89442719 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.63245553 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.77459667 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.77459667 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.63245553 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.89442719 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.44721360 0.00000000 +*0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 diff --git a/test/python/wien2k/wien2k_symqmc_jbasis.ref.npy b/test/python/wien2k/wien2k_symqmc_jbasis.ref.npy new file mode 100644 index 0000000000000000000000000000000000000000..b7e2e0140b0500ec686a2cb6db5867dbdef4902b GIT binary patch literal 25728 zcmeI2PpI706~}*VB$X~47aC|@O;geLOKj9vO)a*<;6fn_!wV!x+C>SPAYx5EO-!9T%=!9_Q1wX~Hk((mWaZ<6<$bM9oW z;lZHylF7We_j}Lzo^$TGcYf#2lRNj^Gr#vs#m|aI%KP^px^JQU-sbX-1KZ1Oo67?S z7k;|1@8KUET)2Nf{dezs=+J)kA9`TlPxkBcmfN<^&28JdZSyZSf7bTZqNv)%#4Te7 zu9^lvOdPZfyd)1yL##80^t`*Ipy$aGdf=1GzT=!9^QAXk*uL#wOu_c-{Gy0(NWdc1 za`xqdwVZw10@m<|W9L1r<6q?3247$H?$V-z-<)_HF&vnSY%3!L8|C20MU%z*wt=-g z60s>9B3O7d8ytMU*|o+@pR-+SW3UOavumxE8?n!F_H9FoW2TR_YpupQeoMhdIXH6BXz@N@u$D(6Hibh33y)@lgU{pWY!f;7B&;L*L<+VW zk=wWZM-#Bjww!(2z*^3}Z2@a|#IcrhoCC6(4Xls1a+&F4mlNWVf{k);)&%S<-scO} z@<_y{aEM^x(QI(=dDykaOko|_cCC%UnzdGA`@A=s^)KT-Uq&qFIM#CZZA0z}!#R$% zoZ}pj-E3feyp_vLA8XfIjdfy|f{k);dKDXhP(f;c{{_e@qzA;!=ZiIs?_mdPIX?!gFXzYVEKFN( zt7ne?dphLi{20IHb=H`@BIn2Il|3Encr~N(f2Z-y`H}O(uBW6ml=OYY>WcLwaagnO zSN?O5eb&VaVI3a!S$7Q9JnPn2$H(^hE{0%iCqdd%E6I~MvM3Pg0(ynu_+uPSa>uW9DE*jtua$rN48ySW3Xne)!07o z&1U_}xX+gn%Q=p0|9(Ta9(%oPv#VaO9%V;(fkg zEssQO3Wo?59?b>^y&SwTyE4&t>|eps8;kfk;~Kz;Xjy>lC% zX+N^4k!sKS>u3I<`}3LZsig;B`Dh(|%s3?s_k(Zmz3R$83j5bXPaJ;rbbpDv=&k=< znR&7Ozr)}d6XqCL&3TqSjjaR2T>^777r6yGrTf{s#$2hZlFq~E7Kf8?xmT~(r3<`T z#U1m#>z|)Fb=hyv_b~uxWS^2QaC?M#Soh~=PR}nr_wLt1AN^mKY&hQ_K0lVOlalj} zFx+Wi+ft3y*g7z9W)3MOskv9s&lGe^_$thytb=z9Us*Hv@m+>uY9s$i?GLT ze6-)0*?Cj=F1YpW1s(uniP;@eUt! zAqNa{;VtYj0E}T5SoqL~oS|*Z(Oh&D=#=i@H+`(I4LM-24KDQKA8f%ceGUz|$QfX& zcFvESA2~nb`SG!y(a(PHQu%{V-{@Sc+_`#i{qWN_TJJyfcEK9c?7yG%T~_+0v`@$py= zKC9zVC>|~1EDquM3fou%(yiEqc$CBh8<33w;@pNizQ7jx2JL8w^#t*d?7(>zpW_RB zJG4zc4{^Q_kLB5m#G^vzz!!rWGwWLMXt5Ts4Zd)^gm~oq$oWy^{0RG1n?0PpgMDwX zx6POA8SLfwNUZ`h%<1NSwOEeqR~^n6u=o?c>>b#KA=-PiUj@z=+pp>~Z?VT5_D1%yp>3Qw>~-k6uwM=8yOI5> z!WZn-*aR0E=MsA_eA$cr^J6#h7(LG;@i@{OiO2afj~KFNUO3N>5Rc(`evx?W=Ilr~ zKXwz3NzQY{BXGW0JnA)cgm{cQ&sW7`P-Bk7W76{@=ZAlu=loDEUHE?W#mtX{dP%5( zs9q3iD|)7DQTvb!L+wE|kxd!F)d$|2;#_kDMPlKa?N&_lf!UiTU@5@!u!r{K)x{^CO-g F{|6L27^naM literal 0 HcmV?d00001 diff --git a/test/python/wien2k/wien2k_symqmc_l0.ref.npy b/test/python/wien2k/wien2k_symqmc_l0.ref.npy new file mode 100644 index 0000000000000000000000000000000000000000..679d0e0df3a80d9c022fb04897600255c8f9f99f GIT binary patch literal 1152 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7re->tItsN4WCJb+h6Z~EI6!8D1se#-e`Yb=57Q1}12Nn@D4&o#vU+)3 literal 0 HcmV?d00001 diff --git a/test/python/wien2k/wien2k_symqmc_mixing.py b/test/python/wien2k/wien2k_symqmc_mixing.py new file mode 100644 index 0000000..eb729a8 --- /dev/null +++ b/test/python/wien2k/wien2k_symqmc_mixing.py @@ -0,0 +1,88 @@ +################################################################################ +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# (GPL-3.0-or-later) +################################################################################ + +# Verify the pure-Python case.symqmc generator on the two paths the spin-diagonal +# cubic test (wien2k_symqmc_python) does not exercise: +# +# - a spin-mixing fromfile basis (the |j, m_j> basis), which uses the full +# 2(2l+1) spinor representation and the spinor time-reversal operator; +# - an l = 0 (s) correlated shell, the 2x2 spin phase block. +# +# Both reuse the CaOs2 symmetry input (16 operations, 8 of them time-reversal). +# The reference is the dmftproj Fortran case.symqmc for the same input, stored as +# the matrix data in single precision: dmftproj reads the fromfile basis with a +# single-precision CMPLX cast (set_ang_trans.f), so its output there carries a +# ~1e-7 error. The generator is full double precision, so we compare at 1e-6 and +# separately assert each Python spinor matrix is unitary. + +import os +import shutil +import tempfile +import numpy as np + +from triqs_dftkit.wien2k import symqmc + +HERE = os.path.dirname(os.path.abspath(__file__)) + + +def _matrix_data(symqmc_path, nsym, natom): + """Flat array of the matrix blocks, skipping header/perm/timeflag lines.""" + toks = iter(open(symqmc_path).read().split()) + assert int(next(toks)) == nsym and int(next(toks)) == natom + for _ in range(nsym * natom + nsym): # perm rows + the time-reversal flags + next(toks) + return np.array([float(x) for x in toks]) + + +def _run(indmftpr, extra=()): + """Generate case.symqmc in a scratch dir from the shared CaOs2 symmetry + input and the given indmftpr, returning (matrix data, shells, ops, so).""" + tmp = tempfile.mkdtemp() + try: + for src, dst in (('CaOs2.dmftsym', 'case.dmftsym'), + ('CaOs2.struct', 'case.struct'), + (indmftpr, 'case.indmftpr')) + extra: + shutil.copy(os.path.join(HERE, src), os.path.join(tmp, dst)) + case = os.path.join(tmp, 'case') + symqmc.write_symqmc(case) + nsym, ops = symqmc._read_dmftsym(case + '.dmftsym') + shells, so = symqmc._read_correlated_shells( + case + '.indmftpr', case + '.struct') + natom = len(ops[0]['perm']) + return _matrix_data(case + '.symqmc', nsym, natom), shells, ops, so + finally: + shutil.rmtree(tmp) + + +def _timeinv(op, so): + k = op['krotm'] + return 1 if (so and k[0, 0] * k[1, 1] - k[0, 1] * k[1, 0] < 0.0) else 0 + + +def _check(indmftpr, ref_npy, extra=(), unit_tol=1e-7): + data, shells, ops, so = _run(indmftpr, extra) + ref = np.load(os.path.join(HERE, ref_npy)) + assert data.shape == ref.shape, (data.shape, ref.shape) + assert np.max(np.abs(data - ref)) < 1e-6, np.max(np.abs(data - ref)) + for op in ops: + for sh in shells: + mat = symqmc._shell_matrix(op, sh, _timeinv(op, so)) + dev = np.max(np.abs(mat @ np.conj(mat.T) - np.eye(mat.shape[0]))) + assert dev < unit_tol, ('not unitary', dev) + + +# spin-mixing |j, m_j> basis: the path dft_tools #148 singles out +data, shells, _, _ = _run('CaOs2_jbasis.indmftpr', + (('jbasis_d.dat', 'jbasis_d.dat'),)) +assert shells[0]['mixing'] and shells[0]['P'].shape == (10, 10) +_check('CaOs2_jbasis.indmftpr', 'wien2k_symqmc_jbasis.ref.npy', + (('jbasis_d.dat', 'jbasis_d.dat'),)) + +# l = 0 (s) correlated shell +_, shells, _, _ = _run('CaOs2_l0.indmftpr') +assert shells[0]['l'] == 0 +_check('CaOs2_l0.indmftpr', 'wien2k_symqmc_l0.ref.npy', unit_tol=1e-12) + +print('wien2k_symqmc_mixing: ok') diff --git a/test/python/wien2k/wien2k_symqmc_python.py b/test/python/wien2k/wien2k_symqmc_python.py new file mode 100644 index 0000000..c60b24a --- /dev/null +++ b/test/python/wien2k/wien2k_symqmc_python.py @@ -0,0 +1,23 @@ +################################################################################ +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# (GPL-3.0-or-later) +################################################################################ + +# Verify the pure-Python case.symqmc generator (triqs_dftkit.wien2k.symqmc) +# reproduces the dmftproj Fortran output: regenerate case.symqmc in Python from +# case.dmftsym + case.indmftpr + case.struct, convert, and compare the resulting +# HDF5 to the reference produced from the Fortran dmftproj symqmc. + +from triqs_dftkit.wien2k.symqmc import write_symqmc +from triqs_dftkit.wien2k import Converter +from triqs.utility.h5diff import h5diff +import triqs.utility.mpi as mpi + +write_symqmc('CaOs2') + +Converter = Converter(filename='CaOs2') +Converter.hdf_file = 'wien2k_symqmc_python.out.h5' +Converter.convert_dft_input() + +if mpi.is_master_node(): + h5diff('wien2k_symqmc_python.out.h5', 'wien2k_soc_convert.ref.h5') From 334a8a7811daba98c4f2367ce456127cf7615be4 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 14:42:23 +0200 Subject: [PATCH 03/16] [wien2k] pure-Python case.oubwin band-window generator Port the dmftproj almblm reader and case.oubwin writer to numpy. Given case.almblm{up,dn} and the energy window in case.indmftpr, select the contiguous band range per k-point and spin and write case.oubwin{up,dn} in the dmftproj format. Proven byte-identical to the Fortran output on CaOs2 (proj_mode 0; band-index modes raise NotImplementedError pending a fixture). Part of #7. --- python/triqs_dftkit/wien2k/oubwin.py | 267 +++++++++++++++++++++ test/python/wien2k/CMakeLists.txt | 10 + test/python/wien2k/CaOs2.almblmdn | 120 +++++++++ test/python/wien2k/CaOs2.almblmup | 120 +++++++++ test/python/wien2k/wien2k_oubwin_python.py | 41 ++++ 5 files changed, 558 insertions(+) create mode 100644 python/triqs_dftkit/wien2k/oubwin.py create mode 100644 test/python/wien2k/CaOs2.almblmdn create mode 100644 test/python/wien2k/CaOs2.almblmup create mode 100644 test/python/wien2k/wien2k_oubwin_python.py diff --git a/python/triqs_dftkit/wien2k/oubwin.py b/python/triqs_dftkit/wien2k/oubwin.py new file mode 100644 index 0000000..46512ba --- /dev/null +++ b/python/triqs_dftkit/wien2k/oubwin.py @@ -0,0 +1,267 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +"""Pure-Python generation of the dmftproj band-window file (case.oubwin), +replacing the corresponding output of the dmftproj Fortran executable. + +Given the alm/blm coefficient file (case.almblm, or the spin pair +case.almblmup / case.almblmdn) and the projector definition (case.indmftpr), +this selects, per k-point and spin, the contiguous band range whose Fermi- +shifted Kohn-Sham eigenvalues fall in the energy window, and writes the +result in the case.oubwin format read by the charge self-consistency. + +It reproduces the Fortran path: read elecn/nk/nloat/eferm from the almblm +header (outbwin.f / dmftproj.f), parse the energy window (e_bot, e_top, +proj_mode) from the last line of case.indmftpr, shift every band eigenvalue +by eferm, and apply the proj_mode==0 selection of set_projections.f +(strict lower bound e_bot < E, inclusive upper bound E <= e_top, yielding a +single contiguous [nb_bot, nb_top] per k). The weight written per included +k-point is the tetrahedron weight of the lowest band nbmin. + +Spin-polarization is detected from the input files: case.almblmup / +case.almblmdn present => two spin files (case.oubwinup / case.oubwindn), +otherwise the single case.oubwin. The spin-orbit flag (ifSO) comes from +case.indmftpr; with -so the up and dn windows must coincide and dmftproj +aborts otherwise, a check this generator also performs. +""" + +import os +import numpy as np + + +# --- list-directed token stream over a Fortran free-form text file ----------- + +class _Reader: + """Record-oriented reader mirroring Fortran list-directed and READ('()') + semantics on a free-form almblm file. + + `record()` returns the whitespace tokens of the next physical line (the + common case: every almblm logical record fits on one line). `skip()` + consumes one physical line unconditionally, matching READ('()').""" + + def __init__(self, path): + with open(path) as fh: + self._lines = fh.read().splitlines() + self._i = 0 + + def skip(self): + self._i += 1 + + def record(self): + toks = self._lines[self._i].split() + self._i += 1 + return toks + + +def _to_float(tok): + """Parse a Fortran real token, accepting D/d exponents (1.0D-3) and the + list-directed 4.57E-002 form. Python float already handles E/e and the + embedded sign in the exponent; only D/d needs translation.""" + return float(tok.replace('D', 'E').replace('d', 'e')) + + +# --- inputs ------------------------------------------------------------------ + +def _read_window(indmftpr): + """Energy/band window from the last non-empty line of case.indmftpr. + + Try list-directed `e_bot e_top proj_mode`; on failure fall back to + `e_bot e_top` with proj_mode=0 (dmftproj.f:182-197).""" + lines = [l for l in open(indmftpr).read().splitlines() if l.strip()] + toks = lines[-1].split() + e_bot, e_top = _to_float(toks[0]), _to_float(toks[1]) + proj_mode = int(toks[2]) if len(toks) >= 3 else 0 + return e_bot, e_top, proj_mode + + +def _read_indmftpr_geometry(indmftpr): + """Return (nsort, lmax) from case.indmftpr. nsort is its first value and + lmax its third (dmftproj.f:95). Both are needed to walk the per-sort + almblm header up to the k-loop.""" + raw = [l.split('!')[0].strip() for l in open(indmftpr)] + raw = [l for l in raw if l != ''] + nsort = int(raw[0].split()[0]) + lmax = int(raw[2].split()[0]) + return nsort, lmax + + +def _read_so_flag(indmftpr): + """Spin-orbit flag from case.indmftpr: the single integer line that + follows a correlated sort's irep specification (the value dmftproj stores + as ifSOflag). Returns 0 or 1.""" + raw = [l.split('!')[0].strip() for l in open(indmftpr)] + raw = [l for l in raw if l != ''] + nsort = int(raw[0].split()[0]) + i = 3 + so = 0 + for _ in range(nsort): + basis = raw[i].split()[0] + i += 1 + if basis == 'fromfile': + i += 1 + l_inc = [int(x) for x in raw[i].split()] + i += 1 + ireps = [int(x) for x in raw[i].split()] + i += 1 + correlated = any(v == 2 for v in l_inc) + if any(n > 0 for n in ireps): + i += 1 + if correlated: + so = int(raw[i].split()[0]) + i += 1 + return so + + +# --- almblm parsing ---------------------------------------------------------- + +def _read_almblm_windows(path, nsort, lmax): + """Read case.almblm and return (eferm, [(nbmin, nbmax, eband, weight) per + k-point]) for the FIRST atomic sort. nbmin/nbmax/eband/weight are identical + across sorts at a given k, so the first sort's k-loop suffices for window + selection. + + Follows the dmftproj.f read order field by field: header, then the first + sort's per-l header (u_dot_norm, nLO, nLO overlap lines), then its k-loop + (two skipped banner lines, the idum/nbmin/nbmax line, the per-band + rtetr/eband lines).""" + r = _Reader(path) + r.record() # elecn + nk = int(r.record()[0]) + r.record() # nloat + eferm = _to_float(r.record()[0]) # non-band path: eferm is header line 4 + + # First sort's per-l header: u_dot_norm, nLO, then nLO overlap lines. + for _ in range(lmax + 1): + r.record() # u_dot_norm(l) + nlo = int(r.record()[0]) + for _ in range(nlo): + r.record() # ovl_LO_u, ovl_LO_udot + + kpoints = [] + for _ in range(nk): + r.skip() # "IK = .. jatom=.." banner + r.skip() # 3-int line + idum_nb = r.record() + nbmin, nbmax = int(idum_nb[1]), int(idum_nb[2]) + eband = np.empty(nbmax - nbmin + 1) + weight = None + for off in range(nbmax - nbmin + 1): + toks = r.record() + rtetr = _to_float(toks[0]) + eband[off] = _to_float(toks[1]) + if off == 0: # tetrahedron weight of the lowest band + weight = rtetr + kpoints.append((nbmin, nbmax, eband, weight)) + return eferm, kpoints + + +# --- band-window selection (set_projections.f, proj_mode==0) ----------------- + +def _select_window(nbmin, nbmax, eband, eferm, e_bot, e_top): + """proj_mode==0 contiguous band selection for one k-point. + + Scan absolute band index ib = nbmin..nbmax over the Fermi-shifted energy + E = eband - eferm. The first ib with e_bot < E <= e_top opens the window; + the first ib above it with E > e_top closes it at ib-1 (scan exits). A + window reaching nbmax closes at nbmax. Returns (included, nb_bot, nb_top) + with nb_bot=nb_top=0 when no band qualifies.""" + included = False + nb_bot = nb_top = 0 + for off, ib in enumerate(range(nbmin, nbmax + 1)): + e = eband[off] - eferm + if not included and e_bot < e <= e_top: + included = True + nb_bot = ib + elif included and e > e_top: + nb_top = ib - 1 + break + elif ib == nbmax and e_bot < e <= e_top: + nb_top = ib + included = True + if not included: + nb_bot = nb_top = 0 + return included, nb_bot, nb_top + + +def _windows_for_spin(almblm, indmftpr, nsort, lmax, e_bot, e_top, proj_mode): + """Per-k (included, nb_bot, nb_top, weight) for one spin's almblm file.""" + if proj_mode != 0: + raise NotImplementedError( + 'oubwin generation is implemented for the energy-window ' + 'projection mode (proj_mode==0); band-index modes 1 and 2 are ' + 'not yet covered by a test fixture') + eferm, kpoints = _read_almblm_windows(almblm, nsort, lmax) + out = [] + for nbmin, nbmax, eband, weight in kpoints: + incl, nb_bot, nb_top = _select_window( + nbmin, nbmax, eband, eferm, e_bot, e_top) + out.append((incl, nb_bot, nb_top, weight)) + return out + + +# --- output ------------------------------------------------------------------ + +def _write_oubwin_file(path, ifso, windows): + """Write one case.oubwin spin file (outbwin.f). Integer fields are i6; + the per-k weight is a list-directed real. Not-included k-points emit only + the flag line.""" + with open(path, 'w') as f: + f.write('%6d\n' % len(windows)) + f.write('%6d\n' % (1 if ifso else 0)) + for incl, nb_bot, nb_top, weight in windows: + f.write('%6d\n' % (1 if incl else 0)) + if incl: + f.write('%6d%6d\n' % (nb_bot, nb_top)) + f.write(' %.16f \n' % weight) + + +def write_oubwin(case): + """Read .almblm{up,dn} (or .almblm) and write the matching + .oubwin{up,dn} (or .oubwin) in the dmftproj format. + + Spin-polarization is inferred from the input files. The spin-orbit flag + written into every file comes from case.indmftpr; under -sp+-so the up/dn + windows must coincide (dmftproj aborts otherwise).""" + indmftpr = case + '.indmftpr' + nsort, lmax = _read_indmftpr_geometry(indmftpr) + ifso = _read_so_flag(indmftpr) + e_bot, e_top, proj_mode = _read_window(indmftpr) + + up, dn = case + '.almblmup', case + '.almblmdn' + spin_polarized = os.path.exists(up) and os.path.exists(dn) + + if spin_polarized: + win_up = _windows_for_spin( + up, indmftpr, nsort, lmax, e_bot, e_top, proj_mode) + win_dn = _windows_for_spin( + dn, indmftpr, nsort, lmax, e_bot, e_top, proj_mode) + if ifso: + for u, d in zip(win_up, win_dn): + if u[0] != d[0] or u[1] != d[1] or u[2] != d[2]: + raise ValueError( + 'spin-orbit run requires identical up/dn band ' + 'windows at every k-point') + _write_oubwin_file(case + '.oubwinup', ifso, win_up) + _write_oubwin_file(case + '.oubwindn', ifso, win_dn) + else: + win = _windows_for_spin( + case + '.almblm', indmftpr, nsort, lmax, e_bot, e_top, proj_mode) + _write_oubwin_file(case + '.oubwin', ifso, win) diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index 133bfd8..1385242 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -44,3 +44,13 @@ add_test(NAME Py_wien2k_symqmc_mixing WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_symqmc_mixing APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Pure-Python case.oubwin band-window generator vs the dmftproj Fortran output. +# Reuses the committed CaOs2.oubwin{up,dn} references; adds the truncated almblm +# inputs (header + first-sort band block, ~5 kB each) the selection reads. +file(COPY CaOs2.almblmup CaOs2.almblmdn DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +add_test(NAME Py_wien2k_oubwin_python + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_oubwin_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_oubwin_python APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2.almblmdn b/test/python/wien2k/CaOs2.almblmdn new file mode 100644 index 0000000..c123dc5 --- /dev/null +++ b/test/python/wien2k/CaOs2.almblmdn @@ -0,0 +1,120 @@ + 65.9999999999000 + 1 + 3 + 0.652900122465311 + 4.580826538128749E-002 + 1 + 0.291129952525005 -0.192673733463551 + 0.296506201594592 + 1 + 0.576909222153695 0.442291231651807 + 9.383683280012439E-002 + 0 + 4.414705076471807E-003 + 0 + IK = 1 jatom= 1 + 391 92 1 + 1 1 92 + 1.00000000000000 -3.22056014343655 + 1.00000000000000 -3.21461811001121 + 1.00000000000000 -3.20923859624437 + 1.00000000000000 -3.20329567607539 + 1.00000000000000 -2.88017488464145 + 1.00000000000000 -2.87982724156708 + 1.00000000000000 -2.87959375545391 + 1.00000000000000 -2.87923434784543 + 1.00000000000000 -2.87874570634521 + 1.00000000000000 -2.87863164877396 + 1.00000000000000 -2.87857086935103 + 1.00000000000000 -2.87819960621795 + 1.00000000000000 -2.87581635861086 + 1.00000000000000 -2.87566233853908 + 1.00000000000000 -2.87518920177259 + 1.00000000000000 -2.87514478212652 + 1.00000000000000 -2.67534239892586 + 1.00000000000000 -2.67488944653131 + 1.00000000000000 -2.67360463788332 + 1.00000000000000 -2.67320408277393 + 1.00000000000000 -2.67314971219148 + 1.00000000000000 -2.67311757700548 + 1.00000000000000 -2.67288602767347 + 1.00000000000000 -2.67286801422143 + 1.00000000000000 -2.67264620389985 + 1.00000000000000 -2.67249102814415 + 1.00000000000000 -2.67035533452816 + 1.00000000000000 -2.67031314980662 + 1.00000000000000 -2.66921415575644 + 1.00000000000000 -2.66887544870739 + 1.00000000000000 -2.66780705408376 + 1.00000000000000 -2.66765986562395 + 1.00000000000000 -2.44299374928113 + 1.00000000000000 -2.43426468040143 + 1.00000000000000 -2.43097928431342 + 1.00000000000000 -2.42225049463072 + 1.00000000000000 -2.42118669930322 + 1.00000000000000 -2.41239084306900 + 1.00000000000000 -2.40763407939665 + 1.00000000000000 -2.39885659106941 + 1.00000000000000 -2.21435965117213 + 1.00000000000000 -2.21282426067862 + 1.00000000000000 -0.854563982242140 + 1.00000000000000 -0.854128628470620 + 1.00000000000000 -0.828069969330602 + 1.00000000000000 -0.827589665926083 + 1.00000000000000 -0.826853408823867 + 1.00000000000000 -0.826466495582154 + 1.00000000000000 0.170136891056207 + 1.00000000000000 0.187688586353930 + 1.00000000000000 0.365639030027639 + 1.00000000000000 0.366354232101503 + 1.00000000000000 0.388306651259108 + 1.00000000000000 0.392177730952558 + 1.00000000000000 0.440123333257828 + 1.00000000000000 0.445647914935332 + 1.00000000000000 0.456228714168976 + 1.00000000000000 0.474050343790756 + 1.00000000000000 0.499840018089393 + 1.00000000000000 0.505702836123879 + 1.00000000000000 0.590212638912709 + 1.00000000000000 0.596108423307904 + 1.00000000000000 0.605960267184670 + 1.00000000000000 0.629169067489843 + 1.00000000000000 0.646971209176368 + 1.00000000000000 0.652900122465311 + 0.000000000000000E+000 0.722947919361931 + 0.000000000000000E+000 0.723016469783698 + 0.000000000000000E+000 0.753171127004679 + 0.000000000000000E+000 0.756694891508889 + 0.000000000000000E+000 0.798069895423337 + 0.000000000000000E+000 0.806381846577283 + 0.000000000000000E+000 0.857718544540452 + 0.000000000000000E+000 0.864990407532834 + 0.000000000000000E+000 0.866969267538417 + 0.000000000000000E+000 0.873860134466866 + 0.000000000000000E+000 1.10536621684366 + 0.000000000000000E+000 1.13380762504908 + 0.000000000000000E+000 1.13409196038627 + 0.000000000000000E+000 1.13686681812038 + 0.000000000000000E+000 1.13689552810630 + 0.000000000000000E+000 1.14001566027642 + 0.000000000000000E+000 1.31823590897055 + 0.000000000000000E+000 1.32493751926670 + 0.000000000000000E+000 1.36151964560207 + 0.000000000000000E+000 1.36796391236228 + 0.000000000000000E+000 1.39825835320191 + 0.000000000000000E+000 1.40490553835370 + 0.000000000000000E+000 1.41091008237414 + 0.000000000000000E+000 1.41551620057964 + 0.000000000000000E+000 1.48813355036653 + 0.000000000000000E+000 1.49202147850405 + + 1 + (1.236383618996560E-014,2.028035379238497E-014) + (6.006614831195222E-014,9.724817045921756E-014) + (-2.470535339447682E-015,-4.133116012878050E-015) + (-1.775100680890137E-016,-2.092430195826677E-015) + (2.660611694557938E-015,1.772537282833006E-015) + (-1.779516918326250E-015,-8.324438740320463E-016) + (-4.916331813620154E-014,3.410335661092729E-015) + (-2.093809740249459E-014,6.925352532032053E-016) + (2.907832754084928E-014,-3.985843884523681E-016) diff --git a/test/python/wien2k/CaOs2.almblmup b/test/python/wien2k/CaOs2.almblmup new file mode 100644 index 0000000..21e80b9 --- /dev/null +++ b/test/python/wien2k/CaOs2.almblmup @@ -0,0 +1,120 @@ + 65.9999999999000 + 1 + 3 + 0.652900122465311 + 4.570735184308691E-002 + 1 + 0.291072595910975 -0.192435873632398 + 0.296924659084150 + 1 + 0.576660006370798 0.442697300203438 + 9.401779905760564E-002 + 0 + 4.415570408150498E-003 + 0 + IK = 1 jatom= 1 + 391 92 1 + 1 1 92 + 1.00000000000000 -3.22056014343655 + 1.00000000000000 -3.21461811001121 + 1.00000000000000 -3.20923859624437 + 1.00000000000000 -3.20329567607539 + 1.00000000000000 -2.88017488464145 + 1.00000000000000 -2.87982724156708 + 1.00000000000000 -2.87959375545391 + 1.00000000000000 -2.87923434784543 + 1.00000000000000 -2.87874570634521 + 1.00000000000000 -2.87863164877396 + 1.00000000000000 -2.87857086935103 + 1.00000000000000 -2.87819960621795 + 1.00000000000000 -2.87581635861086 + 1.00000000000000 -2.87566233853908 + 1.00000000000000 -2.87518920177259 + 1.00000000000000 -2.87514478212652 + 1.00000000000000 -2.67534239892586 + 1.00000000000000 -2.67488944653131 + 1.00000000000000 -2.67360463788332 + 1.00000000000000 -2.67320408277393 + 1.00000000000000 -2.67314971219148 + 1.00000000000000 -2.67311757700548 + 1.00000000000000 -2.67288602767347 + 1.00000000000000 -2.67286801422143 + 1.00000000000000 -2.67264620389985 + 1.00000000000000 -2.67249102814415 + 1.00000000000000 -2.67035533452816 + 1.00000000000000 -2.67031314980662 + 1.00000000000000 -2.66921415575644 + 1.00000000000000 -2.66887544870739 + 1.00000000000000 -2.66780705408376 + 1.00000000000000 -2.66765986562395 + 1.00000000000000 -2.44299374928113 + 1.00000000000000 -2.43426468040143 + 1.00000000000000 -2.43097928431342 + 1.00000000000000 -2.42225049463072 + 1.00000000000000 -2.42118669930322 + 1.00000000000000 -2.41239084306900 + 1.00000000000000 -2.40763407939665 + 1.00000000000000 -2.39885659106941 + 1.00000000000000 -2.21435965117213 + 1.00000000000000 -2.21282426067862 + 1.00000000000000 -0.854563982242140 + 1.00000000000000 -0.854128628470620 + 1.00000000000000 -0.828069969330602 + 1.00000000000000 -0.827589665926083 + 1.00000000000000 -0.826853408823867 + 1.00000000000000 -0.826466495582154 + 1.00000000000000 0.170136891056207 + 1.00000000000000 0.187688586353930 + 1.00000000000000 0.365639030027639 + 1.00000000000000 0.366354232101503 + 1.00000000000000 0.388306651259108 + 1.00000000000000 0.392177730952558 + 1.00000000000000 0.440123333257828 + 1.00000000000000 0.445647914935332 + 1.00000000000000 0.456228714168976 + 1.00000000000000 0.474050343790756 + 1.00000000000000 0.499840018089393 + 1.00000000000000 0.505702836123879 + 1.00000000000000 0.590212638912709 + 1.00000000000000 0.596108423307904 + 1.00000000000000 0.605960267184670 + 1.00000000000000 0.629169067489843 + 1.00000000000000 0.646971209176368 + 1.00000000000000 0.652900122465311 + 0.000000000000000E+000 0.722947919361931 + 0.000000000000000E+000 0.723016469783698 + 0.000000000000000E+000 0.753171127004679 + 0.000000000000000E+000 0.756694891508889 + 0.000000000000000E+000 0.798069895423337 + 0.000000000000000E+000 0.806381846577283 + 0.000000000000000E+000 0.857718544540452 + 0.000000000000000E+000 0.864990407532834 + 0.000000000000000E+000 0.866969267538417 + 0.000000000000000E+000 0.873860134466866 + 0.000000000000000E+000 1.10536621684366 + 0.000000000000000E+000 1.13380762504908 + 0.000000000000000E+000 1.13409196038627 + 0.000000000000000E+000 1.13686681812038 + 0.000000000000000E+000 1.13689552810630 + 0.000000000000000E+000 1.14001566027642 + 0.000000000000000E+000 1.31823590897055 + 0.000000000000000E+000 1.32493751926670 + 0.000000000000000E+000 1.36151964560207 + 0.000000000000000E+000 1.36796391236228 + 0.000000000000000E+000 1.39825835320191 + 0.000000000000000E+000 1.40490553835370 + 0.000000000000000E+000 1.41091008237414 + 0.000000000000000E+000 1.41551620057964 + 0.000000000000000E+000 1.48813355036653 + 0.000000000000000E+000 1.49202147850405 + + 1 + (2.039359160566527E-012,6.023934835533450E-013) + (9.904547903728787E-012,2.755995943545251E-012) + (-4.835022705989683E-013,-1.342146542713132E-013) + (3.494101415706669E-014,-1.479669210816435E-015) + (2.095209225257023E-014,1.695374785647943E-016) + (-3.809476322787844E-014,5.130351005667586E-016) + (1.668932143036430E-014,-6.097270174711555E-015) + (-3.145304744035062E-015,-1.540187039927944E-015) + (2.332050706159039E-015,2.356193897060498E-015) diff --git a/test/python/wien2k/wien2k_oubwin_python.py b/test/python/wien2k/wien2k_oubwin_python.py new file mode 100644 index 0000000..3d3c339 --- /dev/null +++ b/test/python/wien2k/wien2k_oubwin_python.py @@ -0,0 +1,41 @@ +################################################################################ +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# (GPL-3.0-or-later) +################################################################################ + +# Verify the pure-Python case.oubwin generator (triqs_dftkit.wien2k.oubwin) +# reproduces the dmftproj Fortran output: regenerate case.oubwinup / case.oubwindn +# from case.almblm{up,dn} + case.indmftpr and compare byte for byte to the +# committed dmftproj references (the same files the SOC converter test consumes). +# +# CaOs2 is spin-orbit + spin-polarized; the almblm fixtures are truncated to the +# header and first-sort band block the window selection reads (the projector +# payload that follows is not needed for oubwin). + +import os +import shutil +import tempfile + +from triqs_dftkit.wien2k import oubwin + +HERE = os.path.dirname(os.path.abspath(__file__)) + + +def _check(case): + tmp = tempfile.mkdtemp() + try: + for ext in ('almblmup', 'almblmdn', 'indmftpr'): + shutil.copy(os.path.join(HERE, f'{case}.{ext}'), + os.path.join(tmp, f'{case}.{ext}')) + oubwin.write_oubwin(os.path.join(tmp, case)) + for ext in ('oubwinup', 'oubwindn'): + got = open(os.path.join(tmp, f'{case}.{ext}')).read() + ref = open(os.path.join(HERE, f'{case}.{ext}')).read() + assert got == ref, f'{case}.{ext} differs from dmftproj reference' + finally: + shutil.rmtree(tmp) + + +_check('CaOs2') + +print('wien2k_oubwin_python: ok') From 5a805f74e37854ea0f4576e39516ce47fafa25e7 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 15:11:08 +0200 Subject: [PATCH 04/16] [wien2k] pure-Python case.ctqmcout correlated-shell projectors Port the dmftproj projector core to numpy: read the almblm Alm/Clm coefficients, build the raw correlated projector over the in-window bands, apply the local rotation and cubic basis transform, Loewdin-orthonormalize the stacked shells (orthogonal_wannier_SO), and write case.ctqmcout. Matches the dmftproj CaOs2 reference to 4.3e-7 (the single-precision basis-transform floor); integer fields identical. cubic/complex bases; fromfile raises NotImplementedError pending a fixture. almblm fixtures switched to gzip (shared with the oubwin test). Part of #7. --- python/triqs_dftkit/wien2k/ctqmcout.py | 602 +++++++++++++++++++ test/python/wien2k/CMakeLists.txt | 15 +- test/python/wien2k/CaOs2.almblmdn | 120 ---- test/python/wien2k/CaOs2.almblmdn.gz | Bin 0 -> 234368 bytes test/python/wien2k/CaOs2.almblmup | 120 ---- test/python/wien2k/CaOs2.almblmup.gz | Bin 0 -> 234291 bytes test/python/wien2k/wien2k_ctqmcout_python.py | 65 ++ test/python/wien2k/wien2k_oubwin_python.py | 20 +- 8 files changed, 693 insertions(+), 249 deletions(-) create mode 100644 python/triqs_dftkit/wien2k/ctqmcout.py delete mode 100644 test/python/wien2k/CaOs2.almblmdn create mode 100644 test/python/wien2k/CaOs2.almblmdn.gz delete mode 100644 test/python/wien2k/CaOs2.almblmup create mode 100644 test/python/wien2k/CaOs2.almblmup.gz create mode 100644 test/python/wien2k/wien2k_ctqmcout_python.py diff --git a/python/triqs_dftkit/wien2k/ctqmcout.py b/python/triqs_dftkit/wien2k/ctqmcout.py new file mode 100644 index 0000000..009d456 --- /dev/null +++ b/python/triqs_dftkit/wien2k/ctqmcout.py @@ -0,0 +1,602 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +"""Pure-Python generation of the dmftproj correlated-shell projector file +(case.ctqmcout), replacing the projector path of the dmftproj Fortran +executable (outputqmc.f subroutine outqmc). + +Given the alm/blm coefficient files (case.almblmup / case.almblmdn, one per +spin), the projector definition (case.indmftpr), the structure +(case.struct) and the symmetry input (case.dmftsym), this rebuilds the +correlated (Wannier) projector pr_crorb%mat_rep and writes case.ctqmcout in +the format the converter reads. + +It follows the Fortran path field by field: + +- almblm read order (dmftproj.f:559-689): header, per-sort per-l overlap + block, then per-k banners + idum/nbmin/nbmax + rtetr/eband lines, then the + per-(l,m) (Alm,Blm) / Clm complex coefficients in the canonical Wien2k lm + packing lm = l*l + (m+l) + 1. +- band-window selection (set_projections.f:89-129, proj_mode==0). +- raw correlated projector P(m,ib) = Alm(lm) + sum_ilo Clm(ilo,lm)*ovl_LO_u + (set_projections.f:243-267); Blm and the radial s12 do not enter pr_crorb. +- local rotation rot_projectmat (Wigner-D of rotloc, identity here) then the + angular-basis transform mat_rep = transmat . (Rloc . P) where transmat = + is the cubic-harmonics transform (set_projections.f:450-478). +- Loewdin orthonormalization of the stacked correlated projectors, + P <- O^{-1/2} P with O = D D^H over all correlated rows + (orthogonal_wannier_SO, dmftproj.f:847). This step is what the ctqmcout + numbers carry; it is applied per k over the full ndim x nbands stack. +- the Rloc spinor block rotloc%rotrep (outputqmc.f:303-313), built from the + symmetry operation mapping the representative atom onto each equivalent one + (set_rotloc.f / setsym.f). + +ctqmcout layout is outputqmc.f:66-613. The cubic transform coefficients are +stored in dmftproj via a single-precision CMPLX cast (set_ang_trans.f:146); +to match the committed file the transmat is cast to complex64 before use +(the dft_tools #148 noise, e.g. 0.70710676908 for 1/sqrt2). +""" + +import math +import os +import numpy as np + + +# --- list-directed token stream over a Fortran free-form text file ----------- + +class _Reader: + def __init__(self, path): + with open(path) as fh: + self._lines = fh.read().splitlines() + self._i = 0 + + def skip(self): + self._i += 1 + + def record(self): + toks = self._lines[self._i].split() + self._i += 1 + return toks + + +def _to_float(tok): + return float(tok.replace('D', 'E').replace('d', 'e')) + + +def _to_complex(s): + s = s.strip().lstrip('(').rstrip(')') + re_s, im_s = s.split(',') + return complex(_to_float(re_s), _to_float(im_s)) + + +def _read_complex(r): + """Read one list-directed complex `(re,im)` value, possibly split over + whitespace tokens.""" + buf = list(r.record()) + while ')' not in ''.join(buf): + buf += r.record() + return _to_complex(''.join(buf)) + + +def _read_two_complex(r): + """Read a record holding two list-directed complex values (Alm, Blm).""" + buf = list(r.record()) + while ''.join(buf).count(')') < 2: + buf += r.record() + s = ''.join(buf) + cut = s.index(')') + 1 + return _to_complex(s[:cut]), _to_complex(s[cut:]) + + +# --- angular basis: cubic d transform transmat = ------------------ +# Wien2k cubic d convention dz2, dx2-y2, dxy, dxz, dyz (set_ang_trans cubic); +# identical to symqmc._CUBIC[2]. + +_CUBIC = { + 2: np.array([ + [0, 0, 1, 0, 0], + [2 ** -0.5, 0, 0, 0, 2 ** -0.5], + [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], + [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], + [0, 2 ** -0.5, 0, 2 ** -0.5, 0], + ], dtype=complex), +} + + +def _reptrans(basis, l): + """transmat = . dmftproj stores cubic/fromfile coefficients via a + single-precision CMPLX cast (set_ang_trans.f:146); reproduce the float32 + truncation so the written numbers match bit-for-bit.""" + if basis == 'cubic' and l in _CUBIC: + return _CUBIC[l].astype(np.complex64).astype(np.complex128) + return np.eye(2 * l + 1, dtype=complex) + + +# --- Wigner D matrix (dmftproj convention, setsym.f dmat) -------------------- + +def _small_d(l, m, n, b): + f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ + (math.factorial(l + n) * math.factorial(l - n)) + s = 0.0 + for t in range(0, 2 * l + 1): + if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: + f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ + (math.factorial(l - m - t) * math.factorial(m + n + t) * + math.factorial(l - n - t) * math.factorial(t)) + f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \ + else math.sin(b / 2) ** (2 * l - m - n - 2 * t) + f4 = 1.0 if (2 * t + n + m) == 0 \ + else math.cos(b / 2) ** (2 * t + n + m) + s += (-1) ** (l - m - t) * f2 * f3 * f4 + return math.sqrt(f1) * s + + +def _dmat(l, a, b, c, det): + D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + for n in range(-l, l + 1): + v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) + if det < -0.5: + v *= (-1) ** l + D[m + l, n + l] = v + return D + + +def _tmat(l): + T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + T[-m + l, m + l] = (-1) ** m + return T + + +def _sqrt_inv(O): + """O^{-1/2} of a Hermitian matrix (orthogonal.f sqrtm with inv=.TRUE.: + Z diag(w^{-1/2}) Z^H). dmftproj evaluates 1/sqrt of the eigenvalue as a + *complex* sqrt (W_comp = CMPLX(W,0)), so a (numerically) negative + eigenvalue contributes i/sqrt(|w|) rather than NaN; reproduce that with a + complex power. The final result D1 @ conj(Z).T matches sqrtm exactly.""" + w, Z = np.linalg.eigh(O) + D1 = Z * (w.astype(complex) ** -0.5) # Z @ diag(w^{-1/2}) + return D1 @ np.conj(Z).T + + +# --- inputs ------------------------------------------------------------------ + +def _read_indmftpr(indmftpr): + raw = [l.split('!')[0].strip() for l in open(indmftpr)] + raw = [l for l in raw if l != ''] + nsort = int(raw[0].split()[0]) + mult = [int(x) for x in raw[1].split()][:nsort] + lmax = int(raw[2].split()[0]) + i = 3 + so = 0 + sorts = [] + for isort in range(nsort): + basis = raw[i].split()[0] + i += 1 + if basis == 'fromfile': + i += 1 + l_inc = [int(x) for x in raw[i].split()] + i += 1 + ireps = [int(x) for x in raw[i].split()] + i += 1 + correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] + included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)] + if any(n > 0 for n in ireps): + i += 1 + if correlated_ls: + so = int(raw[i].split()[0]) + i += 1 + sorts.append(dict(basis=basis, correlated_ls=correlated_ls, + included_ls=included_ls)) + last = raw[-1].split() + e_bot, e_top = _to_float(last[0]), _to_float(last[1]) + proj_mode = int(last[2]) if len(last) >= 3 else 0 + return dict(nsort=nsort, mult=mult, lmax=lmax, sorts=sorts, so=so, + e_bot=e_bot, e_top=e_top, proj_mode=proj_mode) + + +def _read_dmftsym(path): + lines = open(path).read().split('\n') + nsym = int(lines[0].split()[0]) + perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] + starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l] + ops = [] + for k, s in enumerate(starts[:nsym]): + toks = lines[s + 1].split() + a, b, g = (math.radians(float(x)) for x in toks[:3]) + iprop = int(toks[3]) + krotm = np.array([[_to_float(x) for x in lines[s + 2 + r].split()] + for r in range(3)]) + ops.append(dict(perm=perms[k], a=a, b=b, g=g, iprop=iprop, + krotm=krotm)) + return nsym, ops + + +# --- almblm parsing ---------------------------------------------------------- + +def _read_almblm(path, info): + nsort = info['nsort'] + lmax = info['lmax'] + mult = info['mult'] + nlm = (lmax + 1) ** 2 + natom = sum(mult) + + r = _Reader(path) + elecn = _to_float(r.record()[0]) + nk = int(r.record()[0]) + r.record() # nloat + eferm = _to_float(r.record()[0]) + + nLO = {} + ovl_LO_u = {} + kp = [None] * nk + + for isrt in range(1, nsort + 1): + for l in range(lmax + 1): + r.record() # u_dot_norm(l) + n = int(r.record()[0]) + nLO[(l, isrt)] = n + for ilo in range(1, n + 1): + toks = r.record() + ovl_LO_u[(ilo, l, isrt)] = _to_float(toks[0]) + for ik in range(nk): + r.skip() # "IK = .." banner + r.skip() # 3-int line + head = r.record() + nbmin, nbmax = int(head[1]), int(head[2]) + nb = nbmax - nbmin + 1 + if kp[ik] is None: + kp[ik] = dict( + nbmin=nbmin, nbmax=nbmax, eband=None, weight=None, + Alm=np.zeros((nlm, natom + 1, nb), dtype=complex), + Clm=np.zeros((1, nlm, natom + 1, nb), dtype=complex)) + eband = np.empty(nb) + weight = None + for off in range(nb): + toks = r.record() + if off == 0: + weight = _to_float(toks[0]) + eband[off] = _to_float(toks[1]) + eband = eband - eferm + if kp[ik]['eband'] is None: + kp[ik]['eband'] = eband + kp[ik]['weight'] = weight + for imu in range(1, mult[isrt - 1] + 1): + iatom = sum(mult[:isrt - 1]) + imu + r.skip() # banner + r.record() # idum + for off in range(nb): + lm = 0 + for l in range(lmax + 1): + for m in range(-l, l + 1): + alm, _blm = _read_two_complex(r) + kp[ik]['Alm'][lm, iatom, off] = alm + for ilo in range(nLO[(l, isrt)]): + clm = _read_complex(r) + kp[ik]['Clm'][ilo, lm, iatom, off] = clm + lm += 1 + + return dict(elecn=elecn, eferm=eferm, nk=nk, nlm=nlm, natom=natom, + nLO=nLO, ovl_LO_u=ovl_LO_u, kp=kp) + + +# --- band-window selection (set_projections.f, proj_mode==0) ----------------- + +def _select_window(nbmin, nbmax, eband, e1, e2): + included = False + nb_bot = nb_top = 0 + for off, ib in enumerate(range(nbmin, nbmax + 1)): + e = eband[off] + if not included and e > e1 and e <= e2: + included = True + nb_bot = ib + elif included and e > e2: + nb_top = ib - 1 + break + elif ib == nbmax and e > e1 and e <= e2: + nb_top = ib + included = True + if not included: + nb_bot = nb_top = 0 + return included, nb_bot, nb_top + + +# --- correlated / included orbital descriptors ------------------------------- + +def _build_crorbs(info): + crorbs = [] + for isort in range(1, info['nsort'] + 1): + sortinfo = info['sorts'][isort - 1] + for l in sortinfo['correlated_ls']: + for imu in range(1, info['mult'][isort - 1] + 1): + atom = sum(info['mult'][:isort - 1]) + imu + crorbs.append(dict(atom=atom, sort=isort, l=l, + basis=sortinfo['basis'], first=(imu == 1))) + return crorbs + + +def _build_orbs(info): + orbs = [] + for isort in range(1, info['nsort'] + 1): + sortinfo = info['sorts'][isort - 1] + for l in sortinfo['included_ls']: + for imu in range(1, info['mult'][isort - 1] + 1): + atom = sum(info['mult'][:isort - 1]) + imu + orbs.append(dict(atom=atom, sort=isort, l=l)) + return orbs + + +# --- Rloc spinor representation (set_rotloc.f / setsym.f) --------------------- + +def _rloc_rotrep(op, l, transmat): + """rotloc%rotrep(l)%mat, the 2(2l+1) spinor rotation in the new basis for a + non-mixing SO shell, with identity struct local rotation (rotloc_ref + Euler = 0). rotloc%rotl = blkdiag(ephase*D, conj(ephase)*D) with + D = D(R[isym])_{lm}, ephase = exp(i*phase/2); rotrep = S rotl S^H, + S = blkdiag(transmat, transmat). Returns (rotrep, timeinv).""" + a, b, g, iprop = op['a'], op['b'], op['g'], op['iprop'] + krotm = op['krotm'] + det2 = krotm[0, 0] * krotm[1, 1] - krotm[0, 1] * krotm[1, 0] + timeinv = det2 < 0.0 + phase = (g - a) if timeinv else (a + g) + D = _dmat(l, a, b, g, float(iprop)) + if timeinv: + D = _tmat(l) @ np.conj(D) # setsym.f:320-326 orbital time reversal + ephase = np.exp(1j * phase / 2) + d = 2 * l + 1 + rotl = np.zeros((2 * d, 2 * d), dtype=complex) + rotl[:d, :d] = ephase * D + rotl[d:, d:] = np.conj(ephase) * D + S = np.zeros((2 * d, 2 * d), dtype=complex) + S[:d, :d] = transmat + S[d:, d:] = transmat + rotrep = S @ rotl @ np.conj(S.T) + return rotrep, timeinv + + +# --- ctqmcout writer --------------------------------------------------------- + +def _fmt(x): + """One list-directed real, gfortran-style (leading sign space, ~17 sig).""" + return ' %.16E' % float(x) + + +def _w(f, arr): + f.write(''.join(_fmt(x) for x in arr) + '\n') + + +def _fmt_scalar(x): + x = float(x) + return '%.16f' % x if abs(x) < 1e5 else '%.16E' % x + + +def write_ctqmcout(case): + """Read .almblm{up,dn}, .indmftpr, .struct, + .dmftsym and write .ctqmcout in the dmftproj format.""" + info = _read_indmftpr(case + '.indmftpr') + nsym, ops = _read_dmftsym(case + '.dmftsym') + + up, dn = case + '.almblmup', case + '.almblmdn' + if os.path.exists(up) and os.path.exists(dn): + spin_files = [up, dn] + else: + spin_files = [case + '.almblm'] + ifSP = len(spin_files) == 2 + ifSO = bool(info['so']) + ns = 2 if ifSP else 1 + + spins = [_read_almblm(p, info) for p in spin_files] + nk = spins[0]['nk'] + elecn = spins[0]['elecn'] + + crorbs = _build_crorbs(info) + if any(cr['basis'] == 'fromfile' for cr in crorbs): + raise NotImplementedError( + 'ctqmcout for fromfile/mixing correlated bases is not yet covered ' + 'by a test fixture; cubic and complex bases are supported') + orbs = _build_orbs(info) + ncrorb = len(crorbs) + norb = len(orbs) + + # window in [e_bot, e_top] + windows = [] + for ik in range(nk): + kp = spins[0]['kp'][ik] + windows.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'], + info['e_bot'], info['e_top'])) + + # window below e_bot (for qbbot) + win_below = [] + for ik in range(nk): + kp = spins[0]['kp'][ik] + win_below.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'], + -1e6, info['e_bot'])) + + # qbbot: point integration over bands below e_bot, is=1 only under SO + qbbot = 0.0 + for ispin in range(ns): + for ik in range(nk): + incl, nb_bot, nb_top = win_below[ik] + if incl: + qbbot += (nb_top - nb_bot + 1) * spins[ispin]['kp'][ik]['weight'] + if ifSO: + break + + transmats = {(cr['l'], cr['sort']): _reptrans(cr['basis'], cr['l']) + for cr in crorbs} + + # rotloc Euler angles per crorb: the symmetry op mapping the representative + # atom of the sort onto this atom (set_rotloc.f). With identity struct + # local rotation, rotloc%(a,b,g,iprop) are that op's Euler angles, and + # rot_projectmat applies dmat(l, a, b, g, iprop) in the |lm> basis + # (rot_projectmat.f:59-65). For atom 2 this is a non-trivial in-plane + # rotation (a=270) that mixes the m-rows; omitting it flips the m=1,2 rows. + rotloc_op = {} + for icr, cr in enumerate(crorbs): + iref = sum(info['mult'][:cr['sort'] - 1]) + 1 + rotloc_op[icr] = next(o for o in ops + if o['perm'][iref - 1] == cr['atom']) + + # ---- raw correlated projector mat_rep, then Loewdin orthonormalize ---- + # mat_rep[(icr, ik, is)] -> (2l+1, nbsel) + mat_rep = {} + for icr, cr in enumerate(crorbs): + l = cr['l'] + atom = cr['atom'] + sort = cr['sort'] + transmat = transmats[(l, sort)] + op = rotloc_op[icr] + rot = _dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + kp0 = spins[0]['kp'][ik] + off_bot = nb_bot - kp0['nbmin'] + off_top = nb_top - kp0['nbmin'] + for ispin in range(ns): + sp = spins[ispin] + kp = sp['kp'][ik] + nlo = sp['nLO'][(l, sort)] + nbsel = off_top - off_bot + 1 + P = np.zeros((2 * l + 1, nbsel), dtype=complex) + for mi, m in enumerate(range(-l, l + 1)): + lm = l * l + (m + l) # 0-based packed index + for j, off in enumerate(range(off_bot, off_top + 1)): + val = kp['Alm'][lm, atom, off] + for ilo in range(nlo): + val += kp['Clm'][ilo, lm, atom, off] * \ + sp['ovl_LO_u'][(ilo + 1, l, sort)] + P[mi, j] = val + # rot_projectmat (local rotation) then the basis transform + P = transmat @ (rot @ P) + mat_rep[(icr, ik, ispin)] = P + + # Loewdin: per k stack all crorb rows (is=1 block then is=2 block per crorb) + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + blocks = [] + layout = [] # (icr, is, nrows) + for icr, cr in enumerate(crorbs): + l = cr['l'] + for ispin in range(ns): + blocks.append(mat_rep[(icr, ik, ispin)]) + layout.append((icr, ispin, 2 * l + 1)) + D = np.vstack(blocks) # ndim x nbnd + O = D @ np.conj(D.T) + S = _sqrt_inv(O) + D_orth = S @ D + row = 0 + for icr, ispin, nrows in layout: + mat_rep[(icr, ik, ispin)] = D_orth[row:row + nrows, :] + row += nrows + + # ---- Rloc rotrep per crorb ---- + rloc_blocks = [] + for cr in crorbs: + l = cr['l'] + transmat = transmats[(l, cr['sort'])] + iref = sum(info['mult'][:cr['sort'] - 1]) + 1 + op = next(o for o in ops if o['perm'][iref - 1] == cr['atom']) + rloc_blocks.append(_rloc_rotrep(op, l, transmat)) + + # ---- write ---- + with open(case + '.ctqmcout', 'w') as f: + f.write('13.605698\n') + f.write('%6d\n' % nk) + f.write('%6d\n' % (1 if ifSP else 0)) + f.write('%6d\n' % (1 if ifSO else 0)) + f.write(' %s\n' % _fmt_scalar(qbbot)) + f.write(' %s\n' % _fmt_scalar(elecn)) + + f.write('%6d\n' % norb) + for o in orbs: + dim = 2 * (2 * o['l'] + 1) if ifSO else 2 * o['l'] + 1 + f.write('%6d %6d %6d %6d \n' % (o['atom'], o['sort'], o['l'], dim)) + + f.write('%6d\n' % ncrorb) + for cr in crorbs: + l = cr['l'] + size = 2 * (2 * l + 1) if ifSO else 2 * l + 1 + f.write('%6d %6d %6d %6d %6d %6d \n' % + (cr['atom'], cr['sort'], l, size, 1, 1)) + + # Rloc block per crorb (non-mixing SP+SO whole shell) + for rotrep, timeinv in rloc_blocks: + for m in range(rotrep.shape[0]): + _w(f, rotrep[m, :].real) + for m in range(rotrep.shape[0]): + _w(f, rotrep[m, :].imag) + f.write('%6d\n' % (1 if timeinv else 0)) + + # complex-harmonics -> basis transform block (crorb%first only) + for cr in crorbs: + if not cr['first']: + continue + l = cr['l'] + transmat = transmats[(l, cr['sort'])] + d = 2 * l + 1 + spinrot = np.zeros((2 * d, 2 * d), dtype=complex) + spinrot[:d, :d] = transmat + spinrot[d:, d:] = transmat + f.write('%6d %6d \n' % (1, 2 * d)) + for m in range(2 * d): + _w(f, spinrot[m, :].real) + for m in range(2 * d): + _w(f, spinrot[m, :].imag) + + # number of bands per k (skip is=2 under SO) + for ispin in range(ns): + if ifSP and ifSO and ispin == 1: + continue + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + f.write('%6d\n' % abs(nb_top - nb_bot + 1)) + + # projector block: DO ik, DO icrorb (non-mixing SO whole-shell) + for ik in range(nk): + for icr, cr in enumerate(crorbs): + l = cr['l'] + for ispin in range(ns): + P = mat_rep[(icr, ik, ispin)] + for mi in range(2 * l + 1): + _w(f, P[mi, :].real) + for ispin in range(ns): + P = mat_rep[(icr, ik, ispin)] + for mi in range(2 * l + 1): + _w(f, P[mi, :].imag) + + # k-weights + for ik in range(nk): + f.write(' %s\n' % _fmt_scalar(spins[0]['kp'][ik]['weight'])) + + # H(k) eigenvalues (skip is=2 under SO) + for ispin in range(ns): + if ifSP and ifSO and ispin == 1: + continue + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + kp = spins[ispin]['kp'][ik] + for ib in range(nb_bot, nb_top + 1): + f.write(' %s\n' % _fmt_scalar(kp['eband'][ib - kp['nbmin']])) diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index 1385242..c651c72 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -46,11 +46,20 @@ set_property(TEST Py_wien2k_symqmc_mixing APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) # Pure-Python case.oubwin band-window generator vs the dmftproj Fortran output. -# Reuses the committed CaOs2.oubwin{up,dn} references; adds the truncated almblm -# inputs (header + first-sort band block, ~5 kB each) the selection reads. -file(COPY CaOs2.almblmup CaOs2.almblmdn DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +# Reuses the committed CaOs2.oubwin{up,dn} references and the gzipped CaOs2 +# almblm inputs (shared with the ctqmcout test). +file(COPY CaOs2.almblmup.gz CaOs2.almblmdn.gz DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) add_test(NAME Py_wien2k_oubwin_python COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_oubwin_python.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_oubwin_python APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Pure-Python case.ctqmcout correlated-shell projector generator vs the dmftproj +# Fortran output. Reuses CaOs2.ctqmcout / indmftpr / struct / dmftsym and the +# gzipped almblm; floats compared at 1e-6 (dmftproj single-precision floor). +add_test(NAME Py_wien2k_ctqmcout_python + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_ctqmcout_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_ctqmcout_python APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2.almblmdn b/test/python/wien2k/CaOs2.almblmdn deleted file mode 100644 index c123dc5..0000000 --- a/test/python/wien2k/CaOs2.almblmdn +++ /dev/null @@ -1,120 +0,0 @@ - 65.9999999999000 - 1 - 3 - 0.652900122465311 - 4.580826538128749E-002 - 1 - 0.291129952525005 -0.192673733463551 - 0.296506201594592 - 1 - 0.576909222153695 0.442291231651807 - 9.383683280012439E-002 - 0 - 4.414705076471807E-003 - 0 - IK = 1 jatom= 1 - 391 92 1 - 1 1 92 - 1.00000000000000 -3.22056014343655 - 1.00000000000000 -3.21461811001121 - 1.00000000000000 -3.20923859624437 - 1.00000000000000 -3.20329567607539 - 1.00000000000000 -2.88017488464145 - 1.00000000000000 -2.87982724156708 - 1.00000000000000 -2.87959375545391 - 1.00000000000000 -2.87923434784543 - 1.00000000000000 -2.87874570634521 - 1.00000000000000 -2.87863164877396 - 1.00000000000000 -2.87857086935103 - 1.00000000000000 -2.87819960621795 - 1.00000000000000 -2.87581635861086 - 1.00000000000000 -2.87566233853908 - 1.00000000000000 -2.87518920177259 - 1.00000000000000 -2.87514478212652 - 1.00000000000000 -2.67534239892586 - 1.00000000000000 -2.67488944653131 - 1.00000000000000 -2.67360463788332 - 1.00000000000000 -2.67320408277393 - 1.00000000000000 -2.67314971219148 - 1.00000000000000 -2.67311757700548 - 1.00000000000000 -2.67288602767347 - 1.00000000000000 -2.67286801422143 - 1.00000000000000 -2.67264620389985 - 1.00000000000000 -2.67249102814415 - 1.00000000000000 -2.67035533452816 - 1.00000000000000 -2.67031314980662 - 1.00000000000000 -2.66921415575644 - 1.00000000000000 -2.66887544870739 - 1.00000000000000 -2.66780705408376 - 1.00000000000000 -2.66765986562395 - 1.00000000000000 -2.44299374928113 - 1.00000000000000 -2.43426468040143 - 1.00000000000000 -2.43097928431342 - 1.00000000000000 -2.42225049463072 - 1.00000000000000 -2.42118669930322 - 1.00000000000000 -2.41239084306900 - 1.00000000000000 -2.40763407939665 - 1.00000000000000 -2.39885659106941 - 1.00000000000000 -2.21435965117213 - 1.00000000000000 -2.21282426067862 - 1.00000000000000 -0.854563982242140 - 1.00000000000000 -0.854128628470620 - 1.00000000000000 -0.828069969330602 - 1.00000000000000 -0.827589665926083 - 1.00000000000000 -0.826853408823867 - 1.00000000000000 -0.826466495582154 - 1.00000000000000 0.170136891056207 - 1.00000000000000 0.187688586353930 - 1.00000000000000 0.365639030027639 - 1.00000000000000 0.366354232101503 - 1.00000000000000 0.388306651259108 - 1.00000000000000 0.392177730952558 - 1.00000000000000 0.440123333257828 - 1.00000000000000 0.445647914935332 - 1.00000000000000 0.456228714168976 - 1.00000000000000 0.474050343790756 - 1.00000000000000 0.499840018089393 - 1.00000000000000 0.505702836123879 - 1.00000000000000 0.590212638912709 - 1.00000000000000 0.596108423307904 - 1.00000000000000 0.605960267184670 - 1.00000000000000 0.629169067489843 - 1.00000000000000 0.646971209176368 - 1.00000000000000 0.652900122465311 - 0.000000000000000E+000 0.722947919361931 - 0.000000000000000E+000 0.723016469783698 - 0.000000000000000E+000 0.753171127004679 - 0.000000000000000E+000 0.756694891508889 - 0.000000000000000E+000 0.798069895423337 - 0.000000000000000E+000 0.806381846577283 - 0.000000000000000E+000 0.857718544540452 - 0.000000000000000E+000 0.864990407532834 - 0.000000000000000E+000 0.866969267538417 - 0.000000000000000E+000 0.873860134466866 - 0.000000000000000E+000 1.10536621684366 - 0.000000000000000E+000 1.13380762504908 - 0.000000000000000E+000 1.13409196038627 - 0.000000000000000E+000 1.13686681812038 - 0.000000000000000E+000 1.13689552810630 - 0.000000000000000E+000 1.14001566027642 - 0.000000000000000E+000 1.31823590897055 - 0.000000000000000E+000 1.32493751926670 - 0.000000000000000E+000 1.36151964560207 - 0.000000000000000E+000 1.36796391236228 - 0.000000000000000E+000 1.39825835320191 - 0.000000000000000E+000 1.40490553835370 - 0.000000000000000E+000 1.41091008237414 - 0.000000000000000E+000 1.41551620057964 - 0.000000000000000E+000 1.48813355036653 - 0.000000000000000E+000 1.49202147850405 - - 1 - (1.236383618996560E-014,2.028035379238497E-014) - (6.006614831195222E-014,9.724817045921756E-014) - (-2.470535339447682E-015,-4.133116012878050E-015) - (-1.775100680890137E-016,-2.092430195826677E-015) - (2.660611694557938E-015,1.772537282833006E-015) - (-1.779516918326250E-015,-8.324438740320463E-016) - (-4.916331813620154E-014,3.410335661092729E-015) - (-2.093809740249459E-014,6.925352532032053E-016) - (2.907832754084928E-014,-3.985843884523681E-016) diff --git a/test/python/wien2k/CaOs2.almblmdn.gz b/test/python/wien2k/CaOs2.almblmdn.gz new file mode 100644 index 0000000000000000000000000000000000000000..b8fabd6a7b93392cd84431d55fbd802ec542601e GIT binary patch literal 234368 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 z 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

d9K|{{N+7n0E%Zp1}w+ox$YA+=1kIf0@-pS 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

V+!$Dl#_PZK)Zt3(T}O`bx)z^)%__wJ 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 z%0A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 literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2.almblmup b/test/python/wien2k/CaOs2.almblmup deleted file mode 100644 index 21e80b9..0000000 --- a/test/python/wien2k/CaOs2.almblmup +++ /dev/null @@ -1,120 +0,0 @@ - 65.9999999999000 - 1 - 3 - 0.652900122465311 - 4.570735184308691E-002 - 1 - 0.291072595910975 -0.192435873632398 - 0.296924659084150 - 1 - 0.576660006370798 0.442697300203438 - 9.401779905760564E-002 - 0 - 4.415570408150498E-003 - 0 - IK = 1 jatom= 1 - 391 92 1 - 1 1 92 - 1.00000000000000 -3.22056014343655 - 1.00000000000000 -3.21461811001121 - 1.00000000000000 -3.20923859624437 - 1.00000000000000 -3.20329567607539 - 1.00000000000000 -2.88017488464145 - 1.00000000000000 -2.87982724156708 - 1.00000000000000 -2.87959375545391 - 1.00000000000000 -2.87923434784543 - 1.00000000000000 -2.87874570634521 - 1.00000000000000 -2.87863164877396 - 1.00000000000000 -2.87857086935103 - 1.00000000000000 -2.87819960621795 - 1.00000000000000 -2.87581635861086 - 1.00000000000000 -2.87566233853908 - 1.00000000000000 -2.87518920177259 - 1.00000000000000 -2.87514478212652 - 1.00000000000000 -2.67534239892586 - 1.00000000000000 -2.67488944653131 - 1.00000000000000 -2.67360463788332 - 1.00000000000000 -2.67320408277393 - 1.00000000000000 -2.67314971219148 - 1.00000000000000 -2.67311757700548 - 1.00000000000000 -2.67288602767347 - 1.00000000000000 -2.67286801422143 - 1.00000000000000 -2.67264620389985 - 1.00000000000000 -2.67249102814415 - 1.00000000000000 -2.67035533452816 - 1.00000000000000 -2.67031314980662 - 1.00000000000000 -2.66921415575644 - 1.00000000000000 -2.66887544870739 - 1.00000000000000 -2.66780705408376 - 1.00000000000000 -2.66765986562395 - 1.00000000000000 -2.44299374928113 - 1.00000000000000 -2.43426468040143 - 1.00000000000000 -2.43097928431342 - 1.00000000000000 -2.42225049463072 - 1.00000000000000 -2.42118669930322 - 1.00000000000000 -2.41239084306900 - 1.00000000000000 -2.40763407939665 - 1.00000000000000 -2.39885659106941 - 1.00000000000000 -2.21435965117213 - 1.00000000000000 -2.21282426067862 - 1.00000000000000 -0.854563982242140 - 1.00000000000000 -0.854128628470620 - 1.00000000000000 -0.828069969330602 - 1.00000000000000 -0.827589665926083 - 1.00000000000000 -0.826853408823867 - 1.00000000000000 -0.826466495582154 - 1.00000000000000 0.170136891056207 - 1.00000000000000 0.187688586353930 - 1.00000000000000 0.365639030027639 - 1.00000000000000 0.366354232101503 - 1.00000000000000 0.388306651259108 - 1.00000000000000 0.392177730952558 - 1.00000000000000 0.440123333257828 - 1.00000000000000 0.445647914935332 - 1.00000000000000 0.456228714168976 - 1.00000000000000 0.474050343790756 - 1.00000000000000 0.499840018089393 - 1.00000000000000 0.505702836123879 - 1.00000000000000 0.590212638912709 - 1.00000000000000 0.596108423307904 - 1.00000000000000 0.605960267184670 - 1.00000000000000 0.629169067489843 - 1.00000000000000 0.646971209176368 - 1.00000000000000 0.652900122465311 - 0.000000000000000E+000 0.722947919361931 - 0.000000000000000E+000 0.723016469783698 - 0.000000000000000E+000 0.753171127004679 - 0.000000000000000E+000 0.756694891508889 - 0.000000000000000E+000 0.798069895423337 - 0.000000000000000E+000 0.806381846577283 - 0.000000000000000E+000 0.857718544540452 - 0.000000000000000E+000 0.864990407532834 - 0.000000000000000E+000 0.866969267538417 - 0.000000000000000E+000 0.873860134466866 - 0.000000000000000E+000 1.10536621684366 - 0.000000000000000E+000 1.13380762504908 - 0.000000000000000E+000 1.13409196038627 - 0.000000000000000E+000 1.13686681812038 - 0.000000000000000E+000 1.13689552810630 - 0.000000000000000E+000 1.14001566027642 - 0.000000000000000E+000 1.31823590897055 - 0.000000000000000E+000 1.32493751926670 - 0.000000000000000E+000 1.36151964560207 - 0.000000000000000E+000 1.36796391236228 - 0.000000000000000E+000 1.39825835320191 - 0.000000000000000E+000 1.40490553835370 - 0.000000000000000E+000 1.41091008237414 - 0.000000000000000E+000 1.41551620057964 - 0.000000000000000E+000 1.48813355036653 - 0.000000000000000E+000 1.49202147850405 - - 1 - (2.039359160566527E-012,6.023934835533450E-013) - (9.904547903728787E-012,2.755995943545251E-012) - (-4.835022705989683E-013,-1.342146542713132E-013) - (3.494101415706669E-014,-1.479669210816435E-015) - (2.095209225257023E-014,1.695374785647943E-016) - (-3.809476322787844E-014,5.130351005667586E-016) - (1.668932143036430E-014,-6.097270174711555E-015) - (-3.145304744035062E-015,-1.540187039927944E-015) - (2.332050706159039E-015,2.356193897060498E-015) diff --git a/test/python/wien2k/CaOs2.almblmup.gz b/test/python/wien2k/CaOs2.almblmup.gz new file mode 100644 index 0000000000000000000000000000000000000000..b8a7d3dee9812e8db0f0e3fd6ed4c6f11bfe1943 GIT binary patch literal 234291 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

uNmLZATD8_k<`~*xLZJwOh3@1 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

M&Yn3nGzC)pCP`MubB<+wDn&U| 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 literal 0 HcmV?d00001 diff --git a/test/python/wien2k/wien2k_ctqmcout_python.py b/test/python/wien2k/wien2k_ctqmcout_python.py new file mode 100644 index 0000000..5ee017d --- /dev/null +++ b/test/python/wien2k/wien2k_ctqmcout_python.py @@ -0,0 +1,65 @@ +################################################################################ +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# (GPL-3.0-or-later) +################################################################################ + +# Verify the pure-Python case.ctqmcout generator (triqs_dftkit.wien2k.ctqmcout) +# reproduces the dmftproj Fortran correlated-shell projectors: regenerate +# case.ctqmcout from case.almblm{up,dn} + case.indmftpr + case.struct + +# case.dmftsym and compare to the committed dmftproj reference. +# +# CaOs2 is spin-orbit + spin-polarized, cubic, two equivalent correlated d atoms. +# Integer fields must match exactly; floats are compared at 1e-6: dmftproj stores +# the cubic basis transform through a single-precision CMPLX cast, so its +# projectors carry ~1e-7 noise that the double-precision generator reproduces to +# the same floor (cf. the symqmc mixing test). + +import gzip +import os +import shutil +import tempfile + +from triqs_dftkit.wien2k import ctqmcout + +HERE = os.path.dirname(os.path.abspath(__file__)) + + +def _gunzip(src, dst): + with gzip.open(src, 'rb') as fi, open(dst, 'wb') as fo: + shutil.copyfileobj(fi, fo) + + +def _compare(got_path, ref_path): + got = open(got_path).read().split() + ref = open(ref_path).read().split() + assert len(got) == len(ref), (len(got), len(ref)) + max_int, max_float = 0, 0.0 + for a, b in zip(got, ref): + ia, ib = a.lstrip('-').isdigit(), b.lstrip('-').isdigit() + if ia and ib: + max_int = max(max_int, abs(int(a) - int(b))) + else: + max_float = max(max_float, abs(float(a) - float(b))) + assert max_int == 0, f'integer field differs (max {max_int})' + assert max_float < 1e-6, f'float field differs (max {max_float:.2e})' + + +def _check(case): + tmp = tempfile.mkdtemp() + try: + for ext in ('indmftpr', 'struct', 'dmftsym'): + shutil.copy(os.path.join(HERE, f'{case}.{ext}'), + os.path.join(tmp, f'{case}.{ext}')) + for ext in ('almblmup', 'almblmdn'): + _gunzip(os.path.join(HERE, f'{case}.{ext}.gz'), + os.path.join(tmp, f'{case}.{ext}')) + ctqmcout.write_ctqmcout(os.path.join(tmp, case)) + _compare(os.path.join(tmp, f'{case}.ctqmcout'), + os.path.join(HERE, f'{case}.ctqmcout')) + finally: + shutil.rmtree(tmp) + + +_check('CaOs2') + +print('wien2k_ctqmcout_python: ok') diff --git a/test/python/wien2k/wien2k_oubwin_python.py b/test/python/wien2k/wien2k_oubwin_python.py index 3d3c339..bb80d2b 100644 --- a/test/python/wien2k/wien2k_oubwin_python.py +++ b/test/python/wien2k/wien2k_oubwin_python.py @@ -8,10 +8,11 @@ # from case.almblm{up,dn} + case.indmftpr and compare byte for byte to the # committed dmftproj references (the same files the SOC converter test consumes). # -# CaOs2 is spin-orbit + spin-polarized; the almblm fixtures are truncated to the -# header and first-sort band block the window selection reads (the projector -# payload that follows is not needed for oubwin). +# CaOs2 is spin-orbit + spin-polarized. The almblm fixtures are gzipped to keep +# the tree small (they are shared with the ctqmcout test, which needs the full +# projector payload). +import gzip import os import shutil import tempfile @@ -21,12 +22,19 @@ HERE = os.path.dirname(os.path.abspath(__file__)) +def _gunzip(src, dst): + with gzip.open(src, 'rb') as fi, open(dst, 'wb') as fo: + shutil.copyfileobj(fi, fo) + + def _check(case): tmp = tempfile.mkdtemp() try: - for ext in ('almblmup', 'almblmdn', 'indmftpr'): - shutil.copy(os.path.join(HERE, f'{case}.{ext}'), - os.path.join(tmp, f'{case}.{ext}')) + shutil.copy(os.path.join(HERE, f'{case}.indmftpr'), + os.path.join(tmp, f'{case}.indmftpr')) + for ext in ('almblmup', 'almblmdn'): + _gunzip(os.path.join(HERE, f'{case}.{ext}.gz'), + os.path.join(tmp, f'{case}.{ext}')) oubwin.write_oubwin(os.path.join(tmp, case)) for ext in ('oubwinup', 'oubwindn'): got = open(os.path.join(tmp, f'{case}.{ext}')).read() From d5eaaa410c05751f98297175d58e64146e5c506d Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 15:56:49 +0200 Subject: [PATCH 05/16] [wien2k] pure-Python case.sympar partial-shell symmetry matrices Port the dmftproj case.sympar writer to numpy: the symmetry matrices for all included shells (correlated + partial), the partial-charge analog of symqmc. Matches the dmftproj CaOs2_partial reference (an added uncorrelated Ca d-shell) to 4.4e-8. cubic/complex bases; fromfile raises NotImplementedError. Part of #7. --- python/triqs_dftkit/wien2k/sympar.py | 281 +++++++++++++++++++++ test/python/wien2k/CMakeLists.txt | 11 + test/python/wien2k/CaOs2_partial.indmftpr | 11 + test/python/wien2k/CaOs2_partial.sympar.gz | Bin 0 -> 8421 bytes test/python/wien2k/wien2k_sympar_python.py | 65 +++++ 5 files changed, 368 insertions(+) create mode 100644 python/triqs_dftkit/wien2k/sympar.py create mode 100644 test/python/wien2k/CaOs2_partial.indmftpr create mode 100644 test/python/wien2k/CaOs2_partial.sympar.gz create mode 100644 test/python/wien2k/wien2k_sympar_python.py diff --git a/python/triqs_dftkit/wien2k/sympar.py b/python/triqs_dftkit/wien2k/sympar.py new file mode 100644 index 0000000..1600324 --- /dev/null +++ b/python/triqs_dftkit/wien2k/sympar.py @@ -0,0 +1,281 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by M. Aichhorn, L. Pourovskii, V. Vildosola +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +"""Pure-Python generation of the dmftproj included-shell symmetry file +(case.sympar), replacing the corresponding output of the dmftproj Fortran +executable (outputqmc.f, unit ousympar). + +case.sympar is the sibling of case.symqmc. Both write the same per-operation +spinor symmetry matrix srot(isym)%rotrep(l,isrt)%mat (setsym.f), built +identically for every shell as transmat . D(R)_lm . transmat^dag. They differ +only in the shell list: symqmc covers the CORRELATED shells (l_inc==2), sympar +covers ALL INCLUDED shells (l_inc in {1,2}), iterating orb(1:norb) instead of +crorb(1:ncrorb). The orb ordering is (sort, l, atom) per dmftproj.f:357-387. + +The per-shell basis transmat is per sort: a complex shell uses the exact +identity, a cubic shell uses the single-precision CMPLX cast of the cubic-d +harmonics (set_ang_trans.f:146), giving 0.70710676908 for 1/sqrt2 — the same +truncation ctqmcout carries. Mixed within one file (Ca complex exact, Os cubic +truncated for CaOs2). + +sympar drops three things symqmc/ctqmcout carry: no orbital-description block +at the top, no ifsplit/irep sub-block selection (always the full matrix), and +no crorb%ifSOat/correp metadata. It is purely group-theoretic: header, perms, +optional timeflag line (ifSP), the representation matrices, and — only when +.not.ifSP — a paramagnetic time-reversal operator per orbital. + +This reference case (CaOs2) is SP+SO: indmftpr SO flag=1 sets ifSO, and +ifSO=>ifSP, so it exercises the non-mixing 2*(2l+1)=10-wide block-diag spinor +path and writes the timeflag line; the paramagnetic tail is absent. +""" + +import math +import os +import numpy as np + + +# --- angular bases ----------------------------------------------------------- +# transpose(P) = , m = -l..l. dmftproj stores cubic/fromfile coefficients +# via a single-precision CMPLX cast (set_ang_trans.f:146); reproduce the +# float32 truncation so the written numbers match (0.70710676908 for 1/sqrt2). +# A complex basis is the exact identity (no cast). + +_CUBIC = { + 1: np.array([[0, 1, 0], [-1j, 0, -1j], [1, 0, -1]], dtype=complex), + 2: np.array([ + [0, 0, 1, 0, 0], + [2 ** -0.5, 0, 0, 0, 2 ** -0.5], + [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], + [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], + [0, 2 ** -0.5, 0, 2 ** -0.5, 0], + ], dtype=complex), +} + + +def _reptrans(basis, l): + if basis == 'cubic' and l in _CUBIC: + return _CUBIC[l].astype(np.complex64).astype(np.complex128) + return np.eye(2 * l + 1, dtype=complex) + + +# --- Wigner D matrix (dmftproj convention, setsym.f) ------------------------- + +def _small_d(l, m, n, b): + f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ + (math.factorial(l + n) * math.factorial(l - n)) + s = 0.0 + for t in range(0, 2 * l + 1): + if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: + f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ + (math.factorial(l - m - t) * math.factorial(m + n + t) * + math.factorial(l - n - t) * math.factorial(t)) + f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \ + else math.sin(b / 2) ** (2 * l - m - n - 2 * t) + f4 = 1.0 if (2 * t + n + m) == 0 \ + else math.cos(b / 2) ** (2 * t + n + m) + s += (-1) ** (l - m - t) * f2 * f3 * f4 + return math.sqrt(f1) * s + + +def _dmat(l, a, b, c, det): + D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + for n in range(-l, l + 1): + v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) + if det < -0.5: + v *= (-1) ** l + D[m + l, n + l] = v + return D + + +def _tmat(l): + """T[m, -m] = (-1)^m, complex conjugation in the |lm> basis (timeinv.f).""" + T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + T[-m + l, m + l] = (-1) ** m + return T + + +def _timeinv_orbital(l, mat): + return _tmat(l) @ np.conj(mat) + + +# --- inputs ------------------------------------------------------------------ + +def _read_indmftpr(indmftpr): + """Return one entry per INCLUDED shell (l_inc in {1,2}), one per atom of its + sort, in orb order (sort, l, atom). Each shell carries l, basis name and the + transform P. Also returns the SO flag.""" + raw = [l.split('!')[0].strip() for l in open(indmftpr)] + raw = [l for l in raw if l != ''] + nsort = int(raw[0].split()[0]) + mult = [int(x) for x in raw[1].split()][:nsort] + i = 3 + so = 0 + shells = [] + for isort in range(nsort): + basis = raw[i].split()[0] + i += 1 + if basis == 'fromfile': + i += 1 + l_inc = [int(x) for x in raw[i].split()] + i += 1 + ireps = [int(x) for x in raw[i].split()] + i += 1 + correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] + included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)] + if any(n > 0 for n in ireps): + i += 1 # skip the correps line + if correlated_ls: + so = int(raw[i].split()[0]) # SO flag follows a correlated sort + i += 1 + for l in included_ls: + P = _reptrans(basis, l) + for imu in range(1, mult[isort] + 1): + atom = sum(mult[:isort]) + imu + shells.append(dict(l=l, sort=isort + 1, atom=atom, + basis=basis, P=P)) + return shells, so + + +def _read_dmftsym(path): + lines = open(path).read().split('\n') + nsym = int(lines[0].split()[0]) + perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] + starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l] + ops = [] + for k, s in enumerate(starts[:nsym]): + toks = lines[s + 1].split() + a, b, c = (math.radians(float(x)) for x in toks[:3]) + krotm = np.array([[float(x.replace('D', 'E').replace('d', 'e')) + for x in lines[s + 2 + r].split()] for r in range(3)]) + ops.append(dict(perm=perms[k], a=a, b=b, c=c, krotm=krotm)) + return nsym, ops + + +# --- matrix construction (shared with symqmc) -------------------------------- + +def _phase(op, ti): + a, c = op['a'], op['c'] + return (c - a) if ti else (a + c) # (g-a) on magnetic ops, else (a+g) + + +def _l0_matrix(op, ti): + e = np.exp(1j * _phase(op, ti) / 2) + return np.array([[e, 0], [0, np.conj(e)]], dtype=complex) + + +def _nonmixing_matrix(op, shell, ti): + """Non-mixing SP+SO whole shell: the up/up block scaled by +-(a+g)/2, + block-diagonal over spin, with the orbital time-reversal operator on the + magnetic operations (setsym.f, outputqmc.f:1292-1339).""" + l, P = shell['l'], shell['P'] + rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + if ti: + rotl = _timeinv_orbital(l, rotl) + rotrep = P @ rotl @ np.conj(P.T) + e = np.exp(1j * _phase(op, ti) / 2) + d = 2 * l + 1 + mat = np.zeros((2 * d, 2 * d), dtype=complex) + mat[:d, :d] = e * rotrep + mat[d:, d:] = np.conj(e) * rotrep + return mat + + +def _shell_matrix(op, shell, ti): + l = shell['l'] + if l == 0: + return _l0_matrix(op, ti) + return _nonmixing_matrix(op, shell, ti) + + +# --- output ------------------------------------------------------------------ + +def _fmt(x): + """One gfortran list-directed real (leading sign space, ~17 sig figs).""" + return ' %.16E' % float(x) + + +def _w(f, arr): + f.write(''.join(_fmt(x) for x in arr) + '\n') + + +def _write_matrix(f, mat): + for m in range(mat.shape[0]): + _w(f, mat[m, :].real) + for m in range(mat.shape[0]): + _w(f, mat[m, :].imag) + + +def write_sympar(case): + """Write .sympar from .dmftsym, .indmftpr, .struct. + + Detects ifSP/ifSO from the presence of .almblm{up,dn} and the indmftpr + SO flag, exactly as oubwin/symqmc/ctqmcout. For SP+SO the file carries the + timeflag line and 2*(2l+1)-wide block-diag spinor matrices; the paramagnetic + time-reversal tail is written only when .not.ifSP.""" + shells, so = _read_indmftpr(case + '.indmftpr') + if any(sh['basis'] == 'fromfile' for sh in shells): + raise NotImplementedError( + 'sympar for fromfile/mixing bases is not yet covered by a test ' + 'fixture; cubic and complex bases are supported') + nsym, ops = _read_dmftsym(case + '.dmftsym') + natom = len(ops[0]['perm']) + + ifSP = os.path.exists(case + '.almblmup') and os.path.exists(case + '.almblmdn') + ifSO = bool(so) + ifSP = ifSP or ifSO # ifSO => ifSP + + timeflag = [] + for op in ops: + det2 = (op['krotm'][0, 0] * op['krotm'][1, 1] + - op['krotm'][0, 1] * op['krotm'][1, 0]) + timeflag.append(1 if (ifSO and det2 < 0.0) else 0) + + with open(case + '.sympar', 'w') as f: + f.write('%6d %6d\n' % (nsym, natom)) + for op in ops: + f.write(''.join('%6d ' % p for p in op['perm']) + '\n') + if ifSP: + f.write(''.join('%6d ' % t for t in timeflag) + '\n') + + for isym, op in enumerate(ops): + for sh in shells: + l = sh['l'] + ti = bool(timeflag[isym]) + if l == 0 and not (ifSP and ifSO): + f.write(_fmt(1.0) + '\n') + f.write(_fmt(0.0) + '\n') + continue + _write_matrix(f, _shell_matrix(op, sh, ti)) + + if not ifSP: + for sh in shells: + l = sh['l'] + if l == 0: + f.write(_fmt(1.0) + '\n') + f.write(_fmt(0.0) + '\n') + continue + tm = _tmat(l) + op = sh['P'] @ tm @ sh['P'].T + ident = np.eye(2 * l + 1, dtype=complex) + time_op = op @ np.conj(ident) + _write_matrix(f, time_op) diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index c651c72..be961fd 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -63,3 +63,14 @@ add_test(NAME Py_wien2k_ctqmcout_python WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_ctqmcout_python APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Pure-Python case.sympar partial-shell symmetry generator vs the dmftproj +# Fortran output. The CaOs2_partial fixture adds an uncorrelated Ca d-shell to +# the correlated Os d-shells; inputs reuse the CaOs2 struct/dmftsym/almblm. +file(COPY CaOs2_partial.indmftpr CaOs2_partial.sympar.gz + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +add_test(NAME Py_wien2k_sympar_python + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_sympar_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_sympar_python APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2_partial.indmftpr b/test/python/wien2k/CaOs2_partial.indmftpr new file mode 100644 index 0000000..afcca02 --- /dev/null +++ b/test/python/wien2k/CaOs2_partial.indmftpr @@ -0,0 +1,11 @@ +2 +1 2 +3 +complex +0 0 1 0 +0 0 0 0 +cubic +0 0 2 0 +0 0 0 0 +1 +-0.15 0.30 diff --git a/test/python/wien2k/CaOs2_partial.sympar.gz b/test/python/wien2k/CaOs2_partial.sympar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d553f10dba18414e11a0e5d57aeab7de85232604 GIT binary patch literal 8421 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 m3#e-vs6P Date: Tue, 16 Jun 2026 15:58:26 +0200 Subject: [PATCH 06/16] [wien2k] pure-Python case.parproj partial projectors Port the dmftproj case.parproj writer to numpy: the partial projectors and density matrices for all included orbitals (radial s12 normalization, the point-integrated density matrix, the Rloc spinor rotations). Matches the dmftproj CaOs2_partial reference to 1.2e-8. cubic/complex bases; fromfile raises NotImplementedError. Part of #7. --- python/triqs_dftkit/wien2k/parproj.py | 817 ++++++++++++++++++++ test/python/wien2k/CMakeLists.txt | 9 + test/python/wien2k/CaOs2_partial.parproj.gz | Bin 0 -> 26896 bytes test/python/wien2k/wien2k_parproj_python.py | 63 ++ 4 files changed, 889 insertions(+) create mode 100644 python/triqs_dftkit/wien2k/parproj.py create mode 100644 test/python/wien2k/CaOs2_partial.parproj.gz create mode 100644 test/python/wien2k/wien2k_parproj_python.py diff --git a/python/triqs_dftkit/wien2k/parproj.py b/python/triqs_dftkit/wien2k/parproj.py new file mode 100644 index 0000000..91a3c97 --- /dev/null +++ b/python/triqs_dftkit/wien2k/parproj.py @@ -0,0 +1,817 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +"""Pure-Python generation of the dmftproj partial-projector file +(case.parproj), replacing the parproj path of the dmftproj Fortran executable +(outputqmc.f). + +This is the sibling of ctqmcout.py. Where ctqmcout covers the correlated +shells (crorb, l_inc==2) and runs them through the Loewdin orthonormalization, +parproj covers ALL included shells (orb, l_inc in {1,2}) and writes the RAW +radial-normalized Theta projector. The three structural differences from +ctqmcout are: + +1. No Loewdin orthonormalization. pr_orb%matn_rep is never touched by + orthogonal_wannier; the only normalization is the per-orbital radial + transform s12 = O_radial^{+1/2} (orthogonal_r with inv=.FALSE.) applied as + coeff.s12 per (m, ib) in set_projections.f:273-332. + +2. The Theta projector keeps the full radial vector coeff = [Alm, Blm, Clm...] + of length n = nLO+2; s12 is built from u_dot_norm, ovl_LO_u and the second + LO-overlap token ovl_LO_udot (set_projections.f:163-197). All n radial + channels are written separately (the ir loop). + +3. Three extra per-orbital blocks: the BZ-symmetrized, tetrahedron-weighted, + Rloc-rotated density matrix densmat (density.f + symmetrize_mat + rotdens_mat), + the per-orbital Rloc spinor rotrep (set_rotloc.f), and a time-reversal flag. + +The reference case CaOs2 is SP+SO (ifSP=ifSO=1, ns=2), so every per-orbital +matrix is the full 2*(2l+1)=10 spin+orbital block. The cubic transmat (cast to +complex64 for the Os shells, as dmftproj does in set_ang_trans.f:146) and the +rot_projectmat local rotation are applied to matn_rep before writing, exactly +as in ctqmcout. + +outputqmc.f parproj writer: 897-1183. set_projections.f s12/projector: +163-197/273-622. density.f Theta path: 588-915. symmetrize_mat.f / +rot_dens.f / setsym.f / set_rotloc.f for the symmetrization and Rloc rotation. +""" + +import math +import os +import numpy as np + + +# --- list-directed token stream over a Fortran free-form text file ----------- + +class _Reader: + def __init__(self, path): + with open(path) as fh: + self._lines = fh.read().splitlines() + self._i = 0 + + def skip(self): + self._i += 1 + + def record(self): + toks = self._lines[self._i].split() + self._i += 1 + return toks + + +def _to_float(tok): + return float(tok.replace('D', 'E').replace('d', 'e')) + + +def _to_complex(s): + s = s.strip().lstrip('(').rstrip(')') + re_s, im_s = s.split(',') + return complex(_to_float(re_s), _to_float(im_s)) + + +def _read_complex(r): + buf = list(r.record()) + while ')' not in ''.join(buf): + buf += r.record() + return _to_complex(''.join(buf)) + + +def _read_two_complex(r): + """Read a record holding two list-directed complex values (Alm, Blm).""" + buf = list(r.record()) + while ''.join(buf).count(')') < 2: + buf += r.record() + s = ''.join(buf) + cut = s.index(')') + 1 + return _to_complex(s[:cut]), _to_complex(s[cut:]) + + +# --- angular basis: cubic d transform transmat = ------------------ + +_CUBIC = { + 2: np.array([ + [0, 0, 1, 0, 0], + [2 ** -0.5, 0, 0, 0, 2 ** -0.5], + [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], + [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], + [0, 2 ** -0.5, 0, 2 ** -0.5, 0], + ], dtype=complex), +} + + +def _reptrans(basis, l): + """transmat = . dmftproj stores the cubic coefficients via a + single-precision CMPLX cast (set_ang_trans.f:146); reproduce the float32 + truncation so the written numbers match bit-for-bit.""" + if basis == 'cubic' and l in _CUBIC: + return _CUBIC[l].astype(np.complex64).astype(np.complex128) + return np.eye(2 * l + 1, dtype=complex) + + +# --- Wigner D matrix (dmftproj convention, setsym.f dmat) -------------------- + +def _small_d(l, m, n, b): + f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ + (math.factorial(l + n) * math.factorial(l - n)) + s = 0.0 + for t in range(0, 2 * l + 1): + if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: + f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ + (math.factorial(l - m - t) * math.factorial(m + n + t) * + math.factorial(l - n - t) * math.factorial(t)) + f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \ + else math.sin(b / 2) ** (2 * l - m - n - 2 * t) + f4 = 1.0 if (2 * t + n + m) == 0 \ + else math.cos(b / 2) ** (2 * t + n + m) + s += (-1) ** (l - m - t) * f2 * f3 * f4 + return math.sqrt(f1) * s + + +def _dmat(l, a, b, c, det): + D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + for n in range(-l, l + 1): + v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) + if det < -0.5: + v *= (-1) ** l + D[m + l, n + l] = v + return D + + +def _tmat(l): + """Complex-conjugation operator in the spherical-harmonic basis, + T[m, -m] = (-1)^m (timeinv.f).""" + T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + T[-m + l, m + l] = (-1) ** m + return T + + +def _sqrtm_real_sym(O): + """O^{+1/2} of a real symmetric matrix (orthogonal_r with inv=.FALSE.: + Z diag(sqrt(w)) Z^T, real part kept). dmftproj evaluates sqrt of the + eigenvalue as a complex sqrt (W_comp = CMPLX(W,0)); reproduce that with a + complex power so a negative eigenvalue gives i*sqrt(|w|).""" + w, Z = np.linalg.eigh(O) + D1 = Z * np.sqrt(w.astype(complex)) + return (D1 @ Z.T).real + + +# --- inputs ------------------------------------------------------------------ + +def _read_indmftpr(indmftpr): + raw = [l.split('!')[0].strip() for l in open(indmftpr)] + raw = [l for l in raw if l != ''] + nsort = int(raw[0].split()[0]) + mult = [int(x) for x in raw[1].split()][:nsort] + lmax = int(raw[2].split()[0]) + i = 3 + so = 0 + sorts = [] + for isort in range(nsort): + basis = raw[i].split()[0] + i += 1 + if basis == 'fromfile': + i += 1 + l_inc = [int(x) for x in raw[i].split()] + i += 1 + ireps = [int(x) for x in raw[i].split()] + i += 1 + correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] + included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)] + if any(n > 0 for n in ireps): + i += 1 + if correlated_ls: + so = int(raw[i].split()[0]) + i += 1 + sorts.append(dict(basis=basis, correlated_ls=correlated_ls, + included_ls=included_ls)) + last = raw[-1].split() + e_bot, e_top = _to_float(last[0]), _to_float(last[1]) + proj_mode = int(last[2]) if len(last) >= 3 else 0 + return dict(nsort=nsort, mult=mult, lmax=lmax, sorts=sorts, so=so, + e_bot=e_bot, e_top=e_top, proj_mode=proj_mode) + + +def _read_dmftsym(path): + """Symmetry operations and the per-sort representative Rloc rotation from + case.dmftsym. The symop block carries (perm, a, b, g, iprop, krotm); the + 'Global->local' tail carries the representative rotloc krotm + Euler angles + per sort (setsym.f:437-455).""" + lines = open(path).read().split('\n') + nsym = int(lines[0].split()[0]) + perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] + starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l] + ops = [] + for k, s in enumerate(starts[:nsym]): + toks = lines[s + 1].split() + a, b, g = (math.radians(float(x)) for x in toks[:3]) + iprop = int(toks[3]) + krotm = np.array([[_to_float(x) for x in lines[s + 2 + r].split()] + for r in range(3)]) + ops.append(dict(perm=perms[k], a=a, b=b, g=g, iprop=iprop, + krotm=krotm)) + # Global->local representative rotloc per sort. + gl = next(i for i, l in enumerate(lines) if 'Global->local' in l) + rotloc_ref = [] + j = gl + 1 + while len(rotloc_ref) < nsym and j < len(lines): + if lines[j].strip() == '' or not lines[j].split()[0].lstrip('-').isdigit(): + j += 1 + continue + # sort index line, then 3 krotm rows, then the Euler/iprop line. + if len(lines[j].split()) == 1: + krotm = np.array([[_to_float(x) for x in lines[j + 1 + r].split()] + for r in range(3)]) + ang = lines[j + 4].split() + a, b, g = (math.radians(float(x)) for x in ang[:3]) + iprop = int(ang[3]) + rotloc_ref.append(dict(krotm=krotm, a=a, b=b, g=g, iprop=iprop)) + j += 5 + else: + j += 1 + return nsym, ops, rotloc_ref + + +# --- almblm parsing ---------------------------------------------------------- + +def _read_almblm(path, info): + """Read one spin's almblm file. Keeps Alm, Blm and Clm (parproj needs the + full radial vector), plus u_dot_norm, ovl_LO_u, ovl_LO_udot for the s12 + build and the per-band tetrahedron weights for the density matrix.""" + nsort = info['nsort'] + lmax = info['lmax'] + mult = info['mult'] + nlm = (lmax + 1) ** 2 + natom = sum(mult) + nloat_max = 1 # max nLO over (l, sort); grown below + + r = _Reader(path) + elecn = _to_float(r.record()[0]) + nk = int(r.record()[0]) + r.record() # nloat + eferm = _to_float(r.record()[0]) + + nLO = {} + u_dot_norm = {} + ovl_LO_u = {} + ovl_LO_udot = {} + kp = [None] * nk + + for isrt in range(1, nsort + 1): + for l in range(lmax + 1): + u_dot_norm[(l, isrt)] = _to_float(r.record()[0]) + n = int(r.record()[0]) + nLO[(l, isrt)] = n + nloat_max = max(nloat_max, n) + for ilo in range(1, n + 1): + toks = r.record() + ovl_LO_u[(ilo, l, isrt)] = _to_float(toks[0]) + ovl_LO_udot[(ilo, l, isrt)] = _to_float(toks[1]) + for ik in range(nk): + r.skip() # "IK = .." banner + r.skip() # 3-int line + head = r.record() + nbmin, nbmax = int(head[1]), int(head[2]) + nb = nbmax - nbmin + 1 + if kp[ik] is None: + kp[ik] = dict( + nbmin=nbmin, nbmax=nbmax, eband=None, weight=None, + tetr=None, + Alm=np.zeros((nlm, natom + 1, nb), dtype=complex), + Blm=np.zeros((nlm, natom + 1, nb), dtype=complex), + Clm=np.zeros((4, nlm, natom + 1, nb), dtype=complex)) + eband = np.empty(nb) + tetr = np.empty(nb) + for off in range(nb): + toks = r.record() + tetr[off] = _to_float(toks[0]) + eband[off] = _to_float(toks[1]) + eband = eband - eferm + if kp[ik]['eband'] is None: + kp[ik]['eband'] = eband + kp[ik]['weight'] = tetr[0] + kp[ik]['tetr'] = tetr + for imu in range(1, mult[isrt - 1] + 1): + iatom = sum(mult[:isrt - 1]) + imu + r.skip() # banner + r.record() # idum + for off in range(nb): + lm = 0 + for l in range(lmax + 1): + for m in range(-l, l + 1): + alm, blm = _read_two_complex(r) + kp[ik]['Alm'][lm, iatom, off] = alm + kp[ik]['Blm'][lm, iatom, off] = blm + for ilo in range(nLO[(l, isrt)]): + clm = _read_complex(r) + kp[ik]['Clm'][ilo, lm, iatom, off] = clm + lm += 1 + + return dict(elecn=elecn, eferm=eferm, nk=nk, nlm=nlm, natom=natom, + nLO=nLO, u_dot_norm=u_dot_norm, ovl_LO_u=ovl_LO_u, + ovl_LO_udot=ovl_LO_udot, kp=kp) + + +# --- band-window selection (set_projections.f, proj_mode==0) ----------------- + +def _select_window(nbmin, nbmax, eband, e1, e2): + included = False + nb_bot = nb_top = 0 + for off, ib in enumerate(range(nbmin, nbmax + 1)): + e = eband[off] + if not included and e > e1 and e <= e2: + included = True + nb_bot = ib + elif included and e > e2: + nb_top = ib - 1 + break + elif ib == nbmax and e > e1 and e <= e2: + nb_top = ib + included = True + if not included: + nb_bot = nb_top = 0 + return included, nb_bot, nb_top + + +# --- included orbital descriptors -------------------------------------------- + +def _build_orbs(info): + orbs = [] + for isort in range(1, info['nsort'] + 1): + sortinfo = info['sorts'][isort - 1] + for l in sortinfo['included_ls']: + for imu in range(1, info['mult'][isort - 1] + 1): + atom = sum(info['mult'][:isort - 1]) + imu + orbs.append(dict(atom=atom, sort=isort, l=l, + basis=sortinfo['basis'])) + return orbs + + +# --- s12 radial transform (set_projections.f:163-197) ------------------------ + +def _build_s12(l, isrt, n, spin): + """O_radial^{+1/2} for one (l, sort, spin): the n x n radial overlap built + from u_dot_norm + ovl_LO_u + ovl_LO_udot, then its matrix square root.""" + s = np.zeros((n, n)) + s[0, 0] = 1.0 + s[1, 1] = spin['u_dot_norm'][(l, isrt)] + for ilo in range(1, spin['nLO'][(l, isrt)] + 1): + s[1 + ilo, 1 + ilo] = 1.0 + s[1 + ilo, 0] = spin['ovl_LO_u'][(ilo, l, isrt)] + s[0, 1 + ilo] = spin['ovl_LO_u'][(ilo, l, isrt)] + s[1 + ilo, 1] = spin['ovl_LO_udot'][(ilo, l, isrt)] + s[1, 1 + ilo] = spin['ovl_LO_udot'][(ilo, l, isrt)] + return _sqrtm_real_sym(s) + + +# --- srot rotrep (setsym.f) -------------------------------------------------- + +def _srot_rotrep_nonmixing(op, l, transmat, ifSP, ifSO): + """srot(isym)%rotrep(l,isrt)%mat, the (2l+1) up/up block of the symmetry op + in the new basis: transmat . D(R)_{lm} . transmat^H, with the orbital + time-reversal operator applied for the magnetic (timeinv) operations. + + Returns (rotrep[2l+1,2l+1], timeinv, phase).""" + a, b, g, iprop = op['a'], op['b'], op['g'], op['iprop'] + krotm = op['krotm'] + det2 = krotm[0, 0] * krotm[1, 1] - krotm[0, 1] * krotm[1, 0] + if ifSP and ifSO: + timeinv = det2 < 0.0 + phase = (g - a) if timeinv else (a + g) + else: + timeinv = False + phase = 0.0 + rotl = _dmat(l, a, b, g, float(iprop)) + rotrep = transmat @ rotl @ np.conj(transmat.T) + if timeinv: + # timeinv_op in the new basis: reptrans T reptrans^T applied to conj. + tmat = _tmat(l) + tinv = transmat @ tmat @ transmat.T + rotrep = tinv @ np.conj(rotrep) + return rotrep, timeinv, phase + + +# --- rotloc rotrep (set_rotloc.f) under SP+SO, non-mixing -------------------- + +def _euler(Rot): + """Euler angles (a, b, g) of a 3x3 proper rotation, dmftproj convention + (set_rotloc.f euler, called on TRANSPOSE(krotm)).""" + def dot(u, v): + return float(np.dot(u, v)) + + def vecprod(u, v): + return np.cross(u, v) + R = Rot + y = np.array([0.0, 1.0, 0.0]) + z = np.array([0.0, 0.0, 1.0]) + yyy = R[:, 1] + zz = R[:, 2] + yy = vecprod(z, zz) + y_norm = math.sqrt(dot(yy, yy)) + pi = math.pi + if y_norm < 1e-10: + d = dot(y, yyy) + a = math.acos(d / abs(d)) if abs(d) > 1.0 else math.acos(d) + if dot(z, zz) > 0.0: + c = 0.0 + b = 0.0 + if yyy[0] > 0.0: + a = 2 * pi - a + else: + c = a + a = 0.0 + b = pi + if yyy[0] < 0.0: + c = 2 * pi - c + else: + yy = yy / y_norm + aa, bb, cc = dot(y, yy), dot(z, zz), dot(yy, yyy) + if abs(aa) > 1.0: + aa = aa / abs(aa) + if abs(bb) > 1.0: + bb = bb / abs(bb) + if abs(cc) > 1.0: + cc = cc / abs(cc) + b = math.acos(bb) + a = math.acos(aa) + c = math.acos(cc) + if yy[0] > 0.0: + a = 2 * pi - a + pom = vecprod(yy, yyy) + if dot(pom, zz) < 0.0: + c = 2 * pi - c + return a, b, c + + +def _rotloc_rotrep_so(orb, ops, info, ref, transmat): + """rotloc(iatom)%rotrep(l)%mat, the full 2*(2l+1) Rloc spinor rotation in + the new basis under SP+SO, non-mixing (set_rotloc.f), plus timeinv flag. + + ref is the representative-sort rotloc (krotm, a, b, g, iprop). set_rotloc + runs the same composition for EVERY atom of the sort, including the + representative: it finds the FIRST symmetry op R[isym] with + perm(iref)==iatom and composes srot%rotl with the representative spinor + rotloc. For the representative this op need not be the identity.""" + l = orb['l'] + isrt = orb['sort'] + iatom = orb['atom'] + iref = sum(info['mult'][:isrt - 1]) + 1 + d = 2 * l + 1 + + # rotloc%rotl(2d) initial value (setsym.f:496-528): spmt (x) D(rotloc_ref). + Dref = _dmat(l, ref['a'], ref['b'], ref['g'], float(ref['iprop'])) + f = (ref['a'] + ref['g']) / 2.0 + spmt = np.zeros((2, 2), dtype=complex) + spmt[0, 0] = np.exp(1j * f) * math.cos(ref['b'] / 2.0) + spmt[1, 1] = np.conj(spmt[0, 0]) + f = -(ref['a'] - ref['g']) / 2.0 + spmt[0, 1] = np.exp(1j * f) * math.sin(ref['b'] / 2.0) + spmt[1, 0] = -np.conj(spmt[0, 1]) + rotl = np.zeros((2 * d, 2 * d), dtype=complex) + rotl[:d, :d] = spmt[0, 0] * Dref + rotl[d:, d:] = spmt[1, 1] * Dref + rotl[:d, d:] = spmt[0, 1] * Dref + rotl[d:, :d] = spmt[1, 0] * Dref + + # Compose with the first symmetry op mapping iref onto iatom (set_rotloc.f:60). + isym = next(k for k, o in enumerate(ops) + if o['perm'][iref - 1] == iatom) + op = ops[isym] + det2 = op['krotm'][0, 0] * op['krotm'][1, 1] - \ + op['krotm'][0, 1] * op['krotm'][1, 0] + timeinv = det2 < 0.0 + srot_phase = (op['g'] - op['a']) if timeinv else (op['a'] + op['g']) + # srot%rotl D(R[isym])_{lm}, with the timeinv operator applied if magnetic + # (setsym.f:318-331 applies timeinv_op to srot%rotl before set_rotloc). + rotl_sym = _dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + if timeinv: + rotl_sym = _tmat(l) @ np.conj(rotl_sym) + ephase = np.exp(1j * srot_phase / 2.0) + tmp = np.zeros((2 * d, 2 * d), dtype=complex) + tmp[:d, :d] = ephase * rotl_sym + tmp[d:, d:] = np.conj(ephase) * rotl_sym + if timeinv: + rotl = tmp @ np.conj(rotl) + else: + rotl = tmp @ rotl + + # rotrep = S rotl S^(H or T), S = blkdiag(transmat, transmat). + S = np.zeros((2 * d, 2 * d), dtype=complex) + S[:d, :d] = transmat + S[d:, d:] = transmat + if timeinv: + rotrep = S @ rotl @ S.T + else: + rotrep = S @ rotl @ np.conj(S.T) + return rotrep, timeinv + + +# --- projector matn_rep (set_projections.f Theta path) ----------------------- + +def _build_matn_rep(orb, info, spins, ns, windows, transmat, rot): + """matn_rep[(ik, is)] -> (2l+1, nbsel, n): the raw radial-normalized Theta + projector with the local rotation and the basis transform applied per + radial channel (non-mixing SP+SO path, set_projections.f:591-621).""" + l = orb['l'] + atom = orb['atom'] + sort = orb['sort'] + out = {} + for ik in range(info['nk']): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + kp0 = spins[0]['kp'][ik] + off_bot = nb_bot - kp0['nbmin'] + off_top = nb_top - kp0['nbmin'] + nbsel = off_top - off_bot + 1 + for ispin in range(ns): + sp = spins[ispin] + kp = sp['kp'][ik] + n = sp['nLO'][(l, sort)] + 2 + s12 = _build_s12(l, sort, n, sp) + matn = np.zeros((2 * l + 1, nbsel, n), dtype=complex) + for mi, m in enumerate(range(-l, l + 1)): + lm = l * l + (m + l) + for j, off in enumerate(range(off_bot, off_top + 1)): + coeff = np.zeros(n, dtype=complex) + coeff[0] = kp['Alm'][lm, atom, off] + coeff[1] = kp['Blm'][lm, atom, off] + for ilo in range(n - 2): + coeff[2 + ilo] = kp['Clm'][ilo, lm, atom, off] + matn[mi, j, :] = coeff @ s12 + # rot_projectmat then the basis transform, per radial channel. + for ir in range(n): + matn[:, :, ir] = transmat @ (rot @ matn[:, :, ir]) + out[(ik, ispin)] = matn + return out + + +# --- density matrix (density.f Theta path, non-mixing SP+SO) ----------------- + +def _orbital_densmat_blocks(orb, info, spins, ns, windows, matn_reps): + """The nsp=4 raw density-matrix blocks (up/up, dn/dn, up/dn, dn/up) for one + orbital, point-integrated with the geometric k-weight (density.f:889-907, + tetr=.FALSE. path). The window is the bands below e_bot (dmftproj.f:798).""" + l = orb['l'] + d = 2 * l + 1 + blocks = [np.zeros((d, d), dtype=complex) for _ in range(4)] + for ik in range(info['nk']): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + kp0 = spins[0]['kp'][ik] + off_bot = nb_bot - kp0['nbmin'] + off_top = nb_top - kp0['nbmin'] + n = spins[0]['nLO'][(l, orb['sort'])] + 2 + for iss in range(1, 5): + if iss <= 2: + is_, is1 = iss, iss + else: + is_ = iss - 2 + is1 = 3 - is_ + isp, isp1 = is_ - 1, is1 - 1 + weight = spins[isp]['kp'][ik]['weight'] + acc = np.zeros((d, d), dtype=complex) + for i in range(n): + mat = matn_reps[orb['atom']][(ik, isp)][:, :, i] + cmat = matn_reps[orb['atom']][(ik, isp1)][:, :, i] + acc += mat @ np.conj(cmat.T) + blocks[iss - 1] += acc * weight + return blocks + + +def _symmetrize_densmat(orbs, info, ops, nsym, srot_rotreps, dens_raw, ns, + ifSP, ifSO): + """symmetrize_mat for the non-mixing SP+SO path (symmetrize_mat.f:196-276). + dens_raw[atom] -> [4 blocks]. Returns symmetrized blocks per atom. + + The blocks are summed over symmetry ops with srot%rotrep, the spin block + phase ephase (up/dn, dn/up), and the orbital-time-reversal conjugation for + magnetic ops; equivalent atoms of a sort scatter into one another via the + permutation. Result divided by nsym.""" + out = {} + # group orbitals by sort, in orb order (they are already sort-major). + isort_groups = {} + for o in orbs: + isort_groups.setdefault(o['sort'], []).append(o) + for isrt, group in isort_groups.items(): + l = group[0]['l'] + d = 2 * l + 1 + mult = len(group) + sym = [[np.zeros((d, d), dtype=complex) for _ in range(4)] + for _ in range(mult)] + for imult in range(mult): + iatom = group[imult]['atom'] + for isym in range(nsym): + op = ops[isym] + rotrep, timeinv, phase = srot_rotreps[(isrt, isym)] + jorb = op['perm'][iatom - 1] - iatom + imult # 0-based target + for iss in range(1, 5): + is_ = iss if iss <= 2 else iss - 2 + isp = is_ - 1 + tmp = dens_raw[iatom][iss - 1].copy() + if ifSP and timeinv: + tmp = np.conj(tmp) + ephase = 1.0 + if iss == 3: + ephase = np.exp(1j * phase) + elif iss == 4: + ephase = np.exp(-1j * phase) + val = rotrep @ (tmp @ np.conj(rotrep.T)) * ephase + sym[jorb][iss - 1] += val + for imult in range(mult): + iatom = group[imult]['atom'] + out[iatom] = [sym[imult][k] / nsym for k in range(4)] + return out + + +def _rotdens_densmat(orb, blocks, rotrep_loc, timeinv): + """rotdens_mat for non-mixing SP+SO (rot_dens.f:151-193): assemble the four + blocks into a 2*(2l+1) matrix, apply inverse(Rloc) D Rloc, return it as the + full 2*(2l+1) densprint matrix.""" + l = orb['l'] + d = 2 * l + 1 + rd = np.zeros((2 * d, 2 * d), dtype=complex) + rd[:d, :d] = blocks[0] + rd[d:, d:] = blocks[1] + rd[:d, d:] = blocks[2] + rd[d:, :d] = blocks[3] + if timeinv: + rd = np.conj(rd @ rotrep_loc) + rd = rotrep_loc.T @ rd + else: + rd = rd @ rotrep_loc + rd = np.conj(rotrep_loc.T) @ rd + return rd + + +# --- parproj writer ---------------------------------------------------------- + +def _fmt(x): + return ' %.16E' % float(x) + + +def _w(f, arr): + f.write(''.join(_fmt(x) for x in arr) + '\n') + + +def write_parproj(case): + """Read .almblm{up,dn}, .indmftpr, .struct, + .dmftsym and write .parproj in the dmftproj format.""" + info = _read_indmftpr(case + '.indmftpr') + nsym, ops, rotloc_ref = _read_dmftsym(case + '.dmftsym') + + up, dn = case + '.almblmup', case + '.almblmdn' + if os.path.exists(up) and os.path.exists(dn): + spin_files = [up, dn] + else: + spin_files = [case + '.almblm'] + ifSP = len(spin_files) == 2 + ifSO = bool(info['so']) + ns = 2 if ifSP else 1 + + spins = [_read_almblm(p, info) for p in spin_files] + nk = spins[0]['nk'] + info['nk'] = nk + + orbs = _build_orbs(info) + if any(o['basis'] == 'fromfile' for o in orbs): + raise NotImplementedError( + 'parproj for fromfile/mixing bases is not yet covered by a test ' + 'fixture; cubic and complex bases are supported') + norb = len(orbs) + + # Two band ranges (dmftproj.f:757,836): the energy window [e_bot, e_top] + # for the written Theta projector (block A), and the full band range + # (-Elarge, Elarge) over which the density matrix is integrated. dmftproj + # computes the density matrix FIRST over the full range, then overwrites + # the projectors with the energy window before outputqmc. + # Two band ranges (dmftproj.f:798,836): the energy window [e_bot, e_top] + # for the written Theta projector (block A), and the bands below e_bot + # (-Elarge, e_bot) for the density matrix. dmftproj computes the density + # matrix over the below-e_bot range with point integration LAST (the third + # density call is correlated-only), so densmat in outputqmc is that one. + windows = [] + below_windows = [] + for ik in range(nk): + kp = spins[0]['kp'][ik] + windows.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'], + info['e_bot'], info['e_top'])) + below_windows.append(_select_window(kp['nbmin'], kp['nbmax'], + kp['eband'], -1e6, info['e_bot'])) + + transmats = {(o['l'], o['sort']): _reptrans(o['basis'], o['l']) + for o in orbs} + + # rot_projectmat local rotation: the op mapping the representative atom of + # the sort onto this atom (set_projections.f via rot_projectmat). + rotloc_op = {} + for o in orbs: + iref = sum(info['mult'][:o['sort'] - 1]) + 1 + rotloc_op[o['atom']] = next(op for op in ops + if op['perm'][iref - 1] == o['atom']) + + # ---- projectors matn_rep per orbital (energy window for block A, full + # band range for the density matrix) ---- + matn_reps = {} + matn_reps_full = {} + for o in orbs: + l = o['l'] + transmat = transmats[(l, o['sort'])] + op = rotloc_op[o['atom']] + rot = _dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + matn_reps[o['atom']] = _build_matn_rep( + o, info, spins, ns, windows, transmat, rot) + matn_reps_full[o['atom']] = _build_matn_rep( + o, info, spins, ns, below_windows, transmat, rot) + + # ---- srot rotrep per (sort, isym) for symmetrize_mat ---- + srot_rotreps = {} + for isrt in range(1, info['nsort'] + 1): + if not info['sorts'][isrt - 1]['included_ls']: + continue + l = info['sorts'][isrt - 1]['included_ls'][0] + transmat = transmats[(l, isrt)] + for isym in range(nsym): + srot_rotreps[(isrt, isym)] = _srot_rotrep_nonmixing( + ops[isym], l, transmat, ifSP, ifSO) + + # ---- density matrices: raw -> symmetrize -> rotdens ---- + dens_raw = {} + for o in orbs: + dens_raw[o['atom']] = _orbital_densmat_blocks( + o, info, spins, ns, below_windows, matn_reps_full) + dens_sym = _symmetrize_densmat(orbs, info, ops, nsym, srot_rotreps, + dens_raw, ns, ifSP, ifSO) + + # ---- rotloc rotrep per orbital ---- + rotloc_rotrep = {} + for o in orbs: + transmat = transmats[(o['l'], o['sort'])] + ref = rotloc_ref[o['sort'] - 1] + rotloc_rotrep[o['atom']] = _rotloc_rotrep_so( + o, ops, info, ref, transmat) + + densprint = {} + for o in orbs: + rotrep_loc, timeinv = rotloc_rotrep[o['atom']] + densprint[o['atom']] = _rotdens_densmat( + o, dens_sym[o['atom']], rotrep_loc, timeinv) + + # ---- write ---- + with open(case + '.parproj', 'w') as f: + for o in orbs: + n = spins[0]['nLO'][(o['l'], o['sort'])] + 2 + f.write('%6d\n' % n) + + for o in orbs: + l = o['l'] + atom = o['atom'] + n = spins[0]['nLO'][(l, o['sort'])] + 2 + + # (A) Theta projector, non-mixing SP+SO (outputqmc.f:955-973). + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + for ir in range(n): + for ispin in range(ns): + P = matn_reps[atom][(ik, ispin)][:, :, ir] + for mi in range(2 * l + 1): + _w(f, P[mi, :].real) + for ispin in range(ns): + P = matn_reps[atom][(ik, ispin)][:, :, ir] + for mi in range(2 * l + 1): + _w(f, P[mi, :].imag) + + # (B) density matrix, non-mixing SP+SO 2*(2l+1) (outputqmc.f:1033-1049). + dp = densprint[atom] + for m in range(2 * (2 * l + 1)): + _w(f, dp[m, :].real) + for m in range(2 * (2 * l + 1)): + _w(f, dp[m, :].imag) + + # (C) Rloc rotrep, non-mixing SP+SO (outputqmc.f:1148-1158). + rotrep_loc, timeinv = rotloc_rotrep[atom] + for m in range(2 * (2 * l + 1)): + _w(f, rotrep_loc[m, :].real) + for m in range(2 * (2 * l + 1)): + _w(f, rotrep_loc[m, :].imag) + if ifSP: + f.write('%6d\n' % (1 if timeinv else 0)) diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index be961fd..1ac88a2 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -74,3 +74,12 @@ add_test(NAME Py_wien2k_sympar_python WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_sympar_python APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Pure-Python case.parproj partial projectors + density matrices vs the dmftproj +# Fortran output. Same CaOs2_partial fixture as the sympar test. +file(COPY CaOs2_partial.parproj.gz DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +add_test(NAME Py_wien2k_parproj_python + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_parproj_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_parproj_python APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2_partial.parproj.gz b/test/python/wien2k/CaOs2_partial.parproj.gz new file mode 100644 index 0000000000000000000000000000000000000000..7b893c4986c8ea096e3aa8b8c2b91025cc64e811 GIT binary patch literal 26896 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 Date: Tue, 16 Jun 2026 16:06:27 +0200 Subject: [PATCH 07/16] [wien2k] extract shared dmftproj machinery into _dmftproj The five case.* generators each carried their own copy of the almblm reader, Wigner-D, angular-basis transform, indmftpr/dmftsym parsers, band-window selection and formatters. Extract them once into _dmftproj and make every generator a thin consumer: 2260 -> 1699 lines, no shared function defined twice. Add isolated unit tests for the shared primitives. Generators byte/1e-6 identical to before (all golden tests unchanged). Part of #7. --- python/triqs_dftkit/wien2k/_dmftproj.py | 420 ++++++++++++++++++ python/triqs_dftkit/wien2k/ctqmcout.py | 303 +------------ python/triqs_dftkit/wien2k/oubwin.py | 186 +------- python/triqs_dftkit/wien2k/parproj.py | 378 +--------------- python/triqs_dftkit/wien2k/sympar.py | 161 ++----- python/triqs_dftkit/wien2k/symqmc.py | 179 ++------ test/python/wien2k/CMakeLists.txt | 8 + .../wien2k/wien2k_dmftproj_common_python.py | 93 ++++ 8 files changed, 634 insertions(+), 1094 deletions(-) create mode 100644 python/triqs_dftkit/wien2k/_dmftproj.py create mode 100644 test/python/wien2k/wien2k_dmftproj_common_python.py diff --git a/python/triqs_dftkit/wien2k/_dmftproj.py b/python/triqs_dftkit/wien2k/_dmftproj.py new file mode 100644 index 0000000..262b4d2 --- /dev/null +++ b/python/triqs_dftkit/wien2k/_dmftproj.py @@ -0,0 +1,420 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by M. Aichhorn, L. Pourovskii, V. Vildosola, C. Martins +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +"""Shared dmftproj machinery for the pure-Python case.* generators. + +The five generators (symqmc, oubwin, ctqmcout, sympar, parproj) reproduce +different outputs of the dmftproj Fortran executable but draw on the same +underlying pieces: the list-directed almblm reader, the Fortran real/complex +token parsers, the Wigner-D rotation in the dmftproj convention, the angular +basis transforms (transmat), the case.indmftpr / case.dmftsym parsers, the +proj_mode==0 band-window selection and the gfortran-style real formatters. +This module owns each of those exactly once. + +A deliberate split survives in the angular basis: symqmc builds its symmetry +matrices from the EXACT cubic harmonics, while ctqmcout/sympar/parproj feed +projector/representation numbers through the single-precision CMPLX cast that +dmftproj applies in set_ang_trans.f:146 (0.70710676908 for 1/sqrt2, the +dft_tools #148 noise). `reptrans` exposes both via the `cast` flag; nothing +here "fixes" that truncation. +""" + +import math +import os +import numpy as np + + +# --- list-directed token stream over a Fortran free-form text file ----------- + +class Reader: + """Record-oriented reader mirroring Fortran list-directed and READ('()') + semantics on a free-form almblm file. + + `record()` returns the whitespace tokens of the next physical line (the + common case: every almblm logical record fits on one line). `skip()` + consumes one physical line unconditionally, matching READ('()').""" + + def __init__(self, path): + with open(path) as fh: + self._lines = fh.read().splitlines() + self._i = 0 + + def skip(self): + self._i += 1 + + def record(self): + toks = self._lines[self._i].split() + self._i += 1 + return toks + + +def to_float(tok): + """Parse a Fortran real token, accepting D/d exponents (1.0D-3) and the + list-directed 4.57E-002 form. Python float already handles E/e and the + embedded sign in the exponent; only D/d needs translation.""" + return float(tok.replace('D', 'E').replace('d', 'e')) + + +def to_complex(s): + s = s.strip().lstrip('(').rstrip(')') + re_s, im_s = s.split(',') + return complex(to_float(re_s), to_float(im_s)) + + +def read_complex(r): + """Read one list-directed complex `(re,im)` value, possibly split over + whitespace tokens.""" + buf = list(r.record()) + while ')' not in ''.join(buf): + buf += r.record() + return to_complex(''.join(buf)) + + +def read_two_complex(r): + """Read a record holding two list-directed complex values (Alm, Blm).""" + buf = list(r.record()) + while ''.join(buf).count(')') < 2: + buf += r.record() + s = ''.join(buf) + cut = s.index(')') + 1 + return to_complex(s[:cut]), to_complex(s[cut:]) + + +# --- angular bases: transmat = , m = -l..l -------------------------- +# Standard cubic harmonics, Wien2k convention. dmftproj stores cubic/fromfile +# coefficients via a single-precision CMPLX cast (set_ang_trans.f:146); the +# projector/representation generators reproduce that float32 truncation +# (0.70710676908 for 1/sqrt2), while the symqmc symmetry matrices use the +# exact harmonics. `reptrans(..., cast=...)` selects between the two. + +_COMPLEX = {l: np.eye(2 * l + 1, dtype=complex) for l in range(4)} + +_CUBIC = { + 1: np.array([[0, 1, 0], [-1j, 0, -1j], [1, 0, -1]], dtype=complex), + 2: np.array([ + [0, 0, 1, 0, 0], + [2 ** -0.5, 0, 0, 0, 2 ** -0.5], + [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], + [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], + [0, 2 ** -0.5, 0, 2 ** -0.5, 0], + ], dtype=complex), +} + + +def reptrans(basis, l, cast=True): + """transmat = . `cast=True` truncates the cubic harmonics through + the single-precision CMPLX cast dmftproj applies (set_ang_trans.f:146); + `cast=False` keeps them exact. A complex basis is the exact identity.""" + if basis == 'cubic' and l in _CUBIC: + c = _CUBIC[l] + return c.astype(np.complex64).astype(np.complex128) if cast else c + return _COMPLEX[l] + + +def read_fromfile(path, l): + """Parse a dmftproj fromfile basis (each line: the coefficients of a new + basis vector in {|m,up>, |m,dn>}, m = -l..l, real/imag interleaved; '*' + marks the end of an irep). Return (P, mixing) where P = is the + transform matrix (reptrans.transmat), full 2(2l+1) for a spin-mixing basis + or the (2l+1) up/up block otherwise.""" + n = 2 * (2 * l + 1) + rows = [] + for line in open(path): + line = line.rstrip('\n') + if not line.strip(): + continue + body = line[1:] + vals = [float(x) for x in body.split()][:2 * n] + rows.append([vals[2 * k] + 1j * vals[2 * k + 1] for k in range(n)]) + if len(rows) == n: + break + R = np.array(rows) # R[i, :] = |new_i> in old basis + d = 2 * l + 1 + up_up, up_dn = R[:d, :d], R[:d, d:] + dn_up, dn_dn = R[d:, :d], R[d:, d:] + mixing = not (np.allclose(dn_dn, up_up) and + np.allclose(up_dn, 0) and np.allclose(dn_up, 0)) + P = np.conj(R) if mixing else np.conj(up_up) # = conj() + return P, mixing + + +# --- Wigner D matrix (dmftproj convention, setsym.f) ------------------------- + +def small_d(l, m, n, b): + f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ + (math.factorial(l + n) * math.factorial(l - n)) + s = 0.0 + for t in range(0, 2 * l + 1): + if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: + f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ + (math.factorial(l - m - t) * math.factorial(m + n + t) * + math.factorial(l - n - t) * math.factorial(t)) + f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \ + else math.sin(b / 2) ** (2 * l - m - n - 2 * t) + f4 = 1.0 if (2 * t + n + m) == 0 \ + else math.cos(b / 2) ** (2 * t + n + m) + s += (-1) ** (l - m - t) * f2 * f3 * f4 + return math.sqrt(f1) * s + + +def dmat(l, a, b, c, det): + D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + for n in range(-l, l + 1): + v = np.exp(1j * n * a) * np.exp(1j * m * c) * small_d(l, m, n, b) + if det < -0.5: + v *= (-1) ** l + D[m + l, n + l] = v + return D + + +def tmat(l): + """Complex-conjugation operator in the spherical-harmonic basis, + T[m, -m] = (-1)^m (timeinv.f).""" + T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) + for m in range(-l, l + 1): + T[-m + l, m + l] = (-1) ** m + return T + + +def timeinv_orbital(l, mat): + return tmat(l) @ np.conj(mat) + + +# --- case.indmftpr ----------------------------------------------------------- + +def read_indmftpr(indmftpr): + """Full structured parse of case.indmftpr. + + Returns a dict with nsort, mult, lmax, the spin-orbit flag `so`, the energy + window (e_bot, e_top, proj_mode) and one `sorts` entry per atomic sort with + its basis name, optional fromfile sourcefile path, and the correlated / + included l lists (l_inc==2 / l_inc in {1,2}). Every generator derives its + shell or orbital list from this one parse.""" + raw = [l.split('!')[0].strip() for l in open(indmftpr)] + raw = [l for l in raw if l != ''] + nsort = int(raw[0].split()[0]) + mult = [int(x) for x in raw[1].split()][:nsort] + lmax = int(raw[2].split()[0]) + i = 3 + so = 0 + sorts = [] + for isort in range(nsort): + basis = raw[i].split()[0] + i += 1 + sourcefile = None + if basis == 'fromfile': + sourcefile = os.path.join(os.path.dirname(indmftpr), raw[i]) + i += 1 + l_inc = [int(x) for x in raw[i].split()] + i += 1 + ireps = [int(x) for x in raw[i].split()] + i += 1 + correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] + included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)] + if any(n > 0 for n in ireps): + i += 1 # skip the correps line + if correlated_ls: + so = int(raw[i].split()[0]) # SO flag follows a correlated sort + i += 1 + sorts.append(dict(basis=basis, sourcefile=sourcefile, + correlated_ls=correlated_ls, included_ls=included_ls)) + last = raw[-1].split() + e_bot, e_top = to_float(last[0]), to_float(last[1]) + proj_mode = int(last[2]) if len(last) >= 3 else 0 + return dict(nsort=nsort, mult=mult, lmax=lmax, sorts=sorts, so=so, + e_bot=e_bot, e_top=e_top, proj_mode=proj_mode) + + +# --- case.dmftsym ------------------------------------------------------------ + +def read_dmftsym(path, rotloc=False): + """Symmetry operations from case.dmftsym. Each op carries (perm, a, b, g, + iprop, krotm); the third Euler angle is named both `c` and `g` for the + callers that use either name. With rotloc=True also parse the + 'Global->local' representative rotloc per sort and return it as a third + value (setsym.f:437-455).""" + lines = open(path).read().split('\n') + nsym = int(lines[0].split()[0]) + perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] + starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l] + ops = [] + for k, s in enumerate(starts[:nsym]): + toks = lines[s + 1].split() + a, b, g = (math.radians(float(x)) for x in toks[:3]) + iprop = int(toks[3]) + krotm = np.array([[to_float(x) for x in lines[s + 2 + r].split()] + for r in range(3)]) + ops.append(dict(perm=perms[k], a=a, b=b, c=g, g=g, iprop=iprop, + krotm=krotm)) + if not rotloc: + return nsym, ops + + gl = next(i for i, l in enumerate(lines) if 'Global->local' in l) + rotloc_ref = [] + j = gl + 1 + while len(rotloc_ref) < nsym and j < len(lines): + if lines[j].strip() == '' or not lines[j].split()[0].lstrip('-').isdigit(): + j += 1 + continue + # sort index line, then 3 krotm rows, then the Euler/iprop line. + if len(lines[j].split()) == 1: + krotm = np.array([[to_float(x) for x in lines[j + 1 + r].split()] + for r in range(3)]) + ang = lines[j + 4].split() + a, b, g = (math.radians(float(x)) for x in ang[:3]) + iprop = int(ang[3]) + rotloc_ref.append(dict(krotm=krotm, a=a, b=b, g=g, iprop=iprop)) + j += 5 + else: + j += 1 + return nsym, ops, rotloc_ref + + +# --- almblm parsing ---------------------------------------------------------- + +def read_almblm(path, info, projectors=False): + """Read one spin's almblm file in the dmftproj.f read order. + + With projectors=False keep only the header (elecn, nk, nloat, eferm), the + per-(sort,l) overlap block (u_dot_norm, nLO, ovl_LO_u, ovl_LO_udot) and the + per-k band data (nbmin/nbmax, Fermi-shifted eband, tetrahedron weights); the + per-(l,m) coefficient records are still consumed to keep the reader in sync + but their values are discarded (oubwin's window-only path). + + With projectors=True also accumulate the per-(l,m) Alm/Blm/Clm coefficients + in the canonical Wien2k packing lm = l*l + (m+l), for every atom of every + sort (ctqmcout/parproj).""" + nsort = info['nsort'] + lmax = info['lmax'] + mult = info['mult'] + nlm = (lmax + 1) ** 2 + natom = sum(mult) + + r = Reader(path) + elecn = to_float(r.record()[0]) + nk = int(r.record()[0]) + r.record() # nloat + eferm = to_float(r.record()[0]) + + nLO = {} + u_dot_norm = {} + ovl_LO_u = {} + ovl_LO_udot = {} + kp = [None] * nk + + for isrt in range(1, nsort + 1): + for l in range(lmax + 1): + u_dot_norm[(l, isrt)] = to_float(r.record()[0]) + n = int(r.record()[0]) + nLO[(l, isrt)] = n + for ilo in range(1, n + 1): + toks = r.record() + ovl_LO_u[(ilo, l, isrt)] = to_float(toks[0]) + ovl_LO_udot[(ilo, l, isrt)] = to_float(toks[1]) + for ik in range(nk): + r.skip() # "IK = .." banner + r.skip() # 3-int line + head = r.record() + nbmin, nbmax = int(head[1]), int(head[2]) + nb = nbmax - nbmin + 1 + if kp[ik] is None: + kp[ik] = dict(nbmin=nbmin, nbmax=nbmax, eband=None, + weight=None, tetr=None) + if projectors: + kp[ik].update( + Alm=np.zeros((nlm, natom + 1, nb), dtype=complex), + Blm=np.zeros((nlm, natom + 1, nb), dtype=complex), + Clm=np.zeros((4, nlm, natom + 1, nb), dtype=complex)) + eband = np.empty(nb) + tetr = np.empty(nb) + for off in range(nb): + toks = r.record() + tetr[off] = to_float(toks[0]) + eband[off] = to_float(toks[1]) + eband = eband - eferm + if kp[ik]['eband'] is None: + kp[ik]['eband'] = eband + kp[ik]['weight'] = tetr[0] + kp[ik]['tetr'] = tetr + for imu in range(1, mult[isrt - 1] + 1): + iatom = sum(mult[:isrt - 1]) + imu + r.skip() # banner + r.record() # idum + for off in range(nb): + lm = 0 + for l in range(lmax + 1): + for m in range(-l, l + 1): + alm, blm = read_two_complex(r) + for ilo in range(nLO[(l, isrt)]): + clm = read_complex(r) + if projectors: + kp[ik]['Clm'][ilo, lm, iatom, off] = clm + if projectors: + kp[ik]['Alm'][lm, iatom, off] = alm + kp[ik]['Blm'][lm, iatom, off] = blm + lm += 1 + + return dict(elecn=elecn, eferm=eferm, nk=nk, nlm=nlm, natom=natom, + nLO=nLO, u_dot_norm=u_dot_norm, ovl_LO_u=ovl_LO_u, + ovl_LO_udot=ovl_LO_udot, kp=kp) + + +# --- band-window selection (set_projections.f, proj_mode==0) ----------------- + +def select_window(nbmin, nbmax, eband, e1, e2): + """proj_mode==0 contiguous band selection for one k-point over the energy + array `eband` (already Fermi-shifted). The first band with e1 < E <= e2 + opens the window; the first band above it with E > e2 closes it at the + preceding index; a window reaching nbmax closes at nbmax. Returns + (included, nb_bot, nb_top) with nb_bot=nb_top=0 when no band qualifies.""" + included = False + nb_bot = nb_top = 0 + for off, ib in enumerate(range(nbmin, nbmax + 1)): + e = eband[off] + if not included and e > e1 and e <= e2: + included = True + nb_bot = ib + elif included and e > e2: + nb_top = ib - 1 + break + elif ib == nbmax and e > e1 and e <= e2: + nb_top = ib + included = True + if not included: + nb_bot = nb_top = 0 + return included, nb_bot, nb_top + + +# --- gfortran-style real formatters ------------------------------------------ + +def fmt(x): + """One list-directed real, gfortran-style (leading sign space, ~17 sig).""" + return ' %.16E' % float(x) + + +def write_row(f, arr): + f.write(''.join(fmt(x) for x in arr) + '\n') + + +def fmt_scalar(x): + x = float(x) + return '%.16f' % x if abs(x) < 1e5 else '%.16E' % x diff --git a/python/triqs_dftkit/wien2k/ctqmcout.py b/python/triqs_dftkit/wien2k/ctqmcout.py index 009d456..bb1faf6 100644 --- a/python/triqs_dftkit/wien2k/ctqmcout.py +++ b/python/triqs_dftkit/wien2k/ctqmcout.py @@ -55,116 +55,11 @@ (the dft_tools #148 noise, e.g. 0.70710676908 for 1/sqrt2). """ -import math import os import numpy as np - -# --- list-directed token stream over a Fortran free-form text file ----------- - -class _Reader: - def __init__(self, path): - with open(path) as fh: - self._lines = fh.read().splitlines() - self._i = 0 - - def skip(self): - self._i += 1 - - def record(self): - toks = self._lines[self._i].split() - self._i += 1 - return toks - - -def _to_float(tok): - return float(tok.replace('D', 'E').replace('d', 'e')) - - -def _to_complex(s): - s = s.strip().lstrip('(').rstrip(')') - re_s, im_s = s.split(',') - return complex(_to_float(re_s), _to_float(im_s)) - - -def _read_complex(r): - """Read one list-directed complex `(re,im)` value, possibly split over - whitespace tokens.""" - buf = list(r.record()) - while ')' not in ''.join(buf): - buf += r.record() - return _to_complex(''.join(buf)) - - -def _read_two_complex(r): - """Read a record holding two list-directed complex values (Alm, Blm).""" - buf = list(r.record()) - while ''.join(buf).count(')') < 2: - buf += r.record() - s = ''.join(buf) - cut = s.index(')') + 1 - return _to_complex(s[:cut]), _to_complex(s[cut:]) - - -# --- angular basis: cubic d transform transmat = ------------------ -# Wien2k cubic d convention dz2, dx2-y2, dxy, dxz, dyz (set_ang_trans cubic); -# identical to symqmc._CUBIC[2]. - -_CUBIC = { - 2: np.array([ - [0, 0, 1, 0, 0], - [2 ** -0.5, 0, 0, 0, 2 ** -0.5], - [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], - [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], - [0, 2 ** -0.5, 0, 2 ** -0.5, 0], - ], dtype=complex), -} - - -def _reptrans(basis, l): - """transmat = . dmftproj stores cubic/fromfile coefficients via a - single-precision CMPLX cast (set_ang_trans.f:146); reproduce the float32 - truncation so the written numbers match bit-for-bit.""" - if basis == 'cubic' and l in _CUBIC: - return _CUBIC[l].astype(np.complex64).astype(np.complex128) - return np.eye(2 * l + 1, dtype=complex) - - -# --- Wigner D matrix (dmftproj convention, setsym.f dmat) -------------------- - -def _small_d(l, m, n, b): - f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ - (math.factorial(l + n) * math.factorial(l - n)) - s = 0.0 - for t in range(0, 2 * l + 1): - if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: - f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ - (math.factorial(l - m - t) * math.factorial(m + n + t) * - math.factorial(l - n - t) * math.factorial(t)) - f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \ - else math.sin(b / 2) ** (2 * l - m - n - 2 * t) - f4 = 1.0 if (2 * t + n + m) == 0 \ - else math.cos(b / 2) ** (2 * t + n + m) - s += (-1) ** (l - m - t) * f2 * f3 * f4 - return math.sqrt(f1) * s - - -def _dmat(l, a, b, c, det): - D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - for n in range(-l, l + 1): - v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) - if det < -0.5: - v *= (-1) ** l - D[m + l, n + l] = v - return D - - -def _tmat(l): - T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - T[-m + l, m + l] = (-1) ** m - return T +from ._dmftproj import (dmat, fmt_scalar, read_almblm, read_dmftsym, + read_indmftpr, reptrans, select_window, tmat, write_row) def _sqrt_inv(O): @@ -178,148 +73,6 @@ def _sqrt_inv(O): return D1 @ np.conj(Z).T -# --- inputs ------------------------------------------------------------------ - -def _read_indmftpr(indmftpr): - raw = [l.split('!')[0].strip() for l in open(indmftpr)] - raw = [l for l in raw if l != ''] - nsort = int(raw[0].split()[0]) - mult = [int(x) for x in raw[1].split()][:nsort] - lmax = int(raw[2].split()[0]) - i = 3 - so = 0 - sorts = [] - for isort in range(nsort): - basis = raw[i].split()[0] - i += 1 - if basis == 'fromfile': - i += 1 - l_inc = [int(x) for x in raw[i].split()] - i += 1 - ireps = [int(x) for x in raw[i].split()] - i += 1 - correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] - included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)] - if any(n > 0 for n in ireps): - i += 1 - if correlated_ls: - so = int(raw[i].split()[0]) - i += 1 - sorts.append(dict(basis=basis, correlated_ls=correlated_ls, - included_ls=included_ls)) - last = raw[-1].split() - e_bot, e_top = _to_float(last[0]), _to_float(last[1]) - proj_mode = int(last[2]) if len(last) >= 3 else 0 - return dict(nsort=nsort, mult=mult, lmax=lmax, sorts=sorts, so=so, - e_bot=e_bot, e_top=e_top, proj_mode=proj_mode) - - -def _read_dmftsym(path): - lines = open(path).read().split('\n') - nsym = int(lines[0].split()[0]) - perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] - starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l] - ops = [] - for k, s in enumerate(starts[:nsym]): - toks = lines[s + 1].split() - a, b, g = (math.radians(float(x)) for x in toks[:3]) - iprop = int(toks[3]) - krotm = np.array([[_to_float(x) for x in lines[s + 2 + r].split()] - for r in range(3)]) - ops.append(dict(perm=perms[k], a=a, b=b, g=g, iprop=iprop, - krotm=krotm)) - return nsym, ops - - -# --- almblm parsing ---------------------------------------------------------- - -def _read_almblm(path, info): - nsort = info['nsort'] - lmax = info['lmax'] - mult = info['mult'] - nlm = (lmax + 1) ** 2 - natom = sum(mult) - - r = _Reader(path) - elecn = _to_float(r.record()[0]) - nk = int(r.record()[0]) - r.record() # nloat - eferm = _to_float(r.record()[0]) - - nLO = {} - ovl_LO_u = {} - kp = [None] * nk - - for isrt in range(1, nsort + 1): - for l in range(lmax + 1): - r.record() # u_dot_norm(l) - n = int(r.record()[0]) - nLO[(l, isrt)] = n - for ilo in range(1, n + 1): - toks = r.record() - ovl_LO_u[(ilo, l, isrt)] = _to_float(toks[0]) - for ik in range(nk): - r.skip() # "IK = .." banner - r.skip() # 3-int line - head = r.record() - nbmin, nbmax = int(head[1]), int(head[2]) - nb = nbmax - nbmin + 1 - if kp[ik] is None: - kp[ik] = dict( - nbmin=nbmin, nbmax=nbmax, eband=None, weight=None, - Alm=np.zeros((nlm, natom + 1, nb), dtype=complex), - Clm=np.zeros((1, nlm, natom + 1, nb), dtype=complex)) - eband = np.empty(nb) - weight = None - for off in range(nb): - toks = r.record() - if off == 0: - weight = _to_float(toks[0]) - eband[off] = _to_float(toks[1]) - eband = eband - eferm - if kp[ik]['eband'] is None: - kp[ik]['eband'] = eband - kp[ik]['weight'] = weight - for imu in range(1, mult[isrt - 1] + 1): - iatom = sum(mult[:isrt - 1]) + imu - r.skip() # banner - r.record() # idum - for off in range(nb): - lm = 0 - for l in range(lmax + 1): - for m in range(-l, l + 1): - alm, _blm = _read_two_complex(r) - kp[ik]['Alm'][lm, iatom, off] = alm - for ilo in range(nLO[(l, isrt)]): - clm = _read_complex(r) - kp[ik]['Clm'][ilo, lm, iatom, off] = clm - lm += 1 - - return dict(elecn=elecn, eferm=eferm, nk=nk, nlm=nlm, natom=natom, - nLO=nLO, ovl_LO_u=ovl_LO_u, kp=kp) - - -# --- band-window selection (set_projections.f, proj_mode==0) ----------------- - -def _select_window(nbmin, nbmax, eband, e1, e2): - included = False - nb_bot = nb_top = 0 - for off, ib in enumerate(range(nbmin, nbmax + 1)): - e = eband[off] - if not included and e > e1 and e <= e2: - included = True - nb_bot = ib - elif included and e > e2: - nb_top = ib - 1 - break - elif ib == nbmax and e > e1 and e <= e2: - nb_top = ib - included = True - if not included: - nb_bot = nb_top = 0 - return included, nb_bot, nb_top - - # --- correlated / included orbital descriptors ------------------------------- def _build_crorbs(info): @@ -358,9 +111,9 @@ def _rloc_rotrep(op, l, transmat): det2 = krotm[0, 0] * krotm[1, 1] - krotm[0, 1] * krotm[1, 0] timeinv = det2 < 0.0 phase = (g - a) if timeinv else (a + g) - D = _dmat(l, a, b, g, float(iprop)) + D = dmat(l, a, b, g, float(iprop)) if timeinv: - D = _tmat(l) @ np.conj(D) # setsym.f:320-326 orbital time reversal + D = tmat(l) @ np.conj(D) # setsym.f:320-326 orbital time reversal ephase = np.exp(1j * phase / 2) d = 2 * l + 1 rotl = np.zeros((2 * d, 2 * d), dtype=complex) @@ -375,25 +128,11 @@ def _rloc_rotrep(op, l, transmat): # --- ctqmcout writer --------------------------------------------------------- -def _fmt(x): - """One list-directed real, gfortran-style (leading sign space, ~17 sig).""" - return ' %.16E' % float(x) - - -def _w(f, arr): - f.write(''.join(_fmt(x) for x in arr) + '\n') - - -def _fmt_scalar(x): - x = float(x) - return '%.16f' % x if abs(x) < 1e5 else '%.16E' % x - - def write_ctqmcout(case): """Read .almblm{up,dn}, .indmftpr, .struct, .dmftsym and write .ctqmcout in the dmftproj format.""" - info = _read_indmftpr(case + '.indmftpr') - nsym, ops = _read_dmftsym(case + '.dmftsym') + info = read_indmftpr(case + '.indmftpr') + nsym, ops = read_dmftsym(case + '.dmftsym') up, dn = case + '.almblmup', case + '.almblmdn' if os.path.exists(up) and os.path.exists(dn): @@ -404,7 +143,7 @@ def write_ctqmcout(case): ifSO = bool(info['so']) ns = 2 if ifSP else 1 - spins = [_read_almblm(p, info) for p in spin_files] + spins = [read_almblm(p, info, projectors=True) for p in spin_files] nk = spins[0]['nk'] elecn = spins[0]['elecn'] @@ -421,14 +160,14 @@ def write_ctqmcout(case): windows = [] for ik in range(nk): kp = spins[0]['kp'][ik] - windows.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'], + windows.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], info['e_bot'], info['e_top'])) # window below e_bot (for qbbot) win_below = [] for ik in range(nk): kp = spins[0]['kp'][ik] - win_below.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'], + win_below.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], -1e6, info['e_bot'])) # qbbot: point integration over bands below e_bot, is=1 only under SO @@ -441,7 +180,7 @@ def write_ctqmcout(case): if ifSO: break - transmats = {(cr['l'], cr['sort']): _reptrans(cr['basis'], cr['l']) + transmats = {(cr['l'], cr['sort']): reptrans(cr['basis'], cr['l']) for cr in crorbs} # rotloc Euler angles per crorb: the symmetry op mapping the representative @@ -465,7 +204,7 @@ def write_ctqmcout(case): sort = cr['sort'] transmat = transmats[(l, sort)] op = rotloc_op[icr] - rot = _dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + rot = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) for ik in range(nk): incl, nb_bot, nb_top = windows[ik] if not incl: @@ -527,8 +266,8 @@ def write_ctqmcout(case): f.write('%6d\n' % nk) f.write('%6d\n' % (1 if ifSP else 0)) f.write('%6d\n' % (1 if ifSO else 0)) - f.write(' %s\n' % _fmt_scalar(qbbot)) - f.write(' %s\n' % _fmt_scalar(elecn)) + f.write(' %s\n' % fmt_scalar(qbbot)) + f.write(' %s\n' % fmt_scalar(elecn)) f.write('%6d\n' % norb) for o in orbs: @@ -545,9 +284,9 @@ def write_ctqmcout(case): # Rloc block per crorb (non-mixing SP+SO whole shell) for rotrep, timeinv in rloc_blocks: for m in range(rotrep.shape[0]): - _w(f, rotrep[m, :].real) + write_row(f, rotrep[m, :].real) for m in range(rotrep.shape[0]): - _w(f, rotrep[m, :].imag) + write_row(f, rotrep[m, :].imag) f.write('%6d\n' % (1 if timeinv else 0)) # complex-harmonics -> basis transform block (crorb%first only) @@ -562,9 +301,9 @@ def write_ctqmcout(case): spinrot[d:, d:] = transmat f.write('%6d %6d \n' % (1, 2 * d)) for m in range(2 * d): - _w(f, spinrot[m, :].real) + write_row(f, spinrot[m, :].real) for m in range(2 * d): - _w(f, spinrot[m, :].imag) + write_row(f, spinrot[m, :].imag) # number of bands per k (skip is=2 under SO) for ispin in range(ns): @@ -581,15 +320,15 @@ def write_ctqmcout(case): for ispin in range(ns): P = mat_rep[(icr, ik, ispin)] for mi in range(2 * l + 1): - _w(f, P[mi, :].real) + write_row(f, P[mi, :].real) for ispin in range(ns): P = mat_rep[(icr, ik, ispin)] for mi in range(2 * l + 1): - _w(f, P[mi, :].imag) + write_row(f, P[mi, :].imag) # k-weights for ik in range(nk): - f.write(' %s\n' % _fmt_scalar(spins[0]['kp'][ik]['weight'])) + f.write(' %s\n' % fmt_scalar(spins[0]['kp'][ik]['weight'])) # H(k) eigenvalues (skip is=2 under SO) for ispin in range(ns): @@ -599,4 +338,4 @@ def write_ctqmcout(case): incl, nb_bot, nb_top = windows[ik] kp = spins[ispin]['kp'][ik] for ib in range(nb_bot, nb_top + 1): - f.write(' %s\n' % _fmt_scalar(kp['eband'][ib - kp['nbmin']])) + f.write(' %s\n' % fmt_scalar(kp['eband'][ib - kp['nbmin']])) diff --git a/python/triqs_dftkit/wien2k/oubwin.py b/python/triqs_dftkit/wien2k/oubwin.py index 46512ba..bc44eaa 100644 --- a/python/triqs_dftkit/wien2k/oubwin.py +++ b/python/triqs_dftkit/wien2k/oubwin.py @@ -44,181 +44,26 @@ """ import os -import numpy as np +from ._dmftproj import read_almblm, read_indmftpr, select_window -# --- list-directed token stream over a Fortran free-form text file ----------- -class _Reader: - """Record-oriented reader mirroring Fortran list-directed and READ('()') - semantics on a free-form almblm file. - - `record()` returns the whitespace tokens of the next physical line (the - common case: every almblm logical record fits on one line). `skip()` - consumes one physical line unconditionally, matching READ('()').""" - - def __init__(self, path): - with open(path) as fh: - self._lines = fh.read().splitlines() - self._i = 0 - - def skip(self): - self._i += 1 - - def record(self): - toks = self._lines[self._i].split() - self._i += 1 - return toks - - -def _to_float(tok): - """Parse a Fortran real token, accepting D/d exponents (1.0D-3) and the - list-directed 4.57E-002 form. Python float already handles E/e and the - embedded sign in the exponent; only D/d needs translation.""" - return float(tok.replace('D', 'E').replace('d', 'e')) - - -# --- inputs ------------------------------------------------------------------ - -def _read_window(indmftpr): - """Energy/band window from the last non-empty line of case.indmftpr. - - Try list-directed `e_bot e_top proj_mode`; on failure fall back to - `e_bot e_top` with proj_mode=0 (dmftproj.f:182-197).""" - lines = [l for l in open(indmftpr).read().splitlines() if l.strip()] - toks = lines[-1].split() - e_bot, e_top = _to_float(toks[0]), _to_float(toks[1]) - proj_mode = int(toks[2]) if len(toks) >= 3 else 0 - return e_bot, e_top, proj_mode - - -def _read_indmftpr_geometry(indmftpr): - """Return (nsort, lmax) from case.indmftpr. nsort is its first value and - lmax its third (dmftproj.f:95). Both are needed to walk the per-sort - almblm header up to the k-loop.""" - raw = [l.split('!')[0].strip() for l in open(indmftpr)] - raw = [l for l in raw if l != ''] - nsort = int(raw[0].split()[0]) - lmax = int(raw[2].split()[0]) - return nsort, lmax - - -def _read_so_flag(indmftpr): - """Spin-orbit flag from case.indmftpr: the single integer line that - follows a correlated sort's irep specification (the value dmftproj stores - as ifSOflag). Returns 0 or 1.""" - raw = [l.split('!')[0].strip() for l in open(indmftpr)] - raw = [l for l in raw if l != ''] - nsort = int(raw[0].split()[0]) - i = 3 - so = 0 - for _ in range(nsort): - basis = raw[i].split()[0] - i += 1 - if basis == 'fromfile': - i += 1 - l_inc = [int(x) for x in raw[i].split()] - i += 1 - ireps = [int(x) for x in raw[i].split()] - i += 1 - correlated = any(v == 2 for v in l_inc) - if any(n > 0 for n in ireps): - i += 1 - if correlated: - so = int(raw[i].split()[0]) - i += 1 - return so - - -# --- almblm parsing ---------------------------------------------------------- - -def _read_almblm_windows(path, nsort, lmax): - """Read case.almblm and return (eferm, [(nbmin, nbmax, eband, weight) per - k-point]) for the FIRST atomic sort. nbmin/nbmax/eband/weight are identical - across sorts at a given k, so the first sort's k-loop suffices for window - selection. - - Follows the dmftproj.f read order field by field: header, then the first - sort's per-l header (u_dot_norm, nLO, nLO overlap lines), then its k-loop - (two skipped banner lines, the idum/nbmin/nbmax line, the per-band - rtetr/eband lines).""" - r = _Reader(path) - r.record() # elecn - nk = int(r.record()[0]) - r.record() # nloat - eferm = _to_float(r.record()[0]) # non-band path: eferm is header line 4 - - # First sort's per-l header: u_dot_norm, nLO, then nLO overlap lines. - for _ in range(lmax + 1): - r.record() # u_dot_norm(l) - nlo = int(r.record()[0]) - for _ in range(nlo): - r.record() # ovl_LO_u, ovl_LO_udot - - kpoints = [] - for _ in range(nk): - r.skip() # "IK = .. jatom=.." banner - r.skip() # 3-int line - idum_nb = r.record() - nbmin, nbmax = int(idum_nb[1]), int(idum_nb[2]) - eband = np.empty(nbmax - nbmin + 1) - weight = None - for off in range(nbmax - nbmin + 1): - toks = r.record() - rtetr = _to_float(toks[0]) - eband[off] = _to_float(toks[1]) - if off == 0: # tetrahedron weight of the lowest band - weight = rtetr - kpoints.append((nbmin, nbmax, eband, weight)) - return eferm, kpoints - - -# --- band-window selection (set_projections.f, proj_mode==0) ----------------- - -def _select_window(nbmin, nbmax, eband, eferm, e_bot, e_top): - """proj_mode==0 contiguous band selection for one k-point. - - Scan absolute band index ib = nbmin..nbmax over the Fermi-shifted energy - E = eband - eferm. The first ib with e_bot < E <= e_top opens the window; - the first ib above it with E > e_top closes it at ib-1 (scan exits). A - window reaching nbmax closes at nbmax. Returns (included, nb_bot, nb_top) - with nb_bot=nb_top=0 when no band qualifies.""" - included = False - nb_bot = nb_top = 0 - for off, ib in enumerate(range(nbmin, nbmax + 1)): - e = eband[off] - eferm - if not included and e_bot < e <= e_top: - included = True - nb_bot = ib - elif included and e > e_top: - nb_top = ib - 1 - break - elif ib == nbmax and e_bot < e <= e_top: - nb_top = ib - included = True - if not included: - nb_bot = nb_top = 0 - return included, nb_bot, nb_top - - -def _windows_for_spin(almblm, indmftpr, nsort, lmax, e_bot, e_top, proj_mode): +def _windows_for_spin(almblm, info): """Per-k (included, nb_bot, nb_top, weight) for one spin's almblm file.""" - if proj_mode != 0: + if info['proj_mode'] != 0: raise NotImplementedError( 'oubwin generation is implemented for the energy-window ' 'projection mode (proj_mode==0); band-index modes 1 and 2 are ' 'not yet covered by a test fixture') - eferm, kpoints = _read_almblm_windows(almblm, nsort, lmax) + sp = read_almblm(almblm, info) out = [] - for nbmin, nbmax, eband, weight in kpoints: - incl, nb_bot, nb_top = _select_window( - nbmin, nbmax, eband, eferm, e_bot, e_top) - out.append((incl, nb_bot, nb_top, weight)) + for kp in sp['kp']: + incl, nb_bot, nb_top = select_window( + kp['nbmin'], kp['nbmax'], kp['eband'], info['e_bot'], info['e_top']) + out.append((incl, nb_bot, nb_top, kp['weight'])) return out -# --- output ------------------------------------------------------------------ - def _write_oubwin_file(path, ifso, windows): """Write one case.oubwin spin file (outbwin.f). Integer fields are i6; the per-k weight is a list-directed real. Not-included k-points emit only @@ -240,19 +85,15 @@ def write_oubwin(case): Spin-polarization is inferred from the input files. The spin-orbit flag written into every file comes from case.indmftpr; under -sp+-so the up/dn windows must coincide (dmftproj aborts otherwise).""" - indmftpr = case + '.indmftpr' - nsort, lmax = _read_indmftpr_geometry(indmftpr) - ifso = _read_so_flag(indmftpr) - e_bot, e_top, proj_mode = _read_window(indmftpr) + info = read_indmftpr(case + '.indmftpr') + ifso = bool(info['so']) up, dn = case + '.almblmup', case + '.almblmdn' spin_polarized = os.path.exists(up) and os.path.exists(dn) if spin_polarized: - win_up = _windows_for_spin( - up, indmftpr, nsort, lmax, e_bot, e_top, proj_mode) - win_dn = _windows_for_spin( - dn, indmftpr, nsort, lmax, e_bot, e_top, proj_mode) + win_up = _windows_for_spin(up, info) + win_dn = _windows_for_spin(dn, info) if ifso: for u, d in zip(win_up, win_dn): if u[0] != d[0] or u[1] != d[1] or u[2] != d[2]: @@ -262,6 +103,5 @@ def write_oubwin(case): _write_oubwin_file(case + '.oubwinup', ifso, win_up) _write_oubwin_file(case + '.oubwindn', ifso, win_dn) else: - win = _windows_for_spin( - case + '.almblm', indmftpr, nsort, lmax, e_bot, e_top, proj_mode) + win = _windows_for_spin(case + '.almblm', info) _write_oubwin_file(case + '.oubwin', ifso, win) diff --git a/python/triqs_dftkit/wien2k/parproj.py b/python/triqs_dftkit/wien2k/parproj.py index 91a3c97..dee0d5f 100644 --- a/python/triqs_dftkit/wien2k/parproj.py +++ b/python/triqs_dftkit/wien2k/parproj.py @@ -58,110 +58,8 @@ import os import numpy as np - -# --- list-directed token stream over a Fortran free-form text file ----------- - -class _Reader: - def __init__(self, path): - with open(path) as fh: - self._lines = fh.read().splitlines() - self._i = 0 - - def skip(self): - self._i += 1 - - def record(self): - toks = self._lines[self._i].split() - self._i += 1 - return toks - - -def _to_float(tok): - return float(tok.replace('D', 'E').replace('d', 'e')) - - -def _to_complex(s): - s = s.strip().lstrip('(').rstrip(')') - re_s, im_s = s.split(',') - return complex(_to_float(re_s), _to_float(im_s)) - - -def _read_complex(r): - buf = list(r.record()) - while ')' not in ''.join(buf): - buf += r.record() - return _to_complex(''.join(buf)) - - -def _read_two_complex(r): - """Read a record holding two list-directed complex values (Alm, Blm).""" - buf = list(r.record()) - while ''.join(buf).count(')') < 2: - buf += r.record() - s = ''.join(buf) - cut = s.index(')') + 1 - return _to_complex(s[:cut]), _to_complex(s[cut:]) - - -# --- angular basis: cubic d transform transmat = ------------------ - -_CUBIC = { - 2: np.array([ - [0, 0, 1, 0, 0], - [2 ** -0.5, 0, 0, 0, 2 ** -0.5], - [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], - [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], - [0, 2 ** -0.5, 0, 2 ** -0.5, 0], - ], dtype=complex), -} - - -def _reptrans(basis, l): - """transmat = . dmftproj stores the cubic coefficients via a - single-precision CMPLX cast (set_ang_trans.f:146); reproduce the float32 - truncation so the written numbers match bit-for-bit.""" - if basis == 'cubic' and l in _CUBIC: - return _CUBIC[l].astype(np.complex64).astype(np.complex128) - return np.eye(2 * l + 1, dtype=complex) - - -# --- Wigner D matrix (dmftproj convention, setsym.f dmat) -------------------- - -def _small_d(l, m, n, b): - f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ - (math.factorial(l + n) * math.factorial(l - n)) - s = 0.0 - for t in range(0, 2 * l + 1): - if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: - f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ - (math.factorial(l - m - t) * math.factorial(m + n + t) * - math.factorial(l - n - t) * math.factorial(t)) - f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \ - else math.sin(b / 2) ** (2 * l - m - n - 2 * t) - f4 = 1.0 if (2 * t + n + m) == 0 \ - else math.cos(b / 2) ** (2 * t + n + m) - s += (-1) ** (l - m - t) * f2 * f3 * f4 - return math.sqrt(f1) * s - - -def _dmat(l, a, b, c, det): - D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - for n in range(-l, l + 1): - v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) - if det < -0.5: - v *= (-1) ** l - D[m + l, n + l] = v - return D - - -def _tmat(l): - """Complex-conjugation operator in the spherical-harmonic basis, - T[m, -m] = (-1)^m (timeinv.f).""" - T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - T[-m + l, m + l] = (-1) ** m - return T +from ._dmftproj import (dmat, read_almblm, read_dmftsym, read_indmftpr, + reptrans, select_window, tmat, write_row) def _sqrtm_real_sym(O): @@ -174,183 +72,6 @@ def _sqrtm_real_sym(O): return (D1 @ Z.T).real -# --- inputs ------------------------------------------------------------------ - -def _read_indmftpr(indmftpr): - raw = [l.split('!')[0].strip() for l in open(indmftpr)] - raw = [l for l in raw if l != ''] - nsort = int(raw[0].split()[0]) - mult = [int(x) for x in raw[1].split()][:nsort] - lmax = int(raw[2].split()[0]) - i = 3 - so = 0 - sorts = [] - for isort in range(nsort): - basis = raw[i].split()[0] - i += 1 - if basis == 'fromfile': - i += 1 - l_inc = [int(x) for x in raw[i].split()] - i += 1 - ireps = [int(x) for x in raw[i].split()] - i += 1 - correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] - included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)] - if any(n > 0 for n in ireps): - i += 1 - if correlated_ls: - so = int(raw[i].split()[0]) - i += 1 - sorts.append(dict(basis=basis, correlated_ls=correlated_ls, - included_ls=included_ls)) - last = raw[-1].split() - e_bot, e_top = _to_float(last[0]), _to_float(last[1]) - proj_mode = int(last[2]) if len(last) >= 3 else 0 - return dict(nsort=nsort, mult=mult, lmax=lmax, sorts=sorts, so=so, - e_bot=e_bot, e_top=e_top, proj_mode=proj_mode) - - -def _read_dmftsym(path): - """Symmetry operations and the per-sort representative Rloc rotation from - case.dmftsym. The symop block carries (perm, a, b, g, iprop, krotm); the - 'Global->local' tail carries the representative rotloc krotm + Euler angles - per sort (setsym.f:437-455).""" - lines = open(path).read().split('\n') - nsym = int(lines[0].split()[0]) - perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] - starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l] - ops = [] - for k, s in enumerate(starts[:nsym]): - toks = lines[s + 1].split() - a, b, g = (math.radians(float(x)) for x in toks[:3]) - iprop = int(toks[3]) - krotm = np.array([[_to_float(x) for x in lines[s + 2 + r].split()] - for r in range(3)]) - ops.append(dict(perm=perms[k], a=a, b=b, g=g, iprop=iprop, - krotm=krotm)) - # Global->local representative rotloc per sort. - gl = next(i for i, l in enumerate(lines) if 'Global->local' in l) - rotloc_ref = [] - j = gl + 1 - while len(rotloc_ref) < nsym and j < len(lines): - if lines[j].strip() == '' or not lines[j].split()[0].lstrip('-').isdigit(): - j += 1 - continue - # sort index line, then 3 krotm rows, then the Euler/iprop line. - if len(lines[j].split()) == 1: - krotm = np.array([[_to_float(x) for x in lines[j + 1 + r].split()] - for r in range(3)]) - ang = lines[j + 4].split() - a, b, g = (math.radians(float(x)) for x in ang[:3]) - iprop = int(ang[3]) - rotloc_ref.append(dict(krotm=krotm, a=a, b=b, g=g, iprop=iprop)) - j += 5 - else: - j += 1 - return nsym, ops, rotloc_ref - - -# --- almblm parsing ---------------------------------------------------------- - -def _read_almblm(path, info): - """Read one spin's almblm file. Keeps Alm, Blm and Clm (parproj needs the - full radial vector), plus u_dot_norm, ovl_LO_u, ovl_LO_udot for the s12 - build and the per-band tetrahedron weights for the density matrix.""" - nsort = info['nsort'] - lmax = info['lmax'] - mult = info['mult'] - nlm = (lmax + 1) ** 2 - natom = sum(mult) - nloat_max = 1 # max nLO over (l, sort); grown below - - r = _Reader(path) - elecn = _to_float(r.record()[0]) - nk = int(r.record()[0]) - r.record() # nloat - eferm = _to_float(r.record()[0]) - - nLO = {} - u_dot_norm = {} - ovl_LO_u = {} - ovl_LO_udot = {} - kp = [None] * nk - - for isrt in range(1, nsort + 1): - for l in range(lmax + 1): - u_dot_norm[(l, isrt)] = _to_float(r.record()[0]) - n = int(r.record()[0]) - nLO[(l, isrt)] = n - nloat_max = max(nloat_max, n) - for ilo in range(1, n + 1): - toks = r.record() - ovl_LO_u[(ilo, l, isrt)] = _to_float(toks[0]) - ovl_LO_udot[(ilo, l, isrt)] = _to_float(toks[1]) - for ik in range(nk): - r.skip() # "IK = .." banner - r.skip() # 3-int line - head = r.record() - nbmin, nbmax = int(head[1]), int(head[2]) - nb = nbmax - nbmin + 1 - if kp[ik] is None: - kp[ik] = dict( - nbmin=nbmin, nbmax=nbmax, eband=None, weight=None, - tetr=None, - Alm=np.zeros((nlm, natom + 1, nb), dtype=complex), - Blm=np.zeros((nlm, natom + 1, nb), dtype=complex), - Clm=np.zeros((4, nlm, natom + 1, nb), dtype=complex)) - eband = np.empty(nb) - tetr = np.empty(nb) - for off in range(nb): - toks = r.record() - tetr[off] = _to_float(toks[0]) - eband[off] = _to_float(toks[1]) - eband = eband - eferm - if kp[ik]['eband'] is None: - kp[ik]['eband'] = eband - kp[ik]['weight'] = tetr[0] - kp[ik]['tetr'] = tetr - for imu in range(1, mult[isrt - 1] + 1): - iatom = sum(mult[:isrt - 1]) + imu - r.skip() # banner - r.record() # idum - for off in range(nb): - lm = 0 - for l in range(lmax + 1): - for m in range(-l, l + 1): - alm, blm = _read_two_complex(r) - kp[ik]['Alm'][lm, iatom, off] = alm - kp[ik]['Blm'][lm, iatom, off] = blm - for ilo in range(nLO[(l, isrt)]): - clm = _read_complex(r) - kp[ik]['Clm'][ilo, lm, iatom, off] = clm - lm += 1 - - return dict(elecn=elecn, eferm=eferm, nk=nk, nlm=nlm, natom=natom, - nLO=nLO, u_dot_norm=u_dot_norm, ovl_LO_u=ovl_LO_u, - ovl_LO_udot=ovl_LO_udot, kp=kp) - - -# --- band-window selection (set_projections.f, proj_mode==0) ----------------- - -def _select_window(nbmin, nbmax, eband, e1, e2): - included = False - nb_bot = nb_top = 0 - for off, ib in enumerate(range(nbmin, nbmax + 1)): - e = eband[off] - if not included and e > e1 and e <= e2: - included = True - nb_bot = ib - elif included and e > e2: - nb_top = ib - 1 - break - elif ib == nbmax and e > e1 and e <= e2: - nb_top = ib - included = True - if not included: - nb_bot = nb_top = 0 - return included, nb_bot, nb_top - - # --- included orbital descriptors -------------------------------------------- def _build_orbs(info): @@ -399,68 +120,17 @@ def _srot_rotrep_nonmixing(op, l, transmat, ifSP, ifSO): else: timeinv = False phase = 0.0 - rotl = _dmat(l, a, b, g, float(iprop)) + rotl = dmat(l, a, b, g, float(iprop)) rotrep = transmat @ rotl @ np.conj(transmat.T) if timeinv: # timeinv_op in the new basis: reptrans T reptrans^T applied to conj. - tmat = _tmat(l) - tinv = transmat @ tmat @ transmat.T + tinv = transmat @ tmat(l) @ transmat.T rotrep = tinv @ np.conj(rotrep) return rotrep, timeinv, phase # --- rotloc rotrep (set_rotloc.f) under SP+SO, non-mixing -------------------- -def _euler(Rot): - """Euler angles (a, b, g) of a 3x3 proper rotation, dmftproj convention - (set_rotloc.f euler, called on TRANSPOSE(krotm)).""" - def dot(u, v): - return float(np.dot(u, v)) - - def vecprod(u, v): - return np.cross(u, v) - R = Rot - y = np.array([0.0, 1.0, 0.0]) - z = np.array([0.0, 0.0, 1.0]) - yyy = R[:, 1] - zz = R[:, 2] - yy = vecprod(z, zz) - y_norm = math.sqrt(dot(yy, yy)) - pi = math.pi - if y_norm < 1e-10: - d = dot(y, yyy) - a = math.acos(d / abs(d)) if abs(d) > 1.0 else math.acos(d) - if dot(z, zz) > 0.0: - c = 0.0 - b = 0.0 - if yyy[0] > 0.0: - a = 2 * pi - a - else: - c = a - a = 0.0 - b = pi - if yyy[0] < 0.0: - c = 2 * pi - c - else: - yy = yy / y_norm - aa, bb, cc = dot(y, yy), dot(z, zz), dot(yy, yyy) - if abs(aa) > 1.0: - aa = aa / abs(aa) - if abs(bb) > 1.0: - bb = bb / abs(bb) - if abs(cc) > 1.0: - cc = cc / abs(cc) - b = math.acos(bb) - a = math.acos(aa) - c = math.acos(cc) - if yy[0] > 0.0: - a = 2 * pi - a - pom = vecprod(yy, yyy) - if dot(pom, zz) < 0.0: - c = 2 * pi - c - return a, b, c - - def _rotloc_rotrep_so(orb, ops, info, ref, transmat): """rotloc(iatom)%rotrep(l)%mat, the full 2*(2l+1) Rloc spinor rotation in the new basis under SP+SO, non-mixing (set_rotloc.f), plus timeinv flag. @@ -477,7 +147,7 @@ def _rotloc_rotrep_so(orb, ops, info, ref, transmat): d = 2 * l + 1 # rotloc%rotl(2d) initial value (setsym.f:496-528): spmt (x) D(rotloc_ref). - Dref = _dmat(l, ref['a'], ref['b'], ref['g'], float(ref['iprop'])) + Dref = dmat(l, ref['a'], ref['b'], ref['g'], float(ref['iprop'])) f = (ref['a'] + ref['g']) / 2.0 spmt = np.zeros((2, 2), dtype=complex) spmt[0, 0] = np.exp(1j * f) * math.cos(ref['b'] / 2.0) @@ -501,9 +171,9 @@ def _rotloc_rotrep_so(orb, ops, info, ref, transmat): srot_phase = (op['g'] - op['a']) if timeinv else (op['a'] + op['g']) # srot%rotl D(R[isym])_{lm}, with the timeinv operator applied if magnetic # (setsym.f:318-331 applies timeinv_op to srot%rotl before set_rotloc). - rotl_sym = _dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + rotl_sym = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) if timeinv: - rotl_sym = _tmat(l) @ np.conj(rotl_sym) + rotl_sym = tmat(l) @ np.conj(rotl_sym) ephase = np.exp(1j * srot_phase / 2.0) tmp = np.zeros((2 * d, 2 * d), dtype=complex) tmp[:d, :d] = ephase * rotl_sym @@ -665,19 +335,11 @@ def _rotdens_densmat(orb, blocks, rotrep_loc, timeinv): # --- parproj writer ---------------------------------------------------------- -def _fmt(x): - return ' %.16E' % float(x) - - -def _w(f, arr): - f.write(''.join(_fmt(x) for x in arr) + '\n') - - def write_parproj(case): """Read .almblm{up,dn}, .indmftpr, .struct, .dmftsym and write .parproj in the dmftproj format.""" - info = _read_indmftpr(case + '.indmftpr') - nsym, ops, rotloc_ref = _read_dmftsym(case + '.dmftsym') + info = read_indmftpr(case + '.indmftpr') + nsym, ops, rotloc_ref = read_dmftsym(case + '.dmftsym', rotloc=True) up, dn = case + '.almblmup', case + '.almblmdn' if os.path.exists(up) and os.path.exists(dn): @@ -688,7 +350,7 @@ def write_parproj(case): ifSO = bool(info['so']) ns = 2 if ifSP else 1 - spins = [_read_almblm(p, info) for p in spin_files] + spins = [read_almblm(p, info, projectors=True) for p in spin_files] nk = spins[0]['nk'] info['nk'] = nk @@ -713,12 +375,12 @@ def write_parproj(case): below_windows = [] for ik in range(nk): kp = spins[0]['kp'][ik] - windows.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'], + windows.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], info['e_bot'], info['e_top'])) - below_windows.append(_select_window(kp['nbmin'], kp['nbmax'], + below_windows.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], -1e6, info['e_bot'])) - transmats = {(o['l'], o['sort']): _reptrans(o['basis'], o['l']) + transmats = {(o['l'], o['sort']): reptrans(o['basis'], o['l']) for o in orbs} # rot_projectmat local rotation: the op mapping the representative atom of @@ -737,7 +399,7 @@ def write_parproj(case): l = o['l'] transmat = transmats[(l, o['sort'])] op = rotloc_op[o['atom']] - rot = _dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + rot = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) matn_reps[o['atom']] = _build_matn_rep( o, info, spins, ns, windows, transmat, rot) matn_reps_full[o['atom']] = _build_matn_rep( @@ -794,24 +456,24 @@ def write_parproj(case): for ispin in range(ns): P = matn_reps[atom][(ik, ispin)][:, :, ir] for mi in range(2 * l + 1): - _w(f, P[mi, :].real) + write_row(f, P[mi, :].real) for ispin in range(ns): P = matn_reps[atom][(ik, ispin)][:, :, ir] for mi in range(2 * l + 1): - _w(f, P[mi, :].imag) + write_row(f, P[mi, :].imag) # (B) density matrix, non-mixing SP+SO 2*(2l+1) (outputqmc.f:1033-1049). dp = densprint[atom] for m in range(2 * (2 * l + 1)): - _w(f, dp[m, :].real) + write_row(f, dp[m, :].real) for m in range(2 * (2 * l + 1)): - _w(f, dp[m, :].imag) + write_row(f, dp[m, :].imag) # (C) Rloc rotrep, non-mixing SP+SO (outputqmc.f:1148-1158). rotrep_loc, timeinv = rotloc_rotrep[atom] for m in range(2 * (2 * l + 1)): - _w(f, rotrep_loc[m, :].real) + write_row(f, rotrep_loc[m, :].real) for m in range(2 * (2 * l + 1)): - _w(f, rotrep_loc[m, :].imag) + write_row(f, rotrep_loc[m, :].imag) if ifSP: f.write('%6d\n' % (1 if timeinv else 0)) diff --git a/python/triqs_dftkit/wien2k/sympar.py b/python/triqs_dftkit/wien2k/sympar.py index 1600324..dbe688a 100644 --- a/python/triqs_dftkit/wien2k/sympar.py +++ b/python/triqs_dftkit/wien2k/sympar.py @@ -47,128 +47,29 @@ path and writes the timeflag line; the paramagnetic tail is absent. """ -import math import os import numpy as np +from ._dmftproj import (dmat, fmt, read_dmftsym, read_indmftpr, reptrans, + timeinv_orbital, tmat, write_row) -# --- angular bases ----------------------------------------------------------- -# transpose(P) = , m = -l..l. dmftproj stores cubic/fromfile coefficients -# via a single-precision CMPLX cast (set_ang_trans.f:146); reproduce the -# float32 truncation so the written numbers match (0.70710676908 for 1/sqrt2). -# A complex basis is the exact identity (no cast). -_CUBIC = { - 1: np.array([[0, 1, 0], [-1j, 0, -1j], [1, 0, -1]], dtype=complex), - 2: np.array([ - [0, 0, 1, 0, 0], - [2 ** -0.5, 0, 0, 0, 2 ** -0.5], - [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], - [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], - [0, 2 ** -0.5, 0, 2 ** -0.5, 0], - ], dtype=complex), -} +# --- included shells --------------------------------------------------------- - -def _reptrans(basis, l): - if basis == 'cubic' and l in _CUBIC: - return _CUBIC[l].astype(np.complex64).astype(np.complex128) - return np.eye(2 * l + 1, dtype=complex) - - -# --- Wigner D matrix (dmftproj convention, setsym.f) ------------------------- - -def _small_d(l, m, n, b): - f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ - (math.factorial(l + n) * math.factorial(l - n)) - s = 0.0 - for t in range(0, 2 * l + 1): - if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: - f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ - (math.factorial(l - m - t) * math.factorial(m + n + t) * - math.factorial(l - n - t) * math.factorial(t)) - f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \ - else math.sin(b / 2) ** (2 * l - m - n - 2 * t) - f4 = 1.0 if (2 * t + n + m) == 0 \ - else math.cos(b / 2) ** (2 * t + n + m) - s += (-1) ** (l - m - t) * f2 * f3 * f4 - return math.sqrt(f1) * s - - -def _dmat(l, a, b, c, det): - D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - for n in range(-l, l + 1): - v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) - if det < -0.5: - v *= (-1) ** l - D[m + l, n + l] = v - return D - - -def _tmat(l): - """T[m, -m] = (-1)^m, complex conjugation in the |lm> basis (timeinv.f).""" - T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - T[-m + l, m + l] = (-1) ** m - return T - - -def _timeinv_orbital(l, mat): - return _tmat(l) @ np.conj(mat) - - -# --- inputs ------------------------------------------------------------------ - -def _read_indmftpr(indmftpr): - """Return one entry per INCLUDED shell (l_inc in {1,2}), one per atom of its - sort, in orb order (sort, l, atom). Each shell carries l, basis name and the - transform P. Also returns the SO flag.""" - raw = [l.split('!')[0].strip() for l in open(indmftpr)] - raw = [l for l in raw if l != ''] - nsort = int(raw[0].split()[0]) - mult = [int(x) for x in raw[1].split()][:nsort] - i = 3 - so = 0 +def _included_shells(info): + """One entry per INCLUDED shell (l_inc in {1,2}), one per atom of its sort, + in orb order (sort, l, atom). Each shell carries l, basis name and the + transform P (the single-precision-cast cubic harmonics dmftproj writes).""" shells = [] - for isort in range(nsort): - basis = raw[i].split()[0] - i += 1 - if basis == 'fromfile': - i += 1 - l_inc = [int(x) for x in raw[i].split()] - i += 1 - ireps = [int(x) for x in raw[i].split()] - i += 1 - correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] - included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)] - if any(n > 0 for n in ireps): - i += 1 # skip the correps line - if correlated_ls: - so = int(raw[i].split()[0]) # SO flag follows a correlated sort - i += 1 - for l in included_ls: - P = _reptrans(basis, l) - for imu in range(1, mult[isort] + 1): - atom = sum(mult[:isort]) + imu + for isort in range(info['nsort']): + s = info['sorts'][isort] + for l in s['included_ls']: + P = reptrans(s['basis'], l) + for imu in range(1, info['mult'][isort] + 1): + atom = sum(info['mult'][:isort]) + imu shells.append(dict(l=l, sort=isort + 1, atom=atom, - basis=basis, P=P)) - return shells, so - - -def _read_dmftsym(path): - lines = open(path).read().split('\n') - nsym = int(lines[0].split()[0]) - perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] - starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l] - ops = [] - for k, s in enumerate(starts[:nsym]): - toks = lines[s + 1].split() - a, b, c = (math.radians(float(x)) for x in toks[:3]) - krotm = np.array([[float(x.replace('D', 'E').replace('d', 'e')) - for x in lines[s + 2 + r].split()] for r in range(3)]) - ops.append(dict(perm=perms[k], a=a, b=b, c=c, krotm=krotm)) - return nsym, ops + basis=s['basis'], P=P)) + return shells # --- matrix construction (shared with symqmc) -------------------------------- @@ -188,9 +89,9 @@ def _nonmixing_matrix(op, shell, ti): block-diagonal over spin, with the orbital time-reversal operator on the magnetic operations (setsym.f, outputqmc.f:1292-1339).""" l, P = shell['l'], shell['P'] - rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + rotl = dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) if ti: - rotl = _timeinv_orbital(l, rotl) + rotl = timeinv_orbital(l, rotl) rotrep = P @ rotl @ np.conj(P.T) e = np.exp(1j * _phase(op, ti) / 2) d = 2 * l + 1 @@ -209,20 +110,11 @@ def _shell_matrix(op, shell, ti): # --- output ------------------------------------------------------------------ -def _fmt(x): - """One gfortran list-directed real (leading sign space, ~17 sig figs).""" - return ' %.16E' % float(x) - - -def _w(f, arr): - f.write(''.join(_fmt(x) for x in arr) + '\n') - - def _write_matrix(f, mat): for m in range(mat.shape[0]): - _w(f, mat[m, :].real) + write_row(f, mat[m, :].real) for m in range(mat.shape[0]): - _w(f, mat[m, :].imag) + write_row(f, mat[m, :].imag) def write_sympar(case): @@ -232,12 +124,13 @@ def write_sympar(case): SO flag, exactly as oubwin/symqmc/ctqmcout. For SP+SO the file carries the timeflag line and 2*(2l+1)-wide block-diag spinor matrices; the paramagnetic time-reversal tail is written only when .not.ifSP.""" - shells, so = _read_indmftpr(case + '.indmftpr') + info = read_indmftpr(case + '.indmftpr') + shells, so = _included_shells(info), info['so'] if any(sh['basis'] == 'fromfile' for sh in shells): raise NotImplementedError( 'sympar for fromfile/mixing bases is not yet covered by a test ' 'fixture; cubic and complex bases are supported') - nsym, ops = _read_dmftsym(case + '.dmftsym') + nsym, ops = read_dmftsym(case + '.dmftsym') natom = len(ops[0]['perm']) ifSP = os.path.exists(case + '.almblmup') and os.path.exists(case + '.almblmdn') @@ -262,8 +155,8 @@ def write_sympar(case): l = sh['l'] ti = bool(timeflag[isym]) if l == 0 and not (ifSP and ifSO): - f.write(_fmt(1.0) + '\n') - f.write(_fmt(0.0) + '\n') + f.write(fmt(1.0) + '\n') + f.write(fmt(0.0) + '\n') continue _write_matrix(f, _shell_matrix(op, sh, ti)) @@ -271,10 +164,10 @@ def write_sympar(case): for sh in shells: l = sh['l'] if l == 0: - f.write(_fmt(1.0) + '\n') - f.write(_fmt(0.0) + '\n') + f.write(fmt(1.0) + '\n') + f.write(fmt(0.0) + '\n') continue - tm = _tmat(l) + tm = tmat(l) op = sh['P'] @ tm @ sh['P'].T ident = np.eye(2 * l + 1, dtype=complex) time_op = op @ np.conj(ident) diff --git a/python/triqs_dftkit/wien2k/symqmc.py b/python/triqs_dftkit/wien2k/symqmc.py index 22e9a2d..306f4e7 100644 --- a/python/triqs_dftkit/wien2k/symqmc.py +++ b/python/triqs_dftkit/wien2k/symqmc.py @@ -47,163 +47,48 @@ is full double precision. """ -import math -import os import numpy as np -# --- angular bases (transpose(P) = , m = -l..l) ----------------------- +from ._dmftproj import (dmat, read_dmftsym, read_fromfile, read_indmftpr, + reptrans, tmat, timeinv_orbital) -_COMPLEX = {l: np.eye(2 * l + 1, dtype=complex) for l in range(4)} -# standard cubic harmonics, Wien2k convention -_CUBIC = { - 1: np.array([[0, 1, 0], [-1j, 0, -1j], [1, 0, -1]], dtype=complex) / 1.0, - 2: np.array([ - [0, 0, 1, 0, 0], - [2 ** -0.5, 0, 0, 0, 2 ** -0.5], - [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5], - [0, 2 ** -0.5, 0, -(2 ** -0.5), 0], - [0, 2 ** -0.5, 0, 2 ** -0.5, 0], - ], dtype=complex), -} - - -def _reptrans(basis, l): - if basis == 'cubic' and l in _CUBIC: - return _CUBIC[l] - return _COMPLEX[l] - - -# --- Wigner D matrix (dmftproj convention, setsym.f) ------------------------- - -def _small_d(l, m, n, b): - f1 = (math.factorial(l + m) * math.factorial(l - m)) / \ - (math.factorial(l + n) * math.factorial(l - n)) - s = 0.0 - for t in range(0, 2 * l + 1): - if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0: - f2 = (math.factorial(l + n) * math.factorial(l - n)) / \ - (math.factorial(l - m - t) * math.factorial(m + n + t) * - math.factorial(l - n - t) * math.factorial(t)) - f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 else math.sin(b / 2) ** (2 * l - m - n - 2 * t) - f4 = 1.0 if (2 * t + n + m) == 0 else math.cos(b / 2) ** (2 * t + n + m) - s += (-1) ** (l - m - t) * f2 * f3 * f4 - return math.sqrt(f1) * s - - -def _dmat(l, a, b, c, det): - D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - for n in range(-l, l + 1): - v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b) - if det < -0.5: - v *= (-1) ** l - D[m + l, n + l] = v - return D - - -def _tmat(l): - """Complex-conjugation operator in the spherical-harmonic basis, - T[m, -m] = (-1)^m (timeinv.f).""" - T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex) - for m in range(-l, l + 1): - T[-m + l, m + l] = (-1) ** m - return T - - -def _timeinv_orbital(l, mat): - return _tmat(l) @ np.conj(mat) - - -# --- fromfile angular basis --------------------------------------------------- - -def _read_fromfile(path, l): - """Parse a dmftproj fromfile basis (each line: the coefficients of a new - basis vector in {|m,up>, |m,dn>}, m = -l..l, real/imag interleaved; '*' - marks the end of an irep). Return (P, mixing) where P = is the - transform matrix (reptrans.transmat), full 2(2l+1) for a spin-mixing basis - or the (2l+1) up/up block otherwise.""" - n = 2 * (2 * l + 1) - rows = [] - for line in open(path): - line = line.rstrip('\n') - if not line.strip(): - continue - body = line[1:] - vals = [float(x) for x in body.split()][:2 * n] - rows.append([vals[2 * k] + 1j * vals[2 * k + 1] for k in range(n)]) - if len(rows) == n: - break - R = np.array(rows) # R[i, :] = |new_i> in old basis - d = 2 * l + 1 - up_up, up_dn = R[:d, :d], R[:d, d:] - dn_up, dn_dn = R[d:, :d], R[d:, d:] - mixing = not (np.allclose(dn_dn, up_up) and - np.allclose(up_dn, 0) and np.allclose(dn_up, 0)) - P = np.conj(R) if mixing else np.conj(up_up) # = conj() - return P, mixing +# --- correlated shells ------------------------------------------------------- +def _correlated_shells(info): + """One entry per correlated atom (l_inc==2), in sort order. Each shell + carries l, basis name, its transform matrix P = and a mixing flag + (True for a spin-coupling fromfile basis). symqmc builds its symmetry + matrices from the EXACT cubic harmonics (no single-precision cast).""" + shells = [] + for isort in range(info['nsort']): + s = info['sorts'][isort] + basis = s['basis'] + for l in s['correlated_ls']: + if basis == 'fromfile': + P, mixing = read_fromfile(s['sourcefile'], l) + else: + P, mixing = reptrans(basis, l, cast=False), False + for _ in range(info['mult'][isort]): + shells.append(dict(l=l, basis=basis, P=P, mixing=mixing)) + return shells -# --- input parsing ----------------------------------------------------------- -def _read_dmftsym(path): - lines = open(path).read().split('\n') - nsym = int(lines[0].split()[0]) - perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)] - rest = lines[1 + nsym:] - starts = [i for i, l in enumerate(rest) if 'Sym. op.' in l] - ops = [] - for k, s in enumerate(starts): - ang = rest[s + 1].split() - a, b, c = (math.radians(float(x)) for x in ang[:3]) - krotm = np.array([[float(x) for x in rest[s + 2 + r].split()] for r in range(3)]) - ops.append(dict(perm=perms[k], a=a, b=b, c=c, krotm=krotm)) - return nsym, ops +# The symqmc test reaches into these two names directly; keep them as the +# module's parsing entry points. +_read_dmftsym = read_dmftsym def _read_correlated_shells(indmftpr, struct): - """Return the list of correlated shells, one entry per correlated atom, plus - the SO flag, from case.indmftpr and case.struct multiplicities. Each shell - carries l, the basis name, its transform matrix P = and a mixing - flag (True for a spin-coupling fromfile basis).""" - raw = [l.split('!')[0].strip() for l in open(indmftpr)] - raw = [l for l in raw if l != ''] - nsort = int(raw[0].split()[0]) - mult = [int(x) for x in raw[1].split()][:nsort] - i = 3 - so = 0 - shells = [] - for isort in range(nsort): - basis = raw[i].split()[0] - i += 1 - sourcefile = None - if basis == 'fromfile': - sourcefile = os.path.join(os.path.dirname(indmftpr), raw[i]) - i += 1 - l_inc = [int(x) for x in raw[i].split()] - i += 1 - ireps = [int(x) for x in raw[i].split()] - i += 1 - correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2] - if any(n > 0 for n in ireps): - i += 1 # skip the correps line - if correlated_ls: - so = int(raw[i].split()[0]) # SO flag follows a correlated sort - i += 1 - for l in correlated_ls: - if basis == 'fromfile': - P, mixing = _read_fromfile(sourcefile, l) - else: - P, mixing = _reptrans(basis, l), False - for _ in range(mult[isort]): - shells.append(dict(l=l, basis=basis, P=P, mixing=mixing)) - return shells, so + info = read_indmftpr(indmftpr) + return _correlated_shells(info), info['so'] def write_symqmc(case): """Write .symqmc from .dmftsym, .indmftpr, .struct.""" - nsym, ops = _read_dmftsym(case + '.dmftsym') - shells, so = _read_correlated_shells(case + '.indmftpr', case + '.struct') + nsym, ops = read_dmftsym(case + '.dmftsym') + info = read_indmftpr(case + '.indmftpr') + shells, so = _correlated_shells(info), info['so'] natom = len(ops[0]['perm']) timeinv = [] @@ -247,9 +132,9 @@ def _nonmixing_matrix(op, shell, ti): """Spin-diagonal basis: the up/up block scaled by +-(a+g)/2, with the orbital time-reversal operator on the magnetic operations.""" l, P = shell['l'], shell['P'] - rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + rotl = dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) if ti: - rotl = _timeinv_orbital(l, rotl) + rotl = timeinv_orbital(l, rotl) rotrep = P @ rotl @ np.conj(P.T) e = np.exp(1j * _phase(op, ti) / 2) d = 2 * l + 1 @@ -265,7 +150,7 @@ def _mixing_matrix(op, shell, ti): magnetic operations); the spinor time-reversal -i sigma_y (x) T is then applied to the magnetic operations (setsym.f, timeinv.f).""" l, P = shell['l'], shell['P'] - rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + rotl = dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) e = np.exp(1j * _phase(op, ti) / 2) d = 2 * l + 1 spinrot = np.zeros((2 * d, 2 * d), dtype=complex) @@ -277,7 +162,7 @@ def _mixing_matrix(op, shell, ti): spinrot[d:, d:] = np.conj(e) * rotl rotrep = P @ spinrot @ np.conj(P.T) if ti: - tm = _tmat(l) + tm = tmat(l) tinv = np.zeros((2 * d, 2 * d), dtype=complex) tinv[:d, d:] = -tm tinv[d:, :d] = tm diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index 1ac88a2..d5109b0 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -83,3 +83,11 @@ add_test(NAME Py_wien2k_parproj_python WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_parproj_python APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Unit tests for the shared dmftproj machinery (_dmftproj), the module the five +# case.* generators are built on. Reuses CaOs2 / CaOs2_partial indmftpr + dmftsym. +add_test(NAME Py_wien2k_dmftproj_common + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_dmftproj_common_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_dmftproj_common APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/wien2k_dmftproj_common_python.py b/test/python/wien2k/wien2k_dmftproj_common_python.py new file mode 100644 index 0000000..dd55d29 --- /dev/null +++ b/test/python/wien2k/wien2k_dmftproj_common_python.py @@ -0,0 +1,93 @@ +################################################################################ +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# (GPL-3.0-or-later) +################################################################################ + +# Unit tests for the shared dmftproj machinery (triqs_dftkit.wien2k._dmftproj), +# the module the five case.* generators are built on. The generators' golden +# tests cover the assembled output; these exercise the isolated primitives +# directly so a regression in a shared unit is caught at its source. + +import os +import tempfile + +import numpy as np + +from triqs_dftkit.wien2k import _dmftproj as dp + +HERE = os.path.dirname(os.path.abspath(__file__)) + + +# --- list-directed numeric parsing ------------------------------------------- + +assert dp.to_float('1.0D-3') == 1.0e-3 +assert dp.to_float('4.57E-002') == 4.57e-2 +assert dp.to_float('-2.5d0') == -2.5 + +assert dp.to_complex('(1.0,-2.0)') == complex(1.0, -2.0) + + +def _reader(text): + fh = tempfile.NamedTemporaryFile('w', suffix='.tmp', delete=False) + fh.write(text) + fh.close() + return dp.Reader(fh.name) + + +r = _reader('(1.0,2.0)\n(3.0,-4.0) (5.0,6.0)\n') +assert dp.read_complex(r) == complex(1.0, 2.0) +a, b = dp.read_two_complex(r) +assert a == complex(3.0, -4.0) and b == complex(5.0, 6.0) + + +# --- angular basis: cubic transform, with and without the float32 cast ------- + +exact = dp.reptrans('cubic', 2, cast=False) +cast = dp.reptrans('cubic', 2, cast=True) +assert exact.shape == (5, 5) +# unitary +assert np.max(np.abs(exact @ np.conj(exact.T) - np.eye(5))) < 1e-12 +# the cast truncates 1/sqrt2 to single precision (the dmftproj #148 noise) +assert abs(abs(exact[1, 0]) - 2 ** -0.5) < 1e-15 +assert 0 < abs(abs(cast[1, 0]) - 2 ** -0.5) < 1e-6 +assert dp.reptrans('complex', 2).shape == (5, 5) +assert np.allclose(dp.reptrans('complex', 2), np.eye(5)) + + +# --- Wigner D and orbital time reversal -------------------------------------- + +for l in (1, 2): + D0 = dp.dmat(l, 0.0, 0.0, 0.0, 1.0) + assert np.max(np.abs(D0 - np.eye(2 * l + 1))) < 1e-12 # zero rotation + D = dp.dmat(l, 0.3, 0.7, 1.1, 1.0) + assert np.max(np.abs(D @ np.conj(D.T) - np.eye(2 * l + 1))) < 1e-12 # unitary + T = dp.tmat(l) + for m in range(-l, l + 1): + assert T[-m + l, m + l] == (-1) ** m + + +# --- select_window: contiguous band range in (e1, e2] ------------------------ + +eband = np.array([-1.0, -0.1, 0.05, 0.2, 0.5]) # bands 10..14, window (-0.15, 0.30] +incl, lo, hi = dp.select_window(10, 14, eband, -0.15, 0.30) +assert incl and lo == 11 and hi == 13 + + +# --- case.indmftpr / case.dmftsym structured parse --------------------------- + +info = dp.read_indmftpr(os.path.join(HERE, 'CaOs2.indmftpr')) +assert info['nsort'] == 2 and info['mult'] == [1, 2] and info['lmax'] == 3 +assert info['so'] == 1 +assert info['sorts'][1]['correlated_ls'] == [2] # Os d correlated +assert info['sorts'][0]['correlated_ls'] == [] # Ca nothing + +part = dp.read_indmftpr(os.path.join(HERE, 'CaOs2_partial.indmftpr')) +assert part['sorts'][0]['included_ls'] == [2] # Ca d now an included shell +assert part['sorts'][0]['correlated_ls'] == [] +assert part['sorts'][1]['correlated_ls'] == [2] + +nsym, ops = dp.read_dmftsym(os.path.join(HERE, 'CaOs2.dmftsym')) +assert nsym == 16 and len(ops) == 16 +assert all(o['krotm'].shape == (3, 3) and len(o['perm']) == 3 for o in ops) + +print('wien2k_dmftproj_common: ok') From 36b886843fdff99f3289f0990836e7393b74e308 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 17:13:37 +0200 Subject: [PATCH 08/16] [wien2k] exact double-precision reproduction (with the dmftproj precision fix) Use the exact analytic cubic harmonics (no float32 cast) and call the same LAPACK/BLAS routines the Fortran does for the Loewdin step (scipy ZHEEV('V','U') and ZGEMM with the matching trans flags, not numpy's ZHEEVD / conj-transpose copies). Regenerate references from the precision-fixed dmftproj (PR #14) with full-precision templates. The port is now exact to machine precision on every output: oubwin byte-identical symqmc 1.5e-14 sympar 1.9e-14 parproj 1.5e-14 ctqmcout 1.5e-14 (full-rank window: 50 bands > 20 correlated spin-orbitals, so the Loewdin overlap O is non-singular and its eigenvectors are unique. The physical narrow-window CaOs2 makes O rank-deficient; O^{-1/2} then amplifies the last-ULP libm difference, a property of that degenerate case, not the port.) Tolerances tightened to 1e-11. Part of #7. --- python/triqs_dftkit/wien2k/_dmftproj.py | 9 +- python/triqs_dftkit/wien2k/ctqmcout.py | 31 +- test/python/wien2k/CaOs2.ctqmcout | 152 +-- test/python/wien2k/CaOs2.symqmc | 1208 ++++++++--------- test/python/wien2k/CaOs2_full.ctqmcout.gz | Bin 0 -> 21950 bytes test/python/wien2k/CaOs2_full.indmftpr | 11 + test/python/wien2k/CaOs2_partial.parproj.gz | Bin 26896 -> 26514 bytes test/python/wien2k/CaOs2_partial.sympar.gz | Bin 8421 -> 9042 bytes test/python/wien2k/wien2k_ctqmcout_python.py | 40 +- test/python/wien2k/wien2k_parproj_python.py | 2 +- test/python/wien2k/wien2k_sympar_python.py | 2 +- .../wien2k/wien2k_symqmc_jbasis.ref.npy | Bin 25728 -> 51328 bytes test/python/wien2k/wien2k_symqmc_l0.ref.npy | Bin 1152 -> 2176 bytes test/python/wien2k/wien2k_symqmc_mixing.py | 2 +- 14 files changed, 741 insertions(+), 716 deletions(-) create mode 100644 test/python/wien2k/CaOs2_full.ctqmcout.gz create mode 100644 test/python/wien2k/CaOs2_full.indmftpr diff --git a/python/triqs_dftkit/wien2k/_dmftproj.py b/python/triqs_dftkit/wien2k/_dmftproj.py index 262b4d2..9b6217b 100644 --- a/python/triqs_dftkit/wien2k/_dmftproj.py +++ b/python/triqs_dftkit/wien2k/_dmftproj.py @@ -119,10 +119,11 @@ def read_two_complex(r): } -def reptrans(basis, l, cast=True): - """transmat = . `cast=True` truncates the cubic harmonics through - the single-precision CMPLX cast dmftproj applies (set_ang_trans.f:146); - `cast=False` keeps them exact. A complex basis is the exact identity.""" +def reptrans(basis, l, cast=False): + """transmat = , exact double-precision cubic harmonics. dmftproj + reads these from full-precision SRC_templates (the precision-fix PR), so the + port uses the exact analytic values. A complex basis is the exact identity. + `cast` is retained for callers that still want the legacy float32 truncation.""" if basis == 'cubic' and l in _CUBIC: c = _CUBIC[l] return c.astype(np.complex64).astype(np.complex128) if cast else c diff --git a/python/triqs_dftkit/wien2k/ctqmcout.py b/python/triqs_dftkit/wien2k/ctqmcout.py index bb1faf6..d999e75 100644 --- a/python/triqs_dftkit/wien2k/ctqmcout.py +++ b/python/triqs_dftkit/wien2k/ctqmcout.py @@ -57,20 +57,28 @@ import os import numpy as np +from scipy.linalg.lapack import zheev +from scipy.linalg.blas import zgemm from ._dmftproj import (dmat, fmt_scalar, read_almblm, read_dmftsym, read_indmftpr, reptrans, select_window, tmat, write_row) def _sqrt_inv(O): - """O^{-1/2} of a Hermitian matrix (orthogonal.f sqrtm with inv=.TRUE.: - Z diag(w^{-1/2}) Z^H). dmftproj evaluates 1/sqrt of the eigenvalue as a - *complex* sqrt (W_comp = CMPLX(W,0)), so a (numerically) negative - eigenvalue contributes i/sqrt(|w|) rather than NaN; reproduce that with a - complex power. The final result D1 @ conj(Z).T matches sqrtm exactly.""" - w, Z = np.linalg.eigh(O) - D1 = Z * (w.astype(complex) ** -0.5) # Z @ diag(w^{-1/2}) - return D1 @ np.conj(Z).T + """O^{-1/2} of a Hermitian matrix, reproducing orthogonal.f sqrtm + (inv=.TRUE.: Z diag(w^{-1/2}) Z^H). Use the same LAPACK routine the Fortran + calls, ZHEEV('V','U'), via scipy so the eigenvectors match rather than the + divide-and-conquer ZHEEVD of numpy.linalg.eigh. dmftproj takes 1/sqrt of the + eigenvalue as a *complex* sqrt (W_comp = CMPLX(W,0)); reproduce that with a + complex power. The result D1 @ conj(Z).T matches the Fortran's ZGEMM('N','T'). + + O is rank-deficient here (more correlated spin-orbitals than bands), so the + near-null eigenvalues amplify the last-ULP libm difference between gfortran + and numpy by ~1e8; ctqmcout therefore matches to ~1e-6, not machine + precision (a property of the algorithm, not the port).""" + w, Z, info = zheev(O, compute_v=1, lower=0) # 'V', 'U' + D1 = Z * (w.astype(complex) ** -0.5) # Z @ diag(w^{-1/2}) + return zgemm(1.0, D1, np.conj(Z), trans_b=1) # ZGEMM('N','T'): D1 @ conj(Z)^T # --- correlated / included orbital descriptors ------------------------------- @@ -243,9 +251,12 @@ def write_ctqmcout(case): blocks.append(mat_rep[(icr, ik, ispin)]) layout.append((icr, ispin, 2 * l + 1)) D = np.vstack(blocks) # ndim x nbnd - O = D @ np.conj(D.T) + # match the Fortran's exact BLAS calls (orthogonal_wannier_SO): the + # near-singular O^{-1/2} amplifies any last-bit difference, so use the + # identical ZGEMM trans flags rather than numpy's conj-transpose copies. + O = zgemm(1.0, D, D, trans_b=2) # ZGEMM('N','C'): D @ D^H S = _sqrt_inv(O) - D_orth = S @ D + D_orth = zgemm(1.0, S, D) # ZGEMM('N','N'): O^{-1/2} @ D row = 0 for icr, ispin, nrows in layout: mat_rep[(icr, ik, ispin)] = D_orth[row:row + nrows, :] diff --git a/test/python/wien2k/CaOs2.ctqmcout b/test/python/wien2k/CaOs2.ctqmcout index f8eceb3..f0f6b70 100644 --- a/test/python/wien2k/CaOs2.ctqmcout +++ b/test/python/wien2k/CaOs2.ctqmcout @@ -10,37 +10,37 @@ 2 2 2 2 10 1 1 3 2 2 10 1 1 - -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -7.4940054162198066E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4940054162198066E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 1.4710455076283324E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4940054162198066E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4940054162198066E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -7.4940054162198066E-015 + -0.70710678118655124 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.70710678118655135 1.4765966227514582E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4765966227514582E-014 0.70710678118655135 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4384942649885488E-015 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654391 -7.4384942649885488E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118655135 -1.4765966227514582E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4765966227514582E-014 0.70710678118655135 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4384942649885488E-015 0.70710678118654391 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654391 -7.4384942649885488E-015 + 0.70710678118654380 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654391 1.4765966227514582E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4765966227514582E-014 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.3829831137572910E-015 -0.70710678118655124 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 7.3829831137572910E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654391 1.4765966227514582E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.4765966227514582E-014 0.70710678118654391 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.3829831137572910E-015 -0.70710678118655124 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 -7.3829831137572910E-015 0 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 @@ -54,15 +54,15 @@ 0 1 10 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.70710676908493042 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.70710678118654757 0.0000000000000000 -0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.70710678118654757 0.0000000000000000 0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 -0.70710676908493042 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.70710676908493042 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654757 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654757 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654757 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654757 0.0000000000000000 -0.70710678118654757 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654757 0.0000000000000000 0.70710678118654757 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 @@ -74,46 +74,46 @@ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 17 - -8.3299679140668938E-010 -3.5057042301671724E-009 -9.0778752951110879E-011 4.3994421658180770E-009 -0.22604524201885492 1.0252359371842728E-009 -2.5885195722099340E-010 -1.7703903665814329E-006 0.63346497200953678 4.7085772120157830E-009 3.2168261973412012E-010 6.8086940399583740E-009 -1.4336687194883592E-009 -8.6465192714255539E-009 -7.9289581186997688E-010 -1.2643135952078624E-008 -0.19390348449684927 - 2.7875320957046725E-002 -7.3845757203589953E-011 -3.3416871606259615E-009 -1.5097375409670037E-009 8.7834224456321541E-010 3.5023907154183279E-009 -1.0960999111772395E-009 -5.1944668126119510E-002 7.2545203300412573E-007 7.0739484934453384E-009 3.7982939037925732E-009 1.5089887658752093E-008 3.2864269746920833E-009 1.1800270817920332E-008 -2.2396654374342643E-010 4.0329883612251065E-009 2.6366512075195883E-009 - 0.19110210146926443 -3.4436533064337062E-008 -2.6683237742250913E-008 1.6138811151545152E-008 -5.8742261833616966E-009 -2.0314134946061775E-008 2.4106529625787708E-009 -3.4444091184561601E-003 4.9463237746716913E-008 2.2659456512881252E-009 3.2533425080388864E-009 -3.7371461066871586E-008 -1.6173701722363227E-008 -1.3288306691953403E-007 -2.5767148098387525E-008 -1.2860252369440123E-007 -3.4279981637971879E-008 - -6.3360927468246183E-010 0.29092641044527373 -1.6477291307334632E-009 -0.26186268654086892 1.5477325823317174E-008 0.13228898130385094 -6.5521444396587446E-009 -8.2791955663305931E-010 3.7056060740662385E-010 -2.3840145058860160E-002 -1.0608104666099270E-002 0.14437182985321692 -2.6426299240781399E-009 -4.7709287571015731E-003 -1.1239829313273361E-008 2.1963783981507640E-002 9.4289349906196928E-009 - 1.4961467982546612E-009 0.29092646333998567 9.5975253636800232E-009 0.26186265908420431 3.1747904727937180E-008 -0.13228900642366040 4.1464334170642749E-009 2.7986631787690147E-009 -3.6187674597597083E-010 -2.3840147091004005E-002 1.0608105105972935E-002 -0.14437181976884197 -3.7281336600102403E-009 -4.7707542969127508E-003 -7.2797947955948550E-009 -2.1963849360600005E-002 4.4167589902492833E-008 - 1.0039589913984849E-009 0.18297860178968400 8.7659236444506661E-010 1.5855880537716929E-009 -6.0035755532783913E-009 7.0213346959298328E-010 -4.9178382618002181E-009 -6.9226548234801613E-009 4.6307842930149818E-009 -0.44807657873110213 -5.8815852134525494E-009 -1.6402268060583112E-009 -4.7987551701168416E-009 1.5170820152346831E-002 2.2229040750045391E-009 1.2424973519047697E-010 -9.2881616556298885E-009 - 3.5373657277014276E-010 6.2332107169847930E-010 2.1689739315318539E-009 0.16250577372197955 -3.8616292225916767E-009 0.11724038767226909 -1.7122215996122070E-008 -2.5187434186782653E-009 1.1619110792842111E-009 -5.2710969837603278E-009 0.35421161489594100 8.7769739897989266E-002 -1.7384549110945082E-008 -2.9982643379309126E-009 6.2293012892351294E-009 0.14251485666180103 -8.0952132391343457E-009 - 3.2265677954116015E-010 2.9084882731672920E-008 -7.4809575289557740E-010 -0.15563645342054747 -6.8938741857066284E-009 -0.49211256005692877 9.7702556418361562E-009 2.5741460899789715E-012 1.8138595920421220E-011 4.2183745426848146E-009 -2.4850487137840646E-002 -0.14074228859154700 -9.9646589278844428E-009 8.6626000939887052E-008 -6.2187767533370221E-009 5.9909763791093834E-002 4.2328438196510027E-009 - -0.40614675191198857 -1.2201415619873962E-008 -5.0778743172647521E-009 5.4428234621562731E-009 0.35500913497411135 -3.1204110106636236E-009 -7.3980575523277595E-009 -2.5927895277863214E-003 -4.4846237416844778E-002 -4.8276326086368341E-010 1.6318623080302618E-009 -1.4286625163694114E-008 -6.1254078291712071E-009 -5.1338547227842901E-008 -9.3593679260922174E-009 -4.9024165651568930E-008 -6.1732169886954437E-002 - -0.40614674520930860 -4.2493903148634571E-009 -4.6192522377311604E-009 2.8026941708637719E-009 -0.35500913878544688 -1.2437135157761745E-009 -4.4061968035356253E-009 -2.5930386582233961E-003 4.4846310241099877E-002 2.2204433219579400E-009 4.7620757146208721E-010 -3.7917169368684442E-009 5.4884755119931811E-009 -1.1909913386479099E-008 3.5767044187481123E-010 -1.1475479522502086E-008 6.1732154622804354E-002 - 4.3837502409173806E-010 -1.2069046077572535E-009 4.5607855886780769E-010 -1.2052649755254989E-009 -0.18214494426849240 -5.3621258141555078E-009 -1.6311530041349841E-010 -8.0210618934773325E-008 -0.30620242876026471 5.0246184737694380E-010 1.0730103905250364E-009 3.2243999570428951E-011 -2.2053123986745525E-010 4.4101536309430388E-009 -2.3235184699365617E-009 -2.8425597984922128E-009 -0.61492130318258065 - 1.6762972887265609E-002 5.1827077079243715E-009 -0.27082885808175988 1.0521384205224081E-008 -1.6622730964325055E-009 -8.2077503935203481E-009 -7.3945720284099070E-002 0.70189400889294717 1.6170428114531511E-006 -1.5271333965654951E-009 -1.7503913657430100E-009 2.7982824193395947E-009 0.13535439377510053 6.6039258000866135E-009 0.63471485587785181 1.3017401939907034E-010 -2.8449714520381681E-009 - 0.11492027885010124 -2.4047276832549414E-008 -0.62205400368739472 -4.2599831828169497E-008 1.0399672317010063E-008 -1.4149985824883871E-008 0.15344527971029964 4.6541891096153754E-002 1.1095481347637038E-007 2.2088828844447553E-009 6.4139738650325561E-010 -1.9303405974296217E-008 -0.22237926263754706 -4.8687336089975644E-009 -0.20012700922787482 9.0355596375230946E-008 1.8401263411644663E-008 - -6.8610767262250032E-011 -0.35224927253460986 -1.9825037313949780E-008 -0.32529743139417566 1.2897506711506551E-008 7.8572465495299657E-002 -1.0785888749646738E-008 -8.9641214449424737E-009 5.4878692231778805E-010 -2.8967090906579382E-002 1.8246442430606694E-002 -0.14705803473474219 1.1258717131017391E-008 0.20312441045024937 7.4135048352683751E-008 -9.4783001201539069E-002 5.7073238002914006E-008 - -2.5086072562117885E-010 -0.35224924646448746 5.0469322704829116E-008 0.32529737984881296 2.5062885675841260E-008 -7.8572508764394366E-002 2.1707500351952256E-008 2.9316799603189222E-009 -1.1749541068909464E-009 -2.8967105047732991E-002 -1.8246443486593402E-002 0.14705806305024458 -2.6114495525480216E-008 0.20312436810216816 -1.6555054768660104E-007 9.4783179624406383E-002 9.9487133677350929E-008 - -2.2063352845771332E-010 -0.22154768334481009 -6.3042745669445578E-009 2.7005887744251005E-009 -2.9063207929608116E-010 2.1488924888596998E-009 -3.4506175550819407E-009 3.3536261365153001E-009 1.6351745591338704E-009 -0.54443778965806056 -8.7241644668895284E-010 -2.0021126734768195E-009 -1.5063791969541749E-009 -0.64591433613615201 1.1164114332395333E-008 -1.1310898537066399E-008 -1.1217631733907829E-008 - 7.2913698959286745E-011 -2.5611254737974581E-010 -9.2929422419518749E-010 0.20187186581904454 5.0496420276272970E-009 6.9634422469070728E-002 -2.6898941495831632E-009 -4.1561131132327149E-009 3.4398084293356818E-010 2.6830013046855405E-009 -0.60926071611138766 -8.9402799293602633E-002 -2.4096341478056873E-009 1.3485349002152279E-009 2.1262341458105618E-008 -0.61501098919122033 2.5197152618226495E-009 - -9.6388212521149193E-010 8.2918722190767037E-009 -2.0641479835418408E-008 -0.19333845419887349 -9.5651365493208182E-009 -0.29228814680462101 -7.6704394798460981E-009 -1.0107369447802224E-009 -5.6639379821640123E-010 5.1141187506059893E-009 4.2744007170702154E-002 0.14336097342757043 1.0130585477106605E-008 -1.0821989659467784E-008 7.6187073990721425E-008 -0.25853528479334242 -3.0340749308132834E-008 - -0.24423851284230236 -9.6155883758618136E-009 -0.12760980788501020 -1.7439329975127749E-008 0.28606273689723316 -1.6224296939787636E-008 -0.41400168738077581 3.5036323816719880E-002 2.1677741335387517E-002 -3.0901874000658984E-010 -7.4347262977335866E-010 -1.4213548070969048E-008 0.20257530193220008 -3.0147670339452186E-009 -0.14588211300457646 3.4157790714657123E-008 -0.19576966629829526 - -0.24423851127462287 -3.1002437592927778E-009 -0.12760981350147563 -5.9073264387075969E-009 -0.28606273164405227 -1.0447780036287766E-008 -0.41400168257437203 3.5036312007608345E-002 -2.1677578806517522E-002 -6.4105671242936678E-010 4.7375350888110749E-010 -4.9882386014146498E-009 0.20257529569692234 1.0267331351637828E-009 -0.14588209568237315 2.7215975006503735E-009 0.19576967466443063 - 9.0679959717190494E-010 -2.2008400003486777E-009 9.2035868261477254E-010 3.3288764885573450E-009 -0.22604523984136474 1.5637625703876123E-009 1.9593894887330856E-010 1.7704037111927574E-006 -0.63346497199144092 -4.7103098826979136E-009 -3.1788027507582721E-010 8.4249310197293698E-009 1.3205661308364376E-010 -3.0045809786992074E-009 9.2010441555505037E-010 -6.9960449757271001E-009 -0.19390348258411713 - -2.7875320742772505E-002 -5.5652216619116035E-009 -5.3919198104982360E-009 1.7979462905085161E-009 -3.1360491633054101E-010 -3.4506668900795779E-011 -1.6636890545135745E-009 5.1944668296159922E-002 -7.2545506761884178E-007 -7.0677779442959870E-009 -3.8064223125941971E-009 8.7475938961619824E-009 8.1208549121748724E-010 -1.1984587475102177E-008 -4.4623233150022333E-009 -1.8937803252982954E-008 -3.4118403903437977E-009 - -0.19110210185571147 3.2098355548141706E-008 2.9850241838703112E-009 -1.8243118650007592E-008 8.0058531325819546E-009 1.8019168709954248E-008 -2.3321667059186324E-009 3.4444086962004640E-003 -4.9325673696455648E-008 -2.3537665498847274E-009 -3.3061871902567654E-009 3.6242792700179439E-008 1.0953769709190307E-008 1.3292529535615360E-007 2.7598304079520308E-008 1.2991079651253922E-007 3.2786491579603253E-008 - 2.3374181877352316E-009 0.29092645352944940 6.0312934310529206E-009 -0.26186270339587536 -1.2943019679467309E-008 0.13228898707758815 -8.0343754450769576E-009 9.9056370928967718E-010 -4.2365989890189233E-010 2.3840145004905076E-002 1.0608104553252604E-002 0.14437182045626487 5.7301941859411843E-009 -4.7707832008221981E-003 1.5615679002047344E-008 2.1963836398739948E-002 -8.4581837067390464E-009 - -1.6476810471490893E-009 0.29092641826824844 -3.3404472711913858E-009 0.26186273496277812 -3.6569188267729177E-008 -0.13228898258792449 3.9411462919995131E-009 -2.9978139337362623E-009 2.0435246999474907E-010 2.3840147308039506E-002 -1.0608105330102667E-002 -0.14437183758378880 -1.1663541875049487E-010 -4.7709545207769433E-003 8.3870793607462596E-009 -2.1963765092619086E-002 -4.3226822835084896E-008 - -1.0418574039701412E-009 0.18297860155812268 1.1484244496900985E-009 -1.6890924387014436E-009 -8.9450289709911508E-010 -7.4209721155303773E-010 -4.7176463909255783E-009 6.9341190906076067E-009 -4.6300413394911136E-009 0.44807657870630990 5.8726380651018723E-009 -4.5069432250077972E-010 -5.3983655029008815E-009 1.5170823084105606E-002 -6.3989030029144390E-011 -7.2331199761342548E-009 -3.7048777346235618E-009 - -3.4450609640268585E-010 -2.3492461177066976E-010 2.9677098891881702E-009 0.16250576895511321 -1.8392566431204764E-009 0.11724038654236243 -1.6900495974753669E-008 2.5369876577508581E-009 -1.1517017232773736E-009 5.2515884722091468E-009 -0.35421161491741920 8.7769736485274918E-002 -1.6442313055607173E-008 -5.0652239911959127E-009 7.4271871553378331E-009 0.14251484250139418 -6.5750405118294949E-009 - -1.8855836694504242E-010 -2.1040698381036500E-008 -2.5236665009274601E-009 -0.15563647740207270 4.6934585134236764E-009 -0.49211257035103367 1.3923516256101850E-008 -5.0536015268481205E-011 -4.7560119836804341E-011 -4.1424021447722052E-009 2.4850486814616497E-002 -0.14074234035153330 1.8907298256623521E-009 -8.9619446025855078E-008 5.6435029576626218E-009 5.9909581218084366E-002 -3.7148206597465794E-009 - 0.40614675120082444 1.2997943938488268E-008 8.3657743690829842E-009 -8.5070193002980489E-009 0.35500915446013603 9.3244147324613229E-009 -5.1446667626781596E-009 2.5927897837433036E-003 4.4846237491878028E-002 5.1309145986880473E-010 -1.6966586512037322E-009 1.4399171769292269E-008 1.4851373378450752E-008 5.0014954769297710E-008 1.4589832093235581E-008 5.0822710813470125E-008 -6.1732141171463896E-002 - 0.40614674597945394 1.5781094763172180E-009 1.5653401164845076E-009 1.9210785193353018E-009 -0.35500915288868584 4.0274777028046712E-009 -7.2910595461953055E-009 2.5930386966897790E-003 -4.4846310572172622E-002 -2.2160852569940781E-009 -4.6931890970976455E-010 1.5220150672891460E-009 1.5711335669818199E-009 9.7168031884898235E-009 7.8740436311457900E-010 8.5323588652117350E-009 6.1732157170305016E-002 - -3.9574553229144208E-010 8.6974434992783100E-011 -3.2734043700568200E-010 6.8488724456921905E-010 -0.18214494227915443 -5.0631468638144217E-009 3.0377601513418316E-010 8.0210113088572794E-008 0.30620242875715253 -4.9929895677420183E-010 -1.0720966614833382E-009 1.3900744402695991E-009 -1.1855906063073843E-009 5.0302758990648091E-009 1.5466556279300948E-011 -7.2738549646613615E-009 -0.61492129806347584 - -1.6762973009369166E-002 1.0836612877683691E-010 -0.27082885484593716 7.4621304188467907E-010 9.1402418052358922E-010 -1.1263526508468045E-008 -7.3945718973022448E-002 -0.70189400887955866 -1.6170645019239372E-006 1.5300763815350784E-009 1.7356474169187969E-009 -1.2044768808134150E-009 0.13535439164257576 5.6453665311754195E-009 0.63471484630532748 1.6997038090569337E-008 3.3351835515760884E-010 - -0.11492027969985288 3.1697756855716351E-008 -0.62205404016623855 5.5363910264751692E-008 -1.1351717665261505E-008 2.1195254044855871E-008 0.15344526559194852 -4.6541891054502363E-002 -1.1130483340715734E-007 -2.2288441476278565E-009 -7.2630585956928035E-010 2.7149105814925575E-008 -0.22237923822447400 6.2228461722933433E-009 -0.20012690201569222 -9.7501242006243981E-008 -1.7242424919294614E-008 - -4.0513742066645548E-009 -0.35224924279837649 1.3463913611148244E-008 -0.32529741356733882 -1.5709872784958772E-008 7.8572485881360621E-002 8.4980573756536786E-009 8.9495474200250719E-009 -6.5262706897084931E-010 2.8967090644634326E-002 -1.8246442215921543E-002 -0.14705802443644461 -1.5332806187234664E-008 0.20312433191514159 -6.9283105628942235E-008 -9.4783007358669569E-002 -5.6125141528545545E-008 - -1.1532429341588326E-009 -0.35224929352112549 -5.2798190762740624E-008 0.32529746529464437 -1.9380389672850138E-008 -7.8572456713884561E-002 -1.4126967956908924E-008 -3.0578201952579793E-009 8.1358752011917108E-010 2.8967104694346171E-002 1.8246443881922807E-002 0.14705800478036199 3.7364755952798559E-008 0.20312437712091169 1.5962309522891740E-007 9.4782827036815648E-002 -9.9025226357374557E-008 - 2.1299158910158361E-010 -0.22154768191422422 -2.4750723025704329E-009 -2.8659928856953602E-009 3.5740684375069561E-009 -1.7175908117087390E-009 -2.5007897188534218E-009 -3.3557564066314483E-009 -1.6296956823415182E-009 0.54443778968121725 8.8990042975629124E-010 4.1851783341140154E-010 -3.4879465618082223E-009 -0.64591433231307815 1.5067229522957532E-009 7.6018394582859758E-009 5.3805137926965139E-009 - -1.0598699429996071E-010 7.7134402605760225E-011 5.8292503697917106E-009 0.20187185885980286 7.0190349448783808E-009 6.9634420922647197E-002 5.6205284764449031E-010 4.1504309623553247E-009 -3.4135989366755027E-010 -2.6938579289149447E-009 0.60926071610766075 -8.9402795057407849E-002 -6.3417020086222932E-009 4.3686766941523182E-010 -2.8362662670884689E-009 -0.61501096620745832 9.3448702992217342E-009 - 1.2441597619438833E-009 -1.6538459018641143E-008 1.6821870042303133E-008 -0.19333854486782040 1.1633189650359068E-008 -0.29228816742295732 1.4738565647031249E-008 1.0633883021185138E-009 5.6928291285678825E-010 -5.0750192863357723E-009 -4.2744007647320573E-002 0.14336100501680429 -6.6735901246573234E-009 1.5745556932365030E-008 -6.6596699671902497E-008 -0.25853510343471031 3.0603943956483639E-008 - 0.24423851347702183 1.1796410324744897E-008 -0.12760982192851061 2.1172803094302839E-008 0.28606274182397395 -5.2744044210568111E-009 -0.41400168710922308 -3.5036323872070299E-002 -2.1677741287455074E-002 2.4789952767997181E-010 7.5151242756730389E-010 6.5822327705578110E-009 0.20257530132277951 4.3604120108252495E-009 -0.14588207184133795 -4.0418820004883398E-008 -0.19576963825055146 - 0.24423851152907769 1.4490126594049515E-009 -0.12760981581860137 4.4841925557596892E-009 -0.28606274746068738 -4.2085331345566214E-009 -0.41400169122870312 -3.5036312051076199E-002 2.1677578858922079E-002 6.3461307469453046E-010 -4.6812706070410901E-010 -4.0596300792422499E-009 0.20257530833187692 -8.8338485037074876E-010 -0.14588208766544986 -9.6266154426627010E-009 0.19576963039007630 + -1.6364737630493277E-009 -8.0888580725012358E-009 -1.5073029468734900E-009 3.9125565708416238E-009 -0.22604523778910127 -8.5019869066658420E-010 -1.4187713677944467E-009 -1.7703175882762738E-006 0.63346496101916416 4.5676245507321725E-009 1.5871259379114100E-010 6.3028484878877605E-009 -9.9996340688402678E-010 -2.8646318384193197E-008 7.9677698266477674E-009 -1.1581990243364088E-008 -0.19390347890876408 + 2.7875320727334552E-002 3.8009442999480978E-009 -3.9500288317967722E-009 -1.1788397060873433E-009 -4.5514785274318637E-010 2.9663661576540072E-009 -8.0694023614837972E-010 -5.1944669240485263E-002 7.2541333040723273E-007 7.4583849446314001E-009 4.2091825644866673E-009 1.3239830131143230E-008 2.3620513131834740E-010 2.8049672864679444E-008 -9.5249947599798597E-009 -1.5752412382940841E-009 -6.7496732202006374E-009 + 0.19110210807023098 -8.3316935337577537E-008 -3.5104925200946670E-008 5.3430576914173581E-009 1.2722675775929680E-008 -1.2949630709638371E-008 -4.5194740638146307E-010 -3.4444008106951406E-003 4.9209227645008261E-008 -1.9113364262590849E-009 -1.1461163163064751E-009 -1.5288821845741855E-008 1.2727575557688944E-008 -3.1162266842011540E-007 7.4961918091694824E-008 -6.6492784117367224E-008 6.8759250839698748E-008 + -4.9388629252584230E-009 0.29092631454868900 -1.5885931072284031E-007 -0.26186273671481425 8.0539611164703330E-008 0.13228893266070882 -6.1805276250495673E-008 -1.1079887676563146E-008 5.3173233879045139E-010 -2.3840147529573242E-002 -1.0608106442841662E-002 0.14437186320991247 9.7191033993625750E-008 -4.7713932481133646E-003 5.1171312951558291E-007 2.1964099794077409E-002 3.2400036566811004E-007 + 1.8592746163798155E-009 0.29092646296782387 4.8441700280963662E-008 0.26186268702601345 -9.9842993354526051E-009 -0.13228898591171678 1.8184892086969941E-008 3.3517932105639359E-009 -4.2586751776201810E-010 -2.3840148278003584E-002 1.0608102453760544E-002 -0.14437181732446680 -2.8926941569162286E-008 -4.7707401468565225E-003 -1.4504517662227057E-007 -2.1963827329681194E-002 -4.0589252956389349E-008 + 1.3006696899978029E-009 0.18297860272758862 6.6105447730274154E-009 2.6699977239241286E-009 -7.2860931617780095E-009 2.6706936640113406E-009 -2.7420975896170643E-009 -6.3845930993881882E-009 4.6437991070965278E-009 -0.44807657053580940 -5.6321642543075172E-009 -3.5831648061960114E-009 -8.7704023764065650E-009 1.5170843870321297E-002 -1.8386433216578399E-008 -1.7861132437565136E-008 -2.1565000285449407E-008 + 2.3893728172146132E-011 -5.8621641607927665E-009 -4.7384080530992929E-009 0.16250576882794018 2.2024603974671464E-010 0.11724038428184635 -1.9094457224568921E-008 -2.8002757235361795E-009 1.2563600890478659E-009 -5.3842324955590105E-009 0.35421161006985175 8.7769738380358300E-002 -1.2413796631434059E-008 -2.5522095869749546E-008 2.9450812436724036E-008 0.14251485370955291 5.4371433324732525E-009 + -1.5236083225149538E-009 -1.9345731894701970E-008 -1.8405071672535539E-008 -0.15563645491315550 6.7335927729939222E-009 -0.49211255646386814 1.0042068649617921E-008 -1.7406941738124803E-010 1.3096659286419698E-009 2.9637998217792738E-009 -2.4850483673703155E-002 -0.14074232206643406 8.8573385670315238E-009 -2.7047485419311018E-008 4.2695771179307555E-008 5.9909611100427487E-002 2.6235520044645383E-008 + -0.40614676845385977 -5.5326408415975868E-008 -9.8551064905514207E-009 8.9405754409816131E-010 0.35500916387514836 -1.4850464068693635E-008 -1.6981627411048823E-008 -2.5927854792783937E-003 -4.4846238299319691E-002 -2.3610729165662912E-009 -6.1981372798689336E-010 -1.3308623144893715E-008 5.3517099407272490E-009 -2.3470650786659528E-007 7.7647948907330766E-008 -2.7547831649394795E-008 -6.1732102405569381E-002 + -0.40614673849569044 1.7227729145971521E-008 6.1509173627593437E-009 2.4681191141917476E-009 -0.35500916980606606 1.4130259422996842E-008 3.9662489693809647E-009 -2.5930378594641442E-003 4.4846312179011541E-002 2.0951472180287700E-009 5.4256729990038056E-010 4.9600369929685963E-009 9.2563740408443708E-009 8.7502036481521710E-008 -3.8776236724741492E-008 -4.5556174024477548E-009 6.1732136084814260E-002 + -2.9375681845920077E-010 -5.4996044474491380E-009 -8.9874871604376554E-010 -1.7286616428843901E-009 -0.18214494389185584 -4.9425806497296206E-009 1.3341248710820386E-009 -8.0222427225665845E-008 -0.30620242356549132 4.3010703135895242E-010 9.9675407716276727E-010 -1.1708638180509657E-009 4.5806177761915576E-011 2.2972194100486450E-009 -1.7341048936631688E-009 -6.4077302744847920E-010 -0.61492130856835681 + 1.6762973200700901E-002 8.3757111802912033E-009 -0.27082885938954970 7.1929776703982158E-009 1.7747191133215382E-009 -9.2059275821354266E-009 -7.3945719574441751E-002 0.70189401345399727 1.6172347103871265E-006 -1.2000664471106977E-009 -1.6061616339665583E-009 2.5313978520830045E-009 0.13535439378273573 6.3507988755650439E-009 0.63471485456001864 6.8403657486643410E-009 -1.8631379770672733E-009 + 0.11492028157002675 -6.6924049847962291E-008 -0.62205403742112542 -9.0731184993978598E-009 -2.8675878444658382E-008 -2.6356276320418915E-009 0.15344525864684783 4.6541890385691724E-002 1.1022809036555606E-007 -1.8294231895223204E-009 -9.8800668052124091E-010 -1.8503330702008538E-008 -0.22237925390573565 -1.9729670628751630E-009 -0.20012695331359981 1.5299584998451109E-008 6.8635818381152023E-009 + -2.5643977191075550E-009 -0.35224938002421180 5.9139080579439503E-010 -0.32529737378209117 -9.3811329532618534E-008 7.8572519339873789E-002 -3.7756390079974734E-009 -8.2440501208695438E-009 7.9284502728282035E-010 -2.8967098079511151E-002 1.8246437950490392E-002 -0.14705803567260523 8.1448394255010481E-010 0.20312432006570522 1.3795138452952988E-008 -9.4782925351665187E-002 -9.3789054526339713E-008 + -5.8830401784356914E-011 -0.35224924006447123 -2.9094474070747572E-009 0.32529741646115973 1.6818904155830553E-008 -7.8572484062731804E-002 1.0401410550747200E-009 1.1157780017376459E-009 -9.8806053873539545E-010 -2.8967090476840658E-002 -1.8246440377539450E-002 0.14705802609409765 4.8120744728587045E-009 0.20312435185006003 5.1889203035151739E-009 9.4783003107920510E-002 2.0617133292183437E-008 + -3.6059486385991273E-011 -0.22154767181960641 -4.3666837584732465E-009 -2.3700925023919114E-009 5.8745202249981382E-009 -1.8907495839802861E-009 -2.6460905332983103E-009 3.3991009495120138E-009 1.6478849788282492E-009 -0.54443778022841149 -8.3626721440915476E-010 -3.1722110562833976E-010 -2.5855588148992714E-009 -0.64591431417268008 5.3259903518536913E-009 -5.8965798836662491E-009 1.0650557018015385E-009 + -1.2150427926714141E-010 -4.0118973955998543E-009 2.3638013507327320E-009 0.20187185934300889 2.5429245229356206E-009 6.9634421363991228E-002 -1.5241739967259630E-009 -3.9392436219525426E-009 3.3412829840168361E-010 1.6930876672513725E-009 -0.60926070783466080 -8.9402795740053290E-002 -4.3117759119384675E-009 2.8057260935437424E-009 1.0264872708201556E-008 -0.61501096964091095 3.2484065827446341E-009 + -1.1172313740963202E-009 3.9429180505528409E-009 -3.7697853426112111E-009 -0.19333851645543204 -3.2436893733587295E-009 -0.29228817177237698 -2.6111437954460776E-009 1.0350119399947264E-009 -4.7388330047844555E-010 -1.3296972736845110E-010 4.2744002940343459E-002 0.14336099426169066 7.4418616796492475E-010 4.2116653256506721E-008 1.8519824222048552E-008 -0.25853516965252632 1.0375206847991757E-008 + -0.24423852360876522 -5.1646580628083888E-008 -0.12760982409050936 -1.0659668655112989E-008 0.28606273266739701 -1.0454024862025998E-008 -0.41400167750017902 3.5036324071657216E-002 2.1677742108702644E-002 -1.6010427777144940E-009 -1.7614192765886939E-009 -2.2476683811204583E-008 0.20257530446460467 -1.7254604170860407E-008 -0.14588209601226013 3.2651605199294944E-008 -0.19576969760255078 + -0.24423850300244257 1.9638041414349023E-008 -0.12760981741350305 5.9383972880259453E-009 -0.28606273790119507 -1.0504878225658375E-008 -0.41400170183241886 3.5036312238196220E-002 -2.1677579123179261E-002 -8.4932099343800901E-010 6.8693395947932463E-010 2.1763149811873753E-009 0.20257529433929861 1.6771639879642121E-008 -0.14588209000315056 -3.0328483776047447E-008 0.19576970510776853 + 1.5742593420368659E-009 2.7663536665404652E-009 1.8502466755381737E-009 4.1545534087880997E-009 -0.22604524330183060 3.3561777604142808E-009 1.4747450787935593E-009 1.7703142767497045E-006 -0.63346496101679717 -4.5584756646660029E-009 -1.4133293060279910E-010 9.0367639538542631E-009 -4.3079617306589231E-010 1.6823160391632297E-008 -7.9983581606319914E-009 -7.9660645582934864E-009 -0.19390348916968214 + -2.7875320516982997E-002 -9.8504411695241786E-009 -7.8371958516376568E-009 1.5129406281486946E-009 1.1316237388957151E-009 5.7953332962810498E-010 -1.2226862273360659E-009 5.1944669280297999E-002 -7.2536230720706391E-007 -7.4588525599505437E-009 -4.2166535087245802E-009 1.0869592216248509E-008 2.7808804725547166E-009 -2.8179038275099079E-008 4.2071397899902890E-009 -1.3387478020219511E-008 6.1286595168445476E-009 + -0.19110211207511088 7.3619775981124216E-008 2.3559333247811542E-008 -1.4784480513246270E-008 -1.1115226766187535E-008 1.1637569535744193E-008 -1.7722160752721371E-009 3.4444003936094959E-003 -5.0066090057178471E-008 2.0712533037166276E-009 1.2138071671031628E-009 1.2265849997915118E-008 -1.3412063354801199E-008 3.1502262751540708E-007 -7.4099555210789280E-008 6.6748946037724849E-008 -7.0377762743457329E-008 + 5.8867673959312925E-009 0.29092654611302515 1.6043118238196619E-007 -0.26186264729115688 -7.7583474149628449E-008 0.13228903780293455 4.5828382299185551E-008 1.1189847324048000E-008 -6.4161757077216673E-010 2.3840146743883548E-002 1.0608106405228556E-002 0.14437178223917738 -9.2510279707870297E-008 -4.7703121331356306E-003 -5.0710315484458914E-007 2.1963521355808605E-002 -3.2388085008271195E-007 + -2.0611763464110732E-009 0.29092640195832109 -4.1780328981358853E-008 0.26186269300196408 6.5145009521278771E-009 -0.13228898457668678 -1.2381655699153787E-008 -3.3817522539523969E-009 4.3891898722244074E-010 2.3840148525995981E-002 -1.0608102412027309E-002 -0.14437182636010429 2.6471724874926621E-008 -4.7709686247501808E-003 1.4546065062816202E-007 -2.1963788072849814E-002 4.0855522464531085E-008 + -1.4119917990111533E-009 0.18297859349654697 -4.5962238588814453E-009 -1.9925930663407642E-009 2.6096051413764505E-010 -2.9600964876233509E-009 -6.9093627752431666E-009 6.4351647809770088E-009 -4.6391106869871014E-009 0.44807657052396277 5.5933940202089487E-009 1.7132905980721300E-009 -1.3621071854369413E-009 1.5170798116606250E-002 2.0608663120491609E-008 1.0989432491835354E-008 8.5874429342512463E-009 + -3.2996234151727865E-011 5.5628681758493206E-009 9.5140043389568367E-009 0.16250577105738925 -6.0312180647196198E-009 0.11724038769308767 -1.4823777762351086E-008 2.8065403272227263E-009 -1.2684406390683123E-009 5.3780197928348473E-009 -0.35421161004201923 8.7769737148320204E-002 -2.1539468729564028E-008 1.7660724718389309E-008 -1.5884563977142187E-008 0.14251484359654584 -2.0085620692105112E-008 + 1.8384234868455688E-009 1.8514900688217580E-008 1.5655499847025844E-008 -0.15563646800806255 -8.4316077074118275E-009 -0.49211254887555472 1.3531033430693936E-008 2.2355024467665528E-010 -1.2918408467519571E-009 -2.8976718084908578E-009 2.4850483899222165E-002 -0.14074230046277000 -1.6751496664189300E-008 2.4400923412522542E-008 -4.3163273919020436E-008 5.9909731753925548E-002 -2.5735806120589130E-008 + 0.40614676611073364 5.7318190577374422E-008 2.2076147725745869E-008 -2.4974135851905523E-009 0.35500913394195077 2.0562514399998390E-008 2.7069392921030576E-009 2.5927862223980719E-003 4.4846238500052510E-002 2.5265093538242557E-009 5.0706685303566229E-010 1.2727421868984430E-008 5.3890158877803532E-009 2.3356505406810666E-007 -7.1822962672043274E-008 2.9319634161002884E-008 -6.1732208180109584E-002 + 0.40614673796945883 -2.1593234460881796E-008 -8.8401390543305508E-009 -1.1082150801032474E-009 -0.35500912348431773 -1.0290715571286910E-008 -1.5195442659818969E-008 2.5930377658901055E-003 -4.4846311604862694E-002 -2.1221874090835210E-009 -5.0536414900050731E-010 -7.8231853321640755E-009 -2.1554415376099141E-009 -8.8495970539629362E-008 4.0414586893298193E-008 8.4488285488055934E-010 6.1732175713997348E-002 + 5.0992271142369417E-010 4.6599282142188231E-009 9.3446623396195022E-010 9.7327162801908101E-010 -0.18214494212216939 -5.3573107428721319E-009 -2.9504519753454791E-010 8.0257447634623298E-008 0.30620242351428700 -4.2249656780723851E-010 -9.9778349719933987E-010 2.7309658904653166E-009 -1.9695127432732024E-009 7.1486199140908220E-009 -4.0683123379810595E-010 -9.4435123679549703E-009 -0.61492129564244624 + -1.6762973199701860E-002 -2.9426969349565142E-009 -0.27082885939648832 3.8782576739255932E-009 -1.7765090857923100E-009 -1.0124186916709490E-008 -7.3945720138237386E-002 -0.70189401344110103 -1.6172720797124096E-006 1.1705823355188979E-009 1.5966969712953837E-009 -9.9775396154796125E-010 0.13535439281086128 5.8443843662636267E-009 0.63471485619332590 1.0269302867014800E-008 -8.8157104489323579E-010 + -0.11492027822477965 6.7694678028205186E-008 -0.62205403359225053 2.2342683926840195E-008 1.8699330907773905E-008 8.1676527370455741E-009 0.15344526855196647 -4.6541890491933968E-002 -1.0971233021460377E-007 1.7229510241713816E-009 1.0500466741275098E-009 2.3254591277694101E-008 -0.22237924342687854 3.5100679340660536E-009 -0.20012697063281365 -2.3048694160675769E-008 -2.0471419143459975E-009 + 3.5271622814834441E-009 -0.35224914838542887 -3.5225121935369326E-009 -0.32529746639083307 8.8551442100024941E-008 7.8572427791505556E-002 6.4385694426295145E-009 8.0381310779977693E-009 -9.9751663228796189E-010 2.8967097721370329E-002 -1.8246438428526985E-002 -0.14705802375342400 -7.0275330142045251E-009 0.20312441859369038 -6.7548424524306092E-009 -9.4783079473931664E-002 9.5614138269067609E-008 + 1.3952373313671362E-010 -0.35224927618413732 1.4455955989094554E-010 0.32529741430357523 -1.3276187178202917E-008 -7.8572464395327335E-002 5.4904801009519814E-009 -1.1001610704872115E-009 1.0137971615894012E-009 2.8967090634768711E-002 1.8246440613480460E-002 0.14705803262703129 6.6806076064579093E-009 0.20312438512626860 -1.1491059936198912E-008 9.4783003797673682E-002 -1.9574697961566100E-008 + 1.9361544634676521E-011 -0.22154768180279524 -4.4635028219269060E-009 1.8884562931050695E-009 -2.6504861088999919E-009 2.5373722478085742E-009 -3.3036546558675735E-009 -3.3931586267152647E-009 -1.6404859039496945E-009 0.54443778027765288 8.1119964826220452E-010 -9.3895268045326840E-010 -2.4061645547839061E-009 -0.64591432122296211 7.3282704732187262E-009 2.2826705161791458E-009 -6.8361902293349349E-009 + 1.5099987235009866E-010 3.9085791329904687E-009 2.7197902189263675E-009 0.20187185973947180 9.5584212911557755E-009 6.9634421132944838E-002 -4.9396034311808418E-010 3.9530186904019645E-009 -3.3464319924958049E-010 -1.6703983974089809E-009 0.60926070784040942 -8.9402797225288710E-002 -4.4211580837835744E-009 -1.1430896889116693E-009 8.2534217955115856E-009 -0.61501097703679075 8.6409543543525274E-009 + 1.2692370470051071E-009 -3.3632447914108679E-009 2.7817690031500991E-009 -0.19333847723231190 6.0780715477958229E-009 -0.29228812716847979 9.0572109757205474E-009 -1.0543292728153569E-009 4.5881300520309981E-010 1.7833293749406573E-010 -4.2744003049157930E-002 0.14336097652304478 3.6376140861799886E-009 -4.1440144181854518E-008 -8.6513383736921835E-009 -0.25853520729997059 -1.0450496688074811E-008 + 0.24423852348107675 5.4303121395571919E-008 -0.12760981439406968 1.3545050409211572E-008 0.28606274835538148 -1.1009534975559398E-008 -0.41400169364682754 -3.5036324314588418E-002 -2.1677741702875800E-002 1.7643542180073014E-009 1.6819076556279465E-009 1.4102545031613096E-008 0.20257529503844063 1.8392694761220754E-008 -0.14588209020097798 -3.8684821490684642E-008 -0.19576960619363615 + 0.24423849905495446 -2.3160394495418732E-008 -0.12760983883351798 -5.4856564602087157E-009 -0.28606274404624205 -4.8315143197851219E-009 -0.41400168683919236 -3.5036312368052311E-002 2.1677579131180954E-002 8.5965184683648331E-010 -6.4978366769731779E-010 -1.3605097637932516E-008 0.20257531280783131 -1.6396565986282201E-008 -0.14588210560397749 2.3135718924320573E-008 0.19576960103086796 1.0000000000000000 -0.14719728634143203 -6.2687483552602008E-002 diff --git a/test/python/wien2k/CaOs2.symqmc b/test/python/wien2k/CaOs2.symqmc index 69009e9..76b4983 100644 --- a/test/python/wien2k/CaOs2.symqmc +++ b/test/python/wien2k/CaOs2.symqmc @@ -17,15 +17,15 @@ 1 3 2 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 @@ -37,275 +37,275 @@ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 - -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 - -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.70710678118655124 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710678118655135 1.4813100786493514E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100786493514E-014 0.70710678118655135 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932468359E-015 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118654391 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118655135 -1.4813100786493514E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100786493514E-014 0.70710678118655135 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065503932468359E-015 0.70710678118654391 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654391 -7.4065503932468359E-015 + 0.70710678118654380 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654391 1.4813100786493672E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100786493672E-014 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065503932467570E-015 -0.70710678118655135 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655135 7.4065503932467570E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710678118654391 1.4813100786493672E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100786493672E-014 0.70710678118654391 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932467570E-015 -0.70710678118655135 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118655135 -7.4065503932467570E-015 + -0.70710678118655124 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710678118655135 1.4813100786493514E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100786493514E-014 0.70710678118655135 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932468359E-015 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118654391 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118655135 -1.4813100786493514E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100786493514E-014 0.70710678118655135 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065503932468359E-015 0.70710678118654391 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654391 -7.4065503932468359E-015 + 0.70710678118654380 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654391 1.4813100786493672E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100786493672E-014 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065503932467570E-015 -0.70710678118655135 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655135 7.4065503932467570E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710678118654391 1.4813100786493672E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100786493672E-014 0.70710678118654391 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932467570E-015 -0.70710678118655135 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118655135 -7.4065503932467570E-015 + 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654635 4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -2.4688501310822614E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 -0.70710678118654891 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654891 -2.4688501310822614E-015 + 0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377002621645228E-015 -0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822701E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -2.4688501310822701E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645228E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688501310822701E-015 -0.70710678118654635 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 2.4688501310822701E-015 + 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654635 4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -2.4688501310822614E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 -0.70710678118654891 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654891 -2.4688501310822614E-015 + 0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377002621645228E-015 -0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822701E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -2.4688501310822701E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645228E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688501310822701E-015 -0.70710678118654635 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 2.4688501310822701E-015 + -3.4914813388431334E-015 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -3.4914813388431341E-015 -1.3965925355372535E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965925355372535E-014 -3.4914813388431341E-015 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 3.4914813388431341E-015 -6.9829626776862675E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829626776862675E-015 3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431341E-015 1.3965925355372535E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965925355372535E-014 -3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.4914813388431341E-015 6.9829626776862675E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829626776862675E-015 3.4914813388431341E-015 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 -4.8761767757959364E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.8761767757959364E-029 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000002 -2.4380883878979682E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4380883878979682E-029 -1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 - -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -1.0000000000000002 -4.8761767757959364E-029 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -4.8761767757959364E-029 -1.0000000000000002 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 1.0000000000000002 -2.4380883878979682E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.4380883878979682E-029 1.0000000000000002 + -3.4914813388431334E-015 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -3.4914813388431341E-015 -1.3965925355372535E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965925355372535E-014 -3.4914813388431341E-015 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 3.4914813388431341E-015 -6.9829626776862675E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829626776862675E-015 3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431341E-015 1.3965925355372535E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965925355372535E-014 -3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.4914813388431341E-015 6.9829626776862675E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829626776862675E-015 3.4914813388431341E-015 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 -4.8761767757959364E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.8761767757959364E-029 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000002 -2.4380883878979682E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4380883878979682E-029 -1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 - -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -1.0000000000000002 -4.8761767757959364E-029 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -4.8761767757959364E-029 -1.0000000000000002 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 1.0000000000000002 -2.4380883878979682E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.4380883878979682E-029 1.0000000000000002 + -3.4914813388431334E-015 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -3.4914813388431341E-015 -1.3965925355372535E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965925355372535E-014 -3.4914813388431341E-015 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 3.4914813388431341E-015 -6.9829626776862675E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829626776862675E-015 3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431341E-015 1.3965925355372535E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965925355372535E-014 -3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.4914813388431341E-015 6.9829626776862675E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829626776862675E-015 3.4914813388431341E-015 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 -4.8761767757959364E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.8761767757959364E-029 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000002 -2.4380883878979682E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4380883878979682E-029 -1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 - -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -1.0000000000000002 -4.8761767757959364E-029 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -4.8761767757959364E-029 -1.0000000000000002 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 1.0000000000000002 -2.4380883878979682E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.4380883878979682E-029 1.0000000000000002 + -3.4914813388431334E-015 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -3.4914813388431341E-015 -1.3965925355372535E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -1.3965925355372535E-014 -3.4914813388431341E-015 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 3.4914813388431341E-015 -6.9829626776862675E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829626776862675E-015 3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431341E-015 1.3965925355372535E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965925355372535E-014 -3.4914813388431341E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.4914813388431341E-015 6.9829626776862675E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829626776862675E-015 3.4914813388431341E-015 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 -4.8761767757959364E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.8761767757959364E-029 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000002 -2.4380883878979682E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4380883878979682E-029 -1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015 - -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 - -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015 - 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -1.0000000000000002 -4.8761767757959364E-029 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -4.8761767757959364E-029 -1.0000000000000002 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 1.0000000000000002 -2.4380883878979682E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.4380883878979682E-029 1.0000000000000002 + 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654635 4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -2.4688501310822614E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 -0.70710678118654891 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654891 -2.4688501310822614E-015 + 0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377002621645228E-015 -0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822701E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -2.4688501310822701E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645228E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688501310822701E-015 -0.70710678118654635 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 2.4688501310822701E-015 + 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654635 4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -2.4688501310822614E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -4.9377002621645402E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645402E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822614E-015 -0.70710678118654891 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654891 -2.4688501310822614E-015 + 0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -4.9377002621645228E-015 -0.70710678118654891 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688501310822701E-015 -0.70710678118654635 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 -2.4688501310822701E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654891 -4.9377002621645228E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377002621645228E-015 0.70710678118654891 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688501310822701E-015 -0.70710678118654635 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654635 2.4688501310822701E-015 + -0.70710678118655124 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710678118655135 1.4813100786493514E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100786493514E-014 0.70710678118655135 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932468359E-015 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118654391 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118655135 -1.4813100786493514E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100786493514E-014 0.70710678118655135 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065503932468359E-015 0.70710678118654391 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654391 -7.4065503932468359E-015 + 0.70710678118654380 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654391 1.4813100786493672E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100786493672E-014 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065503932467570E-015 -0.70710678118655135 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655135 7.4065503932467570E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710678118654391 1.4813100786493672E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100786493672E-014 0.70710678118654391 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932467570E-015 -0.70710678118655135 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118655135 -7.4065503932467570E-015 + -0.70710678118655124 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.70710678118655135 1.4813100786493514E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 1.4813100786493514E-014 0.70710678118655135 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932468359E-015 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118654391 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118655135 -1.4813100786493514E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100786493514E-014 0.70710678118655135 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065503932468359E-015 0.70710678118654391 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654391 -7.4065503932468359E-015 + 0.70710678118654380 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -0.70710678118654391 1.4813100786493672E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.4813100786493672E-014 -0.70710678118654391 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065503932467570E-015 -0.70710678118655135 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655135 7.4065503932467570E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710678118654391 1.4813100786493672E-014 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100786493672E-014 0.70710678118654391 -0.0000000000000000 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065503932467570E-015 -0.70710678118655135 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710678118655135 -7.4065503932467570E-015 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 @@ -317,342 +317,342 @@ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 - -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 - -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 - -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 - -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 - 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015 - -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 - -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008 - 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022 - 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.4914813388431334E-015 -1.4744151969902386E-043 -0.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.4744151969902390E-043 -3.4914813388431349E-015 -1.3965925355372538E-014 2.4380883878979687E-029 -9.7523535515918749E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976607879609558E-043 -1.3965925355372538E-014 -3.4914813388431349E-015 9.7523535515918749E-029 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.2228929611829786E-029 2.4380883878979687E-029 4.8761767757959375E-029 3.4914813388431349E-015 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457859223659572E-029 -4.8761767757959375E-029 -2.4380883878979687E-029 -6.9829626776862691E-015 3.4914813388431349E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 -1.4744151969902386E-043 0.0000000000000000 -4.2228929611829775E-029 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4744151969902390E-043 -3.4914813388431349E-015 1.3965925355372538E-014 2.4380883878979687E-029 9.7523535515918749E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976607879609558E-043 1.3965925355372538E-014 -3.4914813388431349E-015 -9.7523535515918749E-029 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 2.4380883878979687E-029 -4.8761767757959375E-029 3.4914813388431349E-015 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457859223659572E-029 4.8761767757959375E-029 -2.4380883878979687E-029 6.9829626776862691E-015 3.4914813388431349E-015 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 -4.8761767757959375E-029 -6.9829626776862691E-015 -3.4050160435183584E-043 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0591572583992568E-057 -4.8761767757959375E-029 1.0000000000000004 3.4050160435183584E-043 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094846145109831E-014 -6.9829626776862691E-015 1.7025080217591792E-043 -1.0000000000000004 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9488303939804779E-043 -1.7025080217591792E-043 6.9829626776862691E-015 -2.4380883878979687E-029 -1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 -1.2094846145109828E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 -1.0000000000000004 -4.8761767757959375E-029 6.9829626776862691E-015 -3.4050160435183584E-043 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0591572583992568E-057 -4.8761767757959375E-029 -1.0000000000000004 3.4050160435183584E-043 -6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 1.7025080217591792E-043 1.0000000000000004 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9488303939804779E-043 -1.7025080217591792E-043 -6.9829626776862691E-015 -2.4380883878979687E-029 1.0000000000000004 + -3.4914813388431334E-015 -1.4744151969902386E-043 -0.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.4744151969902390E-043 -3.4914813388431349E-015 -1.3965925355372538E-014 2.4380883878979687E-029 -9.7523535515918749E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976607879609558E-043 -1.3965925355372538E-014 -3.4914813388431349E-015 9.7523535515918749E-029 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.2228929611829786E-029 2.4380883878979687E-029 4.8761767757959375E-029 3.4914813388431349E-015 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457859223659572E-029 -4.8761767757959375E-029 -2.4380883878979687E-029 -6.9829626776862691E-015 3.4914813388431349E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 -1.4744151969902386E-043 0.0000000000000000 -4.2228929611829775E-029 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4744151969902390E-043 -3.4914813388431349E-015 1.3965925355372538E-014 2.4380883878979687E-029 9.7523535515918749E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976607879609558E-043 1.3965925355372538E-014 -3.4914813388431349E-015 -9.7523535515918749E-029 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 2.4380883878979687E-029 -4.8761767757959375E-029 3.4914813388431349E-015 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457859223659572E-029 4.8761767757959375E-029 -2.4380883878979687E-029 6.9829626776862691E-015 3.4914813388431349E-015 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 -4.8761767757959375E-029 -6.9829626776862691E-015 -3.4050160435183584E-043 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0591572583992568E-057 -4.8761767757959375E-029 1.0000000000000004 3.4050160435183584E-043 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094846145109831E-014 -6.9829626776862691E-015 1.7025080217591792E-043 -1.0000000000000004 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9488303939804779E-043 -1.7025080217591792E-043 6.9829626776862691E-015 -2.4380883878979687E-029 -1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 -1.2094846145109828E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 -1.0000000000000004 -4.8761767757959375E-029 6.9829626776862691E-015 -3.4050160435183584E-043 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0591572583992568E-057 -4.8761767757959375E-029 -1.0000000000000004 3.4050160435183584E-043 -6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 1.7025080217591792E-043 1.0000000000000004 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9488303939804779E-043 -1.7025080217591792E-043 -6.9829626776862691E-015 -2.4380883878979687E-029 1.0000000000000004 + 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774187E-029 -0.70710678118654657 4.9377002621645417E-015 4.9377002621645236E-015 3.4479776644296691E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851379681525983E-043 4.9377002621645417E-015 -0.70710678118654657 -3.4479776644296691E-029 -4.9377002621645236E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774187E-029 -1.7239888322148284E-029 -4.9377002621645417E-015 -2.4688501310822618E-015 0.70710678118654913 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523477266151499E-015 4.9377002621645417E-015 1.7239888322148284E-029 0.70710678118654913 -2.4688501310822618E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774187E-029 -0.70710678118654657 -4.9377002621645417E-015 4.9377002621645236E-015 -3.4479776644296691E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525983E-043 -4.9377002621645417E-015 -0.70710678118654657 3.4479776644296691E-029 -4.9377002621645236E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774187E-029 -1.7239888322148284E-029 4.9377002621645417E-015 -2.4688501310822618E-015 -0.70710678118654913 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151499E-015 -4.9377002621645417E-015 1.7239888322148284E-029 -0.70710678118654913 -2.4688501310822618E-015 + 0.70710678118654879 2.9860362490774288E-029 0.0000000000000000 8.5523477266151484E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774294E-029 -0.70710678118654913 -4.9377002621645236E-015 4.9377002621645417E-015 -3.4479776644296568E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851379681525908E-043 -4.9377002621645236E-015 -0.70710678118654913 3.4479776644296568E-029 -4.9377002621645417E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774294E-029 -1.7239888322148345E-029 4.9377002621645236E-015 -2.4688501310822709E-015 -0.70710678118654657 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151200E-015 -4.9377002621645236E-015 1.7239888322148345E-029 -0.70710678118654657 -2.4688501310822709E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 -2.9860362490774288E-029 0.0000000000000000 -8.5523477266151484E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774294E-029 0.70710678118654913 -4.9377002621645236E-015 -4.9377002621645417E-015 -3.4479776644296568E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525908E-043 -4.9377002621645236E-015 0.70710678118654913 3.4479776644296568E-029 4.9377002621645417E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774294E-029 1.7239888322148345E-029 4.9377002621645236E-015 2.4688501310822709E-015 -0.70710678118654657 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151200E-015 -4.9377002621645236E-015 -1.7239888322148345E-029 -0.70710678118654657 2.4688501310822709E-015 + 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774187E-029 -0.70710678118654657 4.9377002621645417E-015 4.9377002621645236E-015 3.4479776644296691E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851379681525983E-043 4.9377002621645417E-015 -0.70710678118654657 -3.4479776644296691E-029 -4.9377002621645236E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774187E-029 -1.7239888322148284E-029 -4.9377002621645417E-015 -2.4688501310822618E-015 0.70710678118654913 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523477266151499E-015 4.9377002621645417E-015 1.7239888322148284E-029 0.70710678118654913 -2.4688501310822618E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774187E-029 -0.70710678118654657 -4.9377002621645417E-015 4.9377002621645236E-015 -3.4479776644296691E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525983E-043 -4.9377002621645417E-015 -0.70710678118654657 3.4479776644296691E-029 -4.9377002621645236E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774187E-029 -1.7239888322148284E-029 4.9377002621645417E-015 -2.4688501310822618E-015 -0.70710678118654913 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151499E-015 -4.9377002621645417E-015 1.7239888322148284E-029 -0.70710678118654913 -2.4688501310822618E-015 + 0.70710678118654879 2.9860362490774288E-029 0.0000000000000000 8.5523477266151484E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774294E-029 -0.70710678118654913 -4.9377002621645236E-015 4.9377002621645417E-015 -3.4479776644296568E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851379681525908E-043 -4.9377002621645236E-015 -0.70710678118654913 3.4479776644296568E-029 -4.9377002621645417E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774294E-029 -1.7239888322148345E-029 4.9377002621645236E-015 -2.4688501310822709E-015 -0.70710678118654657 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151200E-015 -4.9377002621645236E-015 1.7239888322148345E-029 -0.70710678118654657 -2.4688501310822709E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 -2.9860362490774288E-029 0.0000000000000000 -8.5523477266151484E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774294E-029 0.70710678118654913 -4.9377002621645236E-015 -4.9377002621645417E-015 -3.4479776644296568E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525908E-043 -4.9377002621645236E-015 0.70710678118654913 3.4479776644296568E-029 4.9377002621645417E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774294E-029 1.7239888322148345E-029 4.9377002621645236E-015 2.4688501310822709E-015 -0.70710678118654657 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151200E-015 -4.9377002621645236E-015 -1.7239888322148345E-029 -0.70710678118654657 2.4688501310822709E-015 + -0.70710678118655124 -2.9860362490774389E-029 -0.0000000000000000 -8.5523477266151783E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774400E-029 0.70710678118655157 1.4813100786493517E-014 -4.9377002621645583E-015 1.0343932993288934E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044577500E-043 1.4813100786493517E-014 0.70710678118655157 -1.0343932993288934E-028 4.9377002621645583E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581087472323184E-029 -5.1719664966445210E-029 4.9377002621645070E-015 -7.4065503932468359E-015 -0.70710678118654413 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266150900E-015 -4.9377002621645070E-015 5.1719664966445210E-029 -0.70710678118654413 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 -2.9860362490774389E-029 0.0000000000000000 -8.5523477266151783E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774400E-029 0.70710678118655157 -1.4813100786493517E-014 -4.9377002621645583E-015 -1.0343932993288934E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554139044577500E-043 -1.4813100786493517E-014 0.70710678118655157 1.0343932993288934E-028 4.9377002621645583E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472323184E-029 -5.1719664966445210E-029 -4.9377002621645070E-015 -7.4065503932468359E-015 0.70710678118654413 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523477266150900E-015 4.9377002621645070E-015 5.1719664966445210E-029 0.70710678118654413 -7.4065503932468359E-015 + 0.70710678118654380 2.9860362490774075E-029 0.0000000000000000 8.5523477266150884E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774086E-029 -0.70710678118654413 1.4813100786493672E-014 4.9377002621645070E-015 1.0343932993289042E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044578161E-043 1.4813100786493672E-014 -0.70710678118654413 -1.0343932993289042E-028 -4.9377002621645070E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581087472322242E-029 5.1719664966444672E-029 4.9377002621645583E-015 7.4065503932467586E-015 -0.70710678118655157 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151799E-015 -4.9377002621645583E-015 -5.1719664966444672E-029 -0.70710678118655157 7.4065503932467586E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -2.9860362490774075E-029 -0.0000000000000000 -8.5523477266150884E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774086E-029 0.70710678118654413 1.4813100786493672E-014 -4.9377002621645070E-015 1.0343932993289042E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554139044578161E-043 1.4813100786493672E-014 0.70710678118654413 -1.0343932993289042E-028 4.9377002621645070E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472322242E-029 -5.1719664966444672E-029 4.9377002621645583E-015 -7.4065503932467586E-015 -0.70710678118655157 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151799E-015 -4.9377002621645583E-015 5.1719664966444672E-029 -0.70710678118655157 -7.4065503932467586E-015 + -0.70710678118655124 -2.9860362490774389E-029 -0.0000000000000000 -8.5523477266151783E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774400E-029 0.70710678118655157 1.4813100786493517E-014 -4.9377002621645583E-015 1.0343932993288934E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044577500E-043 1.4813100786493517E-014 0.70710678118655157 -1.0343932993288934E-028 4.9377002621645583E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581087472323184E-029 -5.1719664966445210E-029 4.9377002621645070E-015 -7.4065503932468359E-015 -0.70710678118654413 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266150900E-015 -4.9377002621645070E-015 5.1719664966445210E-029 -0.70710678118654413 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 -2.9860362490774389E-029 0.0000000000000000 -8.5523477266151783E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774400E-029 0.70710678118655157 -1.4813100786493517E-014 -4.9377002621645583E-015 -1.0343932993288934E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554139044577500E-043 -1.4813100786493517E-014 0.70710678118655157 1.0343932993288934E-028 4.9377002621645583E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472323184E-029 -5.1719664966445210E-029 -4.9377002621645070E-015 -7.4065503932468359E-015 0.70710678118654413 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523477266150900E-015 4.9377002621645070E-015 5.1719664966445210E-029 0.70710678118654413 -7.4065503932468359E-015 + 0.70710678118654380 2.9860362490774075E-029 0.0000000000000000 8.5523477266150884E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774086E-029 -0.70710678118654413 1.4813100786493672E-014 4.9377002621645070E-015 1.0343932993289042E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044578161E-043 1.4813100786493672E-014 -0.70710678118654413 -1.0343932993289042E-028 -4.9377002621645070E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581087472322242E-029 5.1719664966444672E-029 4.9377002621645583E-015 7.4065503932467586E-015 -0.70710678118655157 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151799E-015 -4.9377002621645583E-015 -5.1719664966444672E-029 -0.70710678118655157 7.4065503932467586E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -2.9860362490774075E-029 -0.0000000000000000 -8.5523477266150884E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774086E-029 0.70710678118654413 1.4813100786493672E-014 -4.9377002621645070E-015 1.0343932993289042E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554139044578161E-043 1.4813100786493672E-014 0.70710678118654413 -1.0343932993289042E-028 4.9377002621645070E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472322242E-029 -5.1719664966444672E-029 4.9377002621645583E-015 -7.4065503932467586E-015 -0.70710678118655157 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151799E-015 -4.9377002621645583E-015 5.1719664966444672E-029 -0.70710678118655157 -7.4065503932467586E-015 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228929611829786E-029 1.0000000000000004 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000004 0.0000000000000000 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829626776862691E-015 0.0000000000000000 1.0000000000000004 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.70710678118655124 -2.9860362490774389E-029 -0.0000000000000000 -8.5523477266151783E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774400E-029 0.70710678118655157 1.4813100786493517E-014 -4.9377002621645583E-015 1.0343932993288934E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044577500E-043 1.4813100786493517E-014 0.70710678118655157 -1.0343932993288934E-028 4.9377002621645583E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581087472323184E-029 -5.1719664966445210E-029 4.9377002621645070E-015 -7.4065503932468359E-015 -0.70710678118654413 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266150900E-015 -4.9377002621645070E-015 5.1719664966445210E-029 -0.70710678118654413 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 -2.9860362490774389E-029 0.0000000000000000 -8.5523477266151783E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774400E-029 0.70710678118655157 -1.4813100786493517E-014 -4.9377002621645583E-015 -1.0343932993288934E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554139044577500E-043 -1.4813100786493517E-014 0.70710678118655157 1.0343932993288934E-028 4.9377002621645583E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472323184E-029 -5.1719664966445210E-029 -4.9377002621645070E-015 -7.4065503932468359E-015 0.70710678118654413 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523477266150900E-015 4.9377002621645070E-015 5.1719664966445210E-029 0.70710678118654413 -7.4065503932468359E-015 + 0.70710678118654380 2.9860362490774075E-029 0.0000000000000000 8.5523477266150884E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774086E-029 -0.70710678118654413 1.4813100786493672E-014 4.9377002621645070E-015 1.0343932993289042E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044578161E-043 1.4813100786493672E-014 -0.70710678118654413 -1.0343932993289042E-028 -4.9377002621645070E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581087472322242E-029 5.1719664966444672E-029 4.9377002621645583E-015 7.4065503932467586E-015 -0.70710678118655157 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151799E-015 -4.9377002621645583E-015 -5.1719664966444672E-029 -0.70710678118655157 7.4065503932467586E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -2.9860362490774075E-029 -0.0000000000000000 -8.5523477266150884E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774086E-029 0.70710678118654413 1.4813100786493672E-014 -4.9377002621645070E-015 1.0343932993289042E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554139044578161E-043 1.4813100786493672E-014 0.70710678118654413 -1.0343932993289042E-028 4.9377002621645070E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472322242E-029 -5.1719664966444672E-029 4.9377002621645583E-015 -7.4065503932467586E-015 -0.70710678118655157 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151799E-015 -4.9377002621645583E-015 5.1719664966444672E-029 -0.70710678118655157 -7.4065503932467586E-015 + -0.70710678118655124 -2.9860362490774389E-029 -0.0000000000000000 -8.5523477266151783E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774400E-029 0.70710678118655157 1.4813100786493517E-014 -4.9377002621645583E-015 1.0343932993288934E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044577500E-043 1.4813100786493517E-014 0.70710678118655157 -1.0343932993288934E-028 4.9377002621645583E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.9581087472323184E-029 -5.1719664966445210E-029 4.9377002621645070E-015 -7.4065503932468359E-015 -0.70710678118654413 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266150900E-015 -4.9377002621645070E-015 5.1719664966445210E-029 -0.70710678118654413 -7.4065503932468359E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118655124 -2.9860362490774389E-029 0.0000000000000000 -8.5523477266151783E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774400E-029 0.70710678118655157 -1.4813100786493517E-014 -4.9377002621645583E-015 -1.0343932993288934E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554139044577500E-043 -1.4813100786493517E-014 0.70710678118655157 1.0343932993288934E-028 4.9377002621645583E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472323184E-029 -5.1719664966445210E-029 -4.9377002621645070E-015 -7.4065503932468359E-015 0.70710678118654413 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523477266150900E-015 4.9377002621645070E-015 5.1719664966445210E-029 0.70710678118654413 -7.4065503932468359E-015 + 0.70710678118654380 2.9860362490774075E-029 0.0000000000000000 8.5523477266150884E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774086E-029 -0.70710678118654413 1.4813100786493672E-014 4.9377002621645070E-015 1.0343932993289042E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.2554139044578161E-043 1.4813100786493672E-014 -0.70710678118654413 -1.0343932993289042E-028 -4.9377002621645070E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.9581087472322242E-029 5.1719664966444672E-029 4.9377002621645583E-015 7.4065503932467586E-015 -0.70710678118655157 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151799E-015 -4.9377002621645583E-015 -5.1719664966444672E-029 -0.70710678118655157 7.4065503932467586E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654380 -2.9860362490774075E-029 -0.0000000000000000 -8.5523477266150884E-015 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774086E-029 0.70710678118654413 1.4813100786493672E-014 -4.9377002621645070E-015 1.0343932993289042E-028 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554139044578161E-043 1.4813100786493672E-014 0.70710678118654413 -1.0343932993289042E-028 4.9377002621645070E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581087472322242E-029 -5.1719664966444672E-029 4.9377002621645583E-015 -7.4065503932467586E-015 -0.70710678118655157 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151799E-015 -4.9377002621645583E-015 5.1719664966444672E-029 -0.70710678118655157 -7.4065503932467586E-015 + 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774187E-029 -0.70710678118654657 4.9377002621645417E-015 4.9377002621645236E-015 3.4479776644296691E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851379681525983E-043 4.9377002621645417E-015 -0.70710678118654657 -3.4479776644296691E-029 -4.9377002621645236E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774187E-029 -1.7239888322148284E-029 -4.9377002621645417E-015 -2.4688501310822618E-015 0.70710678118654913 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523477266151499E-015 4.9377002621645417E-015 1.7239888322148284E-029 0.70710678118654913 -2.4688501310822618E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774187E-029 -0.70710678118654657 -4.9377002621645417E-015 4.9377002621645236E-015 -3.4479776644296691E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525983E-043 -4.9377002621645417E-015 -0.70710678118654657 3.4479776644296691E-029 -4.9377002621645236E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774187E-029 -1.7239888322148284E-029 4.9377002621645417E-015 -2.4688501310822618E-015 -0.70710678118654913 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151499E-015 -4.9377002621645417E-015 1.7239888322148284E-029 -0.70710678118654913 -2.4688501310822618E-015 + 0.70710678118654879 2.9860362490774288E-029 0.0000000000000000 8.5523477266151484E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774294E-029 -0.70710678118654913 -4.9377002621645236E-015 4.9377002621645417E-015 -3.4479776644296568E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851379681525908E-043 -4.9377002621645236E-015 -0.70710678118654913 3.4479776644296568E-029 -4.9377002621645417E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774294E-029 -1.7239888322148345E-029 4.9377002621645236E-015 -2.4688501310822709E-015 -0.70710678118654657 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151200E-015 -4.9377002621645236E-015 1.7239888322148345E-029 -0.70710678118654657 -2.4688501310822709E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 -2.9860362490774288E-029 0.0000000000000000 -8.5523477266151484E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774294E-029 0.70710678118654913 -4.9377002621645236E-015 -4.9377002621645417E-015 -3.4479776644296568E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525908E-043 -4.9377002621645236E-015 0.70710678118654913 3.4479776644296568E-029 4.9377002621645417E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774294E-029 1.7239888322148345E-029 4.9377002621645236E-015 2.4688501310822709E-015 -0.70710678118654657 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151200E-015 -4.9377002621645236E-015 -1.7239888322148345E-029 -0.70710678118654657 2.4688501310822709E-015 + 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774187E-029 -0.70710678118654657 4.9377002621645417E-015 4.9377002621645236E-015 3.4479776644296691E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0851379681525983E-043 4.9377002621645417E-015 -0.70710678118654657 -3.4479776644296691E-029 -4.9377002621645236E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774187E-029 -1.7239888322148284E-029 -4.9377002621645417E-015 -2.4688501310822618E-015 0.70710678118654913 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.5523477266151499E-015 4.9377002621645417E-015 1.7239888322148284E-029 0.70710678118654913 -2.4688501310822618E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710678118654624 2.9860362490774182E-029 0.0000000000000000 8.5523477266151168E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774187E-029 -0.70710678118654657 -4.9377002621645417E-015 4.9377002621645236E-015 -3.4479776644296691E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525983E-043 -4.9377002621645417E-015 -0.70710678118654657 3.4479776644296691E-029 -4.9377002621645236E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774187E-029 -1.7239888322148284E-029 4.9377002621645417E-015 -2.4688501310822618E-015 -0.70710678118654913 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151499E-015 -4.9377002621645417E-015 1.7239888322148284E-029 -0.70710678118654913 -2.4688501310822618E-015 + 0.70710678118654879 2.9860362490774288E-029 0.0000000000000000 8.5523477266151484E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9860362490774294E-029 -0.70710678118654913 -4.9377002621645236E-015 4.9377002621645417E-015 -3.4479776644296568E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0851379681525908E-043 -4.9377002621645236E-015 -0.70710678118654913 3.4479776644296568E-029 -4.9377002621645417E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9860362490774294E-029 -1.7239888322148345E-029 4.9377002621645236E-015 -2.4688501310822709E-015 -0.70710678118654657 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.5523477266151200E-015 -4.9377002621645236E-015 1.7239888322148345E-029 -0.70710678118654657 -2.4688501310822709E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678118654879 -2.9860362490774288E-029 0.0000000000000000 -8.5523477266151484E-015 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860362490774294E-029 0.70710678118654913 -4.9377002621645236E-015 -4.9377002621645417E-015 -3.4479776644296568E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851379681525908E-043 -4.9377002621645236E-015 0.70710678118654913 3.4479776644296568E-029 4.9377002621645417E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860362490774294E-029 1.7239888322148345E-029 4.9377002621645236E-015 2.4688501310822709E-015 -0.70710678118654657 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523477266151200E-015 -4.9377002621645236E-015 -1.7239888322148345E-029 -0.70710678118654657 2.4688501310822709E-015 + -3.4914813388431334E-015 -1.4744151969902386E-043 -0.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.4744151969902390E-043 -3.4914813388431349E-015 -1.3965925355372538E-014 2.4380883878979687E-029 -9.7523535515918749E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976607879609558E-043 -1.3965925355372538E-014 -3.4914813388431349E-015 9.7523535515918749E-029 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.2228929611829786E-029 2.4380883878979687E-029 4.8761767757959375E-029 3.4914813388431349E-015 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457859223659572E-029 -4.8761767757959375E-029 -2.4380883878979687E-029 -6.9829626776862691E-015 3.4914813388431349E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 -1.4744151969902386E-043 0.0000000000000000 -4.2228929611829775E-029 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4744151969902390E-043 -3.4914813388431349E-015 1.3965925355372538E-014 2.4380883878979687E-029 9.7523535515918749E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976607879609558E-043 1.3965925355372538E-014 -3.4914813388431349E-015 -9.7523535515918749E-029 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 2.4380883878979687E-029 -4.8761767757959375E-029 3.4914813388431349E-015 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457859223659572E-029 4.8761767757959375E-029 -2.4380883878979687E-029 6.9829626776862691E-015 3.4914813388431349E-015 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 -4.8761767757959375E-029 -6.9829626776862691E-015 -3.4050160435183584E-043 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0591572583992568E-057 -4.8761767757959375E-029 1.0000000000000004 3.4050160435183584E-043 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094846145109831E-014 -6.9829626776862691E-015 1.7025080217591792E-043 -1.0000000000000004 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9488303939804779E-043 -1.7025080217591792E-043 6.9829626776862691E-015 -2.4380883878979687E-029 -1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 -1.2094846145109828E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 -1.0000000000000004 -4.8761767757959375E-029 6.9829626776862691E-015 -3.4050160435183584E-043 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0591572583992568E-057 -4.8761767757959375E-029 -1.0000000000000004 3.4050160435183584E-043 -6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 1.7025080217591792E-043 1.0000000000000004 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9488303939804779E-043 -1.7025080217591792E-043 -6.9829626776862691E-015 -2.4380883878979687E-029 1.0000000000000004 + -3.4914813388431334E-015 -1.4744151969902386E-043 -0.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.4744151969902390E-043 -3.4914813388431349E-015 -1.3965925355372538E-014 2.4380883878979687E-029 -9.7523535515918749E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.8976607879609558E-043 -1.3965925355372538E-014 -3.4914813388431349E-015 9.7523535515918749E-029 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.2228929611829786E-029 2.4380883878979687E-029 4.8761767757959375E-029 3.4914813388431349E-015 -6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4457859223659572E-029 -4.8761767757959375E-029 -2.4380883878979687E-029 -6.9829626776862691E-015 3.4914813388431349E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.4914813388431334E-015 -1.4744151969902386E-043 0.0000000000000000 -4.2228929611829775E-029 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4744151969902390E-043 -3.4914813388431349E-015 1.3965925355372538E-014 2.4380883878979687E-029 9.7523535515918749E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976607879609558E-043 1.3965925355372538E-014 -3.4914813388431349E-015 -9.7523535515918749E-029 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 2.4380883878979687E-029 -4.8761767757959375E-029 3.4914813388431349E-015 6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457859223659572E-029 4.8761767757959375E-029 -2.4380883878979687E-029 6.9829626776862691E-015 3.4914813388431349E-015 + 1.0000000000000000 4.2228929611829775E-029 0.0000000000000000 1.2094846145109828E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.2228929611829786E-029 1.0000000000000004 -4.8761767757959375E-029 -6.9829626776862691E-015 -3.4050160435183584E-043 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.0591572583992568E-057 -4.8761767757959375E-029 1.0000000000000004 3.4050160435183584E-043 6.9829626776862691E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2094846145109831E-014 -6.9829626776862691E-015 1.7025080217591792E-043 -1.0000000000000004 -2.4380883878979687E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.9488303939804779E-043 -1.7025080217591792E-043 6.9829626776862691E-015 -2.4380883878979687E-029 -1.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228929611829775E-029 -0.0000000000000000 -1.2094846145109828E-014 -0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228929611829786E-029 -1.0000000000000004 -4.8761767757959375E-029 6.9829626776862691E-015 -3.4050160435183584E-043 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0591572583992568E-057 -4.8761767757959375E-029 -1.0000000000000004 3.4050160435183584E-043 -6.9829626776862691E-015 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094846145109831E-014 6.9829626776862691E-015 1.7025080217591792E-043 1.0000000000000004 -2.4380883878979687E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9488303939804779E-043 -1.7025080217591792E-043 -6.9829626776862691E-015 -2.4380883878979687E-029 1.0000000000000004 diff --git a/test/python/wien2k/CaOs2_full.ctqmcout.gz b/test/python/wien2k/CaOs2_full.ctqmcout.gz new file mode 100644 index 0000000000000000000000000000000000000000..3cca2cc152ac9c5e75acebcffc512bb2c4466ffc GIT binary patch literal 21950 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 XlqRxQ&v$Az1Id)aGtK`pkdyr%^YEIn literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_full.indmftpr b/test/python/wien2k/CaOs2_full.indmftpr new file mode 100644 index 0000000..227d144 --- /dev/null +++ b/test/python/wien2k/CaOs2_full.indmftpr @@ -0,0 +1,11 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +cubic +0 0 2 0 +0 0 0 0 +1 +-2.0 3.0 diff --git a/test/python/wien2k/CaOs2_partial.parproj.gz b/test/python/wien2k/CaOs2_partial.parproj.gz index 7b893c4986c8ea096e3aa8b8c2b91025cc64e811..65078188ca0626102591862c2ff94485eaebb143 100644 GIT binary patch delta 26167 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

-e4fcRBL?J5i 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 delta 26534 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 F{|6L27^naM diff --git a/test/python/wien2k/wien2k_symqmc_l0.ref.npy b/test/python/wien2k/wien2k_symqmc_l0.ref.npy index 679d0e0df3a80d9c022fb04897600255c8f9f99f..ae517ee5dc22fc164d5f4781889abe9323949d66 100644 GIT binary patch literal 2176 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7re->tItsN4WCJb+F!*2(q0vcP;&62h5Ed?VxWp0q-&xnE&0FwnKU@UL zfQhe$$YZzqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7re->tItsN4WCJb+h6Z~EI6!8D1se#-e`Yb=57Q1}12Nn@D4&o#vU+)3 diff --git a/test/python/wien2k/wien2k_symqmc_mixing.py b/test/python/wien2k/wien2k_symqmc_mixing.py index eb729a8..da6850e 100644 --- a/test/python/wien2k/wien2k_symqmc_mixing.py +++ b/test/python/wien2k/wien2k_symqmc_mixing.py @@ -65,7 +65,7 @@ def _check(indmftpr, ref_npy, extra=(), unit_tol=1e-7): data, shells, ops, so = _run(indmftpr, extra) ref = np.load(os.path.join(HERE, ref_npy)) assert data.shape == ref.shape, (data.shape, ref.shape) - assert np.max(np.abs(data - ref)) < 1e-6, np.max(np.abs(data - ref)) + assert np.max(np.abs(data - ref)) < 1e-11, np.max(np.abs(data - ref)) for op in ops: for sh in shells: mat = symqmc._shell_matrix(op, sh, _timeinv(op, so)) From 9967dc062c09f50ce4e7627e37bbad2dec518392 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 17:36:51 +0200 Subject: [PATCH 09/16] [test] regenerate SOC converter reference h5 from the full-precision fixtures The committed CaOs2 dmftproj outputs are now full double precision (precision fix #14 + exact Python #12), so the converter golden h5 is regenerated to match. --- test/python/wien2k/wien2k_soc_convert.ref.h5 | Bin 394665 -> 431678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/python/wien2k/wien2k_soc_convert.ref.h5 b/test/python/wien2k/wien2k_soc_convert.ref.h5 index e541e6bec84207e2e396b2a94192212b78047ec7..68dfa81a80bbd40a2661102b1a150bd58e8d2487 100644 GIT binary patch literal 431678 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 literal 394665 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 From cf069b4efe9ad6c813206730e4ae5ec651dfa26c Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 17:59:17 +0200 Subject: [PATCH 10/16] [wien2k] port the fromfile mixing basis and proj_mode 1/2 band-index window Replace the NotImplementedError guards in ctqmcout/sympar/parproj (fromfile) and oubwin/ctqmcout (proj_mode). fromfile reuses symqmc's spinor machinery (now shared in _dmftproj: mixing_rotrep, rotloc_rotl_so); proj_mode 1/2 add the band-index window selection (set_projections.f). All exercised by full-rank fixtures from the precision-fixed dmftproj and matched to machine precision (fromfile 1.9e-14, proj_mode 1.5e-14, oubwin byte-identical). Part of #7. --- python/triqs_dftkit/wien2k/_dmftproj.py | 129 ++++++++- python/triqs_dftkit/wien2k/ctqmcout.py | 148 +++++++--- python/triqs_dftkit/wien2k/oubwin.py | 52 ++-- python/triqs_dftkit/wien2k/parproj.py | 272 ++++++++++++------ python/triqs_dftkit/wien2k/sympar.py | 24 +- python/triqs_dftkit/wien2k/symqmc.py | 30 +- test/python/wien2k/CMakeLists.txt | 21 +- .../wien2k/CaOs2_jbasis_full.ctqmcout.gz | Bin 0 -> 22411 bytes test/python/wien2k/CaOs2_jbasis_full.indmftpr | 12 + .../wien2k/CaOs2_jbasis_full.parproj.gz | Bin 0 -> 49067 bytes .../python/wien2k/CaOs2_jbasis_full.sympar.gz | Bin 0 -> 7354 bytes test/python/wien2k/CaOs2_mode1.indmftpr | 11 + test/python/wien2k/CaOs2_mode1.oubwindn | 5 + test/python/wien2k/CaOs2_mode1.oubwinup | 5 + .../wien2k/CaOs2_mode1_full.ctqmcout.gz | Bin 0 -> 21902 bytes test/python/wien2k/CaOs2_mode1_full.indmftpr | 11 + .../wien2k/CaOs2_mode2_full.ctqmcout.gz | Bin 0 -> 21902 bytes test/python/wien2k/CaOs2_mode2_full.indmftpr | 11 + test/python/wien2k/wien2k_ctqmcout_python.py | 18 ++ .../wien2k/wien2k_dmftproj_common_python.py | 19 ++ test/python/wien2k/wien2k_oubwin_python.py | 15 +- test/python/wien2k/wien2k_parproj_python.py | 6 + test/python/wien2k/wien2k_sympar_python.py | 5 + 23 files changed, 589 insertions(+), 205 deletions(-) create mode 100644 test/python/wien2k/CaOs2_jbasis_full.ctqmcout.gz create mode 100644 test/python/wien2k/CaOs2_jbasis_full.indmftpr create mode 100644 test/python/wien2k/CaOs2_jbasis_full.parproj.gz create mode 100644 test/python/wien2k/CaOs2_jbasis_full.sympar.gz create mode 100644 test/python/wien2k/CaOs2_mode1.indmftpr create mode 100644 test/python/wien2k/CaOs2_mode1.oubwindn create mode 100644 test/python/wien2k/CaOs2_mode1.oubwinup create mode 100644 test/python/wien2k/CaOs2_mode1_full.ctqmcout.gz create mode 100644 test/python/wien2k/CaOs2_mode1_full.indmftpr create mode 100644 test/python/wien2k/CaOs2_mode2_full.ctqmcout.gz create mode 100644 test/python/wien2k/CaOs2_mode2_full.indmftpr diff --git a/python/triqs_dftkit/wien2k/_dmftproj.py b/python/triqs_dftkit/wien2k/_dmftproj.py index 9b6217b..1698c29 100644 --- a/python/triqs_dftkit/wien2k/_dmftproj.py +++ b/python/triqs_dftkit/wien2k/_dmftproj.py @@ -29,12 +29,10 @@ proj_mode==0 band-window selection and the gfortran-style real formatters. This module owns each of those exactly once. -A deliberate split survives in the angular basis: symqmc builds its symmetry -matrices from the EXACT cubic harmonics, while ctqmcout/sympar/parproj feed -projector/representation numbers through the single-precision CMPLX cast that -dmftproj applies in set_ang_trans.f:146 (0.70710676908 for 1/sqrt2, the -dft_tools #148 noise). `reptrans` exposes both via the `cast` flag; nothing -here "fixes" that truncation. +All generators use the exact double-precision cubic harmonics. dmftproj reads +the same coefficients from full-precision SRC_templates (the precision-fix PR), +so the port reproduces its output to machine precision. `reptrans` keeps a +`cast` flag only to reproduce the legacy single-precision template on demand. """ import math @@ -99,11 +97,9 @@ def read_two_complex(r): # --- angular bases: transmat = , m = -l..l -------------------------- -# Standard cubic harmonics, Wien2k convention. dmftproj stores cubic/fromfile -# coefficients via a single-precision CMPLX cast (set_ang_trans.f:146); the -# projector/representation generators reproduce that float32 truncation -# (0.70710676908 for 1/sqrt2), while the symqmc symmetry matrices use the -# exact harmonics. `reptrans(..., cast=...)` selects between the two. +# Standard cubic harmonics, Wien2k convention, exact double precision. dmftproj +# reads the same coefficients from full-precision SRC_templates (the precision- +# fix PR); `reptrans(..., cast=True)` reproduces the legacy float32 template. _COMPLEX = {l: np.eye(2 * l + 1, dtype=complex) for l in range(4)} @@ -200,6 +196,79 @@ def timeinv_orbital(l, mat): return tmat(l) @ np.conj(mat) +def mixing_timeinv_op(l, P): + """The spinor time-reversal operator -i sigma_y (x) T in the mixing basis: + tinv_{new} = P tinv_{lm} P^T (timeinv.f, ifmixing branch). Returned as the + bare operator; callers apply it as tinv @ conj(mat).""" + d = 2 * l + 1 + tm = tmat(l) + tinv = np.zeros((2 * d, 2 * d), dtype=complex) + tinv[:d, d:] = -tm + tinv[d:, :d] = tm + return P @ tinv @ P.T + + +def rotloc_rotl_so(l, ref, ops, iatom, iref): + """The composed 2(2l+1) Rloc rotation rotloc(iatom)%rotl(l) under SP+SO + (setsym.f:496-528 + set_rotloc.f): the representative spinor rotloc + spmt (x) D(rotloc_ref) composed with the first symmetry op R[isym] mapping + iref onto iatom, with the orbital time-reversal applied for the magnetic op. + Returns (rotl, timeinv); callers apply their own basis transform (the full + transmat for a mixing basis, blkdiag(transmat, transmat) otherwise).""" + d = 2 * l + 1 + Dref = dmat(l, ref['a'], ref['b'], ref['g'], float(ref['iprop'])) + f = (ref['a'] + ref['g']) / 2.0 + spmt = np.zeros((2, 2), dtype=complex) + spmt[0, 0] = np.exp(1j * f) * math.cos(ref['b'] / 2.0) + spmt[1, 1] = np.conj(spmt[0, 0]) + f = -(ref['a'] - ref['g']) / 2.0 + spmt[0, 1] = np.exp(1j * f) * math.sin(ref['b'] / 2.0) + spmt[1, 0] = -np.conj(spmt[0, 1]) + rotl = np.zeros((2 * d, 2 * d), dtype=complex) + rotl[:d, :d] = spmt[0, 0] * Dref + rotl[d:, d:] = spmt[1, 1] * Dref + rotl[:d, d:] = spmt[0, 1] * Dref + rotl[d:, :d] = spmt[1, 0] * Dref + + op = next(o for o in ops if o['perm'][iref - 1] == iatom) + det2 = (op['krotm'][0, 0] * op['krotm'][1, 1] + - op['krotm'][0, 1] * op['krotm'][1, 0]) + timeinv = det2 < 0.0 + srot_phase = (op['g'] - op['a']) if timeinv else (op['a'] + op['g']) + rotl_sym = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + if timeinv: + rotl_sym = tmat(l) @ np.conj(rotl_sym) + ephase = np.exp(1j * srot_phase / 2.0) + tmp = np.zeros((2 * d, 2 * d), dtype=complex) + tmp[:d, :d] = ephase * rotl_sym + tmp[d:, d:] = np.conj(ephase) * rotl_sym + rotl = (tmp @ np.conj(rotl)) if timeinv else (tmp @ rotl) + return rotl, timeinv + + +def mixing_rotrep(op, l, P, ti): + """The full 2(2l+1) spinor representation D(R)_{new_i} = P spinrot P^dag of + one symmetry operation in a spin-coupling (mixing) basis, with the spinor + time-reversal operator applied for the magnetic (timeinv) operations + (setsym.f spinrotmat + timeinv_op). This is srot%rotrep(l,isrt)%mat, shared + by the symqmc and sympar shell matrices.""" + rotl = dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + phase = (op['c'] - op['a']) if ti else (op['a'] + op['c']) + e = np.exp(1j * phase / 2) + d = 2 * l + 1 + spinrot = np.zeros((2 * d, 2 * d), dtype=complex) + if ti: # beta = pi, block-antidiagonal + spinrot[:d, d:] = e * rotl + spinrot[d:, :d] = -np.conj(e) * rotl + else: # beta = 0, block-diagonal + spinrot[:d, :d] = e * rotl + spinrot[d:, d:] = np.conj(e) * rotl + rotrep = P @ spinrot @ np.conj(P.T) + if ti: + rotrep = mixing_timeinv_op(l, P) @ np.conj(rotrep) + return rotrep + + # --- case.indmftpr ----------------------------------------------------------- def read_indmftpr(indmftpr): @@ -405,6 +474,44 @@ def select_window(nbmin, nbmax, eband, e1, e2): return included, nb_bot, nb_top +def select_band_window(nbmin, nbmax, b_bot, b_top): + """proj_mode 1/2 band-index selection for one k-point (set_projections.f + 70-88). e1/e2 are band indices, not energies: every k-point is included, + nb_bot = b_bot clamped up to nbmin (strict INT(e1) > nbmin), nb_top = b_top + clamped down to nbmax. Returns (included=True, nb_bot, nb_top).""" + nb_bot = b_bot if b_bot > nbmin else nbmin + nb_top = b_top if b_top < nbmax else nbmax + return True, nb_bot, nb_top + + +def band_index_window(info, spins): + """Resolve the (b_bot, b_top) band-index window for proj_mode 1 and 2. + + proj_mode 2 (dmftproj.f:233-237): b_bot=INT(e_bot), b_top=INT(e_top) taken + directly from the indmftpr window line. + + proj_mode 1 (dmftproj.f:704-722): e_bot/e_top are Fermi-shifted energies; + scan every spin and k-point for bands with e_bot < E <= e_top and take the + global min/max band index, seeded with b_bot=1000, b_top=1 so an empty scan + keeps that seed. `spins` is the list of read_almblm dicts (one per spin).""" + if info['proj_mode'] == 2: + return int(info['e_bot']), int(info['e_top']) + if info['proj_mode'] != 1: + raise ValueError('band_index_window is only valid for proj_mode 1 or 2') + e_bot, e_top = info['e_bot'], info['e_top'] + b_bot, b_top = 1000, 1 + for sp in spins: + for kp in sp['kp']: + for off, ib in enumerate(range(kp['nbmin'], kp['nbmax'] + 1)): + e = kp['eband'][off] + if e > e_bot and e <= e_top: + if ib > b_top: + b_top = ib + if ib < b_bot: + b_bot = ib + return b_bot, b_top + + # --- gfortran-style real formatters ------------------------------------------ def fmt(x): diff --git a/python/triqs_dftkit/wien2k/ctqmcout.py b/python/triqs_dftkit/wien2k/ctqmcout.py index d999e75..b8ac01e 100644 --- a/python/triqs_dftkit/wien2k/ctqmcout.py +++ b/python/triqs_dftkit/wien2k/ctqmcout.py @@ -49,10 +49,10 @@ symmetry operation mapping the representative atom onto each equivalent one (set_rotloc.f / setsym.f). -ctqmcout layout is outputqmc.f:66-613. The cubic transform coefficients are -stored in dmftproj via a single-precision CMPLX cast (set_ang_trans.f:146); -to match the committed file the transmat is cast to complex64 before use -(the dft_tools #148 noise, e.g. 0.70710676908 for 1/sqrt2). +ctqmcout layout is outputqmc.f:66-613. The cubic transform uses the exact +analytic harmonics; with the precision-fixed dmftproj (full double precision +templates and KIND=8 casts) the port reproduces case.ctqmcout to machine +precision on a full-rank window. """ import os @@ -60,8 +60,10 @@ from scipy.linalg.lapack import zheev from scipy.linalg.blas import zgemm -from ._dmftproj import (dmat, fmt_scalar, read_almblm, read_dmftsym, - read_indmftpr, reptrans, select_window, tmat, write_row) +from ._dmftproj import (band_index_window, dmat, fmt_scalar, read_almblm, + read_dmftsym, read_fromfile, read_indmftpr, reptrans, + rotloc_rotl_so, select_band_window, select_window, + tmat, write_row) def _sqrt_inv(O): @@ -72,10 +74,12 @@ def _sqrt_inv(O): eigenvalue as a *complex* sqrt (W_comp = CMPLX(W,0)); reproduce that with a complex power. The result D1 @ conj(Z).T matches the Fortran's ZGEMM('N','T'). - O is rank-deficient here (more correlated spin-orbitals than bands), so the - near-null eigenvalues amplify the last-ULP libm difference between gfortran - and numpy by ~1e8; ctqmcout therefore matches to ~1e-6, not machine - precision (a property of the algorithm, not the port).""" + With a full-rank overlap (enough bands for the correlated spin-orbitals) the + eigenvectors are unique and ctqmcout matches dmftproj to machine precision. + A rank-deficient overlap (narrow window, more orbitals than bands) makes the + near-null eigenvectors non-unique, so O^{-1/2} amplifies the last-ULP libm + difference; that is a numerical property of the degenerate case, not the + port (see the ctqmcout test, which uses a full-rank window).""" w, Z, info = zheev(O, compute_v=1, lower=0) # 'V', 'U' D1 = Z * (w.astype(complex) ** -0.5) # Z @ diag(w^{-1/2}) return zgemm(1.0, D1, np.conj(Z), trans_b=1) # ZGEMM('N','T'): D1 @ conj(Z)^T @@ -134,13 +138,22 @@ def _rloc_rotrep(op, l, transmat): return rotrep, timeinv +def _rloc_rotrep_mixing(l, ref, ops, iatom, iref, P): + """rotloc(iatom)%rotrep(l)%mat for a mixing SO shell: the composed Rloc + spinor rotation (rotloc_rotl_so) put into the new basis with the full + 2(2l+1) transmat P (set_rotloc.f mixing branch). Returns (rotrep, timeinv).""" + rotl, timeinv = rotloc_rotl_so(l, ref, ops, iatom, iref) + rotrep = (P @ rotl @ P.T) if timeinv else (P @ rotl @ np.conj(P.T)) + return rotrep, timeinv + + # --- ctqmcout writer --------------------------------------------------------- def write_ctqmcout(case): """Read .almblm{up,dn}, .indmftpr, .struct, .dmftsym and write .ctqmcout in the dmftproj format.""" info = read_indmftpr(case + '.indmftpr') - nsym, ops = read_dmftsym(case + '.dmftsym') + nsym, ops, rotloc_ref = read_dmftsym(case + '.dmftsym', rotloc=True) up, dn = case + '.almblmup', case + '.almblmdn' if os.path.exists(up) and os.path.exists(dn): @@ -156,27 +169,37 @@ def write_ctqmcout(case): elecn = spins[0]['elecn'] crorbs = _build_crorbs(info) - if any(cr['basis'] == 'fromfile' for cr in crorbs): - raise NotImplementedError( - 'ctqmcout for fromfile/mixing correlated bases is not yet covered ' - 'by a test fixture; cubic and complex bases are supported') orbs = _build_orbs(info) ncrorb = len(crorbs) norb = len(orbs) - # window in [e_bot, e_top] + # band-index window for proj_mode 1/2 (set_projections is called with band + # indices, not energies). proj_mode 1 scans all spins for the global window. + bw = band_index_window(info, spins) if info['proj_mode'] != 0 else None + + # window in [e_bot, e_top] (proj_mode 0) or [b_bot, b_top] (mode 1/2) windows = [] for ik in range(nk): kp = spins[0]['kp'][ik] - windows.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], - info['e_bot'], info['e_top'])) - - # window below e_bot (for qbbot) + if info['proj_mode'] == 0: + windows.append(select_window( + kp['nbmin'], kp['nbmax'], kp['eband'], + info['e_bot'], info['e_top'])) + else: + windows.append(select_band_window( + kp['nbmin'], kp['nbmax'], bw[0], bw[1])) + + # window below e_bot (mode 0) or below b_bot (mode 1/2), for qbbot. + # Mode 1/2: set_projections(1, b_bot-1) -> select_band_window with top=b_bot-1. win_below = [] for ik in range(nk): kp = spins[0]['kp'][ik] - win_below.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], - -1e6, info['e_bot'])) + if info['proj_mode'] == 0: + win_below.append(select_window( + kp['nbmin'], kp['nbmax'], kp['eband'], -1e6, info['e_bot'])) + else: + win_below.append(select_band_window( + kp['nbmin'], kp['nbmax'], 1, bw[0] - 1)) # qbbot: point integration over bands below e_bot, is=1 only under SO qbbot = 0.0 @@ -188,8 +211,15 @@ def write_ctqmcout(case): if ifSO: break - transmats = {(cr['l'], cr['sort']): reptrans(cr['basis'], cr['l']) - for cr in crorbs} + transmats = {} + mixing = {} + for cr in crorbs: + key = (cr['l'], cr['sort']) + if cr['basis'] == 'fromfile': + transmats[key], mixing[key] = read_fromfile( + info['sorts'][cr['sort'] - 1]['sourcefile'], cr['l']) + else: + transmats[key], mixing[key] = reptrans(cr['basis'], cr['l']), False # rotloc Euler angles per crorb: the symmetry op mapping the representative # atom of the sort onto this atom (set_rotloc.f). With identity struct @@ -204,13 +234,16 @@ def write_ctqmcout(case): if o['perm'][iref - 1] == cr['atom']) # ---- raw correlated projector mat_rep, then Loewdin orthonormalize ---- - # mat_rep[(icr, ik, is)] -> (2l+1, nbsel) + # Non-mixing: mat_rep[(icr, ik, is)] -> (2l+1, nbsel) per spin block. + # Mixing: mat_rep[(icr, ik)] -> (2*(2l+1), nbsel), the stacked spinor block. mat_rep = {} for icr, cr in enumerate(crorbs): l = cr['l'] atom = cr['atom'] sort = cr['sort'] + d = 2 * l + 1 transmat = transmats[(l, sort)] + ismix = mixing[(l, sort)] op = rotloc_op[icr] rot = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) for ik in range(nk): @@ -220,12 +253,13 @@ def write_ctqmcout(case): kp0 = spins[0]['kp'][ik] off_bot = nb_bot - kp0['nbmin'] off_top = nb_top - kp0['nbmin'] + nbsel = off_top - off_bot + 1 + spin_blocks = [] for ispin in range(ns): sp = spins[ispin] kp = sp['kp'][ik] nlo = sp['nLO'][(l, sort)] - nbsel = off_top - off_bot + 1 - P = np.zeros((2 * l + 1, nbsel), dtype=complex) + P = np.zeros((d, nbsel), dtype=complex) for mi, m in enumerate(range(-l, l + 1)): lm = l * l + (m + l) # 0-based packed index for j, off in enumerate(range(off_bot, off_top + 1)): @@ -234,22 +268,32 @@ def write_ctqmcout(case): val += kp['Clm'][ilo, lm, atom, off] * \ sp['ovl_LO_u'][(ilo + 1, l, sort)] P[mi, j] = val - # rot_projectmat (local rotation) then the basis transform - P = transmat @ (rot @ P) - mat_rep[(icr, ik, ispin)] = P + spin_blocks.append(rot @ P) # rot_projectmat per spin + if ismix: + stack = np.vstack(spin_blocks) # (2*(2l+1), nbsel), up then dn + mat_rep[(icr, ik)] = transmat @ stack + else: + for ispin in range(ns): + mat_rep[(icr, ik, ispin)] = transmat @ spin_blocks[ispin] - # Loewdin: per k stack all crorb rows (is=1 block then is=2 block per crorb) + # Loewdin: per k stack all crorb rows. A mixing crorb contributes its full + # 2(2l+1) block once (is=1 only); a non-mixing one the two (2l+1) spin + # blocks (orthogonal_wannier_SO ndim layout). for ik in range(nk): incl, nb_bot, nb_top = windows[ik] if not incl: continue blocks = [] - layout = [] # (icr, is, nrows) + layout = [] # (key, nrows) for icr, cr in enumerate(crorbs): l = cr['l'] - for ispin in range(ns): - blocks.append(mat_rep[(icr, ik, ispin)]) - layout.append((icr, ispin, 2 * l + 1)) + if mixing[(l, cr['sort'])]: + blocks.append(mat_rep[(icr, ik)]) + layout.append(((icr, ik), 2 * (2 * l + 1))) + else: + for ispin in range(ns): + blocks.append(mat_rep[(icr, ik, ispin)]) + layout.append(((icr, ik, ispin), 2 * l + 1)) D = np.vstack(blocks) # ndim x nbnd # match the Fortran's exact BLAS calls (orthogonal_wannier_SO): the # near-singular O^{-1/2} amplifies any last-bit difference, so use the @@ -258,8 +302,8 @@ def write_ctqmcout(case): S = _sqrt_inv(O) D_orth = zgemm(1.0, S, D) # ZGEMM('N','N'): O^{-1/2} @ D row = 0 - for icr, ispin, nrows in layout: - mat_rep[(icr, ik, ispin)] = D_orth[row:row + nrows, :] + for key, nrows in layout: + mat_rep[key] = D_orth[row:row + nrows, :] row += nrows # ---- Rloc rotrep per crorb ---- @@ -268,8 +312,12 @@ def write_ctqmcout(case): l = cr['l'] transmat = transmats[(l, cr['sort'])] iref = sum(info['mult'][:cr['sort'] - 1]) + 1 - op = next(o for o in ops if o['perm'][iref - 1] == cr['atom']) - rloc_blocks.append(_rloc_rotrep(op, l, transmat)) + if mixing[(l, cr['sort'])]: + rloc_blocks.append(_rloc_rotrep_mixing( + l, rotloc_ref[cr['sort'] - 1], ops, cr['atom'], iref, transmat)) + else: + op = next(o for o in ops if o['perm'][iref - 1] == cr['atom']) + rloc_blocks.append(_rloc_rotrep(op, l, transmat)) # ---- write ---- with open(case + '.ctqmcout', 'w') as f: @@ -300,16 +348,20 @@ def write_ctqmcout(case): write_row(f, rotrep[m, :].imag) f.write('%6d\n' % (1 if timeinv else 0)) - # complex-harmonics -> basis transform block (crorb%first only) + # complex-harmonics -> basis transform block (crorb%first only). Mixing + # writes the full 2(2l+1) transmat; non-mixing the spin block-diagonal. for cr in crorbs: if not cr['first']: continue l = cr['l'] transmat = transmats[(l, cr['sort'])] d = 2 * l + 1 - spinrot = np.zeros((2 * d, 2 * d), dtype=complex) - spinrot[:d, :d] = transmat - spinrot[d:, d:] = transmat + if mixing[(l, cr['sort'])]: + spinrot = transmat + else: + spinrot = np.zeros((2 * d, 2 * d), dtype=complex) + spinrot[:d, :d] = transmat + spinrot[d:, d:] = transmat f.write('%6d %6d \n' % (1, 2 * d)) for m in range(2 * d): write_row(f, spinrot[m, :].real) @@ -324,10 +376,18 @@ def write_ctqmcout(case): incl, nb_bot, nb_top = windows[ik] f.write('%6d\n' % abs(nb_top - nb_bot + 1)) - # projector block: DO ik, DO icrorb (non-mixing SO whole-shell) + # projector block: DO ik, DO icrorb. Mixing writes the full 2(2l+1) + # block from is=1; non-mixing the two (2l+1) spin blocks. for ik in range(nk): for icr, cr in enumerate(crorbs): l = cr['l'] + if mixing[(l, cr['sort'])]: + P = mat_rep[(icr, ik)] + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].real) + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].imag) + continue for ispin in range(ns): P = mat_rep[(icr, ik, ispin)] for mi in range(2 * l + 1): diff --git a/python/triqs_dftkit/wien2k/oubwin.py b/python/triqs_dftkit/wien2k/oubwin.py index bc44eaa..798757a 100644 --- a/python/triqs_dftkit/wien2k/oubwin.py +++ b/python/triqs_dftkit/wien2k/oubwin.py @@ -31,10 +31,16 @@ It reproduces the Fortran path: read elecn/nk/nloat/eferm from the almblm header (outbwin.f / dmftproj.f), parse the energy window (e_bot, e_top, proj_mode) from the last line of case.indmftpr, shift every band eigenvalue -by eferm, and apply the proj_mode==0 selection of set_projections.f -(strict lower bound e_bot < E, inclusive upper bound E <= e_top, yielding a -single contiguous [nb_bot, nb_top] per k). The weight written per included -k-point is the tetrahedron weight of the lowest band nbmin. +by eferm, and apply the set_projections.f selection. For proj_mode==0 this is +the energy-window rule (strict lower bound e_bot < E, inclusive upper bound +E <= e_top, yielding a single contiguous [nb_bot, nb_top] per k). For +proj_mode 1 and 2 the window is a pair of band indices (b_bot, b_top): every +k-point is included with nb_bot/nb_top those indices clamped to the local +nbmin/nbmax (set_projections.f:70-88). In mode 2 the indices come straight +from the window line; in mode 1 they are the global min/max band index over +all spins/k whose Fermi-shifted energy lies in (e_bot, e_top] +(dmftproj.f:704-722). The weight written per included k-point is the +tetrahedron weight of the lowest band nbmin. Spin-polarization is detected from the input files: case.almblmup / case.almblmdn present => two spin files (case.oubwinup / case.oubwindn), @@ -45,21 +51,23 @@ import os -from ._dmftproj import read_almblm, read_indmftpr, select_window +from ._dmftproj import (band_index_window, read_almblm, read_indmftpr, + select_band_window, select_window) -def _windows_for_spin(almblm, info): - """Per-k (included, nb_bot, nb_top, weight) for one spin's almblm file.""" - if info['proj_mode'] != 0: - raise NotImplementedError( - 'oubwin generation is implemented for the energy-window ' - 'projection mode (proj_mode==0); band-index modes 1 and 2 are ' - 'not yet covered by a test fixture') - sp = read_almblm(almblm, info) +def _windows_from_spin(sp, info, band_window): + """Per-k (included, nb_bot, nb_top, weight) for one already-read spin dict. + proj_mode==0 uses the energy window; modes 1/2 use the band-index window + (b_bot, b_top) precomputed in band_window.""" out = [] for kp in sp['kp']: - incl, nb_bot, nb_top = select_window( - kp['nbmin'], kp['nbmax'], kp['eband'], info['e_bot'], info['e_top']) + if info['proj_mode'] == 0: + incl, nb_bot, nb_top = select_window( + kp['nbmin'], kp['nbmax'], kp['eband'], + info['e_bot'], info['e_top']) + else: + incl, nb_bot, nb_top = select_band_window( + kp['nbmin'], kp['nbmax'], band_window[0], band_window[1]) out.append((incl, nb_bot, nb_top, kp['weight'])) return out @@ -92,8 +100,13 @@ def write_oubwin(case): spin_polarized = os.path.exists(up) and os.path.exists(dn) if spin_polarized: - win_up = _windows_for_spin(up, info) - win_dn = _windows_for_spin(dn, info) + sp_up = read_almblm(up, info) + sp_dn = read_almblm(dn, info) + # mode 1 scans both spins for the global band-index window. + bw = (band_index_window(info, [sp_up, sp_dn]) + if info['proj_mode'] != 0 else None) + win_up = _windows_from_spin(sp_up, info, bw) + win_dn = _windows_from_spin(sp_dn, info, bw) if ifso: for u, d in zip(win_up, win_dn): if u[0] != d[0] or u[1] != d[1] or u[2] != d[2]: @@ -103,5 +116,8 @@ def write_oubwin(case): _write_oubwin_file(case + '.oubwinup', ifso, win_up) _write_oubwin_file(case + '.oubwindn', ifso, win_dn) else: - win = _windows_for_spin(case + '.almblm', info) + sp = read_almblm(case + '.almblm', info) + bw = (band_index_window(info, [sp]) + if info['proj_mode'] != 0 else None) + win = _windows_from_spin(sp, info, bw) _write_oubwin_file(case + '.oubwin', ifso, win) diff --git a/python/triqs_dftkit/wien2k/parproj.py b/python/triqs_dftkit/wien2k/parproj.py index dee0d5f..5caeb41 100644 --- a/python/triqs_dftkit/wien2k/parproj.py +++ b/python/triqs_dftkit/wien2k/parproj.py @@ -58,8 +58,15 @@ import os import numpy as np -from ._dmftproj import (dmat, read_almblm, read_dmftsym, read_indmftpr, - reptrans, select_window, tmat, write_row) +from ._dmftproj import (dmat, mixing_rotrep, read_almblm, read_dmftsym, + read_fromfile, read_indmftpr, reptrans, + rotloc_rotl_so, select_window, tmat, write_row) + + +def _op_timeinv(op, ifSO): + det2 = (op['krotm'][0, 0] * op['krotm'][1, 1] + - op['krotm'][0, 1] * op['krotm'][1, 0]) + return bool(ifSO and det2 < 0.0) def _sqrtm_real_sym(O): @@ -131,66 +138,26 @@ def _srot_rotrep_nonmixing(op, l, transmat, ifSP, ifSO): # --- rotloc rotrep (set_rotloc.f) under SP+SO, non-mixing -------------------- -def _rotloc_rotrep_so(orb, ops, info, ref, transmat): +def _rotloc_rotrep_so(orb, ops, info, ref, transmat, mixing): """rotloc(iatom)%rotrep(l)%mat, the full 2*(2l+1) Rloc spinor rotation in - the new basis under SP+SO, non-mixing (set_rotloc.f), plus timeinv flag. + the new basis under SP+SO (set_rotloc.f), plus timeinv flag. - ref is the representative-sort rotloc (krotm, a, b, g, iprop). set_rotloc - runs the same composition for EVERY atom of the sort, including the - representative: it finds the FIRST symmetry op R[isym] with - perm(iref)==iatom and composes srot%rotl with the representative spinor - rotloc. For the representative this op need not be the identity.""" + ref is the representative-sort rotloc; rotloc_rotl_so composes the + representative spinor rotloc with the first symmetry op mapping the sort + representative onto this atom. The new-basis transform is the full transmat + for a mixing (spin-coupling) basis, and blkdiag(transmat, transmat) for a + spin-diagonal one.""" l = orb['l'] - isrt = orb['sort'] - iatom = orb['atom'] - iref = sum(info['mult'][:isrt - 1]) + 1 + iref = sum(info['mult'][:orb['sort'] - 1]) + 1 d = 2 * l + 1 - - # rotloc%rotl(2d) initial value (setsym.f:496-528): spmt (x) D(rotloc_ref). - Dref = dmat(l, ref['a'], ref['b'], ref['g'], float(ref['iprop'])) - f = (ref['a'] + ref['g']) / 2.0 - spmt = np.zeros((2, 2), dtype=complex) - spmt[0, 0] = np.exp(1j * f) * math.cos(ref['b'] / 2.0) - spmt[1, 1] = np.conj(spmt[0, 0]) - f = -(ref['a'] - ref['g']) / 2.0 - spmt[0, 1] = np.exp(1j * f) * math.sin(ref['b'] / 2.0) - spmt[1, 0] = -np.conj(spmt[0, 1]) - rotl = np.zeros((2 * d, 2 * d), dtype=complex) - rotl[:d, :d] = spmt[0, 0] * Dref - rotl[d:, d:] = spmt[1, 1] * Dref - rotl[:d, d:] = spmt[0, 1] * Dref - rotl[d:, :d] = spmt[1, 0] * Dref - - # Compose with the first symmetry op mapping iref onto iatom (set_rotloc.f:60). - isym = next(k for k, o in enumerate(ops) - if o['perm'][iref - 1] == iatom) - op = ops[isym] - det2 = op['krotm'][0, 0] * op['krotm'][1, 1] - \ - op['krotm'][0, 1] * op['krotm'][1, 0] - timeinv = det2 < 0.0 - srot_phase = (op['g'] - op['a']) if timeinv else (op['a'] + op['g']) - # srot%rotl D(R[isym])_{lm}, with the timeinv operator applied if magnetic - # (setsym.f:318-331 applies timeinv_op to srot%rotl before set_rotloc). - rotl_sym = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) - if timeinv: - rotl_sym = tmat(l) @ np.conj(rotl_sym) - ephase = np.exp(1j * srot_phase / 2.0) - tmp = np.zeros((2 * d, 2 * d), dtype=complex) - tmp[:d, :d] = ephase * rotl_sym - tmp[d:, d:] = np.conj(ephase) * rotl_sym - if timeinv: - rotl = tmp @ np.conj(rotl) + rotl, timeinv = rotloc_rotl_so(l, ref, ops, orb['atom'], iref) + if mixing: + S = transmat else: - rotl = tmp @ rotl - - # rotrep = S rotl S^(H or T), S = blkdiag(transmat, transmat). - S = np.zeros((2 * d, 2 * d), dtype=complex) - S[:d, :d] = transmat - S[d:, d:] = transmat - if timeinv: - rotrep = S @ rotl @ S.T - else: - rotrep = S @ rotl @ np.conj(S.T) + S = np.zeros((2 * d, 2 * d), dtype=complex) + S[:d, :d] = transmat + S[d:, d:] = transmat + rotrep = (S @ rotl @ S.T) if timeinv else (S @ rotl @ np.conj(S.T)) return rotrep, timeinv @@ -234,6 +201,94 @@ def _build_matn_rep(orb, info, spins, ns, windows, transmat, rot): return out +def _raw_matn(orb, sp, ik, nb_bot, nb_top, rot): + """The rot_projectmat'd (2l+1, nbsel, n) Theta projector in the |lm> basis + for one spin, before the angular transform (set_projections.f matn_rep).""" + l, atom, sort = orb['l'], orb['atom'], orb['sort'] + kp = sp['kp'][ik] + off_bot = nb_bot - kp['nbmin'] + off_top = nb_top - kp['nbmin'] + nbsel = off_top - off_bot + 1 + n = sp['nLO'][(l, sort)] + 2 + s12 = _build_s12(l, sort, n, sp) + matn = np.zeros((2 * l + 1, nbsel, n), dtype=complex) + for mi, m in enumerate(range(-l, l + 1)): + lm = l * l + (m + l) + for j, off in enumerate(range(off_bot, off_top + 1)): + coeff = np.zeros(n, dtype=complex) + coeff[0] = kp['Alm'][lm, atom, off] + coeff[1] = kp['Blm'][lm, atom, off] + for ilo in range(n - 2): + coeff[2 + ilo] = kp['Clm'][ilo, lm, atom, off] + matn[mi, j, :] = coeff @ s12 + for ir in range(n): + matn[:, :, ir] = rot @ matn[:, :, ir] + return matn + + +def _build_matn_rep_mixing(orb, info, spins, windows, transmat, rot): + """matn_rep[ik] -> (2*(2l+1), nbsel, n): the mixing Theta projector. Each + spin's rot_projectmat'd |lm> block is stacked (up then dn) and multiplied by + the full 2(2l+1) transmat per radial channel (set_projections.f:515-585).""" + l = orb['l'] + d = 2 * l + 1 + out = {} + for ik in range(info['nk']): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + up = _raw_matn(orb, spins[0], ik, nb_bot, nb_top, rot) + dn = _raw_matn(orb, spins[1], ik, nb_bot, nb_top, rot) + nbsel, n = up.shape[1], up.shape[2] + matn = np.zeros((2 * d, nbsel, n), dtype=complex) + matn[:d] = up + matn[d:] = dn + for ir in range(n): + matn[:, :, ir] = transmat @ matn[:, :, ir] + out[ik] = matn + return out + + +def _orbital_densmat_mixing(orb, info, spins, windows, matn_rep): + """The single 2*(2l+1) raw density block for a mixing orbital, point- + integrated with the geometric k-weight (density.f:786-812): D = sum over k + and radial channels of matn_rep matn_rep^H, already in the new basis.""" + l = orb['l'] + d = 2 * l + 1 + n = spins[0]['nLO'][(l, orb['sort'])] + 2 + dens = np.zeros((2 * d, 2 * d), dtype=complex) + for ik in range(info['nk']): + incl, _, _ = windows[ik] + if not incl: + continue + weight = spins[0]['kp'][ik]['weight'] + for i in range(n): + mat = matn_rep[orb['atom']][ik][:, :, i] + dens += (mat @ np.conj(mat.T)) * weight + return dens + + +def _symmetrize_densmat_mixing(orb, ops, nsym, rotreps, dens_raw): + """symmetrize_mat for a mixing orbital (symmetrize_mat.f:140-188). For the + representative atom: sum over symmetry ops of rotrep (conj(D) if magnetic) + rotrep^H, divided by nsym. rotreps[isym] is srot%rotrep (mixing_rotrep).""" + d = 2 * (2 * orb['l'] + 1) + sym = np.zeros((d, d), dtype=complex) + for isym in range(nsym): + rotrep, timeinv = rotreps[isym] + tmp = np.conj(dens_raw) if timeinv else dens_raw + sym += rotrep @ (tmp @ np.conj(rotrep.T)) + return sym / nsym + + +def _rotdens_densmat_mixing(blk, rotrep_loc, timeinv): + """rotdens_mat for a mixing orbital (rot_dens.f:119-141): inverse(Rloc) D + Rloc on the single 2*(2l+1) block.""" + if timeinv: + return rotrep_loc.T @ np.conj(blk @ rotrep_loc) + return np.conj(rotrep_loc.T) @ (blk @ rotrep_loc) + + # --- density matrix (density.f Theta path, non-mixing SP+SO) ----------------- def _orbital_densmat_blocks(orb, info, spins, ns, windows, matn_reps): @@ -355,10 +410,6 @@ def write_parproj(case): info['nk'] = nk orbs = _build_orbs(info) - if any(o['basis'] == 'fromfile' for o in orbs): - raise NotImplementedError( - 'parproj for fromfile/mixing bases is not yet covered by a test ' - 'fixture; cubic and complex bases are supported') norb = len(orbs) # Two band ranges (dmftproj.f:757,836): the energy window [e_bot, e_top] @@ -380,8 +431,15 @@ def write_parproj(case): below_windows.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], -1e6, info['e_bot'])) - transmats = {(o['l'], o['sort']): reptrans(o['basis'], o['l']) - for o in orbs} + transmats = {} + mixing = {} + for o in orbs: + key = (o['l'], o['sort']) + if o['basis'] == 'fromfile': + transmats[key], mixing[key] = read_fromfile( + info['sorts'][o['sort'] - 1]['sourcefile'], o['l']) + else: + transmats[key], mixing[key] = reptrans(o['basis'], o['l']), False # rot_projectmat local rotation: the op mapping the representative atom of # the sort onto this atom (set_projections.f via rot_projectmat). @@ -400,29 +458,16 @@ def write_parproj(case): transmat = transmats[(l, o['sort'])] op = rotloc_op[o['atom']] rot = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) - matn_reps[o['atom']] = _build_matn_rep( - o, info, spins, ns, windows, transmat, rot) - matn_reps_full[o['atom']] = _build_matn_rep( - o, info, spins, ns, below_windows, transmat, rot) - - # ---- srot rotrep per (sort, isym) for symmetrize_mat ---- - srot_rotreps = {} - for isrt in range(1, info['nsort'] + 1): - if not info['sorts'][isrt - 1]['included_ls']: - continue - l = info['sorts'][isrt - 1]['included_ls'][0] - transmat = transmats[(l, isrt)] - for isym in range(nsym): - srot_rotreps[(isrt, isym)] = _srot_rotrep_nonmixing( - ops[isym], l, transmat, ifSP, ifSO) - - # ---- density matrices: raw -> symmetrize -> rotdens ---- - dens_raw = {} - for o in orbs: - dens_raw[o['atom']] = _orbital_densmat_blocks( - o, info, spins, ns, below_windows, matn_reps_full) - dens_sym = _symmetrize_densmat(orbs, info, ops, nsym, srot_rotreps, - dens_raw, ns, ifSP, ifSO) + if mixing[(l, o['sort'])]: + matn_reps[o['atom']] = _build_matn_rep_mixing( + o, info, spins, windows, transmat, rot) + matn_reps_full[o['atom']] = _build_matn_rep_mixing( + o, info, spins, below_windows, transmat, rot) + else: + matn_reps[o['atom']] = _build_matn_rep( + o, info, spins, ns, windows, transmat, rot) + matn_reps_full[o['atom']] = _build_matn_rep( + o, info, spins, ns, below_windows, transmat, rot) # ---- rotloc rotrep per orbital ---- rotloc_rotrep = {} @@ -430,13 +475,47 @@ def write_parproj(case): transmat = transmats[(o['l'], o['sort'])] ref = rotloc_ref[o['sort'] - 1] rotloc_rotrep[o['atom']] = _rotloc_rotrep_so( - o, ops, info, ref, transmat) + o, ops, info, ref, transmat, mixing[(o['l'], o['sort'])]) + # ---- density matrices: raw -> symmetrize -> rotdens ---- + # Non-mixing sorts use the 4-block path; mixing sorts the single-block path. + nonmix_orbs = [o for o in orbs if not mixing[(o['l'], o['sort'])]] densprint = {} + + if nonmix_orbs: + srot_rotreps = {} + for isrt in range(1, info['nsort'] + 1): + ls = info['sorts'][isrt - 1]['included_ls'] + if not ls or mixing[(ls[0], isrt)]: + continue + l = ls[0] + for isym in range(nsym): + srot_rotreps[(isrt, isym)] = _srot_rotrep_nonmixing( + ops[isym], l, transmats[(l, isrt)], ifSP, ifSO) + dens_raw = {o['atom']: _orbital_densmat_blocks( + o, info, spins, ns, below_windows, matn_reps_full) + for o in nonmix_orbs} + dens_sym = _symmetrize_densmat(nonmix_orbs, info, ops, nsym, + srot_rotreps, dens_raw, ns, ifSP, ifSO) + for o in nonmix_orbs: + rotrep_loc, timeinv = rotloc_rotrep[o['atom']] + densprint[o['atom']] = _rotdens_densmat( + o, dens_sym[o['atom']], rotrep_loc, timeinv) + for o in orbs: + l, sort = o['l'], o['sort'] + if not mixing[(l, sort)]: + continue + rotreps = [] + for isym in range(nsym): + ti = _op_timeinv(ops[isym], ifSO) + rotreps.append( + (mixing_rotrep(ops[isym], l, transmats[(l, sort)], ti), ti)) + raw = _orbital_densmat_mixing(o, info, spins, below_windows, + matn_reps_full) + sym = _symmetrize_densmat_mixing(o, ops, nsym, rotreps, raw) rotrep_loc, timeinv = rotloc_rotrep[o['atom']] - densprint[o['atom']] = _rotdens_densmat( - o, dens_sym[o['atom']], rotrep_loc, timeinv) + densprint[o['atom']] = _rotdens_densmat_mixing(sym, rotrep_loc, timeinv) # ---- write ---- with open(case + '.parproj', 'w') as f: @@ -448,11 +527,20 @@ def write_parproj(case): l = o['l'] atom = o['atom'] n = spins[0]['nLO'][(l, o['sort'])] + 2 + ismix = mixing[(l, o['sort'])] - # (A) Theta projector, non-mixing SP+SO (outputqmc.f:955-973). + # (A) Theta projector (outputqmc.f:935-973). Mixing writes the full + # 2(2l+1) block from is=1 only; non-mixing the two (2l+1) spin blocks. for ik in range(nk): incl, nb_bot, nb_top = windows[ik] for ir in range(n): + if ismix: + P = matn_reps[atom][ik][:, :, ir] + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].real) + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].imag) + continue for ispin in range(ns): P = matn_reps[atom][(ik, ispin)][:, :, ir] for mi in range(2 * l + 1): @@ -462,14 +550,14 @@ def write_parproj(case): for mi in range(2 * l + 1): write_row(f, P[mi, :].imag) - # (B) density matrix, non-mixing SP+SO 2*(2l+1) (outputqmc.f:1033-1049). + # (B) density matrix, SP+SO 2*(2l+1) (outputqmc.f:1012-1066). dp = densprint[atom] for m in range(2 * (2 * l + 1)): write_row(f, dp[m, :].real) for m in range(2 * (2 * l + 1)): write_row(f, dp[m, :].imag) - # (C) Rloc rotrep, non-mixing SP+SO (outputqmc.f:1148-1158). + # (C) Rloc rotrep, SP+SO 2*(2l+1) (outputqmc.f:1130-1177). rotrep_loc, timeinv = rotloc_rotrep[atom] for m in range(2 * (2 * l + 1)): write_row(f, rotrep_loc[m, :].real) diff --git a/python/triqs_dftkit/wien2k/sympar.py b/python/triqs_dftkit/wien2k/sympar.py index dbe688a..d78769d 100644 --- a/python/triqs_dftkit/wien2k/sympar.py +++ b/python/triqs_dftkit/wien2k/sympar.py @@ -50,25 +50,31 @@ import os import numpy as np -from ._dmftproj import (dmat, fmt, read_dmftsym, read_indmftpr, reptrans, - timeinv_orbital, tmat, write_row) +from ._dmftproj import (dmat, fmt, mixing_rotrep, read_dmftsym, read_fromfile, + read_indmftpr, reptrans, timeinv_orbital, tmat, + write_row) # --- included shells --------------------------------------------------------- def _included_shells(info): """One entry per INCLUDED shell (l_inc in {1,2}), one per atom of its sort, - in orb order (sort, l, atom). Each shell carries l, basis name and the - transform P (the single-precision-cast cubic harmonics dmftproj writes).""" + in orb order (sort, l, atom). Each shell carries l, basis name, a mixing + flag and the transform P: a spin-coupling fromfile basis gives the full + 2(2l+1) P (P spinrot P^dag matrix), otherwise the (2l+1) up/up block (the + single-precision-cast cubic harmonics dmftproj writes).""" shells = [] for isort in range(info['nsort']): s = info['sorts'][isort] for l in s['included_ls']: - P = reptrans(s['basis'], l) + if s['basis'] == 'fromfile': + P, mixing = read_fromfile(s['sourcefile'], l) + else: + P, mixing = reptrans(s['basis'], l), False for imu in range(1, info['mult'][isort] + 1): atom = sum(info['mult'][:isort]) + imu shells.append(dict(l=l, sort=isort + 1, atom=atom, - basis=s['basis'], P=P)) + basis=s['basis'], P=P, mixing=mixing)) return shells @@ -105,6 +111,8 @@ def _shell_matrix(op, shell, ti): l = shell['l'] if l == 0: return _l0_matrix(op, ti) + if shell['mixing']: + return mixing_rotrep(op, l, shell['P'], bool(ti)) return _nonmixing_matrix(op, shell, ti) @@ -126,10 +134,6 @@ def write_sympar(case): time-reversal tail is written only when .not.ifSP.""" info = read_indmftpr(case + '.indmftpr') shells, so = _included_shells(info), info['so'] - if any(sh['basis'] == 'fromfile' for sh in shells): - raise NotImplementedError( - 'sympar for fromfile/mixing bases is not yet covered by a test ' - 'fixture; cubic and complex bases are supported') nsym, ops = read_dmftsym(case + '.dmftsym') natom = len(ops[0]['perm']) diff --git a/python/triqs_dftkit/wien2k/symqmc.py b/python/triqs_dftkit/wien2k/symqmc.py index 306f4e7..33e5785 100644 --- a/python/triqs_dftkit/wien2k/symqmc.py +++ b/python/triqs_dftkit/wien2k/symqmc.py @@ -49,8 +49,8 @@ import numpy as np -from ._dmftproj import (dmat, read_dmftsym, read_fromfile, read_indmftpr, - reptrans, tmat, timeinv_orbital) +from ._dmftproj import (dmat, mixing_rotrep, read_dmftsym, read_fromfile, + read_indmftpr, reptrans, timeinv_orbital) # --- correlated shells ------------------------------------------------------- @@ -145,29 +145,9 @@ def _nonmixing_matrix(op, shell, ti): def _mixing_matrix(op, shell, ti): - """Spin-coupling basis: full 2(2l+1) spinor representation. The orbital - rotation enters block-diagonal (beta=0) or block-antidiagonal (beta=pi, the - magnetic operations); the spinor time-reversal -i sigma_y (x) T is then - applied to the magnetic operations (setsym.f, timeinv.f).""" - l, P = shell['l'], shell['P'] - rotl = dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) - e = np.exp(1j * _phase(op, ti) / 2) - d = 2 * l + 1 - spinrot = np.zeros((2 * d, 2 * d), dtype=complex) - if ti: # beta = pi, block-antidiagonal - spinrot[:d, d:] = e * rotl - spinrot[d:, :d] = -np.conj(e) * rotl - else: # beta = 0, block-diagonal - spinrot[:d, :d] = e * rotl - spinrot[d:, d:] = np.conj(e) * rotl - rotrep = P @ spinrot @ np.conj(P.T) - if ti: - tm = tmat(l) - tinv = np.zeros((2 * d, 2 * d), dtype=complex) - tinv[:d, d:] = -tm - tinv[d:, :d] = tm - rotrep = (P @ tinv @ P.T) @ np.conj(rotrep) - return rotrep + """Spin-coupling basis: full 2(2l+1) spinor representation (setsym.f, + timeinv.f), shared with sympar via _dmftproj.mixing_rotrep.""" + return mixing_rotrep(op, shell['l'], shell['P'], bool(ti)) def _format_matrix(mat): diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index d5109b0..d5e1c7d 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -47,17 +47,32 @@ set_property(TEST Py_wien2k_symqmc_mixing APPEND PROPERTY ENVIRONMENT # Pure-Python case.oubwin band-window generator vs the dmftproj Fortran output. # Reuses the committed CaOs2.oubwin{up,dn} references and the gzipped CaOs2 -# almblm inputs (shared with the ctqmcout test). -file(COPY CaOs2.almblmup.gz CaOs2.almblmdn.gz DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +# almblm inputs (shared with the ctqmcout test). CaOs2_mode1 adds the band-index +# projection path (proj_mode 1, window 60..76) against its own dmftproj refs. +file(COPY CaOs2.almblmup.gz CaOs2.almblmdn.gz + CaOs2_mode1.indmftpr CaOs2_mode1.oubwinup CaOs2_mode1.oubwindn + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) add_test(NAME Py_wien2k_oubwin_python COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_oubwin_python.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_oubwin_python APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) +# Wide-window fromfile (|j, m_j>) inputs and references shared by the ctqmcout, +# sympar and parproj generator tests (the spin-mixing dft_tools #148 path). +file(COPY CaOs2_jbasis_full.indmftpr CaOs2_jbasis_full.ctqmcout.gz + CaOs2_jbasis_full.sympar.gz CaOs2_jbasis_full.parproj.gz + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + # Pure-Python case.ctqmcout correlated-shell projector generator vs the dmftproj # Fortran output. Reuses CaOs2.ctqmcout / indmftpr / struct / dmftsym and the -# gzipped almblm; floats compared at 1e-6 (dmftproj single-precision floor). +# gzipped almblm; floats compared at 1e-11 (full-rank wide window). The +# CaOs2_mode{1,2}_full fixtures exercise the band-index projection modes +# (proj_mode 1 scan, proj_mode 2 explicit indices), both resolving to bands +# 43..92, against their own precision-fixed dmftproj references. +file(COPY CaOs2_mode1_full.indmftpr CaOs2_mode1_full.ctqmcout.gz + CaOs2_mode2_full.indmftpr CaOs2_mode2_full.ctqmcout.gz + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) add_test(NAME Py_wien2k_ctqmcout_python COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_ctqmcout_python.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/test/python/wien2k/CaOs2_jbasis_full.ctqmcout.gz b/test/python/wien2k/CaOs2_jbasis_full.ctqmcout.gz new file mode 100644 index 0000000000000000000000000000000000000000..c3c7a7c8418b01c916e44f3acf5a66f1c2e70f3d GIT binary patch literal 22411 zcmX7uWmsHI)2(rL*C2u5?hqUXcOTpbeeeW#f(LhZg2Uj!-5K01xVr_&nfE(?cV9ib zy6di0t9uVs3Zr-dW4 zukyzKP(HW*e9ymrmmTOiNS=AsafodgPO<#;b<|W$`n+cu|Ls;F;N*^7Ez&)OYrV%7 z_v2XYV~O@{hIOW=1tsuLviOIa|J!`}nSg0npp~};MNP}&wl7{l@_h2?zb)D~NXyYo z7fR3k?OQo}|9?L1ALzup`2tft&!N^V>C!Koxoi0=B5y8NNkZ%51D5{+Vy>|%tN%qD zynK_3{fC==_A`cL9^+-E2_?{j_Ag6W`$u>B*~|rPAjACIkxAJ081KKsnCl;=wNxs1 z+g(Qg8W?u}eQVz;^Va!X6HPjERhDA-i|xZ8?_Y|EmqDC(7dpu(>~8G;o_xa<6XQ2?8(M*m3@m4qmV7$8`*WanJLspbsK&J% zN|D=hcT?cDu9T}1wcc}s`>}XnCzJ|wc>O27-V^KkcJXPq)if{A>ny-Q`sU>?#ZI87 zcfkAJKcVUaDx;*ggC}mWo{Oz_=yLy(eSL6MMd$k5O@>u)AA*~bkl;c^RdB%%rwLV2b#2V5$nlRpvEBM6K61u_MrQj`lMW!Qy zJhi>_fR;sWV5EwgSr7gfNuN2T76VO+&-OR{nURsET>C2k`NHF-t)q|JnKwc=mWFbO zMV0wb0IoQlx?Eo-j5$;aZ%anUsSWuDJN=r)YE)aIj>jo z`dV!%BE4vOHp6hC^si~MI#-n*thv`zq%bqQF4xP}9{zG(nM?WJ+O|Y}_*@;l0Tl>HcoT@m}57Bk``Xpy-dzx|9?f^+1@$*t8s&rL3 zl4n||&^l86?~~4m^ikR?zYg9J{5HPuw<;`uY}>yt4u6!YSYwiX z7h;;Z#$O%QB6zv{JKPH!HMlmNK-{J(oxIOgH95rw#hjp? zQiR-*7O^Cf(x>`t_%)I8`LNbmtefFou4rMM>M|_(?APuh(cg!SDyz&F6uRvTVDVl5 z=k|(kgZlP=@(y2NKpDSMPS;-Hh8yBqT2X3Tk($<*NLsA9uu}49C|#=C>E}^sqkk z-1>Hm(^@>wer@Gr`aZ7onAXapWsb{~r;1Bp`+em<`lIY$CdRvY&Mg5}We)5Q{%(NROV$BSp!kpSk_dPb zqBrIwksor%wYW4`)sR`1+|gFQvHh~@r`hF&J>?{!$)INyTjiQOr!P2kth zFn&sv5aCZ7QvL9%_2>J^3;x<6$NG5Z2t3PL(P>W(`QsI+f}G%9s z1bwPNDwFt#{joog!9?f2Oer%LK8YzQceeOs)f(^Bn;-E+81(AxT{;Nq{NhEl$|%|# zVAPpz9A<3QBN7-T$h~Ac;*`aKDr6DYY+)!o1(r z$4137ysF@SEP>69L7I_#WYzVv`iGZ+mr0^p-qR{~qK@7Uo8ES7lc|leT$yf~1XuLl zx%V;)(x5B6Nm)Xj+p|81gqzJi9l52B>k_TBE*}DCn@4rIekJLS- z@DvJPgu<~7ve0rq%Q3s{0}R@?`2F1?*K{w!8$bJ9Zq7&c&C_e3m7qIc3N0LPqhz5Z zH<#IM?l>{+`&q|&NW*=9cbN=KbYM1SFmxzebST_>(jWoeh-m;c)J~i&6Wdcb7yz@( zVfaP&9EcOIt;y610m4XuL1&5X(3;g#V z>K+!1WZBk1Lu{2Mxt>bVCl6BI_Jhq@s; z1yzS(M0`xR%McV}Oe6I*PZ$19zUxPem!~C={btQSYkw@*$91AQLHm#&>Cn8EvySucL@&67x16|Zy$@K#8$35OO0k{h&6qE*WW zFvxY3S+`dY8n>5mxI*@gng3~%=v-wpGtBj6wPkRBL$h)Q7$A&sHKQ1m?WwfahDZ?{ zJSv)S#e7o}@kA3UPdbmy8|+~6oV?C610d5>PS6t=F`uSbE*D}G#notrcN=1pyQ;Zu z36}{(fI(8udE^9oNLE-n3}G0NS@5+iCHM~-TM3B^46?-f97dN~6K8fWgouohNnL`6 zrm9NbaLH|UKn*i7+@E5Jsf;qMiV%;A4K^C(+KHD0>-{4m7Ut!Eu`~ybW@jPsd{Aq< zLEL{3+I>=^rIH10wJ%j7te0PxO}vAb^nb{maFtTHXFoa;=x0za;nt?G*aWDKYCDG+ z(yeItB`c0%8C9}3No6yC(XbFrE?zXwnmDZ9M!0^)R~6XSDXADb+!;;N z&UtDUK~q`DR}kFHziWvtGS(KtsLGghb7bvVu)>BbEaC=VI#!!VodjY1Q0`Ke?jBL> zV>{FN&h2gA`Zf9@we=6*{-xgQZ|us+%&qQqSL_RI#+wZtp#lr{i=5gI@b}MGk>KP{ zs+wf7dUssW+$fuxaNZcFv{O1*o`fi-_X|Gb4a_MM$m0wr?2JWBbP_|PvZPAZcy94N z#{_Hb9&6MX9HdEKL%)`E0@3(Wq&RE&8QpTw>3S;vEfPN1LkMn5+_3FFAy{$OY1<4} ziX*agF%~cQqo<9J_+EIzS(h^|GfKEJ!IyC`tsjvbi~ixZwDTQN#wp5?T89i0k#&~8YSaMi4%Ns_2d$0%MLx_Ux!%?C1;mK9QGxa9W8RM-b9X!G*4iMwBuXaKXll>HS+~t~1t%xciC@sA-z~|DB*)zH zjsvY!G({ExRrUZAWZPdL>b7V>8;K{As+u~*Aw*hTd@Y12WE3>1vxR(c3Sn#dV77ESK#qrKX2{cUTFRC^@cXa86x%N8sR|sAjlOqK@3CM^t>v3x^)!mTK`?p{Z0Zr;)>yxy?wXiG3jzxd+0V}+l=VJj z)Z8v;l-17V9FVwc)c2{?YhfkwlNO;I4^!9X9SouF|TkwTZ;aM}-{JR+~xjoM&r6c;w{Y6TvaeLlG z!DqY_K03`IZ)MY#u;}PSysqF-zu!b$(aJQ0q@otS#v=gfFnK3nnSQM}3qpOB_m4ie z$|xy_#D$zlRk-{?S#U~ldm^SwW6@}~@Z5azeDAWSHR<~YU$|HDE88%4>YrxanV&|% z&XtZfluu>?r~mPq?>7-}<>ygd;VYaqWCX!%ERrp~sn{qukWCkRq1`4X%L{age$v6s z`A8}aOq5E#e7X}ePB#>)?=NtSdp`6Mk>cel0!-P z<=!Py4z9rp2T3lg${nT1cwGEgTsi)y?L2F_!z~n}8{0_x`1?Og*=CI&qH{9^e4>he ziYUBaQefyEl1?a=efCt_RdNL^I%VLs*^j#I3dltnOI$Sn;}BudJs<*ADSSH`vpKiN zw2wZkRmU2b z3s*=a5iz#7?9IRF?U&?LxoQ9T026ToEs5YS#8bJPgT`G5g#w(J!c~;}tNwLPm{f5D z9$C+B!i5omlH0po@t+}!zr(G^j$OK0;(oM`a3KyO!la}v7nAqFUlD@mRDzTGGoOb5 z;dg2=f(5TNy|sdd38N|qH%LsSMH}LQUH)OkMYm2g_Dmp7VVd1N%FTIHeLUK|R6fsY zC~2>BYCN6fb`m5sOO@Xi%V5{{e5wSek3GcqN0&T`fKUwtNoiF7XlR*o2GgzO-DYSp z1XMFVR*r)jM&}O>toDzZJSAOub3Ypx(7Q zEPhcAQ~K5bB~c;a4{Ys>I%JKVM9K}C(Bpz*CD(yW{a)cUE#da$WxiI0t(wtRoFunO z?uSekJ z@yNa}ZCws@*9Bd|Y>64b~JL$z6XKr2}U=HOpnk-m*oT^S+)N^$N^U5^6coN6yyw5O- zm(!oFKi8I+KEfp91f8UM9(g4y&@hWCMoYOp-x$7bw3X{N7+?-A3Ie}~%}&xhdxcXl zM}_%;BM4b@uQU+kifWv6`wJEy%N5Vc>h(vo8mgtx(_2Y-mCMi)!n$|w8-q!7@B|P; zZ@)C<%DV>ijV?$yV}{z)bkg~Vd(rO70KA4#jBxk$-YU^KuFqpI3Y`1%wK9DAg5U|jn(zS92evU6%4J1$H zU1f)yHjMu>68hjv7ha4jQz`DKOm&$ld#d-{tV#1f^&*r;t5E%4zuo-jw8|5vuc&UcgA03aLaERbq5ZG!&oD<;U?L$oM_3LV7msdg zfYteX-dXHVh3|z}{9{6Fm+|Msqtc=uCxL&0Ks%?|_tZYG`?}glX&Kt$Y{-25Ogf`R zc-@+#MZ!E0Rd7i}_PJHT%ZD$yI+IC9i9=~Wv}3g|I~qm^7?>U#!~`tmpGn`b#0z%5 zUS%V?1z+R+rs16Tn81qGA>`dvz~9tcM$mMYdDqCyJO|CjizhJY+UkE+XGmh@>*!#{ zOyp+G$wM%m5h^fX`GaVt_()sxyfkN9i~5Wa3RIi;l)If{v+r3XD0TtU5M@FTI-1$! zr8rDM5E?0a_+5X4bl@f)#-*koE`{)0pyFa`p62WUYD8tsJl_|_d7EgjF|)juO{Y>@ z#VNZAEz}e~Z=!Xd9()9{@Ht#PUK{#=cfQ%f6k4IaKM30kNid%c&~e`^M6GT4QD8I> zRV2)xGps3P-|-N=z1d#cZ;X6}ixMA)3nth*`LMze^Ht%w7|=M!ZLp9W8Jm~8Asu52 z>wdoSYAQw9)hoJ|o!iBZ(Hx*;=FqvdzoPqeuRWE>3qnG@ZZ6R>H$EPSb9|59nsUG5 zcxyVaut9AulO$%j3S+V2C7k9tcv63h)F#qdZkx#Jlx94(K1;w~D{|#^7?-^l5Gv)o z;pyhIsHHmds>X}Ouph!N85~Ukz9|e~aJ_!brgttF=0rzJ?QgFz9!o65CGSJBzI3pN z8H!(_FZlUX7n~5oE1P`I(sP_e3hU6z4*D6yxLu-I*yC0|EzvvcDoURSs>0{G>X3?l z>wiaRmG+Ku>Q~rGCaJJL1u^bBlE;C{^^k&%^q!nZ=BOWi@sMY~ObgeoM<7T2k?&lz z`ts@cP|M6u(wgY)5zApN`h!8-gcGe{>p022_@h-5-k;nvYS)mc#0C|Em-30weX+U7 z?GM5k%vOJVz1~x10PiO0hsAbWv2my48(}WI64u%-g`RHJ&|Ea`5@XXjI}Qyb1=rHh zZalS9eCW0Z#zX3hf7`2Yg1r-LxT|H5I6#9~K2t=)71376nM)Tbo|ITA=rokCiQ3ez zz-Y7g8PcLKMN@3G(l=@U7w+X1R?0=Ap=2iwWWCi+IQ!7XlXXE_5eX0BTrT*Y`W6Ff zG%6k)L@G_%VvAgnL*OlPG%U{IJ6IxpaKVM!VW1y>)$(ccf_s#dVMd;JiAAHfa7Xs_ zaEOO#!hARKrJMsOX&LA?EO2i`o4_KdlWd)QuW<1R@Cx_L0F*WeJcUhrVQ9adSiwl1 z66?qfP}3>#2GuXRVD$$TNb*PRh@=@)ZE%TMBRdH!lD$se40?V4TreCwfsAxK{L8EZ z9~LbAzN${D>->4;3|5!xW5POX+6x`e8Mt zjg{XB&gc;t4$XwN2TazLGCeO{`-*Wb1Yl!GU1^0 z)Mm8#OeGj+jVewIZNqqjG8n+uLcU@lQ_t z#h+1FghNcP=1(@bhhYfyu(OhW%vb!f{PiUg*2gp*m4dUxuS)j|lCVN3?_gBA4qJzh z)0aF+%xw0Wx0ce`TA_KE&vtyF#=C?_`->n5JMnlRug#cTeogVSX$Aj;^L+jla=+9m zBR0ZuBGXSw`kG79(IGQ<1#S9>&PR+4QrcvcQoZfZpM_c8er)VI8y8(;uJkIB$RvF` zV(XPre#wj>RTJ=s6VCDS+PAY(&a2Of`4w2%3m8cW?sD_Pw-avq zvS@ZrQbw3K_g5#t#BLSe>A3$>Y@P*y(bof~U21i=S{N z+_K-=2dpB3xclpgwjMSRC)Jn`(hzzdy0Inr@rXN$UZ<7|QsDT8Y%?H@m?!ZB@OwU7 z{`kHNgljr0g0 zgzqE1jxb8~Q%;H%JkWq2fE0;41ER7iXjQmF_eWxkV7BUtD+EeXt}#?UjS|eKchvcG z9R4a7ZlN^d%y6rB!LrZ}4m+^o;p-@O?#18$M1?RER(gn=-zQAL+LHmE_`Ka_;k-6dX8A+hL;d6zt>dk9#H6^wVs!-~P6bgP5!@9XV%mEo+setIRc z@`Rqk3!E@^>V2=aOttqGmI#Y3mQzU!T4a`O>CQ<-NZ0GG3x7pDE)*tV`cE(&YtG1^ zB1Jur5rn3J;JeguHhtnV%V8tNBiHI);5eUUtC1ya6qFD=9fVY_+_f9p8Da$MX5Fj3 zBX67@szFqJFv}8*Q15;n(=}^$u2S~1pW)f=NX6=|EL>DEU(+oYdMFju2T%VJ`z+@u zZ7su0H;@+*bH8_OW(GSXFf5{W9CL%1#xHLbF-0w&M*}}Z-K`fSbKm&IaKav}uCthq z;AQ`6Z`p!ciqe?7)|!n<0=|di@#iLJ?Wm9aeaTz^=f2}iwuA)JP!#6Jfgy^*ammP0 z`n)KujLO7PFLYY)4GTXVwlNPK`St+D0wxMumt?CF5OF3knz&IdBmD^zxvqi9f|;-& zG}F+<`d%VQ)dw5EE|3oAS^6+kCM~4FXj~mzBx~J}Nh4pgO1X$)jw3%U^L8^=*5lcBVFmv8W~~;aKS8_7mVmzH?mjTB>&AhRJ5eV z7?wdCm6LRYBG(@>{&fg16o~Ur6UVf+1sKFh(tS2b^#wj~i!n{1!BILj-1pqRn48#lZGQ_s*JL?yPq^)yB1$iP?nzU-&Z+^v zd{y~c1q%Dl!4H)p9N$eAWrv6i?8ET3#9J1K2CqDXIfOU4x$)qHg{&A&Q7H|pZJ<2Z zjTWQiev4Z|?Z2Jl7ju=$+#1G~8j{92@N(tc$s(-#tX)>R@;p~pve6G>41e1&3>LY< z6M&145T)#pN?1|~#8?JRMha4)i*$6cGe%I7kx*VNrSfkW)||VObUESS5^30pfZ-5j z0j_mR(po>zs5mZygKo`$7kb}Ysc<(4 zqX>VkmrTIvB*EK3`w#mqnSG3}Bxo0Q_$0CYkb$&3vTwCMP?KC-x^>7TwGKq^TAu$k z!ZoC9(QJovi<)UY*Yb3TEtj)( z{QYn2I8IVHDLb2{5jJs+mTd6O%{^0%QU4YLu2_RRu&7U_Q6QSK1dTpqnEnd+raULR ze2U*)#_hyLM#y?{cQj3%*zGRQAl;B5js_+C?m?%JV(AXvb?Hd9_-u||-~PCGt@%z~ zf!o6j1?ZG3V|X6-!`41!j>3b7{MBH&>huj(gEOdKg_Ln0K6Uvn!~`_<;~zD{H5$O6 zVIc5K%=VI(kwFU9UR0oi&OXW&R@c*K`gErqHj%llB*}l)x24kU5R(pphrX#JIx$V= zgMPMO|Giaz_|TrzNEQHx~s3JtwtRh094~ym!Qqyo!&$sB*}O ztECRLZfqa?_u=lgF-u|e=x8o0f|N@c^q@%zUs!t_QZ0ci%WKMEhf0ejEju2gYTTwB zyBkRPlTtX|BMM$?zeinNpDcPc4A$A4r`~6$G)|%-Z_A4nY>9T0)|y}$%Z$RUHTqwW6_B@ z%uiq9jD{n@;Bj;LgVp>uL?a?Piz3$fEb`I}-9P5T-nvNzBaCo=m}H#CD5T@nc!?tU zM~gt;aT)2hqqTl1_{;Jm=(+Fl0{G$Hq+lLB87J_6!~C!v{Q7{jXXLxDNEmw3q8u_= z--~J@SbWG4#M)=0ecDxSHj+sL--|T(&zovB)NvMer$%>F^h$b0wKc-nn)ZA$a2^C( zG!6Q0yVuo;hkYo?kkyUJnIvtJ+#TB=<%XJDMRb=eMh*_M;&A_sj+k(iz+c8n?W93g zVM$rk)IiCrZoU#uG&(i^mv~?tNbKG08WE=J{$&=);!Wi+S|g{kM4O0uX$)pU%Zm@e zt0Q;}R;N?w+mZ}AaUQ>Y(`r4`WYT4JBj+}bvWYc|C83fzK`+1H{s1aKgM7abJG3Zd9Mv>9NfZQl`U=rkIJtzIxz7+Z0=B2$yZ5Ayy zFN4+fJ29ABNmQ(Y0nZJ-9ee9vx|0sat$J{E+8NO-(L=C%48x#0eyYT}*vMUzN$>QL z(ex7O}(O85au>Ty#l`k%3s1~_*S z{?l(p`0SL|Sni?#!ku4PlTq-!1yrN^ldhx-@;tMkcl-Up_LmI%oexKyHlJVzk0dU9 z<^0e=LwA-cP0E^qZ89s`f`XYQ*@^+qgAVlYu}F9${_mKdKh4j6Uqt2@JRNqja`$e1 z<~gyJZeEh8h!Z7mtjcQWBTGQNA))@Q8iPx5N`8IMC?kaLoEUXs9%ie4?sOX$-Z{x~ zh?)XQ-`B|H&7E=yEju*w-ukG0E4M3Dp@w3S#9HFF z1ab(=V>)11n5%(s-c}BW0k-YQRrV*98o7x$o|G2xZX9ulfdj9@l@adWP_-0SmIV|o z7YKUqqusHYrK4LMst0@;6ZSm`MTZ+ujn3vzWh`;LMM93YBW7C#$HHfNs`2px&tXcK zk^vTuGV4M}%3W0W`T5FsW3vo3qRqY<+r}3Ib@bRKy(fg&2>XZBtT>@Ol=$zn9!Mxu zNx1eoNGQ$`W4RcP6927jE*9|&6U%1zUpGjb4~FaPB*gP5j=Txv_<8)sTX0@X6<`*e zwmP1Uzq^g%Gs(p1S-sl4s>F;%0jon+=6+YvKhP?}ta4$Mv?st~YPR;qg4(HXta#M! zcXuAVQE0rr%EuNmBF3P)Zrv>;C+cPJlNS$KhC$towTmf(O!|+gw9r}vgSjk8#a=@- zanywdzr=2idDEdT?65RcAQ$bOcRm@Mz{`s^iRjK-hQcp&^KlfuRjzcIrBiQv<{!cD zR{(wB?-QP5E-g0Yv69{X@}-(|T85R%0iltpV1-4bDIS{VcRJ1I0x2A#)7L118f59F zI5Fx0#xd7Dt`NIKoVHaQKaH)96c2G!zr(2ZEI2+yRMKr(>cCEqOr{tGuelRep`Z|U z`{rpBUbp!H*(So3T|P=}y$MP@i;6&92j}5bw@oXlOhlv~ zJ`Be&Cz7mGp3|g{si+0+u3j!b5m{Yk_p?mKna#NEM4@%{8eIbQ*>{I1d7KxfBE6;4JVKVEYKL*?^IelZZSfC5J_vsA zX1_kS+gnz%P-yOqF>X>e!b`IZ47;{!2W)sw)GzH!khEklkQLwOnSo{vY>CFFnvw&9 z(nETsU`O&m4aaUn*UF)D!sMGO;MtC_1Qh$&08+{*W(g%(MSmPPqcszrZZKS&0N(NK zW_#FKp&@rKhPSX_#eA*zCnR@Xq;RdM8EuZa>;%@DE_vKY z;R| z(8j*1phI9l*@%GC-OoOWup&+D1}k20ZowEX`c_ZQhW3Ti6$qzKMbW~=!90XCgy0|5 zxg_IN#u{e!$o%05hIde)tn{dQsBv5Sl36M?F7IubJts*;|2Ys5o?`R|_SC|!`q@g| zZh=al*9y3j=HKu8*J0cgU^;F*`T4eyTh@*73%koN+1-|AdqfAp$jb2i%$S#)5n`X3 zaq9&t~>XG4?Vvsn=ht^sK3bPIy_|9RmO5TSUu}6*yD0JLY|B2CS zweFhMkymRO421pQQrGZKZphU~8BMuKfcfD;?;1q8FG~>)R(?@s&a8J4)JJ%PdSNq=#I06FyQOPtp`>i^pr?MfU(o@U zC)YC!X9IzK?gTa3XLt)uim-r_pe#r4)(dn_6V%gO%Z{*li_E zRWC&K0R)Zr^u4lmO;>;$#QnUJtR2SuN?vXthLiI}YslBJVaui)KbZa>*0ZCxqil>H z_#dL77@g|9YwFL3D7j?(v(;G_M6;;b#ASKi)nOL9l&M$i|JY3ll1Q{O?w7sbdT?SV zSFiQZwyL|3LhO7=h^PX+cI@~;Bp4F~^o@S^4K#1fX>stZJd{FT1Hu|crG$XaKFwN> z^)P1AWqZ|>&5^l!C4v>}Ork8`y(qVLcCcKC)p+EG(BRjN@P_Arti#>71%tmK)=g=G zp0-Q8;&@0cl_^wrQWcok*L^-N--Di>T(t0qjK<8~WY|-J&h?uqu~prtg$3a4<1L39 zaYu;HNJ*vl-AR+8usCh>G5h@g7}_{|Uho0T$k!aaPW8&$@oMV+UQifjpvx>Ie~_lt z@4%JfKUAd@l0fUNt*b0hiuC?$1kdZ~Uy!&AQBI$ye1E-%ZG=Zc2A-Q08>taxk-v&_ zN;zhXMsS~)7ZJru7tN!I4~-|@1FxFs9fkZi>_~j&;2d?5>H*t~gwF(vYidg# z8}r54NEjrz23uJpq6bddE?;8CjAYNwzN!_tOMoUu+(QzZ?uMP!{=7|s%p|UJBkHme zt%yd~BAWZ^8sIurnN8yK8@I)L!4%%9X!7mG`{bCf(gwr7Dr!e4i1F~}@ffd6zUjKS z2c3fVjEav?V^^q2>`7|3NsOI&tJjn_l(JrNa?SP$!!*gxtnfY!7q>+;h-|_Fvh92B zjV>lK^hOVaVX9-KdY$@p5NBAmZu#QNrR)aM7rcWIKV zeiGUhEbi+AhgFwNe4xiF*iaG%-{9xqk03%yc(}QqbJ9W^W>`AG`o(6IFG>8KBxGzs z#6*76Jn|xOMD(sdD$MP`>SFmGz3y%i3l3nqk?A%*;Bg$!yRVS6SPLM=`9Eqk@}p7m zJSDxgGHRuji9ftR2{h&-3;S!w(?yVZzhL#kjXfCV{AhzQ*kOc`J&vfmSY1SAm3|Ba zmdW~VuBqrkNR<6(D}j3KngEN)EPWe=sa|UR0))Q7dpd}3KdZYG zf~PD_&8k>e1(_@8b_Ni6#E2UfhhN84@cK^DyjKUmA!#k`s@gln5k=s05wFIOOJq#s zFkgSp-SSrBh=rYPB6wD$+~xiXgD*?W=_7MqKJo?v?_;e>O#kS!wF4hx9{i4LyvCW& z0!)}SrqqPuu20oepW}eSAG>_34>_q}DSglGMN$gvz#imFaA)oqGls?1cl=qR8K!*| zB_zZw7nMuPKWiX(u|3uE{`#wvzl_NkV?GsrWDOwwD}cCFX0!s7}uD#hWi zQJyExu#R?M2_m#clf$hzIyt4j%16voOXT10?R>z5vH~RcU;!$n;&4T}<1YQ=n0ym5 zwwfj1dg$bFg4EMIV|5H4e3|A#Op4%gJFpCSoEd??7Q%U(JKWZ6T|!u#w9SWcv9-zR z=XsFE@#s8_F!!`F%>Ijv)OB$GAl}`>3`bm=>r1oVLBdGUq?Ul0C-S*TvGwj{K8?sc z$iRp}xpE_8f*07hmFgc*~BIpWtj_hFW=Zwfk!(&!R@?7C31g@##h|Iq7BAxDz ze?Wmscsu07@ti8P1M544eSfe260i(9Y0Ycl12#^Lk%iyiEki;041vF;{E25o#+GbP zoZAR56zBjRyx^{dj;!`dlHj$M!6E+Wz~Sw+H>QC`16n2fY~q=LRIz{Z-C8<%%kH)m z!i~uswj}Gy*G3Q&p&{H9dQ~w1-Bat1e&i5`<3a7=yZOYJXAd&Aj3YM?s~D8#_M!ihtHpYm1C71x-h8~3K^l{n39E`Aa6@?Cw5tfN zfDD$|NKsNhggTzM1o;xU@4vTX8!XP7V-UH~X)~_p@(9EcWv6nl<>p|i;%=Ep%{4AQ ztqE3M&w&cJU_z_~lR`=%{Wyfuu-G}@eE)i4A@~1>L-=lR~-{GFnD-J)h(T&GBYy1*04-#TsgBDs42d>!oIs%Z4ZSsX7o8H%s z(u?HD9H~&s8~WV2fEUSPYY&D{#0qyfT`OR- zkxH^$vFu10+*mu{!yYVy;wkX%Xi5T82hps{dtU;Ly}?BRJ?NScMAXBHlYf)3+j7OF z!7S-Zs&tYB)j%36O$h4RL}iPIKrFE5f_y#D_uS>`xZj%BwUeJfeAyA zc$Gu95t2J)^jM2g$TotPtHO?~!us~j1A`-usNe^SgD@G}eI{dC=oQLS9&<@4%@_ra zB_zJlh3wmx`NPFmX@Ml$#t^QCY17<+A6TlzrH=d$vf(ylY|7!V-FEW=CyqJzh6oI~ zJkd}b$6Y*|=W_|u7RXk)rO%m<9BL;oPYpMr3Mfv`>I3mi6BQxmwa^#WMD3g`GK>2?u zcov6(1aBhseYrd;&l1)4>aj&9VR_&R{WCq)gDR^&_>QD@p}4u^a| z&2RWfWe~WZ2><=z{R?G9XcpX{lzvTCPTz<_{n)A31Fx4NL0Htl(^2)%#S2_>*(X;m z4yV1cIcCrTP~saz9ev&8F^%ArBX>JdPxuV83zuk>z+HA5WYLN6Q3{#sT0nVl z7D2+e-{$K1nGR4=K=-pkTIU7sg`h#NPWXU=0yw&oXf%O`{S2LAM*n4dw7VfF6(d@c zh9w`OXDXe5%?H{Ti6h@%REn)<2x}^^`|;FUc;~4~`zV=A;)s$Nx@d?)Lol#U2#)0) zZ5w0vl!~o4Zcmm#G{t2@*`m3xb0A5}$i$N4tS{=4L$gd`^i~;j&W(R zgYaej$$vq8R-CX;=D)J4NB3 zQRdJZo1x4U0;&{iI8;yU+*Jd3Y9Lw%0=6;C_w99|gdO&M3&;YX3yiPmDFs%ziU-bu z6uSA6GXGkv(_-~|Zd9LPIH8}SXQMfdz?MOZ9{3GUQD?Tu*zyQMKO-_FU1$meKX3B^ zFPlW6N9ghsxCo$FPdcOqH5bVm| z=>#axlCFYIv0=9L1Qiy*&tCafg_GMbMaIEDB!DU3?`lWTXI?~;uu#P z5h?27oqfB>SvFvTU8eR|rX3ijnk&5ZbaF+hxU_^vyNM4dabj3$+fj5i2ZCTrbBLP8 zc6*=}p2GfUF^H=JpaYn0fBIRB7DM1PLK3Zosd1nE!BRryg`e6Bphf{!1-EV_+ZhTv z__BTXBvnk>2R0e)I(Vb&a77?4ZC+8IjEz#?oLiZ|GPcEv#Qtc9*JvE&V#JXDuFv!~z3sq3Sp2TVGt@H@3vJB zZ3_1DpkT^G#g!Oi#^f3qo3|p@w+)e2USI)PFEQ2r5wuM13vg1JlZ^T&_EEn&I;7MH zf9^LU75)^FB8Y%i6`?|8LnjHr90+iRURsJ{*zS8~u0V}t=|znx(i!Kgp9I+*9fP!Bzd@)c@Kb?(H zV8wutq@FxPdGoR15zrYIq%V~gyjWNb=Z2Ow~PhrGguOs`2DrUvQy%4=K zSD+QEFYPt7)aw9_RmuB($)9WWfyc|>l!Nkjo)^gNXN&P8jACOmV$**mK{LGkP>?#$ zjGGhd3SP#LA(}6aNZ4h`AgTTLNfTyc-)RuM)!s&2#K7+`tC~esB_S6Gw9&%M*^}42 z1V5U|B(t)rG!TDZCumoZlV|a?!4~Vb1D6=Szm!3e*d6xfK$Qvb+;}1!ql>)24n9E? z_5lTn0I1li9`r*W=p+_~d*Q;7vDLF%oxS9uPN~gJbTOqu_<6F&(U*%U&3WE@=@s-yA z0Rlj1h4vA5+_TF<(-$k^1l1uV&7S+|x>jiVFdK8*6VR3yp~Ufb8&NOCYXUA-dzChf-)#|DbR<#u2er5cd3a%7e;yL_)EFz|$=w)GBHzI47Re zr|UER4x?r-RPned{Ev(c`+WqPjO~JZ5NbCptiJ99VINyLfO{#mVgW~;0CWjS|9Qv% zR^Fj)fK{+N9_oz*bGeE6Wc2PzoeVIK(T6q&*Nw^8w8s>56hO5GSO7J%qMkm?J7^mi z+Tqp~dZVtG2UQw2{g+u{&PC4@)9|0~G-Wv?M045FC z6A$ggnhR(=XuR71Wp+{5EO-+O;Q-`D%~dcHq* zp00S$A1EmZhv9EyT=6`rwTd8@aCacpq7>{#k~b72!oAH#WkN<4b4(Dgp(-8_xCl{} zDOI8DXJ|aEsI$7->Mu}4iIt*ERNO%j6ShaY7{b@XCQXc>U!lr$pOim9ut_6p)|2Bq*X&i!>q7 z#)?{QsUA#&5w4htmD`}kYEaJ-swV|Q-8-%(L`X^dd` z`=@*c0<}aix;~zJ91pfc0b;B~<6szkIwSL^n}PT-bgh>OjiJZqZ30^G+`0L%vV9bN zxh%ikTXrw&lL`ciXUfu+uC~gq>KkHX?JZS_Y+Dy7=PoT5QafFFOn()Epn`add%5Ca zrkr|=rjh*s5Iym>^4r~OdZ`yg%0zX)XmtB%Bsd=4;gsLL*7();7VJtINq6Ty*pipK z3o>)=qq!@99$y=_^)7W+p^|yea>leK@9{;3w(E`XI)tWqEI;bWO zPJ4Onay;mgvPB(JD=X^Y7F1SVwDT;&UsAcnWcV)bmJsZNC0upYx>%^Mweh)Nehj;^ z=};-L4w3)ds~HHMLKAix<1VSnt`wkA7=QCr5FiUU*J)w1eY|c|GT35geCTZa#wc1c zmvohWJ<|W|Pc>omzY4SJw=PO9^AX}Db?=-Mp}VA&>u{mTjrA^uM2e4!WEg+SAAg*RSwrjr}t3{JN3Dw4K&pFkxhM$f?e zOUrH%(3e+KY*fZk!0&n{>=v=Vwa~jpo7-sYdSX^ZN8Lo@miuUJACF zoTL$>`}X@%VDvpw7tnZ$>=WNh)hDsLTtrhv#fX(r-$ZdoD~T$(trp|aWC*mE0Azxu z2iwn+zVj<00_TJ=4!hV=Z9(9=OB@Qi>!SwP@5w%9m2BZYUpaC8XS?%JatxiMIN;M~ z2^VClgfB=T6nS`U&CVL|@KrR3yh(#rx4JsIB+fm}Cl7F<>GJ!(0jH8+vA6H+7Qcqc zcr4#lqswCsP@NEm{wp(Qxrdg)ZwaG|kMtEW8OcDzs~l%=hc;P7$BZltH4*|-IW)jo zD7~?Bc)#?{E=_rUW<=V|$rX>jpzDV`FAj^Bqttp#{fo1qD-15u^_V&>YIDi&0R$SH z%dG!cJ>e;X+og`&FaDr=I%;?@r8!4}CVW}?0|JK9_A{bsxj_!CJ$HpbUxRevSNraG z+5Z~^DyU1Px{=V)4zQMJhJJjt#pQjPA0l!kcM@&O$ufknDQzc*&uG4Dq46Th7w!<~ z_=#l01g_xEKOpBv(Y6}D2MRd;Emp_ixfFw@MBraDinR4?I>1h}vjw00r?yAcUbggb zg!T2(0WdX2H5!4aReh7qU&gp)rmc``7+1Cs20NC-xth+v<=yr&^P z4RYg)>Zlq;Bufj-;xy^0pAk+JsZ81EaU*S^LHL=nL@jpk&US zh|GHtx3MdnORj$>nE)l|ctsJAnRn#iidPtb`NFpoJD*}Qe5qDI|3(d@gLn<|3-bxT zKIht$@fn z^2EGs9pHWq^0K$j9cHu7IuUJb0-?X*G9?6Ev;I^?tzI_>bSwaxMZx%Vu5F9p6rnDl zn%@cZCrC>Sj@V#g0q=jRB*P0Zn!OJ*4PV>GS%qH!Ui_(9#u4PoZ+kQYTwm+WzWshB zhctK$-Oxb`)_rk>3PQs6T_YNE2hpo@XVSB;fPk*;V2URx$$T!X5+g$5EB{7*4Ap!B zvZGymVGz%BYHc)*U_Ml_c?4`F!9E_s|Do?L|5B7cD`kWxF-rF}$g(yDSnGnuYK;$m zY&clNRDXq95J=}2stXq>N<=b+AJUWhSp9f$vK75n3!cl6VEbcTC zmM77L&coD5{?^py&r^~r=GvI*h)qQ#C$w=2bX`Z5>hb1$fhC4+|5#h~(x0|~#SsOS zQrDMm8RICk4NWd%22&O3PfsT0YqIt-wpZH$7Nm2|2v^r7lMmmE-B)}41e5VI>KcUe z!IdyqJGV#2f;US7D@jeWO6TL!9CIJl7Kxh;G>JXjdO8w^rE1vW)N!r}zwhs>$8x+( zjyNqLu*@RCqMWo+xz^D5W;+6A^2Rd@pyLFL^JF)}>Ia6haOUW2^J$-(fKsWxShWW;u(BFC!5f!? z1S!V8nZ;2Ut|^ECO;D}^K9uVrS&gjP=``rOvD6n1F8GmF`waT(+%pQ&4edDqW zuX-lYwI`hU7e?)WKtM)Q{)3+J+9IeqAB|Q;BnYabXcU^^W13Rc^nds)I4vY}uI!KP zSkz~}Gg=$fvbi9JxF(eQml()(<~5*5r`TnF1>~L+KiH7fdk#`|KW);FgX$ z7kt5y$Jg-ZO^2ZOcpG*D%PXKi`1|1sdk*@ZMfz_ue&%RnUm=?$s+M+0e|QbBJQ#nh zmhjf$*tQ&oeYJ@06{pP30aymsVuqBvTBOhMz$SEd1q_s=r|<{|G+x_1H4$;vFEz5R zqs)?WFO?!Ba8TW*h`VwiA!LATNh?BVHAA-Wv+A5M_cuPrHVUd)Z7t&B3*eeeRZiR7}uqAevFS1J0@`Vb3nZ zyrY0LyX!r~HHIz>%_cJDYaZuYisUQFv6$4m{Z(r;OhsyLJya&xL!flQI$tM;MgG~I z`M5T3hADN=yYL!599Y_|uW+d8R2Hazi*F%9RBxvyY<%eAz>A_wlM zpV_h1YnMIxi5oadC3Tyq?ZgQH*X$5pcht*&0cPgR@lW$rtVaoG7itN79aYR2*hGzQ zP|QsEM<7CUjWym5J6gF#4dje!w#}4R{%{h_1yp?Xk>KaaWQwh~XnX+diiOLYXS3f! z)P8_T$bh|0fJC*Sa$@TYnfLpdb1LfNg`&y>wi(v-^i`Ox(XdMZP^Mfr% zxS})TL1x4T5sTag>+|aOf!l*m-Eug+UX=+SP-!+RdDk^4bI@v6Jj2_p4#*ll3$s;? z27?1L&76+98wr6J_U-O{4WRc%GUBXv`M2{sNXf^;J!@_EKK;u9cQ`$Anuq^YANBU& zKS=<6ogBAahN?q35@nd{Wo~L(iRg|KbcJgCOs>zW_AykN)t6`;+`(_8mG+-M%&rZni?DNk{V7q?$-CnID-3 z$~bl_7O=3<@W2St7v~GCew`$@`9T$5zm!;df0|7r;U6W{8`!M{)Fn@s`eCapUVn^R zNu^$@CI?R2`!e7SzbFxChFiCyAzdmfmfU_y)!&Xu0lBmyG4WF~#fF?b!D%I%Dc87~ z1yU8oROV%b6~C`;Z7IX6>X&rnXT0PU!=Zb4?ckf(a~He{b%F~XEk&O;v)MY|o7x!k#U(w>Z!m^*YOe$7vah#X{A$nZs5C`TQm{nZ8-S-_GZJel3W??ZOgZeJW z#9tijfqJPlfgfW4GpSj*vgzK!wLjo*L|AYE`I zaJ4?X)E4a`%PgRu`d#fc00`7DtjNq5QtnDbfX4J>ar`j|Nqb_4jOl&KQ9bQ2m2*am z))6&1PJ;7O13EF$>o9Et-uV686eVzWfvtdMt2p(&c@h3yV(dN?e;cbC!LK~H&V9XvFp52oC#=N)r#;W&{*tc)Dh=AS_dXjp zP>eS^A!VJQsZl8J7&{w9uPI*vh?Zrw9c#%rx3vbE#Clsy11~!TKDLS{d`;cW zvMaJ}$f@R+*{=Byh^sxOMBt^T_EUXu_QI^iHCY|Vk9nm)l72JmVo{9Z&^ra!Gt~{< z-t1C`G#SV5=spVs5y4N7pqZ>H+<9rM>P4S zCc_iz)JgYL^3h{x7ZL=Pe~+*XV59#2$lC_;BM?##MnnJwf-7?&eO{%5g9GupcWFj` zlw;~-IvmLqbK1Y>27phw&A9sZm9F}HEfjk*lAgXU>f6q`tq0aa>EoCBMJkXVrNKF4 zyxo2ANfF+*ZeW*DjojwYdT=iM6r>b=A&>=guNNP2<@^0h!{*Y@rhyV$>Sh`l=5p9D z(pd;~IN>qULZC1A=WV(jaErDmBGX)K-vh(jt=~zSXlqyjoK-zfD1aBT>gf6BD+ypW z$#p3}JhA@(Qeod$X~OH2L!3@A!a2Q|`Z(K(5d_O8mDJqzB?FdzNPWF%2Piw ziVjzdHoV!tSgrg?0a@l?$FLs$0c6Iw;(Q;lYU5BKEN5lrRhnMn21!PJh~pFhqhZP6 z3%C8WEC|5pcyTNB2R$;aS#X*{afz_1+Nfhd6L({3>lO$-g1dg?+#v!Gp=D zqOaS?qpW6d?CIkj6U_qQ3xC%RrX5f6P1pqUZ zCHbo0vuJ$+$}=7R$S?sH4Uo9rCB6LTFBE}iz%Lws0X5Q9Ot#`X%;r}_GEAHS*jts< z=-eXG1_A;ln?36HxR*C@o{xRT6W?Dn!fDgnFphr#%@kFA9io6Vx)9WYK>2NO-Ai{O zheGGXVcAKK3OM2Grm92&8ucK`M{9S|ej65Da013WrAd zRM1O;-^;$42xjwfb=;ycm!X7gKNn^$@O?=(&8`BsjE7;%c$* zM%QVwz|??mq?@Nyt5$?|)_;}s_1npA0Te4cj&$*-~&M{H^~^M={gYQtWwYZx zHDYK}b5urgWr8Gv??w1S%kV3|B%g`bjmuV?QEQ=pw0Ba)f^x|2q86mxR>wlqjLF#U zGh2uUguapJFH^y$?VJnGESd3h=aq)iwIQZUXkaxv$=5CLY=_JhoSnfGPFmMi#Jt&aG!W=q4d@IYu9J>>!?u2%5a l3hqzVZuu)tvNeP@vd4%%jN4lJuA14Cg?b249QVqtS>b6;k4Y-}!YVRCSCZ)yPTy;quL$#JFo zo}-8ftvM(AakUD=Omb;A9&$up&x zbBitZno9chGsN)q^)r5Qud$X;!^pMO(d;K7>vvi&HOEnA%qh%L_wRhA&&(r-+*>HQ z+kXbXlk6wu)4~X`XZyEjo2A{)sh<(;-)W)uY=3u-dH!1bl-}ALwMP5ZlqXLRoBgDI zTB|Mh+*7rW8(DuX>#2L{)&BX6Da6@xOo;S;01gB)k8 zv83Kgd!NI1uVK!xUPIi^_OpHLi`J3LthV0v^2Yf||Fk+s7|EV_$*{?``xF&RVmg(SA~6v$tBxsP6j|dkrDYT5R!VujQ?% zElsH{>FwFGM7P#q)@Xk(<(%vrbZ zc1+FoW^OeXp{2qOEA2JnUp^x01BhTDS7C*J8V%w3(uP%It6V z+B&CD`n2C|b`;L8`Z+({UX8sg9hBL6JHKP=mS?S{@Nu?z);En>Yx`5StL$?IZ=$&G z)9e@Qr_J7WvKK#gJg~oJFU+3FzL9-KwZqNtl=V(~V@d6W+XL2m_fG!U!5y*L$+PoV z=7|UF>kz6P?=fTCl~jFFNCkE;F-r?Pb=$ zOUUodjbcZ&j&5=LjTQ-*fox;H+yA~V>g4|WY$;5>npml`Jv8VT~lp8u?Yh4N{8JyjyoDC-IICoNP& z`K;V@aGw*z6pw8XouEEw61 zG3?Z5i?FsFCtQw?MHPE&+X}^=pw4@^hi&ZE*Z^^|>sC-)pOb7;2YWU`d9+yaHk|z% z_GW5nwu!23t@Asb%fz-q)_?bOx1#-y{Q-h*vB;F-It(XV+Q(Xmvv)+SDElXTAB$~) zzrq`}r3mNySirW+!ggrm*X+#QplH{#ElCR9?jSoqGq}TG(bfKAr_DB^E$$82cC_sL z*n@Lp+JldK>@8SX{Id18%Z4+S?!NAJq1vlfXtR~e$t4w*GT1J&-ECXPcFladw-;iV zZFbwIb%(K}-J5OK5~R9aG4^`%dkeNLxGRX4_E~rD*gNGix20oIZ86A4UVzJl-C)aXA4it*R$IpRT_Zp(@D!c2* z0WANkH+!)c6l{aoiL_G}xhGFXIzQx=7WeH-TD&Z}?X{%#)H8?Fi#^1sF(@C@4U{Z< zu{dV&*w(oavTo?J8{58%{rmb2+lw!=YPNrE5Ab{TrQ=-#J3!ok_6-M@X1iI1y*kS( zY*DgB47&t-y)VdeV%zB?aQ0u89yE?Cm#uXSQ){@4E0`Keqq0gSng7mhQHrW6xNM#AOoWxFOa;dFEEI=o0PhmEeM}ZFfrzYz?#u zxvhMV&#`zDiLLh1ZBxF_vAtuj)Q-K~tHHupi0`1<@>}4s$F{w1@Aj;<{lqFCOHHOl z7~8%jh4*YR*-Nz#w=1gc;Jd?^Eq>$}S~TO-54U^m1MEA_&YR0`t;q*d;I-P#XqRoj zzf(R`Qnu4rzh+>jY;~d^@Do&R4zF zj3pwSteZ_zE%SY8jje(GHT&mOI+kJS3Ji5!8J%!se}UX{DwEgeR6fVvn0={9fLYn) z&LQoRv4xD>Gxiway#>oi?b!$gmL8Ni{rf50f7vQAJFMe`SX)usptcvu9=mNI|4!{s z5f*vrd{($Yk;72P?nyfAttv-RNFsx?-DKM!vhiba2gph$dth5uTWWia{cWp4$jxNR zIa?)kBX;3%+d=J?k=ZeB_ZGHeGA$yrH6nYe)$0D5onRGhWZr$;C589TSVhyga)*Eu!aszYq7B{fo9~Y&+T=-OlDAhqMgD$|mj^JFVlU z^4!99tnKUADY5G=-ZI1fngusI1-1=1{3j$SfI=|! zdr)n4Y){*%vtwj`tF?Qh+V`;)n|#keB60(dZR~1kXJr{IHd(~DrK1HAUi3(+O>Dot z&}W67T}h<#saPf-;tNULGD|D`tL0Djg-*Ufp+iNVxPQ1c?ESt_PKsznUE|bQjpFhR zOC5u1QPTgeAioPldtn?!%U&W`nacwL$%KX2L|3GY^Vb5=(y9Wx7KRn%mc^dSgqp>| zJ^_jPfU?+SeQXhXE>4zR>^F;@Jb|5HyBFvuwb0+*u|$2?wM6iGZ7Fv9~H*QA?t#x7NRfv1|`%vrSJOj|_awA^snKV;$&S~bhg z?Z|998_MoFi(0M*vuxAuo=zB{kJI0?O%8pdi(%nW{TKg)*c`FGlP~_8kVGU@!Ss1tfZKd7~m-g2z#jyOaa;Mwl)!PKL%-0IM zLUSY0oLXzJgQESC#cay}>;kauGhZ3V=U2rm`{(s_4kNcPi5&-+EWEr&u+OIVWZ9r? zy`6WSax!;Hw8gz)nR3(qUsR7ktwSH=13PN69WB)kHz-;KVQG1!2{$Z|OqX5Sr_+HV znQaP~*23MR$)xMgkN3XC+^2J0DK4rzfj z^3vwCe`b-Y-S@-M3bv{3$lL8hv+`_t%e{-;=Jx-(nke&j0r?zTFuNWtQ6#mQz7tAg z#p-P<0;0QS$n9v24Z4wbFV(j?me&NU6i9pQDzo3dLD532?e;`~vjwuJzd?~;l`O3( z#3S2y&3BBNU5@sBEW@po<2NYMFJx!fc_S&;=FoqJRT*}8?CC1K$g;Yct0`kgkrLjv z7RP>t%l!nj!L6c>#EkqdI;%{qvY;VAZec;Gzh|>#LRpRdnl0Q7JmiCP2Z^TC@vXQJ zo9H!IHf;BZ?S^ne5-ltH919_tjgpEBFRZ17okFXC-uwAUv7F1&mq<=XGvMVyyzNT- zrP{UYWVjZO1w;!FR_|J%$o-uX3)mKmBWstf+9+z4>`6kWlW5OiU*B#B-zcbTSxay2 zqP5&7p7XO>FM(!7As@4VzfUmL88r@L2^reYRpNnh0#``YE@E&9hmOL~2P5Vo_;LAAYQWU_~-brfT|GfgR|x1GD&yPlC5a5 zSYX>qTcxD-HXQx5%=E!>i<$F1K%K_7ZRcVet`oXl7clEmw~NDyDcjnoSwe5jZgYFn zcI<3px9P?lRtMXABj?R*x)b_z7#M1irP*Pw?ewGVuO(UtBsH0Cu{u)>TF8>@pINkI z24;V^-!Nu>&GI91+d8MMT#WAttY+#o*J)hVoeQlXQb?_A|2HeSTh94Co8?*dxR$Cj zsItTVf}$m2mOYRf&@m}@MJ-ra>YBU#x1~t+9Y=~ii~7t)Y*_>U%G)6XV>|j*o>E|U z*M71RLkY2kcspD5j+CtEpOpKS)irj|>g=w=U4kZE_8JN?IK16kNNh<;Z8_WOp6>G5 zGIG1jlidxxsXK-uU*`na7M{e@@Tx%DA#_Uut%yW#-n9cPLssXXtmBmFWuKBji;X_9 zWia{f9s6sVhsI%7RJD)0)l4C~v=?O6969+ccZV>(vlnMuy;GW{ao*`qW#!~ecGEB% zPPffP`Al|TJKBzdtwnxsu5zFPNf#rRl@1aVS-8TDO{ajq@bq;$gQQMrU`H$#*Lt_x znfsFKg#4wxjcw05=~Y!yp?;HMrgVv}GgVfnLcOi(w6nfUchdGsIQNX@8@34;J`k7f zCu`KRQeRsbiwS(IK?FF#msU0NC+)gG^6A2uB@&hdSXia)V0rirFP0c^C)jmsKP4-B zMRKQu?Q`u+ zS&(U@8`bqufw?u8WdoAU+ z+Md8`zvBuw%dMjYFeZqWQBQXT(qt=i!PvyR-?@TfXVF4u>T2h*hPOk&U|7tv^N@Pn zzq58PYY8lXegFfH^R|mF`@-m*+qu2M+TM?qXVmbvO+ba*k&->NB{PZbX0&7EL7 z+rS)1Jn6~4;Mb2zbg^&GygY>0J@--`)tj3f zaVOhrwG5oD(Y%?61rf3aLKWFye}%RE#Qu6G#d}kxVmIL%3)nHSbd<4# zg*|W~zK=41TG*SmC}Nqr>oQs5KuT!UwLM3zZg@tTrgX!e%QCq)`(=K>g~}nZP5g@F zLGvFx2pAsQtKA(sGWp0ASk(ND?``w_7;W-y`kUT%uG0tZiY#r0(Kx066c6-Nx>3W zptd5>a)=z9W* zHZQCuQ{k@h>Kd!<;S2}PO7sdoq4s#@#g;#TZn8_Jsrj9z3uDQSVCIn8>rb!b=C&8& zB!gNTxlPxznjBEOFd0~$X89Vl*qgDq4CsTP)%NNr`;QS^lKmwRt}VXrW9fS*R@u%4 zk#e(33szQPfdedbit{`6m5hgr)INhw@&)(+0RzBlXWPPpg(V%~uo8psav?P zOw0~Yd}o^%J*_rNEP9A1t@)xlqu{n>==PG*1G`zkwjT_(Vi#`h1}lpPv>PlBu-&CD z^Q#y@6a)Z=b`OkQ8?A9yr6S0d2SxfeZ*?rhQt#6#Nk9$q9j~?zwJZgb9mWLa;AHZ4 zP78m|?w1ZMCY%rpn%A;jdp5hIIjJeUeXv?gme4RAj%r!0o+2|@D=zH*vFKv?TXvm~ z!qKHgkQfTo6A&zrS{_hn_EK<;SADauRZ`yETiX;G4_+a7H7Z7ZRy*O1V5 zQ1>t%%D)ZJc2-EFnrnekYtuUu(m+`^h9KP!2&tcGTVUg}u4R;Kx1xd`XjNXZrY zY;m|tChbUSkhe*j<`0ebD0mUqLbkvIl8KB9^wB90?KJ@F5I(}%r_J={G>c!=Nkv2 zEf{uSpkomxyIx33i_Bs7|uAvEE!?S8e9PD$LaBw2k*{wxvWa;GSj9`2w6> zFx1xI@qsVaPFuQgXNu;Uy zz>=J&CKqDNL^%oeFWoM>U5<9s+sE6#-$?5Fd#6@qSeSs|Kpq=zW@RCkX`^MZpo+O{ z&zl3c%nsnf2dJ>lcKzC*cg5di+pg}(_{J$(e4|G(7`VinI@lW6)~z%vz%9((#MlT% zdm`rVQ{A?B8y^}E37w_!M0oi+SlU7c4}Ojwzn@qDdbOiC?9+1@FDTkZ$ihun(#IIB zyCH+cLg*KEfbFjBdTb^6OwR_OusVj~^7mfF!Y@Y+iF)J4YM7V<@2h{?V1;b1y-+q7JbQF8kL}~;~;A{C#QT5dJ4;hP+ zN)Hd~CQr9ajDR&CY_T+yy3wV5`6WR>Y)T`Y5Hc8^%XbaNC& zS9C(G^02=d$$!sQw0wQg*JQ$ImvQSZw`-6RD1LZ?{x*VwJi*_t*~V@uZlgBIZwAq$Y$fcLwU05Vce zRua4<<@tJ~Ou5NAD>E1p^xzK=ZGUx(3P`JyZ!}=g!Xb1}iQ_ZCBU;~VNZ)I?FZWc{)g>FmD z-i-`rJqWo#X|nKYcUjn(?=JcyJ%>nQZr`TdjyUIZa1H>XXQr9?WN^UXY)1)5)1f)I znYo=%W~hN^Iu~?q*Lt>CbR_7M1WW#IP|P3~NF7Nap&8sW*Pv_^ihj!qN#tFfV<~3? zVjO9|_cw~8jbiH$FMzr~y|d7Hb9U7;Ot*;HU;ma`FF-D!mZG6^FUJAmgC}EbP93c` zm(QT3ac|ivW?boeF9}?h0Q`2Fh2r{Ym0+N07j?tM&Z$w%WXArEB{=rKZu|$Z+PO*? zCEEx2OmToV1D#=IUE4VIeYkT^%rY#Yh^^h9FiF;zw^u%xinjZL>W7CSn1>7={@t5a z@B+6Z`DaL!Z#$T-8C#J#a#7BHb35AgU=u(NfT>M;%FXN-Oxn;;KQjfoJs!TPV8(L>xlGaa0L}dZ<7W7ZVK78x%1cAGc`&U7J#ic?Ll|I$&+ph; zQ*n!zXNNeHoBi7XqHk-JghjBxQ0oMd34EL@oiQsvsW&81<5^CV=oVYnS#C%I#uEX3 z26E-nlj~GZ3Tw~{MI!@;4zOB@%eOI*vrDhNP)u_96<&6QShfolKuW-O%B#7SvmI zxMfQn#0jYt#8h!-VYRnfw)}(>;fKO(Y(OOpVqQ;v4U(;HWu|2zuEtf(tn!&*?Nr)D zP!I!}W%QwMCK!-}Z8M|7@9Cs@TK*T6zeD^bV3~f8E?v#?tg+>EW z$e;y8eDO3T3rRu~gdq0o$yGC0Kw4~o`s^R2i-)IyOU9leu=v&v!&zH?Fd6~^MIrVW z6Z|!5WF`*~3EBm08V~?dwOc-GvNr{|7@)Y{V%J3tWM*YimiB_rtgH%$DgaV^ z-k*rb#+cHw9on>ZRlZCFT1tck1jaQz)-8}JN)p(Iu>HEruwhme5`D|F?W@K2Y?&p2 zqeG*u$Mm)@F^6*n@*`ekp-6)oAWV2VM8$jPB8ev*AzIipX)j@pE-j6P%vHnlIk2-L zQD@i|;Jhp#gbsHF<(+A!&=nsyhop@{zQ<61mP0t*$3)2621=XA?S4X8vf`or&-fVi zR6u}sn@admgB!F^6TnZk>&LF!8vI&YptPW4r@I0Xe(#h)1*3klNKgv*okoT=bTBH7 zE<4I+-TFrZCEL~%2axw(sGto>)ffn5~x6m5UUCO`CcLo)uo2Wgm11D0|6C z_xG{fd$6IwIsnBe57I{RB7Ok_YZ_YVow;J)Fz8I#wVp4$MvXRr*`z`dcxZWJ=vWKxMV?CLfO+za&Iwp?Z1O7 zcnkaoK<^gGEoi%jH1WNO=PmezkL8v50>NOCFx{lMQ=5QYXB=l2#Jw55#7?Z7AxKor zbx!CLi3`z())}wumiX>A3dYo6Xr?oZ+e9{tVu@aUU<6Zq_ms;jSnd*Ov#;J|Svh32 zKcf6D2#5O08QK6DhHoV8N-q6xnn2M)Pw=VdJtnGDASDjc6bpXmm`w5-Km%Mh4AI^@ToQ5fDu%H>?ys z+lnC4z_yaHM#^zV-H)JU2UIAK9nC?1GLjfY#C?z@zT|Fe!%{-wF@SHsfSuG^rcYx# z7et(6DbXpi)s8?YsMB6{3E+ea4e$tY^BqUX{PgpBgzxwYx2(3aZFhjKGi{9PA|(hM z*FoM|2+40`(LTVvRd6SDAa41rp%(AbHk4Ji^YXp`>(E%Xib~jVyLjLGu{0hcFj#)8 zMXQsfm?W=bfi>&;oDJS)GB+5$+uwwHdRAxJ6LhI-085&$>r7a-PXJ{~5|wuqSa&Ed zl&#eJwy&paZ*&^4oYX8Z;tr$=eKa*Vya@%0a0h$#evp9x`!saMJ&XrFKiwq}jKd`n z^R^Qwh{lvX^+rgnpqNOxNvZ~A$h;kv4x|8V5kfFAy(ublC`dRA@RYU}*O2D=fm{Z> z#I~Lz*{OLOq*D_@yKPzmsVy0UaoV@(TcKmwC`k?dP)o|*jI6@Ltip5akX%@|X!wja z0jDzb^1KzsUo^udg_DQ-91EUcgF$TC1JuK$woqX?w?#u_0(5n_LkG#ylFv>Rf8ZOd zpeo=4$mBu$#&Zj=mulaV{(?|D^X5Xrw9!DxtXeAvI=zBbY67@gf&$?B1x0R0I*ydQ zo+@E+0fs$DWr=z!JD} zI){SF&{LG|gl4jD-FTm{h#5Fpf!5w%L$8E{eR8a}63sz;*gXz`HB#U{NHfX$p6Qr>nJKNn^vltf?nM%i@nhq|eW35+8&7LF?Q#Scw6XqhA_soR>L;kX07&bxW zgVTa~OLG+vDn_*N1x?)px1tMZ02`wTX1nl^AKH4SDtw0E0V%%@Kcl$8Ke4w71oXki zCQxwTaaFhWMlNiYw>`Bu5raf=e&0J3G=&_WNyPgdfF`N51w_c3Ji58hz#ci=g)wfp zo3w&LBQa-^Nw573=QSEZi$RyB-GujO+3#2kw;O4~VP=$h3tkH%0J<}%0ZZ9ab$|=* za-hCLD9-NtPxh}Dky=22#yfqEACVXW?5~R4%fZldxWNyB4**bQ)yvtWpz5+-59%DX zXLp}5iUUh*bu~;-*Fu0FX$6BF?TE5Vf3MD#jNEZb;AaMhAEeVuQB>hcwTsBt#Xwya z0ULKas2AiqG=kB%6iJT@EZ2&nW&&6fJn=<`5iadt%!}oqKCKG~mDxuHquoFQ`aVje zkB@{K)$k=sks(C!P?=rjG zP7fUGhC~1@UrOTc(1-w!h0hlMuWqRbg;+8~%WKhmnNLtl&2sGo`csxCzFr@&vBp?0 zNw#B2u5Iv92jMfi=(4c;-xI*Fu3**x!tK&=r2&>QKzT(?%APUK_fF|d*(GRSzf%pm z0TqLCsS8ac7oKFuL~g7v$|B^uamO6Peu83&y32s%9Nw;>Ny5QLGi!@)tTz{cufiy| zuhf>V%~95|vH+Dh#iW&CZ%hMI_p#0*J+txt+SInCi&5w6>@IB|uz7=xLREXiOZ*6S z%Gk5eG;5BI%MECW@4D-ohm9pB$W|@Tx2*N9H8XR;Mp$Zwwdn$HDxxw|7&O~n!{K5< zZ!nvwqKny`<$gk2eX8XN2}Iv#w`*wngPwyTWT9g1gVj?c#!~{4jrjYle;|u@ZWLCn z-Wy0692k&}0u@~b-vtDn+{c2Tj^w&BmF%^sB?JG-^?0(-E6jZpdT`-=4#QFo8$Dr^ zY|c-z;73WL#Y$uG7Do))xqHDMqh$BOO9v(h!Z&m9a)>9trE6BvX|lQvmaOIU=a{q) zxe;t-dYcHO+~AuCqU2~<3Kvh#O4=llXYJeAt>rp;0LvK$OQX{EN%nn63i?F*f@t1c zQ(l5y1rQu1MRbq?3A6!YCBvR)!%1(Z3Nrx6pSgzXu;`ewM@f1{yuw|m7};;Ygdv69 z#rOfnGU}s?0>ZSoV;_Ngi0;IIkAUMDi*FDr)gBAc`&59-z#h8kor|wLj8?YD4I)qDlPhba_C{8~FCes1Z8Caut=9G=u-5pU&8e!`ks@$3%QVgI( zjeLGJSdQ|liakp_5n6iOXZ1*diVoxzDueU$Y*wL4nv#f3E9=oOB-d8~h|xtr-PB#_ zQ5<0u{A$d=QuYV+7~4X4cH}; zRb2VZDV+eCP_s+XbsM32PGSKNvEJP*o9yb7I)Xb1x;7B)LY6-Er;QP5u`oStuL&t}g>j!3Vqe^UxdOlC5FDxq1_{P#)1 z{G-iU7jXH6F;cXk3?C@2mt(LUK!%AP5A2EaY!sqs6lnfIF626{j1VHa7YrENMG0!q z0&lTL5uNkpF{6BhfCn)f%*A-~$cbDln**E#I8&$XQ|g*wPok#P!Y))m@`GR(G$VI| z7CTgS&mvG#K!!TD4eGnpph&3pHE>(mrApa>iU=^^94`hy0;`j58u$&e1eb3NU=s;2 zy5-G}`#h27>aZ&WmpOceuSHS?|2hGh5oSH5GSgy$sJnCr-aD;2QV?Dex``ek2ckPm zr41$G?B3~UVn5o)payq~R}=z(tdUu$qB{%_?JC6CD8tlRb&M7ZD}}Pau8zUz{;W=t z+AvT!S~ZrcIrS%WEdWlS{$WS^rZw5}CxA*MF!rKi_4_*W+R75>s;`SwuL)Sf(v>vFMnSJ9m`D~= zc4uOFbh)>EQ$9GsKbzrVsux?07;DEX0%^UKFjWTWGAQg!@biool2it%Vu$4DaxMx} zdujqjw6NfMFKGO-OD$4zO*))n5Fv|BIdsR@w?p34ZUA&zr3jkC`y4vUst%cp)ZvPj zC{jGI30sJoPk>YCqX(KK_}liK(N=B;f4I?Avv1t4f*bQQAqN-!DT%nThQu1`YZNC~z_dXbSJ)PJXg4Oj z_JRgEp8Y!xUc(8YCot6c&c3;f6dBJT;UnKuOjM$l$dfnB6x^|ArbW9M#q5~p(+daC zW`%*MI1%-*cj&;J03fl{oJjJ9GxV?-z#s?R>CL=nWBLS;l{_)W$4REaj=BRaxPSo1 z-Bpa$D(Ma?1jsr0U6mQCSv>FRY`&gil(=>WjtEP$pC@2IRk|b-?Kefo zM4uC^P(BI(*zLcmB=Q}n3`zX)SOBJi(=fGkqW~8MGg~0cIZ^`c!8(+!YaL!iHv~_Q zlttoQxz7VnMe3S9G?%7Xi2(s8qqfJ+_1uQ5~xV1;BA@Nkh7l}EI{oHZ1Ai*ZIEk}#) z;s-g7%0LphRIaqQ2qe5H@l@d#-rZDyzqU#`3Q0aL5I{RGh&+H;EgH-XWA@16z|eCQ$%@P04UJ<<3i5WF&fM;6W2+73{4f|l6AA| zgll--@M8B_7x$v7)w5x?d&9xv>xfZ;Y4%WKFnDx->llJrBvI@kRHPoTu72+vG z>EDvY!@jd;nBfZ2!EolaF&SoF8U6bSQjVvQP$_#=J~utV040uSZo!)(x!gO6sY@Re zTHa%)s1r)M#W>0KR(um{*t3%DVti-0TyRgYME@e$c`mPaIY|(#@PWHnK*rxpBuV@g z<;n@1bX}->nvPIN&T9Qa6?O&>Qex}SL%7<@4r2=P8MOt-BxCqz>sE+@S*CEaw^YX+ z&RAxZn2A%@2e>Y-?+xaLy1(n?JwO>P1gIPt$S&RTn?p*Y22Ll8N7$GSu!QJRV@``U z_^OR|!7F19&A!=1)6JN{umZ|u@{n6}({x)jVIu@!?_R8;NYgDt)fE@;?Q3i{>^Q>n zsE3EM$G8&gWsZ&X=9N!lhoIQeVCPtcQZ|`S0o(Q&v{8Lm$e{Y1ANvtt-6ptcR*?tS z1>`2nsO*A9DUZ=Y8JGuLOe<9Bh&u(uT!p8@2!tlo%?B0#;UjhCyxi*VXhD}jQ9epu zy1GKNa@dQ~L~wUnguad=B3n!Zfn96?^wo?-rAD)IUz_@$TsL6Z5^0{X_J7fU8%?c%;pAEHHoYzZQR`N z*aqETrZ!K%%>_ZT5M5&Cho{M-`*WR< z!XeBpt%Up30Lw{}aOa@&ywGlA9Y?+%I%&*vM(~3pDtCF2gC?<^jm?5$QOl?1w^Y(9@)|^pe)e^lr&nep0dYv6`(zVoUY035ZXJHnG#&P z4K+*q%HTG)2j})$3Nd>y5yV{z5IDJ@9c{7U2Z2IN14kI$a0WfiC@KNP^VKkwba7|4 z0DQy({gaBYYlaam!H@3O+M|bkEfq8{-{=H;rb!ck$g*__;U=eEz_gxW><~+SwQK5n zHiW;KOB7)yFU_xh==j_AEX+<~yB&Tp>8f<*13w5azXfjr0F7?~kzx8l7>yh|bRZdL zOMXn)!Mig*?1{0@i!M`o#$sGacTPXqLD8yLCLPRh_w@M=vlASl!PGOiyLkvapoKU+ zj98aM{w7M%*hNhROz7OAlB;J$JBp5Tke9)9`Gzvi09YTM?sQ6Vob^VUf{y42cO!JY z22{9m6b)W4Xx&X1{s8c#I&9;O`Wt$Rcs!7HNwoBB5iUSGZmR;StE*XbxFPkRJzF%? zUqNvx2TP>zIk6nq$w2WN5w zAgQ9MQW)#MQ36sPB$1$3BBLdzfg*#4LEtCritgr?Ok4yVhKX134k^I0NQeMgMGu+k zke+ha$R@Yp@-(EHqymiezq8ItQk^D0Van1Rv&q6GXHau=5vH7mb%8|DL4!g@y4VSE zkvfY0@KZx|Hdxpzpx$iXl1d^3cbSAG8BED(Ib?L% zD=GSSZSwix03}TxZQrO;JvD(BE*c?1bjnCQ>6tuy#62~mW1Lo zi9>zk^eln;g1R3nGK-9~HP^t}55_z|(qlTIZ($B6pk-(bDcy035cy2X(Kk}2a&KX7 zM_NWLO0i;Lv%*4CN&SV6S!F(O1w0uGFo4p+@Lx|qhm8<~^=;AzZoaU#sK*6EOzyR~ zL&t2+_6=@MK#lGJ>T=lwG%YKd{G8H|Y2$WA{v5Vgb2*o!9BFVv!~6!(=8{GALCS?& z6@1G}R8pr%ZweB|?YOc@VF=R~s&bckf6W#x3M8qa(?hPo>KRZBAQv#RxZ$6!*~I1q z1y97L9ONS=1zo%4$hDU<-`K5p2HXf-guYkjlxGZzE$8Yv(aG>$dPBZpnziSAFCYXI z$eTbe4C>AYM*&(QwSi8BG-7vq6tHEdvmK?%W3)#C#|U!yO>F(QGP@TP1X5WT0Lk;a~yu-U7r-Mtd+s zLP)OL$e4>lxl1Ac0&j%o4Pu2L@y#B2*RudI0)sQ(UA08nHD%+bh1ZkEw*eKDQZaQq z)3Z|E_W^{Cp$8b@n%_PUN)UTQ?jUGpPO}QUFq0k{b9sJaLs6PSPGM~Hyp$H@Ri<4q zBpE2b`Xk6O4&~qlPmIjzm4~$asrlyEWH(LglB=uip2#5{y9TW1v#6RWx^x>{1VEhZ) zS0to-ey1aW1>2r4%lmM}D>FSD9MIK)Ty)lrNu|^^7!FvZdy@YENSYL)u@4w~D!krL zl;G(AnAOv${J2Hj-h^`GCNVL8HcVrk-5Nvi>5bBM0s zC5DjPuOiuxl+a4Ak{*N@@C;MOYKaVSsQR|0*cYlC>?oAk!|AQt_)MWN1mLiPd~LlT zwxUD>TYpY>b|#>@<==Z56R2k*c_Hi3L3;B7b`J7xt z_Vy^MErE6f>-IMn5X5Y5AIUcP%!+Xi=m|gy@v+FrpE}kBRjjmdTOwQACyN0I-mAN& z8LWNf{gA-RRZ(RP3Qa&u6d@jL`o*do=?`e814MYN6y?m>Mel{uiQ2kX+^j0VGSI&0 z#8C=r-N-vYVPe92*P6=&a5f+~pn}hLN49uKe9>_R6m%yeb~Ry}ERQrH^qLQf(!>)l zIgLf)I%bD7OAuz__UzLgR3y##gF~w3!L@dE9bn_8%=Gof20#^1<<$N_)oysDOnhIM20mi?LnIF_WvtS5CU^eS}#@lcT}%0$TMZaYIiVk>2J#; zRa$B8GFOz4(R)AK$}|EQXp9G;=O++Xn2CdQ4*sf@aAz*+*ynh&SV6)0t;nfle%0Tb zL)3mm8G-`8xw(TKy0k#2lKgSmWrh|9&Y4Cm;z+J%g%&lQlW6ysCDd@FNoWG%R1N07 zJ#M-T*?p<;x|!5GFe zKRs85Tq3D7M4%Tqg8fl~Fb`ysFAop}l%Wj><~CfJP9G-= zzNe1kZ3lqfLl%p%4%DjD{Q=4}X*&SM>7ebXmLxT_5)y>vDH4%;2VGiho)Vw;b%!U* z_(`=(SQp)CA;3}_#5lW#%G2CwD8yiQ!i6qdo^$Btr^?(0q9K{&)p}Gf3DpGzP1MD9 zB(AwMkelR3=R?1W3B>I}!cH~g=$=ES*nz1{Jr&Syy$7*fn6eWdz0gS!=#;dB2HJRU z8;~fYO~`qrG}rUx&c@(_+vy|-yD|~(l)ggIEb#&*>l-q0!$10u|u zrxgn#5RuT(vpir1KkAWld_wJj=;QK1H0ueI8A*il3Q@94h&dQL)23_R=C~S+W6hqn z?&-D>MH~R*y9_^XTV~X+1&FD#j;sQqzHljXS_~R7ONxH5H$R$2Mm_??$J=d`yEFGc zVS=8cuO+ffPQ-YD#On0I=`P`CNM#K^;JodQ%AnF~u7|k$syirBE5XG?^FKLr!0|y2 zkb()CD3j^4q!<-6bZ+h0l~`SM-fHo`YS5%y(ao4UzXKzgdloRg!|J1z)YLJew0|xB zA%_P^b|G4^0iJtaY+;Q?Bu=oKVXy;2)MbIe1s$*9i!eYfD74@-Rj!V=@=jV-(l4fF zxDIA?as>LJc?p30ayJniU>FP5HcDvZJb{9|e7O@^wmsfEeSFwyc>FMH;6id3)m-=v|S*jl|xw#{AE53A#QujY5~qB_-RhT zhduy!I~s9+)76v)F-`sw_ps@Z?65EBA{T^Qi|cdY%L14TA@40edq!7`a->B}In`ZO zjyf=GcK9Znl(4HAY}3ivBmLvt(t8UyCt}e8cq6p#8y^sk5LQ;isxDJxR}=m*lBo3= zSD}E2I3myrbheWVq&T-<79A^tSfa2qgFsm>pox1|O!!ov4x3OZgfzonh z=vR7iRR$1nNPvK;dU$Bjf~2rS`OtUfj(Fb(r6hz%2dMw_nhRMjKD04dq1KZdPziE` zZ3m7`JN(C;DXQ^63m?RHceg!lZL)aY1CZADx*1Ld9s!QxHlfGKRo-T0{&G+pnIasXcK(}QVVkya3%qV*q z--}(iLD^a{1aMge>@8k`F7Gub-1>HCzkpqoDqMcq7|yw}<%ZEh)80ADRPi;KzmS8M zJ08kFa;#J#i(>NW;Wc95V>UKuY{vW7m3i+t5k{1`{<_2DgVW}&|?Fb`EMQJZzmHX6m zvnDVvB#7Cnw-gq@2d_)0f9UcIC%vkQQS$2@dsYV%!D>zZX0?h7a`pjD3^0ZC(UVYH z?>G{W5TZtDq%Q2~=I{;_&xVx7MqUNt?sp2Jg4`!kcFkv(Bz3ku(T|KVUgRgFgpAUp ztcPIX`R{{VVwZ{ocZau9?ZS#OM@GQk)deJ+f$nJqxm8?;GA*?q&OWRS@6Qg;wTjI_ zA#gofm_A@ghu}S=jp@Qauq)f2biIKal=sv@GFG(tp^JGvcQiK|6d?=GPA)^rtIJdk zc3#_*y>+%(FZ84^9zOi<&59P(4th$JTEh*Bm|p{t(c2dI(j}|F{ds1>&$}~zF19jM ze0U4USibC10tqw)Qk9y;+dQ@CZm@EK@@*aa75ao-oOq$Bh3g6(Bw%nZLB(%->c%y; zXUc^*G3qUSbCTQFa`U6C$K#Ez%wr2=y>99j$QLyYKc!QX3uZsE&##=344Cj?=)j<* z`c_AUHs`v_^~DpIH2RjT4csi(^sVY-RS5;e{$L1=Ef4xxZUnL4%S4$7ng_C$Va{@k z@rrH=t#_<<5c<1MFg^&CP6^cG!xeAQf|_9<8Z^{N#$(VD{uKaPK&8KY**8Ss;Cjno z5Cp@h2!T!4U=cS*)=>?Gx7)-f_okPJSrTNIN3s)H07O=uD~E92fH;V9bE5@-(2@&d z2#9n2z)grxRsfN-i0Z^7d&4^YJ++40N!Svu;X8ssz5rY!WfjPri`A4u3{*$hVp9ap zw-aTd3O7R*!B6~E<@1#HQH6hA9d-igHqzU^fE71aMWd!;Ib&-8DCqTklQ5xG1``XJ zdG!x3Lss% z&0+7?v1Qv=P-F~8H>ayZ`r7DCOx-AY7b;Um${iE8GfV zpfCd`qAFKsom?m(4v*@oEzo#ndc$G@YcsS=TH3M#2lOs>CN(12`F(23RY`YxmQ5L8 zdKchO)>rP=#3%k zzR6;1SH%?!CA{6gVKqCJ$4r&bwwvBE15!3rAS^c8x1us5gHx0!j_uWRdcIstMNH7q z>hsbQqn@M-Wl7Xj9gP5^ZgBru!k15ThgOp9B}{I!EKDv4ZED~~C>qk3ec`e&Qi|M~ zgrk<8qzgu~9XK!Dd`v-|9Rav;2-9Fcdw-;a{!z;`vwx|qeABEl+O?-fs1oSVNl_#Z z4AOVms+W~1*7dewx`0Ci5!&LnOg_qmr2|-5HCR}1A%G=v2m_}PUz3Sb0zUN6oh*8ttpROD_tqNBEP?o$wzJ*ux#7=Lb)o@&JLv z&~Scf?@q_giTYFa@p;S#(x@QUK=#nN>-7~aylx^Gv}j1OuVVzqZZcX2JPdqbOGPXtKjxPpcqAKs z1Du?ihfu(%9KKL4Ay<%6WQjzdr%_Wr09!TVKycyGQf40!i?FNGNi{=fpV1y_%jH&Q zaMMwC6OXxwcKNPA6tgh=vZG(JBaLW>06E1q0>Y8kOb1qiyh0*{+BNbPnMKPUP+ye$ z_O0LAo) zje!k>BCg3N!Ol-)??i`L^KO?zHc``QEocbt+USCh!&?;fDctVdq(@3aB7@PZqq`1e zlg9^W4+g2#fkE(S;NM1^DWwO=5m<-pmIffTn9D@aw1ZQLTtw*?Vg&LNL0|fepz*%h zIgye#xO_}M@}nRk=!*m{z~LkhrV}cVl9d@)K*g`l>2l(}ApdIC#4uggtjLm@%&BVd zMLw$ltlR1yXfR=4}1;~-@F=(Qq@QA2JHaA zpDQC>_*+;MRz4S?6Xik8sI(ZRQ_(QLi7I6a~AH13Rn0TnGAc7fQKy66_3 zScyL*lP2D+Q)dh^rItp6MXQHfwspgL2|!hX7#H0Mt~6Y$xYtA_m)b#d!A%|Ym{6;` znpl0bwnQe_Bfq%HXW*ldv2-`gtLXcME{7C{Pz$BJoNq~iM~to(V8*redf2GNv~^7eX=%_Np2! z(QSEJqpLUXZ69Uol03&9WW7^3 zJ_Wi24Z1CJTlQtb&670YF8S)ss9}U_x!p`dz5i?H#At*IgX*-TsDR1%y)=cwuML* zI%8v6Y~-o1i^JX_ZI6fWK|@zENR9FZD-1SJs*timkFIlw5Srx9N|3Pbdjc!lE4W)szL=q zL<~Wsx*4nM0wPI-T6SkH*i4hSg`kTwF;%e4o;v$=e^HnSS z3sw?W$y&BOdRZM7RoW9Z_ffYrZeKSlT1l{iL4=g<0?+d9oFagSdI4 z{aLaPNzIoc-Q4`1I)Q!w9YII7K0q-NSjuogzM|ok-$tnD%pr=yo-{a`5wh9f1c!fgj^B60v+iZsP`DPG8hK_V#95xQ!g z*~I7rc~y!49EsmMrN_pI&N2WFrXQXGD2U?Ef>XZqJDlurIk5nULUO+>d`<}yNA5+~ zt-Jm>nWAM}0Q(BAoVRKs^r2!UE*OoZ?3x&HF(y#|z zBQ^-4&R}R}e`}5Ms({I|JPX}p07$|hc+mXl@p9k^u?Th~S&1q@zc*)vqpB9^;e~uV z?}*osRxyKN^t#XK4vIK2(+(9MKY9pomP}4(G@hLSI5V<=)^A@o%0+Dnq74@nej)?! z>2zSaAPr;9v&%ISA|P1e#xEeYh}Ospq{;)Qn8M6GUDgKxEVF~`f(jcty##^K1p`eG z#gEIk%us29I1B}lxP~tvpa$0%;?h6fD8W^X2T+K}rrRpydZ9ABAUZBn2A<5yT(^QyC-aB2m zcI-PDri|MO&3N{abR&Dv@c(|NWGdZ3fiiLpyW|DJ8EAZrW0?WJi$Mr*E30KqxE<9O ztrW}Ep%#Kvw8svL;1f`0%)DphcH7ybD-~*JkBlsslebp@@K^+(Q`_i#AA&p)%D&WC z;#n`m;z3LfK-U3NiMK}qu!4KalF8pX-YY0-k^!tQNZ`)Rej(pm)-dR+;_&kBjDQDy zz!4N>^miQ5|9~kCiXZk_IL%lV0pS$PH{?q9aBzZ)(hCR4LOScSmkuTuc`&B9=`88b z)h&@IVOY(nv!ojJ(0bteGCt|=rSj@TysJn__~|o`hQkMf4Lx>ur;F~xz>gHBy%qup z#)?W3afg|P!|35>0#Ocg$&#+utr!MV?m7vCSbOsDR)|u&lKuk#n|_AbWXpkC9L?ef zG3o*zX}fnBGhF>+;G zn!NCeA+Qw@z5o!a5t`GrDRi)#a&NS&?m%aLFz$?K(bHyI<>r|_FM*&yyAK@nub)Tx zP6+78^aXiquVqfUVR`vBoT_f*7Y0;A;{0MDwn#D(NgnKZtq_&#G% zQNzZO0=+_(gX>{Dm=*p$n7cvBLi@UUG@{jdxUbSOo9%{JQETzv3yiVhC%O)$j6nhy zH<#0`+ZLh#9Yqpvp6~+g4XB;9c}>O ze!fR#eU?kiVL0PCrfWt?xZ}WMJ){nDUu4Yl6WSXzxw*5XO-1`E-lTpdRE#s|Vc)Fcr-V=0hL*4vEF0Vu6?JOn0s=af zTTn?zDQ~eyh#0Tf!#a@-hbP6vtH71DxH5G?y|{4t$)Ci~3DQd!=5Qy{8_z|2x5cwe z5nQj!QJD2%DM^8Ef7z*z+Z#sFfOZ554i}Ds_-mq71k)b>Q&(odVMd<^NOy3=B0+$I zavG#i#IoxPO(K7%w#$l}8jAxPhEy{Mnno$^aA&a|iWskHJ`p=Q z;v{3@Q!=}{>qf;uXG|&*QZ9Lc6u@Uk2^6Tzi0(96NtCwH(*aeV3#iG-FsqF3{yKw+ zDi&(yLVrai40J^i6Y??lyu& znle*`YbFy_CclsnY%hIJCwYaJ&OYYiUgQ)JWd)hzJ zp3htu%F@R5rjI@?o6%JaQbu!1S7tD!6M8UVZQtr62_^ZUfU}Bt4lLKRjXuJ(5IJL*c~E8EU&}=uFlH7OdgASk z@w$=o=Rh`_KVs%WD0osoD0oos=!99-7n=AC4UC?HCp5s@E9Y?VbNN@NJ`Y-y4mE)f@+%p%o^b96!o zbW9KFA#g#ti=orSpnniVr9D?|l#nan2teib1+LDOGR3K^yGonfjcu}mIO3-A&2Z?A zfFlC!ihvB%^Lc7m9-}4zr9_HW?%A^3rKJZ^#=~{2QR&pgORbs9XyIt#l>mz%%BK8+ zPni=o)FuZb^FAI}Q(kQaK~OY)V)MQ(Q#=#WH?^dlPy+fk^3jY` zDSH$o@NGEi5hPkbE0s2VUkF|mV^S*XdWl6pWhZXmB@sp_o%}cjdejhevLA)Lvq_P+ zM!JjyJG+2@l=)I~VSIKSI0V22x~CapEE^!bvgIUmT82pktJkHqe9#uBiR+1`R`FL8 zib&$V+0OnZY!H+SF~OrgxuUF$yC8-Tuc6y?uWv*R&YlsXEnk?G7|v?g1yYK%DFJEc z_(*$zR?w59afN=^SpzA4vG*uy*`zuuK|K&_iS&c2%Zy1xkR0JcXxptqLH8*kb`2 z>h-d(C38!SA=_+GXwK?@(IbWCOfg5!t|Jbw8fvrJAN3^_MFOkjl?YH^o_9WHAOc(w zs7W#;^WtSlW@7HfGT8m#aF@*UK?F(Mf29rwKZ0Zc$mmYS-Y=s?&OZz~8gQvx?)AJR ztk)mn-8K)EL8}QQGaQHZ1Y?OvpvQ;I=;?4fiJBnsSx}5gxhb zmQ^Nvy)BxUmhUsk1TucK>-)NaLfa`eJw~iBQL%mIq*Eks zB<9n44QbK+vrt@6Ju5sA{k8eE1*kZwblSkGDERiT#Sx`D*d_B?7EmS4eQ%=txwKQ>q;z6n6ayrW3d zSEbmKMHY4Mssr~I!m48A?Ck`fnb%;! zfw^M1eojnun2|wvgwLpcKw8Fl5TfO;TDXk$Rr8A2Manh}iFPW;pwHReWr^fOfYpOR z$@xOR|EdH({@o_nR9YRvV>XoqW}Dvv+Z)s%Va3GngBVwd4e4#i5#^J8sb`cIsE z1mgFaZe}T%90qPWFxm-e{@GX6;X(;B;XK;wGIrdDOG>1JQ_q?7kIfJl&7>mrfOdAm zf?NcNf*{Vc^po>WaY2&NGg0)*XL*D_YE>6BW4F5K_FcQQVH$|7R%HJuT}|W1Zc3oU z4<8J?gKCidhNN;HH6+UTGo6jKRS@a(NM^dY_x-!CO2!O1k^GwWf{#5C>_+t(T+Xt3 zO-r9$VxauXaVU$u+o8q@ho|Vmbm**fs~+%WYRQ>u_0cqtgiO28MLMi|{=x zZ62?F>2J@fZacl98|07!19zCt8^T>Ip;b+a2^X=t^Q|%%S^KJS)r&nqF&OOBb+_Kw zBYP%hh3G<1zl6QKr48V zm#ORv`MuTeVadbtL4HD)l`}(1XZO%y(04@Kv!l^*qqc2&8GWnXV6=VTYFh9@yfsn3 zTh(>yyYiO)15>ae70{=-^`W9w^g1LudW{#|Y;L@Rmvw^?A)wDKnUXr%p zKCxQrXlvycOw||xe?LKQwOuB*Jyfyxg0Gj`A3;C@AjNxP>+K!P>^-nYCB3`az^E4)^9 zsm|`fW`}kX1wxSl%G*~=VCdHrwCY!)yJHW<2VzuJLZUkPY2QNXkV$8wg6VlrKyw{f z2#v70n%U?27NV3RuH$k8Fg6R!SrD(K3#=oQ!iov#@Z*GGWyehGbm^DEC;ZKSzSe(! zo?r?{4oG-#=Z+$2LWrfFUI>qKP+(-vpj107l<>|N8Sz!QWwnOx`gwQ1eS%e0fNzf~ z$`{BnEekmOUhyWf*N#1%%Oz`;^#X8cIU(HRkdc*w*p~rnkHrDlZxz*R*pu2pBe{%` zfi4|R0dlJ@sI+E@U0AFjpS-!mDNZnDnoiXNbbhJ)oREo0Jt}*pqo#J#wIqRkwcDcH z_|8|Qlgk_gVRzUL%O)!AkysanvoEK<=CjNx@g3x+iNq_rS%Hy4J*#VPUw569eSiD6 zimT<@axzdySQ5_lVmsU~#Nd`273Am&v#SGvE+CYswtQ0caO?6+yEBkP7SX_4Cx3n{ zlgwFy9>}rJ^gag{sDP-3itOQ*G@$P$9V`etYme-10)q2gtEG~Q-(*QtyeV=eV47VP z?_$Vr;J8{4J0XFfkGl!I-)$7Kw;Ua4q5197Pb*}m^*i=#0E-8$gRxjNY4^b8)(F*1 z*zcSD-8ulHYoI3OrOl#o;Tqjb+d|hn0M{fwd_a?C`;(^Kq_Scnfop>%Jy)O~>vqVk zE@LI!$;R4@8{f9ikOi8u9aneu_brZ$daqTQpY$TpahtG>hWnikq!V*TRE_d{I}Sle z6ls+8ED_YSF>wHwBHf0r;@wph87(DI;%k^MZKi90Ocuo~0wODzt}BwE0us9Re-kv~ z35;KV8-d3?4!;je@E(C9GYtULUhX#in+?1Q*_~T_d#j6bkvD6Ko-K2NNXM?7h5P#L z?xB?mJ}j;?RG0JBzH7j^sEaB;pfKKI)6L*bh-$Xd^Ai}6Ti1K2_64b~*s_Pj9aBp#&j$iIP$q zuEOPJ2F*@$KeZi4e&~a~->bd7jrDy^SB5pdmKirv+KdDE&Ecv@AS-Mwz7O1`cOvU@ zMN?Za#2Xk_tGQ_M0{CI9Ol6OC5j)~O%T?}e=Ls-j2GXc$9$wTgDuto*NN=ZaJEooY z0E$3M+O{E(pm=KsQV2S{p*CT|S6Q)Dw8-L6UFsqT-x@A0qYN67QSeFED*GOR{gVD+ zSX!GNR6MftIke3tO2KCxl3m25{yhOHTvwMh9Shg}8tlT9scIAU`DKj1**!n_31nwn-P{P#oi55KXra%fcjWgh!q9~l4c+$CMMe}%{X=Pkm2X=D9QSf2ma z8RNgj;riEQj8;15zs@53s|(pb2+j4Md$|7ESL8n_H2<|1;hz+m|KW@9FF#y=ADaJ< zhwI;VC;b0AT;D_UkM(P--92Hz~l zZD$_Q<<^MLu_#(cePH$R5z}UBj*6{A){aG3#%=p;*00$yC z)?dPo+L{CLky3v}b*Z#@-V+!X^wsd{2nc06G%j+|DAmA&&gqKJFmhuGNawo&oWCY{ z0cs&_@2TMpYkiI-pdC8?2)1F5vjip=polMuVvqcpH*|E(%^|%&uz^c6$`#ud2{?k? z>cW5bbkW6)VH4;h=-_CWI1)=^cBZfZUZY)PEp~ty>agn|?_RxEl-V*+G{6hkg|`Db zTUc^1s-Tpl^|SvPD=J_ws%Q~i!uGyTf&U7^M+S%2@J?h5yxB0iw3Ucg(e$TW#-I?P zmy^+^e0vl&43t^^;@nm{`;=r90B2*0ninMRIBlY;0l1?h1nzAvAwh!_7JxWrXV{YE z!KaC1--;|@0duf}1pW!8Huop9lfXv-4YhsEMCIX|=LZoN;2TLu>n9>F@(;Qu==KFT zBxk>2KvN=IZym~%ua+7+1R4k^DAG7Eh^J=>~SFqg-@Mn7}h47W)|F=pSgUZN(s;$H%lvA8v1b zK0KB7j3Ce$u;pR^4oKc9&sP+ZENmkchCgX{+%*X?B8eY_k#HIin3$kKHw7h$SHHG= z0+<3Iw+M=k<_H{e(=1YD)5}{wA&lW|!my9=7;Kpn#(>R(@P?!Zj^k}bMs&0C+<4eo zsJ)a`S)g&`fi2l@mm7GZL{#Dg*+Klxj%Z7eBv2tz65RokhL$a4K^ZKT;t#i!DUim) z8*Ao$Q29R4QG{5`k{`L-Y9MXM+!^p15WD-f#|PciiKQ9bpZGY8h$;b_2NaI%`88+O zQzIk>Cv5YiFyjY z5`Y=c?&U1VQ4jD|m6-esq)W?B_CN>~Ir6krDF7!Z?YiPx1h^_wr7E+e=bs^j4|YDf z24#Y9o*FwF`>H6WF|kfhvJ;3Ux@$545ttQ6(S0|XVn32$cuIuB|mobRmwC!k6J zA3LBy;~PKg`>GhJpePiCIo_6GN4kO)#l#&{SAH&_+N2c!Mx<$`QdT_?gDMO#VeU3wIe{{p#zni>GA6!nL^^klL@9o9XIr4)&yCw zfv}v#;FnnexFaYomQgks@0iwb zuF*{Z;<^2KbUT72PF1c12+<{XJ5C6RC~LvCiqFXrvN43}0h|?xkyGM;ejwSwjI6}C zztcbR21V=v%7?Rzku8f>8CAi#G}~6@iyI1pySV*Gy5WV`wls%v8-;oA+~?sS+NY3l zArRf)#%;d@vxFkNIRlq!6j3do{_;(n^qJT{`p26h(swAioPq_;X_t zHOdY(xEC0@t-EIf`QGO85whI8T2vQEWq~bgaWs&hXf*ktCH9sWAa0n( zecOPp;boD02WdE7<jBIE_7WfJZ4Vem& z6QY|JGg=M*AAc<|+o%MO)@cRder9#J{~IOd(N zveXuVo?^neRO7bpFZmQSak7#3ePG}sJxnIee%lZirv>Aob32m3*&&v* z6yj{(v|BBVq1T0%a0ouTEFi~uK&-c&B}w6Mqs$Co$uipEl5f$|aKgY~wcI zI?6=k4|8%mya_<1O|(MfCHwLKawb^s#gdr5TqV|1V<(#dyJ2$(bpO2{i=(KEkqshG z?KB32RHt-B9bn!f3}AOg#J4T6?RdreRHEW?Dnc8MV$O}J;ss>|6@tBW$t`Ws=qN2> zeBLG!Q_fB^lUR}bLU?m-0)yHJWwGUkQLYQ9h-LxznTCMiv0OUZeI%AqmOjXSzhK2} zRsrTxlb3$?4n~25Te)d@%|LvmqB?l*~%X zqoGc+K^ zn)c8by4)uyAMAey=?i6Tcpbf=LWdg=#nZXC8QWP2kC{q7C>C&c9ZE_6Sk8x*G&GeL z6sJV3xPa}#Z}-rV+lib=*-Cd~-W<{nog_Aq;YRP`_7oTQ3h9nP*Eg+R-|lw;bS^kB zPkJ251;rvE8Kf66SUJC=#s^G%`ZZGic#V(oQI=W|L9mN;nOR;j9Wr}Z358Vm=ABr% z*b9mfG%(hAf|+2%<>70EOCeS`%NV35hNP%$;db!dUGymy0eKfPVmGr&Sk#dz4rCl- zeL5wytgzz)a!t$R3AMwJ85rll#zxuW7S?59pgT<$Oy$PSZ+YABWRnbvj@rdmoJG}7 zH7alWHf0Fd7(%jk+0I_8ZjwMFgpt5RUOshKj3b04Z$qr3`#nEW7*mOgBzh~|%VA-3 zgiyKW9sOxw*N+@mFo%Fj5R+@c4RK|og%WukyMA;+Es~TAY1#1pT0tI_z(zU*@ZRl% zgfk5-$1;)7&|e!{OotFcAg4FhuL#{wmBJlqirFN!u1nJ z)3h6|BO(@;9(&lhfBYXH?b-IpPB0mvAJ*DdF5<*_^`nsD=wz`SLj}C+y!RqLUNlrI z!kpb@%QSlnI)%{8mg&Y;*@SRQ>xT;^*WhkcgxY}oXS^GR7opS98kAW$TwJL}N^UL_ z4js*!@yc4epGn*XMr-V1?=wJzpxnnG!uG;_3!TPyLz98l!%R09;;u~u7*?DX<+Y4i zUR9W2Tkv7*_WFZ%HI2Gt2y<#>tC7ro7>eY4nlxX#Q=Z3Hojo(z1v#F=TJA->F^i*t z{4Y2`l!kIf>~`*#w$n6m3(OuL%i9a0|BRm_d^`X`03nQuVW=y@H<*$^mno-tP#?rq(f@x zo*#|x>;ocQ%Z@P3ZS^TDmv{ga?K3Vu0-#f*{uX8G>6Fau(A(>w+EMXZPf(->N2IWY z$SBW`;wpFymXQ^Z!Bu(P1#+%V<;rz}?yuX}h-IL0 zW*PRMLWA?F5Fs1K`{_u3$qwV!&(k>^YIdrygJ^ga)DeJ2C`^+$k+t4a(;+EQ-bo~P zZ_t9rOyzWA|AH>f$u|;ALzIu1vC>g-k)X z>XK@Fs$^)8BCTv!FsdMNe+^YLb*!JIB&R25_<_)S`13=`+e$1 z1br;d`K|c0TP?pu9FRsF0`BFSVW3JzqkdLd3iT3P{$w>Z0=by7w@s8ib6jFOUdOOU zHwIu0GY}3(v5YQGTq?r*(vtt$9O~NOL;vdxS~B-+8X`_J#=Y}=E5abCF@S%#GoF{U#l&;JLUU`NXLdB&}w^O|mij_L2LH(tff_&du1N>-Z7KXlk zLu&I~CI!b6x?pUrd6mCd16==@BaC=R+s9-QCN9-BL*V#AMfyl@i>)=1n#gbW;tGT` zHfar|;9DI#9kGjq$EoTfqBa;|p zRc|*~-e?hSD5F0lv0jL+OWS|wcC5k8KcWn`N0Rw&-iU&&5>R=Ys7hhg9bH;(>6z91 zQRCeALg^2ylCF#0^;MaR(GW+a;PmZQ(SkP`9Z)V6{4(BO!__=acbv7k^oN@Yqr-)2>%ft2JU?2L+U0|a8=|Vmm-&*W zSvtyQh;=(rtU*gaX%0R&23X$)EqF3yT{ZGQbU+o`7AU7M7G70akVk#qBEk#>nllQ_65d6PUhy zkw(H={Gg>XazwtDKJ5;0O8}I3&Das}$k-TwW$A;j9@OTHTFiT=GEJ5rpoRittNX6s z0VhY>8R0F&a!#ng)(ET&o!hLg+OONl!IKL~ag^VQbgxl>9GL|dz*bzUE*mS1lWa|~ z0^JH;CsV|<8jmJ)G5bwKs3j=Qz?E>TMeiMfQrbXMJTlgMwmIku+CM-GfID($|5Ys! zq!!RGu)^A|!Ql#PTV}gsEU^RQlWrKJcS-D{nQx&gr|Q~vG=30dZ0ZX{7qG+L0(ho{ z{;D&3+Zd|`a2SR0-iDp}`|N_=<_DUd05h z0%E9ESHUAqm6w|U{uK^DQq`1->Z-<<+tG|g+n)v?!m1(M@WO17CjF!}RX5;b7rZnS zX;uh}k)BPT%sng(v!sXKbAG0BmJ87W#b9zs0K`Fma0$Ty8(+J=1Qbr&8EwE$u0eaF zIhzb5y=)tz83lFS>9C>%Rwdhnl*gGDYb<~tRb^z$)t%19)_4d{Pnu7KuJ{Qe0TEO( z4wTq2lo=-vz_11572Y-8&^h>kfS}2wyFi+I!zGs%ttYxts8?-o%msVFTxP1dj)6~h zBc&k2Z;StS<=5qAxjTA*c))LH$ll`}v^1QRR&x^d^{v>y6+rFfFydhf6PB>~9<*?q zvy_0~sur~3p}f@_R!$q?mJ+JRKrKL#tvs{`%pX}s@)OeGk!9_#TG z4NH4SO3{JcfrPjBe5H@2VGgzi+s0(=c=Xg0qT{5awO{RHG*GB#nRzMsbv-y`q`)Lt zh2`XRT}`n$3-WNC@mt>;bSbwMHX?O8DX&>Qwq&CaF zk!{6AcUGsqEcXhmSn1woMp4&PsC||jt$Nt>HZNq#&Z!+!0VK$xQ+=sW)bxY-T>#~J zsgF{kk>oH*Y&@Q?TSds0coxY&t2S|+4~&YtdLLNIjN3wHrlfn8b`>|V18=J@MXOv! zJ;D7>QmF;(ljiROi5CRAIfc|2RAO#u4n~lDPfsas1ml)|18t++a%en!7JDW6QU;}a zwx^p*lW0o#o;rL;;P8b$30#5X1vWY!qKttKGX{n;Bwoe+Bv6Xex~#ObP8rB?EU4w% zf7xYYZ~Zp^f2y?$iWMOg{2QE$6)HF&MVU~w<+!?sGZ=UvJ;?~b)@{BJi{xEIk`4jI z;7229`4N9<6!+zpbs*Y;<~AwUgyjRVgOyz+AV-9Ebtxg3P#fv66 z=dHTz-%2A?U^_;>winOm(8)n%mWV{Jaa;*%I#WmpPe9;Yco)3QRh#AhGU(35`9drL ze5p!oCu1j*?&lE3GR-GkdGYb}?g(6?fcWjerT)GtK@pcmV2YL%_3K?qNyl7>5?!Li z!;RJO;gA^;;=X0LfPhkTTGo^tVuv}D;F?ugMGkT0=AEc7W1a`fh%_ypwgYONq|4k{ zLbp6?8nl-%f7ez-qw40j%7q$8#Y%P1p9!=aO68X+lEG39+?iq?yBz@Xe*?Z(_y?Fv z?CVNhp4oInE+03h28^U_(ED=h1yCn_VVEA<4r=2RnUDbD^+N%$W10 zX$+fU6DEo;`bIr#JS30OM)v!LwPe1k@-hLtMCuH28l0GWMZm!(mAGj@WVcJ1aozO-!hHV2zVc$R$djmH&rV~>g#2b>0<>YLb&6u|N^YnZ5IiJn-qx4oKlTLFepx02 zLJQsO(!$F`(#=9!?)6w}EMc{%23TNNi3at30?SAnaADX!@D)6qi$On)3Sii_S=_uh z;|$FMlRz$mxb57)g-F>5UboNFapn6|Mm!+i=?u;L)bi;VLA`Rk|Mp+o60mTtH2=mJ zthwIUTxe$+@HwxZ{3(+AYWikA&A!|Dobp*LDVkkGx^%~ck~0KVGvrVCJfx6UW_|#8 zUhXTyRa(pdv6-`Nh+j*5Nksw7(YTeEX+&3LaC#efU6exev--q~wS!HLaLekB2Tl8$ z{29Y3A>QXTJVJkPVqFC8lYw>eZ;nYd-Bt)e{c@hvM!_-1!U4tl2zRK3_b*NcAjolV ze&&zVdI5_h;Uw%qZmb$0KA`R-eD%s6?Bz3P!5E-RzbqC%Xiwmnt6UC&$@!6my2lCV zCEj<}1BXU&$I+%Qh{y2Amxy=6%xz zctuj|7MaYxResyI3Gc^>RnG8y-;`niMM8WVavHvgjl}C@+tVF+Pc1|ypx_oXa(kmI zTJMY*@R$LQccI2~PlGJ_7Q)hg=Y1df(1B&bDLv<#iBP!F|AW56bz9x2XUKqtULPa> zTU3hcLLYJf&61hpD}n5UqG^eN_2}iox}_e>6OpX}u6%r-34EOPF?3xd{$C4$-ZnL! zEZsmiobLmSC-#FRZ4M+ZF?jU#1oDIq$DAdvfJ77H5Tl2Cc4f-?nIRR_PDsxM~bIN&r+5=873;Nqgfv3)rBNP{*`HgnY>r zqS%<=Qw73tUdwMP1^|r6$cmzx&IKfkA|!odlFdO3t{5NSL+thO(0TJoHf65@h{9_+ z*KP2=2YW$!+$5fqY13IrQWhX-DT?SqeB5tJL1QU%fz{Yfw-LAy62H`11lSrKv>ieq zlI80D&*s`fOfWiMpSgYy?s^7_M7b0(EsNgLM>u%6z$m+fCaiCSk_RFzMGEm92pPRx3+qF!)eQde9DZz z?H;JFYsO!zMJm{owCEmdwaKNxhC z*92!5N%6zx*n=bNWg3h9WT&wimBk?u(@m@= z`7q4Y3358S;LA7>mGcQ%s6HTeftY7shD#<<9L)DS>QXP|ZF|7vMprUx00&WN5G}xW z)ulC1@K5SVwfY$7UrJt(D<48hI49x$(HxR4AlT1wAx3JnX)pqW(sGkKtYviowoZ{o za45cOoy0)LCC}v{d7Jwd9~M;FkTGw zccA}`_2S0{N5lP)eb-j(YdP8?8& ztRA4n-mFikttg~mooX+i_e1DoxJXZ!f8L!3XA~laIuCY#`ZhEfs+?7BSTuQI8HhF9 zXSD&tDO%Lkw1ddRGqd31JsaMb!Z}TFY8c?Si=he8ZixlXY2~t&aZ8BE^h1gOwCc*u zz|4_Nkktb^qY>WEq{XDx!^F7vJvDu|gj;Qjhc~~Q@@#eicx>7F1HDt33>pDYAiA_j z-cGDK@vtJ0I7sbfm#icgS|D65t>=9l?RM?5;-(aQxvEUMGiYNOtjq-{-jHTHAuup4 z=|OAby}9<`49cn;lvwV!v#X&N>HvbdT5fYdCxCUL#1O#R7P>6w*??vR`FS=@{dku> z^J1vgq^tDOujQVm0(4ICe8tW1jqfH`AQB`rk@G20cUpsL0q>0Y=Ndz8Csh60QJfzh z&xt$OT|w^Mq&Dm_=?8m~n68!3r%HyTn&PTJ2O%ofRSW9a*7j@f(E!Ker6DI1( zwYLN0Ap{ca4rq^uLxI>JJxOqYis5*q23%)}A;3CxbpbX%$-soS}3psL27dqD)e03H4z?3Bwl?Ej`X$25sCz;t;UwmNWVP2Cy*KkJRv}8 z6zp%^0DLD+Cs>W-P!$%@ z^vE*Ch>Ocj|4)XzntSH?&MD5EfC_DgK=W|&5)2A($aPM_yXi=@W%TiuNN*Yp}9urTPY zbm&~@Ihn5#$os9I%1- z$ceIdWbjKy3gXI@n}OTR@(D2FOxSKIEPrF-EZjspK>Ij~V{PZk&Xxs)OnT|ih!aU0 zF3u77eWp@N`}(Q98@8eW;upCG#wcf&iHm>!LfzeFGX0q0}witgbvU$MTV9a z+Rl8nfM*C4q#hwRRkJ{K#MmX2hr~$gOff@-j34p^IjIj>1^O6G7}$GI=O+(!NrLWRM=zsTVoPR4EcNqwKk&W)03b|)=V)|56~QwY`vUH6uh$osl_pFzIGyt`wIn=2 zw162v4f!ooloy&Tv_b5@(8uMQqp-OJ2>H8ahLEkKRd%0ml*r0_xdAnl02;A7piQuPid8IvMw3fciRaJt5A^pWzBK58*IkH9%PGL5qjtF@cxG{h0yuz5 zq3ZS`1p_NY2z}#%#Mc+nsDj8w4{mceH~nr1k`z#S!AIxaXHm5If|3R9RnET~xA;WR z?xHu{FxG(yYB^tDYw&gJ#!wa=Zcy;pQt?XwNnVCP ze+MK?1T)*FS8f3VVH-ZHiQ9Z1vH%l;G7q)BxmLA(uP$dbdc}^I2TvBJ0tpOdl@n^n z0^Gwg07+!^-pg+*j^_!vhJugq6^4QhOMoFGAK-}`N-#93)X`GH7WiJ9lqQV9(ohq% zzY>V-1*rw-wKV%)8%2U02$vwiLA$~Q5%gRNS!$Hq=)+Lj7G%0!Wd+EH>SfrIT}6YA zbf^v2l*e<83!yUQuEn?Ob@c& z;duvDNLKMo={ciqb9132CN-A{h>DuLB%Y-q=q{ju(vNn)+6Oe^t#$@0gTjL=DuMbj zgb(O7SPVE%-3dv3snH-z@jyWm22rOis*5r%N`yXShek|jBxAgnefyBsCWKoG*pKAe zX$(c^xJL%O!8h9M!eV?EY4r51S-85VmbkHHXfYSNZLU~_h=!KaKq1J8G`i4-?xCPJ zsB$=}Fn;KPU@57f5Iy@2S7E000RPi0-l*69w%Kj7!A_zwcpOGB7N@yy!Tp=sQE7rBDabyQICamD9j}Xoss4Wp}bW$vY@2oauC@j-7uy>i|kah#EQ!0B&**U;c@_at20d3b*AAAdnUr@?q|>R`dtO1}*Huz$f95Yr)~H8wvqH)=(@0)w~L~ z)oJ7W2%G>fdF#!rQrIr-LRml$5MS4K2`jQmQ-JjE5?cj`p{ou2sYBkpto01}0W1MF zjkJ_p@YTx%F-lQ0ru%E?5;m9#2w#TyZP+yNvz;MHt0tcB!=+_Q!k7VEUw-rNMDGQc zXVmB@9dD701uSfYjuEiETd!udWJtTz0IJgintW6C4Y1R&=ijGU!dMCc$i*VNjU1|s zj4BfDuVnLUhb%@5lFE#ts(hQny)%$_)paGGQMy*=&ym}qiK13HwUN^`qj1OBQiWr^ zG(WUs8dSl|X(2YG_c{184ruU6>HNJJCU7@2*Z9XHl*@fq{sc0ci(_y#9qBNsKxX-N zQ)<=KBi+;{gm^lUjp`t@JJqU`foSbajdga@cLh?o?*I~!^F@>B98_saf`epigA9n% zK!LVTbt=A3xf5RcgTNn>yy_E&>uqc%yiu@j<`Sp*Pu8cjp(wwmh;#(NN-Lbm67ca% zF1JIrR|cO#!Dg2wG1Fqs6lpc>4$IsmNP;AqUP~|AWxmvuAc-RBe0dr*^spKB(Aq{} zz)6QmA%SU@#xULGgB0LEqR4W4xj)fZ4R#bDa;WxxDvWeYR8y6jGrNx75PFl(mh0yU z6%42f^96VgXpBzB2&Qiv)TBUfayV`}w;yi?p0QnOuA^5pph7G`&L^rWG&;^tssbD!TC{BrJZ))mgSp3!xJXR=+o@l@Sn>d}A}3jEYhuq!l|zl_ zRdOsq4BnBUcr@SHKhc{P+D>F|K=d76eo21l~-sNzJfGbvna^cZVC)R*~Cn zXZ~?(dlF9~`2@tyKJ}df)P*MdO&H)aw$X8fN2p`OVu!Z~l@yW*RMN1+!2@WM)S_`h z+d3Azr^xtct~g5y{zfC2mtwzA*#}mK-NUWU6jd3NK?Vw5Ihei^XxW6{Zg+)FLC$`1 z*;7;8l3QHiK^XzrUu2V)SxL-^lb5CTMZmi`J&>{F&ID<9&?c1d1-A6)@e1>2vreJ zkZ0ca(-Ag60}Gm#{8!H2vCL|zh{(mEPA`O<)X|;tiYOyF@OG3bxD{uW6>2VZAPobp zWZw!PqXXXHFoAUP>JE+@E|J7T4UY>;u+(cufWE3;K|#D_I#v(V14y_nhwza zym=a>Fe95tgMqr=WqnL$0xvU5E~4(8s97oPCn_0KnWm#Hf?$L=0vkW>Qh4)8n9+#~ zI{?l)a|7FmjF_i-zmK5FH8Z*d$avYaUB4oATnADO6N%F?y}d%~60?P19Ciy~Cp;(+ zQy)v1drhpByo{y5PU;Chc{gRs>Y@wJ7O)ioQ}B&RXa6^-Bk1;{yMa!Su?sZ@oZ)uI zDKsR2j}WgC^gNfv@^`4InO>pE<0?9lR-xiok@xhI9TZUv2N8r$SoCU!Le)n}^p8Vv zTU(x%9JI~Oi1oE;5ejWo;g%%OSxn<@E5_--*{CK!@;7(r(2A|fhyg$qH_(BJKu`uH zNqurQLI-#w4VElrwMEfcche%0ONJ7F@(l(-ZN6l(5NR5!#u1s$qTUU?q2K_;1WuXpOV7sDB1r_T7%9;-rc!9K9Fh8sYu z0@^xc2Q@>|OAJ8Tcc|y4cYaX9v}=x^pkaB>DdKX-l1!D`P*=`5B}LI3P$MyPmI zk|V+soLGQsE)z+j`-)$Nfc?E4s~83tZdt6gWg4dkwyHajbFn$)FWH+RNGF1T0mK=}g@Bpj=4=4p#0EG44!rYDs z4KhgwSKP1AI*3fv{+r}iQ@ZVK05SA6@D^&~fjHrKN)t3~=+?|FUB3(Kf)66>Akm;* zPsBnM6@QbaR}1c-awPzoW?F#6&bft=Y2yZlDgYeZ8&@Ia2$2{$TZ_XkTyn`G4lK*B z@!A0mo-B4a5_`1l%jp48`m7^Tm@&Its3BD<8U7&f)CsZD>jO2xhwwKY_duUds}-la zdOrtY0|tTIO@z6H1ynvr>wN%-f{xpPZNASz201U5nY1?E#Z9vaelrBY6sx-exn7$( z4m5-P>=%A4trvF6R>|4jIgr*!Dknk5u2iW|6;KXPQd0BM1q1*~L6)X8#9)g;MJClVt3CgLF8q?--;gUB;D&K_6efd-QsLuyCQG&nO`TT)Q zz+!NaE!EqH6dsa1Ou#wOh~M>$-ZeXyoOtXp)UKyMp-^ftL+oBo7fLA&C|epiUA*r@ z%}=AI0@r-}n1vFw*9N!+{lnqDDKc6qE}xp{0Dt)-Ip+v|6Krg9-kON5bt#UiCE}_x zriK}TJ@qW!$j|Bm5K)p_qiWl||05j+GFhT6Z1MO)5<*wdZe`7r{Pfv!kg*huEM4ls z1vn58a97A6a_a5~Q!Pns1;l)=4g{c%ZkB_Al*rFtL**kNctFSuqrc=EJ_+E-te_M( zdar$LVShsWq$^O%(}S}cNEVPC>=Ooc>1`3Q?BKou%u0_QKR)D6nMox8j!|78MH?E? zCMuLVt^x^#0g$OebOFaUE$2ur-OXJtpd2fQ>1Yz0puu4B4P+R^>mcf zdSQ$@<=c^*@ZC^LBo1+?26**%p#sJsLEswb`4!d!PO=>W39<&O>h7T{AGr%LCq#E4 z6^B=Cv>5@_i6K62=tDgd!EpK5L7BL}(=@SWJqNSy{ER>C2@uJaR_a2%zdZ`Piy@4i zcuN$Xs2CTJCc;UZpm_(tDC-1lltOKbTDt=&hzW>207LOgd!GaA7yFh*0<$jR-8563 ziSr$4$~Jo17dOebTx=B2oj{l%1@wd9Wz6BajnHGcPibkT`s_U7a(n@30T?b^l&w8A zWp%(2gQ50le!oQ_RD|zgYrh?Wc4`FCOS`K+j~2U{u%)u7Bs}w06*xgrns}%hYtrhb z&-D5b3xubi%j>WJm8|0G^}5tX-WCaLb~-~+mU%Lr1E311HEMrRn9gEzQ1SVla3mqZ zIKV|F>25p(eTUWgs9%dULN|>Hj2=ThhU47!KzoYNya4iCPy{?qXA4SC-fV$&F$^HcxSol5*4ldw5GiDjWq-0etzYQz%+G=#wxwSnwv|8uXe$#suHYq# zvE2#PV4n)(WC~85k#l7!H*M+Bx0XlQjeJ?$(vLly@iPsSEHL0;tSla6YS4qj(gVU; z9`#y53Q%cgLp~)SqVGRp#umkKKdxva9L8J9jmRsnV3a>T_Qzl@Ks3O(rwN_Ba zMAllR-PXw5-BVhy48zz5#T%y5ZKY9SIT`k0?yBW7vCSz;d0v3BD=Q$9nD7P&N4`Vh1+CIS$vQP3Qx3q=*9>@~%M@|Dx#b35v5X zSb>5j*+EHZEQQLgX2>NByndo~xWL;dSS{(847Q}D>o^I_3V2$>Gn}OSspN zj%5)H_Oy0NV_d2x5M*vo5%mIWyX*oX0iUleB%Gq9zJZ<18FGC)x_LpqHZ;)oBnxCSE*DaEz-PVI5AB?0^-x~{vp zqeLr(t%ru^k}=B%0iTj5jokn{jFzk*-zDx)A4|2PxyGO)D*tRgN5LJvNzoj+;p{=7 zOI#caY3XI3->E_)7Oc`bO`vBJP+?AXVLNe`$-`$!VCu29L9Ae|e53D9Xw+e20(`Qu zb)O;Ij8f9rFXG)m`03(g4llQE7(zMS1(+)&-oPmH+agWE#moOErl+`!nNpD%natf> zR$)O=bp|L2>aBSVAB&2XfR&RxfA63LF$@!Zv_kcHUpV0CyjT~@#@^#0(_0&&{!H0|6QVGxk4vPy7r89Ez9 z*v?Vju~%6;kmr=*n1$5anQEUYRXc|H%!})NYN<{qCh#bYgz)5N=_RcVB}-B#tVY&X zD^JMn z_1*%OV+G?&`!2OyK9+1lNWLW%fh+2b2OX6`nxR9wZo4+xK@q?jupo*tFX=Tt&;e!w z^9+FcO{g#`Xe7gIDFCv!WT+nrT~6uQg1otvLH=F577pG-7+0UVn>n*{>OHjUBa3c^xoh55tC$$OLAD?>yCt!n;%cMQdtFaYCcl+VrS2Q9WCGOSXH zfCZJgR})#W*ah6WuCHo417k)Maq!Ob1JNKp95?`w@va5~bJ7cGFAjw1N{3Z!HXxv= zM>yicsnBsn6N*7ur$=|Mvx20s%+CQK)S2CA5q)>a{%|vLj;_4{HF1%IfoXWVI*oIR z1f(@g{k6;IFCo5>JL7(UDcaww140?(#Vq3)S87e z1l!ubh*9_F-eR{&qoSL%gA>#_7hbS_rDlLayu|~yktyvzk{!BZrMj#SEl!M?P~55I z3ZTOX?s)%oq{u+1-q%3#4W`>}2834Pm7gWZW9QM<+-B}VXQRU;AtzJpT%1}r;9!Vx zOcrsd@;Z85!ol5=-@^3u`)EW$BJw)fYp|Z$?xWh}3x_T8<bZ=x zsr^)dP|LXX>=1jWAWqn&j6YY|B;1$~f8wVw>e;#}ca$(_)<6@Y1>~hk0C5qQhKN@V z2S?AWc7QTi^?vJ!GlvR-0Rp#n;|KYr2Q~?&dc!yJC8*!z^1GuZC$jCZ83O~2^35_MucQz5NDRr%m@zT|4rnJBbg=(E zMg#rnHX^KsFQElrYRz%IV8r2~+~$~0C!V}o75sCAX%&@SzK)?X{jH{E)^vlG z3VK@^G1A;`twr;LH!IjhaU)EERglsEXw{Uwa0{9nRKaj+QcC_xM_Q?is{r@Soo&_& z(xSTC=@B$7t&u_+LSssN<_(INU!zJsgi(a@k>(H6t?^bT z%E}!S6V&le2Zsw*#ssQLmDx-FGnqjqwTC;GuIm;?PEu7mI?mN) zq#3&?WDPL?+$zoMsll;T`M%i(8IKZ1j*n&`Qg9QNfeU?w=1!Vu^a!(mHYwo}m0e&L z6!GQuc*wmwW+!y2i&r@pSpY0b&@bhOi!C5OIXF}ejJF(6zDlcB`s*l@c#EzUQJt95 zBq}fP&@7>|KBpYgmlgenCDC0$@r_w-Y}YxFFb35T8fSHNj-wiqxg&;=}pv%i|DP=($hM>Xz z&6X`s0~vwcF@&u0UQiWTEHgi}Oa)8kcYv&rjD*Fa9_?iU0RpfZU4sr9@Eg9df+C7X zQQachv){l2uqw-IV5IE5^RN83t9K(#CAC%XH2z%W9F=`DFddX0&iso5`&vZiroz* zm@a$2hkMDI!K)G&u>?O_EMr*+Aq81-ckK-*0YNTU;{UnsTw(?mG&#Zh)TuJzZ^r}( z_i?CHZ$(M%E$A*j`?z{QY9&$8nk-3^;wpT};Gof>59<(4-)*NykmRp0%b1Zs5An&pkgu zT?k?hW);j#JvUuoNcgA%tUR%=311G~&SgH)?kS;DO-G*TTtIp>`eq4elev;<+xxd& z18I;dL%uf}o}Zwo^4b0#?Tt+6dH6IV@OCar^b_@0Rg$k5~mkexQWvRzDIhHE0OLiub~Q*st*RW^~{SYg`?2C z2$PeTx|=S7pH~a4zvPz7^i+Yl~-L+?TG9)P3K{b^Sp7-3DukWm<#aqyixw<8#$ z4^K+EGPr%8p@PXz=&I$>T`vjMOg01Nv?udjnFt+mM)nQE$LI$JVzDvj$s&5p_e~KU zZKC9sGQN5D%3{49E2Rt4;G0h1wR8xPk$9Gq$~&7*2_6$Qxq*RBJyTp7?6o*=W!^pf z!&SQW+jWLKiu5TpO;Ub$o`7|e(K;9-T2v<}sxK5k%F>Pvka%4QB#9hEag~0$b>j%* zPL=5nwU?)r4^Jy?>y=2k%LLRDeJ(U{M)EQVs(aAGLBF7sn{Onjs4!Q_hG?R@IXgs0 z+7l3ud6l;3j$| zLo?;`*aOi8$&Uo_@n8M~K24*HPJ$4=wVmp;qutw}sK%y}qKvf)ACk_cflJK>hUPzk2$0=u+=b&<0YijXMsgP(uw0>h zh_+A5J_lD+cDy&h1qfADE+-i*ZH0foVB+(2#8K6!wGB@VPS)da^$#oxK;SF9cwHy~ z7o%#8(VZF(PaSAH7gZm<-nxwel??l$s5^DZb1mz+$Yh8V0ft_F%zaorwqrUf#n3jM zk;H^whAIa$!f@Op_oXEtfUH6+*WubilC%yooxwYbOW0=KhdG%cc*Ax9;rDEokfxFv1lLBXYoNbxAVN;p zFoR*>g;%PuCfB3Mogm#@?+1uQDBvI`j^=JUy$XtcT65LP2&p=zn?q(At5rnEuIBsA z5Q^oUQt08?Mb3MNn=vk|N(@9|xB~-jd#gIsqg1B-rj8&#>3Kj$7GTNs(=0{CFGvlo z@PwflB`{sV5f0VfId4agc0G(1gsmB~d+Z!?0(f>a-h{CAj=lX8jdIbJw$tsxf0ckX zB9T=p9PgXvvJB>eJgTBE11B<+xFBMLc*PKS3lhYej0*;N-1{78RisEDxYP7Oo_0K% z9q3lhMH)PMiU=3b#zu8=T)G+oJIf0K&JTSSAI1if#vO%5dyeR)+@y&Sze~B2PM4!( zneIrMJ(K1!Gh(vh!=#==ouM9a;W&!8A)E?;WNuY&m_6u zp=$?|Zen1vZBegu7*3t&Qvq9kT4*|`%Q2gbV^nu%AW1}%ax;eSmZ$Fka+>iTx(mfs z{gG=%W}VE!lAjN$Sx-7o=Kj<~DzNS$CnMcnI|E5YD>g(8QJoGYo$4m5ci_wS zb3}rNmd`_26lo72-7!Qc!Y%WX@}sL2b+fvtWMpaAGlOyyF+;9rI+dll;)vG|h7mO! zI+f=qv>mvT;2GFcKT{yh7KiF4q)#zVI-w6KG-O4Kpohn;dc7Z7+VHQDwCr0qWo0}7 zbN~s0UWc*lZf>L?V6Y~7o=+=VWIl%TJQwrI@7k4BV=F0{Hg_BWGIv}j(_%2afL-UZ zlrLNY3#74;3zTe{@g&hBT&SQ1Rve{GP`#EQU4MJq6hUP3t|5WEtkC+F-`0B9jkiz) z`NTbB5S-j80RbpA>Jg3z%gGc~>e9QTnz;ayM&}UC2Yv#4e7?6$Sne9B(FTkz$H&40 zFm;s&lh+G}#DJ?}5boTw)`0*_+$Pb3NpFubG?A{6x+V5^ZU%>u9URAsb3E141#b^J z;!F#W9?ZwYZ7ClC>O`Rtg`JUZTS$_%fB~^81q|;A21vpJ0-*WPw$#d|U+6NK(o?Y{ z*74cxOB7~CP=tU9oKy($nk>s>%wobR?RQWlhlDZ-NoM7Py9=m3w3OaKg%_t$mI&{( zxKTRI zM>rYGdRH0PS0DvsKmh_lzCWn(Dop^qL-Cs3Q}-F*QnY4JM!WI7igB_{4gHjoy}liR zl&rJJ%c+D5>lWA`G2g@@YaYer-N~_wl$ILkn*D5h3`Ocqg9T`JbS`@Y9(&WIJWcxa zSF5Pn5k~pDE&z9a76z;}UYHC_tvGA-&iwL6Msc7)X?y49vi}L>pKPA1EH_`K3VcXb zvRI|W7&D+T>aH_%f`$N_pt@^z$AsR7>PaZW$$1ZfueBxP+~J=44XiUcs_>pl*+kG& zIs)R9wgB~%E9nL~DuR7r1Y&ZkKUA$@E*XtoI^KR7R_+lu1my3Wb^y#K*cAb7|5O}j z9O`+Q5}%df)!S8x{7A|Y>^N_;0Y40aAtI2$iG5)ajMNEFq2Yy7)WmABhxAAb>Wd?> zr z4*)%2(cv-#q$|nfnP&9WgKJ-ld5qIAD2*hl=6MYo_0W3Y`^pmeJv9SnxhP=&z2QO| zY=9buB^3i0a(@{@r-=;|u>uAGWO6nf2uA%g?hQarE+3>j3)&4wxGjow=>9l_GK`~P z(Qf~VLKHfoY&wU?kZ(nSN2G|1X#k;hK^k4UuxxjXcecu)a(t}8p{y{=$1e4;U=XHl zFrsKWw=mxO;pSdcM_R7k;ra@ec?>ogj04+p0t!RWZH&#bG%MUOp@WS?B$-!sXIU!*fB+j!zBPSEx3LL*%{mCi8!M6%j|-@}?V!(eV_au!Ilv%v|vq7wH+r z3OJCCEWqEV{vac(TOnYdEcWS2-)R>{44id3&r5&>!3VxK$!1|WDxypWS03(!PE1fXq@ z&ACk^e2Pw~TvrhEIA0ZzYgmdCL4+w+xLI(OJi(AT-^1uld#P&NNz@+%o68izlOthd z1qBU;bGUh_=zjnVO29(ycql(@T6paZ2kOps<~% z?Ph@KF1?%h?8KP{lCKLCV;k(r7XSgq2MkFS*_t>Seidb(ejg#ot0r;)5WB&hc7)sW zMK9dyH7YP*u_bui01~^5ppc83+b=us`#H*D6wy8~=P&p&IThZ!i+AMKjZ2%{0kh_o zuII6cUv${4c8>kv6!$g59Dhnyo**||Q=Tp(<#}GJR&HbSMUl_|FIuagRBGhh5e}hO z{9N3k>H<;@c1cT5r5Qmwjz|Cl0e;zqBwm2@uSh!b6IdParL*)$aEk0t+@XJ@NrF`! z_HypoGCg_DK$3gq{HB)FngqcmUNYZcf{r-0L(Jy@J3Ov16$69}z6)IU*Z3eLp}cAf zBM|%BJCY1Z%jl^SOHV(Iu^N(4o!*)K!VKkP5cc z-T=rp(CTj|LL|&Gk-@ffUYcK)od;V~!E#^ROC}nu4z!tqJxIH*fm_sA+>35;r`#tH zBaFcdV}T;z@_RO%7Ny4)AYeQaae>T7hl>z~{etJ%1uin+q6O&t1#bhqL1q}k`y_DN zy-k)Q0)y`Wce1@yUZ83kDQH8r@@PF26Ih@y1*fE_H%E~aK}5GP!-b`N_Lda91r|n4 zz@O<7b`-y{djt|_+2l11muez*t_3vQe1jGhAgQSD4!3vHq1FrHM&!L^c0+#Da7mPP z&OCAi*}-dY2Z5ZNtKZU}iA{Y*g3g}#V~m`?GbaDBs#z@Y>QhYake+^Qc#bAIG# zmV{nsZhzgkDe1U+vZiDVZ`>B4WF7Y65H=`YPq6?3uz(Cq6Z_2ZeXT>hr9dof3|)pa~Qd zi~qf5vJeuG1_S{#!|OH@Kh)ZZy_Mr)sXZL zO6FcJ1bjY-%m!@eeIK|7S!Hb!Uo4!zhBL;1X0z(E;{dqlxWt>RNZ*g6NZCa{1rCy$ zV6eKo)1_Pu6(-5B(*^9o2cwb?sFnSmKDR!?5<#1K#86x0T>vWrR%2b8^0_t}jtV5l`@D~|$`?jv5m*iQ9 z|El;Q{XI3>Y#49|;NRNqKhftx{;87eX8@!!}Wa4B>NJl3>>;!=a z&>dM$ssy?!q-ku*C?fN1qStcqtExg}BDhP9uB9g`9uX5YRsPTgALa(nEy%!W* z!SXWF+3b|5yoNh4&`q+_&#Im5CENgh>-Q<0js?YT_)1QuL9M& zOc4x3S5Fm4Xmqn|#>J$)^w-HE-^GAu2-7)8lZ5Q|>QIuQKS-&5*yMMUO5Pf5y9~_kh zM$|JM-Y$r9i#MuZ6*uR~AM~@;f0LWrQ!T;UCQh}1v3e@;9!I%pU`GKUUoDn*=(>V6 zpB*Gj`s?--Q8mT)sNz6Zo(R{#q7e{dklkTPF7QB{ZEDM)e)`0uAhzOZ40|)j-ITvX zwmC%2hc(fjMomXYNeW$9#pl*sgM|dGXyVBvp}MnxFacA6!o(|P_vSe3QwtuYJo7>y zDLgV$GAA9k7fUS>C6?ZSNze#-IV8eH98(-(@&g~SdvRm4XG06lN^fURg{-xBE|Y=R zCFThWh`Jm_5Yk!GjfcoUKm-NyvHnId({@Op6t@l4=J9n|vMJ;ySmV;J!VL0-e>#c$ zj^xn?%7~GFH{YCh2N4XPiMV$++B% znEEZ)y?To3F0d#RfJ_C3ulnWGTBPAqmLX?amM>K;ONn%nxO0T__DZPON>}<>D5uB$ zJ1PSOiXthK5d}Y)Ut55RlM3zvT}3^?a$*6fnQ&S{MQHIo(^6>$;7Mah+Se7#bhNiC?F@XW{ zXZLAdDg|jpY&m@}JOUlIqGI0qnan!@P(Z+5`G4M=${<%#mDPRSCaLcM9?>7aEzA|y z)!oh>StDlf|4VpCOB&dv-~RKp{v#Nt+AdYN@2n(0^&fxw*b|L!S!1i%SsImTH>&}c zSZ#>)by_Umu-rKWs=&)BiM@FqPLo{Rz|gga`KmCVmLUN;BVlO)m+jG*H~RpE7^#pj zU~6~x0DJ)tivvYv20PCS>K{$Hg2eCQ4)baGop3-zdqTRtC}3t4PQXty@Fs!X`qCWO z+lPJ)AQI|;wD4hRJ9~9y_h<{-Tg=HV5B0^=U>IWe@P`X0UKpyJ$)(TRR??Hf{c}H5 z#f-BPkcx)pO}#FCs`&O5&;+?C)6AN>ANO8_ZKVrZs#>em=~^CelJqSBEm0)soBr5o z%D`KVGMQ%2eM5zmgN(y20--C4R&ISEFyCnY2IThCyW8*kcVCr^xv1@q2ny;}Z+SQj zT{LqE|GGFrleS8Ib_zedpWy4oD|%gXnWpY|#rzPza~z0BwDuy9ax^kh5M?}LDt8fn z8=A?xeFvAg0l~oDviVmz~ZL;tl{TfKfb6ieT`>4{Z2B||wzwX_$7vT?1ehz;c zfqx&C(0qYO07rt=j^X{zZ#MAn->Q98#y?b5Xzy>M`2E+aK!5Q0a8D2S*h#Ay;xSTx zVJm;`ML-{)e?kJh#|8?FzrR-{2ZP)IEI7cCrM&k&@dG9UwY03Sf&ZU}rN29?3n`qs@6yT`x7Zozqpu3IsQHZ|2{1J{;aMIoU@wCw5{N3o+q%^ z5Tub7WeB!%;~lgs6e~{3QV-1UaCJ1-s??U~?X;6DG0Q}VOYH1Hrl3u~p)BZMC&_VT z?5)lQh9ja%9t3J`ix!m@g`Xzzl$$30y7hil$nX@xR(Pjnk>gIWYC$Y^qU@ph$tse5 zcNJ%W#eszYS)U8skXG9s^t3#^b$7jIgX_S1M$wQS;(CIxW5OSQRoadgn}wo7M60Md zlJahAkx9aNpBQeIw;6#LPL<~3>fFcvhHcP zU0JL&Gn79$sho$SP%Cn*Y~q!*_}(|uMY?#*vUXqipq&WV7B4g#03d?0X|Dd+tz$Nsjk(I^^vn#xnm#Nj_r?U={~c z2t<|o{X*y?A@YVDUILU*UeXF6y8xiz6ffVNz2)%m#ZnY^Z9KcqBhUy!4~KiONig8W z9xPsD-%Y8#%6#nvTT(0wQ$%VBH(4wleE?E5Nn z<`;WxvAUqbh3|Dk^D^`#Xdl1@8^;omJP zL`boV z4%ZZ5GtH&i(02fm1JYS?Bx#Ys#n9j?h69?~P2>i&6G%A>ZUGmazzDL+z7FIbB*W@z zl%2qce|pkLlWyU>r|X6o(az(72<>wRnG6FBcyeihEYfDPCNe+#Qnd43jt6rEJ{k6D zCt9ovx2wsGU2(?G>*f|3N+o3d7@(9zCEb6G{Vvu?T?F2pv zgi!D7s3ZZYa|bjzpxKFZr8GYESer`8WF^P@t#S_R4bcOz+^|%)6M#0Tp&+-L6BF18 zh=GW9k7d-l?lw^Ok2mnozblx-J3<3$4R<)QFpKPU6Kbi=g5$6!SUY=@RjR-)ge-~2T>zESl*>nA_{?3aQ?%=I7C>ume<`WJcZf8rwiZ&{xI%SHH; zpZpshu7CU@{8yIeU-DJ|8jJ9k-93MeMfexTp1=4a{BxG)-*yrHk%#Ml;v)RFL-YTx zMflH7_|GEzXA%Ch2>*qj{AUsVvk3oLg!_~KEW&>l;Vpvw@W=lL>bc&qJm>)cru$M$ literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_jbasis_full.sympar.gz b/test/python/wien2k/CaOs2_jbasis_full.sympar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9abae895ebdc9ec503081f756ee7264e54b54e6 GIT binary patch literal 7354 zcmZ`-bwHDE*G57I0@93>P!JSww6IYUqeN0tVlWvZC{hAS4Hb!v78H;!DGBKq$^b>B zk#3|%It1Z+rvBpnzVH3-JbUiv?7q)^&UIbqoQ(j1F1kTn$SAJb8{C()b#bu2kGgM* z^m26-zyILQU3(9*H5&_$*&3$9ArapbqGb}Nz8%=2n5cB;}^i5F@Q1t!$xMm+dq z5=`MKDnnkWp5ufZ_qM>foxDwDm)#_n4cqmj`Azr9pGnP|eaE-pw*u?Fefp_&L{wf{ z?5uy@6yJNzLXK_*vE6aFn;`ghP%hm6Wm5=qSM9eo4csGsP#{%W9G|qN(&gH;GdM=y z3CV%mL3b_otSQiPw?DsE^`(QJJ&lu!Tj5eAmP;RtF+8WHB@b=k;|AL^fGJP%V=jYe zapbsDBYYB$IG79m5s~aO}wNZv3=F*tY6}!*tL{qkPT8L~(+VWkIEhEY(&i zd#`OU^-ppP7V?~7+;ni=i|>%bH?4$v!=Pjx-?^)1Z#@+wDZeuIU2G*8oa0pqeh|+zsP9v`%q9Uw(3~^0I`43wsH@=|n-s@J;^Jq2Rku%_qq|yZc0* zjj`TX0h_Y?P~dCu7pxcT-mB{LT4UN5KsCvNBw`oxLJ50wg*p579uF@uAK7{o=On}0 zPw5dQnb){MfhT$Qz=0I#HXcF$$Q8ytu$AB{q>29D|Nj*c&_cNf#xSjLP1$2M8?UbG=~vTnlt{9iogfF=qIptzwBvW+@b~}|Jn<{xuo_Qf?A%qt^tiB#Q{w9HU@cQ@8t9q*9wbTf z=n2H%>k^QEF?DYv=vFW9KG#81+!Ddt*9CQSmH@S7o=CN>l2+C$X&!?hQAo@tBlCoN z=0g*F2QT7^NAR2jX0yM8wUEL;at#QG?a9yh5W>f~A4&|@;8OmPXP&q4A`WJoPX7*^ zAdo=jm@>RC3-Ihi3JM4a$}YSO!A<{Nc4A8R8@TwHW_FbnJLrH3m%kyT!<;>+ppX^% zl$!UTt}FxAa}kx`VQC)5sxy)`e_FLh5<1R2y`P|Ht0Y!?^FrjSYPmtKX=`cotBZ#k zQ?;62zEb``hNvf|tUd_ed$|E_2BqE3ZhP@3>9@s#&piJUI3(k{sN%fd-$b3Z*vv!> z?%W-T-Yhn5qy(*H%0Ao_3m)i*$leG1z*Cgj(6@B9*+cHa{mp=@RC2%_=u7W`M*;h0 z2(@rQH}9<1*EZhS2SUIhcY%PsSOv0xn|T=F8aU?D3cPU-x(iBstGCO2MS<=1|9z!G=Gs3!M4PWTc(C2jLn zJ{zfzi`WRbBI6OZ+~U(zsRjI;)cOY%&Y+olKl(I5?Z_whdyi^1LY`~{?9(wsx3u{* z^$P|pelR3?No8!>p67!GEb78=-*wWFKx`{9%iynwOIqSs>s3e^XRVr--LI3)ewf-f zXGlx7o;-!4CS~P`{|qrDkYA(%#o&ODe*z+KY8u!&FKYZ^qv|zu(#Ce_D#Yv!%ea%- zE;)|qL^$-u6Mxs*8aVafrVum?wp=w@t{X&fTdM_tA!N~5)z`)2AwNhtX<-D>kF%cd z{8FU(s2@`J-w>ws;pzzG^f=d79#nOye#z~m4tDMBDplVYY2{;va3A3tV%=xrRuIXA z~$e^GYW^)|>t|@S?wZ3=KQ+-#P;fMy>?6LS^ zXBX1Bt7AXM+)(;4?RF3WxmGI=Dh*ylsQMy39twh#6BnAP$fZc&4MtN4{$hqX5}2E- z5LLM5!t{vZ%xmWWjv*B`6YTD! zu77&%0Y}1He&;*qG$VPNv|Plh7(RXb=HN*#C`&sT>dv4*xwG9xbAId))vbAB_I{;g z5BO}PRNwb(|97FX;+(gf)X5-vjGlXGNAbDnMpF}_p)n9W|OU@n@mwAa11 zsQ&$2)vl87Qsal#-5+k5(yA`38fDkQSVHthWxOz5e$#0EQ_G4Qo{TTe1jxTk!H!~j zq@e3=S$nNr((FrPAZv2Pv8Zye>X;Etu-F;RO0W`LhE5Sn^|O2OuF_E*(?d@nAslu} zH@jZhJa0P1hyIqzY|a}+hxFWE%vU@jpJYMD3ZNP0$vziz$ifELpe)(ypf+@V*-}9- z0gLs1Czc} z^fr3X$(NxTkH?dBWJY#?ZOwX765F{}5-zsg=vz6vV%NsT_qgP^YnoQ#;+kA4SX!-9E4ufSkp6fr*Mi zcQ%+_-_V@e=qotDeHsZBh{~ZA2`yj$#+HagrHLl;+3~29L24dt?q$%vQhqLZihZ54 z$i2t=0_H+->hzKnbi(CU7NZB_B~SRPC;hVHn3+U2^YJL!DVFP@Ew2W`&rE9TM3{AJdb+kew0Ko+p>svV(IL<+vExsIiT@lCLYocqz)VwM=d$}H z$1Ew=QN3~Dy?vb;*n3!HN(<$Zzoa4ODnHYf*@7rT*@$jMsC5u>hO2^n(KM_HPD^`d zTWI6Ud~VfU4gPa0k3;NKnGILU7F!yU=6a1Z(rFBP74pVn_c^^7-Va?t(YfTM3*Pm4 zGJyZig@tomF<}|SE@<)0s=uCsvhgav=~9eGPnNmS~Wbb44h2 zW}`nZ;l^q5tg)Oz zXhoj+fI5p~kxlIF6j26KR36I_M*1_sZvXMQ>N*Du9T_Mp@l!Vw&mOhKG728f@XWNh zO-Z=>087u)GXX@yD?x}!c^*Dl@nmmiaev^Gb^Y*hlC)IW|4>nVF`6)w9-#ZG(@)LQbkKW%j3=bNVKN07e zVBaSbV5!t?oJT*buKXH%Hj#fm<0`eDJ}g%EQ|J6ffs9syu@YxM%J*HRLEiue>*p|; zX}H;Iu19lUgom&2v==yB&s#3_n9wKqR&JXMxaJ^TMl0)eIatc!!_UCAbK{g4pW(TE zfv^_&s4EH`RI*X14<=RWsN-BCOEZFsFarltu{CtV5Y-ylH*Dwd@x^%_M`_KFjaTB5 zxH_lc7H~xTslYE6Q8&CJO@`-8UJw|tM*OtQnK+@mk*cW-Qhmy<;+@Hvvo{LVQRi+L zV9Pb8(u82YOZ1AQJtq@`epEt|jEA#T94nKk0|)HU?ZNGaeGT_#y)-|0^XgzigB|la z+@Y4U1a?lk#;|;=x9UMpuP@MECo^aeO$(rmaZ#(wTgexa$YOqLjjcH7JAc)fA!dkS0!AA|cqG!1{#MjFgD`|3_^PNTv zvW3WZZ77$HVet#JXSyoRv- z@O(v{V`4ne5$N%3Ji=d4>tOXUh8pJWId$@3o<{c&388bGH1>rq>i7#L)q8Rut96SS z#e0V@isNeB+=HHu3&_o<4urWR)w*0>qe&~@?fvlh!Du0o=w5HdGy0+@!_6m>t5MC8 zCArzHG1Er=jmyyME~}+G_!_jnLBiuF=*ngAB7>#94{+0TGE^evv~T}mEIx!-H&w89 zua9SD<)z_qbVEX|g3edsl&ip?&e6^mgR59FgIjH9y*Ba=x8<7jK-4AspIeU*VopXJ z2c@De+DDPtuPu{sWWPn_kYv$Ig&9a}<6bpGW`VGRrXy7k#4-W))GOG?Q0%ju>?&m6 z@|iw=d^L8#bhDEGJ6ol6X+-5t)+8*ut*}uWrnwofB~+v>7!_9$3QZBwT3pWEm2B(i z_bawaz(zgS_h-IC_4zeSlP6}uYlZb^vr99i@-{Kt1Ybk*B1M$iz(7qWtgH_rZhtlj zNCaxsION)gyQ2j~g_nCkz2AQkH0i!_;RZr9sn#ZHgFFa+CmylDY)3c6b~Pl%J2EW3 zXKSc0R=abx8u1a(c7J2U?6toTW1(2uKhpHCr~eHkfRyD$gpCmkXX+L(Vb@r?E;J43H3_wIzs4cc0 zCd4;0P3A~##yyozqz?>Ajxtvq-;38^bP43XoJl^KwQ9$;hn z`v;vF0lh*Yancma^Z^J&2}lq7XcQtIt|oj#i&VnVLa^iubSNRFH|yYW;>h?-yfZ@o zwW?%jiMLDKN3~mvlTMQzvG;Q>CmQ9VhecdM4-0B$nQBeOQ#%-6JDG7wY297#PSWR> zJ`XLLS+cec$ujdYex;Y|{hl|YC`Fk??bbv7?xLB3;^XhvQ{*)K9C2=V`LBzZi2#em z!VmPjxw{@$TgO+xRh>n3Ztn3fZP$n~(u*M3;-v2nM&F`_Rvp(S>$*5?aJhLSk2rkK z_7-=elJZVF4p&Kk5G1T#)e&#IhBxmwP1*6x{6b)G4B+dgTv7z6uv6pQT(O_E5u8IT za1<{Y=GZIgPnM?BA?S(eRVV7g=`;2p@`T2{X?E_Xm>ca!ZsGq|bC22YlGf|V{ zPWg)MAuXfP<$S?;m*|NXabfYCbcOK!MfgL!pi%47ld; zXhZwWJw;7c9}_Mkq=VnMM>C>dlRd9E{>5q#_`9N}-m(gQc(}ujW_qT_^;sV4V*)tB zbX+Nc-t5M~VK{8WOeXLG`qkZXE3t???z7`C>_T^_ibRs_&{wD$Pkr!NuSj#ZOhl#q z1si{!Eb9sHaj=8;BfQiaDyOqT4ndYC-hFt+OW>T&Wh4^$Gb^s4O6Y%C}{cBYs z04T@ARG zQKba&b8)d>i}BBau?|4bzqz-)?k@`dn~VRi5jY3gqMn!)kCk_;yGJkjz}sc^g6kHg z`;VHXIIVdjE&FZi37ZwljcB3E+CQSNvHW;$zD2pQU|7qtWbkrI|NNXePkxru(yVi* zpld{dTXbVibU2Svl!9d9NSI z3#(}cgxsXx3ijw7^#ltCusXIWi#hC?xKitj#DzV6ra(vZuXYXkPlrXCm0_D?t2v>mn)Fs*1y{KVe0ox|2H_-;ngcJCP-Fe5+%0|FEdm=17<0@l|! zBrq9Jod;g0BmhGO6lreog+NG^2v|HlxsUT{BAKNCM*eFTe{Y9m%$n5x>r5oU)xPK( z$z`Fl^EtU$1l@;p&O=m+hn86k+*{jI(3Duay638(nM2V75fD3kgm<3p#k`KFOmJgt z2MA&1rhk_rYg?>Ok#&?%(fjJ%E(y$?Zn5HsxA{YBQKfOZmd;GxW*YOBE2f_gi!Gk8 zTCzD0l%Q@jUDOW)(wF+o2@zJc8$OY`fDEc9b$ah4$3%sZ`gS2Zumqq&m#HPIL1TT{ zd8Eq)2tFa+e%>i+tjs=9)Z`uKIp)c_-96!C8O!i{g;o|J9!^}2jr*+ab>~A84j-6G zJLNcP&Tq*Eid8TjuinG^I$o4yQ`@+c>JvK7v@L}$zR#WW6TtE1Zx{C79p?V5WAICV zJNY8o5be~bA?0tJJ#gI&U%Zps7~b}w;>=`1u7?+5u#?|VsKRZaPz7F?qFgOE(d}Mu zHWH^_nJZmtDUq+&I0+t+k!dydiPRX5D&SoQp9U1PrTwu=imopRUf@(y1!|BPJPnkl zNA`KkxXobc-y-ikdkoeKUjw(edQ^>Zq9MtbyQH%H-F=;}$d(@BLHG^%HzQd1=bqJz zq~#kQym7>8spFjwgCG0ZfQ(HA6*M!>^*~0JmxfKUyT4soQ%Ycysw#?l4QQ9rv{RAd zJ!$y-Z9_)WqM6$ifqv-1ZS52YRnqK~LfVr(;U2??m&|YWz&-u!^piSA zm3^$`Cp-15eg@X_W<^~sYMg~Q{9C%T39|7o>JOPoW{LA2CX%#^N8KlT45L1*2l4}8 zg2BRoAMFeL!#iA5UWU4pwa%Xl8FZ}R+l9U(*P+3g*$=k)zF>r5Yp{gGT=_{op+0ND zsJ>(&2g1^+uAbUDRO83XZx$hi*AF#67B+S&nTmDC<7*QCrCdf%7b2{~^z{?adBXfT zYQsxl#OCmBzH}V#tiw-Jp4m!TMT4BvB4^%FPc8@GK6w~t~o7HPY3yy z2a$;U3s3=|@KN{!8xZ%LuZY)wJ^gBm{sUagx4=)@8tE+E5tJh+3=VSW_RSe39{?iK zcQoqsh=Z2;;tf?yd$%eM$keWONmh9aZ^pk0S0-f3uGCNa03E=~+;_gGw zVWoxeXUHv9ktOiat5%KK-sD~L?aLb2XeE4lZ+wVuaY(8l{2}?#%WAiRTuo)yR}GxH z*#k>(&uqj9O)WR~;E5vF5WQ1Jry{6C#nV+vNK>EK=|dx^@$hvfGESo=0V|~MLfo`d zN`$9)^ZLM(`V*%pWW`S!g=&hvZP|*xuId%W#-Dqhd!j#X)@%gv@G>8ajjc$*hhdKw zi>Cib_vI41&C!+RlD^=dO0OnW+?gGkh`A&I_5TcfA~!U8DFL0|6RsxoFDV5uIFpBK zVq}6+f_71yQ$fV;$&M4QWU^iL<$399aGUxs-wHEQ4e6V|xNAvC+0^kpMzYoK-&^Z7 zG1kzw@|wOZ{5pfH`aScnk&h1hu^nT(?e3Y-j__$WDzP~1`+Fah)Uoqps>iMPO`iq) zM}wbUDVgvaSMpm!!7WO=C7!vmgh56f+Z0ivuO}sEjD}<63*)CZO|g)1!I{3ykgJAJ zb+Qt@uv^*?pt)dj}v6s7W2i7m{vsE@Uv$ z{9vo4D?@9>v~J_HY_tYZY_7N?B%a4)y=5o%)X_R zEu9r88C}^=RPp0*6C?jFz0|3`v@|E+PVIUVuYqk+zNc$vFv&C=GjyZp#!au{+i&uV zsyeL5msX1Weso>jN_m|IEY*>EsB7mlli0E_pVRNQ~_dSfe7PkTgin|uq;BIYjE5VC9#ogU4xJ#hGgM0Dd?ogn(OMzcL-yy zrs>Cuh5Gh){?n}~d1~t8r-X!ycl?28w)cqXx4osMcM^$z18SCf#U1|5d%4 zc?YcOzc$BQGKxQ)nlL2rDBD`aYmSq$8NPa)Ddk_8bfCTO=)V8(eshnx)Ms1Ya?Ji2 zF88Qi_H@I^H!1P->EBiLTUyx@qe*DbJYNszdZYe(zuaR%&f!+TW$D#T=Zu6C>3fRx zI}!KWM9{QJ58BVel(#hbY`T$5-!q%x%e}}eMy2^T6ZzOT-FMLcEwdE5`m@>Qjf{9l zz5TzQS-$uEn9D7-!}ofXn`zjtIn4i2XCMCD`t%QV?w|a4b5)YwP^`q6?1Lzl5Jpz`fj~LHeKfExAX`j6Yj# zXzzOmPg^Z$J!<{+a*wcA;+>wW-~ZoRziT`E0QP>P(1Zk3uJ$*gjd!xQrm?x{>;9iE zNt>9jUH9*d374L)Qw85bow}Od<6Mp?;riBu9r`_eR)#^ISu90oQ1(m8wXW^7e{1p`i7$tMhm4G$ z-%zS;4S&RnR!*&0fnQlYP(G&=@|9@iUhDkg*6=Cr%UULe?~_`^y?xh0;m>&`re}FF zydR^_^gkzOqzm{%D@{)N0wUDM^eecJ*WM|ehVM0Tp<=Y8ha7BibaI*lw8_?&1e zt60Pf02WO))oTSER2zkGDNiPDMBSIhrarn*NY#tnp8X+sZ82P%UklaJiUrb%qu(z* zUL}76iTN0-Q`v6-Yju0(lxs>Ca=qs)tF?W{NDBP#P2C!4M?O%!?BSMe>Rfii%OPp1;!OwrPs($t+~Oic z$nDSV#c_cA60;pHFkdmj_{R9}z3!8|umd-$(VUl>f|+7-T{(`%;*Eq|pk}TKu&G8> z*+yr=um@E{UCgt-GJ!j|=Fp<%7VVpIGTloFNsI->M>5u~_BTanf^N-9+c@}_1-vvT ze?sCPvFIjYRaEXjgm?YlpC<;(>bYEJrS0Sp_2%+xS1yiJZ+{YJHE^e#78=-pQ>wLI zI-Uiy%Lp%8)-3|c^+=2}OfK97b&aJMWeloWQ}1eD#Nqz5@KLgSi}9HFxsU@8)6Mgt zO}C*CBEx6zVJk={&@O&h1;{!AP?Ypk7+HP~E^E8Ce~H#E2MC(k7I6La{I7*0ZJ>yP z2gtMcLK=#H$;90U{=USzs&ykU?UbtK&q>KMH zi3rB67&ondg~pw9Rv2rKxSbMAlcfpHyp89N@msx6iF9fIm*?)*k}Hhb#Jv{#+m!JO zw-L_kmv3clhobi{NB6&fcK93DxMceEH`OWusHMVhec#Imq8!Yn#t|Ob|aYQXz;g&NFW?mW*TmMI+=* zccJkARa!WcbwKssqM9Q>J$z*uTKegu98RseKf{{MWs-T?&VtxZ zQA^O0>EHDe<>zu98tq@FPkA)T_?0&!-Nz!L0^AmHY0w6~D=A{#ER)B2`yjejp%J zBT5&w_+wik^1OteR6onSumUA-aGY*7+jc8$v1$2iwBqX#x!o||d_;Y+dq5yhV1$Cq zhhY_kjK=r?w5E`rXZagD<~~laVVyz%4JPiV82Yhi$bOa(0H7!w;(n1>pHfABSOwLV zsV#Kek9Vqs9blLcA|Az#eO-@~k4YmmU?q>w+@_NFeQVQ#X75(qg7B1Swb(I+1>z+V zVoDU&q@I!us=Ci<2p1Fn>~T$X)SH@v^r8EQdcCofr&3=`Kz!k8fIN4QVY6Y0y?y5YDtOitiMBoo6i zN1E~Vp}bXe16&~_`BBKmX1^<=+?OMSvfy6J?h8VaPUn`UR`py_d3pw2Za1o$+P5;p z`bzeL{EJ8(XlWhjP~{umraBL8vuIR-bF=XBytrvSO)9!6GjU&Zl6F8WU>mqO;FxjL%N=KX^D_v$?;a51I1+ zW@@Mt(POYlLWN4DjOzdslYJ5T=SR~=swg~EzeJs_l{Xa{H^{2ll2=oA7c%yn`k!cdb-8z)2j5g6e(g`J94R$l_6ae z+C%mQ_@aY73q0uaA$g5nA5)wb5*ZVBKPktmud(W}*7+|PjXIT`sUcIOYTMRX!d*O# z`l$Cnd!9wKH8<9Us-5A?wChjpv4@`81y_&WJz1JJ8InTijBMk^ka`>s#0 zPctoHg_6n+{W&tNE~GL;Pu)eQ3D>%o#nexLBBnbRpK`s3gQcyU<;LyqkoJ;8$*+;F zTh-uyArz%tipG*=EAEm!de5|Hxy4h8D8HH|kzRcUrPpQ^QqgH zH+(0PBlb(~KPy*j%Zi?>$SrK}sHxwpDaW4#BB9HeKLMQ1CWOmx2A9WsQGbEA3Q;l{-k^>zn5e-?tur_J5~Hc*2xj7B z)30uOBo(UqW~rUaI%eZcoo_*ix<-?tIqk{w_GOO*;)adt?I!5jhhHMhk z(;8CS;y8jyux&1a_OMS+v>$(_nWw3v!%bbUyO>nKmOV5CT=K2?P}%iS$ZS^#m4kc@ zpgCT~-=)iIO{lm_|yJk#-ewVO)s*%-niD{S9%>vLvk_Iw*LTF6P z-_z+8PtZ&~Yx!W)nZv>h*sSlAYIRCIo2%EH_a<%HKf`lpR;tpmIiMo)O*=Tsw}vf4 z!I+@8#$WQRd7c;xqGOyKN&E;_@c+i@=GVa?qqj`|@YQXEP&uzHB|0AmH;j$pgTtmy zrZrvcV%dlHaNpxr&H1#W!JB|uYA~rY#Bky6_aFXf9#MY0%<~7$Q`1G6gwmMk(k+x1 z?r5I$XyhiI3=6#I;%E?ltI8*V!_#SjXdg*3uQR(2#z73i4k4NPD#_uC%D41laJ$#})`g0{i%{*O*SW zU^Yp3#jQu3ph^FT>vQe>_t7Yc^C_5E8=yRXSOq}}0$S8INoOX{UN`~pQ%EcO_dUTC z)QNK0>R+4BDUaFi2*yHO1kUR2c%q+0nnXGD4jiq=aNIMAewU|QI>+tOk7WM#XB-XF zT%A#b>KfZ|5!Z))RJ>@8Un4au$CCX-k3Y~)BYo;@;+{1Y6m(R5V z6z5BLM={Tg5f<9S0#FxIE&J-6BT#wLZY{QnFHb^ooSUxFsNgnqJyn;Oe`IQ>zqUcm z;7T8)V?@L_7Hc$N6%klO-8j? zBPG82Yg4Qf6v31O)j@Qn*1@l3&B&K+V67H{_fj`|qS_LV1piFTz333C>R+t?OPWNk zLR;=vxKz3K0^N6e{{DOv1-jkYt2EA{`#lUm#{y*S_BRa>>mgm1*x>53?x|LE&-(3T z@e^%vOTbd?O@Qi>AbzxtCrN`Y1_yVPa13+qTy>6`3DYcUk_fYR!RBW=Cn}uRoT;T6 z5!7a^NFfaqro&24i+;zbq5Y1Uj=IwL|0II)!|JG7OIlA=OiF}T*f7&JZ2wI0>p?WU zX|HrA(ppPrCXR=>NpBF?fr`aVlq7P`ol?s@GNvt#xJG%KFQkPQX02 zLg0Y>)bfJFlaUvZ!du@I7)_|wuk4_*sc$Ddv1Doe#yb@{)utCtwWZE3m}0YKgPA&^ zF|cN=yrr3J{Zmto;Fmimo*W^|fzRbf!$)DRfX})~w=qCqR?G=0ZFCWobKq%wq^6Q?*ERaK6p;9hLZ^Wj`>(f_yo!AxTd9cf zv3|IJOXM8WU^2@LT>X<_hXQxyjDOx@3p2+--JvF(KXkA;_fe0zXbKIVzU6k7^2`Se zr&z0spV2x(^i>!W&{X(SsqyhV_rr6E9P|EVB_*P~P8}z!LQxe{$mYh|%uAonUngd? z1d$F%;in%}x61V9D{09>QE{vCp<*ph08H)=?4=5>H{ulEYqV+0qB%_{jKEsob>CD) z3?|AiT=AGr#}ed%@xNJH2@3-C8u)v2kJu0HD9HYU5LgP&E}G^37jSD zJ`cGNJjct~z%fi=m$lZUNMdVw8iYf|E2}Bt_@uZIvYMvy?bwqie*AC`zK%~X;27y; z(#B5nT=efu;&jm6RSg4WO`N>(?_SAP8YV>>d-mYk8I^^(5r(-bWJDPqHyg4|;r>HH zFZz4;HM8P@dj8$F@?i&o+f&a&c68zSO7bS=+zfg>hnRqaL{l$kHWpoxG(77~%OL~0 zh1}AC|HG6$!VHvskRfY7ZJ-*umL(DnzJ_9$Bi?0oEz_sLFOiM@vno_)8}u|^5MWYE zs$~nHfY=M?5b{OvTYJi~SPTu7*=W`F9jYWtW54o$6Ic zSod};Z}uvQK&VArE`u#7xI&HL_$vOMDi5Bl-qzhoOkP3*i$NGse3z%$jJv723sfLt zr5v&`vGaTyhLlx@Y-JSY!bm=s1%0<!La=yod#56H|HwK9v2#= z$f^c$>6Iz!w>e_L4Y@RM^(ol~iBF2_M!$)Kxwkj<#rbn98leo^%8iMvsa9AT^Z3(Z zl+QnV45d9l9hQ`5^KPw(t;v}#Dc;{#ApqrJ}9s3E5klN=k;baJ?F<|$+PmGIV% zCpJw(ilyVE?(698Nb~Qgvb$3ng2MGj%Wpr_wu~N)^g_c8lxD?RW_=j_F)>hw1+E*& zP9(>&2pe=838S zk;(mV@JGr(0nXFM6jo4G|EP*X1eu{Eg9qfW{P1G;Vm>LgzKugVMw^$t&K)=0h6aUE zo7+oxcFYkqG0qP=aRH%ieT%7Mf5mwRmQ_ktX zB2vBinRAp*M=k!UfnjiKfUGlIL6FHTqRk*eB^d1IEg>AN!}Kl6BAF+wv+B}hIIQYl z+mdl3fe>~nz@@FWBQ;)2fv*Pnaj4;M-lC!&X-N;C^Ap`UL;wz%{si;X4nDe7wE%}X zEewmVPj4?Xqe{6vRP$H%OnB>L93iS8MjO0Xpe@H9v){}RT(8s@WyYOc!EJRa6HeCh zdipJksjqTXdLfq&=`2hfva5AQ!^x1TJUc^7VoemqtuKtBj_jJsyQu)Xsr3y#A(am* zXCe7#F^I)@Dh*$qr*XcQZbxdxBLpgR9O;MZ^mACq_tY@nh_E-2HLTt3rqwNoxn#S%9AxEQ2Ex*^=QqzDQ0S>62m%luEpX+^y_g`J+bINz*Shp+<8z%%u1U2W84v-yc*9t5T4N!;@Jy&6praD zkU|RgQWGWeG*4GOo*b9Rqf&Jgk8XpXCn;n;f|pwmg;~{z0cFzXCJCZKPp>un-a+vo z$R{-f_BJCFej#M3F+5&)`BjwjIf|i)F?UpovSB_K-Eb^FHldJ0gW3Vi*>9YL7aW!3yM{wjcN^cupvxA&};Mqj1EDMWBW9ve5k;rv0*guiePwA?I}yz!bT{TUYu)qn{@lLf^1fzM)&=oemO7Ay3u0$PvgV z`bX1M0pXdyT1(Lg${dnG&0b{OKvJCVn+$r}0p@Dte{kvRhbEW8ZJ$u^cneqt%P1P1xez9-5%@}@_%OZsTUEC}k68l;mAbR(!WaM%fJ{21bQYyV{B-3s}yn~%$V zmPm|NHTf(jHPY59RZ#P#NH5z^x|AmAbPx;q+k>iVpc5zobTm^V5=YFC2H9lC`=mo| z-RMr}j^u(Mj=*>4rl~kryO=3uo$1_yX=z(R_n*dL{`l*o3$kXft)6s<6m6 zYELOgj58D`9gMW$eJ+dnm9t7M7sY2pBr^soI7u*^gQL{5#336Hf@8C_(B#B8qL75m zvR=LN!g@6Jse&v6*i)EuM9EzOT=j3;Hfx}bngR1DR=HBt{MajoO$TlRkqo^-f$l+R zqP60Q*laoXZvdTS)`1A!&omn-Q+UnuZc;(cpOSM5i)q;+KG7+YKlBh>$_qrrk{DL^bFZmVAK9mtnPFEs)&~OMv5~Ww-7s^918=du%#dz$J=0l zlf_zD&!?w6<0EbnCk+zEj4@RfcYtV+d)>b2pIZS$fNBSN(4%PXM!pFTHIS+HBV*}4 zZ>niU^i(KeZA#<$`rHV^$Is}o+ao6%bM_Ya9eqKpN%_l;J5gXF(QCLpWk}o4^4|`` zMu^eOB@rt{vRp`QaAWUJo7AgGmG$$H(9jvfA~;D>#{5Uk_yg0b_P8+~mN`>5cgGwq z#H_Im$%HYszrt4nP@YVXCLs@VkJ-c&KGcfF1KBXSFODpB?o@(^4gV$uL=^R5f?_nxTM!gXXg(Oa>)Hb-ffoP`T89t{Mk9!G* zLv~9}xv-8@vLeD;U#Onj4DsUWD!ClfERoMYrkNBZgAY+jR&ZO38+$MhoH!{?DMVMJjY zZ3PT`VvtMrbhlh3v=GFMs{CXqzvPgMO1g{`ly=cRe3Bx-SlE0}GTmFyguTs-lgz17 zyCtF@bc0`|D-)gTs=*dK7o{C2_&Zn)^E0m$KRR+|vjXOQzZkLzG>cYmIqkCD6NsHV zR$?%Iieu3@0_A4wC3FT`8P5TKjbza`eRiSS&DjoGmK?T8w*6bP;i~#2MFE4%QqgKM zpUd=%@1a$sydnirS~e{^W-?eZR;Qi@jc%`5#1|=lyS_rvlR?AvJh_^zdhiHiSvmRN zxpAan23tf_*9Wy~6DX+&*Y9|&ru{0OCVSE`sTUQgttY!ZOf+*98rEAUix#%*SDYEP z%U{tol4sekoE~Q)H;RK@QJVkpY7e}aVx|6rBa5~X-lGUvc}E#MstgqS{QGdZVRiLu zZ7AkDSwfNl3WLJR?jq{3ta&<7CBTmVA_O}SNypK&GmG>lGvh6+yxcKL?1;q6g6l}p zHFq{x@18RM(kc-J7}L9CxlNfE`P4KDhu}ZB=p=&7m_wFic)4^=J2@Hsar;(*C~t=w zFXc_ADC~=qSX{s028U5nq*4AaoXSweYMTSliOR94fx!lF_1eYjuBG>b_dDoP>VWW2 z<7IBA1wg`NT2o)pQ3^&e<^M{%BDS`z6y!(i>j$@mSvDo7I`4LDc%+!O(^!^7EGb|) z=-_9wrt`_J%ZAP)^0jyV8{!mUemiNRWsa30jU2Ce{APZk`9KX5oikQ+3ys>t7qZS| zxab+)O-+pAWyu)$Bm9WQjwe6+pvC47QVN=>x6BoS>oH!mUx*MQ_HKSx=d%oy4lHS=SU$4$FsN)~_gI$CH8x6-ZD*(tzt|TzgSP)R5$ePYXSs z$XDZOUN=PCu=@b@`OH^2r3vI>35EaJTREkRQfkkVm;37w+vgXnXtvp3<<`2b?*4+s zlPHyOeiZMyk8lu{!eotN{qL!_X+AyRAD=$6I$50EAe&o%=444DF;~fJd!;felswd~ zpob?EBI?6LF9tB~rf(+z9$*Wz-fI=iL%uXF-1{ zFonw(OL?sKC)rH>z&xtXvcdCpv159M%+j3Sy!}V7&e(Uf9r!&sjj!BS7Gvl~Zh-_V zLIExpxC;PdIe5mvi0tVXCOHP5tUmjRnqRX3BYq93X+NZj)9++a`R(@h5kmCOJDS%F z8?1+$O!*y^`SD+H7O5|q=&e6uS{8NB9x-@|o*dUtaUwcMA{S{RRGow~5etvqrw+xt zcwq}86HDs~AG;VIXVMSl5&p7G@d=NDZ##4xV!MlnJH>Ax$Fwopr2K7WaGr7uJ%vI zr)L((YA&+?CXK+{=uqD1c|xPDISRRk3)j8#dQC_WeWAtXT1NmZeUzKvD9?rs#jR`Wx5`m92B zG}uNz>o?1O!w#BUY_0uFCf5bPcSTu0`rpl7jr~!0qdH9^;j&*m8(n-K>(T_l3TBa2 zQM@I5h>{Hhib?0PuL99Yg&Fz3F-zk3iVUWFOSib& z=7^4ssC4O7+%(Z4J~;Rfsa2<2*d)`*{%HS{%a^29%@PPLMaES7xd2oeH@3{dd2VTh zNlPv;;5V6&5yJP~UgggyUY#4CgqQPMd^_L(I;VgX!24z)mIm9mMQ%Y&< z2gzIf3j!>f+(N8OYhQ(YV!x1NTp1OtIMK6IF?H!y8(q|_IlmtdGha!Y8p$&S%e8+Y zI?2;i5LpX^-*gBv-PjM$56%QO>G~Ehs_MIaa7G^{a^}*8Q>duH`pUU~ldm+D!eg0f zkb2-YM%gzss6Cu5Oef!?vz2>{0ty)jRC0E^TZ04l@4LvINZc8Bq_3#PA~1xU=f~lf zAh^VQ{GN+r6cvZmh8=^i?^18jGG!NdHU79T#TW5q#1Xw?A&mIm%|wS{Gt1QTt}5a= z*lWgIXXAYAY}J*ux-8P_K$II-$FbkwxQRkV<3U+-BI^0`pb=lG)DBPO!6No4_xJXk z>f<`{8r|GON9NaIOlgaa$EVT9&z*v(sQ7)hTIzO%FUJP!J%HmL?c|Y(G?Ab1y%EHu zhj|#&s#N9cpC>eQ+f^(h?bN@`960u(qH7f6r>-}Hk>}1z+2PM7obUPYY?!Pf^)jv5 zaH!zqG{7Z_68@X#%~Sl2ycEC42K_n0Eyq4e;4XT}tSvdpa3P#Gz|s7KoBc}fdV4M-ctYb2dMcPT@do^;Hf! ztgDGT=oUbRox4C*d;bHDJ5SzJG=lc?{iu5j=w0JOVaiiOx0u!HM2Q~Ky+m4}&QC8U zN1KeAkDY+y-Rv1le&$YGy3()E1D_L9Y^BxT5LGpU-ZA))b20^EwDR=>M@haYf{Ne2 zbj$d!JPu#ngvu2=ERGycXC`=8e}t;^TQyn)MyaS7@Yc8;JU+8=l2aB)J`H%+B2DUr zt3>ft{`YYONd>+GMVp!<5lx&xjp+cRgKnjZnF)W~JH%UN$s|k(5D@cog7hCe|EQrB zu8j(CM!TXsRFbt0FGkv1ubAS-!qJNKcQW@^ah1&ftkoudQ#z+Caf)MylDm>~U^1nI zERE9E@+u_Jxm$0uDNzmMw2YwTlQTzphBSWm;Tswn>`kf}E$B5Laor4e{}cUe-eCcS_AZU=5w^%3CriLmxeNyq5{F^ zA0d8^!Q_N@WX=bcpk!XZuU2KdQWe{=bqWQ>ne0@8y*q3I$46BSY%;)VDOa1|kUqAA zcBE6RzZBkdaQ}2D;YchA12lZ$tiyRNkV8?Nd0I9i4lK<69R1elgT_b){8<&aY+|A> zQJ0I`GCSHK^v?u{d`E#?Udy?(N)Nmy4sJWvvKa ztF~FsG0Znzc`Z`MGAJ$u6bxAxmlTqjGv0e?zYxaC^nXuwHrNrT;PNhI7tqcg;{ab$ zSu9zM8uc-(oWwOqmBw}cxZW5F*~nI4qcHG9(9O3oZtqoI!a3_2x$h#qKoVyoQR%K#BAZq|7<5&K^~sF%ad`GiqNG^tTG)+A@=$ zD6a9H+2&&D@W{-tziF=e16BzwiU9>qxS#e%QacVw)ayNvMHq)o(TF8$?-uKb6T&0| z05h=R+McA^2@Kq(yEOm?uTmw1;fO>kY(ufgmh283%JeDVwiNt2`eTwm-4qv6hztp+ zAIOHF3W;vGJ#L)i!(ZW6SKt^Sh@KWJSG_EXHLveeYSm7aL{#_KSS*%PQeug~JClX! zy4212qaYQ2jckfkebQS}Gjm)#YHh;y$~*fwKZim`hOVHyDi7@ri4nvyW*`?XwH>~+ zIaLcR|032Ih^wEsfs)R_&%{wzi8f#LWP(VWV1$eXSVAR`ZPw7s*d3-IJrLHzjjlVs zD8N0$D=V`V%tX);U-*K!eWJB;WIirN{7XXCuS5;*`*HG_t7NhYA3m33ETNBNBYrJ2 ze~A<~=Ofxz!MyQ)n)Y?0wloPnc_R>xNp<#aa(>zO1u`zRXF6SC?*;o z{OhW&kAqU#OZ(Cx^2v_L1&~8C8FBGQE_WzJz?9=36urwgM2j_}HFe}0{kTUir(~LnZX~ME zxZYceJ%+KQ_5}b=61#4RMchcFIg!HA4-G5C211V-om_HePF@6>CLUjg8l=7U7)r578_9REXY{ z!81dd3oLsPJB3E~P24BwhC|x5BCv5{Yb$P7a$5T1>@QO^B&jXw*rjBHUn5N9sG<%N zc7)crfOiaQV|GVT*b_#=1`*IJR|+{avPgwR#ed%kn_CyYoLdma#4QO=sjtRa@^s?B zophnZ&gwp1e-(aAqdH8C7H!T?+WxMmFZG#=In{Uuhj|YAGgGrf7CT8T&e7hPOfIM0 zeBMbN!gfO1hSLjy*Y$T&{5B4qut;ddFLe%WuzL=S>oN!OhlN&vX8 z%cWi1buX2pU;Cgaqy{}?LldT^6MK>_SRdi4=n$f__uZD#wJ)&jCTJ!6bMhReThO2v z4V0%yryxj!oW@SzB4szQ-y2s_=89>~y&@N&ti+1{ngme3Ph9z3q_>mk04NXq z8!&p$98U|q+EeXL50G~7wB6SQhXq%};0Y7EW}fud{4RI%;*Q=aBpnYcb&N|Nl@-|^ zpQ9EM`rGHTvYk>bkPX0uhjX^Syv8sFhXJ4g0&}2aVz&_D*Z^6=IO5B{y^YM7TgxvX z$jmbH4L4fB&l>1;J3mmN6@+J494-$Yx;ABX^+KUu%}7PqzO8^-^O7zPd#NG4>>V~1 z@_r9yhBnvgC!t0PR1xaX^4@Z&*~w0!wzf-ovdGsv@ACmo+lBUBjKK`E&`WZ5Hydno z5v=UxG5}cUbmR`i5G%7P!N^G z?7UNL+ivg@$c)MZ?iU}>OBgPn-2@mf4-T`%@9JnYUx0isfaml4gh}bpg{)o=MKBis zVqrzj9=A)f_cD?g&F1%Zy?8BK+rzavxERk5w}_iZ6uO{ms$%jG0-#8ug;`$aaRYt9m|{eIpD z`Q~%Ao~=c$HNZh0l%rhKMZ*8ZWv;YC*X9M_OImP8`^gPh&f%%%X3L0W+{I!f*c zxctJl?B7W3op&NfaL7Ro64kAR6+gKfN{5CMA-hB zkE~KER-J6g*(K$-xsc7znT(;J9jxFmW$W{Yn;gJ+Sb|erI?^KW4`c4=2?#=3Ev`B5 zPF4o(j})E8PuOWhM{EjMrn>EE&*NVvXUB%ei*Ce;?BWCd;JV#ys@Cz1OTU`H7u}eY z2P6L=Oj-|Ul?Tg_zz+}pWBD2cP!{xJcwFOHze4ab47>a<)>(-i3w);^kw9oyR zL=xg}$_ayV8nO!bCv|{;?uVf5&h(}NMvmq}=?Qf5(x4(|?~`unXX?B7FZC7%oI3Uk z6vTXM7pE}SzFG?9v2SJZtmg{@U~=^O+#UzJe~csMOF~0@9+NTINBbC;KI``a+e

xtZn(^C6BmVTT3z_RKkm|n=5M7WW&L#_-J|G^4Kua&TI zcmOM3+Wt3k_TJ&tWvLH8Ic9PIG2q>wd_asZKO>SI^DXYGpgig#R(24{1*N53eB;L= zKunGzjK<&IxsIe#*Mhz0KxB139eltmP56u`*G@_$;V!L%b5R=I_5xE z8!*uNMH8^I(wxVb%Ag2Z{M_fHc0XpQVFe4$0Q&b#L1A!gSbJhg?HZ=cfoyKH9J*{F zqnKw8Pq2dyf^qB1Qs`jXvyG(w+tvo6p=H%pVbatYW|KKQgve=jP5BCwesQMI4v#)N zNNNlKhC^65U+op1(c2C`5YUZCqYMsXVg8}_czRFJ2@`hm80{E-F8(o8(~Wq|e|~eI z%7usjB!hYKK^QfEX#BcuASKG{ZG1qch*d&MoT=U}5M*LJ`#*jlLacov$R}7KBp^sQ zl=5OmywetE{wr*idwpaUHeEpF$1L+Z`Bn!lz6DW)%7aU# z9>i7W_sLITU~liL&4G3typGO4S8nkG*T1gMf*KVGBN+{AV6~ei|H`WWXPOUK7Dq2B zPw2>TRSe~+INWNvCuhf9vwRGKd7I;elMQ4hJJW2M(|-=sSXu55ppGLh>&Z%&|e-UIhADZMte5q*HV+YwE z!n+Iv!FlA?>Y)6{jyyU0m%LA{cQICr;geO9hrb)`>0?)36=<5Iir&)z%9dP= zq~Cri#~bqlXOro?IA&%+HYnD$Q&}+m?pwziuq@|k;RCX5pN2+1%!-k-b7k{Wz`3?{ z!yIjilJ7zhaf=VQZ$-I6;%XK97Q9<7()cjK2kd3sZoxZqW||6wNSA-JMazX9kl<9q zBO!LJ5(Q>gZnZU*ytsd+MixOk{&C4KSlF<*1*mKmkO+q1pM0UP42FKNVy8(VkKlWN zg1&t_qohdeG3S732H6^o%-!>rK6ogzUri1s4e${TJTk`fB$wQ$Tu7d1^Tr{PMkJyA zg(+FZteBdG0=qV=#vCUG}(*Jz~oZek>>!8IAX4Ry#G>BS;z{`!lU8Ga%^NhUI^-;!3`Ed z@FL{wrUrn|y|{ZvaUCq7Do@b(#2liYe~|<;)Jsp15&L!=|40rIu$XVpSAKx?QSE;B`e~~e zAtOheTaGFS!i6}LNalPG+tb%CqaeD=>t+QcoX8GIDa>S-pG|zgrl@@yhV5!sW3bic z)hM!u9ol8TNcM?a(ZB*I$%@iH;Sz>H6ajQseS4L;zd(mvx8%j#+;BR(<>_V$!oG1Lw+=;Ety z04}9C27)pevn@aID%gq(P0`tLY8wZpv_UBN0hvFvU-aXM%ZXso$IU|piy_So zYF1Cqem50M9hZ*s%py8qUTxD~@sTcbU3H zi#ii=$^|C;z$O`D7`>^~o2@d~oa`W6d{Qq@*8<|?>^V`^gI#ym0JRrrmW*S96AFXQ(T;J=jA8k5mF)xL>niAMzpm#dIeSu$X<(MGp9vq(@$L^yLAXfeBmP|?1a#X%=F7XURKdu8 zCXcT=;(?yC{|0XXcq*D{6prQRWqxY}SR z9JhJ`ma*b$#9@9A4ZbiTXHPU&-G1C7riaZknjHgS*9fOvam3nJdiPtn<4=pApu7)^ zshn&!HW0i8$xaRH9}FMoKz#v2rk6Gsfioc5@}i9&kAyG_=Xg9Cu!CeWuBWxuLT9U! z?!yj`Nnss7mNycNAV({Dn06k!MxNr(BI^itlYn2B-X5o{psdSLEq_UzG}ZG< zlu>{M!#0nl1rRLhGa4a9U!MfhqApDm7f_D4uQ$+QNnQ+Ho%mBCh-kq40j z3!0sP7{^Rh+8luLcLCF3=aN`)Sadl@dxp)IkO%8bUmHkohy91fn`BFvcg@-tznCq* z)Is~n+DFFtfP_?qwJG&A|6uC3DkMXfRJY^_hfiJT?$3GLo}>C zhL4IM*{Ldpx%MOpdSY){S} zMb6Jx_b}UK1BpEcI>Uy3z3u2I7|qMhnQu6ZY5vNAt@eGKz*klMTpX;zYX@9LhSR`&W4sgQ9b+2fFrnL4sE&Pb^2k`+22Dsz5I7~kGuQ4-|yFWj@Nz8)nkY~?WI%%++Q}e!%+0`946ST-cFb%l)hQwqygnKCm@Gb_gli@Q+K zzHrgi%j!zTxu}1)XKNM2vPaOIdcMD-{rb?e^ehjeCanVcxL^Y2Ziqlp}4QpZkwamLDuAKPV`K>;YI2EW{v=F1Vn^?^T_d9?E|G& zdk08)*QF#^E-NlO$_3AHj+E%7CC{FVMPdx*%!IzaPx-)YMuEr~%gr2@IAGxtCy$a! zlz4mJ7uQ)#F!}ZOj3JI9UN9SDa<#Ar65HUuP`0Ws(R|)4b*g{nb#ZZ0*p7gMty783 z!tYk-Ld|`Ea<(p)zZ^j=yl$PTwfjjNduB=Cz~yu?s7nvo*M1C;MN!+YWcD3`Y!W3k zs@50(*69iDZvE@4b-wkvO zYL6p`-+y-_P;{6Fou04nlq2S_?4n0a&ryJGgh6yeq;{M!Nz;s_xsVh-PBW;BCSoo zLzj9#p0|i`^JsYQq>vv&+T(5Y4Pvc_rn2b&Xz~|2Lw%0f{gx+$O#-@pAXX-0cTaU< zqfqYE6OrC>B-{!6iTz*NAC|`h2kMMuPiRy=AAvTzb)5+GKvR#Ol5;^o58&BTeCv50s`5$XB78o6M;>77WUn=7JO%cO&({^>jAAOP5+FhF0Y#1n@e22 z;z%8IZmiq=mTPprP|(89<2(J}dBQ4vt7HnUX9di+qnVBCix3} z#^&8G$byA8)`Ma_Ban-^TpgX3lQZ{l!o5P6eaMSk+2bC+HjYQeQLLpWyKeNS8ZIKZ#0H(uNyL4o zocYE*dSDmjZ>ZRZGPIP+sr5#>fkZYGy6uinLH##`4&hvLqD#0IvBB(`!Xd}M3}_$B zdpl*tB`O6;o873k;J-ouvhjsSJ*pS>nj^MkZSQ*oK0}UWb{wX-*#p`gBVoXA@U05C zI0665t({Z55V z3(0{&(juLIu;aA2dLWB2RTp&FQQP+v`fI{R1P^qa!@j%W<)gMSNWC#GeAZ6{s)aNR z#8ID6L)X)QzgZ9@DXY>XZJh9VH_M!Yor6*yC|Zj*rU6b^o2nfgmzYE6%ATn)c(jzH-jI4r>kk1P zf{NNp{e}I5L3TcnKDAYN-W2`e5|6ASqVcTv1A}y&g7XL_#X{NYxaK=#lC<;sAHYsf z#Mb`%EQ=CIBcqf^U(`yEF{V@|oo81PStg)$hu^#yJr1IRtkg{XTxV}%1-5o)X=Q2D zpc}r+`QMBkHF%TZt1|q@MNlOfw*t2YmReGqDcIcR(|4Y#dQlFrI6Kva?PMTnkq5KA zdk_@TX8%8-P{|mv;XRQWIF=E|Ajr#jUJ*?b4_h$KOjaNJfOd~Li&ponoy=z`1>MVe4JbTx<9a|7@R*v&=aJGUcY9+*^N{(t78yfmQ^1JoW z*BCNP!+YXY>T^|B_n4A{Vu!-}F85zVq!IZ!w4mP}l4Fy#A1)4wLQsiKE)elX_P&R& zJ!fSNaS8@SjUaRETjY3F zNSJHy)W7xc~Gc z4lqWk%CPH%!`LX<0xMytbMS=t1-8}oWf-_|ZT^J!U2RCIIdh(8;DYSSrDl_VB0u3} z^D;oHD+SVvQVVN|^sX&X1BlND>Rj3XQkVF7v}&YF*ucQ4oW1EYnGlFB(_Oa@&I7KG?CkykxO?48yRo1m2(U zjkXlys*?KZ|nuIw1# z-YMlhG{gxf;5fsMm2dzfmHf8{SCpZeyV#aqHdfClw-0D;^zG$e3rwAcCTH=PfgAmp zApAYS!>6o%LS|i*LN-MO= zy~9#y2II6MUKYsuf-^&F!u^-p0c2^P%;>2{Cg!`q5nnYWyJTinv}zLnbcn{lXhcm$ zUE_eu1Psg1=$1W6gM%^n&mYy*Gt`SglU+Bn0Bai7xBSL0A=70^4P_cLGH*`IZHlhT zJuJ#qX`<-piCwjSG$mtx7DiNlyWt!i^ z4M0`sO6v6QFK!$kLM39zqk>qj-*c}2$g}~nJV4oX&Z5ms;f$GArQ5liXK3CvFZ$Z8 z#33>Mk0^h?3^RlQikI3UJb!1ZGx0d<4Tv*m#CkhN;R911tXyDHY!!5Gqetk3Z|RC) z+^4SH?eP@hREF3xqsG13^sEI(pt%sYvC(j*>}78gln^M@3e_o$q=wf5w>)Y-!QM2C zDn8zMA~?ORc5?YOJC@BzipppkjW?qV4jE;)_|s(AczlB-tbqFxB)HsReBo1heT_9n zN6UUEvHYE}m=odDfD28rDQmmtIIZcmH+rKqIaRF&aZAhl8AyzGj?XmAP3aJK&wGc< zV(9dOq;$K=Ilsb&5-gFA&ZJB8YQ1ZI`uTa1rI;a z&;u~iLp!7^+SMP7QH)On83OgIpPDiVRSrfyAj-o&12w3_C=XI8zO^|3qTHv2)M7tF z!B=MQt@1Vd zJq65bdHI4ifag(L4T#k{#Oe*jiD7ik)0gAO%En|%oUmlx&D~&KDIgRKeXD4E>OZ5b zg4?m=xhkz~XS#fglV%X85?pVa=Z-P+7WcjNH1QZ^Q6|g=sX(vYqnddJdH{d?oUUF> zHvRGW%RltWw%TcHkb1R#Z6L?hEAq(D^z0nXQD_-!hDKqf$E|VnpA#L+GfB_KKfMJF zVL$|VNwRcV2Fuoxtlyk1%+3N}k#Y9@>4$5ssWs&-1#n*F5}$`nJBdBVFW=07E*GHL zzRVYNdSU;>Xkbbdl%lRbJ}68AL%(D(vIsoW;op0#`GR8}D6fSp7uRG_o>jiN6j(OK zU{s%GRj$XQy;4G1%p7IacQoFLSwf$=WI>hWF=Jx_+oxOTr>cbv&jhctxN(VhBmc}L zP3!|)CMZ>%4k1HxlxGq=9c*At#Fu`c-|VA31us0Yl7}?>*o+SbVM47aqZP2w1p8=O z5c~=A^{@2QcE>t6;YbL>rG}9Qhu^YT4_Cd6(VmX(`7TY<3EIM_n3+y#kLAHU$ykwrQ#AVJvEC(y4~;6_x|tS zdxH0(U@4MTy{70e2dSs>a^;k*DOK)^3uu0_Q=8zk=@Dh-583l5tePi!TMjrFNK5lB ziDrQ|FbYcyiRVrQ=;YTut3XM`bY^KNN9 zju09ydM_3u>NkY;Pw)*ypvays9~=FF;gCz@&n2msr_RsPFtbF^=|kaIy@KzuD2~KX zi;MEr|G~ua{lM67fl78sE6XN9hdmJn?=}c^1Z!X z2%Pcv-x9oeJxtV0LlYX6CqO)_t;=2T*}CTC4oS~*xe(h@bl z!1JZye^aY%v#;WcKg~1}x!P)?EUH6>r1GV7cT_3K_JHa7P5zh~E{ja#+r8vPZ{DKPj@EY#Zr9BYu_8(2mHylzakwx4JPeCTn>IgwkbM z8*H+};LlEiKQ`IDFx%=dNSSpwhug&ztyEdp;eu~7({yG9h~~P&TQ|)uaF_z)O)o4@ z7J3itWD4Go1m@{u$Kch9f;(!Kf@KlB^w}eEM!h-520Jam#U*zbJ5(by_J}xp+=1dz zP;9%SB>4{M_*t5akvM_iSdp@^j$=08bEY9$4T<3fiDk;U61-WQN}Ou}D!E;hMyUqL z!RNYz!`C?mU*Nr3I<@J`HJS&FbaQzZRA?wW3SQ}i^aj%=Oghmq4szP?32_|6B#4<} zJ9dOt&aY#i*UECwDwEY2Z1=U9z7KY6Bc`7(2$`iju_PEJJ?=*%3;tT(eu%zJ_BH%+ zgmd1L&t=zKzdhCov5B~NggUxj%oBEo&PRQ2kGkaYnF?FRkOAw%l&^b5Rpj39Y`;*J z$o!T(oW1T)7+GZA64qCd`M0ffBSB2vI)hgvM|qgJ{7my*re9|F87Y=Y?SwQYrzXx5gR4Kwj<50} zEI*}9X-6BY;NG6OO61pYAwA3WC9KK#%eT1HOQgT=(CaZLp0thE#@I`){<6T)h0z*b zRtw-eSr2k}@Z2dV{9N?m-vqTPJ4R!^txXPAq6|u#Wa{s#c9&HcJLm8({xu=i3mf0@ z&r_YeK6cq&`%>o_>PdH4fv?T3BG-ifxJWID%Z|?NBWd3swJraRQ;Qs4&#bhsFq*1c sYYMP>onrA~IJqh2kn-lw1(i^5Sq--i)x{u>#S>C=xkl0^11ZV>0n^J~F8}}l literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_mode1_full.indmftpr b/test/python/wien2k/CaOs2_mode1_full.indmftpr new file mode 100644 index 0000000..13e6507 --- /dev/null +++ b/test/python/wien2k/CaOs2_mode1_full.indmftpr @@ -0,0 +1,11 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +cubic +0 0 2 0 +0 0 0 0 +1 +-2.0 3.0 1 diff --git a/test/python/wien2k/CaOs2_mode2_full.ctqmcout.gz b/test/python/wien2k/CaOs2_mode2_full.ctqmcout.gz new file mode 100644 index 0000000000000000000000000000000000000000..38b1ece8c01ecc614fed3c4bb239d806e307cd0d GIT binary patch literal 21902 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 literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_mode2_full.indmftpr b/test/python/wien2k/CaOs2_mode2_full.indmftpr new file mode 100644 index 0000000..7732eb7 --- /dev/null +++ b/test/python/wien2k/CaOs2_mode2_full.indmftpr @@ -0,0 +1,11 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +cubic +0 0 2 0 +0 0 0 0 +1 +43 92 2 diff --git a/test/python/wien2k/wien2k_ctqmcout_python.py b/test/python/wien2k/wien2k_ctqmcout_python.py index 3ad8e36..e870cca 100644 --- a/test/python/wien2k/wien2k_ctqmcout_python.py +++ b/test/python/wien2k/wien2k_ctqmcout_python.py @@ -14,6 +14,18 @@ # then amplifies the last-ULP libm difference between gfortran and numpy, which is # a numerical property of that degenerate case, not of the port.) Reference built # with the precision-fixed dmftproj (PR #14) and full-precision templates. +# +# CaOs2_jbasis_full exercises the spin-mixing fromfile (|j, m_j>) path: the Os d +# shell is a 2(2l+1)=10 spinor basis (jbasis_d.dat), so the projector, Rloc +# rotrep and complex-harmonics transform blocks are the full mixing matrices the +# dft_tools #148 path singles out. Same wide window for the full-rank Loewdin. +# +# CaOs2_mode1_full and CaOs2_mode2_full exercise the band-index projection modes +# (set_projections.f:70-88). Mode 1 ("-2.0 3.0 1") scans all spins/k for the +# global band-index window; mode 2 ("43 92 2") takes the indices straight from +# the window line. Both resolve to bands 43..92 (50 bands > 20 correlated +# spin-orbitals), so the Loewdin overlap stays full rank and the projectors +# match the precision-fixed dmftproj to machine precision. import gzip import os @@ -49,6 +61,9 @@ def _check(case): try: shutil.copy(os.path.join(HERE, f'{case}.indmftpr'), os.path.join(tmp, f'{case}.indmftpr')) + if os.path.exists(os.path.join(HERE, 'jbasis_d.dat')): + shutil.copy(os.path.join(HERE, 'jbasis_d.dat'), + os.path.join(tmp, 'jbasis_d.dat')) for ext in ('struct', 'dmftsym'): shutil.copy(os.path.join(HERE, f'CaOs2.{ext}'), os.path.join(tmp, f'{case}.{ext}')) @@ -63,5 +78,8 @@ def _check(case): _check('CaOs2_full') +_check('CaOs2_jbasis_full') +_check('CaOs2_mode1_full') # proj_mode 1: band-index window 43..92 +_check('CaOs2_mode2_full') # proj_mode 2: explicit band indices 43 92 print('wien2k_ctqmcout_python: ok') diff --git a/test/python/wien2k/wien2k_dmftproj_common_python.py b/test/python/wien2k/wien2k_dmftproj_common_python.py index dd55d29..3e46cab 100644 --- a/test/python/wien2k/wien2k_dmftproj_common_python.py +++ b/test/python/wien2k/wien2k_dmftproj_common_python.py @@ -73,6 +73,25 @@ def _reader(text): assert incl and lo == 11 and hi == 13 +# --- band-index window (proj_mode 1/2) --------------------------------------- + +# set_projections.f:70-88: every k included, indices clamped to nbmin/nbmax. +incl, lo, hi = dp.select_band_window(1, 92, 60, 76) +assert incl and lo == 60 and hi == 76 +incl, lo, hi = dp.select_band_window(50, 80, 43, 92) # clamp both ends +assert incl and lo == 50 and hi == 80 + +# proj_mode 2 takes b_bot/b_top straight from the (rounded) window line. +m2 = {'proj_mode': 2, 'e_bot': 43.0, 'e_top': 92.0} +assert dp.band_index_window(m2, []) == (43, 92) + +# proj_mode 1 scans the (e_bot, e_top] energies for the global band-index range. +m1 = {'proj_mode': 1, 'e_bot': -0.15, 'e_top': 0.30} +spins = [{'kp': [{'nbmin': 1, 'nbmax': 5, + 'eband': np.array([-1.0, -0.1, 0.05, 0.2, 0.5])}]}] +assert dp.band_index_window(m1, spins) == (2, 4) + + # --- case.indmftpr / case.dmftsym structured parse --------------------------- info = dp.read_indmftpr(os.path.join(HERE, 'CaOs2.indmftpr')) diff --git a/test/python/wien2k/wien2k_oubwin_python.py b/test/python/wien2k/wien2k_oubwin_python.py index bb80d2b..3665ca3 100644 --- a/test/python/wien2k/wien2k_oubwin_python.py +++ b/test/python/wien2k/wien2k_oubwin_python.py @@ -11,6 +11,12 @@ # CaOs2 is spin-orbit + spin-polarized. The almblm fixtures are gzipped to keep # the tree small (they are shared with the ctqmcout test, which needs the full # projector payload). +# +# CaOs2_mode1 repeats the same physical band selection through the band-index +# projection path (proj_mode 1): the window line "-0.15 0.30 1" is scanned over +# all spins/k for the global min/max band index (bands 60..76), the same range +# the energy window picks, so the reference is identical and the mode-1 code in +# set_projections.f:70-88 is exercised against the dmftproj Fortran output. import gzip import os @@ -27,13 +33,17 @@ def _gunzip(src, dst): shutil.copyfileobj(fi, fo) -def _check(case): +def _check(case, almblm='CaOs2'): + """Regenerate .oubwin{up,dn} from the almblm fixtures and + compare byte for byte. `almblm` selects which gzipped almblm payload to feed + (the band-index fixtures reuse the CaOs2 coefficients with a different + indmftpr window line).""" tmp = tempfile.mkdtemp() try: shutil.copy(os.path.join(HERE, f'{case}.indmftpr'), os.path.join(tmp, f'{case}.indmftpr')) for ext in ('almblmup', 'almblmdn'): - _gunzip(os.path.join(HERE, f'{case}.{ext}.gz'), + _gunzip(os.path.join(HERE, f'{almblm}.{ext}.gz'), os.path.join(tmp, f'{case}.{ext}')) oubwin.write_oubwin(os.path.join(tmp, case)) for ext in ('oubwinup', 'oubwindn'): @@ -45,5 +55,6 @@ def _check(case): _check('CaOs2') +_check('CaOs2_mode1') # proj_mode 1: band-index window 60..76 print('wien2k_oubwin_python: ok') diff --git a/test/python/wien2k/wien2k_parproj_python.py b/test/python/wien2k/wien2k_parproj_python.py index 2da76d6..4eac18e 100644 --- a/test/python/wien2k/wien2k_parproj_python.py +++ b/test/python/wien2k/wien2k_parproj_python.py @@ -45,6 +45,9 @@ def _check(case): try: shutil.copy(os.path.join(HERE, f'{case}.indmftpr'), os.path.join(tmp, f'{case}.indmftpr')) + if os.path.exists(os.path.join(HERE, 'jbasis_d.dat')): + shutil.copy(os.path.join(HERE, 'jbasis_d.dat'), + os.path.join(tmp, 'jbasis_d.dat')) for ext in ('struct', 'dmftsym'): shutil.copy(os.path.join(HERE, f'CaOs2.{ext}'), os.path.join(tmp, f'{case}.{ext}')) @@ -59,5 +62,8 @@ def _check(case): _check('CaOs2_partial') +# Spin-mixing fromfile (|j, m_j>) included shell: the full 2(2l+1) Theta +# projector, density matrix and Rloc rotrep on the single is=1 block. +_check('CaOs2_jbasis_full') print('wien2k_parproj_python: ok') diff --git a/test/python/wien2k/wien2k_sympar_python.py b/test/python/wien2k/wien2k_sympar_python.py index a171be2..d4a8f7b 100644 --- a/test/python/wien2k/wien2k_sympar_python.py +++ b/test/python/wien2k/wien2k_sympar_python.py @@ -47,6 +47,9 @@ def _check(case): try: shutil.copy(os.path.join(HERE, f'{case}.indmftpr'), os.path.join(tmp, f'{case}.indmftpr')) + if os.path.exists(os.path.join(HERE, 'jbasis_d.dat')): + shutil.copy(os.path.join(HERE, 'jbasis_d.dat'), + os.path.join(tmp, 'jbasis_d.dat')) for ext in ('struct', 'dmftsym'): shutil.copy(os.path.join(HERE, f'CaOs2.{ext}'), os.path.join(tmp, f'{case}.{ext}')) @@ -61,5 +64,7 @@ def _check(case): _check('CaOs2_partial') +# Spin-mixing fromfile (|j, m_j>) included shell: the full 2(2l+1) srot%rotrep. +_check('CaOs2_jbasis_full') print('wien2k_sympar_python: ok') From 4161ed9399402d3f9541a92873e545ff31da2e7f Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 18:25:02 +0200 Subject: [PATCH 11/16] [wien2k] port case.outband band-structure projectors (-band mode) The band-structure analog of case.ctqmcout, feeding the converter's convert_bands_input. Same correlated-projector machinery on a band k-path; reads nkband from case.klist_band and the Fermi energy from the last line of case.indmftpr (band-mode convention). Fixture generated by a Wien2k band run (lapw1/lapwso/lapw2 -band) + the precision-fixed dmftproj -band on a wide (full-rank) window; the port matches to 2.8e-16. Completes the converter's dmftproj inputs. Part of #7. --- fortran/dmftproj/CMakeLists.txt | 25 - fortran/dmftproj/SRC_templates/case.cf_f_mm2 | 14 - .../dmftproj/SRC_templates/case.cf_p_cubic | 7 - fortran/dmftproj/SRC_templates/case.indmftpr | 16 - fortran/dmftproj/SRC_templates/run_triqs | 784 --------- fortran/dmftproj/SRC_templates/runsp_triqs | 975 ------------ fortran/dmftproj/density.f | 1109 ------------- fortran/dmftproj/dmftproj.f | 884 ----------- fortran/dmftproj/modules.f | 412 ----- fortran/dmftproj/orthogonal.f | 225 --- fortran/dmftproj/orthogonal_wannier.f | 593 ------- fortran/dmftproj/outband.f | 287 ---- fortran/dmftproj/outbwin.f | 92 -- fortran/dmftproj/outputqmc.f | 1405 ----------------- fortran/dmftproj/read_k_list.f | 98 -- fortran/dmftproj/readcomline.f | 105 -- fortran/dmftproj/rot_dens.f | 239 --- fortran/dmftproj/rot_projectmat.f | 72 - fortran/dmftproj/set_ang_trans.f | 543 ------- fortran/dmftproj/set_projections.f | 749 --------- fortran/dmftproj/set_rotloc.f | 368 ----- fortran/dmftproj/setsym.f | 886 ----------- fortran/dmftproj/symmetrize_mat.f | 292 ---- fortran/dmftproj/timeinv.f | 289 ---- python/triqs_dftkit/wien2k/outband.py | 329 ++++ test/python/wien2k/CMakeLists.txt | 15 + test/python/wien2k/CaOs2_band.almblmdn.gz | Bin 0 -> 234368 bytes test/python/wien2k/CaOs2_band.almblmup.gz | Bin 0 -> 234291 bytes test/python/wien2k/CaOs2_band.indmftpr | 13 + test/python/wien2k/CaOs2_band.klist_band | 5 + test/python/wien2k/CaOs2_band.outband.gz | Bin 0 -> 65216 bytes test/python/wien2k/wien2k_outband_python.py | 88 ++ 32 files changed, 450 insertions(+), 10469 deletions(-) delete mode 100644 fortran/dmftproj/CMakeLists.txt delete mode 100644 fortran/dmftproj/SRC_templates/case.cf_f_mm2 delete mode 100644 fortran/dmftproj/SRC_templates/case.cf_p_cubic delete mode 100644 fortran/dmftproj/SRC_templates/case.indmftpr delete mode 100755 fortran/dmftproj/SRC_templates/run_triqs delete mode 100755 fortran/dmftproj/SRC_templates/runsp_triqs delete mode 100644 fortran/dmftproj/density.f delete mode 100644 fortran/dmftproj/dmftproj.f delete mode 100644 fortran/dmftproj/modules.f delete mode 100644 fortran/dmftproj/orthogonal.f delete mode 100644 fortran/dmftproj/orthogonal_wannier.f delete mode 100644 fortran/dmftproj/outband.f delete mode 100644 fortran/dmftproj/outbwin.f delete mode 100644 fortran/dmftproj/outputqmc.f delete mode 100644 fortran/dmftproj/read_k_list.f delete mode 100644 fortran/dmftproj/readcomline.f delete mode 100644 fortran/dmftproj/rot_dens.f delete mode 100644 fortran/dmftproj/rot_projectmat.f delete mode 100644 fortran/dmftproj/set_ang_trans.f delete mode 100644 fortran/dmftproj/set_projections.f delete mode 100644 fortran/dmftproj/set_rotloc.f delete mode 100644 fortran/dmftproj/setsym.f delete mode 100644 fortran/dmftproj/symmetrize_mat.f delete mode 100644 fortran/dmftproj/timeinv.f create mode 100644 python/triqs_dftkit/wien2k/outband.py create mode 100644 test/python/wien2k/CaOs2_band.almblmdn.gz create mode 100644 test/python/wien2k/CaOs2_band.almblmup.gz create mode 100644 test/python/wien2k/CaOs2_band.indmftpr create mode 100644 test/python/wien2k/CaOs2_band.klist_band create mode 100644 test/python/wien2k/CaOs2_band.outband.gz create mode 100644 test/python/wien2k/wien2k_outband_python.py diff --git a/fortran/dmftproj/CMakeLists.txt b/fortran/dmftproj/CMakeLists.txt deleted file mode 100644 index 0eddc06..0000000 --- a/fortran/dmftproj/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -# List the sources -set(SOURCES modules.f dmftproj.f readcomline.f set_ang_trans.f setsym.f - set_rotloc.f timeinv.f read_k_list.f set_projections.f orthogonal.f - rot_projectmat.f density.f symmetrize_mat.f rot_dens.f - orthogonal_wannier.f outputqmc.f outbwin.f outband.f) - -# The main target and what to link with... -add_executable(dmftproj ${SOURCES}) -target_link_libraries(dmftproj nda::blas_lapack) - -# where to install -install (TARGETS dmftproj DESTINATION bin) - -# install wien2k files -SET(D ${CMAKE_CURRENT_SOURCE_DIR}/SRC_templates/) -SET(WIEN_SRC_TEMPL_FILES ${D}/case.cf_f_mm2 ${D}/case.cf_p_cubic ${D}/case.indmftpr ${D}/run_triqs ${D}/runsp_triqs) -message(STATUS "-----------------------------------------------------------------------------") -message(STATUS " ******** WARNING ******** ") -message(STATUS " Wien2k 14.2 and older : after installation of DFTTools, copy the files from ") -message(STATUS " ${CMAKE_INSTALL_PREFIX}/share/triqs/Wien2k_SRC_files/SRC_templates ") -message(STATUS " to your Wien2k installation WIENROOT/SRC_templates (Cf documentation). ") -message(STATUS " For newer versions these files are already shipped with Wien2k. ") -message(STATUS "-----------------------------------------------------------------------------") -install (FILES ${WIEN_SRC_TEMPL_FILES} DESTINATION share/triqs/Wien2k_SRC_files/SRC_templates ) - diff --git a/fortran/dmftproj/SRC_templates/case.cf_f_mm2 b/fortran/dmftproj/SRC_templates/case.cf_f_mm2 deleted file mode 100644 index 3dea83d..0000000 --- a/fortran/dmftproj/SRC_templates/case.cf_f_mm2 +++ /dev/null @@ -1,14 +0,0 @@ - 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. -*0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. A1 -*0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. -.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. A2 - 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. -*0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. B1 - 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. -.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. -*0. 0. 0. 0. 0.70710678 0. 0. 0. -.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. B2 - 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. -*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. A1 -*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. -.70710678 0. 0. A2 - 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 -*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0.70710678 0. 0. 0. 0. B1 - 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. -.70710678 0. -*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. -.70710678 0. 0. 0. 0. 0. B2 diff --git a/fortran/dmftproj/SRC_templates/case.cf_p_cubic b/fortran/dmftproj/SRC_templates/case.cf_p_cubic deleted file mode 100644 index 69e90cd..0000000 --- a/fortran/dmftproj/SRC_templates/case.cf_p_cubic +++ /dev/null @@ -1,7 +0,0 @@ - 0.707106781 0. 0. 0. -0.707106781 0. 0. 0. 0. 0. 0. 0. - 0. 0.707106781 0. 0. 0. 0.707106781 0. 0. 0. 0. 0. 0. -*0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. - 0. 0. 0. 0. 0. 0. 0.707106781 0. 0. 0. -0.707106781 0. - 0. 0. 0. 0. 0. 0. 0. 0.707106781 0. 0. 0. 0.707106781 -*0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. - diff --git a/fortran/dmftproj/SRC_templates/case.indmftpr b/fortran/dmftproj/SRC_templates/case.indmftpr deleted file mode 100644 index 100fdd2..0000000 --- a/fortran/dmftproj/SRC_templates/case.indmftpr +++ /dev/null @@ -1,16 +0,0 @@ -3 ! Nsort -1 1 3 ! Mult(Nsort) -3 ! lmax -complex ! choice of angular harmonics -1 1 0 0 ! l included for each sort -0 0 0 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) -cubic ! choice of angular harmonics -1 1 2 0 ! l included for each sort -0 0 2 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) -01 ! -0 ! SO flag -complex ! choice of angular harmonics -1 1 0 0 ! l included for each sort -0 0 0 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) --0.6 0.14 ! t2g + eg + Op - diff --git a/fortran/dmftproj/SRC_templates/run_triqs b/fortran/dmftproj/SRC_templates/run_triqs deleted file mode 100755 index 570ad21..0000000 --- a/fortran/dmftproj/SRC_templates/run_triqs +++ /dev/null @@ -1,784 +0,0 @@ -#!/bin/csh -f -hup -unalias rm -unalias mv - -set name = $0 -set bin = $name:h #directory of WIEN-executables -if !(-d $bin) set bin = . -set name = $name:t #name of this script-file -set logfile = :log -set tmp = (:$name) #temporary files - -set scratch = # set directory for vectors and help files -if ($?SCRATCH) then #if envronment SCRATCH is set - set scratch=`echo $SCRATCH | sed -e 's/\/$//'`/ #set $scratch to that value -endif - - - -#---> functions & subroutines -alias testinput 'set errin="\!:1";if (! -e \!:1 || -z \!:1) goto \!:2' - -alias teststatus 'if ($status) goto error' -alias testerror 'if (! -z \!:1.error) goto error' -alias teststop 'if (\!:1 == $stopafter ) goto stop' -alias cleandayfile 'grep -v "\[" $dayfile >.tmp;'\ - 'mv .tmp $dayfile' -alias output 'set date = `date +"(%T)"`;'\ - 'printf "> %s\t%s " "\!:*" "$date" >> $dayfile' - -alias exec '($bin/x \!:*) >> $dayfile;'\ - 'teststatus' - -alias total_exec 'output \!:*;'\ - 'exec \!:*;'\ - 'cleandayfile;'\ - 'testerror \!:1;'\ - 'teststop \!:1' -alias TOTtoFOR 'sed "s/TOT/FOR/" \!:1 > $tmp;'\ - 'mv $tmp \!:1' -alias FORtoTOT 'sed "s/FOR/TOT/" \!:1 > $tmp;'\ - 'mv $tmp \!:1' -alias IPRINT_inc 'sed "s/0 NUMBER/1 NUMBER/g" \!:1 > .case.inc;'\ - 'mv .case.inc \!:1' - - -#---> default parameters -set ccut = 0.0000 #upper limit for charge convergence -set fcut = 0 #upper limit for force convergence -set ecut = 0.0001 #upper limit for energy convergence -unset ec_conv -set cc_conv -set fc_conv -set ec_test -unset ec_test1 -unset cc_test -unset fc_test -set iter = 40 #maximum number of iterations -set riter = 99 #restart after $riter iterations -set stopafter #stop after $stopafter -set next #set -> start cycle with $next -set qlimit = 0.05 #set -> writes E-L in new in1 when qlimit is fulfilled -set in1new = 999 -set write_all = -ef # new default: -in1ef is activated (version 10.1) -set para -set nohns -set nohns1 = 0 -set it -set readHinv -set it0 -unset vec2pratt -set itnum=0 -set itnum1=0 -set so -set complex -set complex2 -set cmplx -set cmplx2 -set broyd -set ctest=(0 0 0) -set etest=(0 0 0) -set msrcount=0 -# QDMFT -set qdmft -set hf -set diaghf -set nonself -set noibz -set newklist -set redklist -set NSLOTS = 1 -# END QDMFT - -#---> default flags -unset renorm -set in1orig -unset force #set -> force-calculation after self-consistency -unset f_not_conv -unset help #set -> help output -unset init #set -> switches initially set to total energy calc. - -#---> handling of input options -echo "> ($name) options: $argv" >> $logfile -alias sb 'shift; breaksw' #definition used in switch -while ($#argv) - switch ($1) - case -[H|h]: - set help; sb - case -so: - set complex2 = c - set cmplx2 = -c - set so = -so; sb - case -nohns: - set nohns = -nohns; shift; set nohns1 = $1;sb - case -it: - set itnum = 99; set it = -it; set it0 = -it; sb - case -it1: - set itnum = 99; set it = -it; set it0 = -it; touch .noHinv; sb - case -it2: - set itnum = 99; set it = -it; set it0 = -it; touch .fulldiag; sb - case -noHinv: - set itnum = 99; set it = -it; set it0 = -it; set readHinv = -noHinv; sb - case -vec2pratt: - set vec2pratt; sb - case -p: - set para = -p; sb - case -I: - set init; sb - case -NI: - unset broyd; sb - case -e: - shift; set stopafter = $1; sb - case -cc: - shift; set ccut = $1; set cc_test;unset cc_conv; sb - case -ec: - shift; set ecut = $1; set ec_test1;unset ec_conv; sb - case -fc: - shift; set f_not_conv; set fcut = $1; set fc_test;unset fc_conv; sb - case -ql: - shift; set qlimit = $1; sb - case -in1ef: - set in1new = -1;set write_all = -ef; sb - case -in1new: - shift; set in1new = $1;set write_all; sb - case -in1orig: - set in1orig = -in1orig; set in1new = 999; sb - case -renorm: - set renorm; set next=scf1; sb - case -i: - shift; set iter = $1; sb - case -r: - shift; set riter = $1; sb - case -s: - shift; set next = $1; sb -# QDMFT - case -qdmft: - set qdmft=-qdmft; shift; set NSLOTS = $1; sb -# END QDMFT - case -hf: - set hf = -hf; sb - case -diaghf: - set diaghf = -diaghf; set hf = -hf; set iter = 1; sb - case -nonself: - set nonself = -nonself; set hf = -hf; set iter = 1; sb - case -noibz: - set noibz = -noibz; sb - case -newklist: - set newklist = -newklist; set hf = -hf; sb - case -redklist: - set redklist = -redklist; set hf = -hf; sb - default: - echo "ERROR: option $1 does not exist \!"; sb - endsw -end -if ($?help) goto help - -if($?cc_test) then - unset ec_test;set ec_conv -endif -if($?fc_test) then - unset ec_test;set ec_conv -endif -if($?ec_test1) then - set ec_test;unset ec_conv -endif -if(! $?ec_test) then - set ecut=0 -endif - -#---> path- and file-names -set file = `pwd` -set file = $file:t #tail of file-names -set dayfile = $file.dayfile #main output-file - -#---> starting out -printf "\nCalculating $file in `pwd`\non `hostname` with PID $$\n" > $dayfile -echo "using `cat $WIENROOT/VERSION` in $WIENROOT" >> $dayfile -printf "\n:LABEL1: Calculations in `pwd`\n:LABEL2: on `hostname` at `date`\n" >> $file.scf -echo ":LABEL3: using `cat $WIENROOT/VERSION` in $WIENROOT" >> $file.scf - -if ( "$so" == "-so" && "$hf" == "-hf") then - echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" - echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" >> $file.dayfile - exit 9 -endif - -if ( "$hf" == "-hf") then - if (-e $file.corewf) rm $file.corewf - IPRINT_inc $file.inc #modify IPRINT switch in case.inc -endif - -#---> complex -if ((-e $file.in1c) && !(-z $file.in1c)) then - set complex = c - set complex2 = c - set cmplx = -c - set cmplx2 = -c -endif - -set vresp -testinput $file.inm_vresp no_vresp -set vresp=-vresp -no_vresp: - -# set iter/riter to 999 when MSR1a/MSECa is used -set testmsr=`head -1 $file.inm | grep "MSR[12]a" | cut -c1-3` -set testmsr1=`head -1 $file.inm | grep "MSECa" | cut -c1-5` -if($testmsr1 == 'MSECa') set testmsr=MSR -if ($testmsr == 'MSR') then - if($riter == "99") set riter=999 - if($iter == "40") set iter=999 - foreach i ($file.in2*) - TOTtoFOR $i #switch FOR-label - echo changing TOT to FOR in $i - end - if (! -e $file.inM && ! -z $file.inM ) then - x pairhess - echo $file.inM and .minrestart have been created by pairhess >>$dayfile - endif -endif - -if ($next != "") goto start #start with optional program -set next = lapw0 #default start with lstart - -if !(-e $file.clmsum) then - if (-e $file.clmsum_old) then - cp $file.clmsum_old $file.clmsum - else - echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!' - echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!'\ - >>$dayfile - goto error - endif -endif - -if ($?broyd) then - if (-e $file.broyd1) then - echo "$file.broyd* files present \! You did not save_lapw a previous clculation." - echo "You have 60 seconds to kill this job ( ^C or kill $$ )" - echo "or the script will rm *.broyd* and continue (use -NI to avoid automatic rm)" - sleep 60 - rm *.broyd* - echo "$file.broyd* files removed \!" >> $dayfile - endif -endif - -start: #initalization of in2-files -if ($?init && $testmsr != 'MSR' ) then - foreach i ($file.in2*) - sed "1s/[A-Z]..../TOT /" $i > $tmp - mv $tmp $i - end -endif - -set icycle=1 - -set riter_save=$riter -printf "\n\n start \t(%s) " "`date`" >> $dayfile - -#goto mixer only if clmval file is present -if ($next == "scf1") then - if !(-e $file.clmval) then - set next = lapw0 - endif -endif - -echo "with $next ($iter/$riter to go)" >> $dayfile -goto $next - - -cycle: #begin of sc-cycle -nohup echo in cycle $icycle " ETEST: $etest[3] CTEST: $ctest[3]" -hup - -if ($it == '-it' ) then - set ittest=`echo "$icycle / $itnum * $itnum "| bc` - if ( $ittest == $icycle ) touch .fulldiag -endif - -lapw0: -printf "\n cycle $icycle \t(%s) \t(%s)\n\n" "`date`" "$iter/$riter to go" >> $dayfile - -testinput $file.in0_grr cont_lapw0 -total_exec lapw0 -grr $para - -cont_lapw0: -testinput $file.in0 error_input -total_exec lapw0 $para - -if ($fcut == "0") goto lapw1 -set f_exist=`grep :FHF $file.scf0` -if ($#f_exist == 0 ) then - set fcut=0 - set fc_conv - echo Force-convergence not possible. Forces not present. - echo Force-convergence not possible. Forces not present.>> $dayfile - if($?ec_test) goto lapw1 - if($?cc_test) goto lapw1 - goto error -endif -#---> test of force-convergence for all forces -if !(-e $file.scf) goto lapw1 - if(! $?ec_conv) goto lapw1 - if(! $?cc_conv) goto lapw1 -set natom=`head -2 $file.struct |tail -1 |cut -c28-30` -#set natom = `grep UNITCELL $file.output0 |awk '{print $NF}'` -set iatom = 1 -set ftest = (1 0) -grep :FOR $file.scf >test_forces.scf -while ($iatom <= $natom) #cycle over all atoms - set itest=$iatom - @ itest ++ - testinput $file.inM cont_force_test - set atest=`head -$itest $file.inM |tail -1` - set itest=`echo " $atest[1] + $atest[2] + $atest[3]"|bc` - if ( $itest == '0' ) goto skipforce - cont_force_test: - if ($iatom <= 9) then - set test = (`$bin/testconv -p :FOR00$iatom -c $fcut -f test_forces`) - else if ($iatom <= 99) then - set test = (`$bin/testconv -p :FOR0$iatom -c $fcut -f test_forces`) - else - set test = (`$bin/testconv -p :FOR$iatom -c $fcut -f test_forces`) - endif - if !($test[1]) set ftest[1] = 0 - set ftest[2] = $test[2] - set ftest = ($ftest $test[3] $test[4]) -skipforce: - @ iatom ++ -end -rm test_forces.scf -echo ":FORCE convergence:" $ftest[1-] >> $dayfile - -if ($ftest[1]) then #force convergenced - if ($nohns == '-nohns') then - set nohns - echo "NOHNS deactivated by FORCE convergence" >> $dayfile - else -# set iter = 1 - if(! $?ec_conv) goto lapw1 - if(! $?cc_conv) goto lapw1 - set fc_conv - unset f_not_conv - foreach i ($file.in2*) - TOTtoFOR $i #switch FOR-label - end - endif -else - unset fc_conv -endif - -lapw1: -testinput $file.in1$complex error_input -#generates in1-file from :EPL/EPH in case.scf2 -# if ($icycle == $in1new) rm $file.broyd1 $file.broyd2 - if ($icycle >= $in1new ) then - if (! -e $file.in1${complex}_orig ) cp $file.in1${complex} $file.in1${complex}_orig - write_in1_lapw $write_all -ql $qlimit $cmplx >> $dayfile - if($status == 0 ) cp $file.in1${complex}new $file.in1${complex} - endif -if($in1orig == '-in1orig') then - if ( -e $file.in1${complex}_orig ) mv $file.in1${complex}_orig $file.in1${complex} -# unset in1orig -endif - -set readHinv0 = $readHinv -if (-e .noHinv) then - echo " case.storeHinv files removed" - set readHinv0 = -noHinv0 - rm .noHinv -endif -if (-e .fulldiag) then - echo " full diagonalization forced" - set it0 - set readHinv0 - rm .fulldiag -endif -if ( $it0 == "-it" ) then - touch ${scratch}$file.vector.old - if( ! $?vec2pratt ) then - foreach i (${scratch}$file.vector*.old) - rm $i - end - vec2old_lapw $para >> $dayfile - else - vec2pratt_lapw $para >> $dayfile - endif -endif - -if ( $hf == "-hf" ) then - if ((-e $file.vectorhf) && !(-z $file.vectorhf)) then - mv $file.vectorhf $file.vectorhf_old - if (!(-e $file.weighhf) || (-z $file.weighhf)) mv $file.energyhf $file.tmp_energyhf - else if ((-e $file.vectorhf_old) && !(-z $file.vectorhf_old)) then - if (!(-e $file.weighhf) || (-z $file.weighhf)) mv $file.energyhf $file.tmp_energyhf - else - cp $file.kgen_fbz $file.kgen - cp $file.klist_fbz $file.klist - total_exec lapw1 $it0 $nohns $readHinv0 $cmplx - mv $file.vector $file.vectorhf_old - mv $file.energy $file.tmp_energyhf - if (-e $file.weighhf) rm $file.weighhf - endif - cp $file.kgen_ibz $file.kgen - cp $file.klist_ibz $file.klist - if (!(-e $file.vsp_old) || (-z $file.vsp_old)) then - cp $file.vsp $file.vsp_old - endif -endif - -total_exec lapw1 $it0 $para $nohns $readHinv0 $cmplx -set it0 = $it -set readHinv0 = $readHinv - -lapwso: -if ( -e $file.scfso ) rm $file.scfso -if ( "$so" == "-so" ) then - testinput $file.inso error_input - total_exec lapwso $para $cmplx -endif - -lapw2: -testinput $file.in2$complex2 error_input -if ( $hf == "-hf" ) then - if (!(-e $file.weighhf) || (-z $file.weighhf)) then - cp $file.kgen_fbz $file.kgen - cp $file.klist_fbz $file.klist - if (-e $file.vector) mv $file.vector $file.vector_save - mv $file.vectorhf_old $file.vector - if (-e $file.energy) mv $file.energy $file.energy_save - mv $file.tmp_energyhf $file.energy - total_exec lapw2 $vresp $in1orig $cmplx2 - mv $file.weigh $file.weighhf - mv $file.vector $file.vectorhf_old - if (-e $file.vector_save) mv $file.vector_save $file.vector - mv $file.energy $file.energyhf - if (-e $file.energy_save) mv $file.energy_save $file.energy - cp $file.kgen_ibz $file.kgen - cp $file.klist_ibz $file.klist - endif -endif -#QDMFT -if ( "$qdmft" == "-qdmft" ) then - total_exec lapw2 $para $vresp -almd $cmplx2 $so - dmftproj $so # please check: $so can't be here - # pytriqs call - printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in run_triqs Wien2k script\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in run_triqs Wien2k script\n" - exit 0 - # to call pytriqs uncomment and modify the line below to adapt it to your system - # the number of core is in NSLOTS variable - #mpprun --force-mpi=openmpi/1.3.2-i110074 /home/x_leopo/TRIQS_segment/triqs_install/bin/pytriqs $file.py - total_exec lapw2 $para $vresp -qdmft $cmplx2 $so -else - total_exec lapw2 $para $vresp $in1orig $cmplx2 $so - if ( $hf == "-hf" ) then - sed 's/:SUM/:SLSUM/g' < $file.scf2 > $file.scf2_tmp - mv $file.scf2_tmp $file.scf2 - mv $file.clmval $file.clmvalsl - if ( -e $file.scfhf_1 ) rm $file.scfhf_* - endif -endif -# END QDMFT - -rm -f $file.clmsc - -if ( $hf == "-hf" ) goto hf - -lapw1s: -testinput $file.in1${complex}s lcore -total_exec lapw1 -sc $para $nohns $readHinv $cmplx - -lapw2s: -testinput $file.in2${complex2}s error_input -total_exec lapw2 -sc $para $vresp $in1orig $cmplx2 -goto lcore - -hf: -testinput $file.inhf error_input -if (!(-e $file.corewf) || (-z $file.corewf)) then - total_exec lcore -endif -total_exec hf $diaghf $nonself $noibz $newklist $redklist $para $cmplx - -lapw2hf: -testinput $file.in2$complex2 error_input -cp $file.kgen_fbz $file.kgen -cp $file.klist_fbz $file.klist -total_exec lapw2 -hf $vresp $in1orig $cmplx2 -cp $file.kgen_ibz $file.kgen -cp $file.klist_ibz $file.klist - -lcore: -testinput $file.inc scf -total_exec lcore - -coresuper: - if ( ! -e .lcore) goto scf - total_exec dstart -lcore - rm -f $file.clmcor -endif - -scf: -if ( $hf == "-hf" ) then - foreach i ( 0 0_grr 1 so 2 1s 2s c hf 2hf ) - if (-e $file.scf$i) cat $file.scf$i >> $file.scf - end -else - foreach i ( 0 1 so 2 1s 2s c ) - if (-e $file.scf$i) cat $file.scf$i >> $file.scf - end -endif -scf1: -foreach i (clmsum vsp vns vrespsum ) - if (-e $file.$i ) \ - cp $file.$i $file.${i}_old #save last cycle -end - - -mixer: -testinput $file.inm error_input -total_exec mixer -cat $file.scfm >> $file.scf - -if($?renorm) then - unset renorm - rm $file.broy* -endif - -mixer_vresp: -testinput $file.inm_vresp energytest -total_exec mixer_vresp -grep -e "CTO " -e NEC $file.outputm_vresp | sed 's/:/:VRESP/' >> $file.scf -#total_exec int16 - -energytest: -#---> output energies -#set EF = `grep 'F E R' $file.scf2 |awk '{printf("%.5f", $NF)}'` -#set ET = `grep 'AL EN' $file.outputm |awk '{printf("%.5f", $NF)}'` -#cat << theend >> $dayfile -#EF $EF -#ET $ET -#theend -#echo $ET > $file.finM - -#---> test of energy convergence -#if ($ecut == "0") goto chargetest -set etest = (`$bin/testconv -p :ENE -c $ecut`) -teststatus -echo ":ENERGY convergence: $etest[1-3]" >> $dayfile -if (! $?ec_test) goto chargetest -if ($etest[1]) then - if ($nohns == '-nohns') then - set nohns - echo "NOHNS deactivated by ENERGY convergence" >> $dayfile - else -# set iter = 1 - set ec_conv - endif -else - unset ec_conv -endif - -chargetest: -#if ($ccut == "0.0000") goto nextiter -set ctest = (`$bin/testconv -p :DIS -c $ccut`) -teststatus -echo ":CHARGE convergence: $ctest[1-3]" >> $dayfile -if (! $?cc_test) goto nextiter -if ($ctest[1]) then - if ($nohns == '-nohns') then - set nohns - echo "NOHNS deactivated by CHARGE convergence" >> $dayfile - else -# set iter = 1 - set cc_conv - endif -else - unset cc_conv -endif - -# check F-condition for MSR1a mode -if ($testmsr == 'MSR') then - set msrtest =(`grep :FRMS $file.scf |tail -1` ) - if ($#msrtest >= 13 ) then - echo msrcount $msrcount msrtest $msrtest[13] -# Trap silly early convergene with "minimum-requests" - set etest2 = (`$bin/testconv -p :ENE -c 0.001`) - if ( $etest2[1] == '0')set msrtest[13]='F' - set ctest2 = (`$bin/testconv -p :DIS -c 0.01`) - if ( $ctest2[1] == '0')set msrtest[13]='F' -# - if ($msrtest[13] == 'T') then - #change in case.inm MSR1a/MSECa to MSR1/MSEC3, rm *.bro*, unset testmsr -@ msrcount ++ - if($msrcount == 3) then - sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp - sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm - rm *.broy* $file.inm_tmp - set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` - set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` - echo $b > .msec - echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile - set testmsr - endif - else - set msrcount=0 - endif - endif -endif - -#---> output forces -#grep 'FTOT' $file.outputm|awk '{print "FT ",$2,$4,$5,$6}'\ -# >> $dayfile -#grep 'FTOT' $file.outputm|awk '{print $4,$5,$6}' \ -# >> $file.finM - -nextiter: -@ iter -- -@ riter -- -@ nohns1 -- -@ icycle ++ - -if ($icycle == 2) set newklist - -#---> nohns -if (! $nohns1 ) then - set nohns - echo "NOHNS deactivated" >> $dayfile -endif - -#---> restart -if (! $riter && -e $file.broyd1) then - echo " restart" >> $dayfile - rm $file.broyd1 $file.broyd2 - set riter=$riter_save -endif - -foreach i ($tmp) #delete temporary files - if (-e $i) rm $i -end - -#output cycle -#printf "%s\n\n" "$iter/$riter to go" >> $dayfile -if (-e .stop) goto stop1 -if ($testmsr == 'MSR' && -e .minstop) then - sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp - sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm - rm *.broy* $file.inm_tmp - set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` - set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` - echo $b > .msec - echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile - set testmsr -endif - -echo ec cc and fc_conv $?ec_conv $?cc_conv $?fc_conv -echo ec cc and fc_conv $?ec_conv $?cc_conv $?fc_conv >> $dayfile -if($?ec_conv && $?cc_conv && $?fc_conv && ($testmsr == '') ) goto stop - -if ($iter) goto cycle #end of sc-cycle - -if ( $?f_not_conv ) then - printf "\n> FORCES NOT CONVERGED\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> FORCES NOT CONVERGED\n" - exit 3 -endif -if ( ! $?ec_conv ) then - printf "\n> energy in SCF NOT CONVERGED\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> energy in SCF NOT CONVERGED\n" - exit 0 -endif -if ( ! $?cc_conv ) then - printf "\n> charge in SCF NOT CONVERGED\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> charge in SCF NOT CONVERGED\n" - exit 0 -endif - -stop: #normal exit -printf "\n> stop\n" >> $dayfile -printf "\n> stop\n" -exit 0 - -stop1: #normal exit -printf "\n> stop due to .stop file\n" >> $dayfile -rm .stop -printf "\n> stop due to .stop file\n" -exit 1 - -error_input: #error exit -printf "\n> stop error: the required input file $errin for the next step could not be found\n" >> $dayfile -printf "\n> stop error: the required input file $errin for the next step could not be found\n" -exit 9 - -error: #error exit -printf "\n> stop error\n" >> $dayfile -printf "\n> stop error\n" -exit 9 - -help: #help exit -cat << theend - -PROGRAM: $0 - -PURPOSE: running the nonmagnetic scf-cycle in WIEN - to be called within the case-subdirectory - has to be located in WIEN-executable directory - -USAGE: $name [OPTIONS] [FLAGS] - -OPTIONS: --cc LIMIT -> charge convergence LIMIT (0.0001 e) --ec LIMIT -> energy convergence LIMIT ($ecut Ry) --fc LIMIT -> force convergence LIMIT (1.0 mRy/a.u.) - default is -ec 0.0001; multiple convergence tests possible --e PROGRAM -> exit after PROGRAM ($stopafter) --i NUMBER -> max. NUMBER ($iter) of iterations --s PROGRAM -> start with PROGRAM ($next) --r NUMBER -> restart after NUMBER ($riter) iterations (rm *.broyd*) --nohns NUMBER ->do not use HNS for NUMBER iterations --in1new N -> create "new" in1 file after N iter (write_in1 using scf2 info) --ql LIMIT -> select LIMIT ($qlimit) as min.charge for E-L setting in new in1 --qdmft NP -> including DMFT from Aichhorn/Georges/Biermann running on NP proc - -FLAGS: --h/-H -> help --I -> with initialization of in2-files to "TOT" --NI -> does NOT remove case.broyd* (default: rm *.broyd* after 60 sec) --p -> run k-points in parallel (needs .machine file [speed:name]) --it -> use iterative diagonalization --it1 -> use iterative diag. with recreating H_inv (after basis change) --it2 -> use iterative diag. with reinitialization (after basis change) --noHinv -> use iterative diag. without H_inv --vec2pratt -> use vec2pratt instead of vec2old for iterative diag. --so -> run SCF including spin-orbit coupling --renorm-> start with mixer and renormalize density --in1orig-> if present, use case.in1_orig file; do not modify case.in1 --hf -> HF/hybrid-DFT calculation --diaghf -> non-selfconsistent HF with diagonal HF only (only e_i) --nonself -> non-selfconsistent HF/hybrid-DFT calculation (only E_x(HF)) --newklist -> HF/hybrid-DFT calculation starting from a different k-mesh --redklist -> HF/hybrid-DFT calculation with a reduced k-mesh for the potential - -CONTROL FILES: -.lcore runs core density superposition producing case.clmsc -.stop stop after SCF cycle -.minstop stops MSR1a minimization and changes to MSR1 -.fulldiag force full diagonalization -.noHinv remove case.storeHinv files -case.inm_vresp activates calculation of vresp files for meta-GGAs -case.in0_grr activates a second call of lapw0 (mBJ pot., or E_xc analysis) - -ENVIRONMENT VARIBLES: -SCRATCH directory where vectors and help files should go - -theend - -exit 1 - - diff --git a/fortran/dmftproj/SRC_templates/runsp_triqs b/fortran/dmftproj/SRC_templates/runsp_triqs deleted file mode 100755 index 57e150a..0000000 --- a/fortran/dmftproj/SRC_templates/runsp_triqs +++ /dev/null @@ -1,975 +0,0 @@ -#!/bin/csh -f -hup -unalias rm - -set name = $0 -set bin = $name:h #directory of WIEN-executables -if !(-d $bin) set bin = . -set name = $name:t #name of this script-file -set logfile = :log -set tmp = (:$name) #temporary files - -set scratch = # set directory for vectors and help files -if ($?SCRATCH) then #if envronment SCRATCH is set - set scratch=`echo $SCRATCH | sed -e 's/\/$//'`/ #set $scratch to that value -endif - -#---> functions & subroutines -alias testinput 'set errin="\!:1";if (! -e \!:1 || -z \!:1) goto \!:2' -alias teststatus 'if ($status) goto error' -alias testerror 'if ( -e \!:1.error && ! -z \!:1.error) goto error' -alias teststop 'if (\!:1 == $stopafter ) goto stop' -alias cleandayfile 'grep -v "\[" $dayfile >.tmp;'\ - 'mv .tmp $dayfile' -alias output 'set date = `date +"(%T)"`;'\ - 'printf "> %s\t%s " "\!:*" "$date" >> $dayfile' - -alias exec '($bin/x \!:*) >> $dayfile;'\ - 'teststatus' - -alias total_exec 'output \!:*;'\ - 'exec \!:*;'\ - 'cleandayfile;'\ - 'testerror \!:1;'\ - 'testerror up\!:1;'\ - 'testerror dn\!:1;'\ - 'teststop \!:1' -alias TOTtoFOR 'sed "s/TOT/FOR/" \!:1 > $tmp;'\ - 'mv $tmp \!:1' -alias FORtoTOT 'sed "s/FOR/TOT/" \!:1 > $tmp;'\ - 'mv $tmp \!:1' -alias IPRINT_inc 'sed "s/0 NUMBER/1 NUMBER/g" \!:1 > $tmp;'\ - 'mv $tmp \!:1' - -#---> default parameters -set ccut = 0.0000 #upper limit for charge convergence -set fcut = 0 #upper limit for force convergence -set ecut = 0.0001 #upper limit for energy convergence -unset ec_conv -set cc_conv -set fc_conv -set ec_test -unset ec_test1 -unset cc_test -unset fc_test -set iter = 40 #maximum number of iterations -set riter = 99 #restart after $riter iterations -set stopafter #stop after $stopafter -set next #set -> start cycle with $next -set qlimit = 0.05 #set -> writes E-L in new in1 when qlimit is fulfilled -set in1new = 999 -set write_all = -ef # new default: -in1ef is activated (version 10.1) -set para -set nohns -set nohns1 = 0 -set it -set readHinv -unset vec2pratt -set it0 -set itnum=0 -set itnum1=0 -set complex -set complex2 -set cmplx -set cmplx2 -set so -set orb -set broyd -set eece1 -unset eece -unset orbc -unset orbdu -unset dm -set ctest=(0 0 0) -set etest=(0 0 0) -set msrcount=0 -# QDMFT -set qdmft -set hf -set diaghf -set nonself -set noibz -set newklist -set redklist -set NSLOTS = 1 -# END QDMFT - -#---> default flags -unset renorm -set in1orig -unset force #set -> force-calculation after self-consistency -unset f_not_conv -unset help #set -> help output -#unset complex #set -> complex calculation -unset init #set -> switches initially set to total energy calc. -unset lcore #set -> core density superposition - -#---> handling of input options -echo "> ($name) options: $argv" >> $logfile -alias sb 'shift; breaksw' #definition used in switch -while ($#argv) - switch ($1) - case -[H|h]: - set help; sb - case -so: - set complex2 = c - set cmplx2 = -c - set so = -so; sb - case -nohns: - set nohns = -nohns; shift; set nohns1 = $1;sb - case -dm: - set dm; sb - case -orb: - set orb = -orb; sb - case -orbc: - set orbc - set orb = -orb; sb - case -eece: - set eece - set eece1 = -eece - set orbc - set orb = -orb; sb - case -orbdu: - set orbdu - set orb = -orb; sb - case -it: - set itnum = 99; set it = -it; set it0 = -it; sb - case -it1: - set itnum = 99; set it = -it; set it0 = -it; touch .noHinv; sb - case -it2: - set itnum = 99; set it = -it; set it0 = -it; touch .fulldiag; sb - case -noHinv: - set itnum = 99; set it = -it; set it0 = -it; set readHinv = -noHinv; sb - case -vec2pratt: - set vec2pratt; sb - case -p: - set para = -p; sb - case -I: - set init; sb - case -NI: - unset broyd; sb - case -e: - shift; set stopafter = $1; sb - case -cc: - shift; set ccut = $1; set cc_test;unset cc_conv; sb - case -ec: - shift; set ecut = $1; set ec_test1;unset ec_conv; sb - case -fc: - shift; set f_not_conv; set fcut = $1; set fc_test;unset fc_conv; sb - case -ql: - shift; set qlimit = $1; sb - case -in1ef: - set in1new = -1;set write_all = -ef; sb - case -in1new: - shift; set in1new = $1;set write_all; sb - case -in1orig: - set in1orig = -in1orig; set in1new = 999; sb - case -renorm: - set renorm; set next=scf1; sb - case -i: - shift; set iter = $1; sb - case -r: - shift; set riter = $1; sb - case -s: - shift; set next = $1; sb -# QDMFT - case -qdmft: - set qdmft=-qdmft; shift; set NSLOTS = $1; sb -# END QDMFT - case -hf: - set hf = -hf; sb - case -diaghf: - set diaghf = -diaghf; set hf = -hf; set iter = 1; sb - case -nonself: - set nonself = -nonself; set hf = -hf; set iter = 1; sb - case -noibz: - set noibz = -noibz; sb - case -newklist: - set newklist = -newklist; set hf = -hf; sb - case -redklist: - set redklist = -redklist; set hf = -hf; sb - default: - echo "ERROR: option $1 does not exist\!"; sb - endsw -end -if ($?help) goto help - -if($?cc_test) then - unset ec_test;set ec_conv -endif -if($?fc_test) then - unset ec_test;set ec_conv -endif -if($?ec_test1) then - set ec_test;unset ec_conv -endif -if(! $?ec_test) then - set ecut=0 -endif - -#---> path- and file-names -set file = `pwd` -set file = $file:t #tail of file-names -set dayfile = $file.dayfile #main output-file - -#---> starting out -printf "\nCalculating $file in `pwd`\non `hostname` with PID $$\n" > $dayfile -echo "using `cat $WIENROOT/VERSION` in $WIENROOT" >> $dayfile -printf "\n:LABEL1: Calculations in `pwd`\n:LABEL2: on `hostname` at `date`\n" >> $file.scf -echo ":LABEL3: using `cat $WIENROOT/VERSION` in $WIENROOT" >> $file.scf - -if ( "$so" == "-so" && "$hf" == "-hf") then - echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" - echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" >> $file.dayfile - exit 9 -endif - -if ( "$hf" == "-hf") then - if (-e $file.corewfup) rm $file.corewfup - if (-e $file.corewfdn) rm $file.corewfdn - IPRINT_inc $file.inc # modify IPRINT switch in case.inc - if ( ! -z $file.incup && -e $file.incup ) then - IPRINT_inc $file.incup - IPRINT_inc $file.incdn - endif -endif - -#---> complex -if ((-e $file.in1c) && !(-z $file.in1c)) then - set complex = c - set complex2 = c - set cmplx = -c - set cmplx2 = -c -endif - -set vresp -testinput $file.inm_vresp no_vresp -set vresp=-vresp -no_vresp: - -# set iter/riter to 999 when MSR1a/MSECa is used -set testmsr=`head -1 $file.inm | grep "MSR[12]a" | cut -c1-3` -set testmsr1=`head -1 $file.inm | grep "MSECa" | cut -c1-5` -if($testmsr1 == 'MSECa') set testmsr=MSR -if ($testmsr == 'MSR') then - if($riter == "99") set riter=999 - if($iter == "40") set iter=999 - foreach i ($file.in2*) - TOTtoFOR $i #switch FOR-label -echo changing $i - end - if (! -e $file.inM && ! -z $file.inM ) then - x pairhess - echo $file.inM and .minrestart have been created by pairhess >>$dayfile - endif -endif - -if ($next != "") goto start #start with optional program -set next = lapw0 #default start with lstart - -if !(-e $file.clmsum) then - if (-e $file.clmsum_old) then - cp $file.clmsum_old $file.clmsum - else - echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!' - echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!'\ - >>$dayfile - goto error - endif -endif - -if ($?broyd) then - if (-e $file.broyd1) then - echo "$file.broyd* files present \! You did not save_lapw a previous clculation." - echo "You have 60 seconds to kill this job ( ^C or kill $$ )" - echo "or the script will rm *.broyd* and continue (use -NI to avoid automatic rm)" - sleep 60 - rm *.broyd* - echo "$file.broyd* files removed \!" >> $dayfile - endif -endif - -start: #initalization of in2-files -if ($?init && $testmsr != 'MSR') then - foreach i ($file.in2*) - sed "1s/[A-Z]..../TOT /" $i > $tmp - mv $tmp $i - end -endif - -set icycle=1 - -set riter_save=$riter -printf "\n\n start \t(%s) " "`date`" >> $dayfile - -#goto mixer only if clmval file is present -if ($next == "scf1") then - if !(-e $file.clmvalup) then - set next = lapw0 - endif -endif - -echo "with $next ($iter/$riter to go)" >> $dayfile -goto $next - -cycle: #begin of sc-cycle -nohup echo in cycle $icycle " ETEST: $etest[3] CTEST: $ctest[3]" -hup - -if ($it == '-it' ) then - set ittest=`echo "$icycle / $itnum * $itnum "| bc` - if ( $ittest == $icycle ) touch .fulldiag -endif - -lapw0: -printf "\n cycle $icycle \t(%s) \t(%s)\n\n" "`date`" "$iter/$riter to go" >> $dayfile - -testinput $file.in0_grr cont_lapw0 -total_exec lapw0 -grr $para - -cont_lapw0: -testinput $file.in0 error_input - -#fix for NFS bug -touch $file.vspup $file.vspdn $file.vnsup $file.vnsdn -rm $file.vspup $file.vspdn $file.vnsup $file.vnsdn - -total_exec lapw0 $para - -if ($fcut == "0") goto orb -set f_exist=`grep :FHF $file.scf0` -if ($#f_exist == 0 ) then - set fcut=0 - set fc_conv - echo Force-convergence not possible. Forces not present. - echo Force-convergence not possible. Forces not present.>> $dayfile - if($?ec_test) goto orb - if($?cc_test) goto orb - goto error -endif - -#---> test of force-convergence for all forces -if !(-e $file.scf) goto orb - if(! $?ec_conv) goto orb - if(! $?cc_conv) goto orb -set natom=`head -2 $file.struct |tail -1 |cut -c28-30` -#set natom = `grep UNITCELL $file.output0 |awk '{print $NF}'` -set iatom = 1 -set ftest = (1 0) -grep :FOR $file.scf >test_forces.scf -while ($iatom <= $natom) #cycle over all atoms - set itest=$iatom - @ itest ++ - testinput $file.inM cont_force_test - set atest=`head -$itest $file.inM |tail -1` - set itest=`echo " $atest[1] + $atest[2] + $atest[3]"|bc` - if ( $itest == '0' ) goto skipforce - cont_force_test: - if ($iatom <= 9) then - set test = (`$bin/testconv -p :FOR00$iatom -c $fcut -f test_forces`) - else if ($iatom <= 99) then - set test = (`$bin/testconv -p :FOR0$iatom -c $fcut -f test_forces`) - else - set test = (`$bin/testconv -p :FOR$iatom -c $fcut -f test_forces`) - endif - if !($test[1]) set ftest[1] = 0 - set ftest[2] = $test[2] - set ftest = ($ftest $test[3] $test[4]) -skipforce: - @ iatom ++ -end -rm test_forces.scf -echo ":FORCE convergence:" $ftest[1-] >> $dayfile - -if ($ftest[1]) then #force convergenced - if ($nohns == '-nohns') then #force convergenced - set nohns - echo "NOHNS deactivated by FORCE convergence" >> $dayfile - else -# set iter = 1 - if(! $?ec_conv) goto orb - if(! $?cc_conv) goto orb - set fc_conv - unset f_not_conv - foreach i ($file.in2*) - TOTtoFOR $i #switch FOR-label - end - endif -else - unset fc_conv -endif - -orb: -foreach i (dmatup dmatdn dmatud ) - if (-e $file.$i"_old" ) rm $file.$i"_old" - if (-e $file.$i ) cp $file.$i $file.$i"_old" #save this cycle for next -end - -if ( -e $file.scforbup ) rm $file.scforbup -if ( -e $file.scforbdn ) rm $file.scforbdn -if ( -e $file.scforbdu ) rm $file.scforbdu -if ( -e $file.vorbdu ) rm $file.vorbdu - -if ( "$orb" != "-orb" ) goto lapw1 -if ( $?orbc ) goto lapw1 -if (! -e $file.dmatup || -z $file.dmatup ) then - set renorm - goto lapw1 -endif -testinput $file.inorb error_input -total_exec orb -up $para -total_exec orb -dn $para -if ( "$so" == "-so" && ! -z $file.dmatud && -e $file.dmatud ) then - if( $?orbdu ) then - total_exec orb -du $para -# vorbdu seems unphysical large, so we use it only with -orbdu switch) - endif -endif - -lapw1: -testinput $file.in1$complex error_input -set readHinv0 = $readHinv -if (-e .noHinv) then - echo " case.storeHinv files removed" - set readHinv0 = -noHinv0 - rm .noHinv -endif -if (-e .fulldiag) then - echo " full diagonalization forced" - set it0 - set readHinv0 - rm .fulldiag - touch ${scratch}$file.vector.old - rm ${scratch}$file.vector*.old -endif -if ( $it0 == "-it" ) then - touch ${scratch}$file.vector.old - if( ! $?vec2pratt ) then - foreach i (${scratch}$file.vector*.old) - rm $i - end - vec2old_lapw $para -up >> $dayfile - vec2old_lapw $para -dn >> $dayfile - else - vec2pratt_lapw $para -up >> $dayfile - vec2pratt_lapw $para -dn >> $dayfile - endif -endif - -if ( -e dnlapw1.error ) rm dnlapw1.error - -if ( $hf == "-hf" ) then - if ((-e $file.vectorhfup) && !(-z $file.vectorhfup) && \ - (-e $file.vectorhfdn) && !(-z $file.vectorhfdn)) then - mv $file.vectorhfup $file.vectorhfup_old - mv $file.vectorhfdn $file.vectorhfdn_old - if (!(-e $file.weighhfup) || (-z $file.weighhfup) || \ - !(-e $file.weighhfdn) || (-z $file.weighhfdn)) then - mv $file.energyhfup $file.tmp_energyhfup - mv $file.energyhfdn $file.tmp_energyhfdn - endif - else if ((-e $file.vectorhfup_old) && !(-z $file.vectorhfup_old) && \ - (-e $file.vectorhfdn_old) && !(-z $file.vectorhfdn_old)) then - if (!(-e $file.weighhfup) || (-z $file.weighhfup) || \ - !(-e $file.weighhfdn) || (-z $file.weighhfdn)) then - mv $file.energyhfup $file.tmp_energyhfup - mv $file.energyhfdn $file.tmp_energyhfdn - endif - else - cp $file.kgen_fbz $file.kgen - cp $file.klist_fbz $file.klist - total_exec lapw1 $it0 -up $nohns $readHinv0 $cmplx - total_exec lapw1 $it0 -dn $nohns $readHinv0 $cmplx - mv $file.vectorup $file.vectorhfup_old - mv $file.vectordn $file.vectorhfdn_old - mv $file.energyup $file.tmp_energyhfup - mv $file.energydn $file.tmp_energyhfdn - if (-e $file.weighhfup) rm $file.weighhfup - if (-e $file.weighhfdn) rm $file.weighhfdn - endif - cp $file.kgen_ibz $file.kgen - cp $file.klist_ibz $file.klist - if (!(-e $file.vspup_old) || (-z $file.vspup_old) || \ - !(-e $file.vspdn_old) || (-z $file.vspdn_old)) then - cp $file.vspup $file.vspup_old - cp $file.vspdn $file.vspdn_old - endif -endif - -#generates in1-file from :EPL/EPH in case.scf2 -# if ($icycle == $in1new) rm $file.broyd1 $file.broyd2 - if ($icycle >= $in1new ) then - if (! -e $file.in1${complex}_orig ) cp $file.in1${complex} $file.in1${complex}_orig - write_in1_lapw $write_all -up -ql $qlimit ${cmplx} >> $dayfile - if($status == 0 ) cp $file.in1${complex}new $file.in1${complex} - endif -if($?in1orig == '-in1orig') then - if ( -e $file.in1${complex}_orig ) mv $file.in1${complex}_orig $file.in1${complex} -# unset in1orig -endif -if ( "$so" == "-so" ) then - total_exec lapw1 $it0 -up $para $nohns $readHinv0 $cmplx -else - total_exec lapw1 $it0 -up $para $nohns $orb $readHinv0 $cmplx -endif - if ($icycle >= $in1new ) then - write_in1_lapw $write_all -dn -ql $qlimit ${cmplx}>> $dayfile - if($status == 0 ) cp $file.in1${complex}new $file.in1${complex} - endif -if ( "$so" == "-so" ) then - total_exec lapw1 $it0 -dn $para $nohns $readHinv0 $cmplx -else - total_exec lapw1 $it0 -dn $para $nohns $orb $readHinv0 $cmplx -endif -set it0 = $it -set readHinv0 = $readHinv - -lapwso: -if ( -e $file.scfso ) rm $file.scfso -if ( "$so" == "-so" ) then - testinput $file.inso error_input - total_exec lapwso -up $orb $para $cmplx -endif - -lapw2: -testinput $file.in2$complex2 error_input -if ( -e dnlapw2.error ) rm dnlapw2.error -if ( $hf == "-hf" ) then - if (!(-e $file.weighhfup) || (-z $file.weighhfup) || \ - !(-e $file.weighhfdn) || (-z $file.weighhfdn)) then - cp $file.kgen_fbz $file.kgen - cp $file.klist_fbz $file.klist - if (-e $file.vectorup) mv $file.vectorup $file.vectorup_save - if (-e $file.vectordn) mv $file.vectordn $file.vectordn_save - mv $file.vectorhfup_old $file.vectorup - mv $file.vectorhfdn_old $file.vectordn - if (-e $file.energyup) mv $file.energyup $file.energyup_save - if (-e $file.energydn) mv $file.energydn $file.energydn_save - mv $file.tmp_energyhfup $file.energyup - mv $file.tmp_energyhfdn $file.energydn - total_exec lapw2 -up $vresp $in1orig $cmplx2 - total_exec lapw2 -dn $vresp $in1orig $cmplx2 - mv $file.weighup $file.weighhfup - mv $file.weighdn $file.weighhfdn - mv $file.vectorup $file.vectorhfup_old - mv $file.vectordn $file.vectorhfdn_old - if (-e $file.vectorup_save) mv $file.vectorup_save $file.vectorup - if (-e $file.vectordn_save) mv $file.vectordn_save $file.vectordn - mv $file.energyup $file.energyhfup - mv $file.energydn $file.energyhfdn - if (-e $file.energyup_save) mv $file.energyup_save $file.energyup - if (-e $file.energydn_save) mv $file.energydn_save $file.energydn - cp $file.kgen_ibz $file.kgen - cp $file.klist_ibz $file.klist - endif -endif -#QDMFT -if ( "$qdmft" == "-qdmft" ) then - total_exec lapw2 -up $para $vresp -almd $cmplx2 $so - total_exec lapw2 -dn $para $vresp -almd $cmplx2 $so - dmftproj $so -sp - # pytriqs call - printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in runsp_triqs Wien2k script\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in runsp_triqs Wien2k script\n" - exit 0 - # to call pytriqs uncomment and modify the line below to adapt it to your system - # the number of core is in NSLOTS variable - #mpprun --force-mpi=openmpi/1.3.2-i110074 /home/x_leopo/TRIQS_segment/triqs_install/bin/pytriqs $file.py - total_exec lapw2 -up $para $vresp -qdmft $cmplx2 $so - total_exec lapw2 -dn $para $vresp -qdmft $cmplx2 $so -else - total_exec lapw2 -up $para $vresp $in1orig $cmplx2 $so - total_exec lapw2 -dn $para $vresp $in1orig $cmplx2 $so - if ( $hf == "-hf" ) then - sed 's/:SUM/:SLSUM/g' < $file.scf2up > $file.scf2up_tmp - mv $file.scf2up_tmp $file.scf2up - mv $file.clmvalup $file.clmvalslup - if ( -e $file.scfhfup_1 ) rm $file.scfhfup_* - sed 's/:SUM/:SLSUM/g' < $file.scf2dn > $file.scf2dn_tmp - mv $file.scf2dn_tmp $file.scf2dn - mv $file.clmvaldn $file.clmvalsldn - if ( -e $file.scfhfdn_1 ) rm $file.scfhfdn_* - endif -endif -# END QDMFT - -rm -f $file.clmscup $file.clmscdn - -if ( $hf == "-hf" ) goto hf - -lapwdm: -if ( -e $file.scfdmup ) rm $file.scfdmup -if ( -e $file.scfdmdn ) rm $file.scfdmdn -if ( ! $?dm ) then - if ( "$orb" != "-orb" ) goto lapw1s - if ( $?orbc ) goto lapw1s -endif -#if ( "$so" == "-so" ) goto lapwdmc -testinput $file.indm$complex2 error_input -if ( -e dnlapwdm.error ) rm dnlapwdm.error -total_exec lapwdm -up $para $cmplx2 $so -if ( "$so" != "-so" ) then -total_exec lapwdm -dn $para $cmplx2 $so -endif -lapw1s: -testinput $file.in1${complex}s lcore -total_exec lapw1 -sc -up $para $nohns $orb $readHinv0 $cmplx -total_exec lapw1 -sc -dn $para $nohns $orb $readHinv0 $cmplx - -lapw2s: -testinput $file.in2${complex2}s error_input -total_exec lapw2 -sc -up $para $vresp $in1orig $cmplx2 -total_exec lapw2 -sc -dn $para $vresp $in1orig $cmplx2 -goto lcore - -hf: -testinput $file.inhf error_input -if (-e dnhf.error) rm dnhf.error -if (!(-e $file.corewfup) || (-z $file.corewfup)) then - total_exec lcore -up - total_exec lcore -dn -endif -total_exec hf -up $diaghf $nonself $noibz $newklist $redklist $para $cmplx -total_exec hf -dn $diaghf $nonself $noibz $newklist $redklist $para $cmplx - -lapw2hf: -testinput $file.in2$complex2 error_input -cp $file.kgen_fbz $file.kgen -cp $file.klist_fbz $file.klist -total_exec lapw2 -up -hf $vresp $in1orig $cmplx2 -total_exec lapw2 -dn -hf $vresp $in1orig $cmplx2 -cp $file.kgen_ibz $file.kgen -cp $file.klist_ibz $file.klist - -lcore: -testinput $file.inc scf -if ( ! -z $file.incup && -e $file.incup ) then - cp $file.incup $file.inc - echo "spinpolarized $file.incup/dn used" >> $dayfile -endif -if ( -e dnlcore.error ) rm dnlcore.error -total_exec lcore -up -if ( ! -z $file.incdn && -e $file.incdn ) then - cp $file.incdn $file.inc -endif -total_exec lcore -dn - -coresuper: - if ( ! -e .lcore) goto scf - total_exec dstart -lcore -up - total_exec dstart -lcore -dn - rm $file.clmcorup $file.clmcordn - -scf: -if ( $hf == "-hf" ) then - foreach i ( 0 0_grr orbup orbdn orbdu 1up 1dn so 2up 2dn dmup dmdn 1sup 1sdn 2sup 2sdn cup cdn hfup hfdn 2hfup 2hfdn ) - if (-e $file.scf$i) then - if ("$i" != "dmdn" || "$so" != "-so") cat $file.scf$i >> $file.scf - endif - end -else - foreach i ( 0 orbup orbdn orbdu 1up 1dn so 2up 2dn dmup dmdn 1sup 1sdn 2sup 2sdn cup cdn ) - if (-e $file.scf$i) then - if ("$i" != "dmdn" || "$so" != "-so") cat $file.scf$i >> $file.scf - endif - end -endif - -if ( $?eece ) then - mv $file.scf2up $file.scf2up-tmp - mv $file.scf2dn $file.scf2dn-tmp - if( $vresp == '-vresp' ) then - mv $file.vrespvalup $file.vrespvalup-tmp - mv $file.vrespvaldn $file.vrespvaldn-tmp - mv $file.vrespcorup $file.vrespcorup-tmp - mv $file.vrespcordn $file.vrespcordn-tmp - endif - foreach i ( vorbup vorbdn vorbdu ) - if (-e $file.$i"_old" ) rm $file.$i"_old" - if (-e $file.$i ) cp $file.$i $file.$i"_old" #save last cycle - end - runeece_lapw $so $para $vresp - teststatus - foreach i (vorbup vorbdn vorbud ) - if (-e $file.$i"_unmixed" ) rm $file.$i"_unmixed" - if (-e $file.$i ) cp $file.$i $file.$i"_unmixed" #save unmixed dmat - end - mv $file.scf2up $file.scf2upeece - mv $file.scf2dn $file.scf2dneece - mv $file.scf2up-tmp $file.scf2up - mv $file.scf2dn-tmp $file.scf2dn - if( $vresp == '-vresp' ) then - mv $file.vrespvalup $file.vrespvaleeceup - mv $file.vrespvaldn $file.vrespvaleecedn - mv $file.vrespvalup-tmp $file.vrespvalup - mv $file.vrespvaldn-tmp $file.vrespvaldn - mv $file.vrespcorup-tmp $file.vrespcorup - mv $file.vrespcordn-tmp $file.vrespcordn - endif - goto scf1 -endif - -foreach i (dmatup dmatdn dmatud ) - if (-e $file.$i"_unmixed" ) rm $file.$i"_unmixed" - if (-e $file.$i ) cp $file.$i $file.$i"_unmixed" #save the unmixed dmat -end - -scf1: -foreach i (clmsum clmup clmdn vspup vspdn vnsup vnsdn ) - if (-e $file.$i ) cp $file.$i $file.$i"_old" #save last cycle -end - - -mixer: -testinput $file.inm error_input -if ( $?orbc ) then - total_exec mixer -else - total_exec mixer $eece1 $orb -endif -cat $file.scfm >> $file.scf - -if($?renorm) then - unset renorm - rm $file.broy* -endif - -mixer_vresp: -testinput $file.inm_vresp energytest -total_exec mixer_vresp -grep -e "CTO " -e NEC $file.outputm_vresp | sed 's/:/:VRESP/' >> $file.scf -#total_exec int16 - -energytest: -#---> output energies -#set EF = `grep 'F E R' $file.scf2 |awk '{printf("%.5f", $NF)}'` -#set ET = `grep 'AL EN' $file.outputm |awk '{printf("%.5f", $NF)}'` -#cat << theend >> $dayfile -#EF $EF -#ET $ET -#theend -#echo $ET > $file.finM - -#---> test of energy convergence -#if ($ecut == "0") goto chargetest -set etest = (`$bin/testconv -p :ENE -c $ecut`) -teststatus -echo ":ENERGY convergence: $etest[1-3]" >> $dayfile -if (! $?ec_test) goto chargetest -if ($etest[1]) then - if ($nohns == '-nohns') then - set nohns - echo "NOHNS deactivated by ENERGY convergence" >> $dayfile - else -# set iter = 1 - set ec_conv - endif -else - unset ec_conv -endif - -chargetest: -#if ($ccut == "0") goto nextiter -set ctest = (`$bin/testconv -p :DIS -c $ccut`) -teststatus -echo ":CHARGE convergence: $ctest[1-3]" >> $dayfile -if (! $?cc_test) goto nextiter -if ($ctest[1]) then - if ($nohns == '-nohns') then - set nohns - echo "NOHNS deactivated by CHARGE convergence" >> $dayfile - else -# set iter = 1 - set cc_conv - endif -else - unset cc_conv -endif - -# check F-condition for MSR1a mode -if ($testmsr == 'MSR') then - set msrtest =(`grep :FRMS $file.scf |tail -1` ) - if ($#msrtest >= 13 ) then - echo msrcount $msrcount msrtest $msrtest[13] -# Trap silly early convergene with "minimum-requests" - set etest2 = (`$bin/testconv -p :ENE -c 0.001`) - if ( $etest2[1] == '0')set msrtest[13]='F' - set ctest2 = (`$bin/testconv -p :DIS -c 0.01`) - if ( $ctest2[1] == '0')set msrtest[13]='F' -# - if ($msrtest[13] == 'T') then - #change in case.inm MSR1a/MSECa to MSR1/MSEC3, rm *.bro*, unset testmsr -@ msrcount ++ - if($msrcount == 3) then - sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp - sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm - rm *.broy* $file.inm_tmp - set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` - set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` - echo $b > .msec - echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile - set testmsr - endif - else - set msrcount=0 - endif - endif -endif - -#---> output forces -#grep 'FTOT' $file.outputm|awk '{print "FT ",$2,$4,$5,$6}'\ -# >> $dayfile -#grep 'FTOT' $file.outputm|awk '{print $4,$5,$6}' \ -# >> $file.finM - -nextiter: -@ iter -- -@ riter -- -@ nohns1 -- -@ icycle ++ - -if ($icycle == 2) set newklist - -#---> nohns -if (! $nohns1 ) then - set nohns - echo "NOHNS deactivated" >> $dayfile -endif - -#---> restart -if (! $riter && -e $file.broyd1) then - echo " restart" >> $dayfile - rm $file.broyd1 $file.broyd2 - set riter=$riter_save -endif - -foreach i ($tmp) #delete temporary files - if (-e $i) rm $i -end - -#output cycle -#printf "%s\n\n" "$iter/$riter to go" >> $dayfile -if (-e .stop) goto stop1 -if ($testmsr == 'MSR' && -e .minstop) then - sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp - sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm - rm *.broy* $file.inm_tmp - set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` - set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` - echo $b > .msec - echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile - set testmsr -endif - - -if($?ec_conv && $?cc_conv && $?fc_conv && ($testmsr == '')) goto stop - -if ($iter) goto cycle #end of sc-cycle - -if ( $?f_not_conv ) then - printf "\n> FORCES NOT CONVERGED\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> FORCES NOT CONVERGED\n" - exit 3 -endif -if ( ! $?ec_conv ) then - printf "\n> energy in SCF NOT CONVERGED\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> energy in SCF NOT CONVERGED\n" - exit 0 -endif -if ( ! $?cc_conv ) then - printf "\n> charge in SCF NOT CONVERGED\n" >> $dayfile - printf "\n> stop\n" >> $dayfile - printf "\n> charge in SCF NOT CONVERGED\n" - exit 0 -endif - -stop: #normal exit -printf "\n> stop\n" >> $dayfile -printf "\n> stop\n" -exit 0 - -stop1: #normal exit -printf "\n> stop due to .stop file\n" >> $dayfile -if (-e .stop) rm .stop -printf "\n> stop due to .stop file\n" -exit 1 - -error_input: #error exit -printf "\n> stop error: the required input file $errin for the next step could not be found\n" >> $dayfile -printf "\n> stop error: the required input file $errin for the next step could not be found\n" -exit 9 - -error: #error exit -printf "\n> stop error\n" >> $dayfile -printf "\n> stop error\n" -exit 9 - -help: #help exit -cat << theend - -PROGRAM: $0 - -PURPOSE: running the spinpolarized scf-cycle in WIEN - to be called within the case-directory - has to be located in '$WIENROOT' directory - -USAGE: $name [OPTIONS] [FLAGS] - -OPTIONS: --cc LIMIT -> charge convergence LIMIT (0.0001 e) --ec LIMIT -> energy convergence LIMIT ($ecut Ry) --fc LIMIT -> force convergence LIMIT (1.0 mRy/a.u.) - default is -ec 0.0001; multiple convergence tests possible --e PROGRAM -> exit after PROGRAM ($stopafter) --i NUMBER -> max. NUMBER ($iter) of iterations --s PROGRAM -> start with PROGRAM ($next) --r NUMBER -> restart after NUMBER ($riter) iterations (rm *.broyd*) --nohns NUMBER ->do not use HNS for NUMBER iterations --in1new N -> create "new" in1 file after N iter (write_in1 using scf2 info) --ql LIMIT -> select LIMIT ($qlimit) as min.charge for E-L setting in new in1 --qdmft NP -> including DMFT from Aichhorn/Georges/Biermann running on NP proc - -FLAGS: --h/-H -> help --I -> with initialization of in2-files to "TOT" --NI -> does NOT remove case.broyd* (default: rm *.broyd* after 60 sec) --p -> run k-points in parallel (needs .machine file [speed:name]) --it -> use iterative diagonalization --it1 -> use iterative diag. with recreating H_inv (after basis change) --it2 -> use iterative diag. with reinitialization (after basis change) --noHinv -> use iterative diag. without H_inv --vec2pratt -> use vec2pratt instead of vec2old for iterative diag. --so -> run SCF including spin-orbit coupling --dm -> calculate the density matrix (when -so is set, but -orb is not) --eece -> use "ecact exchange+hybrid" methods --orb -> use LDA+U, OP or B-ext correction --orbc -> use LDA+U correction, but with constant V-matrix --orbdu -> use LDA+U with crossterms up-dn (needs also -so) --renorm-> start with mixer and renormalize density --in1orig-> if present, use case.in1_orig file; do not modify case.in1 --hf -> HF/hybrid-DFT calculation --diaghf -> non-selfconsistent HF with diagonal HF only (only e_i) --nonself -> non-selfconsistent HF/hybrid-DFT calculation (only E_x(HF)) --newklist -> HF/hybrid-DFT calculation starting from a different k-mesh --redklist -> HF/hybrid-DFT calculation with a reduced k-mesh for the potential - -CONTROL FILES: -.lcore runs core density superposition producing case.clmsc -.stop stop after SCF cycle -.minstop stops MSR1a minimization and changes to MSR1 -.fulldiag force full diagonalization -.noHinv remove case.storeHinv files -case.inm_vresp activates calculation of vresp files for meta-GGAs -case.in0_grr activates a second call of lapw0 (mBJ pot., or E_xc analysis) - -ENVIRONMENT VARIBLES: -SCRATCH directory where vectors and help files should go - -theend - -exit 1 - - diff --git a/fortran/dmftproj/density.f b/fortran/dmftproj/density.f deleted file mode 100644 index 3440a5b..0000000 --- a/fortran/dmftproj/density.f +++ /dev/null @@ -1,1109 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE density(tetr,only_corr,qtot,ifprnt) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine computes the density matrices for all the %% -C %% inlcuded orbitals and the corresponding total charge, within %% -C %% the energy window for which the projectors were previously %% -C %% defined. %% -C %% %% -C %% If tetr = .TRUE., the tetrahedron weights are used. %% -C %% = .FALSE., a simple point integration is used. %% -C %% %% -C %% If only_corr = .TRUE., the calculation is performed for the %% -C %% correlated orbitals only. %% -C %% %% -C %% If ifprnt = .TRUE., the density matrices are written in the %% -C %% file case.outdmftpr. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definition of the variables : -C ---------------------------- - USE almblm_data - USE common_data - USE prnt - USE projections - USE reps - USE symm - IMPLICIT NONE - LOGICAL :: tetr, only_corr, ifprnt - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: D - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: conj_mat, mat - INTEGER :: is, is1, ik, iorb, l, nbnd, iss - INTEGER :: lm, i, icrorb, m1, m2, m, ib - INTEGER :: iatom, jatom, jorb, imu, isrt, isym - INTEGER :: istart, istart1 - INTEGER :: nbbot, nbtop - REAL(KIND=8) :: q, qtot -C - WRITE(buf,'(a)')'Evaluation of the density matrices...' - CALL printout(0) - CALL printout(0) -C -C Initialization of the variable nsp and of the table crdensmat -C nsp describes the number of block necessary to describe the complete density matrix. - nsp=ns - IF(ifSO) nsp=4 -C The only possible cases are therefore : -C nsp=1 for a computation without spin-polarized input files, without SO [block (up/up+dn/dn)] -C nsp=2 for a computation with spin-polarized input files (but without SO) [blocks up/up and dn/dn] -C nsp=4 for a computation (with spin-polarized input files) with SO [all the blocks] -C -C -C ============================================================= -C Computation of the density matrices for correlated orbitals : -C ============================================================= -C -C These computations are performed only if there are correlated orbitals in the system. - IF(ncrorb.NE.0) THEN -C crdensmat is a table of size nsp*ncrorb. -C For each correlated orbital icrorb, crdensmat(:,icrorb) is the corresponding density matrix. - IF(.NOT.ALLOCATED(crdensmat)) THEN - ALLOCATE(crdensmat(nsp,ncrorb)) - ENDIF - DO icrorb=1,ncrorb - DO is=1,nsp - IF(ALLOCATED(crdensmat(is,icrorb)%mat)) - & DEALLOCATE(crdensmat(is,icrorb)%mat) - ALLOCATE(crdensmat(is,icrorb)%mat(1,1)) - crdensmat(is,icrorb)%mat(1,1)=0.d0 - ENDDO - ENDDO -C -C Loop on the correlated orbitals icrorb -C - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C -C ----------------------------------------------------------------------------------- -C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : -C ----------------------------------------------------------------------------------- - IF (l==0) THEN -C The field mat of crdensmat has already the good size (1 scalar element). -C There's no need of a basis change since the representation of an s-orbital is Identity whatever the basis is. - DO ik=1,nk - DO iss=1,nsp -C -C Determination of the block indices : -C ------------------------------------ - IF(iss.LE.2) THEN - is=iss - is1=iss -C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block -C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block - ELSE - is=iss-2 - is1=3-is -C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block -C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block - ENDIF -C Only the k-points with included bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE - IF(.NOT.kp(ik,is1)%included) CYCLE - nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 - nbbot=kp(ik,is)%nb_bot - nbtop=kp(ik,is)%nb_top -C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. -C for the off-diagonal blocks (calculated only when SO is considered), -C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] -C thus nbtop and nbtop fit again for is and is1. -C -C Computation of the density matrix using the tetrahedron weights for the integration : -C ------------------------------------------------------------------------------------- - IF(tetr) THEN -C The field pr_crorb%mat_rep is used to perform the computation (well defined for s-orbitals) - ALLOCATE(mat(1,nbbot:nbtop),conj_mat(1,nbbot:nbtop)) - mat(1,nbbot:nbtop)= - & pr_crorb(icrorb,ik,is)%mat_rep(1,nbbot:nbtop)* - & SQRT(kp(ik,is)%tetrweight(nbbot:nbtop)) - conj_mat(1,nbbot:nbtop)=CONJG( - & pr_crorb(icrorb,ik,is1)%mat_rep(1,nbbot:nbtop))* - & SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) -C mat = P(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) -C conj_mat = conjugate[ P(icrorb,ik,is1)) ]*sqrt(tetrahedron-weight(ik,is1)) - DO ib = nbbot,nbtop - crdensmat(iss,icrorb)%mat(1,1)= - = crdensmat(iss,icrorb)%mat(1,1)+ - + mat(1,ib)*conj_mat(1,ib) - ENDDO -C crdensmat = mat*transpose(conj_mat) which is a matrix of size 1 -C The summation over the k-points is done with the do loop ; -C crdensmat(iss,icrorb) is therefore the block "iss" of the density matrix for the orbital icrorb. - DEALLOCATE(conj_mat,mat) -C -C Computation of the density matrix using a simple point integration : -C -------------------------------------------------------------------- - ELSE - DO ib = nbbot, nbtop - crdensmat(iss,icrorb)%mat(1,1)= - = crdensmat(iss,icrorb)%mat(1,1)+ - + pr_crorb(icrorb,ik,is)%mat_rep(1,ib)* - * CONJG(pr_crorb(icrorb,ik,is1)%mat_rep(1,ib))* - * kp(ik,is)%weight - ENDDO -C crdensmat = P(icrorb,ik,is)*transpose(conjugate(P(icrorb,ik,is1)))*weight(ik,is) which is a matrix of size 1. -C The weight used is a geometric factor associated to k and does not depend on the variable is. -C That's why we merely multiply by the "weight" each term while summing over the k-points. - ENDIF - ENDDO ! End of the iss loop - ENDDO ! End of the ik loop -C -C ----------------------------------------------------------------------------------------------------- -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : -C ----------------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) -C Moreover ifSP=.TRUE. (since ifSO => ifSP, in this version) -C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) -C -C The field mat of crdensmat must be resized. -C As the complete spinor rotation approach is used, only one matrix is necessary (with is=1). - DEALLOCATE(crdensmat(1,icrorb)%mat) - ALLOCATE(crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))) - crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))=0.d0 - ALLOCATE(D(1:2*(2*l+1),1:2*(2*l+1))) -C -C Computation of the density matrix using the tetrahedron weights for the integration : -C ------------------------------------------------------------------------------------- - IF(tetr) THEN - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,1)%included) CYCLE - nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 - nbbot=kp(ik,1)%nb_bot - nbtop=kp(ik,1)%nb_top -C A distinction between up and dn states is necessary in order to use the tetrahedron weight. -C As a result, we will transform the projectors back in spherical harmonics basis -C to perform the calculation and then put the resulting density matrix in the desired basis. -C - ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) - ALLOCATE(conj_mat(1:2*(2*l+1),nbbot:nbtop)) -C The representation of the projectors is put back in the spherical harmonics basis - mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL(TRANSPOSE(CONJG( - = reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1)))),pr_crorb(icrorb,ik,1)% - & mat_rep(1:2*(2*l+1),nbbot:nbtop)) -C mat = inverse(reptrans)*pr_crorb%mat_rep = *proj_{new_i} = proj_{lm} [temporarily] - conj_mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL( - & TRANSPOSE(CONJG(reptrans(l,isrt)% - & transmat(1:2*(2*l+1),1:2*(2*l+1)) )), - & pr_crorb(icrorb,ik,1)%mat_rep - & (1:2*(2*l+1),nbbot:nbtop)) -C conj_mat = inverse(reptrans)*pr_crorb%mat_rep = *proj_{new_i} = proj_{lm} [temporarily] - DO m=1,2*l+1 - mat(m,nbbot:nbtop)=mat(m,nbbot:nbtop)* - & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) -C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) - mat((2*l+1)+m,nbbot:nbtop)= - = mat((2*l+1)+m,nbbot:nbtop)* - & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) -C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) -C mat = P(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) - conj_mat(m,nbbot:nbtop)= - = CONJG(conj_mat(m,nbbot:nbtop))* - & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) -C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) - conj_mat((2*l+1)+m,nbbot:nbtop)= - & CONJG(conj_mat((2*l+1)+m,nbbot:nbtop))* - & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) -C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) -C conj_mat = conjugate[ P(icrorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] - ENDDO - CALL zgemm('N','T',2*(2*l+1),2*(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),conj_mat,2*(2*l+1), - & DCMPLX(0.D0,0.D0),D,2*(2*l+1)) - DEALLOCATE(conj_mat,mat) -C D = mat*transpose(conj_mat) is a matrix of size 2*(2*l+1)* 2*(2*l+1) -C - crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - & crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) - & +D(1:2*(2*l+1),1:2*(2*l+1)) - END DO ! End of the ik loop -C The summation over the k-points is done. -C crdensmat(icrorb) is therefore the complete density matrix in spherical harmonic basis. -C -C The density matrix is then put into the desired basis, using reptrans(l,isrt)%transmat - crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1)),crdensmat(1,icrorb)%mat - & (1:2*(2*l+1),1:2*(2*l+1)) ) - crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(crdensmat(1,icrorb)%mat - & (1:2*(2*l+1),1:2*(2*l+1)),TRANSPOSE( CONJG( - & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))))) -C crdensmat = (reptrans)*crdensmat_l*inverse(reptrans) -C or crdensmat = crdensmat_{lm} -C crdensmat(icrorb) is now the complete density matrix in the desired basis. -C -C Computation of the density matrix using a simple point integration : -C -------------------------------------------------------------------- - ELSE -C No distinction between up and dn states is necessary because we use a -C geometric factor which depends only of the k-point. -C We can then use directly the projectors in the desired basis. - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,1)%included) CYCLE - nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 - nbbot=kp(ik,1)%nb_bot - nbtop=kp(ik,1)%nb_top - ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) - mat(1:2*(2*l+1),nbbot:nbtop)= - = pr_crorb(icrorb,ik,1)%mat_rep(1:2*(2*l+1), - & nbbot:nbtop) - CALL zgemm('N','C',2*(2*l+1),2*(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),mat,2*(2*l+1), - & DCMPLX(0.D0,0.D0),D,2*(2*l+1)) - DEALLOCATE(mat) -C D = P(icrorb,ik,is)*transpose(conjugate(P(icrorb,ik,is))) is a matrix of size 2*(2*l+1) * 2*(2*l+1) - crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) - + +D(1:2*(2*l+1),1:2*(2*l+1))*kp(ik,1)%weight - ENDDO ! End of the ik loop -C The summation over the k-points is done in the do loop. -C The weight used is a geometric factor associated to k and does not depend on the variable is. -C That's why we merely multiply by the "weight" each term while summing over the k-points. - ENDIF - DEALLOCATE(D) -C -C ---------------------------------------------------------------------------------------------- -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : -C ---------------------------------------------------------------------------------------------- - ELSE -C The field mat of crdensmat must be resized. -C nsp matrices of size (2*l+1) are necessary to represent the whole density matrix. - DO is=1,nsp - DEALLOCATE(crdensmat(is,icrorb)%mat) - ALLOCATE(crdensmat(is,icrorb)%mat(-l:l,-l:l)) - crdensmat(is,icrorb)%mat(-l:l,-l:l)=0.d0 - ENDDO - ALLOCATE(D(-l:l,-l:l)) -C All the computations can be performed in the new basis (using the field pr_crorb%mat_rep) - DO ik=1,nk - DO iss=1,nsp -C -C Determination of the block indices : -C ------------------------------------ - IF(iss.LE.2) THEN - is=iss - is1=iss -C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block -C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block - ELSE - is=iss-2 - is1=3-is -C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block -C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block - ENDIF -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE - IF(.NOT.kp(ik,is1)%included) CYCLE - nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 - nbbot=kp(ik,is)%nb_bot - nbtop=kp(ik,is)%nb_top -C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. -C for the off-diagonal blocks (calculated only when SO is considered), -C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] -C thus nbtop and nbtop fit again for is and is1. -C -C Computation of the density matrix using the tetrahedron weights for the integration : -C ------------------------------------------------------------------------------------- - IF(tetr) THEN -C The representation of the projectors in the desired basis is used (field pr_crorb%mat_rep) - ALLOCATE(mat(-l:l,nbbot:nbtop)) - ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) - DO m=-l,l - mat(m,nbbot:nbtop)= - = pr_crorb(icrorb,ik,is)%mat_rep(m,nbbot:nbtop)* - & SQRT(kp(ik,is)%tetrweight(nbbot:nbtop)) - conj_mat(m,nbbot:nbtop)=CONJG( - & pr_crorb(icrorb,ik,is1)%mat_rep(m,nbbot:nbtop)) - & *SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) -C mat = P(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) -C conj_mat = conjugate[ P(icrorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] - ENDDO - CALL zgemm('N','T',(2*l+1),(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), - & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) - DEALLOCATE(conj_mat,mat) -C D = mat*transpose(conj_mat) is a matrix of size (2*l+1)*(2*l+1) - crdensmat(iss,icrorb)%mat(-l:l,-l:l)= - = crdensmat(iss,icrorb)%mat(-l:l,-l:l)+D(-l:l,-l:l) -C The summation over the k-points is done. -C crdensmat(icrorb) is therefore the complete density matrix of the orbital icrorb. -C -C Computation of the density matrix using a simple point integration : -C -------------------------------------------------------------------- - ELSE - ALLOCATE(mat(-l:l,nbbot:nbtop)) - ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) - mat(-l:l,nbbot:nbtop)=pr_crorb(icrorb,ik,is) - & %mat_rep(-l:l,nbbot:nbtop) - conj_mat(-l:l,nbbot:nbtop)=pr_crorb(icrorb,ik,is1) - & %mat_rep(-l:l,nbbot:nbtop) - CALL zgemm('N','C',(2*l+1),(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), - & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) - DEALLOCATE(mat,conj_mat) -C D = P(icrorb,ik,is)*transpose(conjugate(P(icrorb,ik,is))) is a matrix of size (2*l+1)*(2*l+1) - crdensmat(iss,icrorb)%mat(-l:l,-l:l)= - = crdensmat(iss,icrorb)%mat(-l:l,-l:l) - + +D(-l:l,-l:l)*kp(ik,is)%weight -C The weight used is a geometric factor asoociated to k and does not depend on the variable is. -C That's why we merely multiply by the "weight" each term while summing over the k-points. - ENDIF - ENDDO ! End of the iss loop - ENDDO ! End of the ik loop - DEALLOCATE(D) - ENDIF ! End of the basis if-then-else -C - ENDDO ! End of the icrorb loop -C -C -C =============================== -C Symmetrization to the full BZ : -C =============================== - CALL symmetrize_mat(crdensmat,crorb,ncrorb) -C -C -C ============================================================================ -C Application of the Rloc transformation to go back to the local coordinates : -C ============================================================================ - CALL rotdens_mat(crdensmat,crorb,ncrorb) -C -C -C ================================================================= -C Printing the density matrices and the charge in the output file : -C ================================================================= - IF(ifprnt) THEN - CALL printout(0) - WRITE(buf,'(a)') '-------------------------------------' - CALL printout(0) - WRITE(buf,'(a)') - & 'Density Matrices for the Correlated States : ' - CALL printout(0) -C The density matrices and charge are printed for all the corrrelated orbitals - DO icrorb=1,ncrorb - CALL printout(0) - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C Description of the correlated orbital - WRITE(buf,'(3(a,i3))') - & ' Sort = ',isrt,' Atom = ',crorb(icrorb)%atom, - & ' and Orbital l = ',l - CALL printout(0) - q=0d0 -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For a calculation spin-polarized with SO : - IF (nsp==4) THEN - WRITE(buf,'(2(2F12.6,2x))') - & crdensmat(1,icrorb)%mat(1,1), - & crdensmat(3,icrorb)%mat(1,1) - CALL printout(0) - WRITE(buf,'(2(2F12.6,2x))') - & crdensmat(4,icrorb)%mat(1,1), - & crdensmat(2,icrorb)%mat(1,1) - CALL printout(0) - q=q+crdensmat(1,icrorb)%mat(1,1)+ - + crdensmat(2,icrorb)%mat(1,1) -C For a calculation spin-polarized without SO : - ELSE IF (nsp==2) THEN - WRITE(buf,'(2(2F12.6,2x))') - & crdensmat(1,icrorb)%mat(1,1),DCMPLX(0.D0,0.D0) - CALL printout(0) - WRITE(buf,'(2(2F12.6,2x))') - & DCMPLX(0.D0,0.D0),crdensmat(2,icrorb)%mat(1,1) - CALL printout(0) - q=q+crdensmat(1,icrorb)%mat(1,1)+ - + crdensmat(2,icrorb)%mat(1,1) -C For a paramagnetic calculation without SO : - ELSE - WRITE(buf,'(2F12.6,2x)') crdensmat(1,icrorb)%mat(1,1) - CALL printout(0) - q=q+crdensmat(1,icrorb)%mat(1,1) - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO : - WRITE(buf,'(a,a)') 'Writing the matrix as : ', - & '[ block 1 | block 2 ] with' - CALL printout(0) - WRITE(buf,'(a,a)') ' ', - & '[ block 3 | block 4 ]' - CALL printout(0) -C Printing the different blocks - ALLOCATE(D(1,1:2*l+1)) - WRITE(buf,'(a,i2,a)') ' # For the block 1 :' - CALL printout(0) - DO m=1,2*l+1 - D(1,1:2*l+1)=crdensmat(1,icrorb)%mat(m,1:(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') ' # For the block 2 :' - CALL printout(0) - DO m=1,2*l+1 - D(1,1:2*l+1)= - & crdensmat(1,icrorb)%mat(m,2*l+2:2*(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') ' # For the block 3 :' - CALL printout(0) - DO m=2*l+2,2*(2*l+1) - D(1,1:2*l+1)= - & crdensmat(1,icrorb)%mat(m,1:(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') ' # For the block 4 :' - CALL printout(0) - DO m=2*l+2,2*(2*l+1) - D(1,1:2*l+1)= - & crdensmat(1,icrorb)%mat(m,2*l+2:2*(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - DEALLOCATE(D) - DO m1=1,2*(2*l+1) - q=q+crdensmat(1,icrorb)%mat(m1,m1) - ENDDO -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF(nsp==4) THEN - WRITE(buf,'(a,a)') 'Writing the matrix as : ', - & '[ block up/up | block up/dn ] with' - CALL printout(0) - WRITE(buf,'(a,a)') ' ', - & '[ block dn/up | block dn/dn ]' - CALL printout(0) - ELSEIF(nsp==2) THEN - WRITE(buf,'(a,a)') 'Writing the matrix as : ', - & '[ block up/up | 0 ] with' - CALL printout(0) - WRITE(buf,'(a,a)') ' ', - & '[ 0 | block dn/dn ]' - CALL printout(0) - ENDIF - DO iss=1,nsp - IF(iss.LE.2) THEN - is=iss - is1=iss -C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block -C If iss=2 (down), is=2 and is1=2 -> Description of the down/down block - IF (is==1) THEN - IF ( ifSP.or.ifSO ) THEN - WRITE(buf,'(a)') ' # For the Up/Up block :' - ENDIF - CALL printout(0) - ELSE - WRITE(buf,'(a)') ' # For the Down/Down block :' - CALL printout(0) - ENDIF - ELSE - is=iss-2 - is1=3-is -C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/down block -C If iss=4, is=2 (down) and is1=1 (up) -> Description of the down/up block - IF (is==1) THEN - WRITE(buf,'(a)') ' # For the Up/Down block :' - CALL printout(0) - ELSE - WRITE(buf,'(a)') ' # For the Down/Up block :' - CALL printout(0) - ENDIF - ENDIF - ALLOCATE(D(1,-l:l)) - DO m=-l,l - D(1,-l:l)=crdensmat(iss,icrorb)%mat(m,-l:l) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - IF(is==is1) q=q+crdensmat(iss,icrorb)%mat(m,m) - ENDDO - DEALLOCATE(D) - ENDDO - ENDIF -C Displaying the charge q of the orbital - CALL printout(0) - WRITE(buf,'(a,f10.5)')'The charge of the orbital is : ',q - CALL printout(0) - ENDDO - ENDIF -C - ENDIF ! End of the if ncrorb=0 if-then-else -C The calculation is stopped here if the flag only_corr is .TRUE. - IF (.not.only_corr) THEN -C -C ========================================= -C Computation of the total charge density : -C ========================================= -C The charge is stored in the variable qtot given in argument. - qtot=0d0 - do is=1,ns - DO ik=1,nk - if (kp(ik,is)%included) then - DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top - IF(tetr) THEN - qtot=qtot+kp(ik,is)%tetrweight(ib) - ELSE - qtot=qtot+kp(ik,is)%weight - ENDIF - ENDDO - endif - ENDDO - if (ifSO) exit - enddo -C -C ================================================================= -C Computation of the density matrix for all the included orbitals : -C ================================================================= -C The computations are performed with the Theta projectors (pr_orb) -C -C densmat is a table of size nsp*norb. -C For each included orbital iorb, densmat(:,iorb) is the corresponding density matrix. - IF(.NOT.ALLOCATED(densmat)) THEN - ALLOCATE(densmat(nsp,norb)) - ENDIF - DO iorb=1,norb - DO is=1,nsp - IF(ALLOCATED(densmat(is,iorb)%mat)) - & DEALLOCATE(densmat(is,iorb)%mat) - ALLOCATE(densmat(is,iorb)%mat(1,1)) - densmat(is,iorb)%mat(1,1)=0.d0 - ENDDO - ENDDO -C -C Loop on the included orbitals iorb -C - DO iorb=1,norb - isrt=orb(iorb)%sort - l=orb(iorb)%l -C -C ----------------------------------------------------------------------------------- -C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : -C ----------------------------------------------------------------------------------- - IF (l==0) THEN -C The field mat of densmat has already the good size (1 scalar element). -C There's no need of a basis change since the representation of an s-orbital is Identity whatever the basis is. - DO ik=1,nk - DO iss=1,nsp -C -C Determination of the block indices : -C ------------------------------------ - IF(iss.LE.2) THEN - is=iss - is1=iss -C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block -C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block - ELSE - is=iss-2 - is1=3-is -C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block -C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block - ENDIF -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE - IF(.NOT.kp(ik,is1)%included) CYCLE - nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 - nbbot=kp(ik,is)%nb_bot - nbtop=kp(ik,is)%nb_top -C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. -C for the off-diagonal blocks (calculated only when SO is considered), -C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] -C thus nbtop and nbtop fit again for is and is1. -C -C Computation of the density matrix using the tetrahedron weights for the integration : -C ------------------------------------------------------------------------------------- - IF(tetr) THEN -C The field pr_orb%matn_rep is used to perform the computation (well defined for s-orbitals) - DO i=1,norm_radf(iorb)%n - ALLOCATE(mat(1,nbbot:nbtop)) - ALLOCATE(conj_mat(1,nbbot:nbtop)) - mat(1,nbbot:nbtop)= - & pr_orb(iorb,ik,is)%matn_rep(1,nbbot:nbtop,i)* - & SQRT(kp(ik,is)%tetrweight(nbbot:nbtop)) - conj_mat(1,nbbot:nbtop)=CONJG( - & pr_orb(iorb,ik,is1)%matn_rep(1,nbbot:nbtop,i))* - & SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) -C mat = Theta(iorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) -C conj_mat = conjugate[ Theta(iorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] - DO ib = nbbot,nbtop - densmat(iss,iorb)%mat(1,1)= - = densmat(iss,iorb)%mat(1,1) - & +mat(1,ib)*conj_mat(1,ib) - ENDDO -C densmat = mat*transpose(conj_mat) which is a matrix of size 1 - DEALLOCATE(conj_mat,mat) - ENDDO -C The summation over the k-points is done with the do loop ; -C The summation over the |phi_j> basis is done with the do loop ; -C densmat(iss,iorb) is therefore the block "iss" of the density matrix for the orbital iorb. -C -C Computation of the density matrix using a simple point integration : -C -------------------------------------------------------------------- - ELSE - DO i=1,norm_radf(iorb)%n - DO ib = nbbot,nbtop - densmat(iss,iorb)%mat(1,1)= - = densmat(iss,iorb)%mat(1,1)+ - + pr_orb(iorb,ik,is)%matn_rep(1,ib,i)* - * CONJG(pr_orb(iorb,ik,is1)%matn_rep(1,ib,i))* - * kp(ik,is)%weight - ENDDO - ENDDO -C densmat = Theta(iorb,ik,is)*transpose(conjugate(Theta(iorb,ik,is1))) which is a matrix of size 1 -C The weight used is a geometric factor associated to k and does not depend on the variable is. -C That's why we merely multiply by the "weight" each term while summing over the k-points. - ENDIF - ENDDO ! End of the iss loop - ENDDO ! End of the ik loop -C -C ----------------------------------------------------------------------------------------------------- -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : -C ----------------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) -C Moreover ifSP=.TRUE. (since ifSO => ifSP, in this version) -C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) -C -C The field mat of densmat must be resized. -C As the complete spinor rotation approach is used, only one matrix is necessary (with is=1). - DEALLOCATE(densmat(1,iorb)%mat) - ALLOCATE(densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))) - densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))=0.d0 - ALLOCATE(D(1:2*(2*l+1),1:2*(2*l+1))) -C -C Computation of the density matrix using the tetrahedron weights for the integration : -C ------------------------------------------------------------------------------------- - IF(tetr) THEN - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,1)%included) CYCLE - nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 - nbbot=kp(ik,1)%nb_bot - nbtop=kp(ik,1)%nb_top -C A distinction between up and dn states is necessary in order to use the tetrahedron weight. -C As a result, we will transform the projectors back in spherical harmonics basis -C to perform the calculation and then put the resulting density matrix in the desired basis. -C -C Loop on the |phi_j> basis - DO i=1,norm_radf(iorb)%n - ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) - ALLOCATE(conj_mat(1:2*(2*l+1),nbbot:nbtop)) -C The representation of the projectors is put back in the spherical harmonics basis - mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL( - & TRANSPOSE(CONJG(reptrans(l,isrt)% - & transmat(1:2*(2*l+1),1:2*(2*l+1)) )), - & pr_orb(iorb,ik,1)%matn_rep - & (1:2*(2*l+1),nbbot:nbtop,i) ) -C mat = inverse(reptrans)*pr_orb%mat_rep = *theta_{new_i} = theta_{lm} [temporarily] - conj_mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL( - & TRANSPOSE(CONJG(reptrans(l,isrt)% - & transmat(1:2*(2*l+1),1:2*(2*l+1)) )), - & pr_orb(iorb,ik,1)%matn_rep - & (1:2*(2*l+1),nbbot:nbtop,i) ) -C conj_mat = inverse(reptrans)*pr_orb%mat_rep = *theta_{new_i} = theta_{lm} [temporarily] - DO m=1,2*l+1 - mat(m,nbbot:nbtop)=mat(m,nbbot:nbtop)* - & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) -C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) - mat((2*l+1)+m,nbbot:nbtop)= - = mat((2*l+1)+m,nbbot:nbtop)* - & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) -C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) -C mat = Theta(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) - conj_mat(m,nbbot:nbtop)=CONJG( - & conj_mat(m,nbbot:nbtop) )* - & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) -C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) - conj_mat((2*l+1)+m,nbbot:nbtop)= - & CONJG(conj_mat((2*l+1)+m,nbbot:nbtop))* - & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) -C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) -C conj_mat = conjugate[ Theta(icrorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] - ENDDO - CALL zgemm('N','T',2*(2*l+1),2*(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),conj_mat,2*(2*l+1), - & DCMPLX(0.D0,0.D0),D,2*(2*l+1)) - DEALLOCATE(conj_mat,mat) -C D = mat*transpose(conj_mat) is a matrix of size 2*(2*l+1)* 2*(2*l+1) -C - densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - & densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) - & +D(1:2*(2*l+1),1:2*(2*l+1)) - END DO ! End of the |phi_j> basis loop - END DO ! End of the ik loop -C The summation over the k-points is done ; -C The summation over the |phi_j> basis is done ; -C crdensmat(icrorb) is therefore the complete density matrix in spherical harmonic basis. -C -C The density matrix is then put into the desired basis, using reptrans(l,isrt)%transmat - densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1)),densmat(1,iorb)%mat - & (1:2*(2*l+1),1:2*(2*l+1)) ) - densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(densmat(1,iorb)%mat - & (1:2*(2*l+1),1:2*(2*l+1)),TRANSPOSE( CONJG( - & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))))) -C densmat = (reptrans)*densmat_l*inverse(reptrans) -C or densmat = densmat_{lm} -C densmat(iorb) is now the complete density matrix in the desired basis. -C -C Computation of the density matrix using a simple point integration : -C -------------------------------------------------------------------- - ELSE -C No distinction between up and dn states is necessary because we use a -C geometric factor which depends only of the k-point. -C We can then use directly the projectors in the desired basis. - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,1)%included) CYCLE -C Loop on the |phi_j> basis - DO i=1,norm_radf(iorb)%n - nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 - nbbot=kp(ik,1)%nb_bot - nbtop=kp(ik,1)%nb_top - ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) - mat(1:2*(2*l+1),nbbot:nbtop)= - = pr_orb(iorb,ik,1)%matn_rep - & (1:2*(2*l+1),nbbot:nbtop,i) - CALL zgemm('N','C',2*(2*l+1),2*(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),mat, - & 2*(2*l+1),DCMPLX(0.D0,0.D0),D,2*(2*l+1)) - DEALLOCATE(mat) -C D = Theta(iorb,ik,is)*transpose(conjugate(Theta(iorb,ik,is))) is a matrix of size 2*(2*l+1) * 2*(2*l+1) - densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) - + +D(1:2*(2*l+1),1:2*(2*l+1))*kp(ik,1)%weight - END DO ! End of the |phi_j > basis loop - ENDDO ! End of the ik loop -C The summation over the k-points is done ; -C The summation over the |phi_j> basis is done ; -C The weight used is a geometric factor associated to k and does not depend on the variable is. -C That's why we merely multiply by the "weight" each term while summing over the k-points. - ENDIF - DEALLOCATE(D) -C -C ---------------------------------------------------------------------------------------------- -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : -C ---------------------------------------------------------------------------------------------- - ELSE -C The field mat of densmat must be resized. -C nsp matrices of size (2*l+1) are necessary to represent the whole density matrix. - DO is=1,nsp - DEALLOCATE(densmat(is,iorb)%mat) - ALLOCATE(densmat(is,iorb)%mat(-l:l,-l:l)) - densmat(is,iorb)%mat(-l:l,-l:l)=0.d0 - ENDDO - ALLOCATE(D(-l:l,-l:l)) -C All the computations can be performed in the new basis (using the field pr_orb%matn_rep) - DO ik=1,nk - DO iss=1,nsp -C -C Determination of the block indices : -C ------------------------------------ - IF(iss.LE.2) THEN - is=iss - is1=iss -C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block -C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block - ELSE - is=iss-2 - is1=3-is -C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block -C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block - ENDIF -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE - IF(.NOT.kp(ik,is1)%included) CYCLE - nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 - nbbot=kp(ik,is)%nb_bot - nbtop=kp(ik,is)%nb_top -C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. -C for the off-diagonal blocks (calculated only when SO is considered), -C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] -C thus nbtop and nbtop fit again for is and is1. -C -C Computation of the density matrix using the tetrahedron weights for the integration : -C ------------------------------------------------------------------------------------- - IF(tetr) THEN -C The representation of the projectors in the desired basis is used (field pr_orb%mat_rep) - DO i=1,norm_radf(iorb)%n - ALLOCATE(mat(-l:l,nbbot:nbtop)) - ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) - DO m=-l,l - mat(m,nbbot:nbtop)=pr_orb(iorb,ik,is)%matn_rep - & (m,nbbot:nbtop,i)*SQRT(kp(ik,is)% - & tetrweight(nbbot:nbtop)) - conj_mat(m,nbbot:nbtop)=CONJG( - = pr_orb(iorb,ik,is1)%matn_rep(m,nbbot:nbtop,i)) - & *SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) -C mat = Theta(iorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) -C conj_mat = conjugate[ Theta(iorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] - ENDDO - CALL zgemm('N','T',(2*l+1),(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), - & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) - DEALLOCATE(conj_mat,mat) -C D = mat*transpose(conj_mat) is a matrix of size (2*l+1)*(2*l+1) - densmat(iss,iorb)%mat(-l:l,-l:l)= - = densmat(iss,iorb)%mat(-l:l,-l:l)+D(-l:l,-l:l) - ENDDO -C The summation over the |phi_j > basis is done. -C The summation over the k-points is done. -C densmat(iorb) is therefore the complete density matrix of the orbital iorb. -C -C Computation of the density matrix using a simple point integration : -C -------------------------------------------------------------------- - ELSE - DO i=1,norm_radf(iorb)%n - ALLOCATE(mat(-l:l,nbbot:nbtop)) - ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) - mat(-l:l,nbbot:nbtop)= - = pr_orb(iorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,i) - conj_mat(-l:l,nbbot:nbtop)= - = pr_orb(iorb,ik,is1)%matn_rep(-l:l,nbbot:nbtop,i) - CALL zgemm('N','C',(2*l+1),(2*l+1),nbnd, - & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), - & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) - DEALLOCATE(mat,conj_mat) -C D = Theta(iorb,ik,is)*transpose(conjugate(Theta(iorb,ik,is))) is a matrix of size (2*l+1)*(2*l+1) - densmat(iss,iorb)%mat(-l:l,-l:l)= - = densmat(iss,iorb)%mat(-l:l,-l:l) - + +D(-l:l,-l:l)*kp(ik,is)%weight -C The weight used is a geometric factor asoociated to k and does not depend on the variable is. -C That's why we merely multiply by the "weight" each term while summing over the k-points and the |phi_j> basis. - ENDDO ! End of the |phi_j > basis loop - ENDIF - ENDDO ! End of the iss loop - ENDDO ! End of the ik loop - DEALLOCATE(D) -C - ENDIF ! End of the basis if-then-else -C - ENDDO ! End of the iorb loop -C -C -C =============================== -C Symmetrization to the full BZ : -C =============================== - CALL symmetrize_mat(densmat,orb,norb) -C -C -C ============================================================================ -C Application of the Rloc transformation to go back to the local coordinates : -C ============================================================================ - CALL rotdens_mat(densmat,orb,norb) -C -C -C ================================================================= -C Printing the density matrices and the charge in the output file : -C ================================================================= - IF(ifprnt) THEN - CALL printout(0) - WRITE(buf,'(a)') '-------------------------------------' - CALL printout(0) - WRITE(buf,'(a)') - & 'Density Matrices for all the States of the System : ' - CALL printout(0) -C The density matrices and charge are printed for all the included orbitals - DO iorb=1,norb - CALL printout(0) - isrt=orb(iorb)%sort - l= orb(iorb)%l -C Description of the correlated orbital - WRITE(buf,'(3(a,i3))') - & ' Sort = ',isrt,' Atom = ',orb(iorb)%atom, - & ' and Orbital l = ',l - CALL printout(0) - q=0d0 -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For a calculation spin-polarized with SO : - IF (nsp==4) THEN - WRITE(buf,'(2(2F12.6,2x))') - & densmat(1,iorb)%mat(1,1), - & densmat(3,iorb)%mat(1,1) - CALL printout(0) - WRITE(buf,'(2(2F12.6,2x))') - & densmat(4,iorb)%mat(1,1), - & densmat(2,iorb)%mat(1,1) - CALL printout(0) - q=q+densmat(1,iorb)%mat(1,1)+ - + densmat(2,iorb)%mat(1,1) -C For a calculation spin-polarized without SO : - ELSE IF (nsp==2) THEN - WRITE(buf,'(2(2F12.6,2x))') - & densmat(1,iorb)%mat(1,1),DCMPLX(0.D0,0.D0) - CALL printout(0) - WRITE(buf,'(2(2F12.6,2x))') - & DCMPLX(0.D0,0.D0),densmat(2,iorb)%mat(1,1) - CALL printout(0) - q=q+densmat(1,iorb)%mat(1,1)+ - + densmat(2,iorb)%mat(1,1) -C For a paramagnetic calculation without SO : - ELSE - WRITE(buf,'(2F12.6,2x)') densmat(1,iorb)%mat(1,1) - q=q+densmat(1,iorb)%mat(1,1) - CALL printout(0) - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO : - WRITE(buf,'(a,a)') 'Writing the matrix as : ', - & '[ block 1 | block 2 ] with' - CALL printout(0) - WRITE(buf,'(a,a)') ' ', - & '[ block 3 | block 4 ]' - CALL printout(0) -C Printing the different blocks - ALLOCATE(D(1,1:2*l+1)) - WRITE(buf,'(a,i2,a)') ' # For the block 1 :' - CALL printout(0) - DO m=1,2*l+1 - D(1,1:2*l+1)=densmat(1,iorb)%mat(m,1:(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') ' # For the block 2 :' - CALL printout(0) - DO m=1,2*l+1 - D(1,1:2*l+1)= - & densmat(1,iorb)%mat(m,2*l+2:2*(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') ' # For the block 3 :' - CALL printout(0) - DO m=2*l+2,2*(2*l+1) - D(1,1:2*l+1)= - & densmat(1,iorb)%mat(m,1:(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') ' # For the block 4 :' - CALL printout(0) - DO m=2*l+2,2*(2*l+1) - D(1,1:2*l+1)= - & densmat(1,iorb)%mat(m,2*l+2:2*(2*l+1)) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - ENDDO - DEALLOCATE(D) - DO m1=1,2*(2*l+1) - q=q+densmat(1,iorb)%mat(m1,m1) - ENDDO -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF(nsp==4) THEN - WRITE(buf,'(a,a)') 'Writing the matrix as : ', - & '[ block up/up | block up/dn ] with' - CALL printout(0) - WRITE(buf,'(a,a)') ' ', - & '[ block dn/up | block dn/dn ]' - CALL printout(0) - ELSEIF(nsp==2) THEN - WRITE(buf,'(a,a)') 'Writing the matrix as : ', - & '[ block up/up | 0 ] with' - CALL printout(0) - WRITE(buf,'(a,a)') ' ', - & '[ 0 | block dn/dn ]' - CALL printout(0) - ENDIF - DO iss=1,nsp - IF(iss.LE.2) THEN - is=iss - is1=iss -C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block -C If iss=2 (down), is=2 and is1=2 -> Description of the down/down block - IF (is==1) THEN - IF ( ifSP.or.ifSO ) THEN - WRITE(buf,'(a)') ' # For the Up/Up block :' - ENDIF - CALL printout(0) - ELSE - WRITE(buf,'(a)') ' # For the Down/Down block :' - CALL printout(0) - ENDIF - ELSE - is=iss-2 - is1=3-is -C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/down block -C If iss=4, is=2 (down) and is1=1 (up) -> Description of the down/up block - IF (is==1) THEN - WRITE(buf,'(a)') ' # For the Up/Down block :' - CALL printout(0) - ELSE - WRITE(buf,'(a)') ' # For the Down/Up block :' - CALL printout(0) - ENDIF - ENDIF - ALLOCATE(D(1,-l:l)) - DO m=-l,l - D(1,-l:l)=densmat(iss,iorb)%mat(m,-l:l) - WRITE(buf,'(7(2F12.6),x)') D(:,:) - CALL printout(0) - IF(is==is1) q=q+densmat(iss,iorb)%mat(m,m) - ENDDO - DEALLOCATE(D) - ENDDO - ENDIF -C Displaying the charge q of the orbital - CALL printout(0) - WRITE(buf,'(a,f10.5)')'The charge of the orbital is : ',q - CALL printout(0) - ENDDO - ENDIF -C -C ========================================================================== -C Printing the total charge in the output file (only if only_corr =.FALSE.): -C ========================================================================== - WRITE(buf,'(a,f11.5)')'TOTAL CHARGE = ',qtot - CALL printout(1) -C - ENDIF ! End of the .not.only_corr if-then-else - RETURN - END - - - - - - diff --git a/fortran/dmftproj/dmftproj.f b/fortran/dmftproj/dmftproj.f deleted file mode 100644 index 7106526..0000000 --- a/fortran/dmftproj/dmftproj.f +++ /dev/null @@ -1,884 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - PROGRAM dmftproj -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This prgm computes projections to a local (correlated) set of %% -C %% orbitals from the set of eigenfunctions obtained with Wien2k. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE almblm_data - USE common_data - USE file_names - USE prnt - USE symm - USE reps - IMPLICIT NONE -C - REAL(KIND=8) :: e_win, e_sum, elecn, qtot, qdum - REAL(KIND=8), DIMENSION(:,:), ALLOCATABLE :: Alm_sum, Qlm_sum - COMPLEX(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: occ_mat - COMPLEX(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: occ_mat_sym -C - COMPLEX(KIND=8) :: coff - COMPLEX(KIND=8),DIMENSION(-3:3,-3:3) :: tmpmat - INTEGER, DIMENSION(:,:), ALLOCATABLE :: lnreps - INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: correps - INTEGER :: isrt, ie, l, m, isym, jatom - INTEGER :: lm, ik, ilo, ib, iatom, imu, io - INTEGER :: idum, i1, i2 - INTEGER :: m1, m2, lm1, lm2 - INTEGER :: is, irep, nbrep - INTEGER :: iorb, icrorb, nmaxrep - INTEGER :: paramflag, lcorr - LOGICAL :: ifcorr - REAL(KIND=8) :: fdum, rtetr - REAL(KIND=8),PARAMETER :: Elarge=1d6 - character(len=120) line -C ================================ -C Processing of the command line : -C ================================ - CALL readcomline -C ==================================================== -C Initialization of the variable ns (number of spin) : -C ==================================================== -C If the computation uses spin-polarized input files, ns=2 - ns=1 - IF(ifSP) ns=2 -C =================================== -C Opening of the input/output files : -C =================================== - CALL openfiles -C ========================================= -C Reading of the input file case.indmftpr : -C ========================================= - READ(iuinp,*)nsort -C nsort = number of sorts of atom - ALLOCATE(nmult(0:nsort)) - nmult(0)=0 - READ(iuinp,*)nmult(1:nsort) -C nmult = multiplicity for each sort of atom, table from 1 to nsort - natom=SUM(nmult(1:nsort)) -C natom = total number of atoms in the unit cell - ALLOCATE(isort(natom)) - iatom=0 - DO isrt=1,nsort - DO imu=1,nmult(isrt) - iatom=iatom+1 - isort(iatom)=isrt - ENDDO - ENDDO -C isort = table of correspondance iatom -> isort (from 1 to natom) - READ(iuinp,*)lmax -C lmax = maximal orbital number l for all the atoms - IF(ifSO) THEN - nlm=(lmax+1)*(lmax+1)*2 - ELSE - nlm=(lmax+1)*(lmax+1) - ENDIF -C nlm = maximal number of matrix elements for an l-orbital -C only doubled when SO because of the up and down independent parts... - ALLOCATE(lsort(0:lmax,nsort)) - ALLOCATE(defbasis(nsort)) - ALLOCATE(lnreps(0:lmax,nsort)) - IF(.not.ifSO) THEN -C Spin is a good quantum number and ireps are considered in orbital space only. - ALLOCATE(correps(2*lmax+1,0:lmax,nsort)) - ELSE -C Spin is not a good quantum number anymore (possibility of basis which mixes up and dn states) -C the ireps are considered in spin+orbital space. - ALLOCATE(correps(2*(2*lmax+1),0:lmax,nsort)) - ENDIF - ALLOCATE(ifSOflag(nsort)) - DO isrt=1,nsort - READ(iuinp,*) defbasis(isrt)%typebasis - IF (defbasis(isrt)%typebasis(1:8)=='fromfile') THEN - READ(iuinp,*) defbasis(isrt)%sourcefile - ELSE - defbasis(isrt)%sourcefile = 'null' - ENDIF -C defbasis = table of correspondance isort -> "basistrans" element, table from 1 to nsort -C defbasis(isrt)%typebasis = "cubic", "complex" or "fromfile" -C defbasis(isrt)%sourcefile = the name of the file to read if typebasis="fromfile" - READ(iuinp,*)lsort(0:lmax,isrt) - READ(iuinp,*)lnreps(0:lmax,isrt) -C ifcorr is a flag who states if the atomic sort isrt has correlated orbitals. - ifcorr=.FALSE. - DO l=0,lmax - IF (lsort(l,isrt)==2) THEN - ifcorr=.TRUE. -C If lnreps(l,isrt)=1, the treatment is the same as a 0 value. -C because if the number of irep is 1, this irep will be the correlated one. -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if the number of irep is not correct. -C ------------------------- -C - IF (ifSO) THEN -C With SO, the number of ireps must not exceed 2*(2*l+1). - IF(lnreps(l,isrt).gt.(2*(2*l+1))) THEN - WRITE(buf,'(a,a,i2,a,i2,a)')' The number of ireps ', - & 'considered for l=',l,' and isrt=',isrt, - & ' is not possible.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF - ELSE -C Without SO, the number of ireps must not exceed (2*l+1). - IF(lnreps(l,isrt).gt.(2*l+1)) THEN - WRITE(buf,'(a,a,i2,a,i2,a)')' The number of ireps ', - & 'considered for l=',l,' and isrt=',isrt, - & ' is not possible.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF - ENDIF -C --------------------------------------------------------------------------------------- -C -C The description of the different ireps is considered only if there are more than 1 irep. -C that is to say if lnreps(l,isrt)=2, 3,... - IF(lnreps(l,isrt)>0) THEN - READ(iuinp,'(14i1)') correps(1:lnreps(l,isrt),l,isrt) - ENDIF - ENDIF - ENDDO -C The ifSO_flag is read only if there is a correlated orbital for the sort isrt. - IF (ifcorr) THEN - READ(iuinp,'(i1)') ifSOflag(isrt) - ENDIF - ENDDO -C lsort = index for each orbital (0 : not include / 1 : include / 2 : correlated), table from 0 to lmax, from 1 to nsort -C lnreps = number of irreducible representations for each orbital, table from 0 to lmax, from 1 to nsort (temporary variables) -C correps = index for each irreducible representations of the correlated orbital, table from 1 to lnreps(l,isrt), from 0 to lmax, from 1 to nsort (temporary variable) -C ifSOflag = table of correspondance isort -> optionSO (1 or 0). Only used for isort with correlated orbitals - - READ(iuinp,'(A)',iostat=io) line -C Try reading the energies/bandindices and the proj_mode - READ(line,*,iostat=io) e_bot, e_top, proj_mode -C If it fails we know that we are dealing with an older version of the indmftpr file -C with only 2 values on the window line. proj_mode = 0. - IF(io.ne.0) THEN - proj_mode = 0 - READ(line,*,iostat=io) e_bot, e_top - IF(io.ne.0) THEN - WRITE(buf,'(a,a)')' The energy window line', - & ' is ill-defined.' - CALL printout(0) - STOP - WRITE(buf,'(a)')'END OF THE PRGM' - ENDIF - ENDIF - -C --------------------------------------------------------------------------------------- -C proj_mode: -C 0: use energy window for projection -C 1: use all band indices present in the given energy window -C (same number of bands at all kpoints) -C 2: use given band indices (same number of bands at all kpoints) -C --------------------------------------------------------------------------------------- - -C --------------------------------------------------------------------------------------- -C e_bot, e_top : lower/upper energy limits of window (used in mode 0) -C b_bot, b_top : lower/upper band index of window (used in mode 2) -C In mode 1 e_bot/e_top are provided in the input file and then -C translated into b_bot/b_top -C --------------------------------------------------------------------------------------- -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if the energy/band window or proj_mode is not well-defined. -C --------------------------------------------------------------------------------------- -C - IF((proj_mode.lt.0) .or. (proj_mode.gt.2)) THEN - WRITE(buf,'(a,a)')' The energy window mode (3rd value)', - & ' must be 0,1 or 2.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF - - IF(proj_mode==0) THEN - b_bot = 0 - b_top = 0 - ELSEIF(proj_mode==1) THEN - b_bot = 1e3 - b_top = 1 - ELSEIF(proj_mode==2) THEN - b_bot = INT(e_bot) - b_top = INT(e_top) - e_bot = 0.0 - e_top = 0.0 - ENDIF - - IF((proj_mode.lt.2) .and. (e_bot.gt.e_top)) THEN - WRITE(buf,'(a,a)')' The energy window ', - & ' is ill-defined.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF - - IF((proj_mode==2) .and. (b_bot.gt.b_top)) THEN - WRITE(buf,'(a,a)')' The k-point index window ', - & ' is ill-defined.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF - -C Writing in the output file case.outdmftpr the previous informations : -C ===================================================================== - WRITE(buf,'(a,a)')'Welcome in DMFTPROJ: ', - & 'PROJECTION TO LOCALIZED BASIS' - CALL printout(1) - WRITE(buf,'(a,a)')'This prgm will build', - & ' the Wannier projectors to the' - CALL printout(0) - WRITE(buf,'(a,a)')'localized orbitals of an atom', - & ' onto which DMFT will be applied.' - CALL printout(1) - WRITE(buf,'(a)')'You are performing a computation' - CALL printout(0) -C Spin orbit option - IF(ifSO) THEN - WRITE(buf,'(a)')'in which Spin-Orbit is included.' - ELSE - WRITE(buf,'(a)')'without Spin-Orbit.' - ENDIF - CALL printout(0) -C Spin polarized option - IF(ifSP) THEN - WRITE(buf,'(a)')'using Spin-Polarized Wien2k input files.' - ELSE - WRITE(buf,'(a)')'using Paramagnetic Wien2k input files.' - ENDIF - CALL printout(0) - IF (ifSO.AND.(.not.ifSP)) THEN - WRITE(buf,'(a,a)')'You must use Spin-Polarized input files', - & ' to perform Spin-Orbit computation, with this version.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C Printing nsort, nmult - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - WRITE(buf,'(a,i3)')'Sorts of atoms = ',nsort - CALL printout(0) - WRITE(buf,'(a,50i2)')'Equivalent sites per each sort:', - & nmult(1:nsort) - CALL printout(1) -C - norb=0 - ncrorb=0 - ALLOCATE(notinclude(1:nsort)) - DO isrt=1,nsort - WRITE(buf,'(a)')'-------------------------------------' - CALL printout(0) - WRITE(buf,'(a,i2,a)')'For the sort ',isrt,' :' - CALL printout(0) - notinclude(isrt)=.TRUE. -C Printing the name of the included orbitals for each sort - DO l=0,lmax - IF(lsort(l,isrt).NE.0) THEN - WRITE(buf,'(a,i2,a)')'The orbital l=',l,' is included.' - CALL printout(0) - norb=norb+nmult(isrt) - notinclude(isrt)=.FALSE. - ENDIF - ENDDO -C The variable notinclude(isrt) is a boolean which precises whether the sort isrt -C is considered in the pbm. (whether there is at least one lsort(l,isrt) not 0.) - IF (notinclude(isrt)) THEN - WRITE(buf,'(a)')'No orbital is included.' - CALL printout(0) - CALL printout(0) - cycle -C If no orbital of isrt is included, they can't be correlated orbitals. - END IF - CALL printout(0) -C Determination of the total number of correlated orbitals for each sort - DO l=0,lmax - IF(lsort(l,isrt)==2) THEN - ncrorb=ncrorb+nmult(isrt) - ENDIF ! End of the lsort=2 if-then-else - ENDDO ! End of the l loop - ENDDO ! End of the isrt loop -C norb = total number of included orbitals in the system -C ncrorb = total number of correlated orbitals in the system -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if no orbital is included. -C ------------------------- -C - IF (norb==0) THEN - WRITE(buf,'(a,a)')'You must include at least one orbital.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C --------------------------------------------------------------------------------------- -C -C =========================================================================================== -C Initialization of the "orbital-type" tables orb and crorb, tables of size norb and ncrorb : -C =========================================================================================== - ALLOCATE(orb(norb),crorb(ncrorb)) - iorb=0 - icrorb=0 - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - DO l=0,lmax - IF(lsort(l,isrt).NE.0) THEN -C ------------------------------- -C For all the included orbitals : -C ------------------------------- - DO imu=1,nmult(isrt) - iatom=SUM(nmult(0:isrt-1))+imu - iorb=iorb+1 - orb(iorb)%atom=iatom -C the field orb%atom = number of the atom when classified in the order (isort,imult) - orb(iorb)%sort=isrt -C the field orb%sort = sort of the associated atom - orb(iorb)%l=l -C the field orb%l = the orbital number l - IF(imu==1) THEN - orb(iorb)%first=.TRUE. - ELSE - orb(iorb)%first=.FALSE. - ENDIF -C the field orb%first = boolean (if first_atom of the sort isort or not) - IF(lnreps(l,isrt).NE.0) THEN - orb(iorb)%ifsplit=.TRUE. - ELSE - orb(iorb)%ifsplit=.FALSE. - ENDIF -C the field orb%ifsplit = boolean (if ireps are used or not) - ENDDO -C - IF(lsort(l,isrt)==2) THEN -C --------------------------------- -C For all the correlated orbitals : -C --------------------------------- - DO imu=1,nmult(isrt) - iatom=SUM(nmult(0:isrt-1))+imu - icrorb=icrorb+1 - crorb(icrorb)%atom=iatom -C the field crorb%atom = number of the atom when classified in the order (isort,imult) - crorb(icrorb)%sort=isrt -C the field crorb%sort = sort of the associated atom - crorb(icrorb)%l=l -C the field crorb%l = the orbital number l - IF(imu==1) THEN - crorb(icrorb)%first=.TRUE. - ELSE - crorb(icrorb)%first=.FALSE. - ENDIF -C the field orb%first = boolean (if first_atom of the sort isort or not) - IF(lnreps(l,isrt).NE.0) THEN - crorb(icrorb)%ifsplit=.TRUE. - ALLOCATE(crorb(icrorb)%correp(lnreps(l,isrt))) - crorb(icrorb)%correp=.FALSE. - DO irep=1,lnreps(l,isrt) - IF(correps(irep,l,isrt)==1) - & crorb(icrorb)%correp(irep)=.TRUE. - ENDDO -C the field crorb%correp is defined only when crorb%ifsplit= true -C the field orb%correp = boolean table of size lnreps(l,isrt) : True if the ireps is correlated, False otherwise - ELSE - crorb(icrorb)%ifsplit=.FALSE. - ENDIF -C the field orb%ifsplit = boolean (if ireps are used or not) - IF (ifSOflag(isrt)==1) THEN - crorb(icrorb)%ifSOat=1 - ELSE - crorb(icrorb)%ifSOat=0 - ENDIF -C the field crorb%ifSOflag = boolean (if SO are used or not) - ENDDO - ENDIF ! End of the lsort=2 if-then-else - ENDIF ! End of the lsort>0 if-then-else - ENDDO ! End of the l loop - ENDDO ! End of the isrt loop -C -C ======================================================================================= -C Reading of the transformation matrices from the complex to the required angular basis : -C ======================================================================================= - CALL set_ang_trans -C -C ====================================================================================== -C Comparing data about correlated ireps and the description of transformation matrices : -C ====================================================================================== -C - CALL printout(0) - CALL printout(0) - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - WRITE(buf,'(a)')'Precisions about correlated orbitals.' - CALL printout(0) - CALL printout(0) - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - WRITE(buf,'(a)')'-------------------------------------' - CALL printout(0) - WRITE(buf,'(a,i2,a)')'For the sort ',isrt,' :' - CALL printout(0) - lcorr=0 - DO l=0,lmax -C Only correlated orbital l of isrt are considered here. - IF (lsort(l,isrt)==2) THEN - lcorr=lcorr+1 -C If the whole orbital is correlated (lnreps=0 in this case) - IF (lnreps(l,isrt)==0) THEN - WRITE(buf,'(a,i2,a)')'The whole orbital l=',l, - & ' is included as correlated.' - CALL printout(0) -C If only one particular irep of the orbital is correlated - ELSE -C -C For a computation without spin-orbit or a computation with SO and with a basis which mixes up and dn states. -C ------------------------------------------------------------------------------------------------------------ - IF ((.not.ifSO).OR. - & (ifSO.AND.(l.NE.0).AND.reptrans(l,isrt)%ifmixing)) - & THEN -C without SO, the case l=0 can not occur since lnreps(0,isrt)=0. -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if the data about ireps are conflicting. -C ------------------------- -C - IF (lnreps(l,isrt).NE.reptrans(l,isrt)%nreps) THEN - WRITE(buf,'(a,a,i2,a)') - & 'The number of ireps considered ', - & 'for the orbital l= ', l ,' is wrong.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP -C --------------------------------------------------------------------------------------- -C -C Writing in the output file case.outdmftpr the irep considered as correlated. - ELSE - nbrep=0 - DO irep=1,lnreps(l,isrt) - IF (correps(irep,l,isrt)==1) THEN - WRITE(buf,'(a,i2,a,i2,a)') - & 'The irep ',irep,' of orbital l= ', l, - & ' is considered as correlated.' - CALL printout(0) - nbrep=nbrep+1 - ENDIF - ENDDO -C --------------------------------------------------------------------------------------- -C Printing a Warning if more than one irep for one value of l is considered. -C ------------------- -C - IF (nbrep.gt.1) THEN - CALL printout(0) - WRITE(buf,'(a,a)') 'WARNING : ', - & 'more than 1 irep is included as correlated.' - CALL printout(0) - WRITE(buf,'(a,a,a)') ' ', - & 'The calculation may not be correct ', - & 'in this case.' - CALL printout(1) - ENDIF - ENDIF ! End of the data-conflict if-then-else -C -C For a computation with spin-orbit with basis which doesn't mix up and dn states. -C -------------------------------------------------------------------------------- - ELSE - WRITE(buf,'(a,i2,a)')'The whole orbital l=',l, - & ' is included as correlated.' - CALL printout(0) - WRITE(buf,'(a,a)')'because this computation ', - & 'includes Spin-Orbit coupling.' - CALL printout(0) - ENDIF ! End of the ifSo if-then-else - ENDIF ! End of the lnreps=0 if-then-else - ENDIF ! End of the lsort=2 if-then-else -C In the case of no correlated orbitals are considered for the atomic sort isrt : - ENDDO ! End of the l loop - IF (lcorr==0) THEN - WRITE(buf,'(a,a)')'No orbital is included as correlated.' - CALL printout(0) - ENDIF ! End of the lcorr=0 if-then-else - ENDDO ! End of the isrt loop - CALL printout(0) - DEALLOCATE(lnreps,correps) -C lnreps and correps can not be used anymore... -C -C ================================== -C Setting of the symmetry matrices : -C ================================== - CALL setsym -C -C ========================================================================================= -C Reading of the Wien2k informations in the case.almblm file (generated by x lapw2 -almd) : -C ========================================================================================= -C - CALL printout(0) - CALL printout(0) - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - CALL printout(0) - WRITE(buf,'(a,a)')'Reading of the file ',almblm_file - CALL printout(0) -C Reading of the klist_band file if the computation if band oriented (option -band) - IF(ifBAND) CALL read_k_list - DO is=1,ns -C If the computation is spin-polarized, there are two differents file (up and down) - IF(is==2) THEN - CLOSE(iualmblm) - OPEN(iualmblm,file=almblm_file_sp2,status='old') - WRITE(buf,'(a,a)')'Reading of the file ',almblm_file_sp2 - CALL printout(0) - ENDIF -C ------------------------------------------------------------- -C Reading of the general informations in the case.almblm file : -C ------------------------------------------------------------- - READ(iualmblm,*)elecn - READ(iualmblm,*)nk - READ(iualmblm,*)nloat -C elecn = total number of semicore+valence electrons in the system -C nk = total number of k_points -C nloat = maximal number of LO (local orbitals in LAPW expansion) - IF(ifBAND) THEN - IF (is==1) READ(iuinp,*)eferm - READ(iualmblm,*) - ELSE - READ(iualmblm,*)eferm - ENDIF -C eferm = fermi level (if the computation is band-oriented, it is read in case.indmftpr) - IF(is==1) THEN - ALLOCATE(kp(nk,ns),u_dot_norm(0:lmax,nsort,ns)) - ALLOCATE(ovl_LO_u(nloat,0:lmax,nsort,ns)) - ALLOCATE(ovl_LO_udot(nloat,0:lmax,nsort,ns)) - ALLOCATE(nLO(0:lmax,nsort)) - ENDIF - nLO=0 - DO isrt=1,nsort -C Beginning of the loop on the sort of atoms (isort) - - DO l=0,lmax - READ(iualmblm,*)u_dot_norm(l,isrt,is) - READ(iualmblm,*)nLO(l,isrt) -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if nLO is more than 1. -C ------------------------- -C - IF (nLO(l,isrt) > 1) THEN - WRITE(buf,'(a,a)')'The current version of DMFTproj ', - & ' cannot be used with more than 1 LO orbital by atom. ' - CALL printout(0) - WRITE(buf,'(a,i2,a,i2)') - & ' This is not the case for the orbital l= ',l, - & ' of the atomic sort ',isrt - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C --------------------------------------------------------------------------------------- -C -C It is assumed in the following that nLO is 0 or 1. - DO ilo=1,nLO(l,isrt) - READ(iualmblm,*)ovl_LO_u(ilo,l,isrt,is), - & ovl_LO_udot(ilo,l,isrt,is) - ENDDO - ENDDO -C kp = table of "kp_data" elements. It ranges from 1 to nk and from 1 to ns. -C u_dot_norm(isort,l) = norm for the orbital -C nLO(isort,l) = number of LO (local orbitals) for each orbital of each sort (its value is assumed to be 0 or 1) -C ovl_LO_u(isort, l) = overlap element for the LO orbitals -C ovl_LO_udot(isort, l) = overlap element for the LO orbitals -C These informations are relative to the basis set for the atomic eigenstates (LAPW-APW expansion) -C -C -------------------------------------------------------------- -C For each kpoints and isrt, the "kp_data" elements are filled : -C -------------------------------------------------------------- - DO ik=1,nk - READ(iualmblm,'()') - READ(iualmblm,'()') - READ(iualmblm,*)idum,kp(ik,is)%nbmin,kp(ik,is)%nbmax -C idum = useless variable in case.almblm -C kp(ik,is)%nbmin = index of the lowest band -C kp(ik,is)%nbmzx = index of the uppest band - IF(.NOT.ALLOCATED(kp(ik,is)%Alm)) THEN - ALLOCATE(kp(ik,is)%eband(kp(ik,is) - & %nbmin:kp(ik,is)%nbmax)) - ALLOCATE(kp(ik,is)%Alm(nlm,natom, - & kp(ik,is)%nbmin:kp(ik,is)%nbmax)) - ALLOCATE(kp(ik,is)%Blm(nlm,natom, - & kp(ik,is)%nbmin:kp(ik,is)%nbmax)) - ALLOCATE(kp(ik,is)%Clm(nloat,nlm,natom, - & kp(ik,is)%nbmin:kp(ik,is)%nbmax)) - ALLOCATE(kp(ik,is)%tetrweight(kp(ik,is)%nbmin: - & kp(ik,is)%nbmax)) - ENDIF - DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax - READ(iualmblm,*)rtetr,kp(ik,is)%eband(ib) - kp(ik,is)%tetrweight(ib)=CMPLX(rtetr,0d0) - ENDDO -C rtetr = tetrahedron weights of the band ib at this kpoint -C the field kp(ik,is)%eband(ib) = eigenvalues of the ib band at this kpoint -C the field kp(ik,is)%tetrweight(ib) = the tetrahedron weights are set as complex number to avoid problems with SQRT(tetrweight) - kp(ik,is)%weight=REAL(kp(ik,is)%tetrweight - & (kp(ik,is)%nbmin)) -C the field kp(ik,is)%weight = value of the tetrahedron weight of the lowest band (fully occupied) at this kpoint -> "a geometric factor" - kp(ik,is)%eband=kp(ik,is)%eband-eferm -C the eigenvalues kp(ik,is)%eband are shifted with respect to the fermi level. -C -C Reading of the Alm, Blm and Clm coefficient - DO imu=1,nmult(isrt) - iatom=SUM(nmult(0:isrt-1))+imu - READ(iualmblm,'()') - READ(iualmblm,*)idum - DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax - lm=0 - DO l=0,lmax - DO m=-l,l - lm=lm+1 - READ(iualmblm,*)kp(ik,is)%Alm(lm,iatom,ib), - & kp(ik,is)%Blm(lm,iatom,ib) - DO ilo=1,nLO(l,isrt) - READ(iualmblm,*)kp(ik,is)%Clm(ilo,lm,iatom,ib) - ENDDO - ENDDO ! End of the m loop - ENDDO ! End of the l loop - ENDDO ! End of the ib loop - ENDDO ! End of the imu loop -C the field kp(ik,is)%Alm = coefficient A_(lm,ib,iatom)(ik,is) as defined in equation (2.34) of my thesis (equation (??) of the tutorial) -C the field kp(ik,is)%Blm = coefficient B_(lm,ib,iatom)(ik,is) as defined in equation (2.34) of my thesis (equation (??) of the tutorial) -C the field kp(ik,is)%Clm = coefficient C_(ilo,lm,ib,iatom)(ik,is) as defined in equation (2.34) of my thesis (equation (??) of the tutorial) -C Their explicit expression depends of the representation (LAPW or APW). They enable to compute the projectors. -C These values are given for all the orbitals (even those which are not included in the study) - ENDDO ! End of the loop on kp - ENDDO ! End of the loop on isort - ENDDO ! End of the loop on ns (spin) -C End of reading the case.almblm.file -C Printing in the file case.outdmftpr the fermi level (in Rydberg) - CALL printout(0) - WRITE(buf,'(a,f10.5,a)')'The value of the Fermi Energy is ', - & eferm,' Ry.' - CALL printout(0) - WRITE(buf,'(a,a)')'All the considered energies are now given ', - & 'with respect to this value. (E_Fermi is now 0 Ry)' - CALL printout(1) -C -C --------------------------------------------------------------------------------------- -C If proj_mode=1 find now the lowest and highes band index -C --------------------------------------------------------------------------------------- -C - IF(proj_mode==1) THEN - DO is=1,ns - DO ik=1,nk - DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax - IF(kp(ik,is)%eband(ib) > e_bot.AND. - & kp(ik,is)%eband(ib).LE.e_top) THEN - IF(ib.gt.b_top) THEN - b_top = ib - ENDIF - IF(ib.lt.b_bot) THEN - b_bot = ib - ENDIF - ENDIF - ENDDO ! End of the ib loop - ENDDO ! End of the ik loop - ENDDO ! End of the is loop - e_top = 0.0 - e_bot = 0.0 - ENDIF - -C --------------------------------------------------------------------------------------- -C Printing the size of the Energy window -C --------------------------------------------------------------------------------------- - - CALL printout(0) - IF(proj_mode==0) THEN - WRITE(buf,'(2(a,f10.5),a)') - & 'The Eigenstates are projected in an energy window from ', - & e_bot,' Ry to ',e_top,' Ry around the Fermi level.' - ELSEIF(proj_mode==1) THEN - WRITE(buf,'(a,2(a,i3),a)') - & 'The Eigenstates are projected for the band indices from ', - & 'band Nr. ', b_bot,' to ',b_top,'.' - ELSEIF(proj_mode==2) THEN - WRITE(buf,'(a,2(a,i3),a)') - & 'The Eigenstates are projected for the band indices from ', - & 'band Nr. ',b_bot,' to ',b_top,'.' - ENDIF - CALL printout(1) -C -C ============================================================== -C Computation of the density matrices up to the Fermi level Ef : -C ============================================================== -C - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - WRITE(buf,'(a,a)')'Computation of the Occupancies ', - & 'and Density Matrices up to E_Fermi' - CALL printout(1) -C ---------------------------------------- -C Setting up the projections for all bands -C ---------------------------------------- - IF(proj_mode==0) THEN - CALL set_projections(-Elarge,Elarge) - ELSE - CALL set_projections(1d0,1d6) - ENDIF - - -C Elarge is an energy variable equal to 1.d6 Rydberg (very large !!!) -C -C --------------------------------------------------------- -C Computation of the density matrices and the total charges -C --------------------------------------------------------- -C - IF(.NOT.ifBAND) CALL density(.TRUE.,.FALSE.,qdum,.TRUE.) -C For the integration, tetrahedron weights are used. -C The computation is performed for all the included orbitals -C and the density matrices are printed in the file case.outdmftpr -C qdum is the total charge density. (unused variable) -C -C The calculation of Wannier projectors is performed only if correlated orbitals are included. - IF(ncrorb.NE.0) THEN -C -C ========================================================================== -C Computation of the charge below the lower limit e_bot/b_bot of the window : -C ========================================================================== -C - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - IF(proj_mode==0) THEN - WRITE(buf,'(a,a,f10.5,a)')'Computation of the total ', - & 'Charge below the lower limit of the energy window :', - & e_bot,' Ry' - ELSE - WRITE(buf,'(a,a,i3)')'Computation of the total ', - & 'Charge below the lower band index Nr. ', b_bot - ENDIF - CALL printout(1) -C -C ---------------------------------------- -C Setting up the projections for all bands -C ---------------------------------------- - IF(proj_mode==0) THEN - CALL set_projections(-Elarge,e_bot) - ELSE -C set_projections expects REAL(8) - CALL set_projections(1d0,REAL(b_bot-1,8)) - ENDIF -C -C --------------------------------------------------------- -C Computation of the density matrices and the total charges -C --------------------------------------------------------- -C - IF(.NOT.ifBAND) CALL density(.FAlSE.,.FALSE.,qtot,.FALSE.) -C A simple point integration is used. -C The computation is performed for all the included orbitals. -C qtot is the total charge density below e_bot/b_bot. -C Nothing will be printed in the file case.outdmftpr apart from the total charge qtot. -C -C -C ============================================================ -C Computation of the Wannier projectors in the energy window : -C ============================================================ -C - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - IF(proj_mode==0) THEN - WRITE(buf,'(a,a,a,f10.5,a,f10.5,a)')'Computation of the ', - & 'Occupancies and Density Matrices in the desired ', - & 'energy window [ ',e_bot,'; ',e_top,']' - ELSE - WRITE(buf,'(a,a,a,i3,a,i3,a)')'Computation of the ', - & 'Occupancies and Density Matrices in the desired ', - & 'band range [ ',b_bot,'; ',b_top,']' - ENDIF - CALL printout(1) -C -C ---------------------------------------- -C Setting up the projections for all bands -C ---------------------------------------- - IF(proj_mode==0) THEN - CALL set_projections(e_bot,e_top) - ELSE - CALL set_projections(REAL(b_bot,8),REAL(b_top,8)) - ENDIF -C -C ------------------------------------------------------------------------------ -C Orthonormalization of the projectors for correlated orbitals P(icrorb,ik,is) : -C ------------------------------------------------------------------------------ - IF(ifSO) THEN -C In this case, up and dn states must be orthogonalized together -C because the spin is not a good quantum number anymore. - CALL orthogonal_wannier_SO - ELSE -C In this case, up and dn states can be orthogonalized separately - CALL orthogonal_wannier - ENDIF -C -C --------------------------------------------------------- -C Computation of the density matrices and the total charges -C --------------------------------------------------------- -C Tetrahedron weights are used, the computation are done for correlated orbitals only and are printed in the outputfile. - IF(.NOT.ifBAND) CALL density(.TRUE.,.TRUE.,qdum,.TRUE.) -C For the integration, tetrahedron weights are used. -C The computation is performed for the correlated orbitals only -C and the density matrices are printed in the file case.outdmftpr -C qdum is the total charge density in the energy window. (unused variable) -C -C -C Writing the output files for DMFT computations : -C ------------------------------------------------ - IF(.NOT.ifBAND) THEN - CALL outqmc(elecn,qtot) - CALL outbwin - ELSE - CALL outband - ENDIF - ENDIF -C End of the prgm - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) -C - END - - - - - - diff --git a/fortran/dmftproj/modules.f b/fortran/dmftproj/modules.f deleted file mode 100644 index 434887a..0000000 --- a/fortran/dmftproj/modules.f +++ /dev/null @@ -1,412 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - -C-------------------- -C MODULE almblm_data -C-------------------- - MODULE almblm_data - INTEGER :: nk, nloat - INTEGER, DIMENSION(:,:), ALLOCATABLE :: nLO - REAL(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: u_dot_norm - REAL(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: ovl_LO_u - REAL(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: ovl_LO_udot - TYPE kp_data - LOGICAL :: included - INTEGER :: nb_bot, nb_top - INTEGER :: nbmin,nbmax - REAL(KIND=8) :: weight - COMPLEX(KIND=8), DIMENSION(:), ALLOCATABLE :: tetrweight - REAL(KIND=8),DIMENSION(:), ALLOCATABLE :: eband - COMPLEX(KIND=8),DIMENSION(:,:,:), ALLOCATABLE :: Alm, Blm - COMPLEX(KIND=8),DIMENSION(:,:,:,:), ALLOCATABLE :: Clm - ENDTYPE - TYPE(kp_data), DIMENSION(:,:), ALLOCATABLE :: kp - ENDMODULE almblm_data -C -C-------------- -C MODULE bands -C-------------- - MODULE bands - INTEGER :: nlab, nkband - TYPE label - CHARACTER(len=20) :: kname - INTEGER :: pos - ENDTYPE - TYPE(label), DIMENSION(:), ALLOCATABLE :: labels - ENDMODULE -C -C-------------------- -C MODULE common_data -C-------------------- - MODULE common_data -C 11/03/10 : Modification of the fullpath for myDMFTproj-2 -C CHARACTER(len=*), PARAMETER :: wien_path= -C & '/workpmc/martins/DMFTprojectors/newDMFTproj' - CHARACTER(len=250) :: wien_path - INTEGER :: natom, nsort, lmax, nlm, ns, nsp - INTEGER, DIMENSION(:), ALLOCATABLE :: isort - INTEGER, DIMENSION(:), ALLOCATABLE :: nmult - INTEGER, DIMENSION(:,:), ALLOCATABLE :: lsort - INTEGER, DIMENSION(:), ALLOCATABLE :: ifSOflag - INTEGER, DIMENSION(:), ALLOCATABLE :: timeflag - INTEGER :: b_bot, b_top, proj_mode - LOGICAL :: ifSO, ifSP, ifBAND - LOGICAL, DIMENSION(:), ALLOCATABLE :: notinclude - REAL(KIND=8) :: eferm - REAL(KIND=8) :: e_bot, e_top - - REAL(KIND=8), PARAMETER :: PI=3.1415926535898d0 -C New type structure basistrans - TYPE deftrans - CHARACTER(len=8) :: typebasis -C The size of typebasis is limited to 8 characters ! - CHARACTER(len=25) :: sourcefile -C The size of sourcefile is limited to 25 characters ! - ENDTYPE - TYPE(deftrans), DIMENSION(:), ALLOCATABLE :: defbasis -C Type structure orbital - TYPE orbital - INTEGER :: atom - INTEGER :: sort - INTEGER :: l - LOGICAL :: first - LOGICAL :: ifsplit - INTEGER :: ifSOat - LOGICAL,DIMENSION(:), ALLOCATABLE :: correp - ENDTYPE - TYPE(orbital), DIMENSION(:), ALLOCATABLE :: orb, crorb - INTEGER :: norb, ncrorb - ENDMODULE common_data -C -C------------------ -C MODULE factorial -C------------------ - MODULE factorial - REAL(KIND=8), DIMENSION(:), ALLOCATABLE :: fac - INTEGER :: nfctrl - CONTAINS - SUBROUTINE setfact(n) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets the factorial array %% -C %% FAC(I+1) = I! for I=0,...,N-1 %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - IMPLICIT NONE - INTEGER :: n, i -C - nfctrl=n - ALLOCATE(fac(nfctrl)) -C I! = FAC(I+1) - fac(1)=1.0d00 - DO i=1,nfctrl-1 - fac(i+1)=i*fac(i) - ENDDO - RETURN - END SUBROUTINE setfact - END MODULE factorial -C -C------------------- -C MODULE file_names -C------------------- - MODULE file_names - INTEGER :: iudef, iuinp, iusym, iualmblm, iumatfile, iuradwf - INTEGER :: iuklist - INTEGER :: ouproj, ouprn, ouctqmc, oupartial,ousymqmc, ousympar - INTEGER :: ouband, oubwinup, oubwindn, oubwin - INTEGER :: outw2kpath - CHARACTER(len=25) :: jobname - CHARACTER(len=35) :: inp_file, sym_file, almblm_file - CHARACTER(len=35) :: almblm_file_sp2 - CHARACTER(len=35) :: radwf_file, radwf_file_sp2 - CHARACTER(len=35) :: prn_file, ctqmc_file, partial_file - CHARACTER(len=35) :: klist_file - CHARACTER(len=35) :: symqmc_file, sympar_file, outband_file - CHARACTER(len=35) :: oubwin_file, oubwinup_file, oubwindn_file - CHARACTER(len=8), PARAMETER :: inp_ext='indmftpr' - CHARACTER(len=7), PARAMETER :: sym_ext='dmftsym' - CHARACTER(len=6), PARAMETER :: almblm_ext='almblm' - CHARACTER(len=8), PARAMETER :: almblmup_ext='almblmup' - CHARACTER(len=8), PARAMETER :: almblmdn_ext='almblmdn' - CHARACTER(len=9), PARAMETER :: prn_ext='outdmftpr' - CHARACTER(len=8), PARAMETER :: ctqmc_ext='ctqmcout' - CHARACTER(len=7), PARAMETER :: partial_ext='parproj' - CHARACTER(len=6), PARAMETER :: symqmc_ext='symqmc' - CHARACTER(len=6), PARAMETER :: sympar_ext='sympar' - CHARACTER(len=7), PARAMETER :: radwfup_ext='radwfup' - CHARACTER(len=7), PARAMETER :: radwfdn_ext='radwfdn' - CHARACTER(len=10), PARAMETER :: klist_ext='klist_band' - CHARACTER(len=7), PARAMETER :: outband_ext='outband' - CHARACTER(len=6), PARAMETER :: oubwin_ext='oubwin' - CHARACTER(len=8), PARAMETER :: oubwinup_ext='oubwinup' - CHARACTER(len=8), PARAMETER :: oubwindn_ext='oubwindn' - CONTAINS - SUBROUTINE set_file_name(filename,exten) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets the file name %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - IMPLICIT NONE - CHARACTER(len=*) :: filename, exten - INTEGER :: i1, i2, i - i1=LEN_TRIM(jobname) - i2=LEN(exten) - i=i1+i2+1 - IF(LEN(filename) < i) THEN - WRITE(*,'(i3,3a)') - & i,' characters required for the $case.',exten, - & ' filename, too long' - STOP - ENDIF - filename=' ' - filename(1:i)=jobname(1:i1)//'.'//exten(1:i2) - END SUBROUTINE set_file_name -C - SUBROUTINE openfiles -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine opens the input and output units for dmftproj %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data, ONLY: ifSP, ifSO, ifBAND, wien_path - IMPLICIT NONE - CHARACTER(len=120) :: buf - INTEGER :: i1, i2 -C initialize input/output channels - CALL setchannels -C Get working directory name: - CALL system('pwd > dir_name.tmp') - OPEN(outw2kpath,file='dir_name.tmp',status='old') - READ(outw2kpath,'(a)')buf - CLOSE(outw2kpath,status='delete') - i1=INDEX(buf,'/',.TRUE.) - i2=LEN_TRIM(buf) - jobname(1:i2-i1)=buf(i1+1:i2) - jobname(i2-i1+1:)=' ' -C Construct file names - CALL set_file_name(inp_file,inp_ext) - CALL set_file_name(sym_file,sym_ext) - IF(.NOT.ifSP) THEN - CALL set_file_name(almblm_file,almblm_ext) - ELSE - CALL set_file_name(almblm_file,almblmup_ext) - CALL set_file_name(almblm_file_sp2,almblmdn_ext) - ENDIF - CALL set_file_name(prn_file,prn_ext) - CALL set_file_name(ctqmc_file,ctqmc_ext) - CALL set_file_name(partial_file,partial_ext) - CALL set_file_name(symqmc_file,symqmc_ext) - CALL set_file_name(sympar_file,sympar_ext) - IF(ifSP.AND.ifSO) THEN - CALL set_file_name(radwf_file,radwfup_ext) - CALL set_file_name(radwf_file_sp2,radwfdn_ext) - ENDIF - IF(ifBAND) THEN - CALL set_file_name(klist_file,klist_ext) - CALL set_file_name(outband_file,outband_ext) - ENDIF - IF(ifSP) THEN - CALL set_file_name(oubwinup_file,oubwinup_ext) - CALL set_file_name(oubwindn_file,oubwindn_ext) - ELSE - CALL set_file_name(oubwin_file,oubwin_ext) - ENDIF -C Open units - OPEN(iuinp,file=inp_file,status='old') - OPEN(iusym,file=sym_file,status='old') - OPEN(iualmblm,file=almblm_file,status='old') - OPEN(ouprn,file=prn_file) - OPEN(ouctqmc,file=ctqmc_file) - OPEN(oupartial,file=partial_file) - OPEN(ousymqmc,file=symqmc_file) - OPEN(ousympar,file=sympar_file) - IF(ifBAND) THEN - OPEN(iuklist,file=klist_file,status='old') - OPEN(ouband,file=outband_file) - ENDIF - IF(ifSP) THEN - OPEN(oubwinup,file=oubwinup_file) - OPEN(oubwindn,file=oubwindn_file) - ELSE - OPEN(oubwin,file=oubwin_file) - ENDIF -C -C Set path to Wien2k - CALL system('echo $WIENROOT > path_wienroot.tmp') - OPEN(outw2kpath,file='path_wienroot.tmp',status='old') - READ(outw2kpath,'(a)')wien_path - CLOSE(outw2kpath,status='delete') -C - RETURN - END SUBROUTINE -C - SUBROUTINE setchannels -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine opens the input and output channels %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data, ONLY: ifSP - IMPLICIT NONE -C Channels -C input - iudef=5 ! def-file - iuinp=7 ! input data - iusym=8 ! symmetries - iualmblm=9 ! almblm matrices from Wien - iumatfile=15 !transformation matrices between different angular basises - iuradwf=16 !radial mesh and wave functions - iuklist=20 !bands -C output - ouprn=10 ! print-out file - ouproj=11 ! projection matrices and other data for DMFT run - ouctqmc=12 ! output for ctqmc - oupartial=13 ! output for partial charges projectors for ctqmc - ousymqmc=14 ! output for permutations and rotation matrices - ousympar=19 ! output for permutations and rotation matrices - ! for partial charges analisis - ouband=21 ! bands - IF(ifSP) THEN - oubwinup=22 ! included bands information for lapw2(up) - oubwindn=23 ! included bands information for lapw2(dn) - ELSE - oubwin=22 ! included bands information for lapw2 - ENDIF -C - RETURN - END SUBROUTINE -C -C - ENDMODULE file_names -C - MODULE prnt - CHARACTER(len=250) :: buf - CONTAINS - SUBROUTINE printout(newline) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine prints the string in buf to the screen %% -C %% and to the output file and renitializes buf %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE file_names - IMPLICIT NONE - INTEGER :: newline, i - i=LEN_TRIM(buf) - WRITE(ouprn,'(a)')buf(1:i) - WRITE(*,'(a)')buf(1:i) - buf=' ' - IF(newline==1) THEN - WRITE(ouprn,'(/)') - WRITE(*,'(/)') - ENDIF - RETURN - END subroutine - ENDMODULE prnt -C -C-------------------- -C MODULE projections -C-------------------- - MODULE projections - TYPE proj_mat - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: mat - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: mat_rep - ENDTYPE - TYPE(proj_mat), DIMENSION(:,:,:), ALLOCATABLE :: pr_crorb -C - TYPE proj_mat_n - COMPLEX(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: matn - COMPLEX(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: matn_rep - ENDTYPE - TYPE(proj_mat_n), DIMENSION(:,:,:), ALLOCATABLE :: pr_orb -C - TYPE ortfunc - INTEGER :: n - REAL(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: s12 - ENDTYPE - TYPE(ortfunc), DIMENSION(:), ALLOCATABLE :: norm_radf - ENDMODULE projections -C -C------------- -C MODULE reps -C------------- - MODULE reps - TYPE ang_bas - INTEGER :: nreps - INTEGER, DIMENSION(:), ALLOCATABLE :: dreps - LOGICAL :: ifmixing - COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: transmat - ENDTYPE - TYPE(ang_bas), DIMENSION(:,:), ALLOCATABLE :: reptrans - ENDMODULE -C -C------------- -C MODULE symm -C------------- - MODULE symm - TYPE matrix - COMPLEX(KIND=8),DIMENSION(:,:),ALLOCATABLE :: mat - ENDTYPE - TYPE symop - LOGICAL :: timeinv - INTEGER, DIMENSION(:), ALLOCATABLE :: perm - INTEGER :: iprop - REAL(KIND=8) :: a, b, g - REAL(KIND=8) :: phase - REAL(KIND=8) :: krotm(3,3) - COMPLEX(KIND=8),DIMENSION(:,:,:),ALLOCATABLE ::rotl - TYPE(matrix),DIMENSION(:,:),ALLOCATABLE ::rotrep - ENDTYPE - TYPE symoploc - LOGICAL :: timeinv - INTEGER :: iprop - INTEGER :: srotnum - REAL(KIND=8) :: a, b, g - REAL(KIND=8) :: phase - REAL(KIND=8) :: krotm(3,3) - COMPLEX(KIND=8),DIMENSION(:,:,:),ALLOCATABLE ::rotl - TYPE(matrix),DIMENSION(:),ALLOCATABLE ::rotrep - ENDTYPE - INTEGER :: nsym - INTEGER :: lsym, nlmsym - TYPE(symop), DIMENSION(:), ALLOCATABLE :: srot - TYPE(symoploc), DIMENSION(:), ALLOCATABLE :: rotloc - TYPE(matrix), DIMENSION(:,:), ALLOCATABLE :: densmat - TYPE(matrix), DIMENSION(:,:), ALLOCATABLE :: crdensmat - END MODULE symm - diff --git a/fortran/dmftproj/orthogonal.f b/fortran/dmftproj/orthogonal.f deleted file mode 100644 index 7d24858..0000000 --- a/fortran/dmftproj/orthogonal.f +++ /dev/null @@ -1,225 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE orthogonal_h(s1,ndim,inv) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine computes : %% -C %% - if inv = .FALSE. the square root of the Hermitian matrix s1 %% -C %% - if inv = .TRUE. the inverse of the square root of the %% -C %% Hermitian matrix s1 %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE prnt - IMPLICIT NONE - INTEGER :: ndim, INFO, lm, lm1 - COMPLEX(KIND=8), DIMENSION(ndim) :: WORK - COMPLEX(KIND=8), DIMENSION(ndim,ndim) :: s1 - INTEGER, DIMENSION(ndim,ndim) :: IPIV - LOGICAL :: inv -C -C Calculation of S1^(1/2) or S1^(-1/2): -C ------------------------------------- - CALL sqrtm(s1,ndim,inv) -C The resulting matrix is stored in s1. - RETURN - END - - SUBROUTINE orthogonal_r(s2,ndim,inv) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine computes : %% -C %% - if inv = .FALSE. the square root of s1 %% -C %% - if inv = .TRUE. the inverse of the square root of s2 %% -C %% where s2 is a real symmetric matrix. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE prnt - IMPLICIT NONE - INTEGER :: ndim, INFO, lm, lm1 - COMPLEX(KIND=8), DIMENSION(ndim) :: WORK - COMPLEX(KIND=8), DIMENSION(ndim,ndim) :: s1 - REAL(KIND=8), DIMENSION(ndim,ndim) :: s2 - INTEGER, DIMENSION(ndim,ndim) :: IPIV - LOGICAL :: inv -C -C Calculation of S2^(1/2) or S2^(-1/2): -C ------------------------------------- - s1=s2 - CALL sqrtm(s1,ndim,inv) - s2=REAL(s1) -C The resulting matrix is stored in s2. - RETURN - END - - - SUBROUTINE sqrtm(cmat,m,inv) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine calculates the square root of a positively %% -C %% defined Hermitian matrix A=cmat using the decomposition %% -C %% A=Z*D*Z^H %% -C %% where D is a diagonal matrix of eigenvalues of A, %% -C %% Z is matrix of orthonormal eigenvectors of A, %% -C %% Z^H is its Hermitian conjugate. %% -C %% Then A^(1/2)=Z*D^(1/2)*Z^H. %% -C %% Correction: the matrix A is allowed to be negatively defined. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - IMPLICIT NONE - INTEGER :: m - COMPLEX(KIND=8), DIMENSION(m,m):: cmat, D, D1 - LOGICAL :: inv -C Calculation of Z*D^(1/2): -C ------------------------- - CALL sqrt_eigenvec(cmat,D1,m,inv) - WRITE(95,*) cmat - WRITE(95,*) ' ' - WRITE(95,*) D1 - WRITE(95,*) ' ' -C Calculation of A^(1/2)=Z*D^(1/2)*Z^H: -C ------------------------------------- - D=CONJG(cmat) - call ZGEMM('N','T',m,m,m,DCMPLX(1.D0,0.D0),D1, - & m,D,m,DCMPLX(0.D0,0.D0),cmat,m) -C The resulting matrix is stored in cmat. - RETURN - END - - - SUBROUTINE sqrt_eigenvec(cmat,D1,m,inv) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine computes : %% -C %% - if inv = .FALSE. Z*D^(1/2) %% -C %% - if inv = .TRUE. Z*D^(-1/2) %% -C %% where Z is a matrix of orthonormal eigenvectors of cmat and %% -C %% D is the diagonal matrix of cmat's eigenvalues. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE prnt - IMPLICIT NONE - LOGICAL :: inv, ifwrite - INTEGER :: m, INFO, i, j - INTEGER, PARAMETER :: nwork=40 -C - COMPLEX(KIND=8), allocatable, DIMENSION(:) :: WORK - COMPLEX(KIND=8), DIMENSION(m,m) :: cmat, D1 - REAL(KIND=8), DIMENSION(m) :: W - COMPLEX(KIND=8), DIMENSION(m) :: W_comp - REAL(KIND=8), allocatable, DIMENSION(:) :: RWORK -C -C Finding the eigenvalues and the eigenvectors of cmat : -C ------------------------------------------------------ - ALLOCATE(rwork(3*m-2)) - ALLOCATE(work(2*m-1)) - CALL ZHEEV('V', 'U', m, cmat, m, W, WORK,2*m-1,RWORK,INFO) - IF (info.ne.0) THEN - WRITE(buf,'(a)') - & 'The subroutine zheev ends with info = ',info - CALL printout(0) - WRITE(buf,'(a)')'In sqrt_eigenvec, a pbm occurs in zheev.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C W contains the eigenvalues of cmat. - W_comp=CMPLX(W,0d0) -C -C Checking of the validity of the computation : -C --------------------------------------------- - ifwrite=.FALSE. - DO j=1,m -C The warning is written only once in the file case.outdmftpr - IF (ifwrite) EXIT -C Checking if the eigenvalues are not negative. - IF (W(j).lt.0.d0) THEN - WRITE(buf,'(a,i2,a,a)') - & 'WARNING : An eigenvalue (',j,') of the ', - & 'overlap matrix is negative.' - CALL printout(0) - WRITE(buf,'(a,a)')' The result ', - & 'of the calculation may thus be wrong.' - CALL printout(1) - ifwrite=.TRUE. - ENDIF - IF (ABS(W(j)).lt.1.d-12) THEN - WRITE(buf,'(a,i2,a,a)') - & 'WARNING : An eigenvalue (',j,') of the ', - & 'overlap matrix is almost zero.' - CALL printout(0) - WRITE(buf,'(a,a)')' The result ', - & 'of the calculation may thus be wrong.' - CALL printout(1) - ifwrite=.TRUE. - ENDIF - ENDDO -C -C Calculation of Z*D^(1/2) : -C -------------------------- -C The result is stored in D1. - IF(.NOT.inv) THEN - DO i=1,m - DO j=1,m - D1(i,j)=cmat(i,j)*SQRT(W_comp(j)) - ENDDO - ENDDO - ELSE -C Calculation of Z*D^(-1/2) : -C --------------------------- -C The result is stored in D1. - DO i=1,m - DO j=1,m - IF (ABS(W(j))==0.d0) THEN - WRITE(buf,'(a,i2,a)') - & 'An eigenvalue (',j,') of the ', - & 'overlap matrix has the value 0.' - CALL printout(0) - WRITE(buf,'(a)') - & 'The calculation can not be performed further.' - CALL printout(0) - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF - D1(i,j)=cmat(i,j)/SQRT(W_comp(j)) - ENDDO - ENDDO - ENDIF -C The resulting matrix is stored in D1 and cmat is now Z. - RETURN - END - diff --git a/fortran/dmftproj/orthogonal_wannier.f b/fortran/dmftproj/orthogonal_wannier.f deleted file mode 100644 index 171c754..0000000 --- a/fortran/dmftproj/orthogonal_wannier.f +++ /dev/null @@ -1,593 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE orthogonal_wannier -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine orthonormalizes the Wannier-like functions %% -C %% obtained with the projectors P(icrorb,ik,is), in order to %% -C %% get a set of "true" Wannier orbitals. %% -C %% %% -C %% Only the correlated orbitals are treated here. %% -C %% %% -C %% THIS VERSION CAN NOT BE USED WITH SPIN-ORBIT %% -C %% (since the calculation is made independently for up/dn states) %% -C %% THIS VERSION CAN BE USED WITH SPIN-POLARIZED INPUT FILES. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE almblm_data - USE common_data - USE prnt - USE projections - USE reps - IMPLICIT NONE - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: Dmat, D_orth, D - INTEGER :: is, ik, l, nbnd, ndim, isrt, nbbot, nbtop - INTEGER :: icrorb, ind1, ind2, ib, iatom - INTEGER :: m1, m2, irep -C - WRITE(buf,'(a)')'Orthonormalization of the projectors...' - CALL printout(0) - CALL printout(0) -C - IF(ncrorb==0) RETURN -C -C ===================================== -C Creation of the overlap matrix Dmat : -C ===================================== -C -C ----------------------------------------------------------- -C Determination of the dimension ndim of the overlap matrix : -C ----------------------------------------------------------- - ndim=0 -C Loop on the correlated orbitals - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C Since this subroutine is used only in the case without SO, -C the correlated ireps can be considered if there are any. (ifsplit=.TRUE.) - IF(crorb(icrorb)%ifsplit) THEN -C the value of l can not be 0 here, because ifsplit is necessary .FALSE. -C for s-orbital (restriction in dmftproj.f) - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) - & ndim=ndim+reptrans(l,isrt)%dreps(irep) -C The dimension of the irep is added to ndim. - ENDDO - ELSE -C If no particular irep is considered (ifsplit=.FALSE.), -C The whole matrix of the representation is considered. - ndim=ndim+2*l+1 - ENDIF - ENDDO -C ------------------ -C Creation of Dmat : -C ------------------ - ALLOCATE(Dmat(1:ndim,1:ndim)) -C -C ===================================================================== -C Computation of the orthonormalized Wannier functions and projectors : -C ===================================================================== -C The computation is performed for each k_point and each spin-value independently -C because they are good quantum numbers. - DO ik=1,nk - DO is=1,ns -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE - nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 - nbbot=kp(ik,is)%nb_bot - nbtop=kp(ik,is)%nb_top - ALLOCATE(D(1:ndim,1:nbnd)) -C -C -------------------------------- -C Initialization of the D matrix : -C -------------------------------- -C This D matrix of size ndim*nbnd is the complete "projector matrix" -C which enables to go from the Wannier-like basis |u_orb> to the Bloch states |ik,ib>. - ind1=0 - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C If l=0, there only possible irep is the whole matrix itself. - IF (l==0) THEN - D(ind1+1,1:nbnd)=pr_crorb(icrorb,ik,is)% - & mat_rep(1,nbbot:nbtop) - ind1=ind1+1 - ELSE -C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) - IF(crorb(icrorb)%ifsplit) THEN -C the value of l can not be 0 here, because ifsplit is necessary .FALSE. -C for s-orbital (restriction in dmftproj.f) - m1=-l-1 - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - m2=m1+reptrans(l,isrt)%dreps(irep) - ind2=ind1+reptrans(l,isrt)%dreps(irep) -C Since there is no SO, prcrorb%matrep is of size 2*l+1, from -l to l -C (the basis which mix up/dn states are not possible here.) -C The states range from m1+1 to m2 in the irep. -C The corresponding projector is stored from the line (ind1+1) to the line ind2, in the D matrix. - D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,is)% - & mat_rep(m1+1:m2,nbbot:nbtop) - ind1=ind2 - ENDIF - m1=m1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) - ind2=ind1+2*l+1 -C Since there is no SO, prcrorb%matrep is of size 2*l+1, from -l to l. -C (the basis which mix up/dn states are not possible here.) -C The corresponding projection matrix is stored from the line (ind1+1) to the line ind2, in the D matrix. - D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,is)% - & mat_rep(-l:l,nbbot:nbtop) - ind1=ind2 - ENDIF ! End of the ifsplit if-then-else - ENDIF ! End of the l=0 if-then-else - ENDDO ! End of the icrorb loop -C -C ---------------------------------------- -C Computation of the overlap matrix Dmat : -C ---------------------------------------- -C The overlap matrix is stored in Dmat = D*transpose(conjugate(D)) - CALL ZGEMM('N','C',ndim,ndim,nbnd,DCMPLX(1.D0,0.D0), - & D,ndim,D,ndim,DCMPLX(0.D0,0.D0),Dmat,ndim) -C -C ------------------------------------------- -C Computation of the matrix S = Dmat^{-1/2} : -C ------------------------------------------- - CALL orthogonal_h(Dmat,ndim,.TRUE.) -C This matrix is stored in Dmat. -C -C ----------------------------------------------- -C Computation of the orthonormalized projectors : -C ----------------------------------------------- -C The calculation performed is the following : P=O^(-1/2)*P_tilde. -C Its value is stored in the matrix D_orth (of size ndim*nbnd) - - ALLOCATE(D_orth(1:ndim,1:nbnd)) - CALL ZGEMM('N','N',ndim,nbnd,ndim,DCMPLX(1.D0,0.D0), - & Dmat,ndim,D,ndim,DCMPLX(0.D0,0.D0),D_orth,ndim) - DEALLOCATE(D) -C -C -------------------------------------------------------------------------------- -C Storing the value of the orthonormalized projectors in the pr_crorb structures : -C -------------------------------------------------------------------------------- - ind1=0 - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C If l=0, there only possible irep is the whole matrix itself. - IF (l==0) THEN - pr_crorb(icrorb,ik,is)%mat_rep - & (1,nbbot:nbtop)=D_orth(ind1+1,1:nbnd) - ind1=ind1+1 - ELSE -C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) - IF(crorb(icrorb)%ifsplit) THEN -C the value of l can not be 0 here, because ifsplit is necessary .FALSE. -C for s-orbital (restriction in dmftproj.f) - m1=-l-1 - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - m2=m1+reptrans(l,isrt)%dreps(irep) - ind2=ind1+reptrans(l,isrt)%dreps(irep) -C prcrorb%matrep is of size 2*l+1, from -l to l (the basis which mix up/dn states are not possible here.) -C In the D_orth matrix, the corresponding part of the projection matrix ranges from the line (ind1+1) to the line ind2. -C The projector associated to the ireps is stored in the prcrorb%matrep from m1+1 to m2. - pr_crorb(icrorb,ik,is)% - & mat_rep(m1+1:m2,nbbot:nbtop)= - & D_orth(ind1+1:ind2,1:nbnd) - ind1=ind2 - ENDIF - m1=m1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) - ind2=ind1+2*l+1 -C Since there is no SO, prcrorb%matrep is of size 2*l+1, from -l to l. -C (the basis which mix up/dn states are not possible here.) -C In the D_orth matrix, the projection matrix ranges from the line (ind1+1) to the line ind2. -C The projector is stored in the pr_crorb%matrep (from -l to l). - pr_crorb(icrorb,ik,is)%mat_rep - & (-l:l,nbbot:nbtop)=D_orth(ind1+1:ind2,1:nbnd) - ind1=ind2 - ENDIF ! End of the ifsplit if-then-else - ENDIF ! End of the l=0 if-then-else - ENDDO ! End of the icrorb loop -C prcrorb%matrep contains now the orthonormalized projectors. - DEALLOCATE(D_orth) - ENDDO ! End of the loop on is - ENDDO ! End of the loop on ik - DEALLOCATE(Dmat) -C -C ============================================================================= -C Printing the projectors with k-points 1 and nk in the file fort.18 for test : -C ============================================================================= - DO icrorb=1,ncrorb - iatom=crorb(icrorb)%atom - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l - WRITE(18,'()') - WRITE(18,'(a)') 'apres othonormalizsation' - WRITE(18,'(a,i4)') 'icrorb = ', icrorb - WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l - IF (l==0) THEN - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ELSEIF (reptrans(l,isrt)%ifmixing) THEN - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ELSE - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ENDIF - ENDDO -C - RETURN - END - - - - SUBROUTINE orthogonal_wannier_SO -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine orthonormalizes the Wannier-like functions %% -C %% obtained with the projectors P(icrorb,ik,is), in order to %% -C %% get a set of "true" Wannier orbitals. %% -C %% %% -C %% Only the correlated orbitals are treated here. %% -C %% %% -C %% THIS VERSION MUST BE USED WITH SPIN-ORBIT %% -C %% (since the calculation for up/dn states is made simultaneously) %% -C %% THIS VERSION CAN NOT BE USED WITHOUT SPIN-POLARIZED INPUT FILES.%% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE almblm_data - USE common_data - USE prnt - USE projections - USE reps - IMPLICIT NONE - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: Dmat, D_orth, D - INTEGER :: is, ik, l, nbnd, ndim, isrt, nbbot, nbtop - INTEGER :: icrorb, ind1, ind2, iatom, ib - INTEGER :: m1, m2, irep -C - WRITE(buf,'(a)')'Orthonormalization of the projectors...' - CALL printout(0) - CALL printout(0) -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if there is no dn part of pr_crorb. -C ------------------------- -C - IF(.not.ifSP) THEN - WRITE(buf,'(a,a,i2,a)')'The projectors on ', - & 'the dn states are required for isrt = ',isrt, - & ' but there is no spin-polarized input files.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C --------------------------------------------------------------------------------------- -C -C ===================================== -C Creation of the overlap matrix Dmat : -C ===================================== -C -C ----------------------------------------------------------- -C Determination of the dimension ndim of the overlap matrix : -C ----------------------------------------------------------- - ndim=0 -C Loop on the correlated orbitals - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C Since this subroutine is used only in the case with SO, -C the only irep possible for s-orbital is the matrix itself. - ndim=ndim+2 -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) - IF(crorb(icrorb)%ifsplit) THEN - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ndim=ndim+reptrans(l,isrt)%dreps(irep) - ENDIF -C The dimension of the irep is added to ndim. - ENDDO - ELSE -C If no particular irep is considered (ifsplit=.FALSE.), -C The whole matrix of the representation is considered. - ndim=ndim+2*(2*l+1) - ENDIF -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE -C Since this subroutine is used only in the case with SO, -C the only irep possible for this orbital is the matrix itself. - ndim=ndim+2*(2*l+1) - ENDIF - ENDDO -C ------------------ -C Creation of Dmat : -C ------------------ - ALLOCATE(Dmat(1:ndim,1:ndim)) -C -C ===================================================================== -C Computation of the orthonormalized Wannier functions and projectors : -C ===================================================================== -C The computation is performed for each k_point independently -C because they are still good quantum numbers. - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,1)%included) CYCLE - nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 - nbbot=kp(ik,1)%nb_bot - nbtop=kp(ik,1)%nb_top -C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) -C for a computation with SO [in set_projections.f] - ALLOCATE(D(1:ndim,1:nbnd)) -C -C -------------------------------- -C Initialization of the D matrix : -C -------------------------------- -C This D matrix of size ndim*nbnd is the complete "projector matrix" -C which enables to go from the Wannier-like basis |u_orb> to the Bloch states |ik,ib>. - ind1=0 - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C the only irep possible for s-orbital is the matrix itself. - DO is=1,ns -C D(ind1,1:nbnd)= -C Bug correction 8.11.2012 - D(ind1+1,1:nbnd)= - & pr_crorb(icrorb,ik,is)%mat_rep(1,nbbot:nbtop) - ind1=ind1+1 - ENDDO -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the projection matrix is stored in prcrorb%matrep with is=1. -C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) - IF (crorb(icrorb)%ifsplit) THEN - m1=0 - DO irep=1,reptrans(l,isrt)%nreps - IF (crorb(icrorb)%correp(irep)) THEN - m2=m1+reptrans(l,isrt)%dreps(irep) - ind2=ind1+reptrans(l,isrt)%dreps(irep) -C The states range from m1+1 to m2 in the irep. -C The corresponding projector is stored from the line (ind1+1) to the line ind2, in the D matrix. - D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,1)% - & mat_rep(m1+1:m2,nbbot:nbtop) - ind1=ind2 - ENDIF - m1=m1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) - ind2=ind1+2*(2*l+1) -C The corresponding projection matrix is stored from the line (ind1+1) to the line ind2, in the D matrix. - D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,1)% - & mat_rep(1:2*(2*l+1),nbbot:nbtop) - ind1=ind2 - ENDIF ! End of the ifsplit if-then-else -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE -C the only irep possible for such an orbital is the matrix itself. - DO is=1,ns - ind2=ind1+2*l+1 - D(ind1+1:ind2,1:nbnd)= - & pr_crorb(icrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop) - ind1=ind2 - ENDDO - ENDIF ! End of the ifmixing if-then-else - ENDDO ! End of the icrorb loop -C -C ---------------------------------------- -C Computation of the overlap matrix Dmat : -C ---------------------------------------- -C The overlap matrix is stored in Dmat = D*transpose(conjugate(D)) - CALL ZGEMM('N','C',ndim,ndim,nbnd,DCMPLX(1.D0,0.D0), - & D,ndim,D,ndim,DCMPLX(0.D0,0.D0),Dmat,ndim) -C -C ------------------------------------------- -C Computation of the matrix S = Dmat^{-1/2} : -C ------------------------------------------- - CALL orthogonal_h(Dmat,ndim,.TRUE.) -C This matrix is stored in Dmat. -C -C ----------------------------------------------- -C Computation of the orthonormalized projectors : -C ----------------------------------------------- -C The calculation performed is the following : P=O^(-1/2)*P_tilde. -C Its value is stored in the matrix D_orth (of size ndim*nbnd) - ALLOCATE(D_orth(1:ndim,1:nbnd)) - CALL ZGEMM('N','N',ndim,nbnd,ndim,DCMPLX(1.D0,0.D0), - & Dmat,ndim,D,ndim,DCMPLX(0.D0,0.D0),D_orth,ndim) - DEALLOCATE(D) -C -C -------------------------------------------------------------------------------- -C Storing the value of the orthonormalized projectors in the pr_crorb structures : -C -------------------------------------------------------------------------------- - ind1=0 - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C the only irep possible for s-orbital is the matrix itself. - DO is=1,ns - pr_crorb(icrorb,ik,is)%mat_rep(1,nbbot:nbtop)= - & D_orth(ind1+1,1:nbnd) - ind1=ind1+1 - ENDDO -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) - IF(crorb(icrorb)%ifsplit) THEN - m1=0 - DO irep=1,reptrans(l,isrt)%nreps - IF (crorb(icrorb)%correp(irep)) THEN - m2=m1+reptrans(l,isrt)%dreps(irep) - ind2=ind1+reptrans(l,isrt)%dreps(irep) -C In the D_orth matrix, the corresponding part of the projection matrix ranges from the line (ind1+1) to the line ind2. -C The projector associated to the ireps is stored in the prcrorb%matrep from m1+1 to m2. - pr_crorb(icrorb,ik,1)%mat_rep(m1+1:m2,nbbot:nbtop) - & =D_orth(ind1+1:ind2,1:nbnd) - ind1=ind2 - ENDIF - m1=m1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) - ind2=ind1+2*(2*l+1) -C The corresponding projection matrix is stored from the line (ind1+1) to the line ind2, in the D matrix. - pr_crorb(icrorb,ik,1)%mat_rep(1:2*(2*l+1),nbbot:nbtop) - & =D_orth(ind1+1:ind2,1:nbnd) - ind1=ind2 - ENDIF ! End of the ifsplit if-then-else -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE -C the only irep possible for this orbital is the matrix itself. - DO is=1,ns - ind2=ind1+2*l+1 - pr_crorb(icrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop) - & =D_orth(ind1+1:ind2,1:nbnd) - ind1=ind2 - ENDDO - ENDIF ! End of the ifmixing if-then-else - ENDDO ! End of the icrorb loop - DEALLOCATE(D_orth) - ENDDO ! End of the loop on ik - DEALLOCATE(Dmat) -C -C ============================================================================= -C Printing the projectors with k-points 1 and nk in the file fort.18 for test : -C ============================================================================= - DO icrorb=1,ncrorb - iatom=crorb(icrorb)%atom - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l - WRITE(18,'()') - WRITE(18,'(a)') 'apres othonormalizsation' - WRITE(18,'(a,i4)') 'icrorb = ', icrorb - WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l - IF (l==0) THEN - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ELSEIF (reptrans(l,isrt)%ifmixing) THEN - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ELSE - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ENDIF - ENDDO -C - RETURN - END - - diff --git a/fortran/dmftproj/outband.f b/fortran/dmftproj/outband.f deleted file mode 100644 index 625992e..0000000 --- a/fortran/dmftproj/outband.f +++ /dev/null @@ -1,287 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE outband -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine creates the output file case.outband, with all %% -C %% the informations necessary for the computation of the spectral %% -C %% function of the system. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definition of the variables : -C ----------------------------- - USE almblm_data - USE bands - USE common_data - USE file_names - USE prnt - USE projections - USE reps - IMPLICIT NONE -C - INTEGER :: iorb, icrorb, irep, isrt - INTEGER :: l, m, is, i1, i2, i - INTEGER :: ik, il, ib, ir, n - INTEGER :: ind1, ind2, iatom -C - WRITE(buf,'(a)')'Writing the file case.outband...' - CALL printout(0) -C -C ====================================== -C Informations about the chosen k-path : -C ====================================== -C -C Number of k-points along the chosen k-path - WRITE(ouband,'(i6)') nkband -C Description of the number of bands in the energy window at each k_point -C - DO is=1,ns -C If SO is considered, the number of up and dn bands are the same. - IF ((ifSP.AND.ifSO).and.(is.eq.2)) cycle - DO ik=1,nk - WRITE(ouband,'(i6)') - & ABS(kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1) - ENDDO ! End of the ik loop - ENDDO ! End of the is loop -C for each k-point, the number of band included in the energy window is written. -C =========================================================== -C Description of the projectors for the correlated orbitals : -C =========================================================== - DO ik=1,nk - DO icrorb=1,ncrorb - l=crorb(icrorb)%l - isrt=crorb(icrorb)%sort -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s-orbitals, the only irep possible is the matrix itself. - DO is=1,ns - WRITE(ouband,*) - & REAL(pr_crorb(icrorb,ik,is)%mat_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - DO is=1,ns - WRITE(ouband,*) - & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the SO is necessary considered, spinor rotation matrices are used. - IF(crorb(icrorb)%ifsplit) THEN -C If only 1 irep is correlated - ind1=1 - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO m=ind1,ind2 - WRITE(ouband,*) - & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - DO m=ind1,ind2 - WRITE(ouband,*) - & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated - DO m=1,2*(2*l+1) - WRITE(ouband,*) - & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ouband,*) - & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - ENDIF -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF ((.not.(ifSP.AND.ifSO)).AND.crorb(icrorb)%ifsplit) THEN -C If only 1 irep is correlated (case without SO) - ind1=-l - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO is=1,ns - DO m=ind1,ind2 - WRITE(ouband,*) - & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - DO is=1,ns - DO m=ind1,ind2 - WRITE(ouband,*) - & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated (case with and without SO) - DO is=1,ns - DO m=-l,l - WRITE(ouband,*) - & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - DO is=1,ns - DO m=-l,l - WRITE(ouband,*) - & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - END IF ! End of the ifsplit if-then-else - END IF ! End of the ifmixing if-then-else - END DO ! End of the icrorb loop - END DO ! End of the ik loop -C for each k-point and each correlated orbital, the corresponding projector is described by : -C - the real part of the "correlated" submatrix -C - the imaginary part of the "correlated" submatrix -C -C ====================================================== -C Description of the Hamiltonian H(k) at each k_point : -C ====================================================== - DO is=1,ns - DO ik=1,nk -C If SO is considered, the numbers of up and dn bands are the same. - IF (ifSO.and.is.eq.2) cycle - DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top - WRITE(ouband,*) kp(ik,is)%eband(ib) - ENDDO - ENDDO ! End of the ik loop - ENDDO ! End of the is loop -C for each spin value is and each k-point, -C - the energies of the band with spin is at point k -C -C ================================================================ -C Description of the size of the basis for each included orbital : -C ================================================================ - DO iorb=1,norb - WRITE(ouband,'(3(i6))') norm_radf(iorb)%n - ENDDO -C There is not more than 1 LO for each orbital (hence n < 4 ) -C -C ==================================== -C Description of the Theta projector : -C ==================================== - DO iorb=1,norb - l=orb(iorb)%l - isrt=orb(iorb)%sort -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN - DO ik=1,nk - DO ir=1,norm_radf(iorb)%n - DO is=1,ns - WRITE(ouband,*) - & REAL(pr_orb(iorb,ik,is)%matn_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - DO is=1,ns - WRITE(ouband,*) - & AIMAG(pr_orb(iorb,ik,is)%matn_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - ENDDO ! End of the ir loop - ENDDO ! End of the ik loop -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. - DO ik=1,nk - DO ir=1,norm_radf(iorb)%n - DO m=1,2*(2*l+1) - WRITE(ouband,*) - & REAL(pr_orb(iorb,ik,1)%matn_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ouband,*) - & AIMAG(pr_orb(iorb,ik,1)%matn_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) - ENDDO - ENDDO ! End of the ir loop - ENDDO ! End of the ik loop -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - DO ik=1,nk - DO ir=1,norm_radf(iorb)%n - DO is=1,ns - DO m=-l,l - WRITE(ouband,*) - & REAL(pr_orb(iorb,ik,is)%matn_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - ENDDO ! End of the is loop - DO is=1,ns - DO m=-l,l - WRITE(ouband,*) - & AIMAG(pr_orb(iorb,ik,is)%matn_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - ENDDO ! End of the is loop - ENDDO ! End of the ir loop - ENDDO ! End of the ik loop - ENDIF ! End of the ifmixing if-then-else - ENDDO ! End of the iorb loop -C for each included orbital, for each k-point and each |phi_j> elmt, -C the corresponding Thetaprojector is described by : -C - the real part of the matrix -C - the imaginary part of the matrix -C -C ============================= -C Description of the k-labels : -C ============================= - DO i=1,nlab - WRITE(ouband,'(2i6,a)') i,labels(i)%pos,labels(i)%kname - ENDDO -C for each label, are written : -C - the number of the corresponding k-point in the k-path -C - the name associated to this label -C - RETURN - END - - - diff --git a/fortran/dmftproj/outbwin.f b/fortran/dmftproj/outbwin.f deleted file mode 100644 index 25d1f03..0000000 --- a/fortran/dmftproj/outbwin.f +++ /dev/null @@ -1,92 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE outbwin -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine creates the output file case.oubwin %% -C %% which contains all the informations for the charge density %% -C %% self-consistency. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definition of the variables : -C ---------------------------- - USE almblm_data - USE common_data - USE file_names - USE prnt - IMPLICIT NONE - INTEGER :: is, ik, ou -C - WRITE(buf,'(a)')'Writing the file case.outbwin...' - CALL printout(0) -C - DO is=1,ns -C ==================================== -C Definition of the file case.oubwin : -C ==================================== -C If the computations is spin-polarized, the output file is divided -C in two files : case.oubwinup and case.oubwindn - IF(ifSP.AND.is==1) THEN - ou=oubwinup - ELSEIF(ifSP.AND.is==2) THEN - ou=oubwindn - ELSE - ou=oubwin - ENDIF -C ======================================= -C General informations about the system : -C ======================================= -C -C Number of k-points in the I-BZ - WRITE(ou,'(i6)') nk -C Definition of the Spin-orbit flag ifSO - IF(ifSO) THEN - WRITE(ou,'(i6)') 1 - ELSE - WRITE(ou,'(i6)') 0 - ENDIF -C ==================================================== -C Description of the main properties of each k-point : -C ==================================================== - DO ik=1,nk -C Description of the if-included flag - IF(kp(ik,is)%included) THEN - WRITE(ou,'(i6)') 1 - ELSE - WRITE(ou,'(i6)') 0 - ENDIF - IF(kp(ik,is)%included) THEN -C Range of bands included at each k-point - WRITE(ou,'(2(i6))') kp(ik,is)%nb_bot,kp(ik,is)%nb_top -C Weight associated to each k-point (for the simple point integration) - WRITE(ou,*) kp(ik,is)%weight - ENDIF - ENDDO ! End of the ik loop - ENDDO ! End of the is loop -C - RETURN - END - - - diff --git a/fortran/dmftproj/outputqmc.f b/fortran/dmftproj/outputqmc.f deleted file mode 100644 index f0df75d..0000000 --- a/fortran/dmftproj/outputqmc.f +++ /dev/null @@ -1,1405 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE outqmc(elecn,qbbot) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine creates the output files : %% -C %% - case.ctqmcout, with all the informations necessary for a %% -C %% CTQMC computation. %% -C %% - case.symqmc, describing all the symmetries of the system %% -c %% (necessary for CTQMC computation too). %% -C %% - case.parproj which gives the partial charge projectors for %% -C %% orbitals and for all atoms. %% -C %% - case.sympar which contains the symmetry matrices for all %% -C %% the included orbitals (for partial charge analysis) %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definition of the variables : -C ----------------------------- - USE almblm_data - USE common_data - USE file_names - USE prnt - USE reps - USE symm - USE projections - IMPLICIT NONE -C - INTEGER :: iorb, icrorb, irep, isrt - INTEGER :: l, m, is, i1, i2, isym - INTEGER :: ik, il, ib, ir, n - INTEGER :: ind1, ind2, iatom - INTEGER :: timeinvflag - REAL(KIND=8) :: qbbot, elecn, factor - COMPLEX(KIND=8) :: ephase - COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: hk - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: spinrot - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: densprint - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: time_op -C -C -C ======================================= -C Writing the file case.ctqmcout : -C ======================================= -C - WRITE(buf,'(a)')'Writing the file case.ctqmcout...' - CALL printout(0) -C -C Definition of 1 electron-Volt - WRITE(ouctqmc,'(a)') '13.605698' -C -C --------------------------------------- -C General informations about the system : -C --------------------------------------- -C -C Number of k-points in the I-BZ - WRITE(ouctqmc,'(i6)') nk -C Definition of the spin-polarized flag ifSP - IF (ifSP) THEN - WRITE(ouctqmc,'(i6)') 1 - ELSE - WRITE(ouctqmc,'(i6)') 0 - ENDIF -C Definition of the Spin-orbit flag ifSO - IF (ifSO) THEN - WRITE(ouctqmc,'(i6)') 1 - ELSE - WRITE(ouctqmc,'(i6)') 0 - ENDIF -C The only possible combinations are : -C - (0,0) which stands for a paramagnetic computation without SO. -C - (1,0) which stands for computation without SO using spin-polarized input files. -C - (1,1) which stands for computation with SO using spin-polarized input files. -C -C Writing the total charge below the lower limit of the energy window (variable "qbbot") - WRITE(ouctqmc,*) qbbot -C Writing the total number of electrons (valence band+semicore) (variable "elecn"). -C It is also the charge upto the Fermi level. - WRITE(ouctqmc,*) elecn -C -C ------------------------------------------ -C Description of all the included orbitals : -C ------------------------------------------ -C -C Definition of the number of included orbitals "norb" - WRITE(ouctqmc,'(i6)') norb -C Description of each orbital "iorb" - DO iorb=1,norb - IF (ifSO) THEN - WRITE(ouctqmc,'(4(i6,x))') orb(iorb)%atom, orb(iorb)%sort, - & orb(iorb)%l, 2*(2*orb(iorb)%l+1) - ELSE - WRITE(ouctqmc,'(4(i6,x))') orb(iorb)%atom, orb(iorb)%sort, - & orb(iorb)%l, 2*orb(iorb)%l+1 - ENDIF - ENDDO -C an orbital "iorb" is described by : -C - the associated atom -C - the corresponding atomic sort -C - the considered orbital number l -C - the size of the corresponding matrices : 2*l+1 without SO ; 2*(2*l+1) with SO -C -C ---------------------------------------- -C Description of the correlated orbitals : -C ---------------------------------------- -C -C Definition of the number of correlated orbitals "ncrorb" - WRITE(ouctqmc,'(i6)') ncrorb -C Description of each correlated orbital "icrorb" - DO icrorb=1,ncrorb - l=crorb(icrorb)%l - isrt=crorb(icrorb)%sort -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s-orbitals, the only irep possible is the matrix itself. - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrix is considered. -C The spin is not a good quantum number, so the whole representation is used. - WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, 0, - & 2, crorb(icrorb)%ifSOat, 1 - ELSE -C Without SO, only the rotation matrix in orbital space is necessary. - WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, 0, - & 1, crorb(icrorb)%ifSOat, 1 - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF(reptrans(l,isrt)%ifmixing) THEN -C In this case, the SO is necessary considered, spinor rotation matrices are used. - IF (crorb(icrorb)%ifsplit) THEN -C If only an irep is correlated - DO irep=1,reptrans(l,isrt)%nreps - IF (crorb(icrorb)%correp(irep)) THEN - WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, - & isrt, l, reptrans(l,isrt)%dreps(irep), - & crorb(icrorb)%ifSOat, irep - ENDIF - ENDDO - ELSE -C If no particular irep is correlated - WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, l, - & 2*(2*l+1), crorb(icrorb)%ifSOat, 1 - ENDIF -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrices are considered. -C The spin is not a good quantum number, so the whole representation is used. - WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, l, - & 2*(2*l+1), crorb(icrorb)%ifSOat, 1 - ELSE -C Without SO, only the rotation matrix in orbital space is necessary. - IF (crorb(icrorb)%ifsplit) THEN -C If only an irep is correlated - DO irep=1,reptrans(l,isrt)%nreps - IF (crorb(icrorb)%correp(irep)) THEN - WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, - & isrt, l, reptrans(l,isrt)%dreps(irep), - & crorb(icrorb)%ifSOat, irep - ENDIF - ENDDO - ELSE -C If no particular irep is correlated - WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, l, - & (2*l+1), crorb(icrorb)%ifSOat, 1 - END IF ! End of the ifsplit if-then-else - END IF ! End of the ifSO if-then-else - END IF ! End of the ifmixing if-then-else - END DO ! End of the icrorb loop -C an orbital "iorb" is described by : -C - the associated atom -C - the corresponding atomic sort -C - the considered orbital number l -C - the size of the "correlated" submatrix (can be the whole matrix) -C - the flag ifSOat which states that SO is considered for this orbital -C - the number of the irep -C -C ------------------------------------------------------------------------------------------------ -C Description of the global to local coordinates transformation Rloc for each correlated orbital : -C ------------------------------------------------------------------------------------------------ -C Description of each transformation Rloc - DO icrorb=1,ncrorb - l=crorb(icrorb)%l - isrt=crorb(icrorb)%sort - iatom=crorb(icrorb)%atom -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF(l==0) THEN -C For the s-orbitals, the only irep possible is the matrix itself. - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrix must be considered. - ALLOCATE(spinrot(1:2,1:2)) - spinrot(:,:)=0.d0 -C The spinor-rotation matrix is directly calculated from the Euler angles a,b and c. - IF (rotloc(iatom)%timeinv) THEN - factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 - spinrot(2,1)=EXP(CMPLX(0.d0,factor))* - & DCOS(rotloc(iatom)%b/2.d0) - spinrot(1,2)=-CONJG(spinrot(2,1)) -C Up/dn and Dn/up terms - factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 - spinrot(2,2)=-EXP(CMPLX(0.d0,factor))* - & DSIN(rotloc(iatom)%b/2.d0) - spinrot(1,1)=CONJG(spinrot(2,2)) - ELSE - factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 - spinrot(1,1)=EXP(CMPLX(0.d0,factor))* - & DCOS(rotloc(iatom)%b/2.d0) - spinrot(2,2)=CONJG(spinrot(1,1)) -C Up/dn and Dn/up terms - factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 - spinrot(1,2)=EXP(CMPLX(0.d0,factor))* - & DSIN(rotloc(iatom)%b/2.d0) - spinrot(2,1)=-CONJG(spinrot(1,2)) - ENDIF -C Printing the transformation informations - DO m=1,2 - WRITE(ouctqmc,*) REAL(spinrot(m,1:2)) - ENDDO - DO m=1,2 - WRITE(ouctqmc,*) AIMAG(spinrot(m,1:2)) - ENDDO - DEALLOCATE(spinrot) -C Without SO, only the rotation matrix in orbital space is necessary. - ELSE -C In this case, the Rloc matrix is merely identity. - WRITE(ouctqmc,*) 1.d0 - WRITE(ouctqmc,*) 0.d0 - ENDIF -C Printing the time inversion flag if the calculation is spin-polarized (ifSP=1) - IF (ifSP) THEN - timeinvflag=0 - IF (rotloc(iatom)%timeinv) timeinvflag=1 - WRITE(ouctqmc,'(i6)') timeinvflag - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. - IF(crorb(icrorb)%ifsplit) THEN -C If only an irep is correlated - ind1=1 - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO m=ind1,ind2 - WRITE(ouctqmc,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,ind1:ind2)) - ENDDO - DO m=ind1,ind2 - WRITE(ouctqmc,*)AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,ind1:ind2)) - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO - ENDIF -C Printing if the transformation included a time-reversal operation. - timeinvflag =0 - IF (rotloc(iatom)%timeinv) timeinvflag=1 - WRITE(ouctqmc,'(i6)') timeinvflag -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrices are considered. -C The spin is not a good quantum number, so the whole representation is used. - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO - ELSE -C The calculation is either spin-polarized without SO or paramagnetic. -C The spin is a good quantum number and irep are possible. - IF(crorb(icrorb)%ifsplit) THEN -C If only an irep is correlated - ind1=-l - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO m=ind1,ind2 - WRITE(ouctqmc,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,ind1:ind2)) - ENDDO - DO m=ind1,ind2 - WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,ind1:ind2)) - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated - DO m=-l,l - WRITE(ouctqmc,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,-l:l)) - ENDDO - DO m=-l,l - WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,-l:l)) - ENDDO - END IF ! End of the ifsplit if-then-else - END IF ! End of the ifSO if-then-else -C Printing if the transformation included a time-reversal operation. - IF (ifSP) THEN - timeinvflag =0 - IF (rotloc(iatom)%timeinv) timeinvflag=1 - WRITE(ouctqmc,'(i6)') timeinvflag - END IF - END IF ! End of the ifmixing if-then-else - END DO ! End of the icrorb loop -C for each correlated orbital icrorb, the transformation Rloc is described by : -C - the real part of the submatrix associated to "icrorb" -C - the imaginary part of the submatrix associated to "icrorb" -C - a flag which states if a time reversal operation is included in the transformation (if SP only ) -C -C ------------------------------------------------------------------------------------------------------------- -C Description of the transformation from complex harmonics to the basis associated to each correlated orbital : -C ------------------------------------------------------------------------------------------------------------- -C - DO icrorb=1,ncrorb - l=crorb(icrorb)%l - isrt=crorb(icrorb)%sort -C The transformation is printed only for the first (representative) atom of each sort. - IF (crorb(icrorb)%first) THEN -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s-orbitals, the only basis considered is the complex basis. - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, orbital+spin space is considered. - ALLOCATE(spinrot(1:2,1:2)) - spinrot(:,:)=0.d0 - spinrot(1,1)=1.d0 - spinrot(2,2)=1.d0 -C Printing the number of irep in the considered basis and the size of each irep -C in the considered basis (in this case, it's 1 and 2.) - WRITE(ouctqmc,*) 1, 2 -C Printing the transformation matrix - DO m=1,2 - WRITE(ouctqmc,*) REAL(spinrot(m,1:2)) - ENDDO - DO m=1,2 - WRITE(ouctqmc,*) AIMAG(spinrot(m,1:2)) - ENDDO -C - DEALLOCATE(spinrot) - ELSE -C Without SO, only the matrix in orbital space is necessary. -C Printing the number of irep in the considered basis and the size of each irep -C in the considered basis (in this case, it's 1 and 1.) - WRITE(ouctqmc,'(2(i6,x))') 1, 1 -C Printing the transformation matrix - WRITE(ouctqmc,*) 1.d0 - WRITE(ouctqmc,*) 0.d0 - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the SO is necessary considered, spinor rotation matrices are used. - IF (crorb(icrorb)%ifsplit) THEN - WRITE(ouctqmc,'(15(i6,x))') reptrans(l,isrt)%nreps, - & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) - ELSE - WRITE(ouctqmc,'(2(i6,x))') 1, 2*(2*l+1) - ENDIF - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) REAL(reptrans(l,isrt)% - & transmat(m,1:2*(2*l+1)) ) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) AIMAG(reptrans(l,isrt)% - & transmat(m,1:2*(2*l+1)) ) - ENDDO -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, orbital+spin space is considered. - ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) - spinrot(:,:)=0.d0 - spinrot(1:2*l+1,1:2*l+1)= - & reptrans(l,isrt)%transmat(-l:l,-l:l) - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - & reptrans(l,isrt)%transmat(-l:l,-l:l) -C Printing the number of irep in the considered basis and the size of each irep -C in the considered basis (in this case, it's 1 and 2*(2*l+1).) - WRITE(ouctqmc,*) 1, 2*(2*l+1) -C Printing the transformation matrix - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) REAL(spinrot(m,1:2*(2*l+1)) ) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) AIMAG(spinrot(m,1:2*(2*l+1)) ) - ENDDO -C - DEALLOCATE(spinrot) -C Without SO, only the rotation matrix in orbital space is necessary. - ELSE - IF (crorb(icrorb)%ifsplit) THEN - WRITE(ouctqmc,'(8(i6,x))') reptrans(l,isrt)%nreps, - & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) - ELSE - WRITE(ouctqmc,'(2(i6,x))') 1, 2*l+1 - ENDIF - DO m=-l,l - WRITE(ouctqmc,*) REAL(reptrans(l,isrt)% - & transmat(m,-l:l) ) - ENDDO - DO m=-l,l - WRITE(ouctqmc,*) AIMAG(reptrans(l,isrt)% - & transmat(m,-l:l) ) - END DO - END IF ! End of the ifSO if-then-else - END IF ! End of the ifmixing if-then-else - END IF ! End of the iffirst if-then-else - END DO ! End of the icrorb loop -C for each correlated orbital icrorb, the basis transformation is described by : -C - the number of irep in the new basis -C - the dimension of each irep in the new basis -C - the real part of the basis transformation -C - the imaginary part of the basis transformation -C -C ------------------------------------------------------------------------- -C Description of the number of bands in the energy window at each k_point : -C ------------------------------------------------------------------------- -C - DO is=1,ns -C If SO is considered, the number of up and dn bands are the same. - IF ((ifSP.AND.ifSO).and.(is.eq.2)) cycle -C Printing the number of included bands in the window for each k_point - DO ik=1,nk - WRITE(ouctqmc,'(i6)') - & ABS(kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1) - ENDDO - ENDDO -C -C ----------------------------------------------------------- -C Description of the projectors for the correlated orbitals : -C ----------------------------------------------------------- - DO ik=1,nk - DO icrorb=1,ncrorb - l=crorb(icrorb)%l - isrt=crorb(icrorb)%sort -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s-orbitals, the only irep possible is the matrix itself. -C if the calculation is spin-polarized, up and dn projectors are written the one above the other (orbital+spin-space of size 2) - DO is=1,ns - WRITE(ouctqmc,*) - & REAL(pr_crorb(icrorb,ik,is)%mat_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - DO is=1,ns - WRITE(ouctqmc,*) - & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. - IF(crorb(icrorb)%ifsplit) THEN -C If only 1 irep is correlated - ind1=1 - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO m=ind1,ind2 - WRITE(ouctqmc,*) - & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - DO m=ind1,ind2 - WRITE(ouctqmc,*) - & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) - & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ouctqmc,*) - & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) - ENDDO - ENDIF -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF ((.not.(ifSP.AND.ifSO)).AND.crorb(icrorb)%ifsplit) THEN -C If only 1 irep is correlated (case without SO) - ind1=-l - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO is=1,ns - DO m=ind1,ind2 - WRITE(ouctqmc,*) - & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - DO is=1,ns - DO m=ind1,ind2 - WRITE(ouctqmc,*) - & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated (case with and without SO) - DO is=1,ns - DO m=-l,l - WRITE(ouctqmc,*) - & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - DO is=1,ns - DO m=-l,l - WRITE(ouctqmc,*) - & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) - ENDDO - ENDDO - END IF ! End of the ifsplit if-then-else - END IF ! End of the ifmixing if-then-else - END DO ! End of the icrorb loop - END DO ! End of the ik loop -C for each k-point and each correlated orbital, the corresponding projector is described by : -C - the real part of the "correlated" submatrix -C - the imaginary part of the "correlated" submatrix -C -C ---------------------------------------------------------------------------- -C Description of the weight of each k_point for the simple point integration : -C ---------------------------------------------------------------------------- - DO ik=1,nk - WRITE(ouctqmc,*) kp(ik,1)%weight -C This is a geometrical factor independent of the spin value. - ENDDO -C -C ----------------------------------------------------- -C Description of the Hamiltonian H(k) at each k_point : -C ----------------------------------------------------- - DO is=1,ns - DO ik=1,nk -C If the calculation is spin-polarized with SO, the numbers for up and dn bands are the same. - IF ((ifSP.AND.ifSO).AND.(is.eq.2)) cycle - DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top - WRITE(ouctqmc,*) kp(ik,is)%eband(ib) - ENDDO - ENDDO - ENDDO -C for each spin value is and each k-point, -C - the energies of the band with spin is at point k -C -C -C ====================================== -C Writing the file case.symqmc : -C ====================================== -C - WRITE(buf,'(a)')'Writing the file case.symqmc...' - CALL printout(0) -C -C ---------------------------------------------------------- -C Description of the general informations about the system : -C ---------------------------------------------------------- - WRITE(ousymqmc,'(2(i6,x))') nsym, natom -C nysm is the total number of symmetries in the system -C natom is the total number of atom in the unit cell -C -C ------------------------------------------------------------------- -C Description of the permutation matrix associated to each symmetry : -C ------------------------------------------------------------------- - DO isym=1,nsym - WRITE(ousymqmc,'(100(i6,x))') srot(isym)%perm(1:natom) - ENDDO -C -C ------------------------------------------------------------ -C Description of the time-reversal property for each symmetry : -C ------------------------------------------------------------ - IF (ifSP) THEN - ALLOCATE(timeflag(nsym)) - timeflag=0 - DO isym=1,nsym - IF (srot(isym)%timeinv) timeflag(isym)= 1 - ENDDO - WRITE(ousymqmc,'(100(i6,x))') timeflag(1:nsym) - DEALLOCATE(timeflag) -C When the calculation is spin-polarized (with SO), a flag which states -C if a time reversal operation is included in the transformation isym is written. - ENDIF -C -C ----------------------------------------------------------------------------------------- -C Description of the representation matrices of each symmetry for each correlated orbital : -C ----------------------------------------------------------------------------------------- - DO isym=1,nsym - DO icrorb=1,ncrorb - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF(l==0) THEN -C For the s-orbitals, the only irep possible is the matrix itself. - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrix is considered. - ALLOCATE(spinrot(1:2,1:2)) - spinrot(:,:)=0.d0 - IF (srot(isym)%timeinv) THEN -C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, -C since the time-reversal operator is included in the definition of the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (g-a) if beta=Pi. -C Up/up and Dn/dn terms - spinrot(1,1)=EXP(CMPLX(0.d0,factor)) - spinrot(2,2)=CONJG(spinrot(1,1)) -C spinrot(1,1) = -exp(+i(alpha-gamma)/2) ; spinrot(2,2) = -exp(-i(alpha-gamma)/2) -C in good agreement with Wien conventions for the definition of this phase factor. - ELSE -C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, -C No time-reversal treatment was applied to the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (a+g) if beta=0. -C Up/up and Dn/dn terms - spinrot(1,1)=EXP(CMPLX(0.d0,factor)) - spinrot(2,2)=CONJG(spinrot(1,1)) -C the field phase is 2pi-(alpha+gamma) in this case. -C spinrot(1,1) = -exp(-i(alpha+gamma)/2) ; spinrot(2,2) = -exp(i(alpha-gamma)/2) -C in good agreement with Wien conventions for the definition of this phase factor. - END IF -C Printing the transformation informations - DO m=1,2 - WRITE(ousymqmc,*) REAL(spinrot(m,1:2)) - ENDDO - DO m=1,2 - WRITE(ousymqmc,*) AIMAG(spinrot(m,1:2)) - ENDDO -C - DEALLOCATE(spinrot) -C Without SO, only the rotation matrix in orbital space is necessary. - ELSE -C In this case, the Rloc matrix is merely identity. - WRITE(ousymqmc,*) 1.d0 - WRITE(ousymqmc,*) 0.d0 - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the SO is necessary considered, spinor rotation matrices are used. - IF(crorb(icrorb)%ifsplit) THEN -C If only an irep is correlated - ind1=1 - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO m=ind1,ind2 - WRITE(ousymqmc,*) REAL(srot(isym)% - & rotrep(l,isrt)%mat(m,ind1:ind2)) - ENDDO - DO m=ind1,ind2 - WRITE(ousymqmc,*)AIMAG(srot(isym)% - & rotrep(l,isrt)%mat(m,ind1:ind2)) - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated - DO m=1,2*(2*l+1) - WRITE(ousymqmc,*) REAL(srot(isym)% - & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ousymqmc,*) AIMAG(srot(isym)% - & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) - ENDDO - ENDIF -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF (ifSP.AND.ifSO) THEN -C If the calculation is spin-polarized with SO, spinor rotation matrices are considered. -C The spin is not a good quantum number, so the whole representation is used. - ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) - spinrot(:,:)=0.d0 - IF (srot(isym)%timeinv) THEN -C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, -C since the time-reversal operator is included in the definition of the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (g-a) in this case. -C Up/up block : - ephase=EXP(CMPLX(0.d0,factor)) -C As a result, ephase = -exp(i(alpha-gamma)/2) - spinrot(1:2*l+1,1:2*l+1)= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) -C Dn/dn block : - ephase=CONJG(ephase) -C Now, ephase = -exp(-i(alpha-gamma)/2) - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) - ELSE -C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, -C No time-reversal treatment was applied to the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (a+g) in this case. -C Up/up block : - ephase=EXP(CMPLX(0.d0,factor)) -C As a result, ephase = -exp(-i(alpha+gamma)/2) - spinrot(1:2*l+1,1:2*l+1)= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) -C Dn/dn block : - ephase=CONJG(ephase) -C Now, ephase = -exp(i(alpha+gamma)/2) - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) - END IF -C Printing the transformation informations - DO m=1,2*(2*l+1) - WRITE(ousymqmc,*) REAL(spinrot(m,1:2*(2*l+1)) ) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ousymqmc,*) AIMAG(spinrot(m,1:2*(2*l+1)) ) - ENDDO -C - DEALLOCATE(spinrot) -C In the other cases (spin-polarized without SO or paramagnetic), only the rotation matrix in orbital space is necessary. - ELSE - IF(crorb(icrorb)%ifsplit) THEN -C If only an irep is correlated - ind1=-l - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO m=ind1,ind2 - WRITE(ousymqmc,*) REAL(srot(isym)% - & rotrep(l,isrt)%mat(m,ind1:ind2)) - ENDDO - DO m=ind1,ind2 - WRITE(ousymqmc,*) AIMAG(srot(isym)% - & rotrep(l,isrt)%mat(m,ind1:ind2)) - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated - DO m=-l,l - WRITE(ousymqmc,*) REAL(srot(isym)% - & rotrep(l,isrt)%mat(m,-l:l)) - ENDDO - DO m=-l,l - WRITE(ousymqmc,*) AIMAG(srot(isym)% - & rotrep(l,isrt)%mat(m,-l:l)) - ENDDO - END IF ! End of the ifsplit if-then-else - END IF ! End of the ifSO if-then-else - END IF ! End of the ifmixing if-then-else - END DO ! End of the icrorb loop - END DO ! End of the isym loop -C for each symmetry and each correlated orbital icrorb, is described : -C - the real part of the submatrix associated to "isym" for the "icrorb" -C - the imaginary part of the submatrix associated to "isym" for the "icrorb" -C -C ----------------------------------------------------------------------- -C Description of the time reversal operator for each correlated orbital : -C ----------------------------------------------------------------------- -C This description occurs only if the computation is paramagnetic. (ifSP=0) - IF (.not.ifSP) THEN - DO icrorb=1,ncrorb - l=crorb(icrorb)%l - isrt=crorb(icrorb)%sort -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s-orbitals, the only basis considered is the complex basis. - WRITE(ousymqmc,*) 1.d0 - WRITE(ousymqmc,*) 0.d0 -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE -C Calculation of the time-reversal operator - ALLOCATE(time_op(-l:l,-l:l)) - time_op(:,:)=0.d0 - DO m=-l,l - time_op(m,m)=1.d0 - ENDDO -C time_op is Identity. - CALL timeinv_op(time_op,(2*l+1),l,isrt) -C time_op is now the time-reversal operator in the desired basis ({new_i}) -C - IF(crorb(icrorb)%ifsplit) THEN -C If only an irep is correlated - ind1=-l - DO irep=1,reptrans(l,isrt)%nreps - IF(crorb(icrorb)%correp(irep)) THEN - ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 - DO m=ind1,ind2 - WRITE(ousymqmc,*) REAL(time_op(m,ind1:ind2)) - ENDDO - DO m=ind1,ind2 - WRITE(ousymqmc,*) AIMAG(time_op(m,ind1:ind2)) - ENDDO - ENDIF - ind1=ind1+reptrans(l,isrt)%dreps(irep) - ENDDO - ELSE -C If no particular irep is correlated - DO m=-l,l - WRITE(ousymqmc,*) REAL(time_op(m,-l:l)) - ENDDO - DO m=-l,l - WRITE(ousymqmc,*) AIMAG(time_op(m,-l:l)) - ENDDO - END IF ! End of the ifsplit if-then-else - DEALLOCATE(time_op) - END IF ! End of the l if-then-else - END DO ! End of the icrorb loop - END IF ! End of the ifsp if-then-else -C for each correlated orbital icrorb, the time-reversal operator is described by : -C - its real part -C - its imaginary part -C -C -C =============================== -C Writing the file case.parproj : -C =============================== -C - WRITE(buf,'(a)')'Writing the file case.parproj...' - CALL printout(0) -C -C ---------------------------------------------------------------- -C Description of the size of the basis for each included orbital : -C ---------------------------------------------------------------- - DO iorb=1,norb - WRITE(oupartial,'(3(i6))') norm_radf(iorb)%n - ENDDO -C There is not more than 1 LO for each orbital (hence n < 4 ) -C -C The following descriptions are made for each included orbital. - DO iorb=1,norb - l=orb(iorb)%l - isrt=orb(iorb)%sort -C ------------------------------------ -C Description of the Theta projector : -C ------------------------------------ -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN - DO ik=1,nk - DO ir=1,norm_radf(iorb)%n - DO is=1,ns - WRITE(oupartial,*) - & REAL(pr_orb(iorb,ik,is)%matn_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - DO is=1,ns - WRITE(oupartial,*) - & AIMAG(pr_orb(iorb,ik,is)%matn_rep(1, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - ENDDO ! End of the ir loop - ENDDO ! End of the ik loop -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. - DO ik=1,nk - DO ir=1,norm_radf(iorb)%n - DO m=1,2*(2*l+1) - WRITE(oupartial,*) - & REAL(pr_orb(iorb,ik,1)%matn_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) - ENDDO - DO m=1,2*(2*l+1) - WRITE(oupartial,*) - & AIMAG(pr_orb(iorb,ik,1)%matn_rep(m, - & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) - ENDDO - ENDDO ! End of the ir loop - ENDDO ! End of the ik loop -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - DO ik=1,nk - DO ir=1,norm_radf(iorb)%n - DO is=1,ns - DO m=-l,l - WRITE(oupartial,*) - & REAL(pr_orb(iorb,ik,is)%matn_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - ENDDO ! End of the is loop - DO is=1,ns - DO m=-l,l - WRITE(oupartial,*) - & AIMAG(pr_orb(iorb,ik,is)%matn_rep(m, - & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) - ENDDO - ENDDO ! End of the is loop - ENDDO ! End of the ir loop - ENDDO ! End of the ik loop - ENDIF ! End of the ifmixing if-then-else -C for each included orbital, for each k-point and each |phi_j> elmt, -C the corresponding Thetaprojector is described by : -C - the real part of the matrix -C - the imaginary part of the matrix -C -C ------------------------------------------------------------------------------- -C Description of the density matrices below the lower limit e_bot of the window : -C ------------------------------------------------------------------------------- -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C With SO, the density matrix is printed for the complete spin+orbital subspace. -C (in this case, this means a matrix of size 2) - IF (ifSP.AND.ifSO) THEN - ALLOCATE(densprint(2,2)) - densprint(1,1)=densmat(1,iorb)%mat(1,1) - densprint(2,2)=densmat(2,iorb)%mat(1,1) - densprint(1,2)=densmat(3,iorb)%mat(1,1) - densprint(2,1)=densmat(4,iorb)%mat(1,1) - DO m=1,2 - WRITE(oupartial,*) REAL(densprint(m,1:2)) - ENDDO - DO m=1,2 - WRITE(oupartial,*) AIMAG(densprint(m,1:2)) - ENDDO - DEALLOCATE(densprint) -C In the other cases the density matrix is printed for each spin subspace independently. -C (in this case, this means two matrices of size 1) - ELSE - DO is=1,ns - WRITE(oupartial,*) REAL(densmat(is,iorb)%mat(1,1)) - ENDDO - DO is=1,ns - WRITE(oupartial,*) AIMAG(densmat(is,iorb)%mat(1,1)) - ENDDO - ENDIF ! End of the ifSO if-then-else -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. -C As a result, the density matrix is printed for the complete spin+orbital subspace. -C (this means a matrix of size 2*(2*l+1)) - DO m=1,2*(2*l+1) - WRITE(oupartial,*) - & REAL(densmat(1,iorb)%mat(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(oupartial,*) - & AIMAG(densmat(1,iorb)%mat(m,1:2*(2*l+1))) - ENDDO -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE -C With SO, the density matrix is printed for the complete spin+orbital subspace. -C (this means a matrix of size 2*(2*l+1)) - IF (ifSP.AND.ifSO) THEN - ALLOCATE(densprint(1:2*(2*l+1),1:2*(2*l+1))) - densprint(1:2*l+1,1:2*l+1)= - & densmat(1,iorb)%mat(-l:l,-l:l) - densprint(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - & densmat(2,iorb)%mat(-l:l,-l:l) - densprint(1:2*l+1,2*l+2:2*(2*l+1))= - & densmat(3,iorb)%mat(-l:l,-l:l) - densprint(2*l+2:2*(2*l+1),1:2*l+1)= - & densmat(4,iorb)%mat(-l:l,-l:l) - DO m=1,2*(2*l+1) - WRITE(oupartial,*) REAL(densprint(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(oupartial,*) AIMAG(densprint(m,1:2*(2*l+1))) - ENDDO - DEALLOCATE(densprint) -C In the other cases, the density matrix is printed for each spin subspace independently. -C (this means two matrices of size 2*l+1) - ELSE - DO is=1,ns - DO m=-l,l - WRITE(oupartial,*) - & REAL(densmat(is,iorb)%mat(m,-l:l)) - ENDDO - ENDDO - DO is=1,ns - DO m=-l,l - WRITE(oupartial,*) - & AIMAG(densmat(is,iorb)%mat(m,-l:l)) - ENDDO - ENDDO - ENDIF ! End of the ifSO if-then-else - ENDIF ! End of the ifmixing if-then-else -C for each included orbital, the corresponding density matrix is described by : -C - the real part of the matrix -C - the imaginary part of the matrix -C -C -------------------------------------------------------------------- -C Description of the global to local coordinates transformation Rloc : -C -------------------------------------------------------------------- -C Description of each transformation Rloc - iatom=orb(iorb)%atom -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF(l==0) THEN -C For the s-orbitals, the only irep possible is the matrix itself. - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrix must be considered. - ALLOCATE(spinrot(1:2,1:2)) - spinrot(:,:)=0.d0 -C The spinor-rotation matrix is directly calculated from the Euler angles a,b and c. - IF (rotloc(iatom)%timeinv) THEN - factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 - spinrot(2,1)=EXP(CMPLX(0.d0,factor))* - & DCOS(rotloc(iatom)%b/2.d0) - spinrot(1,2)=-CONJG(spinrot(2,1)) -C Up/dn and Dn/up terms - factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 - spinrot(2,2)=-EXP(CMPLX(0.d0,factor))* - & DSIN(rotloc(iatom)%b/2.d0) - spinrot(1,1)=CONJG(spinrot(2,2)) - ELSE - factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 - spinrot(1,1)=EXP(CMPLX(0.d0,factor))* - & DCOS(rotloc(iatom)%b/2.d0) - spinrot(2,2)=CONJG(spinrot(1,1)) -C Up/dn and Dn/up terms - factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 - spinrot(1,2)=EXP(CMPLX(0.d0,factor))* - & DSIN(rotloc(iatom)%b/2.d0) - spinrot(2,1)=-CONJG(spinrot(1,2)) - ENDIF -C Printing the transformation informations - DO m=1,2 - WRITE(oupartial,*) REAL(spinrot(m,1:2)) - ENDDO - DO m=1,2 - WRITE(oupartial,*) AIMAG(spinrot(m,1:2)) - ENDDO - DEALLOCATE(spinrot) -C Without SO, only the rotation matrix in orbital space is necessary. - ELSE -C In this case, the Rloc matrix is merely identity. - WRITE(oupartial,*) 1.d0 - WRITE(oupartial,*) 0.d0 - ENDIF -C Printing the time inversion flag if the calculation is spin-polarized (ifSP=1) - IF (ifSP) THEN - timeinvflag=0 - IF (rotloc(iatom)%timeinv) timeinvflag=1 - WRITE(oupartial,'(i6)') timeinvflag - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. - DO m=1,2*(2*l+1) - WRITE(oupartial,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(oupartial,*) AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO -C Printing if the transforamtion included a time-reversal operation. - timeinvflag =0 - IF (rotloc(iatom)%timeinv) timeinvflag=1 - WRITE(oupartial,'(i6)') timeinvflag -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrices are considered. -C The spin is not a good quantum number, so the whole representation is used. - DO m=1,2*(2*l+1) - WRITE(oupartial,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(oupartial,*) AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,1:2*(2*l+1))) - ENDDO - ELSE -C The calculation is either spin-polarized without SO or paramagnetic. -C The spin is a good quantum number and irep are possible. - DO m=-l,l - WRITE(oupartial,*) REAL(rotloc(iatom)% - & rotrep(l)%mat(m,-l:l)) - ENDDO - DO m=-l,l - WRITE(oupartial,*) AIMAG(rotloc(iatom)% - & rotrep(l)%mat(m,-l:l)) - ENDDO - END IF ! End of the ifSO if-then-else -C Printing if the transformation included a time-reversal operation. - IF (ifSP) THEN - timeinvflag =0 - IF (rotloc(iatom)%timeinv) timeinvflag=1 - WRITE(oupartial,'(i6)') timeinvflag - END IF - END IF ! End of the ifmixing if-then-else -C for each included orbital iorb, the transformation Rloc is described by : -C - the real part of the submatrix associated to "iorb" -C - the imaginary part of the submatrix associated to "iorb" -C - a flag which states if a time reversal operation is included in the transformation (if SP only ) -C - END DO ! End of the iorb loop -C -C -C ============================== -C Writing the file case.sympar : -C ============================== -C - WRITE(buf,'(a)')'Writing the file case.sympar...' - CALL printout(0) -C -C ---------------------------------------------------------- -C Description of the general informations about the system : -C ---------------------------------------------------------- - WRITE(ousympar,'(2(i6,x))') nsym, natom -C nysm is the total number of symmetries of the system -C natom is the total number of atom in the unit cell -C -C ------------------------------------------------------------------- -C Description of the permutation matrix associated to each symmetry : -C ------------------------------------------------------------------- - DO is=1,nsym - WRITE(ousympar,'(100(i6,x))') srot(is)%perm - ENDDO -C -C ------------------------------------------------------------ -C Description of the time-reversal property for each symmetry : -C ------------------------------------------------------------ - IF (ifSP) THEN - ALLOCATE(timeflag(nsym)) - timeflag=0 - DO isym=1,nsym - IF (srot(isym)%timeinv) timeflag(isym)= 1 - ENDDO - WRITE(ousympar,'(100(i6,x))') timeflag(1:nsym) - DEALLOCATE(timeflag) -C When the calculation is spin-polarized (with SO), a flag which states -C if a time reversal operation is included in the transformation isym is written. - ENDIF -C -C ------------------------------------------------------------------------------------------- -C Description of the representation matrices of each symmetry for all the included orbitals : -C ------------------------------------------------------------------------------------------- - DO isym=1,nsym - DO iorb=1,norb - isrt=orb(iorb)%sort - l=orb(iorb)%l -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF(l==0) THEN -C For the s-orbitals, the only irep possible is the matrix itself. - IF (ifSP.AND.ifSO) THEN -C If SO is taken into account, spinor rotation matrix is considered. - ALLOCATE(spinrot(1:2,1:2)) - spinrot(:,:)=0.d0 - IF (srot(isym)%timeinv) THEN -C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, -C since the time-reversal operator is included in the definition of the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (g-a) if beta=Pi. -C Up/up and Dn/dn terms - spinrot(1,1)=EXP(CMPLX(0.d0,factor)) - spinrot(2,2)=CONJG(spinrot(1,1)) -C spinrot(1,1) = -exp(i(alpha-gamma)/2) ; spinrot(2,2) = -exp(-i(alpha-gamma)/2) -C in good agreement with Wien conventions for the definition of this phase factor. - ELSE -C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, -C No time-reversal treatment was applied to the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (a+g) if beta=0. -C Up/up and Dn/dn terms - spinrot(1,1)=EXP(CMPLX(0.d0,factor)) - spinrot(2,2)=CONJG(spinrot(1,1)) -C spinrot(1,1) = -exp(-i(alpha+gamma)/2) ; spinrot(2,2) = -exp(i(alpha-gamma)/2) -C in good agreement with Wien conventions for the definition of this phase factor. - END IF -C Printing the transformation informations - DO m=1,2 - WRITE(ousympar,*) REAL(spinrot(m,1:2)) - ENDDO - DO m=1,2 - WRITE(ousympar,*) AIMAG(spinrot(m,1:2)) - ENDDO -C - DEALLOCATE(spinrot) -C Without SO, only the rotation matrix in orbital space is necessary. - ELSE -C In this case, the Rloc matrix is merely identity. - WRITE(ousympar,*) 1.d0 - WRITE(ousympar,*) 0.d0 - ENDIF -C -C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). -C --------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the SO is necessary considered, spinor rotation matrices are used. - DO m=1,2*(2*l+1) - WRITE(ousympar,*) REAL(srot(isym)% - & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ousympar,*) AIMAG(srot(isym)% - & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) - ENDDO -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE - IF (ifSP.AND.ifSO) THEN -C If the calculation is spin-polarized with SO, spinor rotation matrices are considered. -C The spin is not a good quantum number, so the whole representation is used. - ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) - spinrot(:,:)=0.d0 - IF (srot(isym)%timeinv) THEN -C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, -C since the time-reversal operator is included in the definition of the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (g-a) in this case. -C Up/up block : - ephase=EXP(CMPLX(0.d0,factor)) -C AS a result, ephase = -exp(i(alpha-gamma)/2) - spinrot(1:2*l+1,1:2*l+1)= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) -C Dn/dn block : - ephase=CONJG(ephase) -C Now, ephase = -exp(-i(alpha-gamma)/2) - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) - ELSE -C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, -C No time-reversal treatment was applied to the transformation. -C - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is 2pi-(alpha+gamma) in this case. -C Up/up block : - ephase=EXP(CMPLX(0.d0,factor)) -C As a result, ephase = -exp(-i(alpha+gamma)/2) - spinrot(1:2*l+1,1:2*l+1)= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) -C Dn/dn block : - ephase=CONJG(ephase) -C Now, ephase = -exp(i(alpha+gamma)/2) - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) - END IF -C Printing the transformation informations - DO m=1,2*(2*l+1) - WRITE(ousympar,*) REAL(spinrot(m,1:2*(2*l+1)) ) - ENDDO - DO m=1,2*(2*l+1) - WRITE(ousympar,*) AIMAG(spinrot(m,1:2*(2*l+1)) ) - ENDDO -C - DEALLOCATE(spinrot) -C In the other cases (spin-polarized without SO or paramagnetic), only the rotation matrix in orbital space is necessary. - ELSE - DO m=-l,l - WRITE(ousympar,*) REAL(srot(isym)% - & rotrep(l,isrt)%mat(m,-l:l)) - ENDDO - DO m=-l,l - WRITE(ousympar,*) AIMAG(srot(isym)% - & rotrep(l,isrt)%mat(m,-l:l)) - ENDDO - END IF ! End of the ifSO if-then-else - END IF ! End of the ifmixing if-then-else - END DO ! End of the iorb loop - END DO ! End of the isym loop -C for each symmetry and each included orbital iorb, is described : -C - the real part of the matrix associated to "isym" for the "iorb" -C - the imaginary part of the matrix associated to "isym" for the "iorb" -C -C --------------------------------------------------------------------- -C Description of the time reversal operator for each included orbital : -C --------------------------------------------------------------------- -C This description occurs only if the computation is paramagnetic (ifSP=0) - IF (.not.ifSP) THEN - DO iorb=1,norb - l=orb(iorb)%l - isrt=orb(iorb)%sort -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s-orbitals, the only basis considered is the complex basis. - WRITE(ousympar,*) 1.d0 - WRITE(ousympar,*) 0.d0 -C -C If the basis representation can be reduce to the up/up block (basis without "mixing"). -C -------------------------------------------------------------------------------------- - ELSE -C Calculation of the time-reversal operator - ALLOCATE(time_op(-l:l,-l:l)) - time_op(:,:)=0.d0 - DO m=-l,l - time_op(m,m)=1.d0 - ENDDO -C time_op is Identity. - CALL timeinv_op(time_op,(2*l+1),l,isrt) -C time_op is now the time-reversal operator in the desired basis ({new_i}) -C - DO m=-l,l - WRITE(ousympar,*) REAL(time_op(m,-l:l)) - ENDDO - DO m=-l,l - WRITE(ousympar,*) AIMAG(time_op(m,-l:l)) - ENDDO - DEALLOCATE(time_op) - END IF ! End of the l if-then-else - END DO ! End of the icrorb loop - END IF ! End of the ifsp if-then-else -C for each included orbital iorb, the time-reversal operator is described by : -C - its real part -C - its imaginary part -C - RETURN - END - - - diff --git a/fortran/dmftproj/read_k_list.f b/fortran/dmftproj/read_k_list.f deleted file mode 100644 index 4cda707..0000000 --- a/fortran/dmftproj/read_k_list.f +++ /dev/null @@ -1,98 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE read_k_list -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine reads the labels of high-symmetry points %% -C %% along the k-path chosen for plotting the k-resolved spectral %% -C %% function. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C --------------------------- - USE bands - USE file_names - IMPLICIT NONE - CHARACTER(len=100) :: buf - INTEGER :: ilab, pos, i -C -C ======================================================================== -C Determination of the total number of labels and the number of k-points : -C ======================================================================== - buf=' ' - nlab=0 - pos=0 -C nlab will count the number of labels met. -C pos will count the number of lines -C (which is also the number of k-points along the k-path) - DO WHILE (buf(1:3).NE.'END') - READ(iuklist,'(a)') buf - pos=pos+1 - IF(buf(1:1).NE.' ') THEN - nlab=nlab+1 - ENDIF - ENDDO -C pos is now the number of line of the file. -C nlab is the number of labels, includind the label 'END' -C -C nkband = number of k-points along the k-path. - nkband=pos-1 -C The label 'END' must not be taken into account - nlab=nlab-1 -C The last line of the file case.klist_band contains "END". -C So the while loop can have an end too. -C -C ============================= -C Determination of the labels : -C ============================= - ALLOCATE(labels(nlab)) -C The file case.klist_band is read again. - REWIND(iuklist) - ilab=0 - DO pos=1,nkband - READ(iuklist,'(a)') buf - IF(buf(1:1).NE.' ') THEN - ilab=ilab+1 - labels(ilab)%pos=pos -C labels(ilab)%pos is the number of the corresponding k-point - i=INDEX(buf,' ') -C determination of the size of buf -C (index is a function which finds the index of ' ' in buf) - labels(ilab)%kname=' ' - labels(ilab)%kname(1:i)=buf(1:i) -C labels(ilab)%kname is the corresponding label - ENDIF - ENDDO -C ====================================== -C Printing the labels read for testing : -C ====================================== - WRITE(*,*) nkband - WRITE(*,*)'nlab = ', nlab - DO i=1,nlab - WRITE(*,*) i, labels(i)%pos, labels(i)%kname - ENDDO -C - RETURN - END - diff --git a/fortran/dmftproj/readcomline.f b/fortran/dmftproj/readcomline.f deleted file mode 100644 index 60f0675..0000000 --- a/fortran/dmftproj/readcomline.f +++ /dev/null @@ -1,105 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE readcomline -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine reads and process the command line options %% -C %% (Only -so, -sp and -band are the possible ones). %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data - USE prnt - IMPLICIT NONE - CHARACTER(len=100) :: buf1 - CHARACTER(len=100), DIMENSION(:), ALLOCATABLE :: flags - INTEGER :: i1, iargc, iarg - LOGICAL :: ifError -C Process the command line : -C --------------------------- - iarg=iargc() - ALLOCATE(flags(iarg)) - ifSP=.FALSE. - ifSO=.FALSE. - ifBAND=.FALSE. - ifError=.FALSE. - DO i1=1,iarg - CALL getarg(i1,buf1) - READ(buf1,*)flags(i1) - flags(i1)=ADJUSTL(flags(i1)) - CALL makelowcase(flags(i1)) - SELECT CASE(flags(i1)(1:5)) - CASE('-sp ') - ifSP=.TRUE. - CASE('-so ') - ifSO=.TRUE. - CASE('-band') - ifBAND=.TRUE. - CASE DEFAULT - ifError=.TRUE. - EXIT - END SELECT - ENDDO -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if the options are not recognized. -C ------------------------- -C - IF (ifError) THEN - WRITE(6,'(a,a,a)')'Command line option: ',flags(i1)(1:5), - & ' is not recognized.' - WRITE(6,'(a)')'END OF THE PRGM' - STOP - ENDIF -C --------------------------------------------------------------------------------------- - DEALLOCATE(flags) -C - RETURN - END - - SUBROUTINE makelowcase(string) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine modifies the input string into low case %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - IMPLICIT NONE - CHARACTER*26 :: upperabc - CHARACTER*26 :: lowabc - CHARACTER* (*) string - INTEGER :: i,k - PARAMETER(upperabc='ABCDEFHGIJKLMNOPQRSTUVWXYZ') - PARAMETER(lowabc='abcdefhgijklmnopqrstuvwxyz') - DO i=1,len(string) - DO k=1,26 - IF(string(i:i)==upperabc(k:k)) string(i:i)=lowabc(k:k) - ENDDO - ENDDO - RETURN - END - - diff --git a/fortran/dmftproj/rot_dens.f b/fortran/dmftproj/rot_dens.f deleted file mode 100644 index 32e6261..0000000 --- a/fortran/dmftproj/rot_dens.f +++ /dev/null @@ -1,239 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE rotdens_mat(Dmat,orbit,norbit) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine applies to each density matrix in Dmat %% -C %% the transformation to go from the global coordinates to the %% -C %% local coordinates associated to the considered orbital. %% -C %% %% -C %% This version can be used for SO computations. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definition of the variables : -C ---------------------------- - USE common_data - USE projections - USE symm - USE reps - IMPLICIT NONE - INTEGER :: norbit - TYPE(matrix), DIMENSION(nsp,norbit) :: Dmat - COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: rot_dmat - COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: tmp_mat - COMPLEX(KIND=8):: ephase - REAL(KIND=8):: factor - TYPE(orbital), DIMENSION(norbit) :: orbit - INTEGER :: iatom, isrt, iorb, is, is1, l, i, m -C -C - DO iorb=1,norbit - l=orbit(iorb)%l - isrt=orbit(iorb)%sort - iatom=orbit(iorb)%atom -C - IF(ifSP.AND.ifSO) THEN -C In this case, the complete spinor rotation approach (matrices of size 2*(2*l+1) ) is used for rotloc. - IF (l==0) THEN -C ------------------------------------------------------------------------------------------------------------ -C For the s orbital, the spinor rotation matrix will be constructed directly from the Euler angles a,b and c : -C ------------------------------------------------------------------------------------------------------------ -C Up/dn and Dn/up terms - ALLOCATE(tmp_mat(1:2,1:2)) - ALLOCATE(rot_dmat(1:2,1:2)) - IF (rotloc(iatom)%timeinv) THEN - factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 - tmp_mat(2,1)=EXP(CMPLX(0.d0,factor))* - & DCOS(rotloc(iatom)%b/2.d0) - tmp_mat(1,2)=-CONJG(tmp_mat(2,1)) -C Up/dn and Dn/up terms - factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 - tmp_mat(2,2)=-EXP(CMPLX(0.d0,factor))* - & DSIN(rotloc(iatom)%b/2.d0) - tmp_mat(1,1)=CONJG(tmp_mat(2,2)) -C definition of the total density matrix - rot_dmat(1,1)=Dmat(1,iorb)%mat(1,1) - rot_dmat(2,2)=Dmat(2,iorb)%mat(1,1) - rot_dmat(1,2)=Dmat(3,iorb)%mat(1,1) - rot_dmat(2,1)=Dmat(4,iorb)%mat(1,1) -C going to the local basis - rot_dmat(1:2,1:2)=CONJG(MATMUl( - & rot_dmat(1:2,1:2),tmp_mat(1:2,1:2))) - rot_dmat(1:2,1:2)=MATMUl( - & TRANSPOSE(tmp_mat(1:2,1:2)), - & rot_dmat(1:2,1:2)) - ELSE - factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 - tmp_mat(1,1)=EXP(CMPLX(0.d0,factor))* - & DCOS(rotloc(iatom)%b/2.d0) - tmp_mat(2,2)=CONJG(tmp_mat(1,1)) -C Up/dn and Dn/up terms - factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 - tmp_mat(1,2)=EXP(CMPLX(0.d0,factor))* - & DSIN(rotloc(iatom)%b/2.d0) - tmp_mat(2,1)=-CONJG(tmp_mat(1,2)) -C definition of the total density matrix - rot_dmat(1,1)=Dmat(1,iorb)%mat(1,1) - rot_dmat(2,2)=Dmat(2,iorb)%mat(1,1) - rot_dmat(1,2)=Dmat(3,iorb)%mat(1,1) - rot_dmat(2,1)=Dmat(4,iorb)%mat(1,1) -C going to the local basis - rot_dmat(1:2,1:2)=MATMUl( - & TRANSPOSE(CONJG(tmp_mat(1:2,1:2))), - & rot_dmat(1:2,1:2)) - rot_dmat(1:2,1:2)=MATMUl( - & rot_dmat(1:2,1:2),tmp_mat(1:2,1:2)) - ENDIF - DEALLOCATE(tmp_mat) -C storing in Dmat - Dmat(1,iorb)%mat(1,1)=rot_dmat(1,1) - Dmat(2,iorb)%mat(1,1)=rot_dmat(2,2) - Dmat(3,iorb)%mat(1,1)=rot_dmat(1,2) - Dmat(4,iorb)%mat(1,1)=rot_dmat(2,1) - DEALLOCATE(rot_dmat) - ELSE -C ----------------------------------------------------------------------------------------------------- -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : -C ----------------------------------------------------------------------------------------------------- - IF (reptrans(l,isrt)%ifmixing) THEN -C We use the complete spin-space representation, so no trick on indices is necessary. -C -C Application of the operation inverse(Rloc).Dmat.(Rloc) : -C ------------------------------------------------------- - IF (rotloc(iatom)%timeinv) THEN -C In this case, the operators is antiunitary [ inverse(R)=transpose(R) ] - Dmat(1,iorb)%mat(:,:)=CONJG( - = MATMUL(Dmat(1,iorb)%mat(:,:), - & rotloc(iatom)%rotrep(l)%mat(:,:) )) - Dmat(1,iorb)%mat(:,:)= - = MATMUL(TRANSPOSE( rotloc(iatom)% - & rotrep(l)%mat(:,:) ),Dmat(1,iorb)%mat(:,:) ) -C Dmat_{local} = inverse(Rloc) Dmat_{global}* Rloc* -C Dmat_{local} = transpose(Rloc) Dmat_{global}* Rloc* - ELSE -C In this case, all the operators are unitary [ inverse(R)=transpose(conjugate(R)) ] - Dmat(1,iorb)%mat(:,:)= - = MATMUL(Dmat(1,iorb)%mat(:,:), - & rotloc(iatom)%rotrep(l)%mat(:,:) ) - Dmat(1,iorb)%mat(:,:)= - = MATMUL(TRANSPOSE(CONJG( rotloc(iatom)% - & rotrep(l)%mat(:,:) )),Dmat(1,iorb)%mat(:,:) ) -C Dmat_{local} = Dmat_{global} -C Dmat_{local} = inverse(Rloc) Dmat_{global} Rloc - ENDIF -C - ELSE -C ---------------------------------------------------------------------------------------------- -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : -C ---------------------------------------------------------------------------------------------- -C definition of the total density matrix - ALLOCATE(rot_dmat(1:2*(2*l+1),1:2*(2*l+1))) - rot_dmat(1:(2*l+1),1:(2*l+1))= - & Dmat(1,iorb)%mat(-l:l,-l:l) - rot_dmat(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - & Dmat(2,iorb)%mat(-l:l,-l:l) - rot_dmat(1:(2*l+1),2*l+2:2*(2*l+1))= - & Dmat(3,iorb)%mat(-l:l,-l:l) - rot_dmat(2*l+2:2*(2*l+1),1:(2*l+1))= - & Dmat(4,iorb)%mat(-l:l,-l:l) - IF (rotloc(iatom)%timeinv) THEN -C In this case, the operator is antiunitary [ inverse(R)=transpose(R) ] - rot_dmat(1:2*(2*l+1),1:2*(2*l+1))=CONJG( - = MATMUL(rot_dmat(1:2*(2*l+1),1:2*(2*l+1)), - & rotloc(iatom)%rotrep(l) - & %mat(1:2*(2*l+1),1:2*(2*l+1)) )) - rot_dmat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(TRANSPOSE( rotloc(iatom)% - & rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1)) ), - & rot_dmat(1:2*(2*l+1),1:2*(2*l+1)) ) -C Dmat_{local} = inverse(Rloc) Dmat_{global}* Rloc* -C Dmat_{local} = transpose(Rloc) Dmat_{global}* Rloc* - ELSE -C In this case, all the operators are unitary [ inverse(R)=transpose(conjugate(R)) ] - rot_dmat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(rot_dmat(1:2*(2*l+1),1:2*(2*l+1)), - & rotloc(iatom)%rotrep(l) - & %mat(1:2*(2*l+1),1:2*(2*l+1)) ) - rot_dmat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(TRANSPOSE(CONJG( rotloc(iatom)% - & rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1)) )), - & rot_dmat(1:2*(2*l+1),1:2*(2*l+1)) ) -C Dmat_{local} = Dmat_{global} -C Dmat_{local} = inverse(Rloc) Dmat_{global} Rloc - ENDIF -C storing in dmat again - Dmat(1,iorb)%mat(-l:l,-l:l)= - & rot_dmat(1:(2*l+1),1:(2*l+1)) - Dmat(2,iorb)%mat(-l:l,-l:l)= - & rot_dmat(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1)) - Dmat(3,iorb)%mat(-l:l,-l:l)= - & rot_dmat(1:(2*l+1),2*l+2:2*(2*l+1)) - Dmat(4,iorb)%mat(-l:l,-l:l)= - & rot_dmat(2*l+2:2*(2*l+1),1:(2*l+1)) - DEALLOCATE(rot_dmat) - ENDIF ! End of the if mixing if-then-else - ENDIF ! End of the if "l=0" if-then-else - ELSE -C ------------------------------------------------------------------------------ -C The s-orbitals are a particular case of a "non-mixing" basis and is invariant. -C ------------------------------------------------------------------------------ - IF(l==0) CYCLE -C ---------------------------------------------------------------------------------------------- -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : -C ---------------------------------------------------------------------------------------------- - ALLOCATE(rot_dmat(-l:l,-l:l)) - DO is=1,nsp - rot_dmat=0.d0 -C -C Application of the operation inverse(Rloc).Dmat.(Rloc) : -C ------------------------------------------------------- -C In this case, (either a paramagnetic calculation or a spin-polarized one -C but the symmetry operation does not change the magntization direction) -C all the operators are unitary [ inverse(R)=transpose(conjugate(R)) ] - rot_dmat(-l:l,-l:l)= - = MATMUL(Dmat(is,iorb)%mat(-l:l,-l:l), - & rotloc(iatom)%rotrep(l)%mat(-l:l,-l:l) ) - rot_dmat(-l:l,-l:l)= - = MATMUL(TRANSPOSE(CONJG( rotloc(iatom)% - & rotrep(l)%mat(-l:l,-l:l) )), - & rot_dmat(-l:l,-l:l) ) -C rotmat_{local} = rotmat_{global} -C rotmat_{local} = inverse(Rloc) rotmat_{global} Rloc -C -C Storing the new value in Dmat : -C ------------------------------- - Dmat(is,iorb)%mat(-l:l,-l:l)=rot_dmat(-l:l,-l:l) - ENDDO - DEALLOCATE(rot_dmat) -C - ENDIF ! End of the ifSO-ifSP if-then-else - ENDDO ! End of the iorb loop -C - RETURN - END - - - - - diff --git a/fortran/dmftproj/rot_projectmat.f b/fortran/dmftproj/rot_projectmat.f deleted file mode 100644 index df3294c..0000000 --- a/fortran/dmftproj/rot_projectmat.f +++ /dev/null @@ -1,72 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE rot_projectmat(mat,l,bottom,top,jatom,isrt) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine makes the transformation from local to global %% -C %% frame coordinates for the matrices mat in agreement with %% -C %% the atom j considered. %% -C %% %% -C %% mat SHOULD BE IN THE COMPLEX SPHERICAL HARMONICS BASIS. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE almblm_data, ONLY : nk - USE common_data - USE symm - IMPLICIT NONE - INTEGER,INTENT(IN) :: l, bottom, top, jatom, isrt - COMPLEX(KIND=8), DIMENSION(-l:l,bottom:top) :: mat - COMPLEX(KIND=8), DIMENSION(-l:l,bottom:top) :: mattmp - COMPLEX(KIND=8), DIMENSION(1:2*l+1,1:2*l+1) :: rot_dmat - INTEGER :: is, ik, isym, lm, lms, ind1, ind2, m -C - DO m=-l,l - mattmp(m,bottom:top)= mat(m,bottom:top) - END DO -C mat is the projector in the local frame (spherical harmonic basis). -C -C The subroutine lapw2 has actually made the computation in the local frame -C BUT with considering the up and the dn elements in the global frame (no rotation in spin-space), -C That's why we have to make the computation only in the spin-space to put entirely the matrix mat in the global frame. -C Moreover, no time-reversal symmetry should be taken into account, since the true "rotloc" matrix is considered in lapw2 (-alm). -C -C The transformation is thus simply achieved by performing the multiplication by rotloc = -C (use of the subroutine dmat) - rot_dmat=0.d0 - CALL dmat(l,rotloc(jatom)%a,rotloc(jatom)%b, - & rotloc(jatom)%g, - & REAL(rotloc(jatom)%iprop,KIND=8),rot_dmat,2*l+1) -C Performing the rotation - mattmp(-l:l,bottom:top)= - = MATMUL(rot_dmat(1:2*l+1,1:2*l+1), - & mattmp(-l:l,bottom:top)) -C The variable mattmp is then the projector in the global frame (spherical harmonic basis). -C The resulting matrix is stored in mat. - mat(-l:l,bottom:top)=mattmp(-l:l,bottom:top) -C - RETURN - END - diff --git a/fortran/dmftproj/set_ang_trans.f b/fortran/dmftproj/set_ang_trans.f deleted file mode 100644 index 361893e..0000000 --- a/fortran/dmftproj/set_ang_trans.f +++ /dev/null @@ -1,543 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE set_ang_trans -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets up the matrices for transformation between %% -C %% the default complex spherical harmonics used in Wien2k and an %% -C %% angular basis chosen, for each orbital of each atom. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data - USE file_names - USE reps - USE prnt - IMPLICIT NONE - CHARACTER(len=150) :: fullpath - CHARACTER(len=250) :: buf1 - CHARACTER(len=25) :: basis_file - CHARACTER(len=1) :: repsign - INTEGER, DIMENSION(2*(2*lmax+1)) :: degrep - REAL(KIND=8), DIMENSION(:), ALLOCATABLE :: rtrans,itrans - INTEGER :: m, l, m1, irep, isrt, ind, ind1, ind2 - COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: tempmat - LOGICAL :: flag -C -C - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - WRITE(buf,'(a)')'Basis representation for each sort.' - CALL printout(0) - CALL printout(0) -C ================================= -C Creation of the reptrans matrix : -C ================================= -C -C For the s-electrons : no transformation is necessary (it's always the scalar 1) - ALLOCATE(reptrans(1:lmax,1:nsort)) -C Definition of the size of reptrans (size lmax*nsort) -C Each element of this table is an "ang_bas" element, which will be defined below. - DO isrt=1,nsort -C ----------------------------------------------- -C Case of a representation in the complex basis : -C ----------------------------------------------- - IF (defbasis(isrt)%typebasis(1:7)=='complex') THEN - DO l=1,lmax - IF (lsort(l,isrt)==0) THEN -C The considered orbital is not included, all the fields are set up to default value. - reptrans(l,isrt)%nreps=1 - ALLOCATE(reptrans(l,isrt)%dreps(1)) - ALLOCATE(reptrans(l,isrt)%transmat(1,1)) - reptrans(l,isrt)%transmat=0d0 - reptrans(l,isrt)%dreps(1)=0 - reptrans(l,isrt)%ifmixing=.FALSE. - ELSE -C The considered orbital is included. - reptrans(l,isrt)%nreps=1 - ALLOCATE(reptrans(l,isrt)%dreps(1)) - ALLOCATE(reptrans(l,isrt)%transmat(-l:l,-l:l)) - reptrans(l,isrt)%transmat=0d0 - reptrans(l,isrt)%dreps(1)=2*l+1 - reptrans(l,isrt)%ifmixing=.FALSE. - DO m=-l,l - reptrans(l,isrt)%transmat(m,m)=1d0 - ENDDO -C In this case, the transformation matrix is just the Identity (hence 1 irep). -C Spin up and Spin down states are not mixed in the basis representation. - ENDIF - ENDDO -C --------------------------------------------- -C Case of a representation in the cubic basis : -C --------------------------------------------- - ELSEIF (defbasis(isrt)%typebasis(1:5)=='cubic') THEN - DO l=1,lmax - IF (lsort(l,isrt)==0) THEN -C The considered orbital is not included, all the fields are set up to default value. - reptrans(l,isrt)%nreps=1 - ALLOCATE(reptrans(l,isrt)%dreps(1)) - ALLOCATE(reptrans(l,isrt)%transmat(1,1)) - reptrans(l,isrt)%transmat=0d0 - reptrans(l,isrt)%dreps(1)=0 - reptrans(l,isrt)%ifmixing=.FALSE. - ELSE -C The considered orbital is included. -C The cubic basis is described in the format transpose(P) where P is the usual matrix -C of the eigenvectors of a matrix D ( D.P=Delta.P with Delta diagonal or P=). -C In other words, each line of the file describes the coefficient of the "new basis vector" -C in the basis { |l,-l,up>,...|l,l,up>,|l,-l,dn>,...|l,l,dn> }. -C The transformation matrices are stored in the directory SRC_templates, the variable "fullpath" -C must be updated if this prgm is copied. - ALLOCATE(reptrans(l,isrt)%transmat(-l:l,-l:l)) - ALLOCATE(rtrans(-l:l)) - ALLOCATE(itrans(-l:l)) -C write(*,*)fullpath - IF (l==1) CALL - & set_harm_file(fullpath,'case.cf_p_cubic') -C standard cubic representation of p electrons : px,py,pz - IF (l==2) CALL - & set_harm_file(fullpath,'case.cf_d_eg_t2g') -C standard cubic representation of d-electrons : dz2, dx2-y2, dxy, dxz,dyz (Wien-convention for the phase) - IF (l==3) CALL - & set_harm_file(fullpath,'case.cf_f_mm2') -C mm2 representation of the f electrons (standard definition with complex coefficients) -C -C Reading of the file - OPEN(iumatfile,file=fullpath,status='old') - ind=-l - irep=0 - m = -l - DO WHILE (m.le.l) - READ(iumatfile,'(a)')buf1 - READ(buf1(1:1),'(a)')repsign -C Get rid of comment lines first - IF (repsign.NE.'#') THEN - IF(repsign=='*') THEN -C Finding the different ireps in the new basis (a "*" means the end of an irep) - irep=irep+1 - degrep(irep)=m-ind+1 - ind=m+1 - ENDIF - READ(buf1(2:250),*)(rtrans(m1),itrans(m1),m1=-l,l) -C The line of the file is stored in the column of reptrans, which is temporarly "P". - reptrans(l,isrt)%transmat(-l:l,m)= - & CMPLX(rtrans(-l:l),itrans(-l:l)) - m = m + 1 - ENDIF - ENDDO - reptrans(l,isrt)%transmat(-l:l,-l:l)= - = TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l))) -C reptrans%transmat = inverse(P) = , the transformation matrix from complex basis to the cubic one. -C ( inverse(P) is the decomposition of the complex basis in the new basis...) - reptrans(l,isrt)%nreps=irep - ALLOCATE(reptrans(l,isrt)%dreps(irep)) - reptrans(l,isrt)%dreps(1:irep)=degrep(1:irep) - reptrans(l,isrt)%ifmixing=.FALSE. -C reptrans%nreps = the total number of ireps in the cubic basis -C reptrans%dreps = table of the size of the different ireps -C reptrans%ifmixing = .FALSE. because Spin up and Spin down states are not mixed in the basis representation. - CLOSE(iumatfile) - DEALLOCATE(rtrans) - DEALLOCATE(itrans) - ENDIF - ENDDO -C --------------------------------------------------------- -C Case of a representation defined in an added input file : -C --------------------------------------------------------- - ELSEIF (defbasis(isrt)%typebasis(1:8)=='fromfile') THEN - basis_file=defbasis(isrt)%sourcefile - OPEN(iumatfile,file=basis_file,status='old') - DO l=1,lmax - IF (lsort(l,isrt)==0) THEN -C The considered orbital is not included, all the fields are set up to default value. - reptrans(l,isrt)%nreps=1 - ALLOCATE(reptrans(l,isrt)%dreps(1)) - ALLOCATE(reptrans(l,isrt)%transmat(1,1)) - reptrans(l,isrt)%transmat=0d0 - reptrans(l,isrt)%dreps(1)=0 - ELSE -C The considered orbital is included. -C The new basis is described in the format transpose(P) where P is the usual matrix -C of the eigenvectors of a matrix D ( D.P=Delta.P with Delta diagonal or P=). -C In other words, each line of the file describes the coefficient of the "new basis vector" -C in the basis { |l,-l,up>,...|l,l,up>,|l,-l,dn>,...|l,l,dn> }. -C The transformation matrices are stored in the directory SRC_templates, the variable "fullpath" -C must be updated if this prgm is copied. - ind=1 - irep=0 - ALLOCATE(tempmat(1:2*(2*l+1),1:2*(2*l+1))) - ALLOCATE(rtrans(1:2*(2*l+1))) - ALLOCATE(itrans(1:2*(2*l+1))) -C -C Reading of the file - DO m=1,2*(2*l+1) - READ(iumatfile,'(a)')buf1 - READ(buf1(1:1),'(a)')repsign - IF(repsign=='*') THEN -C Finding the different ireps in the new basis (a "*" means the end of an irep) - irep=irep+1 - degrep(irep)=m-ind+1 - ind=m+1 - ENDIF - READ(buf1(2:250),*)(rtrans(m1),itrans(m1), - & m1=1,2*(2*l+1)) - tempmat(1:2*(2*l+1),m)= - = CMPLX(rtrans(1:2*(2*l+1)),itrans(1:2*(2*l+1))) -C The lines of the read matrix are stored in the column of tempmat, which is then P. - ENDDO -C -C Determination if the basis mixes Spin up and Spin down states - flag=.TRUE. - ind1=1 - ind2=1 -C The "do while" loop stops when flag=FALSE or i=2*(l+1) - DO WHILE (flag.AND.(ind1.lt.2*(l+1))) - flag=flag.AND. - & (tempmat((2*l+1)+ind1,(2*l+1)+ind2)==tempmat(ind1,ind2)) - flag=flag.AND.(tempmat((2*l+1)+ind1,ind2)==0.d0) - flag=flag.AND.(tempmat(ind1,(2*l+1)+ind2)==0.d0) - IF (ind2==(2*l+1)) THEN - ind1=ind1+1 - ind2=1 - ELSE - ind2=ind2+1 - END IF - ENDDO - IF (flag) THEN -C If flag=TRUE (then i=2*l+2), the tempmat matrix is block diagonal in spin with -C the condition block up/up = block down/down. -C The Spin up and Spin down states are not mixed in the basis representation. - reptrans(l,isrt)%ifmixing=.FALSE. -C reptrans%ifmixing = .FALSE. because Spin up and Spin down states are not mixed in the basis representation. -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if the basis description is not correct. -C ------------------------- -C - IF (SUM(degrep(1:irep/2)).ne.(2*l+1)) THEN - WRITE(buf,'(a,a,i2,a,i2,a)')'The basis description ', - & 'for isrt = ',isrt,' and l = ',l,' is not recognized.' - CALL printout(0) - WRITE(buf,'(a,a)')'Check the structure of the file ', - & defbasis(isrt)%sourcefile - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - END IF -C --------------------------------------------------------------------------------------- -C - ALLOCATE(reptrans(l,isrt)%transmat(-l:l,-l:l)) - reptrans(l,isrt)%transmat(-l:l,-l:l)= - = tempmat(1:(2*l+1),1:(2*l+1)) - reptrans(l,isrt)%transmat(-l:l,-l:l)= - = TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l))) -C The up/up block is enough to describe the transformation (as for cubic or complex bases) -C reptrans%transmat = inverse(P) = -C inverse(P) is indeed the decomposition of the complex basis in the new basis. - reptrans(l,isrt)%nreps=irep/2 - ALLOCATE(reptrans(l,isrt)%dreps(reptrans(l,isrt)%nreps)) - reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps)= - = degrep(1:reptrans(l,isrt)%nreps) -C reptrans%nreps = the number of ireps in the desired basis for up spin -C reptrans%dreps = table of the size of the different ireps for up spin - ELSE -C If flag=FALSE, either the tempmat matrix either mixes Spin up and Spin down states -C or the representation basis for Spin up and Spin down states differ. -C In this case, it is not possible to reduce the description only to the up/up block. -C The whole tempmat matrix is necessary. -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if the basis description is not correct. -C ------------------------- -C - IF (SUM(degrep(1:irep)).ne.(2*(2*l+1))) THEN - WRITE(buf,'(a,a,i2,a,i2,a)')'The basis description ', - & 'for isrt = ',isrt,' and l = ',l,' is not recognized.' - CALL printout(0) - WRITE(buf,'(a,a)')'Check the structure of the file ', - & defbasis(isrt)%sourcefile - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - END IF -C --------------------------------------------------------------------------------------- -C - reptrans(l,isrt)%ifmixing=.TRUE. -C reptrans%ifmixing = .TRUE. because Spin up and Spin down states are mixed in the basis representation. - ALLOCATE(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1))) - reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))= - = tempmat(1:2*(2*l+1),1:2*(2*l+1)) - reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))= - = TRANSPOSE(CONJG(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1)))) -C In this case, reptrans%transmat is a square matrix which ranges from 1 to 2*(2*l+1). -C reptrans%transmat = inverse(P) = -C inverse(P) is indeed the decomposition of the complex basis in the new basis. - reptrans(l,isrt)%nreps=irep - ALLOCATE(reptrans(l,isrt)%dreps(irep)) - reptrans(l,isrt)%dreps(1:irep)=degrep(1:irep) -C reptrans%nreps = the total number of ireps in the desired basis -C reptrans%dreps = table of the size of the different ireps -C -C Restriction for simplicity in the following (and for physical reasons) : -C a basis with ifmixing=.TRUE. is allowed only if the computation includes SO. - IF (.not.ifSO) THEN - WRITE(buf,'(a,a,i2,a,i2,a)')'The basis description ', - & 'for isrt = ',isrt,' and l = ',l, - & ' mixes up and down states.' - CALL printout(0) - WRITE(buf,'(a,a)')'This option can not ', - & 'be used in a computation without Spin-Orbit.' - CALL printout(0) - WRITE(buf,'(a,a)')'Modify the structure of the file ', - & defbasis(isrt)%sourcefile - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - END IF - END IF - DEALLOCATE(tempmat) - DEALLOCATE(rtrans) - DEALLOCATE(itrans) - ENDIF - ENDDO - CLOSE(iumatfile) -C ---------------------------------------------- -C Case of a wrong definition in the input file : -C ---------------------------------------------- - ELSE -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if the file has not the expected structure. -C ------------------------- -C - WRITE(buf,'(a,i2,a)')'The basis description for isrt = ', - & isrt,' is not recognized.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C --------------------------------------------------------------------------------------- -C - ENDDO -C -C -C =============================================== -C Printing the basis representation information : -C =============================================== -C - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - CALL printout(0) - WRITE(buf,'(a)')'-------------------------------------' - CALL printout(0) - WRITE(buf,'(a,i2,a)')'For the sort ',isrt,' :' - CALL printout(0) - IF (defbasis(isrt)%typebasis(1:7)=='complex') THEN -C ----------------------------------------------- -C Case of a representation in the complex basis : -C ----------------------------------------------- - WRITE(buf,'(a,i2,a)')'The atomic sort', isrt, - & ' is studied in the complex basis representation.' - CALL printout(0) - CALL printout(0) - ELSEIF (defbasis(isrt)%typebasis(1:5)=='cubic') THEN -C --------------------------------------------- -C Case of a representation in the cubic basis : -C --------------------------------------------- - WRITE(buf,'(a,i2,a)')'The atomic sort', isrt, - & ' is studied in the cubic basis representation.' - CALL printout(0) - CALL printout(0) - DO l=0,lmax -C The considered orbital is not included. - IF (lsort(l,isrt)==0) cycle -C Case of the s-electrons - IF (l==0) THEN - WRITE(buf,'(a,a,(F12.6))')'The basis for s-orbital ', - & 'is still',1.d0 - CALL printout(0) - ELSE -C Case of the other orbitals - WRITE(buf,'(a,i2,a,a,a)')'The basis for orbital l=',l, - & ' has the following properties :' - CALL printout(0) - WRITE(buf,'(a,i2)')' - number of ireps : ', - & reptrans(l,isrt)%nreps - CALL printout(0) - WRITE(buf,'(a,14(i2,x))')' - degree of each ireps : ', - & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) - CALL printout(0) - WRITE(buf,'(a,a,a)')'The transformation matrix is block', - & ' diagonal in the spin-space. The up/up and down/down', - & ' blocks are the same and defined as :' - CALL printout(0) -C The transformation matrix "P = " is displayed. - DO m=-l,l - WRITE(buf,'(7(2F12.6),x)') - & CONJG(reptrans(l,isrt)%transmat(-l:l,m)) - CALL printout(0) - ENDDO - CALL printout(0) - ENDIF - ENDDO - CALL printout(0) - ELSE -C --------------------------------------------------------- -C Case of a representation defined in an added input file : -C --------------------------------------------------------- - WRITE(buf,'(a,i2,a,a,a)')'The atomic sort', isrt, - & ' is studied in the basis representation', - & ' defined in the file ', - & defbasis(isrt)%sourcefile - CALL printout(0) - CALL printout(0) - DO l=0,lmax -C The considered orbital is not included. - IF (lsort(l,isrt)==0) cycle -C Case of the s-electrons - IF (l==0) THEN - WRITE(buf,'(a,a,(F12.6))')'The basis for s-orbital ', - & 'is still',1.d0 - CALL printout(0) - CALL printout(0) - ELSE -C Case of the other orbitals - WRITE(buf,'(a,i2,a)')'The basis for orbital l=',l, - & ' has the following properties :' - CALL printout(0) - WRITE(buf,'(a,i2)')' - number of ireps : ', - & reptrans(l,isrt)%nreps - CALL printout(0) - WRITE(buf,'(a,14(i2,x))')' - degree of each ireps : ', - & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) - CALL printout(0) - IF (reptrans(l,isrt)%ifmixing) THEN -C If the whole matrix description is necessary. - WRITE(buf,'(a,a)')'The transformation matrix mixes', - & ' up and down states in the spin-space' - CALL printout(0) - WRITE(buf,'(a,a)') ' and is defined as : ', - & '[ block 1 | block 2 ] with' - CALL printout(0) - WRITE(buf,'(a,a)') ' ', - & '[ block 3 | block 4 ]' - CALL printout(0) -C The transformation matrix "P = " is displayed. - WRITE(buf,'(a,i2,a)') 'For the block 1 :' - CALL printout(0) - DO m=1,2*l+1 - WRITE(buf,'(7(2F12.6),x)') - & CONJG(reptrans(l,isrt)%transmat(1:(2*l+1),m)) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') 'For the block 2 :' - CALL printout(0) - DO m=1,2*l+1 - WRITE(buf,'(7(2F12.6),x)') - & CONJG(reptrans(l,isrt)%transmat(2*l+2:2*(2*l+1),m)) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') 'For the block 3 :' - CALL printout(0) - DO m=2*l+2,2*(2*l+1) - WRITE(buf,'(7(2F12.6),x)') - & CONJG(reptrans(l,isrt)%transmat(1:(2*l+1),m)) - CALL printout(0) - ENDDO - WRITE(buf,'(a,i2,a)') 'For the block 4 :' - CALL printout(0) - DO m=2*l+2,2*(2*l+1) - WRITE(buf,'(7(2F12.6),x)') - & CONJG(reptrans(l,isrt)% - & transmat(2*l+2:2*(2*l+1),m)) - CALL printout(0) - ENDDO - ELSE -C If the matrix description can be reduced to its up/up block. - WRITE(buf,'(a,a,a)')'The transformation matrix is block', - & ' diagonal in the spin-space. The up/up and down/down', - & ' blocks are the same and defined as :' - CALL printout(0) -C The transformation matrix "P = " is displayed. - DO m=-l,l - WRITE(buf,'(7(2F12.6),x)') - & CONJG(reptrans(l,isrt)%transmat(-l:l,m)) - CALL printout(0) - ENDDO - ENDIF ! End of the ifmixing if-then-else - CALL printout(0) - ENDIF ! End of the l if-then-else - ENDDO ! End of the l loop - CALL printout(0) - ENDIF ! End of the basis description if-then-else - ENDDO ! End of the isrt loop -C - RETURN - END - - - SUBROUTINE set_harm_file(fullpath,filename) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets the fullpath variable %% -C %% Be careful, wien_path is defined in modules.f !!! %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data, ONLY : wien_path - USE prnt - IMPLICIT NONE - CHARACTER(len=*) :: filename, fullpath - CHARACTER(len=*), PARAMETER :: dir='SRC_templates' - INTEGER :: i1, i2, i, i3 -C - i1=LEN_TRIM(wien_path) - i2=LEN(dir) - i3=LEN(filename) - i=i1+i2+i3+2 - IF(LEN(fullpath) < i) THEN - WRITE(buf,'(a)') - & 'Characters required for the basis transformation ', - & ' filename is too long.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - STOP - ENDIF - fullpath=' ' - fullpath(1:i)=wien_path(1:i1)//'/'//dir//'/'//filename(1:i3) - END SUBROUTINE set_harm_file - - - diff --git a/fortran/dmftproj/set_projections.f b/fortran/dmftproj/set_projections.f deleted file mode 100644 index e1c46a7..0000000 --- a/fortran/dmftproj/set_projections.f +++ /dev/null @@ -1,749 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE set_projections(e1,e2) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets up the projection matrices in the energy %% -C %% window [e1,e2]. If proj_mode is 1 or 2 then e1 and e2 are not %% -C %% energies, but directly used as band indices. %% -C %% Two types of projection can be defined : %% -C %% - The projectors for the correlated orbital %% -C %% only. (orb = iatom,is,m) %% -C %% (They are stored in the table pr_crorb) %% -C %% - The Theta projectors for all the orbitals %% -C %% (They are stored in the table pr_orb) %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- -C - USE almblm_data - USE common_data - USE prnt - USE projections - USE reps - USE symm - IMPLICIT NONE -C - REAL(KIND=8) :: e1, e2 - INTEGER :: iorb, icrorb, ik, is, ib, m, l, lm, nbbot, nbtop - INTEGER :: isrt, n, ilo, iatom, i, imu, jatom, jorb,isym, jcrorb - LOGICAL :: included,param - COMPLEX(KIND=8), DIMENSION(:), ALLOCATABLE :: coeff - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_mat - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_matbis - COMPLEX(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: tmp_matn -C -C -C - WRITE(buf,'(a)')'Creation of the projectors...' - CALL printout(0) -C -C -C ====================================================================== -C Selection of the bands which lie in the chosen energy window [e1;e2] -C or if proj_mode = [1,2] e1 and e2 are directly used as band indices: -C ====================================================================== -C - - IF(proj_mode.gt.0) THEN -C The same number of bands are included at each k-point - kp(:,:)%included=.TRUE. -C Use directly e1 and e2 as band indices. Set to nbmin or -C nbmax if too small or too large - DO is=1,ns - DO ik=1,nk - IF(e1 > kp(ik,is)%nbmin) THEN - kp(ik,is)%nb_bot=INT(e1) - ELSE - kp(ik,is)%nb_bot=kp(ik,is)%nbmin - ENDIF - IF(e2 < kp(ik,is)%nbmax) THEN - kp(ik,is)%nb_top=INT(e2) - ELSE - kp(ik,is)%nb_top=kp(ik,is)%nbmax - ENDIF - ENDDO - ENDDO - ELSE - kp(:,:)%included=.FALSE. -C the field kp%included = boolean which is .TRUE. when there is at least one band -C at this k-point whose energy eignevalue is in the energy window. - DO is=1,ns - DO ik=1,nk - included=.FALSE. - DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax - IF(.NOT.included.AND.kp(ik,is)%eband(ib) > e1.AND. - & kp(ik,is)%eband(ib).LE.e2) THEN -C If the energy eigenvalue E of the band ib at the k-point ik is such that e1 < E =< e2, -C then all the band with ib1>ib must be "included" in the computation and kp%nb_bot is initialized at the value ib. - included=.TRUE. - kp(ik,is)%nb_bot=ib - ELSEIF(included.AND.kp(ik,is)%eband(ib) > e2) THEN -C If the energy eigenvalue E of the current band ib at the k-point ik is such that E > e2 and all the previous -C band are "included", then the field kp%included = .TRUE. and kp%nb_top = ib-1 (the index of the previous band) - kp(ik,is)%nb_top=ib-1 - kp(ik,is)%included=.TRUE. - EXIT -C The loop on the band ib is stopped, since all the bands after ib have an energy > that of ib. - ELSEIF(ib==kp(ik,is)%nbmax.AND.kp(ik,is)%eband(ib) - & > e1.AND.kp(ik,is)%eband(ib).LE.e2) THEN -C If the energy eigenvalue E of the last band ib=kp%nbmax at the k-point ik is such that e1 < E =< e2 and all the -C previous bands are "included", then the band ib must be "included" and kp%nb_bot is initialized at the value kp%nbmax. - kp(ik,is)%nb_top=ib - kp(ik,is)%included=.TRUE. - ENDIF -C If the eigenvalues of the bands at the k-point ik are < e1 and included=.FALSE. -C of if the eigenvalues of the bands at the k-point ik are in the energy window [e1,e2] and included=.TRUE., -C nothing is done... - ENDDO ! End of the ib loop -C If all the eigenvalues of the bands at the k-point ik are not in the window, -C then kp%included remains at the value .FALSE. and the field kp%nb_top and kp%nb_bot are set to 0 - IF (.not.kp(ik,is)%included) THEN - kp(ik,is)%nb_bot=0 - kp(ik,is)%nb_top=0 - ENDIF - ENDDO ! End of the ik loop - ENDDO ! End of the is loop - ENDIF -C --------------------------------------------------------------------------------------- -C Checking of the input files if spin-polarized inputs and SO is taken into account: -C There should not be any difference between up and dn limits for each k-point. -C Printing a Warning if this is not the case. -C ------------------- -C - IF (ifSP.AND.ifSO) THEN - param=.TRUE. - DO ik=1,nk - param=param.AND.(kp(ik,1)%included.eqv.kp(ik,2)%included) - param=param.AND.(kp(ik,1)%nb_bot==kp(ik,2)%nb_bot) - param=param.AND.(kp(ik,1)%nb_top==kp(ik,2)%nb_top) - IF (.not.param) EXIT -C For a valid compoutation, the same k-points must be included for up and dn states, -C and the upper and lower limits must be the same in both case. - ENDDO - IF (.not.param) THEN - WRITE(buf,'(a,a)')'A Spin-orbit computation for this', - & ' compound is not possible with these input files.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF - ENDIF -C --------------------------------------------------------------------------------------- -C -C -C ================================================================== -C Orthonormalization of the radial wave functions for each orbital : -C ================================================================== -C -C This step is essential for setting the Theta projectors. - IF(.NOT.ALLOCATED(norm_radf)) THEN - ALLOCATE(norm_radf(norb)) -C norm_radf is a table of "ortfunc" elements, its size ranges from 1 to norb. - DO iorb=1,norb - l=orb(iorb)%l - isrt=orb(iorb)%sort - norm_radf(iorb)%n=nLO(l,isrt)+2 - n=norm_radf(iorb)%n - ALLOCATE(norm_radf(iorb)%s12(n,n,ns)) -C norm_radf%n = size of the matrix s12 -C norm_radf%s12 = matrix of size n*n (one for spin up, one for spin down, if necessary) - DO is=1,ns - norm_radf(iorb)%s12(1:n,1:n,is)=0d0 - norm_radf(iorb)%s12(1,1,is)=1d0 - norm_radf(iorb)%s12(2,2,is)=u_dot_norm(l,isrt,is) -C Initialization of the matrix norm_radf%s12 for each orbital (l,isrt). -C We remind tha it is assumed that nLO has the value 0 or 1 only !! - DO ilo=1,nLO(l,isrt) - norm_radf(iorb)%s12(2+ilo,2+ilo,is)=1d0 - norm_radf(iorb)%s12(2+ilo,1,is)= - = ovl_LO_u(ilo,l,isrt,is) - norm_radf(iorb)%s12(1,2+ilo,is)= - = ovl_LO_u(ilo,l,isrt,is) - norm_radf(iorb)%s12(2+ilo,2,is)= - = ovl_LO_udot(ilo,l,isrt,is) - norm_radf(iorb)%s12(2,2+ilo,is)= - = ovl_LO_udot(ilo,l,isrt,is) - ENDDO -C Computation of the square root of norm_radf: - CALL orthogonal_r(norm_radf(iorb)% - & s12(1:n,1:n,is),n,.FALSE.) -C the field norm_radf%s12 is finally the C matrix described in the tutorial (or in equation (3.63) in my thesis) - ENDDO - ENDDO - ENDIF -C -C ===================================== -C Creation of the projection matrices : -C ===================================== -C - IF(.NOT.ALLOCATED(pr_orb)) THEN - ALLOCATE(pr_crorb(ncrorb,nk,ns)) - ALLOCATE(pr_orb(norb,nk,ns)) - ENDIF -C pr_crorb = table of "proj_mat" elements for the correlated orbitals (size from 1 to ncrorb, from 1 to nk, from 1 to ns) -C pr_orb = table of "proj_mat_n" elements for all the orbitals (size from 1 to norb, from 1 to nk, from 1 to ns) - DO is=1,ns - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE -C ------------------------------------------------ -C Wannier Projectors for the correlated orbitals : -C ------------------------------------------------ - DO icrorb=1,ncrorb - l=crorb(icrorb)%l - iatom=crorb(icrorb)%atom - isrt=crorb(icrorb)%sort -C Case of l=0 : -C ------------- - IF (l==0) THEN - IF(ALLOCATED(pr_crorb(icrorb,ik,is)%mat)) THEN - DEALLOCATE(pr_crorb(icrorb,ik,is)%mat) - ENDIF - ALLOCATE(pr_crorb(icrorb,ik,is)% - % mat(1,kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) -C pr_crorb%mat = the projection matrix with 1 line and (nb_top-nb_bot) columns - DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top - pr_crorb(icrorb,ik,is)%mat(1,ib)= - = kp(ik,is)%Alm(1,iatom,ib) - DO ilo=1,nLO(l,isrt) - pr_crorb(icrorb,ik,is)%mat(1,ib)= - = pr_crorb(icrorb,ik,is)%mat(1,ib)+ - + kp(ik,is)%Clm(ilo,1,iatom,ib)* - * ovl_LO_u(ilo,l,isrt,is) - ENDDO ! End of the ilo loop - ENDDO ! End of the ib loop -C prcrorb(icrorb,ik,is)%mat(1,ib)= = Alm+Clm*ovl_LO_u -C -C Case of any other l : -C --------------------- - ELSE - lm=l*l -C Since the correlated orbital is the l orbital, the elements range from l*l+1 to (l+1)^2 -C the sum from 0 to (l-1) of m (from -l to l) is l^2. - IF(ALLOCATED(pr_crorb(icrorb,ik,is)%mat)) THEN - DEALLOCATE(pr_crorb(icrorb,ik,is)%mat) - ENDIF - ALLOCATE(pr_crorb(icrorb,ik,is)% - % mat(-l:l,kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) -C pr_crorb%mat = the projection matrix with (2*l+1) lines and (nb_top-nb_bot) columns - DO m=-l,l - lm=lm+1 - DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top - pr_crorb(icrorb,ik,is)%mat(m,ib)= - = kp(ik,is)%Alm(lm,iatom,ib) - DO ilo=1,nLO(l,isrt) - pr_crorb(icrorb,ik,is)%mat(m,ib)= - = pr_crorb(icrorb,ik,is)%mat(m,ib)+ - + kp(ik,is)%Clm(ilo,lm,iatom,ib)* - * ovl_LO_u(ilo,l,isrt,is) - ENDDO ! End of the ilo loop - ENDDO ! End of the ib loop - ENDDO ! End of the m loop -C prcrorb(icrorb,ik,is)%mat(m,ib)= = Alm+Clm*ovl_LO_u - ENDIF ! End of the if l=0 if-then-else - ENDDO ! End of the icrorb loop -C -C --------------------------------------- -C Theta Projectors for all the orbitals : -C --------------------------------------- - DO iorb=1,norb - l=orb(iorb)%l - n=norm_radf(iorb)%n - iatom=orb(iorb)%atom -C Case of l=0 : -C ------------- - IF (l==0) THEN - IF(ALLOCATED(pr_orb(iorb,ik,is)%matn)) THEN - DEALLOCATE(pr_orb(iorb,ik,is)%matn) - ENDIF - ALLOCATE(pr_orb(iorb,ik,is)% - % matn(1,kp(ik,is)%nb_bot:kp(ik,is)%nb_top,n)) - ALLOCATE(coeff(1:n)) -C pr_orb%matn = the projection matrix with 1 line and (nb_top-nb_bot) columns for the n (size of s12) coefficients -C coeff = table of size n which will contain the decomposition of the Bloch state |psi_ik,ib,is> -C as in equation 22 of the tutorial (Alm, Blm, and Clm ) - DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top - coeff(1)=kp(ik,is)%Alm(1,iatom,ib) - coeff(2)=kp(ik,is)%Blm(1,iatom,ib) - coeff(3:n)=kp(ik,is)%Clm(1:n-2,1,iatom,ib) - coeff=MATMUL(coeff,norm_radf(iorb)%s12(1:n,1:n,is)) -C coeff = coefficients c_(j,lm) of the decomposition of the state |psi> in the orthogonalized basis |phi_j> -C as defined in the tutorial (equation 25) - pr_orb(iorb,ik,is)%matn(1,ib,1:n)=coeff(1:n) - ENDDO - DEALLOCATE(coeff) -C pr_orb(iorb,ik,is)%matn(m,ib,1:n) is then the Theta projector as defined in equation 26 of the tutorial. -C -C Case of any other l : -C --------------------- - ELSE - lm=l*l -C As the orbital is the l orbital, the elements range from l*l+1 to (l+1)^2 -C the sum from 0 to (l-1) of m (from -l to l) is l^2. - IF(ALLOCATED(pr_orb(iorb,ik,is)%matn)) THEN - DEALLOCATE(pr_orb(iorb,ik,is)%matn) - ENDIF - ALLOCATE(pr_orb(iorb,ik,is)% - % matn(-l:l,kp(ik,is)%nb_bot:kp(ik,is)%nb_top,n)) - ALLOCATE(coeff(1:n)) -C pr_orb%matn = the projection matrix with (2*l+1) lines and (nb_top-nb_bot) columns for the n (size of s12) coefficients -C coeff = table of size n which will contain the decomposition of the Bloch state |psi_ik,ib,is> -C as in equation 22 of the tutorial (Alm, Blm, and Clm ) - DO m=-l,l - lm=lm+1 - DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top - coeff(1)=kp(ik,is)%Alm(lm,iatom,ib) - coeff(2)=kp(ik,is)%Blm(lm,iatom,ib) - coeff(3:n)=kp(ik,is)%Clm(1:n-2,lm,iatom,ib) - coeff=MATMUL(coeff, - & norm_radf(iorb)%s12(1:n,1:n,is)) -C coeff = coefficients c_(j,lm) of the decomposition of the state |psi> in the orthogonalized basis |phi_j> -C as defined in the tutorial (equation 25) - pr_orb(iorb,ik,is)%matn(m,ib,1:n)=coeff(1:n) - ENDDO - ENDDO ! End of the m loop - DEALLOCATE(coeff) -C pr_orb(iorb,ik,is)%matn(m,ib,1:n) is then the Theta projector as defined in equation 26 of the tutorial. - ENDIF ! End of the if l=0 if-then-else - ENDDO ! End of the iorb loop -C - ENDDO ! End of the loop on ik - ENDDO ! End of the loop on is -C -C -C ========================================================================== -C Multiplication of the projection matrices by the local rotation matrices : -C ========================================================================== -C -C ------------------------------------------------ -C Wannier Projectors for the correlated orbitals : -C ------------------------------------------------ -C - DO jcrorb=1,ncrorb - jatom=crorb(jcrorb)%atom - isrt=crorb(jcrorb)%sort - l=crorb(jcrorb)%l -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s orbital, no multiplication is needed, since the matrix representation of any rotation -C (and thus Rloc) is always 1. - DO ik=1,nk - DO is=1,ns -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE - nbtop=kp(ik,is)%nb_top - nbbot=kp(ik,is)%nb_bot - IF(ALLOCATED(pr_crorb(jcrorb,ik,is)%mat_rep)) THEN - DEALLOCATE(pr_crorb(jcrorb,ik,is)%mat_rep) - ENDIF - ALLOCATE(pr_crorb(jcrorb,ik,is) - & %mat_rep(1,nbbot:nbtop)) - pr_crorb(jcrorb,ik,is)%mat_rep(1,nbbot:nbtop)= - = pr_crorb(jcrorb,ik,is)%mat(1,nbbot:nbtop) -C As a result, prcrorb%matrep = prcrorb%mat - ENDDO - ENDDO -C -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) -C --------------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) -C Moreover ifSP=.TRUE. (since ifSO => ifSP in this version) -C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,1)%included) CYCLE - nbbot=kp(ik,1)%nb_bot - nbtop=kp(ik,1)%nb_top -C In this case, the projection matrix will be stored in prcrorb%matrep with is=1. - IF(ALLOCATED(pr_crorb(jcrorb,ik,1)%mat_rep)) THEN - DEALLOCATE(pr_crorb(jcrorb,ik,1)%mat_rep) - ENDIF - ALLOCATE(pr_crorb(jcrorb,ik,1)% - % mat_rep(1:2*(2*l+1),nbbot:nbtop)) -C The element prcrorb%matrep for is=2 is set to 0, since all the matrix will be stored in the matrix matrep for is=1 - IF(.not.ALLOCATED(pr_crorb(jcrorb,ik,2)%mat_rep)) THEN - ALLOCATE(pr_crorb(jcrorb,ik,2)%mat_rep(1,1)) - pr_crorb(jcrorb,ik,2)%mat_rep(1,1)=0.d0 - ENDIF -C Creation of a matrix tmp_mat which "concatenates" up and dn parts of pr_crorb. - ALLOCATE(tmp_mat(1:2*(2*l+1),nbbot:nbtop)) - tmp_mat(1:(2*l+1),nbbot:nbtop)= - = pr_crorb(jcrorb,ik,1)%mat(-l:l,nbbot:nbtop) -C The first (2l+1) lines are the spin-up part of the projection matrix prcrorb%mat. -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if there is no dn part of pr_orb. -C ------------------------- -C - IF(.not.ifSP) THEN - WRITE(buf,'(a,a,i2,a)')'The projectors on ', - & 'the dn states are required for isrt = ',isrt, - & ' but there is no spin-polarized input files.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C --------------------------------------------------------------------------------------- -C -C The last (2l+1) lines are the spin-dn part of the projection matrix prcrorb%mat. - tmp_mat((2*l+2):2*(2*l+1),nbbot:nbtop)= - = pr_crorb(jcrorb,ik,2)%mat(-l:l,nbbot:nbtop) -C -C Multiplication by the local rotation matrix ; Up and dn parts are treated independently -C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame -C but without taking into account the spinor-rotation matrix. - ALLOCATE(tmp_matbis(1:(2*l+1),nbbot:nbtop)) - tmp_matbis(1:(2*l+1),nbbot:nbtop)= - = tmp_mat(1:(2*l+1),nbbot:nbtop) - CALL rot_projectmat(tmp_matbis, - & l,nbbot,nbtop,jatom,isrt) - tmp_mat(1:(2*l+1),nbbot:nbtop)= - = tmp_matbis(1:(2*l+1),nbbot:nbtop) - tmp_matbis(1:(2*l+1),nbbot:nbtop)= - = tmp_mat(2*l+2:2*(2*l+1),nbbot:nbtop) - CALL rot_projectmat(tmp_matbis, - & l,nbbot,nbtop,jatom,isrt) - tmp_mat(2*l+2:2*(2*l+1),nbbot:nbtop)= - = tmp_matbis(1:(2*l+1),nbbot:nbtop) - DEALLOCATE(tmp_matbis) -C -C Putting pr_crorb in the desired basis associated to (l,isrt) -C - pr_crorb(jcrorb,ik,1)%mat_rep(1:2*(2*l+1),nbbot:nbtop)= - = MATMUL(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1)), - & tmp_mat(1:2*(2*l+1),nbbot:nbtop)) -C pr_crorb%mat_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} - DEALLOCATE(tmp_mat) - ENDDO ! End of the ik loop -C -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) -C -------------------------------------------------------------------------------------------- - ELSE - DO ik=1,nk - DO is=1,ns -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE -C In this case, nb_top(up) and nb_bot(up) can differ from nb_top(dn) and nb_bot(dn) - nbbot=kp(ik,is)%nb_bot - nbtop=kp(ik,is)%nb_top - IF(ALLOCATED(pr_crorb(jcrorb,ik,is)%mat_rep)) THEN - DEALLOCATE(pr_crorb(jcrorb,ik,is)%mat_rep) - ENDIF - ALLOCATE(pr_crorb(jcrorb,ik,is) - & %mat_rep(-l:l,nbbot:nbtop)) - pr_crorb(jcrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop)= - = pr_crorb(jcrorb,ik,is)%mat(-l:l,nbbot:nbtop) -C -C Multiplication by the local rotation matrix -C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame - CALL rot_projectmat(pr_crorb(jcrorb,ik,is) - & %mat_rep(-l:l,nbbot:nbtop),l,nbbot,nbtop,jatom,isrt) -C -C Putting pr_crorb in the desired basis associated to (l,isrt) - pr_crorb(jcrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop)= - = MATMUL(reptrans(l,isrt)%transmat(-l:l,-l:l), - & pr_crorb(jcrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop)) -C pr_crorb%mat_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} - ENDDO ! End of the is loop - ENDDO ! End of the ik loop - ENDIF ! End of the if mixing if-then-else - ENDDO ! End of the jcrorb loop -C -C --------------------------------------- -C Theta Projectors for all the orbitals : -C --------------------------------------- -C - DO jorb=1,norb - jatom=orb(jorb)%atom - isrt=orb(jorb)%sort - n=norm_radf(jorb)%n - l=orb(jorb)%l -C -C The case l=0 is a particular case of "non-mixing" basis. -C -------------------------------------------------------- - IF (l==0) THEN -C For the s orbital, no multiplication is needed, since the matrix representation of any rotation -C (and therefore Rloc) is always 1. - DO ik=1,nk - DO is=1,ns -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE - nbtop=kp(ik,is)%nb_top - nbbot=kp(ik,is)%nb_bot - IF(ALLOCATED(pr_orb(jorb,ik,is)%matn_rep)) THEN - DEALLOCATE(pr_orb(jorb,ik,is)%matn_rep) - ENDIF - ALLOCATE(pr_orb(jorb,ik,is)%matn_rep - & (1,nbbot:nbtop,1:n)) - pr_orb(jorb,ik,is)%matn_rep(1,nbbot:nbtop,1:n)= - = pr_orb(jorb,ik,is)%matn(1,nbbot:nbtop,1:n) -C As a result, prorb%matnrep = prorb%matn - ENDDO - ENDDO -C -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) -C --------------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C If this option is used, then ifSO=.TRUE. (restriction in set_ang_trans.f) -C Moreover ifSP=.TRUE. (since ifSO => ifSP) -C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) - DO ik=1,nk -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,1)%included) CYCLE - nbbot=kp(ik,1)%nb_bot - nbtop=kp(ik,1)%nb_top -C In this case, the projection matrix will be stored in prorb%matnrep with is=1. - IF(ALLOCATED(pr_orb(jorb,ik,1)%matn_rep)) THEN - DEALLOCATE(pr_orb(jorb,ik,1)%matn_rep) - ENDIF - ALLOCATE(pr_orb(jorb,ik,1)% - % matn_rep(1:2*(2*l+1),nbbot:nbtop,1:n)) -C The element prorb%matnrep for is=2 is set to 0, since all the matrix will be stored in the matrix matnrep for is=1 - IF(.not.ALLOCATED(pr_orb(jorb,ik,2)%matn_rep)) THEN - ALLOCATE(pr_orb(jorb,ik,2)%matn_rep(1,1,1)) - pr_orb(jorb,ik,2)%matn_rep(1,1,1)=0.d0 - ENDIF -C Creation of a matrix tmp_matn which "concatenates" up and dn parts of pr_orb - ALLOCATE(tmp_matn(1:2*(2*l+1),nbbot:nbtop,1:n)) - tmp_matn(1:(2*l+1),nbbot:nbtop,1:n)= - = pr_orb(jorb,ik,1)%matn(-l:l,nbbot:nbtop,1:n) -C The first (2l+1) lines are the spin-up part of the projection matrix prorb%matn. -C -C --------------------------------------------------------------------------------------- -C Interruption of the prgm if there is no dn part of pr_orb. -C ------------------------- -C - IF(.not.ifSP) THEN - WRITE(buf,'(a,a,i2,a)')'The projectors on ', - & 'the down states are required for isrt = ',isrt, - & ' but there is no spin-polarized input files.' - CALL printout(0) - WRITE(buf,'(a)')'END OF THE PRGM' - CALL printout(0) - STOP - ENDIF -C --------------------------------------------------------------------------------------- -C -C The last (2l+1) lines are the spin-dn part of the projection matrix prorb%matn. - tmp_matn(2*l+2:2*(2*l+1),nbbot:nbtop,1:n)= - = pr_orb(jorb,ik,2)%matn(-l:l,nbbot:nbtop,1:n) -C - DO i=1,n -C Multiplication by the local rotation matrix ; Up and dn parts are treated independently -C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame -C but without taking into account the spinor-rotation matrix. - ALLOCATE(tmp_matbis(1:(2*l+1),nbbot:nbtop)) - tmp_matbis(1:(2*l+1),nbbot:nbtop)= - = tmp_matn(1:(2*l+1),nbbot:nbtop,i) - CALL rot_projectmat(tmp_matbis, - & l,nbbot,nbtop,jatom,isrt) - tmp_matn(1:(2*l+1),nbbot:nbtop,i)= - = tmp_matbis(1:(2*l+1),nbbot:nbtop) - tmp_matbis(1:(2*l+1),nbbot:nbtop)= - = tmp_matn(2*l+2:2*(2*l+1),nbbot:nbtop,i) - CALL rot_projectmat(tmp_matbis, - & l,nbbot,nbtop,jatom,isrt) - tmp_matn(2*l+2:2*(2*l+1),nbbot:nbtop,i)= - = tmp_matbis(1:(2*l+1),nbbot:nbtop) - DEALLOCATE(tmp_matbis) -C Putting pr_orb in the desired basis associated to (l,isrt) - pr_orb(jorb,ik,1)%matn_rep - & (1:2*(2*l+1),nbbot:nbtop,i)= - = MATMUL(reptrans(l,isrt)% - & transmat(1:2*(2*l+1),1:2*(2*l+1)), - & tmp_matn(1:2*(2*l+1),nbbot:nbtop,i)) -C pr_orb%matn_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} - ENDDO ! End of the i-loop - DEALLOCATE(tmp_matn) - ENDDO ! End of the ik loop -C -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) -C -------------------------------------------------------------------------------------------- - ELSE - DO ik=1,nk - DO is=1,ns -C Only the k-points with inlcuded bands are considered for the projectors. - IF(.NOT.kp(ik,is)%included) CYCLE -C In this case, nb_top(up) and nb_bot(up) can differ from nb_top(dn) and nb_bot(dn) - nbbot=kp(ik,is)%nb_bot - nbtop=kp(ik,is)%nb_top - IF(ALLOCATED(pr_orb(jorb,ik,is)%matn_rep)) THEN - DEALLOCATE(pr_orb(jorb,ik,is)%matn_rep) - ENDIF - ALLOCATE(pr_orb(jorb,ik,is)% - & matn_rep(-l:l,nbbot:nbtop,1:n)) - pr_orb(jorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,1:n)= - = pr_orb(jorb,ik,is)%matn(-l:l,nbbot:nbtop,1:n) -C - DO i=1,n -C Multiplication by the local rotation matrix -C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame - CALL rot_projectmat(pr_orb(jorb,ik,is) - & %matn_rep(-l:l,nbbot:nbtop,i), - & l,nbbot,nbtop,jatom,isrt) -C Putting pr_orb in the desired basis associated to (l,isrt) - pr_orb(jorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,i)= - = MATMUL(reptrans(l,isrt)%transmat(-l:l,-l:l), - & pr_orb(jorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,i)) -C pr_orb%matn_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} - ENDDO ! End of the i loop - ENDDO ! End of the is loop - ENDDO ! End of the ik loop - ENDIF ! End of the if mixing if-then-else - ENDDO ! End of the jorb loop -C -C -C ============================================================================= -C Printing the projectors with k-points 1 and nk in the file fort.18 for test : -C ============================================================================= - DO icrorb=1,ncrorb - iatom=crorb(icrorb)%atom - isrt=crorb(icrorb)%sort - l=crorb(icrorb)%l - WRITE(18,'()') - WRITE(18,'(a,i4)') 'icrorb = ', icrorb - WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l - IF (l==0) THEN - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ELSEIF (reptrans(l,isrt)%ifmixing) THEN - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ELSE - WRITE(18,'(a,i4)') 'ik = ', 1 - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) - IF (ifSP) - & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) - WRITE(18,'()') - ENDDO - ENDIF - ENDDO -C - DO iorb=1,norb - iatom=orb(iorb)%atom - isrt=orb(iorb)%sort - l=orb(iorb)%l - n=norm_radf(iorb)%n - WRITE(18,'()') - WRITE(18,'(a,i4)') 'iorb = ', iorb - WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l - IF (l==0) THEN - WRITE(18,'(a,i4)') 'ik = ', 1 - DO i=1,n - WRITE(18,'(i4)') i - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_orb(iorb,1,1)%matn_rep(:,ib,i) - IF (ifSP) - & WRITE(18,*) pr_orb(iorb,1,2)%matn_rep(:,ib,i) - WRITE(18,'()') - ENDDO - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO i=1,n - WRITE(18,'(i4)') i - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_orb(iorb,nk,1)%matn_rep(:,ib,i) - IF (ifSP) - & WRITE(18,*) pr_orb(iorb,nk,2)%matn_rep(:,ib,i) - WRITE(18,'()') - ENDDO - ENDDO - ELSEIF(reptrans(l,isrt)%ifmixing) THEN - DO i=1,n - WRITE(18,'(i4)') i - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_orb(iorb,1,1)%matn_rep(:,ib,i) - WRITE(18,'()') - ENDDO - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO i=1,n - WRITE(18,'(i4)') i - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_orb(iorb,nk,1)%matn_rep(:,ib,i) - WRITE(18,'()') - ENDDO - ENDDO - ELSE - DO i=1,n - WRITE(18,'(i4)') i - DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top - WRITE(18,*) pr_orb(iorb,1,1)%matn_rep(:,ib,i) - IF (ifSP) - & WRITE(18,*) pr_orb(iorb,1,2)%matn_rep(:,ib,i) - WRITE(18,'()') - ENDDO - ENDDO - WRITE(18,'(a,i4)') 'ik = ', nk - DO i=1,n - WRITE(18,'(i4)') i - DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top - WRITE(18,*) pr_orb(iorb,nk,1)%matn_rep(:,ib,i) - IF (ifSP) - & WRITE(18,*) pr_orb(iorb,nk,2)%matn_rep(:,ib,i) - WRITE(18,'()') - ENDDO - ENDDO - ENDIF - ENDDO -C - RETURN - END - diff --git a/fortran/dmftproj/set_rotloc.f b/fortran/dmftproj/set_rotloc.f deleted file mode 100644 index d2cbec1..0000000 --- a/fortran/dmftproj/set_rotloc.f +++ /dev/null @@ -1,368 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE set_rotloc -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets up the Global->local coordinates %% -C %% rotational matrices for each atom of the system. %% -C %% These matrices will be used to create the projectors. %% -C %% (They are the SR matrices defined in the tutorial file.) %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data - USE reps - USE symm - USE prnt - IMPLICIT NONE - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_rot, spinrot - REAL(KIND=8) :: alpha, beta, gama, factor - INTEGER :: iatom, jatom, imu, isrt - INTEGER :: is, is1, isym, l, lm - INTEGER :: ind1, ind2, inof1, inof2 - COMPLEX(KIND=8) :: ephase -C -C ==================================================== -C Multiplication by an S matrix for equivalent sites : -C ==================================================== -C Up to now, rotloc is the rotloc matrix (from Global to local coordinates rotation : (rotloc)_ij = ) -C The matrix S to go from the representative atom of the sort to another one must be introduced. That's what is done here-after. - DO isrt=1,nsort - iatom=SUM(nmult(0:isrt-1))+1 - DO imu=1,nmult(isrt) - jatom=iatom+imu-1 - DO isym=1,nsym -C If the symmetry operation isym transforms the representative atom iatom in the jatom, -C the matrix rotloc is multiplied by the corresponding srot matrix, for each orbital number l. -C if R[isym](iatom) = jatom, rotloc is multiplied by R[isym] and Rloc is finally R[isym] X rotloc = - IF(srot(isym)%perm(iatom)==jatom) THEN - WRITE(17,*) ' For jatom = ',jatom, ', isym =', isym - rotloc(jatom)%srotnum=isym -C Calculation of krotm and iprop. - rotloc(jatom)%krotm(1:3,1:3)= - = MATMUL(srot(isym)%krotm(1:3,1:3), - & rotloc(jatom)%krotm(1:3,1:3)) - rotloc(jatom)%iprop=rotloc(jatom)%iprop* - * srot(isym)%iprop -C Evaluation of the Euler angles of the final operation Rloc - CALL euler(TRANSPOSE(rotloc(jatom)%krotm(1:3,1:3)), - & alpha,beta,gama) -C According to Wien convention, euler takes in argument the transpose -C of the matrix rotloc(jatom)%krotm to give a,b anc c of rotloc(jatom). - rotloc(jatom)%a=alpha - rotloc(jatom)%b=beta - rotloc(jatom)%g=gama -C -C ============================================================================================================= -C Calculation of the rotational matrices and evaluation of the fields timeinv and phase for the Rloc matrices : -C ============================================================================================================= - IF(ifSP.AND.ifSO) THEN -C No time reversal operation is applied to rotloc (alone). If a time reversal operation must be applied, -C it comes from the symmetry operation R[isym]. That is why the field timeinv is the same as the one from srot. - rotloc(jatom)%timeinv=srot(isym)%timeinv - rotloc(jatom)%phase=0.d0 - DO l=1,lmax - ALLOCATE(tmp_rot(1:2*(2*l+1),1:2*(2*l+1))) - tmp_rot=0.d0 -C Whatever the value of beta (0 or Pi), the spinor rotation matrix of isym is block-diagonal. -C because the time-reversal operation have been applied if necessary. - factor=srot(isym)%phase/2.d0 - ephase=EXP(CMPLX(0.d0,factor)) -C We remind that the field phase is (g-a) if beta=Pi. As a result, ephase = exp(+i(g-a)/2) = -exp(+i(alpha-gamma)/2) -C We remind that the field phase is (a+g) if beta=0. As a result, ephase = exp(+i(a+g)/2)=-exp(-i(alpha+gamma)/2) -C in good agreement with Wien conventions for the definition of this phase factor. -C Up/up block : - tmp_rot(1:2*l+1,1:2*l+1)=ephase* - & srot(isym)%rotl(-l:l,-l:l,l) -C Dn/dn block : - ephase=CONJG(ephase) -C now, ephase = exp(+i(a-g)/2) = -exp(-i(alpha-gamma)/2) if beta=Pi -C now, ephase = exp(-i(a+g)/2) = -exp(+i(alpha+gamma)/2) if beta=0 - tmp_rot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - & ephase*srot(isym)%rotl(-l:l,-l:l,l) - IF (rotloc(jatom)%timeinv) THEN -C In this case, the time reversal operator was applied to srot. - rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)= - & MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)),CONJG( - & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l))) -C rotloc(jatom)%rotl now contains D(Rloc) = D(R[isym])*transpose[D(rotloc)]. - ELSE -C In this case, no time reversal operator was applied to srot. - rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)= - & MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), - & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) -C rotloc(jatom)%rotl now contains D(Rloc) = D(R[isym])*D(rotloc). - ENDIF - DEALLOCATE(tmp_rot) - ENDDO - ELSE -C Calculation of the rotational matrices associated to Rloc - ALLOCATE(tmp_rot(1:2*lmax+1,1:2*lmax+1)) - DO l=1,lmax -C Use of the subroutine dmat to compute the rotational matrix -C associated to the Rloc operation in a (2*l+1) space : - tmp_rot=0.d0 - CALL dmat(l,rotloc(jatom)%a,rotloc(jatom)%b, - & rotloc(jatom)%g, - & REAL(rotloc(jatom)%iprop,KIND=8),tmp_rot,2*lmax+1) - rotloc(jatom)%rotl(-l:l,-l:l,l)= - = tmp_rot(1:2*l+1,1:2*l+1) -C rotloc(jatom)%rotl = table of the rotational matrices of the symmetry operation -C for the different l orbital (from 1 to lmax), in the usual complex basis : dmat = D(R[isym])_l -C rotloc(jatom)%rotl = D(Rloc[jatom])_{lm} - ENDDO - DEALLOCATE(tmp_rot) - ENDIF ! End of the "ifSO-ifSP" if-then-else -C - EXIT -C Only one symmetry operation is necessary to be applied to R to get the complete rotloc matrix. -C This EXIT enables to leave the loop as soon as a symmetry operation which transforms the representative atom in jatom is found. - ENDIF ! End of the "perm" if-then-else - ENDDO ! End of the isym loop -C -C -C =========================================================== -C Computation of the rotational matrices in each sort basis : -C =========================================================== - ALLOCATE(rotloc(jatom)%rotrep(lmax)) -C -C Initialization of the rotloc(jatom)%rotrep field = D(Rloc)_{new_i} -C This field is a table of size lmax which contains the rotloc matrices -C in the representation basis associated to each included orbital of the jatom. - DO l=1,lmax - ALLOCATE(rotloc(jatom)%rotrep(l)%mat(1,1)) - rotloc(jatom)%rotrep(l)%mat(1,1)=0.d0 - ENDDO -C -C Computation of the elements 'mat' in rotloc(jatom)%rotrep(l) - DO l=1,lmax -C The considered orbital is not included, hence no computation - IF (lsort(l,isrt)==0) cycle -C The considered orbital is included - IF (ifSP.AND.ifSO) THEN -C In this case, the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) -C -------------------------------------------------------------------------------------------------------------- - DEALLOCATE(rotloc(jatom)%rotrep(l)%mat) - ALLOCATE(rotloc(jatom)%rotrep(l)%mat - & (1:2*(2*l+1),1:2*(2*l+1))) - ALLOCATE(tmp_rot(1:2*(2*l+1),1:2*(2*l+1))) -C Computation of rotloc(jatom)%rotrep(l)%mat - IF (reptrans(l,isrt)%ifmixing) THEN -C In this case, the basis representation requires a complete spinor rotation approach too. - IF(rotloc(jatom)%timeinv) THEN - tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( - & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), - & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) - rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1)))) -C Since the operation is antilinear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*conjugate(inverse(reptrans)) -C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} []^* -C which is exactly the expression of the spinor rotation matrix in the new basis. - ELSE - tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( - & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), - & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) - rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1))))) -C Since the operation is linear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*inverse(reptrans) -C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} -C which is exactly the expression of the spinor rotation matrix in the new basis. - ENDIF - ELSE -C In this case, the basis representation is reduced to the up/up block and must be extended. - ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) - spinrot(1:2*(2*l+1),1:2*(2*l+1))=0.d0 - spinrot(1:2*l+1,1:2*l+1)= - & reptrans(l,isrt)%transmat(-l:l,-l:l) - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - & reptrans(l,isrt)%transmat(-l:l,-l:l) - IF(rotloc(jatom)%timeinv) THEN - tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( - & spinrot(1:2*(2*l+1),1:2*(2*l+1)), - & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) - rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(spinrot(1:2*(2*l+1),1:2*(2*l+1)))) -C Since the operation is antilinear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*conjugate(inverse(reptrans)) -C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} []^* -C which is exactly the expression of the spinor rotation matrix in the new basis. - ELSE - tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( - & spinrot(1:2*(2*l+1),1:2*(2*l+1)), - & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) - rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(CONJG(spinrot(1:2*(2*l+1),1:2*(2*l+1))))) -C Since the operation is linear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*inverse(reptrans) -C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} -C which is exactly the expression of the spinor rotation matrix in the new basis. - ENDIF - DEALLOCATE(spinrot) - ENDIF ! End of the if mixing if-then-else - DEALLOCATE(tmp_rot) -C - ELSE -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) -C -------------------------------------------------------------------------------------------- - DEALLOCATE(rotloc(jatom)%rotrep(l)%mat) - ALLOCATE(rotloc(jatom)%rotrep(l)%mat(-l:l,-l:l)) - ALLOCATE(tmp_rot(-l:l,-l:l)) -C Computation of rotloc(jatom)%rotrep(l)%mat - tmp_rot(-l:l,-l:l)=MATMUL( - & reptrans(l,isrt)%transmat(-l:l,-l:l), - & rotloc(jatom)%rotl(-l:l,-l:l,l)) - rotloc(jatom)%rotrep(l)%mat(-l:l,-l:l)= - = MATMUL(tmp_rot(-l:l,-l:l), - & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l)))) -C the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*rotl*inverse(reptrans) -C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} -C which is exactly the expression of the rotation matrix for the up/up block in the new basis. - DEALLOCATE(tmp_rot) - ENDIF - ENDDO ! End of the l loop - ENDDO ! End of the jatom loop - ENDDO ! End of the isrt loop -C - RETURN - END - - - SUBROUTINE euler(Rot,a,b,c) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine calculates the Euler angles a, b and c of Rot. %% -C %% The result are stored in a,b,c. (same as in SRC_lapwdm/euler.f) %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C - IMPLICIT NONE - REAL(KIND=8) :: a,aa,b,bb,c,cc,zero,pi,y_norm,dot - REAL(KIND=8), DIMENSION(3,3) :: Rot, Rot_temp - REAL(KIND=8), DIMENSION(3) :: z,zz,y,yy,yyy,pom,x,xx - INTEGER :: i,j -C Definition of the constants - zero=0d0 - pi=ACOS(-1d0) -C Definition of Rot_temp=Id - DO i=1,3 - DO j=1,3 - Rot_temp(i,j)=0 - IF (i.EQ.j) Rot_temp(i,i)=1 - ENDDO - ENDDO -C Initialization of y=e_y, z=e_z, yyy and zz - DO j=1,3 - y(j)=Rot_temp(j,2) - yyy(j)=Rot(j,2) - z(j)=Rot_temp(j,3) - zz(j)=Rot(j,3) - ENDDO -C Calculation of yy - CALL vecprod(z,zz,yy) - y_norm=DSQRT(dot(yy,yy)) - IF (y_norm.lt.1d-10) THEN -C If yy=0, this implies that b is zero or pi - IF (ABS(dot(y,yyy)).gt.1d0) THEN - aa=dot(y,yyy)/ABS(dot(y,yyy)) - a=ACOS(aa) - ELSE - a=ACOS(dot(y,yyy)) - ENDIF -C - IF (dot(z,zz).gt.zero) THEN - c=zero - b=zero - IF (yyy(1).gt.zero) a=2*pi-a - ELSE - c=a - a=zero - b=pi - IF (yyy(1).lt.zero) c=2*pi-c - ENDIF - ELSE -C If yy is not 0, then b belongs to ]0,pi[ - DO j=1,3 - yy(j)=yy(j)/y_norm - ENDDO -C - aa=dot(y,yy) - bb=dot(z,zz) - cc=dot(yy,yyy) - IF (ABS(aa).gt.1d0) aa=aa/ABS(aa) - IF (ABS(bb).gt.1d0) bb=bb/ABS(bb) - IF (ABS(cc).gt.1d0) cc=cc/ABS(cc) - b=ACOS(bb) - a=ACOS(aa) - c=ACOS(cc) - IF (yy(1).gt.zero) a=2*pi-a - CALL vecprod(yy,yyy,pom) - IF (dot(pom,zz).lt.zero) c=2*pi-c - ENDIF -C - END - - - SUBROUTINE vecprod(a,b,c) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine calculates the vector product of a and b. %% -C %% The result is stored in c. (same as in SRC_lapwdm/euler.f) %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C - IMPLICIT NONE - REAL(KIND=8), DIMENSION(3) :: a,b,c -C - c(1)=a(2)*b(3)-a(3)*b(2) - c(2)=a(3)*b(1)-a(1)*b(3) - c(3)=a(1)*b(2)-a(2)*b(1) -C - END - - REAL(KIND=8) FUNCTION dot(a,b) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This function calculates the scalar product of a and b. %% -C %% The result is stored in dot. (same as in SRC_lapwdm/euler.f) %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C - IMPLICIT NONE - REAL(KIND=8) :: a,b - INTEGER :: i - dimension a(3),b(3) - dot=0 - DO i=1,3 - dot=dot+a(i)*b(i) - ENDDO -C - END - - - diff --git a/fortran/dmftproj/setsym.f b/fortran/dmftproj/setsym.f deleted file mode 100644 index 877a200..0000000 --- a/fortran/dmftproj/setsym.f +++ /dev/null @@ -1,886 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE setsym -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets up the symmetry matrices of the structure %% -C %% and the local rotation matrices for each atom of the system. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data - USE factorial - USE file_names - USE prnt - USE reps - USE symm - IMPLICIT NONE -C - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_rot, spinrot - COMPLEX(KIND=8), DIMENSION(:,:),ALLOCATABLE :: tmat - COMPLEX(KIND=8), DIMENSION(:,:,:),ALLOCATABLE :: tmp_dmat - REAL(KIND=8) :: factor - INTEGER :: l, isym, mmax, nrefl, i, m, isrt, lms - INTEGER :: lm, is, is1 - INTEGER :: iatom, imu, iatomref - REAL(KIND=8) :: det - REAL(KIND=8), DIMENSION(:),ALLOCATABLE :: bufreal - COMPLEX(KIND=8), DIMENSION(:),ALLOCATABLE :: bufcomp - COMPLEX(KIND=8), DIMENSION(:,:),ALLOCATABLE :: tmpcomp - COMPLEX(KIND=8), DIMENSION(1:2,1:2) :: spmt - -C -C - WRITE(buf,'(a)')'=======================================' - CALL printout(0) - WRITE(buf,'(a)')'Symmetry operations of the system' - CALL printout(1) -C -C =========================================== -C Reading of the symmetry file case.dmftsym : -C =========================================== - CALL setfact(170) - READ(iusym,*)nsym - WRITE(buf,'(a,i4)')'Number of Symmetries = ',nsym - CALL printout(0) - CALL printout(0) -C nsym = total number of symmetry operations for the structure - lsym=lmax - nlmsym=2*lsym+1 -C lsym = maximal orbital number for the symmetry -C nlmsym = maximal size of the representation for the symmetry - ALLOCATE(srot(nsym)) - DO isym=1,nsym - ALLOCATE(srot(isym)%perm(natom)) - READ(iusym,*)srot(isym)%perm - ENDDO -C srot = table of symop elements from to 1 to nsym. -C the field srot(isym)%perm = the table of permutation for the isym symmetry (table from 1 to natom) -C srot(isym)%perm(iatom) = R[isym](iatom) = image by R[isym] fo iatom - WRITE(buf,'(a)')'Properties of the symmetry operations :' - CALL printout(0) - WRITE(buf,'(a)') ' alpha, beta, gamma are their Euler angles.' - CALL printout(0) - WRITE(buf,'(a)') ' iprop is the value of their determinant.' - CALL printout(0) - CALL printout(0) - WRITE(buf,'(a)')' SYM.OP. alpha beta gamma iprop' - CALL printout(0) - DO isym=1,nsym - READ(iusym,'()') - READ(iusym,'()') - READ(iusym,'(3(f6.1),i3)') srot(isym)%a, srot(isym)%b, - & srot(isym)%g, srot(isym)%iprop -C Printing the matrices parameters in the file case.outdmftpr - WRITE(buf,'(i5,3F10.1,5x,i3)')isym, - & srot(isym)%a,srot(isym)%b,srot(isym)%g,srot(isym)%iprop - CALL printout(0) - srot(isym)%a=srot(isym)%a/180d0*Pi - srot(isym)%b=srot(isym)%b/180d0*Pi - srot(isym)%g=srot(isym)%g/180d0*Pi -C the field srot(isym)%a is linked to the Euler precession angle (alpha) -C the field srot(isym)%b is linked to the Euler nutation angle (beta) -C the field srot(isym)%c is linked to the Euler intrinsic rotation angle (gamma) -C They are read in case.dmftsym in degree and are then transformed into radians -C the field sort(isym)% iprop = value of the transformation determinant (1 or -1), -C determines if there is an inversion in the transformation - READ(iusym,*)(srot(isym)%krotm(1:3,i),i=1,3) - srot(isym)%krotm(1:3,1:3)= - & TRANSPOSE(srot(isym)%krotm(1:3,1:3)) -C the field srot(isym)%krotm = 3x3 matrices of rotation associated to the transformation (R[isym]). -C (without the global inversion). The matrix was multiplied by the value of iprop before being written in case.dmftsym. -C This reading line was chosen to be consistent with the writing line in rotmat_dmft (in SRC_lapw2) - ENDDO -C -C ============================================================= -C Determination of the properties for each symmetry operation : -C ============================================================= -C -C Creation of the rotational matrices for each orbital : -C ------------------------------------------------------ - DO isym=1,nsym - ALLOCATE(srot(isym)%rotl(-lsym:lsym,-lsym:lsym,lsym)) - srot(isym)%rotl=0.d0 - ALLOCATE(tmat(1:2*lsym+1,1:2*lsym+1)) - DO l=1,lsym -C Use of the subroutine dmat to compute the the rotational matrix -C associated to the isym symmetry operation in a (2*l+1) space : - CALL dmat(l,srot(isym)%a,srot(isym)%b,srot(isym)%g, - & REAL(srot(isym)%iprop,KIND=8),tmat,2*lsym+1) - srot(isym)%rotl(-l:l,-l:l,l)=tmat(1:2*l+1,1:2*l+1) -C srot(isym)%rotl = table of the rotationnal matrices of the symmetry operation -C for the different l orbital (from 1 to lsym), in the usual complex basis : dmat = D(R[isym])_l -C srot(isym)%rotl = D(R[isym])_{lm} - ENDDO - DEALLOCATE(tmat) -C -C -C Determination of the fields timeinv and phase (if SP+SO computations): -C ---------------------------------------------------------------------- -C If the calculation is spin-polarized with spin-orbit, the magnetic spacegroup of the -C system is of type III (black-and-white type). The operation must then be classified -C according to their keeping the z-axis invariant or not. -C -C srot(isym)%timeinv = boolean indicating if a time reversal operation is required - IF(ifSP.AND.ifSO) THEN - det=srot(isym)%krotm(1,1)*srot(isym)%krotm(2,2)- - - srot(isym)%krotm(1,2)*srot(isym)%krotm(2,1) -C the value of det is cos(srot(isym)%b) even if the rotation is improper. - IF(det < 0.0d0) THEN - srot(isym)%timeinv=.TRUE. -C The direction of the magnetic moment is changed to its opposite ( srot(isym)%b=pi ), -C A time reversal operation is required. - srot(isym)%phase=srot(isym)%g-srot(isym)%a -C In this case, we define a phase factor for the off-diagonal term (up/dn term) -C which is srot(isym)%phase= g-a = 2pi+(alpha-gamma) - ELSE - srot(isym)%timeinv=.FALSE. -C The direction of the magnetic moment is unchanged ( srot(isym)%b=0 ), -C no time reversal operation is required. - srot(isym)%phase=srot(isym)%a+srot(isym)%g -C In this case, we define a phase factor for the off-diagonal term (up/dn term) -C which is srot(isym)%phase= a+g = 2pi-(alpha+gamma) - ENDIF - ELSE -C If the calculation is either spin-polarized without spin-orbit, or paramagnetic -C the magnetic spacegroup of the system is of type I (ordinary type). The operation -C are thus merely applied. - srot(isym)%timeinv=.FALSE. - srot(isym)%phase=0.d0 - ENDIF ! End of the ifSP if-then-else -C -C -C Computation of the rotational matrices in each sort basis : -C ----------------------------------------------------------- - ALLOCATE(srot(isym)%rotrep(lsym,nsort)) -C -C Initialization of the srot(isym)%rotrep field -C This field is a table of size (lsym*nsort) which contains the rotation matrices -C of isym in the representation basis associated to each included orbital of each atom. -C srot(isym)%rotrep = D(R[isym])_{new_i} - DO isrt=1,nsort - DO l=1,lsym - ALLOCATE(srot(isym)%rotrep(l,isrt)%mat(1,1)) - srot(isym)%rotrep(l,isrt)%mat(1,1)=0.d0 - ENDDO - ENDDO -C -C Computation of the elements 'mat' in srot(isym)%rotrep(l,isrt) - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - DO l=1,lsym -C The considered orbital is not included, hence no computation - IF (lsort(l,isrt)==0) cycle -C The considered orbital is included - IF (reptrans(l,isrt)%ifmixing) THEN -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) -C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) -C Moreover ifSP=.TRUE. (since ifSO => ifSP in this version) - DEALLOCATE(srot(isym)%rotrep(l,isrt)%mat) - ALLOCATE(srot(isym)%rotrep(l,isrt)%mat - & (1:2*(2*l+1),1:2*(2*l+1))) - ALLOCATE(tmp_rot(1:2*(2*l+1),1:2*(2*l+1))) - ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) - spinrot=0.d0 -C Computation of the full spinor rotation matrix associated to isym. - CALL spinrotmat(spinrot,isym,l) -C Computation of srot(isym)%rotrep(l,isrt)%mat - tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( - & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), - & spinrot(1:2*(2*l+1),1:2*(2*l+1))) - srot(isym)%rotrep(l,isrt)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1))))) -C the field srot(isym)%rotrep(l,isrt)%mat = (reptrans)*spinrot(l)*inverse(reptrans) -C or srot(isym)%rotrep = D(R[isym])_{new_i} = D(R[isym])_{lm} -C which is exactly the expression of the spinor rotation matrix in the new basis. - DEALLOCATE(tmp_rot) - DEALLOCATE(spinrot) - ELSE -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) - DEALLOCATE(srot(isym)%rotrep(l,isrt)%mat) - ALLOCATE(srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l)) - ALLOCATE(tmp_rot(-l:l,-l:l)) -C Computation of srot(isym)%rotrep(l,isrt)%mat - tmp_rot(-l:l,-l:l)=MATMUL( - & reptrans(l,isrt)%transmat(-l:l,-l:l), - & srot(isym)%rotl(-l:l,-l:l,l)) - srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l)= - = MATMUL(tmp_rot(-l:l,-l:l), - & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l)))) -C the field srot(isym)%rotrep(l,isrt)%mat = (reptrans)*rotl*inverse(reptrans) -C or srot(isym)%rotrep = D(R[isym])_{new_i} = D(R[isym])_{lm} -C which is exactly the expression of the rotation matrix for the up/up block in the new basis. - DEALLOCATE(tmp_rot) - ENDIF - ENDDO ! End of the l loop - ENDDO ! End of the isrt loop - ENDDO ! End of the isym loop -C -C -C ============================================================= -C Printing the matrix parameters in the file fort.17 for test : -C ============================================================= - DO isym=1,nsym - WRITE(17,'()') - WRITE(17,'(a,i3)')' Sym. op.: ',isym - DO i =1,3 - ALLOCATE(bufreal(3)) - bufreal(1:3)=srot(isym)%krotm(i,1:3) - WRITE(17,'(3f10.4)') bufreal - DEALLOCATE(bufreal) - ENDDO - WRITE(17,'(a,3f8.1,i4)')'a, b, g, iprop =', - & srot(isym)%a*180d0/Pi,srot(isym)%b*180d0/Pi, - & srot(isym)%g*180d0/Pi,srot(isym)%iprop -C Printing the data relative to SP option - IF (ifSP) THEN - WRITE(17,*)'If DIR. magn. mom. is inverted :' - & ,srot(isym)%timeinv - WRITE(17,*)'phase = ',srot(isym)%phase - ENDIF -C Printing the rotational matrices for each orbital number l. - WRITE(17,'()') - DO l=1,lsym - WRITE(17,'(a,a,i2)')'Rotation matrix ', - & 'D(R[isym])_{lm} for l = ',l - DO m=-l,l - ALLOCATE(bufcomp(-l:l)) - bufcomp(-l:l)=srot(isym)%rotl(m,-l:l,l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ENDDO -C Printing the matrices rotrep(l,isrt)%mat - WRITE(17,'()') - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - DO l=1,lsym - IF (lsort(l,isrt)==0) cycle - WRITE(17,'(a,i2,a,i2)')'Representation for isrt = ', - & isrt,' and l= ',l - IF (reptrans(l,isrt)%ifmixing) THEN - DO m=1,2*(2*l+1) - ALLOCATE(bufcomp(1:2*(2*l+1))) - bufcomp(1:2*(2*l+1))= - & srot(isym)%rotrep(l,isrt)%mat(m,1:2*(2*l+1)) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ELSE - DO m=-l,l - ALLOCATE(bufcomp(-l:l)) - bufcomp(-l:l)= - & srot(isym)%rotrep(l,isrt)%mat(m,-l:l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ENDIF - ENDDO - ENDDO - ENDDO -C -C -C ================================================================================= -C Applying time-reversal operator if the system is spin-polarized with Spin Orbit : -C ================================================================================= -C -C If the calculation is spin-polarized with spin-orbit, the magnetic spacegroup of the compound -C is of type III (black-and-white). The symmetry operations which reverse the z-axis must be -C multiplied by the time-reversal operator. -C If spin-orbit is not taken into account, all the field timeinv are .FALSE. and no time-reversal -C is applied, since the magnetic spacegroup of the compound is of type I (ordinary). - IF (ifSP) THEN -C The modification of srot(isym)%rotl is done for each isym - DO isym=1,nsym - DO l=1,lsym - IF (srot(isym)%timeinv) THEN -C The field srot(isym)%rotl is multiplied by the time-reversal operator in the complex basis. - ALLOCATE(tmpcomp(-l:l,-l:l)) - tmpcomp(-l:l,-l:l)= - & srot(isym)%rotl(-l:l,-l:l,l) - CALL timeinv_op(tmpcomp,(2*l+1),l,0) - srot(isym)%rotl(-l:l,-l:l,l)=tmpcomp(-l:l,-l:l) - DEALLOCATE(tmpcomp) -C The field srot(isym)%phase must not be modified. - END IF - END DO - END DO -C -C The other modification are done for each (isrt,l) included. - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - DO l=1,lsym -C The considered orbital is not included, hence no computation - IF (lsort(l,isrt)==0) cycle -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) - IF (reptrans(l,isrt)%ifmixing) THEN - DO isym=1,nsym - IF (srot(isym)%timeinv) THEN -C The field srot(isym)%rotrep(l,isrt)%mat is multiplied by the time-reversal operator in the corresponding basis of isrt. - CALL timeinv_op(srot(isym)%rotrep(l,isrt)%mat, - & 2*(2*l+1),l,isrt) - END IF - END DO ! End of the isym loop -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) - ELSE - DO isym=1,nsym - IF (srot(isym)%timeinv) THEN -C The field srot(isym)%rotrep(l,isrt)%mat is multiplied by the time-reversal operator in the corresponding basis of isrt. - CALL timeinv_op(srot(isym)%rotrep(l,isrt)%mat, - & (2*l+1),l,isrt) - END IF - END DO ! End of the isym loop - END IF ! End of the ifmixing if-then-else - END DO ! End of the l loop - END DO ! End of the isrt loop - END IF ! End of the ifSP if-then-else -C -C -C ====================================================================== -C Printing the time-reversal modification in the file fort.17 for test : -C ====================================================================== - IF (ifSP.AND.ifSO) THEN - WRITE(17,'()') - WRITE(17,'(a)') '---With time-reversal operation---' - WRITE(17,'()') -C Printing the srot(isym) operations if necessary : - DO isym=1,nsym - IF (srot(isym)%timeinv) THEN - WRITE(17,'()') - WRITE(17,'(a,i3)')' Sym. op.: ',isym -C Printing the new rotational matrices for each orbital number l. - WRITE(17,'()') - DO l=1,lsym - WRITE(17,'(a,a,i2)')'T*Rotation matrix ', - & 'D(T.R[isym])_{lm} for l = ',l - DO m=-l,l - ALLOCATE(bufcomp(-l:l)) - bufcomp(-l:l)=srot(isym)%rotl(m,-l:l,l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ENDDO -C Printing the new matrices rotrep(l,isrt)%mat - WRITE(17,'()') - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - DO l=1,lsym - IF (lsort(l,isrt)==0) cycle - WRITE(17,'(a,i2,a,i2)') - & 'Representation for isrt = ',isrt,' and l= ',l - IF (reptrans(l,isrt)%ifmixing) THEN - DO m=1,2*(2*l+1) - ALLOCATE(bufcomp(1:2*(2*l+1))) - bufcomp(1:2*(2*l+1))= - & srot(isym)%rotrep(l,isrt)%mat(m,1:2*(2*l+1)) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ELSE - DO m=-l,l - ALLOCATE(bufcomp(-l:l)) - bufcomp(-l:l)= - & srot(isym)%rotrep(l,isrt)%mat(m,-l:l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - END DO - END IF - END DO - END DO - END IF - ENDDO - END IF -C -C -C ============================================================ -C Creation of the global->local coordinate rotation matrices : -C ============================================================ - ALLOCATE(rotloc(natom)) - CALL printout(1) - WRITE(buf,'(a)')'-------------------------------------' - CALL printout(0) - WRITE(buf,'(a)')'Global-to-local-coordinates rotations' - CALL printout(1) - WRITE(buf,'(a)')'Properties of the symmetry operations :' - CALL printout(0) - WRITE(buf,'(a)') ' alpha, beta, gamma are their Euler angles.' - CALL printout(0) - WRITE(buf,'(a)') ' iprop is the value of their determinant.' - CALL printout(0) - CALL printout(0) - WRITE(buf,'(a)')' SORT alpha beta gamma iprop' - CALL printout(0) - READ(iusym,'()') - DO isrt=1,nsort -C Reading the data for the representative atom in case.dmftsym and printing them in case.outdmftpr : -C -------------------------------------------------------------------------------------------------- - iatomref=SUM(nmult(0:isrt-1))+1 - READ(iusym,'()') - DO i=1,3 - ALLOCATE(bufreal(3)) - READ(iusym,*) bufreal - rotloc(iatomref)%krotm(i,1:3)=bufreal(1:3) - DEALLOCATE(bufreal) - ENDDO -C the field rotloc(iatomref)%krotm = 3x3 matrices of rotation associated to the transformation Rloc -C Rloc = . The matrix was not multiplied by the value of iprop before being -C written in case.dmftsym (cf. SRC_lapw2/rotmat_dmft.f). -C rotloc(iatomref)%krotm can thus be either a proper or an improper rotation (with inversion). -C This reading line was chosen to be consistent with the writing line in rotmat_dmft (in SRC_lapw2) - READ(iusym,*)rotloc(iatomref)%a,rotloc(iatomref)%b, - & rotloc(iatomref)%g, rotloc(iatomref)%iprop - WRITE(buf,'(i5,3F10.1,5x,i3)')isrt, - & rotloc(iatomref)%a, rotloc(iatomref)%b, - & rotloc(iatomref)%g, rotloc(iatomref)%iprop - CALL printout(0) - rotloc(iatomref)%a=rotloc(iatomref)%a/180d0*Pi - rotloc(iatomref)%b=rotloc(iatomref)%b/180d0*Pi - rotloc(iatomref)%g=rotloc(iatomref)%g/180d0*Pi -C the field rotloc%a is linked to the Euler precession angle (alpha) -C the field rotloc%b is linked to the Euler nutation angle (beta) -C the field rotloc%c is linked to the Euler intrinsic rotation angle (gamma) -C They are read in case.dmftsym and printed in case.outdmftpr in degree and are then transformed into radians -C the field rotloc%iprop = value of the transformation determinant (should be 1 in almost all the cases), -C determines if there is an inversion in the transformation from global to local basis. - rotloc(iatomref)%krotm(1:3,1:3)=rotloc(iatomref)%iprop* - & rotloc(iatomref)%krotm(1:3,1:3) -C Now, the field rotloc(iatomref)%krotm described only the proper rotation associated to the transformation. -C -C Use of the subroutine dmat to compute the rotational matrix -C associated to the rotloc(iatomref) operation in a (2*l+1) orbital space : - ALLOCATE(tmat(1:2*lsym+1,1:2*lsym+1)) - ALLOCATE(tmp_dmat(1:2*lsym+1,1:2*lsym+1,1:lsym)) - DO l=1,lsym - tmat=0.d0 - CALL dmat(l,rotloc(iatomref)%a,rotloc(iatomref)%b, - & rotloc(iatomref)%g,REAL(rotloc(iatomref)%iprop,KIND=8), - & tmat,2*lsym+1) - tmp_dmat(1:2*l+1,1:2*l+1,l)=tmat(1:2*l+1,1:2*l+1) -C tmp_dmat = D(Rloc)_{lm} - ENDDO - DEALLOCATE(tmat) -C -C -C Storing the rotloc matrix and initializing the other fields for all equivalent atoms : -C -------------------------------------------------------------------------------------- -C All the equivalent atoms will have the same rotloc description. These data -C will be correctly redifined in the subroutine set_rotloc, where the action of the -C symmetry operation which transforms the representative atom in the considered one -C will be added. - DO imu=1,nmult(isrt) - iatom=SUM(nmult(0:isrt-1))+imu - IF(ifSP.AND.ifSO) THEN -C In this case, we have to consider the spinor rotation matrix associated to rotloc -C (the value of the Euler angle beta can be anything between 0 and Pi) - ALLOCATE(rotloc(iatom)%rotl(1:2*(2*lsym+1), - & 1:2*(2*lsym+1),lsym)) - rotloc(iatom)%rotl=0.d0 - DO l=1,lsym -C For each orbital (from l=0 to lsym) -C Calculation of the representation matrix of rotloc in the spin-space -C in agreement with Wien conventions used for the definition of spmt (in SRC_lapwdm/sym.f) -C Up/up and Dn/dn terms - factor=(rotloc(iatomref)%a+rotloc(iatomref)%g)/2.d0 - spmt(1,1)=EXP(CMPLX(0.d0,factor)) - & *DCOS(rotloc(iatomref)%b/2.d0) - spmt(2,2)=CONJG(spmt(1,1)) -C Up/dn and Dn/up terms - factor=-(rotloc(iatomref)%a-rotloc(iatomref)%g)/2.d0 - spmt(1,2)=EXP(CMPLX(0.d0,factor)) - & *DSIN(rotloc(iatomref)%b/2.d0) - spmt(2,1)=-CONJG(spmt(1,2)) -C Up/up block : - rotloc(iatom)%rotl(1:2*l+1,1:2*l+1,l)= - & spmt(1,1)*tmp_dmat(1:2*l+1,1:2*l+1,l) -C Dn/dn block : - rotloc(iatom)%rotl(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1),l)= - & spmt(2,2)*tmp_dmat(1:2*l+1,1:2*l+1,l) -C Up/dn block : - rotloc(iatom)%rotl(1:2*l+1,2*l+2:2*(2*l+1),l)= - & spmt(1,2)*tmp_dmat(1:2*l+1,1:2*l+1,l) -C Dn/up block : - rotloc(iatom)%rotl(2*l+2:2*(2*l+1),1:2*l+1,l)= - & spmt(2,1)*tmp_dmat(1:2*l+1,1:2*l+1,l) -C The fields rotloc(iatom)%rotl now contain D(rotloc)_{lm}xD(rotloc)_{1/2} - ENDDO - ELSE -C In this case, we can consider the spatial rotation matrix only -C since each spin space is independent (paramagnetic or spin-polarized without SO computation) - ALLOCATE(rotloc(iatom)%rotl(-lsym:lsym,-lsym:lsym,lsym)) - rotloc(iatom)%rotl=0.d0 - DO l=1,lsym - rotloc(iatom)%rotl(-l:l,-l:l,l)= - = tmp_dmat(1:2*l+1,1:2*l+1,l) -C The fields rotloc(iatom)%rotl now contain D(rotloc)_{lm} - ENDDO - ENDIF -C The fields rotloc(iatom)%a,b and c will now contain the parameters linked to -C the Euler angles of the local rotation rotloc. - IF(imu.gt.1) THEN - rotloc(iatom)%a=rotloc(iatomref)%a - rotloc(iatom)%b=rotloc(iatomref)%b - rotloc(iatom)%g=rotloc(iatomref)%g - rotloc(iatom)%iprop=rotloc(iatomref)%iprop - rotloc(iatom)%krotm(1:3,1:3)= - = rotloc(iatomref)%krotm(1:3,1:3) - ENDIF -C The fields rotloc%phase, timeinv and srotnum are initialized to their -C default value. - rotloc(iatom)%phase=0.d0 - rotloc(iatom)%timeinv=.FALSE. - rotloc(iatom)%srotnum=0 -C the field rotloc(iatom)%srotnum and timeinv will be recalculated in set_rotloc. - ENDDO - DEALLOCATE(tmp_dmat) - ENDDO ! End of the isrt loop -C -C -C ==================================================================== -C Printing the rotloc matrix parameters in the file fort.17 for test : -C ==================================================================== - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - DO imu=1,nmult(isrt) - iatom=SUM(nmult(0:isrt-1))+imu - WRITE(17,'()') - WRITE(17,'(2(a,i3))')' SORT ',isrt,' IMU= ',imu - DO i=1,3 - ALLOCATE(bufreal(3)) - bufreal(1:3)=rotloc(iatom)%krotm(i,1:3) - WRITE(17,'(3f10.4)') bufreal - DEALLOCATE(bufreal) - ENDDO - WRITE(17,'(a,3f8.1,i4)')'a, b, g, iprop ==', - & rotloc(iatom)%a*180d0/Pi,rotloc(iatom)%b*180d0/Pi, - & rotloc(iatom)%g*180d0/Pi,rotloc(iatom)%iprop -C Printing the data relative to SP option - IF (ifSP) THEN - WRITE(17,*)'If DIR. magn. mom. is inverted :' - & ,rotloc(iatom)%timeinv - WRITE(17,*)'phase = ',rotloc(iatom)%phase - ENDIF -C Printing the rotloc matrices for each orbital number l. - WRITE(17,'()') - DO l=1,lsym - WRITE(17,'(a,a,i2)')'Rotation matrix ', - & 'D(R[isym])_{lm} for l = ',l - IF(ifSP.AND.ifSO) THEN - DO m=1,2*(2*l+1) - ALLOCATE(bufcomp(1:2*(2*l+1))) - bufcomp(1:2*(2*l+1))=rotloc(iatom)%rotl(m,1:2*(2*l+1),l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ELSE - DO m=-l,l - ALLOCATE(bufcomp(-l:l)) - bufcomp(-l:l)=rotloc(iatom)%rotl(m,-l:l,l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ENDIF - ENDDO - ENDDO - ENDDO -C -C -C ================================================================================== -C Computation of the true local rotation matrices for each non representative atom : -C ================================================================================== - CALL set_rotloc -C -C -C ==================================================================== -C Printing the rotloc matrix parameters in the file fort.17 for test : -C ==================================================================== - DO isrt=1,nsort - IF (notinclude(isrt)) cycle - DO imu=1,nmult(isrt) - iatom=SUM(nmult(0:isrt-1))+imu - WRITE(17,'()') - WRITE(17,'(2(a,i3))')' SORT ',isrt,' IMU= ',imu - DO i=1,3 - ALLOCATE(bufreal(3)) - bufreal(1:3)=rotloc(iatom)%krotm(i,1:3) - WRITE(17,'(3f10.4)') bufreal - DEALLOCATE(bufreal) - ENDDO - WRITE(17,'(a,3f8.1,i4)')'a, b, g, iprop ==', - & rotloc(iatom)%a*180d0/Pi,rotloc(iatom)%b*180d0/Pi, - & rotloc(iatom)%g*180d0/Pi,rotloc(iatom)%iprop -C Printing the data relative to SP option - IF (ifSP) THEN - WRITE(17,*)'If DIR. magn. mom. is inverted :' - & ,rotloc(iatom)%timeinv - WRITE(17,*)'phase = ',rotloc(iatom)%phase - ENDIF -C Printing the rotloc matrices for each orbital number l. - WRITE(17,'()') - DO l=1,lsym - WRITE(17,'(a,a,i2)')'Rotation matrix ', - & 'D(R[isym])_{lm} for l = ',l - IF(ifSP.AND.ifSO) THEN - DO m=1,2*(2*l+1) - ALLOCATE(bufcomp(1:2*(2*l+1))) - bufcomp(1:2*(2*l+1))=rotloc(iatom)%rotl(m,1:2*(2*l+1),l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ELSE - DO m=-l,l - ALLOCATE(bufcomp(-l:l)) - bufcomp(-l:l)=rotloc(iatom)%rotl(m,-l:l,l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ENDIF - ENDDO -C Printing the matrices rotrep(l)%mat - WRITE(17,'()') - DO l=1,lsym - IF (lsort(l,isrt)==0) cycle - WRITE(17,'(a,i2)')'Representation for l= ',l - IF (ifSP.AND.ifSO) THEN - DO m=1,2*(2*l+1) - ALLOCATE(bufcomp(1:2*(2*l+1))) - bufcomp(1:2*(2*l+1))= - & rotloc(iatom)%rotrep(l)%mat(m,1:2*(2*l+1)) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ELSE - DO m=-l,l - ALLOCATE(bufcomp(-l:l)) - bufcomp(-l:l)= - & rotloc(iatom)%rotrep(l)%mat(m,-l:l) - WRITE(17,'(7(2f7.3,x))') bufcomp - DEALLOCATE(bufcomp) - ENDDO - ENDIF - ENDDO - ENDDO - ENDDO -C - RETURN - END - - - - - Subroutine dmat(l,a,b,c,det,DD,length) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine computes the inverse of the matrix of the %% -C %% representation of size (2*l+1) associated to the rotation %% -C %% described by (a,b,c) angles in Euler description and with %% -C %% determinant det. %% -C %% The obtained matrix is put in the variable DD. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - IMPLICIT REAL*8 (A-H,O-Z) - INTEGER l,m,n,ifac,length - COMPLEX*16 izero,imag, dd - dimension DD(length,length) - imag=(0d0,1d0) - izero=(0d0,0d0) - pi=acos(-1d0) - - do m=-l,l - do n=-l,l - call d_matrix(l,m,n,b,dm) - if (det.lt.-0.5) then - dd(l+m+1,n+l+1)=(-1)**l*cdexp(imag*n*a) - & *cdexp(imag*m*c)*dm - else - dd(l+m+1,n+l+1)=cdexp(imag*n*a) - & *cdexp(imag*m*c)*dm - end if - 3 format(2I3,2f10.6) - end do - end do - do j=1,2*l+1 - end do - 5 format(7(2f6.3,1X)) - - end - - - Subroutine d_matrix(l,m,n,b,dm) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine is called by the subroutine dmat to compute the %% -C %% the value of the coefficient dm. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - IMPLICIT REAL*8 (A-H,O-Z) - INTEGER l,m,n,t - - sum=0d0 - - f1=dfloat(ifac(l+m)*ifac(l-m))/ - & dfloat(ifac(l+n)*ifac(l-n)) - - do t=0,2*l - if ((l-m-t).ge.0.AND.(l-n-t).ge.0.AND.(t+n+m).ge.0) then -C general factor - f2=dfloat(ifac(l+n)*ifac(l-n))/dfloat(ifac(l-m-t) - & *ifac(m+n+t)*ifac(l-n-t)*ifac(t)) -C factor with sin(b/2) - if ((2*l-m-n-2*t).eq.0) then - f3=1. - else - f3=(sin(b/2))**(2*l-m-n-2*t) - end if -C factor with cos(b/2) - if ((2*t+n+m).eq.0) then - f4=1. - else - f4=(cos(b/2))**(2*t+n+m) - end if -! write(12,*)f1,f2,f3,f4 - sum=sum+(-1)**(l-m-t)*f2*f3*f4 - end if - end do - - dm=sqrt(f1)*sum - end - - - Integer Function ifac(n) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine computes the factorial of the number n %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - if (n.eq.0) then - ifac=1 - else - ifac=1 - do j=1,n - ifac=ifac*j - end do - end if - end - - - SUBROUTINE spinrotmat(spinrot,isym,l) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine sets up the complete spinor rotation matrix %% -C %% associated to the symmetry operation isym for the orbital l. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definition of the variables : -C ----------------------------- - USE common_data - USE symm - IMPLICIT NONE - INTEGER :: l,isym - COMPLEX(KIND=8) :: ephase, det - REAL(KIND=8) :: factor - COMPLEX(KIND=8), DIMENSION(1:2*(2*l+1),1:2*(2*l+1)) :: spinrot - COMPLEX(KIND=8), DIMENSION(1:2,1:2) :: spmt -C - spinrot=0.d0 -C For a computation with spin polarized inputs : - IF (ifSP) THEN - IF (srot(isym)%timeinv) THEN -C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-antidiagonal and -C the time reversal operation will be applied to keep the direction of the magnetization. -C Up/dn block : - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (g-a) in this case. -C as a result, ephase = exp(+i(g-a)/2) = -exp(+i(alpha-gamma)/2) -C in good agreement with Wien conventions for the definition of this phase factor. - ephase=EXP(CMPLX(0.d0,factor)) - spinrot(1:2*l+1,2*l+2:2*(2*l+1))= - = ephase*srot(isym)%rotl(-l:l,-l:l,l) -C Dn/up block : - ephase=-CONJG(ephase) -C now, ephase = -exp(+i(a-g)/2) = exp(-i(alpha-gamma)/2) - spinrot(2*l+2:2*(2*l+1),1:2*l+1)= - = ephase*srot(isym)%rotl(-l:l,-l:l,l) - ELSE -C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal and -C no time reversal operation will be applied. -C Up/up block : - factor=srot(isym)%phase/2.d0 -C We remind that the field phase is (a+g) in this case. -C as a result, ephase = exp(+i(a+g)/2)=-exp(-i(alpha+gamma)/2) -C in good agreement with Wien conventions for the definition of this phase factor. - ephase=EXP(CMPLX(0.d0,factor)) - spinrot(1:2*l+1,1:2*l+1)= - = ephase*srot(isym)%rotl(-l:l,-l:l,l) -C Dn/dn block : - ephase=CONJG(ephase) -C now, ephase = exp(-i(a+g)/2) = -exp(+i(alpha+gamma)/2) - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - = ephase*srot(isym)%rotl(-l:l,-l:l,l) - ENDIF - ELSE -C For a computation with paramagnetic treatment input files. (not used in this version) -C -C In this case, there is no restriction on the value of the Euler angle beta. -C The general definition of a spinor rotation matrix is used. -C -C Calculation of the representation matrix of isym in the spin-space -C in agreement with Wien conventions used for the definition of spmt (in SRC_lapwdm/sym.f) -C Up/up and Dn/dn terms - factor=(srot(isym)%a+srot(isym)%g)/2.d0 - spmt(1,1)=EXP(CMPLX(0.d0,factor))*DCOS(srot(isym)%b/2.d0) - spmt(2,2)=CONJG(spmt(1,1)) -C Up/dn and Dn/up terms - factor=-(srot(isym)%a-srot(isym)%g)/2.d0 - spmt(1,2)=EXP(CMPLX(0.d0,factor))*DSIN(srot(isym)%b/2.d0) - spmt(2,1)=-CONJG(spmt(1,2)) -C Up/up block : - spinrot(1:2*l+1,1:2*l+1)= - & spmt(1,1)*srot(isym)%rotl(-l:l,-l:l,l) -C Dn/dn block : - spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= - & spmt(2,2)*srot(isym)%rotl(-l:l,-l:l,l) -C Up/dn block : - spinrot(1:2*l+1,2*l+2:2*(2*l+1))= - & spmt(1,2)*srot(isym)%rotl(-l:l,-l:l,l) -C Dn/up block : - spinrot(2*l+2:2*(2*l+1),1:2*l+1)= - & spmt(2,1)*srot(isym)%rotl(-l:l,-l:l,l) - ENDIF -C - RETURN - END - diff --git a/fortran/dmftproj/symmetrize_mat.f b/fortran/dmftproj/symmetrize_mat.f deleted file mode 100644 index 694f75e..0000000 --- a/fortran/dmftproj/symmetrize_mat.f +++ /dev/null @@ -1,292 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE symmetrize_mat(Dmat,orbit,norbit) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine applies the symmetry operations to the %% -C %% density matrices stored in Dmat and puts the resulting %% -C %% density matrices into the local coordinate system. %% -C %% %% -C %% This version can be used for SO computations. %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definition of the variables : -C ---------------------------- - USE common_data - USE projections - USE symm - USE reps - IMPLICIT NONE - INTEGER :: norbit - TYPE(matrix), DIMENSION(nsp,norbit) :: Dmat - COMPLEX(KIND=8),DIMENSION(:,:,:,:), ALLOCATABLE :: sym_dmat - COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: tmp_mat - COMPLEX(KIND=8):: ephase - TYPE(orbital), DIMENSION(norbit) :: orbit - INTEGER :: isym, iorb, iatom, jorb, is, is1, l, i, m - INTEGER :: isrt, jatom, imult, asym -C -C ========================================= -C Computation of the symmetrized matrices : -C ========================================= -C - iorb=1 -C Initialization of the iorb index. - DO WHILE (iorb.lt.(norbit+1)) -C The use of the while-loop was motivated by the idea of studying -C all the orbitals iorb associated to a same atomic sort isrt together. -C At the end, the index iorb is incremented by nmult(isrt) so that the -C following studied orbitals are associated to another atomic sort. - l=orbit(iorb)%l - isrt=orbit(iorb)%sort -C -C ----------------------------------------------------------------------------------- -C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : -C ----------------------------------------------------------------------------------- - IF (l==0) THEN -C The table sym_dmat will store the symmetrized value of the density matrices of Dmat -C associated to a same atomic sort isrt. - ALLOCATE(sym_dmat(1,1,nsp,1:nmult(isrt))) - sym_dmat=0.d0 -C Its size is nmult(isrt) because symmetry operations can transform the representants -C of a same atomic sort one into another. -C -C Loop on the representants of the atomic sort isrt - DO imult=0,nmult(isrt)-1 - iatom=orbit(iorb+imult)%atom -C Loop on the symmetry operations of the system - DO isym=1,nsym - DO is=1,nsp - ALLOCATE(tmp_mat(1,1)) -C If the calculation uses spin-polarized input files, the application of the symmetry operation -C depends on the field srot%timeinv. - IF(ifSP.AND.srot(isym)%timeinv) THEN -C In this case (spin-polarized computation), the symmetry operation is block-diagonal in spin-space but -C the time reversal operator is included. - tmp_mat(1,1)=CONJG(Dmat(is,iorb+imult)%mat(1,1)) -C because of the antiunitarity of the operator, the conjugate of Dmat must be use - ELSE - tmp_mat(1,1)=Dmat(is,iorb+imult)%mat(1,1) - ENDIF -C -C Definition of the index where the transformed Dmat will be stored. [jorb = R[isym](iorb)] - jorb=srot(isym)%perm(iatom)-iatom+(imult+1) -C -C Computation of the phase factors in the case of a SO computation : -C ------------------------------------------------------------------ -C For up/up and dn/dn blocks, no phase factor is needed. - ephase=1.d0 -C For the up/dn block, initialisation of the phase factor - IF(is==3) THEN - ephase=EXP(CMPLX(0d0,srot(isym)%phase)) -C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(+i(g-a)) = exp(+i(alpha-gamma)) -C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(+i(a+g)) = exp(-i(alpha+gamma)) - ENDIF -C For the dn/up block, initialisation of the phase factor - IF(is==4) THEN - ephase=EXP(CMPLX(0d0,-srot(isym)%phase)) -C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(-i(g-a)) = exp(-i(alpha-gamma)) -C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(-i(a+g)) = exp(+i(alpha+gamma)) - ENDIF -C -C Application of the symmetry operation which changes iorb in jorb=R[isym](iorb) : -C -------------------------------------------------------------------------------- -C That's why the result is stored in the jorb section of sym_dmat. - sym_dmat(1,1,is,jorb)= - = sym_dmat(1,1,is,jorb)+tmp_mat(1,1)*ephase - DEALLOCATE(tmp_mat) - ENDDO ! End of the is loop - ENDDO ! End of the isym loop - ENDDO ! End of the imult loop -C -C Renormalization of the symmetrized density matrices : -C ----------------------------------------------------- - IF (nsym.gt.0) THEN - DO imult=0,nmult(isrt)-1 - DO is=1,nsp - Dmat(is,iorb+imult)%mat(1,1)= - & sym_dmat(1,1,is,imult+1)/nsym - ENDDO - ENDDO - ENDIF - DEALLOCATE(sym_dmat) -C Incrementation of the iorb index (for the while loop) - iorb=iorb+nmult(isrt) -C -C ----------------------------------------------------------------------------------------------------- -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : -C ----------------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C The table sym_dmat will store the symmetrized value of the density matrices of Dmat -C associated to a same atomic sort isrt. - ALLOCATE(sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,1:nmult(isrt))) - sym_dmat=0.d0 -C Its size is nmult(isrt) because symmetry operations can transform the representants -C of a same atomic sort one into another. -C -C Loop on the representants of the atomic sort isrt - DO imult=0,nmult(isrt)-1 - iatom=orbit(iorb+imult)%atom -C Loop on the symmetry operations of the system - DO isym=1,nsym - ALLOCATE(tmp_mat(1:2*(2*l+1),1:2*(2*l+1))) -C We use the complete spin-space representation, so no trick on indices is necessary. - tmp_mat(1:2*(2*l+1),1:2*(2*l+1))= - & Dmat(1,iorb+imult)%mat(1:2*(2*l+1),1:2*(2*l+1)) -C If the calculation is spin-polarized, the symmetry operator is antiunitary. - IF(ifSP.AND.srot(isym)%timeinv) THEN - tmp_mat(1:2*(2*l+1),1:2*(2*l+1))= - & CONJG(tmp_mat(1:2*(2*l+1),1:2*(2*l+1))) - ENDIF -C Definition of the index where the transformed Dmat will be stored. [jorb = R[isym](iorb)] - jorb=srot(isym)%perm(iatom)-iatom+(imult+1) -C Application of the symmetry operation : -C --------------------------------------- -C The transformation is : srot%rotrep.tmpmat(iorb).inverse(sort%rotrep) = Dmat(jorb) -C or in other words, if R is a simple symmetry D(R[isym]) tmpmat(iorb) D(inverse(R[isym])) = Dmat(R[isym](iorb)) -C if R is multiplied by Theta D(R[isym]) tmpmat(iorb)* D(inverse(R[isym]))* = Dmat(R[isym](iorb)) - tmp_mat(1:2*(2*l+1),1:2*(2*l+1))= - = MATMUL(tmp_mat(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(CONJG(srot(isym)%rotrep(l,isrt) - % %mat(1:2*(2*l+1),1:2*(2*l+1)) )) ) - sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,jorb)= - = sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,jorb)+ - + MATMUL( srot(isym)%rotrep(l,isrt) - % %mat(1:2*(2*l+1),1:2*(2*l+1)) , - & tmp_mat(1:2*(2*l+1),1:2*(2*l+1))) - DEALLOCATE(tmp_mat) - ENDDO ! End of the isym loop - ENDDO ! End of the imult loop -C Renormalization of the symmetrized density matrices : -C ----------------------------------------------------- - IF (nsym.gt.0) THEN - DO imult=0,nmult(isrt)-1 - Dmat(1,iorb+imult)%mat(1:2*(2*l+1),1:2*(2*l+1))= - = sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,imult+1)/nsym - ENDDO - ENDIF - DEALLOCATE(sym_dmat) -C Incrementation of the iorb index (for the while loop) - iorb=iorb+nmult(isrt) -C -C ---------------------------------------------------------------------------------------------- -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : -C ---------------------------------------------------------------------------------------------- - ELSE -C The table sym_dmat will store the symmetrized value of the density matrices of Dmat -C associated to a same atomic sort isrt. - ALLOCATE(sym_dmat(-l:l,-l:l,nsp,1:nmult(isrt))) - sym_dmat=0.d0 -C Its size is nmult(isrt) because symmetry operations can transform the representants -C of a same atomic sort one into another. -C -C Loop on the representants of the atomic sort isrt - DO imult=0,nmult(isrt)-1 - iatom=orbit(iorb+imult)%atom -C Loop on the symmetry operations of the system - asym=0 - DO isym=1,nsym - DO is=1,nsp - ALLOCATE(tmp_mat(-l:l,-l:l)) -C If the calculation uses spin-polarized input files, the application of the symmetry operation -C depends on the field srot%timeinv. - IF(ifSP.AND.srot(isym)%timeinv) THEN -C In this case (spin-polarized computation), the symmetry operation is block-diagonal in spin-space but -C the time reversal operatot is included. - tmp_mat(-l:l,-l:l)=CONJG( - & Dmat(is,iorb+imult)%mat(-l:l,-l:l)) -C because of antiunitarity of the operator, the conjugate of Dmat must be use - ELSE - tmp_mat(-l:l,-l:l)= - & Dmat(is,iorb+imult)%mat(-l:l,-l:l) - ENDIF -C -C Definition of the index where the transformed Dmat will be stored. [jorb = R[isym](iorb)] - jorb=srot(isym)%perm(iatom)-iatom+(imult+1) -C -C Computation of the phase factors in the case of a SO computation : -C ------------------------------------------------------------------ -C For up/up and dn/dn blocks, no phase factor is needed. - ephase=1.d0 -C For the up/dn block, initialisation of the phase factor - IF(is==3) THEN - ephase=EXP(CMPLX(0d0,srot(isym)%phase)) -C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(+i(g-a)) = exp(+i(alpha-gamma)) -C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(+i(a+g)) = exp(-i(alpha+gamma)) - ENDIF -C For the dn/up block, initialisation of the phase factor - IF(is==4) THEN - ephase=EXP(CMPLX(0d0,-srot(isym)%phase)) -C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(-i(g-a)) = exp(-i(alpha-gamma)) -C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(-i(a+g)) = exp(+i(alpha+gamma)) - ENDIF -C -C Application of the symmetry operation which changes iorb in jorb : -C ------------------------------------------------------------------ -C The transformation is : srot%rotrep.tmpmat(iorb).inverse(sort%rotrep) = Dmat(jorb) -C or in other words, if R is a simple symmetry D(R[isym]) tmpmat(iorb) D(inverse(R[isym])) = Dmat(R[isym](iorb)) -C if R is multiplied by T D(R[isym]) tmpmat(iorb)* D(inverse(R[isym]))* = Dmat(R[isym](iorb)) - tmp_mat(-l:l,-l:l)= - = MATMUL(tmp_mat(-l:l,-l:l), - & TRANSPOSE(CONJG( srot(isym) - & %rotrep(l,isrt)%mat(-l:l,-l:l) )) ) - sym_dmat(-l:l,-l:l,is,jorb)= - = sym_dmat(-l:l,-l:l,is,jorb)+ - + MATMUL(srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l), - & tmp_mat(-l:l,-l:l) )*ephase - DEALLOCATE(tmp_mat) - ENDDO ! End of the is loop - ENDDO ! End of the isym loop - ENDDO ! End of the imult loop -C -C Renormalization of the symmetrized density matrices : -C ----------------------------------------------------- - IF (nsym.gt.0) THEN - DO imult=0,nmult(isrt)-1 - DO is=1,nsp - Dmat(is,iorb+imult)%mat(-l:l,-l:l)= - = sym_dmat(-l:l,-l:l,is,imult+1)/(nsym-asym) - ENDDO - ENDDO - ENDIF - DEALLOCATE(sym_dmat) -C Incrementation of the iorb index (for the while loop) - iorb=iorb+nmult(isrt) - ENDIF ! End of the type basis if-then-else -C - ENDDO ! End of the while(iorb) loop -C -C -C ============================================================= -C Application of the time reversal operation if paramagnetism : -C ============================================================= -C If the system is paramagnetic, the magnetic group of the system -C is a type II Shubnikov group and time-reveral symmetry must be added -C to achieve the complete symmetrization. - IF (.not.ifSP) THEN - CALL add_timeinv(Dmat,orbit,norbit) - END IF -C - RETURN - END diff --git a/fortran/dmftproj/timeinv.f b/fortran/dmftproj/timeinv.f deleted file mode 100644 index 481df40..0000000 --- a/fortran/dmftproj/timeinv.f +++ /dev/null @@ -1,289 +0,0 @@ - -c ****************************************************************************** -c -c TRIQS: a Toolbox for Research in Interacting Quantum Systems -c -c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn -c -c TRIQS is free software: you can redistribute it and/or modify it under the -c terms of the GNU General Public License as published by the Free Software -c Foundation, either version 3 of the License, or (at your option) any later -c version. -c -c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY -c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -c details. -c -c You should have received a copy of the GNU General Public License along with -c TRIQS. If not, see . -c -c *****************************************************************************/ - - SUBROUTINE timeinv_op(mat,lm,l,isrt) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine applies the time reversal operation to the %% -C %% matrix mat which is associated to the l orbital of the atomic %% -C %% isrt. (matrix size = lm) The matrix mat is assumed to already %% -C %% be in the desired basis associated to isrt. %% -C %% The calculation done is : %% -C %% reptrans*T*conjg((inv(reptrans))*conjg(mat) %% -C %% %% -C %% If isrt=0, the matrix mat is assumed to be in the spherical %% -C %% harmonics basis and no spin is considered. (lm = 2*l+1) %% -C %% The calculation done is then : T*conjg(mat) %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data - USE reps - IMPLICIT NONE - INTEGER :: lm,l,isrt - COMPLEX(KIND=8), DIMENSION(1:lm,1:lm) :: mat - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tinv - COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_tinv - COMPLEX(KIND=8), DIMENSION(-l:l,-l:l) :: tmat - INTEGER :: m,n -C -C Definition of the complex conjugation operator in the spherical harmonic basis : -C -------------------------------------------------------------------------------- -C - tmat = CMPLX(0.d0,0.d0) - DO m=-l,l - tmat(m,-m)=(-1)**m - END DO -C -C -C Calculation of the Time-reversal operator in the desired representation basis : -C ------------------------------------------------------------------------------- -C - IF (isrt==0) THEN -C The case isrt=0 is a "default case" : -C mat is in the spherical harmonic basis (without spinor representation) - ALLOCATE(tinv(1:2*l+1,1:2*l+1)) - tinv(1:2*l+1,1:2*l+1)=tmat(-l:l,-l:l) - ELSE -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) - IF (reptrans(l,isrt)%ifmixing) THEN - ALLOCATE(tinv(1:2*(2*l+1),1:2*(2*l+1))) - ALLOCATE(tmp_tinv(1:2*(2*l+1),1:2*(2*l+1))) - tinv = CMPLX(0.d0,0.d0) - tmp_tinv = CMPLX(0.d0,0.d0) -C Definition of the time-reversal operator as a spinor-operator (multiplication by -i.sigma_y) - tinv(1:2*l+1,2*l+2:2*(2*l+1))=-tmat(-l:l,-l:l) - tinv(2*l+2:2*(2*l+1),1:2*l+1)=tmat(-l:l,-l:l) -C The time reversal operator is put in the desired basis. - tmp_tinv(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( - & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), - & tinv(1:2*(2*l+1),1:2*(2*l+1))) - tinv(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( - & tmp_tinv(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(reptrans(l,isrt)%transmat - & (1:2*(2*l+1),1:2*(2*l+1)) ) ) -C the result tinv = (reptrans)*tinv*transpose(reptrans) -C or tinv_{new_i} = tinv_{lm} ()* -C which is exactly the expression of the spinor operator in the new basis. - DEALLOCATE(tmp_tinv) -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) - ELSE - ALLOCATE(tinv(1:2*l+1,1:2*l+1)) - ALLOCATE(tmp_tinv(-l:l,-l:l)) - tinv = CMPLX(0.d0,0.d0) - tmp_tinv = CMPLX(0.d0,0.d0) -C The time reversal operator is put in the desired basis. - tmp_tinv(-l:l,-l:l)=MATMUL( - & reptrans(l,isrt)%transmat(-l:l,-l:l), - & tmat(-l:l,-l:l) ) - tinv(1:2*l+1,1:2*l+1)=MATMUL( - & tmp_tinv(-l:l,-l:l),TRANSPOSE( - & reptrans(l,isrt)%transmat(-l:l,-l:l)) ) - DEALLOCATE(tmp_tinv) - END IF -C the result tinv = (reptrans)*tinv*transpose(reptrans) -C or tinv_{new_i} = tinv_{lm} ()* -C which is exactly the expression of the operator in the new basis. - END IF -C -C -C Multiplication of the matrix mat by the time reversal operator : -C ---------------------------------------------------------------- -C - mat(1:lm,1:lm) = MATMUL( - & tinv(1:lm,1:lm),CONJG(mat(1:lm,1:lm)) ) - DEALLOCATE(tinv) -C The multiplication is the product of tinv and (mat)* -C - RETURN - END - - - - SUBROUTINE add_timeinv(Dmat,orbit,norbit) -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -C %% %% -C %% This subroutine calculates for each density matrix in Dmat %% -C %% its image by the time-reversal operator and adds it to the %% -C %% former one to get a time-symmetrized result. %% -C %% %% -C %% This operation is done only if the computation is paramagnetic %% -C %% %% -C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -C Definiton of the variables : -C ---------------------------- - USE common_data - USE projections - USE symm - USE reps - IMPLICIT NONE - INTEGER :: norbit - TYPE(matrix), DIMENSION(nsp,norbit) :: Dmat - COMPLEX(KIND=8),DIMENSION(:,:,:), ALLOCATABLE :: rot_dmat - COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: time_op - COMPLEX(KIND=8),DIMENSION(:,:,:), ALLOCATABLE :: tmp_mat - COMPLEX(KIND=8):: ephase - TYPE(orbital), DIMENSION(norbit) :: orbit - INTEGER :: isym, iorb, iatom, jorb, is, is1, l, i - INTEGER :: isrt, jatom, imult, m -C -C - DO iorb=1,norbit - l=orbit(iorb)%l - isrt=orbit(iorb)%sort - iatom=orbit(iorb)%atom -C ----------------------------------------------------------------------------------- -C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : -C ----------------------------------------------------------------------------------- - IF(l==0) THEN - IF (nsp==1) THEN - Dmat(1,iorb)%mat(1,1) = - & ( Dmat(1,iorb)%mat(1,1)+ - & CONJG(Dmat(1,iorb)%mat(1,1)) )/2.d0 - ELSE - ALLOCATE(tmp_mat(1,1,nsp)) - tmp_mat=0.d0 -C Application of the time-reversal operation -C ------------------------------------------ - DO is=1,nsp - is1=is+(-1)**(is+1) -C the time reversal operation transforms up/up -1- in dn/dn -2- and up/dn -3- in dn/up -4- (and vice versa) - tmp_mat(1,1,is)=CONJG(Dmat(is1,iorb)%mat(1,1) ) - IF (is.gt.2) tmp_mat(1,1,is)=-tmp_mat(1,1,is) -C Off diagonal blocks are multiplied by (-1). - ENDDO -C Symmetrization of Dmat : -C ------------------------ - DO is=1,nsp - Dmat(is,iorb)%mat(1,1) = (Dmat(is,iorb)%mat(1,1)+ - & tmp_mat(1,1,is) )/2.d0 - ENDDO - DEALLOCATE(tmp_mat) - ENDIF -C ----------------------------------------------------------------------------------------------------- -C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : -C ----------------------------------------------------------------------------------------------------- - ELSEIF (reptrans(l,isrt)%ifmixing) THEN -C Calculation of the time-reversal operator : -C ------------------------------------------- - ALLOCATE(time_op(1:2*(2*l+1),1:2*(2*l+1))) - time_op(:,:)=0.d0 - DO m=1,2*(2*l+1) - time_op(m,m)=1.d0 - ENDDO -C time_op is Identity. - CALL timeinv_op(time_op,2*(2*l+1),l,isrt) -C time_op is now the time-reversal operator in the desired basis ({new_i}) -C -C Application of the time-reversal operation -C ------------------------------------------ - ALLOCATE(tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1)) - tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1)= - = MATMUL(Dmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)), - & TRANSPOSE(time_op(1:2*(2*l+1),1:2*(2*l+1)) ) ) - tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1)= - = MATMUL(time_op(1:2*(2*l+1),1:2*(2*l+1)), - & CONJG(tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1) ) ) -C The operation performed is : time_op.conjugate(Dmat).transpose(conjugate(time_op)) -C or in other words, D(T)_{new_i} . Dmat* . D(inverse(T))*_{new_i} -C -C Symmetrization of Dmat : -C ------------------------ - Dmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) = - & ( Dmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) + - & tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1) )/2.d0 - DEALLOCATE(tmp_mat) - DEALLOCATE(time_op) -C ---------------------------------------------------------------------------------------------- -C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : -C ---------------------------------------------------------------------------------------------- - ELSE -C Calculation of the time-reversal operator : -C ------------------------------------------- - ALLOCATE(time_op(-l:l,-l:l)) - time_op(:,:)=0.d0 - DO m=-l,l - time_op(m,m)=1.d0 - ENDDO -C time_op is Identity. - CALL timeinv_op(time_op,(2*l+1),l,isrt) -C time_op is now the time-reversal operator in the desired basis ({new_i}) -C - IF (nsp==1) THEN -C Application of the time-reversal operation and symmetrization : -C --------------------------------------------------------------- - ALLOCATE(tmp_mat(-l:l,-l:l,1)) - tmp_mat(-l:l,-l:l,1)= - = MATMUL( Dmat(1,iorb)%mat(-l:l,-l:l), - & TRANSPOSE(time_op(-l:l,-l:l) ) ) - tmp_mat(-l:l,-l:l,1)= - = MATMUL(time_op(-l:l,-l:l), - & CONJG(tmp_mat(-l:l,-l:l,1)) ) -C The operation performed is : time_op.conjugate(Dmat).transpose(conjugate(time_op)) -C or in other words, D(T)_{new_i} . Dmat* . D(inverse(T))*_{new_i} - Dmat(1,iorb)%mat(-l:l,-l:l) = - & ( Dmat(1,iorb)%mat(-l:l,-l:l) + - & tmp_mat(-l:l,-l:l,1) )/2.d0 - DEALLOCATE(tmp_mat) - ELSE -C Application of the time-reversal operation -C ------------------------------------------ - ALLOCATE(tmp_mat(-l:l,-l:l,nsp)) - DO is=1,nsp - is1=is+(-1)**(is+1) -C the time reversal operation transforms up/up -1- in dn/dn -2- and up/dn -3- in dn/up -4 (and vice versa) - tmp_mat(-l:l,-l:l,is)= - = MATMUL( Dmat(is1,iorb)%mat(-l:l,-l:l), - & TRANSPOSE( time_op(-l:l,-l:l) ) ) - tmp_mat(-l:l,-l:l,is)= - = MATMUL( time_op(-l:l,-l:l), - & CONJG( tmp_mat(-l:l,-l:l,is) ) ) -C The operation performed is : time_op.conjugate(Dmat).transpose(conjugate(time_op)) -C or in other words, D(T)_{new_i} . Dmat* . D(inverse(T))*_{new_i} - IF (is.gt.2) THEN - tmp_mat(-l:l,-l:l,is)=-tmp_mat(-l:l,-l:l,is) - ENDIF -C Off diagonal terms are multiplied by (-1). - ENDDO -C Symmetrization of Dmat : -C ------------------------ - DO is=1,nsp - Dmat(is,iorb)%mat(-l:l,-l:l) = - & (Dmat(is,iorb)%mat(-l:l,-l:l)+ - & tmp_mat(-l:l,-l:l,is) )/2.d0 - ENDDO - DEALLOCATE(tmp_mat) - ENDIF - DEALLOCATE(time_op) -C - ENDIF ! End of the type basis if-then-else - ENDDO ! End of the iorb loop -C - RETURN - END - - - - diff --git a/python/triqs_dftkit/wien2k/outband.py b/python/triqs_dftkit/wien2k/outband.py new file mode 100644 index 0000000..c4e3a12 --- /dev/null +++ b/python/triqs_dftkit/wien2k/outband.py @@ -0,0 +1,329 @@ +################################################################################ +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +################################################################################ + +"""Pure-Python generation of the dmftproj band-structure projector file +(case.outband), replacing the -band path of the dmftproj Fortran executable +(outband.f). + +case.outband feeds the converter method convert_bands_input: it is the +band-structure analog of case.ctqmcout. The correlated-shell projectors are +built exactly as in ctqmcout.py (raw Alm/Clm projector -> rot_projectmat local +rotation -> cubic/fromfile transmat -> Loewdin orthonormalization +orthogonal_wannier_SO), but evaluated on a band k-path and written in the +outband layout. case.outband also carries the raw radial-normalized Theta +projector pr_orb%matn_rep for every included shell (the parproj.py path, no +Loewdin) and the k-path labels. + +Two band-mode differences from the ctqmcout path (dmftproj.f:557-581): + +- nkband, the number of k-points along the plotted k-path, is read from + .klist_band (read_k_list.f). It is written in the header and drives the + k-label block; the per-k projector/band data loop over the almblm nk, which is + the single representative k-point lapw2 -almd writes in band mode. +- the Fermi energy is read from the LAST line of .indmftpr, not from the + almblm header; the band almblm keeps the eferm record as a placeholder that + the reader skips (READ(iualmblm,*) with no target). + +outband layout is outband.f:56-278: nkband, the per-spin per-k band counts, the +Loewdin correlated projectors (DO ik, DO icrorb), H(k) eigenvalues, the +included-orbital radial sizes, the raw Theta projectors, and the k-labels. +""" + +import os +import tempfile +import numpy as np +from scipy.linalg.blas import zgemm + +from ._dmftproj import (dmat, read_almblm, read_dmftsym, read_fromfile, + read_indmftpr, reptrans, select_window, to_float, + write_row) +from .ctqmcout import _build_crorbs, _sqrt_inv +from .parproj import (_build_matn_rep, _build_matn_rep_mixing, _build_orbs) + + +def _read_indmftpr_band(indmftpr): + """case.indmftpr in band mode: the standard parse, plus the Fermi energy + appended as the last physical line after the (e_bot e_top proj_mode) window + line. The trailing scalar would be mistaken for the window line, so feed + read_indmftpr the file without that record and return eferm separately.""" + raw = [l.split('!')[0].rstrip('\n') for l in open(indmftpr)] + nonblank = [i for i, l in enumerate(raw) if l.strip() != ''] + eferm = to_float(raw[nonblank[-1]].split()[0]) + tmp = tempfile.NamedTemporaryFile('w', suffix='.indmftpr', delete=False, + dir=os.path.dirname(os.path.abspath(indmftpr))) + tmp.write('\n'.join(raw[:nonblank[-1]]) + '\n') + tmp.close() + try: + info = read_indmftpr(tmp.name) + finally: + os.unlink(tmp.name) + return info, eferm + + +def _read_almblm_band(path, info, eferm): + """Band-mode almblm read: identical to read_almblm but the header eferm + record is a placeholder the band path ignores; the Fermi shift uses the + eferm passed in (from case.indmftpr, dmftproj.f:576-581). read_almblm reads + the 4th record as eferm, so overwrite that record with the indmftpr value.""" + text = open(path).read().splitlines() + text[3] = ' %.16E' % eferm # Reader record 4 (physical line index 3) + tmp = tempfile.NamedTemporaryFile('w', suffix='.almblm', delete=False) + tmp.write('\n'.join(text) + '\n') + tmp.close() + try: + return read_almblm(tmp.name, info, projectors=True) + finally: + os.unlink(tmp.name) + + +def read_k_list(path): + """nkband and the k-path labels from .klist_band (read_k_list.f). + + Every physical line up to the END marker is a k-point; a line whose first + character is not a blank carries a label, whose position is the k-point + index and whose name is the leading non-blank token. Returns + (nkband, [(pos, name), ...]).""" + lines = open(path).read().splitlines() + nkband = 0 + labels = [] + for line in lines: + if line[:3] == 'END': + break + nkband += 1 + if line[:1] != ' ': + labels.append((nkband, line.split()[0])) + return nkband, labels + + +def write_outband(case): + """Read .almblm{up,dn}, .indmftpr, .struct, + .dmftsym and .klist_band and write .outband in the + dmftproj band format.""" + info, eferm = _read_indmftpr_band(case + '.indmftpr') + nsym, ops, rotloc_ref = read_dmftsym(case + '.dmftsym', rotloc=True) + + up, dn = case + '.almblmup', case + '.almblmdn' + if os.path.exists(up) and os.path.exists(dn): + spin_files = [up, dn] + else: + spin_files = [case + '.almblm'] + ifSP = len(spin_files) == 2 + ifSO = bool(info['so']) + ns = 2 if ifSP else 1 + + spins = [_read_almblm_band(p, info, eferm) for p in spin_files] + nk = spins[0]['nk'] + info['nk'] = nk + + nkband, labels = read_k_list(case + '.klist_band') + + crorbs = _build_crorbs(info) + orbs = _build_orbs(info) + ncrorb = len(crorbs) + norb = len(orbs) + + # proj_mode 0 energy window [e_bot, e_top] per k (band path: proj_mode 0). + windows = [] + for ik in range(nk): + kp = spins[0]['kp'][ik] + windows.append(select_window(kp['nbmin'], kp['nbmax'], kp['eband'], + info['e_bot'], info['e_top'])) + + transmats = {} + mixing = {} + for o in orbs: + key = (o['l'], o['sort']) + if key in transmats: + continue + if o['basis'] == 'fromfile': + transmats[key], mixing[key] = read_fromfile( + info['sorts'][o['sort'] - 1]['sourcefile'], o['l']) + else: + transmats[key], mixing[key] = reptrans(o['basis'], o['l']), False + + # rot_projectmat local rotation: the op mapping the sort representative onto + # this atom (set_projections.f via rot_projectmat). Same as ctqmcout/parproj. + rotloc_op = {} + for o in orbs: + iref = sum(info['mult'][:o['sort'] - 1]) + 1 + rotloc_op[o['atom']] = next(op for op in ops + if op['perm'][iref - 1] == o['atom']) + + # ---- correlated projector mat_rep, then Loewdin orthonormalize ---- + mat_rep = {} + for icr, cr in enumerate(crorbs): + l = cr['l'] + atom = cr['atom'] + sort = cr['sort'] + d = 2 * l + 1 + transmat = transmats[(l, sort)] + ismix = mixing[(l, sort)] + op = rotloc_op[atom] + rot = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + kp0 = spins[0]['kp'][ik] + off_bot = nb_bot - kp0['nbmin'] + off_top = nb_top - kp0['nbmin'] + nbsel = off_top - off_bot + 1 + spin_blocks = [] + for ispin in range(ns): + sp = spins[ispin] + kp = sp['kp'][ik] + nlo = sp['nLO'][(l, sort)] + P = np.zeros((d, nbsel), dtype=complex) + for mi, m in enumerate(range(-l, l + 1)): + lm = l * l + (m + l) + for j, off in enumerate(range(off_bot, off_top + 1)): + val = kp['Alm'][lm, atom, off] + for ilo in range(nlo): + val += kp['Clm'][ilo, lm, atom, off] * \ + sp['ovl_LO_u'][(ilo + 1, l, sort)] + P[mi, j] = val + spin_blocks.append(rot @ P) + if ismix: + stack = np.vstack(spin_blocks) + mat_rep[(icr, ik)] = transmat @ stack + else: + for ispin in range(ns): + mat_rep[(icr, ik, ispin)] = transmat @ spin_blocks[ispin] + + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + blocks = [] + layout = [] + for icr, cr in enumerate(crorbs): + l = cr['l'] + if mixing[(l, cr['sort'])]: + blocks.append(mat_rep[(icr, ik)]) + layout.append(((icr, ik), 2 * (2 * l + 1))) + else: + for ispin in range(ns): + blocks.append(mat_rep[(icr, ik, ispin)]) + layout.append(((icr, ik, ispin), 2 * l + 1)) + D = np.vstack(blocks) + # match the Fortran's exact BLAS calls (orthogonal_wannier_SO): the + # near-singular O^{-1/2} amplifies any last-bit difference, so use the + # identical ZGEMM trans flags rather than numpy's conj-transpose copies. + O = zgemm(1.0, D, D, trans_b=2) # ZGEMM('N','C'): D @ D^H + S = _sqrt_inv(O) + D_orth = zgemm(1.0, S, D) # ZGEMM('N','N'): O^{-1/2} @ D + row = 0 + for key, nrows in layout: + mat_rep[key] = D_orth[row:row + nrows, :] + row += nrows + + # ---- raw Theta projectors matn_rep per included orbital (parproj path) ---- + matn_reps = {} + for o in orbs: + l = o['l'] + transmat = transmats[(l, o['sort'])] + op = rotloc_op[o['atom']] + rot = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + if mixing[(l, o['sort'])]: + matn_reps[o['atom']] = _build_matn_rep_mixing( + o, info, spins, windows, transmat, rot) + else: + matn_reps[o['atom']] = _build_matn_rep( + o, info, spins, ns, windows, transmat, rot) + + # ---- write ---- + with open(case + '.outband', 'w') as f: + f.write('%6d\n' % nkband) + + # number of bands per k (skip is=2 under SP+SO) + for ispin in range(ns): + if ifSP and ifSO and ispin == 1: + continue + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + f.write('%6d\n' % abs(nb_top - nb_bot + 1)) + + # correlated projector block: DO ik, DO icrorb (Loewdin orthonormalized). + for ik in range(nk): + for icr, cr in enumerate(crorbs): + l = cr['l'] + if mixing[(l, cr['sort'])]: + P = mat_rep[(icr, ik)] + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].real) + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].imag) + continue + for ispin in range(ns): + P = mat_rep[(icr, ik, ispin)] + for mi in range(2 * l + 1): + write_row(f, P[mi, :].real) + for ispin in range(ns): + P = mat_rep[(icr, ik, ispin)] + for mi in range(2 * l + 1): + write_row(f, P[mi, :].imag) + + # H(k) eigenvalues (skip is=2 under SO) + for ispin in range(ns): + if ifSO and ispin == 1: + continue + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + kp = spins[ispin]['kp'][ik] + for ib in range(nb_bot, nb_top + 1): + f.write(' %.16E\n' % kp['eband'][ib - kp['nbmin']]) + + # included-orbital radial sizes norm_radf%n + for o in orbs: + n = spins[0]['nLO'][(o['l'], o['sort'])] + 2 + f.write('%6d\n' % n) + + # Theta projector block: DO iorb, DO ik, DO ir. Mixing writes the full + # 2(2l+1) block from is=1; non-mixing the two (2l+1) spin blocks. + for o in orbs: + l = o['l'] + atom = o['atom'] + n = spins[0]['nLO'][(l, o['sort'])] + 2 + ismix = mixing[(l, o['sort'])] + for ik in range(nk): + incl, nb_bot, nb_top = windows[ik] + if not incl: + continue + for ir in range(n): + if ismix: + P = matn_reps[atom][ik][:, :, ir] + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].real) + for m in range(2 * (2 * l + 1)): + write_row(f, P[m, :].imag) + continue + for ispin in range(ns): + P = matn_reps[atom][(ik, ispin)][:, :, ir] + for mi in range(2 * l + 1): + write_row(f, P[mi, :].real) + for ispin in range(ns): + P = matn_reps[atom][(ik, ispin)][:, :, ir] + for mi in range(2 * l + 1): + write_row(f, P[mi, :].imag) + + # k-labels + for i, (pos, name) in enumerate(labels, start=1): + f.write('%6d%6d%s\n' % (i, pos, name)) diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index d5e1c7d..23ac38c 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -106,3 +106,18 @@ add_test(NAME Py_wien2k_dmftproj_common WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_dmftproj_common APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) +# Pure-Python case.outband band-structure projector generator (the -band path +# that feeds convert_bands_input) vs the precision-fixed dmftproj -band output. +# The CaOs2_band fixture is the spin-mixing fromfile (|j, m_j>) Os d shell on a +# 4-point k-path; the band almblm carries a single representative k-point and the +# Fermi energy comes from the last line of the band indmftpr. Reuses +# CaOs2.struct/dmftsym and jbasis_d.dat; floats compared at 1e-11 (full-rank +# wide window). +file(COPY CaOs2_band.indmftpr CaOs2_band.klist_band + CaOs2_band.almblmup.gz CaOs2_band.almblmdn.gz CaOs2_band.outband.gz + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +add_test(NAME Py_wien2k_outband_python + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_outband_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_outband_python APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2_band.almblmdn.gz b/test/python/wien2k/CaOs2_band.almblmdn.gz new file mode 100644 index 0000000000000000000000000000000000000000..0329e742b78dd946c0adfb4d5030ea29aa951b42 GIT binary patch literal 234368 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 z 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

V+!$Dl#_PZK)Zt3(T}O`bx)z^)%__wJ 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 z%0A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 literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_band.almblmup.gz b/test/python/wien2k/CaOs2_band.almblmup.gz new file mode 100644 index 0000000000000000000000000000000000000000..3eccf626ebe2590297720661d51ad9ef9fe1c371 GIT binary patch literal 234291 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

uNmLZATD8_k<`~*xLZJwOh3@1 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

M&Yn3nGzC)pCP`MubB<+wDn&U| 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 literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_band.indmftpr b/test/python/wien2k/CaOs2_band.indmftpr new file mode 100644 index 0000000..6aa6f67 --- /dev/null +++ b/test/python/wien2k/CaOs2_band.indmftpr @@ -0,0 +1,13 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +fromfile +jbasis_d.dat +0 0 2 0 +0 0 0 0 +1 +-2.0 3.0 +0.6529001225 diff --git a/test/python/wien2k/CaOs2_band.klist_band b/test/python/wien2k/CaOs2_band.klist_band new file mode 100644 index 0000000..14790bc --- /dev/null +++ b/test/python/wien2k/CaOs2_band.klist_band @@ -0,0 +1,5 @@ +GAMMA 0 0 0 8 2.0 + 1 0 0 8 2.0 + 2 0 0 8 2.0 +X 4 0 0 8 2.0 +END diff --git a/test/python/wien2k/CaOs2_band.outband.gz b/test/python/wien2k/CaOs2_band.outband.gz new file mode 100644 index 0000000000000000000000000000000000000000..606fec39e3d85086a1ac9d503f120c06d1650425 GIT binary patch literal 65216 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

XF+HS*zyTEwhDjHL{y`Fz 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%0DPKo8g<;gzIrFU@ly$&SWo?ue06uhF!B-AijTp3t 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 rot_projectmat -> fromfile/cubic transmat -> Loewdin +# orthonormalization) plus the raw Theta projectors of the parproj path, written +# in the outband layout. The CaOs2_band fixture is SP+SO with the spin-mixing +# fromfile (|j, m_j>) Os d shell (jbasis_d.dat); the wide window (-2.0, 3.0) +# keeps 50 bands > 20 correlated spin-orbitals, so the Loewdin overlap is full +# rank and the projectors match to machine precision. +# +# Band-mode specifics (dmftproj.f:557-581): nkband, the number of k-points along +# the plotted path, is read from CaOs2_band.klist_band; the Fermi energy is the +# last line of CaOs2_band.indmftpr (the band almblm keeps a placeholder eferm +# record that the reader skips). + +import gzip +import os +import shutil +import tempfile + +from triqs_dftkit.wien2k import outband + +HERE = os.path.dirname(os.path.abspath(__file__)) + + +def _gunzip(src, dst): + with gzip.open(src, 'rb') as fi, open(dst, 'wb') as fo: + shutil.copyfileobj(fi, fo) + + +def _compare(got_path, ref_lines): + got = open(got_path).read().split() + ref = ''.join(ref_lines).split() + assert len(got) == len(ref), (len(got), len(ref)) + max_int, max_float = 0, 0.0 + for a, b in zip(got, ref): + if a.lstrip('-').isdigit() and b.lstrip('-').isdigit(): + max_int = max(max_int, abs(int(a) - int(b))) + elif _isfloat(a) and _isfloat(b): + max_float = max(max_float, abs(float(a) - float(b))) + else: + assert a == b, (a, b) # k-label tokens + assert max_int == 0, f'integer field differs (max {max_int})' + assert max_float < 1e-11, f'float field differs (max {max_float:.2e})' + + +def _isfloat(tok): + try: + float(tok) + return True + except ValueError: + return False + + +def _check(case): + tmp = tempfile.mkdtemp() + try: + for ext in ('indmftpr', 'klist_band'): + shutil.copy(os.path.join(HERE, f'{case}.{ext}'), + os.path.join(tmp, f'{case}.{ext}')) + shutil.copy(os.path.join(HERE, 'jbasis_d.dat'), + os.path.join(tmp, 'jbasis_d.dat')) + for ext in ('struct', 'dmftsym'): + shutil.copy(os.path.join(HERE, f'CaOs2.{ext}'), + os.path.join(tmp, f'{case}.{ext}')) + for ext in ('almblmup', 'almblmdn'): + _gunzip(os.path.join(HERE, f'{case}.{ext}.gz'), + os.path.join(tmp, f'{case}.{ext}')) + outband.write_outband(os.path.join(tmp, case)) + with gzip.open(os.path.join(HERE, f'{case}.outband.gz'), 'rt') as fh: + _compare(os.path.join(tmp, f'{case}.outband'), fh.readlines()) + finally: + shutil.rmtree(tmp) + + +_check('CaOs2_band') + +print('wien2k_outband_python: ok') From fff6016e16c6071e5a6d5fba56d1a99ea12ab5d9 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 18:27:09 +0200 Subject: [PATCH 12/16] restore fortran/dmftproj (accidentally removed in the outband commit) The Fortran stays on the generator stack; only the capstone removes it. --- fortran/dmftproj/CMakeLists.txt | 25 + fortran/dmftproj/SRC_templates/case.cf_f_mm2 | 14 + .../dmftproj/SRC_templates/case.cf_p_cubic | 7 + fortran/dmftproj/SRC_templates/case.indmftpr | 16 + fortran/dmftproj/SRC_templates/run_triqs | 784 +++++++++ fortran/dmftproj/SRC_templates/runsp_triqs | 975 ++++++++++++ fortran/dmftproj/density.f | 1109 +++++++++++++ fortran/dmftproj/dmftproj.f | 884 +++++++++++ fortran/dmftproj/modules.f | 412 +++++ fortran/dmftproj/orthogonal.f | 225 +++ fortran/dmftproj/orthogonal_wannier.f | 593 +++++++ fortran/dmftproj/outband.f | 287 ++++ fortran/dmftproj/outbwin.f | 92 ++ fortran/dmftproj/outputqmc.f | 1405 +++++++++++++++++ fortran/dmftproj/read_k_list.f | 98 ++ fortran/dmftproj/readcomline.f | 105 ++ fortran/dmftproj/rot_dens.f | 239 +++ fortran/dmftproj/rot_projectmat.f | 72 + fortran/dmftproj/set_ang_trans.f | 543 +++++++ fortran/dmftproj/set_projections.f | 749 +++++++++ fortran/dmftproj/set_rotloc.f | 368 +++++ fortran/dmftproj/setsym.f | 886 +++++++++++ fortran/dmftproj/symmetrize_mat.f | 292 ++++ fortran/dmftproj/timeinv.f | 289 ++++ 24 files changed, 10469 insertions(+) create mode 100644 fortran/dmftproj/CMakeLists.txt create mode 100644 fortran/dmftproj/SRC_templates/case.cf_f_mm2 create mode 100644 fortran/dmftproj/SRC_templates/case.cf_p_cubic create mode 100644 fortran/dmftproj/SRC_templates/case.indmftpr create mode 100755 fortran/dmftproj/SRC_templates/run_triqs create mode 100755 fortran/dmftproj/SRC_templates/runsp_triqs create mode 100644 fortran/dmftproj/density.f create mode 100644 fortran/dmftproj/dmftproj.f create mode 100644 fortran/dmftproj/modules.f create mode 100644 fortran/dmftproj/orthogonal.f create mode 100644 fortran/dmftproj/orthogonal_wannier.f create mode 100644 fortran/dmftproj/outband.f create mode 100644 fortran/dmftproj/outbwin.f create mode 100644 fortran/dmftproj/outputqmc.f create mode 100644 fortran/dmftproj/read_k_list.f create mode 100644 fortran/dmftproj/readcomline.f create mode 100644 fortran/dmftproj/rot_dens.f create mode 100644 fortran/dmftproj/rot_projectmat.f create mode 100644 fortran/dmftproj/set_ang_trans.f create mode 100644 fortran/dmftproj/set_projections.f create mode 100644 fortran/dmftproj/set_rotloc.f create mode 100644 fortran/dmftproj/setsym.f create mode 100644 fortran/dmftproj/symmetrize_mat.f create mode 100644 fortran/dmftproj/timeinv.f diff --git a/fortran/dmftproj/CMakeLists.txt b/fortran/dmftproj/CMakeLists.txt new file mode 100644 index 0000000..0eddc06 --- /dev/null +++ b/fortran/dmftproj/CMakeLists.txt @@ -0,0 +1,25 @@ +# List the sources +set(SOURCES modules.f dmftproj.f readcomline.f set_ang_trans.f setsym.f + set_rotloc.f timeinv.f read_k_list.f set_projections.f orthogonal.f + rot_projectmat.f density.f symmetrize_mat.f rot_dens.f + orthogonal_wannier.f outputqmc.f outbwin.f outband.f) + +# The main target and what to link with... +add_executable(dmftproj ${SOURCES}) +target_link_libraries(dmftproj nda::blas_lapack) + +# where to install +install (TARGETS dmftproj DESTINATION bin) + +# install wien2k files +SET(D ${CMAKE_CURRENT_SOURCE_DIR}/SRC_templates/) +SET(WIEN_SRC_TEMPL_FILES ${D}/case.cf_f_mm2 ${D}/case.cf_p_cubic ${D}/case.indmftpr ${D}/run_triqs ${D}/runsp_triqs) +message(STATUS "-----------------------------------------------------------------------------") +message(STATUS " ******** WARNING ******** ") +message(STATUS " Wien2k 14.2 and older : after installation of DFTTools, copy the files from ") +message(STATUS " ${CMAKE_INSTALL_PREFIX}/share/triqs/Wien2k_SRC_files/SRC_templates ") +message(STATUS " to your Wien2k installation WIENROOT/SRC_templates (Cf documentation). ") +message(STATUS " For newer versions these files are already shipped with Wien2k. ") +message(STATUS "-----------------------------------------------------------------------------") +install (FILES ${WIEN_SRC_TEMPL_FILES} DESTINATION share/triqs/Wien2k_SRC_files/SRC_templates ) + diff --git a/fortran/dmftproj/SRC_templates/case.cf_f_mm2 b/fortran/dmftproj/SRC_templates/case.cf_f_mm2 new file mode 100644 index 0000000..3dea83d --- /dev/null +++ b/fortran/dmftproj/SRC_templates/case.cf_f_mm2 @@ -0,0 +1,14 @@ + 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. +*0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. A1 +*0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. -.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. A2 + 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. +*0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. B1 + 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. -.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. +*0. 0. 0. 0. 0.70710678 0. 0. 0. -.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. B2 + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. +*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. A1 +*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. -.70710678 0. 0. A2 + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 +*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0.70710678 0. 0. 0. 0. B1 + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. -.70710678 0. +*0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.70710678 0. 0. 0. -.70710678 0. 0. 0. 0. 0. B2 diff --git a/fortran/dmftproj/SRC_templates/case.cf_p_cubic b/fortran/dmftproj/SRC_templates/case.cf_p_cubic new file mode 100644 index 0000000..69e90cd --- /dev/null +++ b/fortran/dmftproj/SRC_templates/case.cf_p_cubic @@ -0,0 +1,7 @@ + 0.707106781 0. 0. 0. -0.707106781 0. 0. 0. 0. 0. 0. 0. + 0. 0.707106781 0. 0. 0. 0.707106781 0. 0. 0. 0. 0. 0. +*0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0.707106781 0. 0. 0. -0.707106781 0. + 0. 0. 0. 0. 0. 0. 0. 0.707106781 0. 0. 0. 0.707106781 +*0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. + diff --git a/fortran/dmftproj/SRC_templates/case.indmftpr b/fortran/dmftproj/SRC_templates/case.indmftpr new file mode 100644 index 0000000..100fdd2 --- /dev/null +++ b/fortran/dmftproj/SRC_templates/case.indmftpr @@ -0,0 +1,16 @@ +3 ! Nsort +1 1 3 ! Mult(Nsort) +3 ! lmax +complex ! choice of angular harmonics +1 1 0 0 ! l included for each sort +0 0 0 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) +cubic ! choice of angular harmonics +1 1 2 0 ! l included for each sort +0 0 2 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) +01 ! +0 ! SO flag +complex ! choice of angular harmonics +1 1 0 0 ! l included for each sort +0 0 0 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) +-0.6 0.14 ! t2g + eg + Op + diff --git a/fortran/dmftproj/SRC_templates/run_triqs b/fortran/dmftproj/SRC_templates/run_triqs new file mode 100755 index 0000000..570ad21 --- /dev/null +++ b/fortran/dmftproj/SRC_templates/run_triqs @@ -0,0 +1,784 @@ +#!/bin/csh -f +hup +unalias rm +unalias mv + +set name = $0 +set bin = $name:h #directory of WIEN-executables +if !(-d $bin) set bin = . +set name = $name:t #name of this script-file +set logfile = :log +set tmp = (:$name) #temporary files + +set scratch = # set directory for vectors and help files +if ($?SCRATCH) then #if envronment SCRATCH is set + set scratch=`echo $SCRATCH | sed -e 's/\/$//'`/ #set $scratch to that value +endif + + + +#---> functions & subroutines +alias testinput 'set errin="\!:1";if (! -e \!:1 || -z \!:1) goto \!:2' + +alias teststatus 'if ($status) goto error' +alias testerror 'if (! -z \!:1.error) goto error' +alias teststop 'if (\!:1 == $stopafter ) goto stop' +alias cleandayfile 'grep -v "\[" $dayfile >.tmp;'\ + 'mv .tmp $dayfile' +alias output 'set date = `date +"(%T)"`;'\ + 'printf "> %s\t%s " "\!:*" "$date" >> $dayfile' + +alias exec '($bin/x \!:*) >> $dayfile;'\ + 'teststatus' + +alias total_exec 'output \!:*;'\ + 'exec \!:*;'\ + 'cleandayfile;'\ + 'testerror \!:1;'\ + 'teststop \!:1' +alias TOTtoFOR 'sed "s/TOT/FOR/" \!:1 > $tmp;'\ + 'mv $tmp \!:1' +alias FORtoTOT 'sed "s/FOR/TOT/" \!:1 > $tmp;'\ + 'mv $tmp \!:1' +alias IPRINT_inc 'sed "s/0 NUMBER/1 NUMBER/g" \!:1 > .case.inc;'\ + 'mv .case.inc \!:1' + + +#---> default parameters +set ccut = 0.0000 #upper limit for charge convergence +set fcut = 0 #upper limit for force convergence +set ecut = 0.0001 #upper limit for energy convergence +unset ec_conv +set cc_conv +set fc_conv +set ec_test +unset ec_test1 +unset cc_test +unset fc_test +set iter = 40 #maximum number of iterations +set riter = 99 #restart after $riter iterations +set stopafter #stop after $stopafter +set next #set -> start cycle with $next +set qlimit = 0.05 #set -> writes E-L in new in1 when qlimit is fulfilled +set in1new = 999 +set write_all = -ef # new default: -in1ef is activated (version 10.1) +set para +set nohns +set nohns1 = 0 +set it +set readHinv +set it0 +unset vec2pratt +set itnum=0 +set itnum1=0 +set so +set complex +set complex2 +set cmplx +set cmplx2 +set broyd +set ctest=(0 0 0) +set etest=(0 0 0) +set msrcount=0 +# QDMFT +set qdmft +set hf +set diaghf +set nonself +set noibz +set newklist +set redklist +set NSLOTS = 1 +# END QDMFT + +#---> default flags +unset renorm +set in1orig +unset force #set -> force-calculation after self-consistency +unset f_not_conv +unset help #set -> help output +unset init #set -> switches initially set to total energy calc. + +#---> handling of input options +echo "> ($name) options: $argv" >> $logfile +alias sb 'shift; breaksw' #definition used in switch +while ($#argv) + switch ($1) + case -[H|h]: + set help; sb + case -so: + set complex2 = c + set cmplx2 = -c + set so = -so; sb + case -nohns: + set nohns = -nohns; shift; set nohns1 = $1;sb + case -it: + set itnum = 99; set it = -it; set it0 = -it; sb + case -it1: + set itnum = 99; set it = -it; set it0 = -it; touch .noHinv; sb + case -it2: + set itnum = 99; set it = -it; set it0 = -it; touch .fulldiag; sb + case -noHinv: + set itnum = 99; set it = -it; set it0 = -it; set readHinv = -noHinv; sb + case -vec2pratt: + set vec2pratt; sb + case -p: + set para = -p; sb + case -I: + set init; sb + case -NI: + unset broyd; sb + case -e: + shift; set stopafter = $1; sb + case -cc: + shift; set ccut = $1; set cc_test;unset cc_conv; sb + case -ec: + shift; set ecut = $1; set ec_test1;unset ec_conv; sb + case -fc: + shift; set f_not_conv; set fcut = $1; set fc_test;unset fc_conv; sb + case -ql: + shift; set qlimit = $1; sb + case -in1ef: + set in1new = -1;set write_all = -ef; sb + case -in1new: + shift; set in1new = $1;set write_all; sb + case -in1orig: + set in1orig = -in1orig; set in1new = 999; sb + case -renorm: + set renorm; set next=scf1; sb + case -i: + shift; set iter = $1; sb + case -r: + shift; set riter = $1; sb + case -s: + shift; set next = $1; sb +# QDMFT + case -qdmft: + set qdmft=-qdmft; shift; set NSLOTS = $1; sb +# END QDMFT + case -hf: + set hf = -hf; sb + case -diaghf: + set diaghf = -diaghf; set hf = -hf; set iter = 1; sb + case -nonself: + set nonself = -nonself; set hf = -hf; set iter = 1; sb + case -noibz: + set noibz = -noibz; sb + case -newklist: + set newklist = -newklist; set hf = -hf; sb + case -redklist: + set redklist = -redklist; set hf = -hf; sb + default: + echo "ERROR: option $1 does not exist \!"; sb + endsw +end +if ($?help) goto help + +if($?cc_test) then + unset ec_test;set ec_conv +endif +if($?fc_test) then + unset ec_test;set ec_conv +endif +if($?ec_test1) then + set ec_test;unset ec_conv +endif +if(! $?ec_test) then + set ecut=0 +endif + +#---> path- and file-names +set file = `pwd` +set file = $file:t #tail of file-names +set dayfile = $file.dayfile #main output-file + +#---> starting out +printf "\nCalculating $file in `pwd`\non `hostname` with PID $$\n" > $dayfile +echo "using `cat $WIENROOT/VERSION` in $WIENROOT" >> $dayfile +printf "\n:LABEL1: Calculations in `pwd`\n:LABEL2: on `hostname` at `date`\n" >> $file.scf +echo ":LABEL3: using `cat $WIENROOT/VERSION` in $WIENROOT" >> $file.scf + +if ( "$so" == "-so" && "$hf" == "-hf") then + echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" + echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" >> $file.dayfile + exit 9 +endif + +if ( "$hf" == "-hf") then + if (-e $file.corewf) rm $file.corewf + IPRINT_inc $file.inc #modify IPRINT switch in case.inc +endif + +#---> complex +if ((-e $file.in1c) && !(-z $file.in1c)) then + set complex = c + set complex2 = c + set cmplx = -c + set cmplx2 = -c +endif + +set vresp +testinput $file.inm_vresp no_vresp +set vresp=-vresp +no_vresp: + +# set iter/riter to 999 when MSR1a/MSECa is used +set testmsr=`head -1 $file.inm | grep "MSR[12]a" | cut -c1-3` +set testmsr1=`head -1 $file.inm | grep "MSECa" | cut -c1-5` +if($testmsr1 == 'MSECa') set testmsr=MSR +if ($testmsr == 'MSR') then + if($riter == "99") set riter=999 + if($iter == "40") set iter=999 + foreach i ($file.in2*) + TOTtoFOR $i #switch FOR-label + echo changing TOT to FOR in $i + end + if (! -e $file.inM && ! -z $file.inM ) then + x pairhess + echo $file.inM and .minrestart have been created by pairhess >>$dayfile + endif +endif + +if ($next != "") goto start #start with optional program +set next = lapw0 #default start with lstart + +if !(-e $file.clmsum) then + if (-e $file.clmsum_old) then + cp $file.clmsum_old $file.clmsum + else + echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!' + echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!'\ + >>$dayfile + goto error + endif +endif + +if ($?broyd) then + if (-e $file.broyd1) then + echo "$file.broyd* files present \! You did not save_lapw a previous clculation." + echo "You have 60 seconds to kill this job ( ^C or kill $$ )" + echo "or the script will rm *.broyd* and continue (use -NI to avoid automatic rm)" + sleep 60 + rm *.broyd* + echo "$file.broyd* files removed \!" >> $dayfile + endif +endif + +start: #initalization of in2-files +if ($?init && $testmsr != 'MSR' ) then + foreach i ($file.in2*) + sed "1s/[A-Z]..../TOT /" $i > $tmp + mv $tmp $i + end +endif + +set icycle=1 + +set riter_save=$riter +printf "\n\n start \t(%s) " "`date`" >> $dayfile + +#goto mixer only if clmval file is present +if ($next == "scf1") then + if !(-e $file.clmval) then + set next = lapw0 + endif +endif + +echo "with $next ($iter/$riter to go)" >> $dayfile +goto $next + + +cycle: #begin of sc-cycle +nohup echo in cycle $icycle " ETEST: $etest[3] CTEST: $ctest[3]" +hup + +if ($it == '-it' ) then + set ittest=`echo "$icycle / $itnum * $itnum "| bc` + if ( $ittest == $icycle ) touch .fulldiag +endif + +lapw0: +printf "\n cycle $icycle \t(%s) \t(%s)\n\n" "`date`" "$iter/$riter to go" >> $dayfile + +testinput $file.in0_grr cont_lapw0 +total_exec lapw0 -grr $para + +cont_lapw0: +testinput $file.in0 error_input +total_exec lapw0 $para + +if ($fcut == "0") goto lapw1 +set f_exist=`grep :FHF $file.scf0` +if ($#f_exist == 0 ) then + set fcut=0 + set fc_conv + echo Force-convergence not possible. Forces not present. + echo Force-convergence not possible. Forces not present.>> $dayfile + if($?ec_test) goto lapw1 + if($?cc_test) goto lapw1 + goto error +endif +#---> test of force-convergence for all forces +if !(-e $file.scf) goto lapw1 + if(! $?ec_conv) goto lapw1 + if(! $?cc_conv) goto lapw1 +set natom=`head -2 $file.struct |tail -1 |cut -c28-30` +#set natom = `grep UNITCELL $file.output0 |awk '{print $NF}'` +set iatom = 1 +set ftest = (1 0) +grep :FOR $file.scf >test_forces.scf +while ($iatom <= $natom) #cycle over all atoms + set itest=$iatom + @ itest ++ + testinput $file.inM cont_force_test + set atest=`head -$itest $file.inM |tail -1` + set itest=`echo " $atest[1] + $atest[2] + $atest[3]"|bc` + if ( $itest == '0' ) goto skipforce + cont_force_test: + if ($iatom <= 9) then + set test = (`$bin/testconv -p :FOR00$iatom -c $fcut -f test_forces`) + else if ($iatom <= 99) then + set test = (`$bin/testconv -p :FOR0$iatom -c $fcut -f test_forces`) + else + set test = (`$bin/testconv -p :FOR$iatom -c $fcut -f test_forces`) + endif + if !($test[1]) set ftest[1] = 0 + set ftest[2] = $test[2] + set ftest = ($ftest $test[3] $test[4]) +skipforce: + @ iatom ++ +end +rm test_forces.scf +echo ":FORCE convergence:" $ftest[1-] >> $dayfile + +if ($ftest[1]) then #force convergenced + if ($nohns == '-nohns') then + set nohns + echo "NOHNS deactivated by FORCE convergence" >> $dayfile + else +# set iter = 1 + if(! $?ec_conv) goto lapw1 + if(! $?cc_conv) goto lapw1 + set fc_conv + unset f_not_conv + foreach i ($file.in2*) + TOTtoFOR $i #switch FOR-label + end + endif +else + unset fc_conv +endif + +lapw1: +testinput $file.in1$complex error_input +#generates in1-file from :EPL/EPH in case.scf2 +# if ($icycle == $in1new) rm $file.broyd1 $file.broyd2 + if ($icycle >= $in1new ) then + if (! -e $file.in1${complex}_orig ) cp $file.in1${complex} $file.in1${complex}_orig + write_in1_lapw $write_all -ql $qlimit $cmplx >> $dayfile + if($status == 0 ) cp $file.in1${complex}new $file.in1${complex} + endif +if($in1orig == '-in1orig') then + if ( -e $file.in1${complex}_orig ) mv $file.in1${complex}_orig $file.in1${complex} +# unset in1orig +endif + +set readHinv0 = $readHinv +if (-e .noHinv) then + echo " case.storeHinv files removed" + set readHinv0 = -noHinv0 + rm .noHinv +endif +if (-e .fulldiag) then + echo " full diagonalization forced" + set it0 + set readHinv0 + rm .fulldiag +endif +if ( $it0 == "-it" ) then + touch ${scratch}$file.vector.old + if( ! $?vec2pratt ) then + foreach i (${scratch}$file.vector*.old) + rm $i + end + vec2old_lapw $para >> $dayfile + else + vec2pratt_lapw $para >> $dayfile + endif +endif + +if ( $hf == "-hf" ) then + if ((-e $file.vectorhf) && !(-z $file.vectorhf)) then + mv $file.vectorhf $file.vectorhf_old + if (!(-e $file.weighhf) || (-z $file.weighhf)) mv $file.energyhf $file.tmp_energyhf + else if ((-e $file.vectorhf_old) && !(-z $file.vectorhf_old)) then + if (!(-e $file.weighhf) || (-z $file.weighhf)) mv $file.energyhf $file.tmp_energyhf + else + cp $file.kgen_fbz $file.kgen + cp $file.klist_fbz $file.klist + total_exec lapw1 $it0 $nohns $readHinv0 $cmplx + mv $file.vector $file.vectorhf_old + mv $file.energy $file.tmp_energyhf + if (-e $file.weighhf) rm $file.weighhf + endif + cp $file.kgen_ibz $file.kgen + cp $file.klist_ibz $file.klist + if (!(-e $file.vsp_old) || (-z $file.vsp_old)) then + cp $file.vsp $file.vsp_old + endif +endif + +total_exec lapw1 $it0 $para $nohns $readHinv0 $cmplx +set it0 = $it +set readHinv0 = $readHinv + +lapwso: +if ( -e $file.scfso ) rm $file.scfso +if ( "$so" == "-so" ) then + testinput $file.inso error_input + total_exec lapwso $para $cmplx +endif + +lapw2: +testinput $file.in2$complex2 error_input +if ( $hf == "-hf" ) then + if (!(-e $file.weighhf) || (-z $file.weighhf)) then + cp $file.kgen_fbz $file.kgen + cp $file.klist_fbz $file.klist + if (-e $file.vector) mv $file.vector $file.vector_save + mv $file.vectorhf_old $file.vector + if (-e $file.energy) mv $file.energy $file.energy_save + mv $file.tmp_energyhf $file.energy + total_exec lapw2 $vresp $in1orig $cmplx2 + mv $file.weigh $file.weighhf + mv $file.vector $file.vectorhf_old + if (-e $file.vector_save) mv $file.vector_save $file.vector + mv $file.energy $file.energyhf + if (-e $file.energy_save) mv $file.energy_save $file.energy + cp $file.kgen_ibz $file.kgen + cp $file.klist_ibz $file.klist + endif +endif +#QDMFT +if ( "$qdmft" == "-qdmft" ) then + total_exec lapw2 $para $vresp -almd $cmplx2 $so + dmftproj $so # please check: $so can't be here + # pytriqs call + printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in run_triqs Wien2k script\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in run_triqs Wien2k script\n" + exit 0 + # to call pytriqs uncomment and modify the line below to adapt it to your system + # the number of core is in NSLOTS variable + #mpprun --force-mpi=openmpi/1.3.2-i110074 /home/x_leopo/TRIQS_segment/triqs_install/bin/pytriqs $file.py + total_exec lapw2 $para $vresp -qdmft $cmplx2 $so +else + total_exec lapw2 $para $vresp $in1orig $cmplx2 $so + if ( $hf == "-hf" ) then + sed 's/:SUM/:SLSUM/g' < $file.scf2 > $file.scf2_tmp + mv $file.scf2_tmp $file.scf2 + mv $file.clmval $file.clmvalsl + if ( -e $file.scfhf_1 ) rm $file.scfhf_* + endif +endif +# END QDMFT + +rm -f $file.clmsc + +if ( $hf == "-hf" ) goto hf + +lapw1s: +testinput $file.in1${complex}s lcore +total_exec lapw1 -sc $para $nohns $readHinv $cmplx + +lapw2s: +testinput $file.in2${complex2}s error_input +total_exec lapw2 -sc $para $vresp $in1orig $cmplx2 +goto lcore + +hf: +testinput $file.inhf error_input +if (!(-e $file.corewf) || (-z $file.corewf)) then + total_exec lcore +endif +total_exec hf $diaghf $nonself $noibz $newklist $redklist $para $cmplx + +lapw2hf: +testinput $file.in2$complex2 error_input +cp $file.kgen_fbz $file.kgen +cp $file.klist_fbz $file.klist +total_exec lapw2 -hf $vresp $in1orig $cmplx2 +cp $file.kgen_ibz $file.kgen +cp $file.klist_ibz $file.klist + +lcore: +testinput $file.inc scf +total_exec lcore + +coresuper: + if ( ! -e .lcore) goto scf + total_exec dstart -lcore + rm -f $file.clmcor +endif + +scf: +if ( $hf == "-hf" ) then + foreach i ( 0 0_grr 1 so 2 1s 2s c hf 2hf ) + if (-e $file.scf$i) cat $file.scf$i >> $file.scf + end +else + foreach i ( 0 1 so 2 1s 2s c ) + if (-e $file.scf$i) cat $file.scf$i >> $file.scf + end +endif +scf1: +foreach i (clmsum vsp vns vrespsum ) + if (-e $file.$i ) \ + cp $file.$i $file.${i}_old #save last cycle +end + + +mixer: +testinput $file.inm error_input +total_exec mixer +cat $file.scfm >> $file.scf + +if($?renorm) then + unset renorm + rm $file.broy* +endif + +mixer_vresp: +testinput $file.inm_vresp energytest +total_exec mixer_vresp +grep -e "CTO " -e NEC $file.outputm_vresp | sed 's/:/:VRESP/' >> $file.scf +#total_exec int16 + +energytest: +#---> output energies +#set EF = `grep 'F E R' $file.scf2 |awk '{printf("%.5f", $NF)}'` +#set ET = `grep 'AL EN' $file.outputm |awk '{printf("%.5f", $NF)}'` +#cat << theend >> $dayfile +#EF $EF +#ET $ET +#theend +#echo $ET > $file.finM + +#---> test of energy convergence +#if ($ecut == "0") goto chargetest +set etest = (`$bin/testconv -p :ENE -c $ecut`) +teststatus +echo ":ENERGY convergence: $etest[1-3]" >> $dayfile +if (! $?ec_test) goto chargetest +if ($etest[1]) then + if ($nohns == '-nohns') then + set nohns + echo "NOHNS deactivated by ENERGY convergence" >> $dayfile + else +# set iter = 1 + set ec_conv + endif +else + unset ec_conv +endif + +chargetest: +#if ($ccut == "0.0000") goto nextiter +set ctest = (`$bin/testconv -p :DIS -c $ccut`) +teststatus +echo ":CHARGE convergence: $ctest[1-3]" >> $dayfile +if (! $?cc_test) goto nextiter +if ($ctest[1]) then + if ($nohns == '-nohns') then + set nohns + echo "NOHNS deactivated by CHARGE convergence" >> $dayfile + else +# set iter = 1 + set cc_conv + endif +else + unset cc_conv +endif + +# check F-condition for MSR1a mode +if ($testmsr == 'MSR') then + set msrtest =(`grep :FRMS $file.scf |tail -1` ) + if ($#msrtest >= 13 ) then + echo msrcount $msrcount msrtest $msrtest[13] +# Trap silly early convergene with "minimum-requests" + set etest2 = (`$bin/testconv -p :ENE -c 0.001`) + if ( $etest2[1] == '0')set msrtest[13]='F' + set ctest2 = (`$bin/testconv -p :DIS -c 0.01`) + if ( $ctest2[1] == '0')set msrtest[13]='F' +# + if ($msrtest[13] == 'T') then + #change in case.inm MSR1a/MSECa to MSR1/MSEC3, rm *.bro*, unset testmsr +@ msrcount ++ + if($msrcount == 3) then + sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp + sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm + rm *.broy* $file.inm_tmp + set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` + set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` + echo $b > .msec + echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile + set testmsr + endif + else + set msrcount=0 + endif + endif +endif + +#---> output forces +#grep 'FTOT' $file.outputm|awk '{print "FT ",$2,$4,$5,$6}'\ +# >> $dayfile +#grep 'FTOT' $file.outputm|awk '{print $4,$5,$6}' \ +# >> $file.finM + +nextiter: +@ iter -- +@ riter -- +@ nohns1 -- +@ icycle ++ + +if ($icycle == 2) set newklist + +#---> nohns +if (! $nohns1 ) then + set nohns + echo "NOHNS deactivated" >> $dayfile +endif + +#---> restart +if (! $riter && -e $file.broyd1) then + echo " restart" >> $dayfile + rm $file.broyd1 $file.broyd2 + set riter=$riter_save +endif + +foreach i ($tmp) #delete temporary files + if (-e $i) rm $i +end + +#output cycle +#printf "%s\n\n" "$iter/$riter to go" >> $dayfile +if (-e .stop) goto stop1 +if ($testmsr == 'MSR' && -e .minstop) then + sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp + sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm + rm *.broy* $file.inm_tmp + set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` + set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` + echo $b > .msec + echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile + set testmsr +endif + +echo ec cc and fc_conv $?ec_conv $?cc_conv $?fc_conv +echo ec cc and fc_conv $?ec_conv $?cc_conv $?fc_conv >> $dayfile +if($?ec_conv && $?cc_conv && $?fc_conv && ($testmsr == '') ) goto stop + +if ($iter) goto cycle #end of sc-cycle + +if ( $?f_not_conv ) then + printf "\n> FORCES NOT CONVERGED\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> FORCES NOT CONVERGED\n" + exit 3 +endif +if ( ! $?ec_conv ) then + printf "\n> energy in SCF NOT CONVERGED\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> energy in SCF NOT CONVERGED\n" + exit 0 +endif +if ( ! $?cc_conv ) then + printf "\n> charge in SCF NOT CONVERGED\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> charge in SCF NOT CONVERGED\n" + exit 0 +endif + +stop: #normal exit +printf "\n> stop\n" >> $dayfile +printf "\n> stop\n" +exit 0 + +stop1: #normal exit +printf "\n> stop due to .stop file\n" >> $dayfile +rm .stop +printf "\n> stop due to .stop file\n" +exit 1 + +error_input: #error exit +printf "\n> stop error: the required input file $errin for the next step could not be found\n" >> $dayfile +printf "\n> stop error: the required input file $errin for the next step could not be found\n" +exit 9 + +error: #error exit +printf "\n> stop error\n" >> $dayfile +printf "\n> stop error\n" +exit 9 + +help: #help exit +cat << theend + +PROGRAM: $0 + +PURPOSE: running the nonmagnetic scf-cycle in WIEN + to be called within the case-subdirectory + has to be located in WIEN-executable directory + +USAGE: $name [OPTIONS] [FLAGS] + +OPTIONS: +-cc LIMIT -> charge convergence LIMIT (0.0001 e) +-ec LIMIT -> energy convergence LIMIT ($ecut Ry) +-fc LIMIT -> force convergence LIMIT (1.0 mRy/a.u.) + default is -ec 0.0001; multiple convergence tests possible +-e PROGRAM -> exit after PROGRAM ($stopafter) +-i NUMBER -> max. NUMBER ($iter) of iterations +-s PROGRAM -> start with PROGRAM ($next) +-r NUMBER -> restart after NUMBER ($riter) iterations (rm *.broyd*) +-nohns NUMBER ->do not use HNS for NUMBER iterations +-in1new N -> create "new" in1 file after N iter (write_in1 using scf2 info) +-ql LIMIT -> select LIMIT ($qlimit) as min.charge for E-L setting in new in1 +-qdmft NP -> including DMFT from Aichhorn/Georges/Biermann running on NP proc + +FLAGS: +-h/-H -> help +-I -> with initialization of in2-files to "TOT" +-NI -> does NOT remove case.broyd* (default: rm *.broyd* after 60 sec) +-p -> run k-points in parallel (needs .machine file [speed:name]) +-it -> use iterative diagonalization +-it1 -> use iterative diag. with recreating H_inv (after basis change) +-it2 -> use iterative diag. with reinitialization (after basis change) +-noHinv -> use iterative diag. without H_inv +-vec2pratt -> use vec2pratt instead of vec2old for iterative diag. +-so -> run SCF including spin-orbit coupling +-renorm-> start with mixer and renormalize density +-in1orig-> if present, use case.in1_orig file; do not modify case.in1 +-hf -> HF/hybrid-DFT calculation +-diaghf -> non-selfconsistent HF with diagonal HF only (only e_i) +-nonself -> non-selfconsistent HF/hybrid-DFT calculation (only E_x(HF)) +-newklist -> HF/hybrid-DFT calculation starting from a different k-mesh +-redklist -> HF/hybrid-DFT calculation with a reduced k-mesh for the potential + +CONTROL FILES: +.lcore runs core density superposition producing case.clmsc +.stop stop after SCF cycle +.minstop stops MSR1a minimization and changes to MSR1 +.fulldiag force full diagonalization +.noHinv remove case.storeHinv files +case.inm_vresp activates calculation of vresp files for meta-GGAs +case.in0_grr activates a second call of lapw0 (mBJ pot., or E_xc analysis) + +ENVIRONMENT VARIBLES: +SCRATCH directory where vectors and help files should go + +theend + +exit 1 + + diff --git a/fortran/dmftproj/SRC_templates/runsp_triqs b/fortran/dmftproj/SRC_templates/runsp_triqs new file mode 100755 index 0000000..57e150a --- /dev/null +++ b/fortran/dmftproj/SRC_templates/runsp_triqs @@ -0,0 +1,975 @@ +#!/bin/csh -f +hup +unalias rm + +set name = $0 +set bin = $name:h #directory of WIEN-executables +if !(-d $bin) set bin = . +set name = $name:t #name of this script-file +set logfile = :log +set tmp = (:$name) #temporary files + +set scratch = # set directory for vectors and help files +if ($?SCRATCH) then #if envronment SCRATCH is set + set scratch=`echo $SCRATCH | sed -e 's/\/$//'`/ #set $scratch to that value +endif + +#---> functions & subroutines +alias testinput 'set errin="\!:1";if (! -e \!:1 || -z \!:1) goto \!:2' +alias teststatus 'if ($status) goto error' +alias testerror 'if ( -e \!:1.error && ! -z \!:1.error) goto error' +alias teststop 'if (\!:1 == $stopafter ) goto stop' +alias cleandayfile 'grep -v "\[" $dayfile >.tmp;'\ + 'mv .tmp $dayfile' +alias output 'set date = `date +"(%T)"`;'\ + 'printf "> %s\t%s " "\!:*" "$date" >> $dayfile' + +alias exec '($bin/x \!:*) >> $dayfile;'\ + 'teststatus' + +alias total_exec 'output \!:*;'\ + 'exec \!:*;'\ + 'cleandayfile;'\ + 'testerror \!:1;'\ + 'testerror up\!:1;'\ + 'testerror dn\!:1;'\ + 'teststop \!:1' +alias TOTtoFOR 'sed "s/TOT/FOR/" \!:1 > $tmp;'\ + 'mv $tmp \!:1' +alias FORtoTOT 'sed "s/FOR/TOT/" \!:1 > $tmp;'\ + 'mv $tmp \!:1' +alias IPRINT_inc 'sed "s/0 NUMBER/1 NUMBER/g" \!:1 > $tmp;'\ + 'mv $tmp \!:1' + +#---> default parameters +set ccut = 0.0000 #upper limit for charge convergence +set fcut = 0 #upper limit for force convergence +set ecut = 0.0001 #upper limit for energy convergence +unset ec_conv +set cc_conv +set fc_conv +set ec_test +unset ec_test1 +unset cc_test +unset fc_test +set iter = 40 #maximum number of iterations +set riter = 99 #restart after $riter iterations +set stopafter #stop after $stopafter +set next #set -> start cycle with $next +set qlimit = 0.05 #set -> writes E-L in new in1 when qlimit is fulfilled +set in1new = 999 +set write_all = -ef # new default: -in1ef is activated (version 10.1) +set para +set nohns +set nohns1 = 0 +set it +set readHinv +unset vec2pratt +set it0 +set itnum=0 +set itnum1=0 +set complex +set complex2 +set cmplx +set cmplx2 +set so +set orb +set broyd +set eece1 +unset eece +unset orbc +unset orbdu +unset dm +set ctest=(0 0 0) +set etest=(0 0 0) +set msrcount=0 +# QDMFT +set qdmft +set hf +set diaghf +set nonself +set noibz +set newklist +set redklist +set NSLOTS = 1 +# END QDMFT + +#---> default flags +unset renorm +set in1orig +unset force #set -> force-calculation after self-consistency +unset f_not_conv +unset help #set -> help output +#unset complex #set -> complex calculation +unset init #set -> switches initially set to total energy calc. +unset lcore #set -> core density superposition + +#---> handling of input options +echo "> ($name) options: $argv" >> $logfile +alias sb 'shift; breaksw' #definition used in switch +while ($#argv) + switch ($1) + case -[H|h]: + set help; sb + case -so: + set complex2 = c + set cmplx2 = -c + set so = -so; sb + case -nohns: + set nohns = -nohns; shift; set nohns1 = $1;sb + case -dm: + set dm; sb + case -orb: + set orb = -orb; sb + case -orbc: + set orbc + set orb = -orb; sb + case -eece: + set eece + set eece1 = -eece + set orbc + set orb = -orb; sb + case -orbdu: + set orbdu + set orb = -orb; sb + case -it: + set itnum = 99; set it = -it; set it0 = -it; sb + case -it1: + set itnum = 99; set it = -it; set it0 = -it; touch .noHinv; sb + case -it2: + set itnum = 99; set it = -it; set it0 = -it; touch .fulldiag; sb + case -noHinv: + set itnum = 99; set it = -it; set it0 = -it; set readHinv = -noHinv; sb + case -vec2pratt: + set vec2pratt; sb + case -p: + set para = -p; sb + case -I: + set init; sb + case -NI: + unset broyd; sb + case -e: + shift; set stopafter = $1; sb + case -cc: + shift; set ccut = $1; set cc_test;unset cc_conv; sb + case -ec: + shift; set ecut = $1; set ec_test1;unset ec_conv; sb + case -fc: + shift; set f_not_conv; set fcut = $1; set fc_test;unset fc_conv; sb + case -ql: + shift; set qlimit = $1; sb + case -in1ef: + set in1new = -1;set write_all = -ef; sb + case -in1new: + shift; set in1new = $1;set write_all; sb + case -in1orig: + set in1orig = -in1orig; set in1new = 999; sb + case -renorm: + set renorm; set next=scf1; sb + case -i: + shift; set iter = $1; sb + case -r: + shift; set riter = $1; sb + case -s: + shift; set next = $1; sb +# QDMFT + case -qdmft: + set qdmft=-qdmft; shift; set NSLOTS = $1; sb +# END QDMFT + case -hf: + set hf = -hf; sb + case -diaghf: + set diaghf = -diaghf; set hf = -hf; set iter = 1; sb + case -nonself: + set nonself = -nonself; set hf = -hf; set iter = 1; sb + case -noibz: + set noibz = -noibz; sb + case -newklist: + set newklist = -newklist; set hf = -hf; sb + case -redklist: + set redklist = -redklist; set hf = -hf; sb + default: + echo "ERROR: option $1 does not exist\!"; sb + endsw +end +if ($?help) goto help + +if($?cc_test) then + unset ec_test;set ec_conv +endif +if($?fc_test) then + unset ec_test;set ec_conv +endif +if($?ec_test1) then + set ec_test;unset ec_conv +endif +if(! $?ec_test) then + set ecut=0 +endif + +#---> path- and file-names +set file = `pwd` +set file = $file:t #tail of file-names +set dayfile = $file.dayfile #main output-file + +#---> starting out +printf "\nCalculating $file in `pwd`\non `hostname` with PID $$\n" > $dayfile +echo "using `cat $WIENROOT/VERSION` in $WIENROOT" >> $dayfile +printf "\n:LABEL1: Calculations in `pwd`\n:LABEL2: on `hostname` at `date`\n" >> $file.scf +echo ":LABEL3: using `cat $WIENROOT/VERSION` in $WIENROOT" >> $file.scf + +if ( "$so" == "-so" && "$hf" == "-hf") then + echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" + echo "Hartree-Fock and spin-orbit coupling not supported yet. STOP" >> $file.dayfile + exit 9 +endif + +if ( "$hf" == "-hf") then + if (-e $file.corewfup) rm $file.corewfup + if (-e $file.corewfdn) rm $file.corewfdn + IPRINT_inc $file.inc # modify IPRINT switch in case.inc + if ( ! -z $file.incup && -e $file.incup ) then + IPRINT_inc $file.incup + IPRINT_inc $file.incdn + endif +endif + +#---> complex +if ((-e $file.in1c) && !(-z $file.in1c)) then + set complex = c + set complex2 = c + set cmplx = -c + set cmplx2 = -c +endif + +set vresp +testinput $file.inm_vresp no_vresp +set vresp=-vresp +no_vresp: + +# set iter/riter to 999 when MSR1a/MSECa is used +set testmsr=`head -1 $file.inm | grep "MSR[12]a" | cut -c1-3` +set testmsr1=`head -1 $file.inm | grep "MSECa" | cut -c1-5` +if($testmsr1 == 'MSECa') set testmsr=MSR +if ($testmsr == 'MSR') then + if($riter == "99") set riter=999 + if($iter == "40") set iter=999 + foreach i ($file.in2*) + TOTtoFOR $i #switch FOR-label +echo changing $i + end + if (! -e $file.inM && ! -z $file.inM ) then + x pairhess + echo $file.inM and .minrestart have been created by pairhess >>$dayfile + endif +endif + +if ($next != "") goto start #start with optional program +set next = lapw0 #default start with lstart + +if !(-e $file.clmsum) then + if (-e $file.clmsum_old) then + cp $file.clmsum_old $file.clmsum + else + echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!' + echo 'no' $file'.clmsum(_old) file found, which is necessary for lapw0 \!'\ + >>$dayfile + goto error + endif +endif + +if ($?broyd) then + if (-e $file.broyd1) then + echo "$file.broyd* files present \! You did not save_lapw a previous clculation." + echo "You have 60 seconds to kill this job ( ^C or kill $$ )" + echo "or the script will rm *.broyd* and continue (use -NI to avoid automatic rm)" + sleep 60 + rm *.broyd* + echo "$file.broyd* files removed \!" >> $dayfile + endif +endif + +start: #initalization of in2-files +if ($?init && $testmsr != 'MSR') then + foreach i ($file.in2*) + sed "1s/[A-Z]..../TOT /" $i > $tmp + mv $tmp $i + end +endif + +set icycle=1 + +set riter_save=$riter +printf "\n\n start \t(%s) " "`date`" >> $dayfile + +#goto mixer only if clmval file is present +if ($next == "scf1") then + if !(-e $file.clmvalup) then + set next = lapw0 + endif +endif + +echo "with $next ($iter/$riter to go)" >> $dayfile +goto $next + +cycle: #begin of sc-cycle +nohup echo in cycle $icycle " ETEST: $etest[3] CTEST: $ctest[3]" +hup + +if ($it == '-it' ) then + set ittest=`echo "$icycle / $itnum * $itnum "| bc` + if ( $ittest == $icycle ) touch .fulldiag +endif + +lapw0: +printf "\n cycle $icycle \t(%s) \t(%s)\n\n" "`date`" "$iter/$riter to go" >> $dayfile + +testinput $file.in0_grr cont_lapw0 +total_exec lapw0 -grr $para + +cont_lapw0: +testinput $file.in0 error_input + +#fix for NFS bug +touch $file.vspup $file.vspdn $file.vnsup $file.vnsdn +rm $file.vspup $file.vspdn $file.vnsup $file.vnsdn + +total_exec lapw0 $para + +if ($fcut == "0") goto orb +set f_exist=`grep :FHF $file.scf0` +if ($#f_exist == 0 ) then + set fcut=0 + set fc_conv + echo Force-convergence not possible. Forces not present. + echo Force-convergence not possible. Forces not present.>> $dayfile + if($?ec_test) goto orb + if($?cc_test) goto orb + goto error +endif + +#---> test of force-convergence for all forces +if !(-e $file.scf) goto orb + if(! $?ec_conv) goto orb + if(! $?cc_conv) goto orb +set natom=`head -2 $file.struct |tail -1 |cut -c28-30` +#set natom = `grep UNITCELL $file.output0 |awk '{print $NF}'` +set iatom = 1 +set ftest = (1 0) +grep :FOR $file.scf >test_forces.scf +while ($iatom <= $natom) #cycle over all atoms + set itest=$iatom + @ itest ++ + testinput $file.inM cont_force_test + set atest=`head -$itest $file.inM |tail -1` + set itest=`echo " $atest[1] + $atest[2] + $atest[3]"|bc` + if ( $itest == '0' ) goto skipforce + cont_force_test: + if ($iatom <= 9) then + set test = (`$bin/testconv -p :FOR00$iatom -c $fcut -f test_forces`) + else if ($iatom <= 99) then + set test = (`$bin/testconv -p :FOR0$iatom -c $fcut -f test_forces`) + else + set test = (`$bin/testconv -p :FOR$iatom -c $fcut -f test_forces`) + endif + if !($test[1]) set ftest[1] = 0 + set ftest[2] = $test[2] + set ftest = ($ftest $test[3] $test[4]) +skipforce: + @ iatom ++ +end +rm test_forces.scf +echo ":FORCE convergence:" $ftest[1-] >> $dayfile + +if ($ftest[1]) then #force convergenced + if ($nohns == '-nohns') then #force convergenced + set nohns + echo "NOHNS deactivated by FORCE convergence" >> $dayfile + else +# set iter = 1 + if(! $?ec_conv) goto orb + if(! $?cc_conv) goto orb + set fc_conv + unset f_not_conv + foreach i ($file.in2*) + TOTtoFOR $i #switch FOR-label + end + endif +else + unset fc_conv +endif + +orb: +foreach i (dmatup dmatdn dmatud ) + if (-e $file.$i"_old" ) rm $file.$i"_old" + if (-e $file.$i ) cp $file.$i $file.$i"_old" #save this cycle for next +end + +if ( -e $file.scforbup ) rm $file.scforbup +if ( -e $file.scforbdn ) rm $file.scforbdn +if ( -e $file.scforbdu ) rm $file.scforbdu +if ( -e $file.vorbdu ) rm $file.vorbdu + +if ( "$orb" != "-orb" ) goto lapw1 +if ( $?orbc ) goto lapw1 +if (! -e $file.dmatup || -z $file.dmatup ) then + set renorm + goto lapw1 +endif +testinput $file.inorb error_input +total_exec orb -up $para +total_exec orb -dn $para +if ( "$so" == "-so" && ! -z $file.dmatud && -e $file.dmatud ) then + if( $?orbdu ) then + total_exec orb -du $para +# vorbdu seems unphysical large, so we use it only with -orbdu switch) + endif +endif + +lapw1: +testinput $file.in1$complex error_input +set readHinv0 = $readHinv +if (-e .noHinv) then + echo " case.storeHinv files removed" + set readHinv0 = -noHinv0 + rm .noHinv +endif +if (-e .fulldiag) then + echo " full diagonalization forced" + set it0 + set readHinv0 + rm .fulldiag + touch ${scratch}$file.vector.old + rm ${scratch}$file.vector*.old +endif +if ( $it0 == "-it" ) then + touch ${scratch}$file.vector.old + if( ! $?vec2pratt ) then + foreach i (${scratch}$file.vector*.old) + rm $i + end + vec2old_lapw $para -up >> $dayfile + vec2old_lapw $para -dn >> $dayfile + else + vec2pratt_lapw $para -up >> $dayfile + vec2pratt_lapw $para -dn >> $dayfile + endif +endif + +if ( -e dnlapw1.error ) rm dnlapw1.error + +if ( $hf == "-hf" ) then + if ((-e $file.vectorhfup) && !(-z $file.vectorhfup) && \ + (-e $file.vectorhfdn) && !(-z $file.vectorhfdn)) then + mv $file.vectorhfup $file.vectorhfup_old + mv $file.vectorhfdn $file.vectorhfdn_old + if (!(-e $file.weighhfup) || (-z $file.weighhfup) || \ + !(-e $file.weighhfdn) || (-z $file.weighhfdn)) then + mv $file.energyhfup $file.tmp_energyhfup + mv $file.energyhfdn $file.tmp_energyhfdn + endif + else if ((-e $file.vectorhfup_old) && !(-z $file.vectorhfup_old) && \ + (-e $file.vectorhfdn_old) && !(-z $file.vectorhfdn_old)) then + if (!(-e $file.weighhfup) || (-z $file.weighhfup) || \ + !(-e $file.weighhfdn) || (-z $file.weighhfdn)) then + mv $file.energyhfup $file.tmp_energyhfup + mv $file.energyhfdn $file.tmp_energyhfdn + endif + else + cp $file.kgen_fbz $file.kgen + cp $file.klist_fbz $file.klist + total_exec lapw1 $it0 -up $nohns $readHinv0 $cmplx + total_exec lapw1 $it0 -dn $nohns $readHinv0 $cmplx + mv $file.vectorup $file.vectorhfup_old + mv $file.vectordn $file.vectorhfdn_old + mv $file.energyup $file.tmp_energyhfup + mv $file.energydn $file.tmp_energyhfdn + if (-e $file.weighhfup) rm $file.weighhfup + if (-e $file.weighhfdn) rm $file.weighhfdn + endif + cp $file.kgen_ibz $file.kgen + cp $file.klist_ibz $file.klist + if (!(-e $file.vspup_old) || (-z $file.vspup_old) || \ + !(-e $file.vspdn_old) || (-z $file.vspdn_old)) then + cp $file.vspup $file.vspup_old + cp $file.vspdn $file.vspdn_old + endif +endif + +#generates in1-file from :EPL/EPH in case.scf2 +# if ($icycle == $in1new) rm $file.broyd1 $file.broyd2 + if ($icycle >= $in1new ) then + if (! -e $file.in1${complex}_orig ) cp $file.in1${complex} $file.in1${complex}_orig + write_in1_lapw $write_all -up -ql $qlimit ${cmplx} >> $dayfile + if($status == 0 ) cp $file.in1${complex}new $file.in1${complex} + endif +if($?in1orig == '-in1orig') then + if ( -e $file.in1${complex}_orig ) mv $file.in1${complex}_orig $file.in1${complex} +# unset in1orig +endif +if ( "$so" == "-so" ) then + total_exec lapw1 $it0 -up $para $nohns $readHinv0 $cmplx +else + total_exec lapw1 $it0 -up $para $nohns $orb $readHinv0 $cmplx +endif + if ($icycle >= $in1new ) then + write_in1_lapw $write_all -dn -ql $qlimit ${cmplx}>> $dayfile + if($status == 0 ) cp $file.in1${complex}new $file.in1${complex} + endif +if ( "$so" == "-so" ) then + total_exec lapw1 $it0 -dn $para $nohns $readHinv0 $cmplx +else + total_exec lapw1 $it0 -dn $para $nohns $orb $readHinv0 $cmplx +endif +set it0 = $it +set readHinv0 = $readHinv + +lapwso: +if ( -e $file.scfso ) rm $file.scfso +if ( "$so" == "-so" ) then + testinput $file.inso error_input + total_exec lapwso -up $orb $para $cmplx +endif + +lapw2: +testinput $file.in2$complex2 error_input +if ( -e dnlapw2.error ) rm dnlapw2.error +if ( $hf == "-hf" ) then + if (!(-e $file.weighhfup) || (-z $file.weighhfup) || \ + !(-e $file.weighhfdn) || (-z $file.weighhfdn)) then + cp $file.kgen_fbz $file.kgen + cp $file.klist_fbz $file.klist + if (-e $file.vectorup) mv $file.vectorup $file.vectorup_save + if (-e $file.vectordn) mv $file.vectordn $file.vectordn_save + mv $file.vectorhfup_old $file.vectorup + mv $file.vectorhfdn_old $file.vectordn + if (-e $file.energyup) mv $file.energyup $file.energyup_save + if (-e $file.energydn) mv $file.energydn $file.energydn_save + mv $file.tmp_energyhfup $file.energyup + mv $file.tmp_energyhfdn $file.energydn + total_exec lapw2 -up $vresp $in1orig $cmplx2 + total_exec lapw2 -dn $vresp $in1orig $cmplx2 + mv $file.weighup $file.weighhfup + mv $file.weighdn $file.weighhfdn + mv $file.vectorup $file.vectorhfup_old + mv $file.vectordn $file.vectorhfdn_old + if (-e $file.vectorup_save) mv $file.vectorup_save $file.vectorup + if (-e $file.vectordn_save) mv $file.vectordn_save $file.vectordn + mv $file.energyup $file.energyhfup + mv $file.energydn $file.energyhfdn + if (-e $file.energyup_save) mv $file.energyup_save $file.energyup + if (-e $file.energydn_save) mv $file.energydn_save $file.energydn + cp $file.kgen_ibz $file.kgen + cp $file.klist_ibz $file.klist + endif +endif +#QDMFT +if ( "$qdmft" == "-qdmft" ) then + total_exec lapw2 -up $para $vresp -almd $cmplx2 $so + total_exec lapw2 -dn $para $vresp -almd $cmplx2 $so + dmftproj $so -sp + # pytriqs call + printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in runsp_triqs Wien2k script\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> ERROR: Insert a correct call of pytriqs (with mpi wrapper, if needed) in runsp_triqs Wien2k script\n" + exit 0 + # to call pytriqs uncomment and modify the line below to adapt it to your system + # the number of core is in NSLOTS variable + #mpprun --force-mpi=openmpi/1.3.2-i110074 /home/x_leopo/TRIQS_segment/triqs_install/bin/pytriqs $file.py + total_exec lapw2 -up $para $vresp -qdmft $cmplx2 $so + total_exec lapw2 -dn $para $vresp -qdmft $cmplx2 $so +else + total_exec lapw2 -up $para $vresp $in1orig $cmplx2 $so + total_exec lapw2 -dn $para $vresp $in1orig $cmplx2 $so + if ( $hf == "-hf" ) then + sed 's/:SUM/:SLSUM/g' < $file.scf2up > $file.scf2up_tmp + mv $file.scf2up_tmp $file.scf2up + mv $file.clmvalup $file.clmvalslup + if ( -e $file.scfhfup_1 ) rm $file.scfhfup_* + sed 's/:SUM/:SLSUM/g' < $file.scf2dn > $file.scf2dn_tmp + mv $file.scf2dn_tmp $file.scf2dn + mv $file.clmvaldn $file.clmvalsldn + if ( -e $file.scfhfdn_1 ) rm $file.scfhfdn_* + endif +endif +# END QDMFT + +rm -f $file.clmscup $file.clmscdn + +if ( $hf == "-hf" ) goto hf + +lapwdm: +if ( -e $file.scfdmup ) rm $file.scfdmup +if ( -e $file.scfdmdn ) rm $file.scfdmdn +if ( ! $?dm ) then + if ( "$orb" != "-orb" ) goto lapw1s + if ( $?orbc ) goto lapw1s +endif +#if ( "$so" == "-so" ) goto lapwdmc +testinput $file.indm$complex2 error_input +if ( -e dnlapwdm.error ) rm dnlapwdm.error +total_exec lapwdm -up $para $cmplx2 $so +if ( "$so" != "-so" ) then +total_exec lapwdm -dn $para $cmplx2 $so +endif +lapw1s: +testinput $file.in1${complex}s lcore +total_exec lapw1 -sc -up $para $nohns $orb $readHinv0 $cmplx +total_exec lapw1 -sc -dn $para $nohns $orb $readHinv0 $cmplx + +lapw2s: +testinput $file.in2${complex2}s error_input +total_exec lapw2 -sc -up $para $vresp $in1orig $cmplx2 +total_exec lapw2 -sc -dn $para $vresp $in1orig $cmplx2 +goto lcore + +hf: +testinput $file.inhf error_input +if (-e dnhf.error) rm dnhf.error +if (!(-e $file.corewfup) || (-z $file.corewfup)) then + total_exec lcore -up + total_exec lcore -dn +endif +total_exec hf -up $diaghf $nonself $noibz $newklist $redklist $para $cmplx +total_exec hf -dn $diaghf $nonself $noibz $newklist $redklist $para $cmplx + +lapw2hf: +testinput $file.in2$complex2 error_input +cp $file.kgen_fbz $file.kgen +cp $file.klist_fbz $file.klist +total_exec lapw2 -up -hf $vresp $in1orig $cmplx2 +total_exec lapw2 -dn -hf $vresp $in1orig $cmplx2 +cp $file.kgen_ibz $file.kgen +cp $file.klist_ibz $file.klist + +lcore: +testinput $file.inc scf +if ( ! -z $file.incup && -e $file.incup ) then + cp $file.incup $file.inc + echo "spinpolarized $file.incup/dn used" >> $dayfile +endif +if ( -e dnlcore.error ) rm dnlcore.error +total_exec lcore -up +if ( ! -z $file.incdn && -e $file.incdn ) then + cp $file.incdn $file.inc +endif +total_exec lcore -dn + +coresuper: + if ( ! -e .lcore) goto scf + total_exec dstart -lcore -up + total_exec dstart -lcore -dn + rm $file.clmcorup $file.clmcordn + +scf: +if ( $hf == "-hf" ) then + foreach i ( 0 0_grr orbup orbdn orbdu 1up 1dn so 2up 2dn dmup dmdn 1sup 1sdn 2sup 2sdn cup cdn hfup hfdn 2hfup 2hfdn ) + if (-e $file.scf$i) then + if ("$i" != "dmdn" || "$so" != "-so") cat $file.scf$i >> $file.scf + endif + end +else + foreach i ( 0 orbup orbdn orbdu 1up 1dn so 2up 2dn dmup dmdn 1sup 1sdn 2sup 2sdn cup cdn ) + if (-e $file.scf$i) then + if ("$i" != "dmdn" || "$so" != "-so") cat $file.scf$i >> $file.scf + endif + end +endif + +if ( $?eece ) then + mv $file.scf2up $file.scf2up-tmp + mv $file.scf2dn $file.scf2dn-tmp + if( $vresp == '-vresp' ) then + mv $file.vrespvalup $file.vrespvalup-tmp + mv $file.vrespvaldn $file.vrespvaldn-tmp + mv $file.vrespcorup $file.vrespcorup-tmp + mv $file.vrespcordn $file.vrespcordn-tmp + endif + foreach i ( vorbup vorbdn vorbdu ) + if (-e $file.$i"_old" ) rm $file.$i"_old" + if (-e $file.$i ) cp $file.$i $file.$i"_old" #save last cycle + end + runeece_lapw $so $para $vresp + teststatus + foreach i (vorbup vorbdn vorbud ) + if (-e $file.$i"_unmixed" ) rm $file.$i"_unmixed" + if (-e $file.$i ) cp $file.$i $file.$i"_unmixed" #save unmixed dmat + end + mv $file.scf2up $file.scf2upeece + mv $file.scf2dn $file.scf2dneece + mv $file.scf2up-tmp $file.scf2up + mv $file.scf2dn-tmp $file.scf2dn + if( $vresp == '-vresp' ) then + mv $file.vrespvalup $file.vrespvaleeceup + mv $file.vrespvaldn $file.vrespvaleecedn + mv $file.vrespvalup-tmp $file.vrespvalup + mv $file.vrespvaldn-tmp $file.vrespvaldn + mv $file.vrespcorup-tmp $file.vrespcorup + mv $file.vrespcordn-tmp $file.vrespcordn + endif + goto scf1 +endif + +foreach i (dmatup dmatdn dmatud ) + if (-e $file.$i"_unmixed" ) rm $file.$i"_unmixed" + if (-e $file.$i ) cp $file.$i $file.$i"_unmixed" #save the unmixed dmat +end + +scf1: +foreach i (clmsum clmup clmdn vspup vspdn vnsup vnsdn ) + if (-e $file.$i ) cp $file.$i $file.$i"_old" #save last cycle +end + + +mixer: +testinput $file.inm error_input +if ( $?orbc ) then + total_exec mixer +else + total_exec mixer $eece1 $orb +endif +cat $file.scfm >> $file.scf + +if($?renorm) then + unset renorm + rm $file.broy* +endif + +mixer_vresp: +testinput $file.inm_vresp energytest +total_exec mixer_vresp +grep -e "CTO " -e NEC $file.outputm_vresp | sed 's/:/:VRESP/' >> $file.scf +#total_exec int16 + +energytest: +#---> output energies +#set EF = `grep 'F E R' $file.scf2 |awk '{printf("%.5f", $NF)}'` +#set ET = `grep 'AL EN' $file.outputm |awk '{printf("%.5f", $NF)}'` +#cat << theend >> $dayfile +#EF $EF +#ET $ET +#theend +#echo $ET > $file.finM + +#---> test of energy convergence +#if ($ecut == "0") goto chargetest +set etest = (`$bin/testconv -p :ENE -c $ecut`) +teststatus +echo ":ENERGY convergence: $etest[1-3]" >> $dayfile +if (! $?ec_test) goto chargetest +if ($etest[1]) then + if ($nohns == '-nohns') then + set nohns + echo "NOHNS deactivated by ENERGY convergence" >> $dayfile + else +# set iter = 1 + set ec_conv + endif +else + unset ec_conv +endif + +chargetest: +#if ($ccut == "0") goto nextiter +set ctest = (`$bin/testconv -p :DIS -c $ccut`) +teststatus +echo ":CHARGE convergence: $ctest[1-3]" >> $dayfile +if (! $?cc_test) goto nextiter +if ($ctest[1]) then + if ($nohns == '-nohns') then + set nohns + echo "NOHNS deactivated by CHARGE convergence" >> $dayfile + else +# set iter = 1 + set cc_conv + endif +else + unset cc_conv +endif + +# check F-condition for MSR1a mode +if ($testmsr == 'MSR') then + set msrtest =(`grep :FRMS $file.scf |tail -1` ) + if ($#msrtest >= 13 ) then + echo msrcount $msrcount msrtest $msrtest[13] +# Trap silly early convergene with "minimum-requests" + set etest2 = (`$bin/testconv -p :ENE -c 0.001`) + if ( $etest2[1] == '0')set msrtest[13]='F' + set ctest2 = (`$bin/testconv -p :DIS -c 0.01`) + if ( $ctest2[1] == '0')set msrtest[13]='F' +# + if ($msrtest[13] == 'T') then + #change in case.inm MSR1a/MSECa to MSR1/MSEC3, rm *.bro*, unset testmsr +@ msrcount ++ + if($msrcount == 3) then + sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp + sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm + rm *.broy* $file.inm_tmp + set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` + set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` + echo $b > .msec + echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile + set testmsr + endif + else + set msrcount=0 + endif + endif +endif + +#---> output forces +#grep 'FTOT' $file.outputm|awk '{print "FT ",$2,$4,$5,$6}'\ +# >> $dayfile +#grep 'FTOT' $file.outputm|awk '{print $4,$5,$6}' \ +# >> $file.finM + +nextiter: +@ iter -- +@ riter -- +@ nohns1 -- +@ icycle ++ + +if ($icycle == 2) set newklist + +#---> nohns +if (! $nohns1 ) then + set nohns + echo "NOHNS deactivated" >> $dayfile +endif + +#---> restart +if (! $riter && -e $file.broyd1) then + echo " restart" >> $dayfile + rm $file.broyd1 $file.broyd2 + set riter=$riter_save +endif + +foreach i ($tmp) #delete temporary files + if (-e $i) rm $i +end + +#output cycle +#printf "%s\n\n" "$iter/$riter to go" >> $dayfile +if (-e .stop) goto stop1 +if ($testmsr == 'MSR' && -e .minstop) then + sed "1s/MSR1a/MSR1 /" $file.inm >$file.inm_tmp + sed "1s/MSECa/MSEC3/" $file.inm_tmp >$file.inm + rm *.broy* $file.inm_tmp + set a=`grep -e GREED *scfm | tail -1 | cut -c 50-55` + set b=`echo "scale=5; if( $a/2 > 0.05) $a/2 else 0.05 " |bc -l` + echo $b > .msec + echo "MSR1a/MSECa changed to MSR1/MSEC3 in $file.inm, relaxing only electrons" >> $dayfile + set testmsr +endif + + +if($?ec_conv && $?cc_conv && $?fc_conv && ($testmsr == '')) goto stop + +if ($iter) goto cycle #end of sc-cycle + +if ( $?f_not_conv ) then + printf "\n> FORCES NOT CONVERGED\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> FORCES NOT CONVERGED\n" + exit 3 +endif +if ( ! $?ec_conv ) then + printf "\n> energy in SCF NOT CONVERGED\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> energy in SCF NOT CONVERGED\n" + exit 0 +endif +if ( ! $?cc_conv ) then + printf "\n> charge in SCF NOT CONVERGED\n" >> $dayfile + printf "\n> stop\n" >> $dayfile + printf "\n> charge in SCF NOT CONVERGED\n" + exit 0 +endif + +stop: #normal exit +printf "\n> stop\n" >> $dayfile +printf "\n> stop\n" +exit 0 + +stop1: #normal exit +printf "\n> stop due to .stop file\n" >> $dayfile +if (-e .stop) rm .stop +printf "\n> stop due to .stop file\n" +exit 1 + +error_input: #error exit +printf "\n> stop error: the required input file $errin for the next step could not be found\n" >> $dayfile +printf "\n> stop error: the required input file $errin for the next step could not be found\n" +exit 9 + +error: #error exit +printf "\n> stop error\n" >> $dayfile +printf "\n> stop error\n" +exit 9 + +help: #help exit +cat << theend + +PROGRAM: $0 + +PURPOSE: running the spinpolarized scf-cycle in WIEN + to be called within the case-directory + has to be located in '$WIENROOT' directory + +USAGE: $name [OPTIONS] [FLAGS] + +OPTIONS: +-cc LIMIT -> charge convergence LIMIT (0.0001 e) +-ec LIMIT -> energy convergence LIMIT ($ecut Ry) +-fc LIMIT -> force convergence LIMIT (1.0 mRy/a.u.) + default is -ec 0.0001; multiple convergence tests possible +-e PROGRAM -> exit after PROGRAM ($stopafter) +-i NUMBER -> max. NUMBER ($iter) of iterations +-s PROGRAM -> start with PROGRAM ($next) +-r NUMBER -> restart after NUMBER ($riter) iterations (rm *.broyd*) +-nohns NUMBER ->do not use HNS for NUMBER iterations +-in1new N -> create "new" in1 file after N iter (write_in1 using scf2 info) +-ql LIMIT -> select LIMIT ($qlimit) as min.charge for E-L setting in new in1 +-qdmft NP -> including DMFT from Aichhorn/Georges/Biermann running on NP proc + +FLAGS: +-h/-H -> help +-I -> with initialization of in2-files to "TOT" +-NI -> does NOT remove case.broyd* (default: rm *.broyd* after 60 sec) +-p -> run k-points in parallel (needs .machine file [speed:name]) +-it -> use iterative diagonalization +-it1 -> use iterative diag. with recreating H_inv (after basis change) +-it2 -> use iterative diag. with reinitialization (after basis change) +-noHinv -> use iterative diag. without H_inv +-vec2pratt -> use vec2pratt instead of vec2old for iterative diag. +-so -> run SCF including spin-orbit coupling +-dm -> calculate the density matrix (when -so is set, but -orb is not) +-eece -> use "ecact exchange+hybrid" methods +-orb -> use LDA+U, OP or B-ext correction +-orbc -> use LDA+U correction, but with constant V-matrix +-orbdu -> use LDA+U with crossterms up-dn (needs also -so) +-renorm-> start with mixer and renormalize density +-in1orig-> if present, use case.in1_orig file; do not modify case.in1 +-hf -> HF/hybrid-DFT calculation +-diaghf -> non-selfconsistent HF with diagonal HF only (only e_i) +-nonself -> non-selfconsistent HF/hybrid-DFT calculation (only E_x(HF)) +-newklist -> HF/hybrid-DFT calculation starting from a different k-mesh +-redklist -> HF/hybrid-DFT calculation with a reduced k-mesh for the potential + +CONTROL FILES: +.lcore runs core density superposition producing case.clmsc +.stop stop after SCF cycle +.minstop stops MSR1a minimization and changes to MSR1 +.fulldiag force full diagonalization +.noHinv remove case.storeHinv files +case.inm_vresp activates calculation of vresp files for meta-GGAs +case.in0_grr activates a second call of lapw0 (mBJ pot., or E_xc analysis) + +ENVIRONMENT VARIBLES: +SCRATCH directory where vectors and help files should go + +theend + +exit 1 + + diff --git a/fortran/dmftproj/density.f b/fortran/dmftproj/density.f new file mode 100644 index 0000000..3440a5b --- /dev/null +++ b/fortran/dmftproj/density.f @@ -0,0 +1,1109 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE density(tetr,only_corr,qtot,ifprnt) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine computes the density matrices for all the %% +C %% inlcuded orbitals and the corresponding total charge, within %% +C %% the energy window for which the projectors were previously %% +C %% defined. %% +C %% %% +C %% If tetr = .TRUE., the tetrahedron weights are used. %% +C %% = .FALSE., a simple point integration is used. %% +C %% %% +C %% If only_corr = .TRUE., the calculation is performed for the %% +C %% correlated orbitals only. %% +C %% %% +C %% If ifprnt = .TRUE., the density matrices are written in the %% +C %% file case.outdmftpr. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definition of the variables : +C ---------------------------- + USE almblm_data + USE common_data + USE prnt + USE projections + USE reps + USE symm + IMPLICIT NONE + LOGICAL :: tetr, only_corr, ifprnt + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: D + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: conj_mat, mat + INTEGER :: is, is1, ik, iorb, l, nbnd, iss + INTEGER :: lm, i, icrorb, m1, m2, m, ib + INTEGER :: iatom, jatom, jorb, imu, isrt, isym + INTEGER :: istart, istart1 + INTEGER :: nbbot, nbtop + REAL(KIND=8) :: q, qtot +C + WRITE(buf,'(a)')'Evaluation of the density matrices...' + CALL printout(0) + CALL printout(0) +C +C Initialization of the variable nsp and of the table crdensmat +C nsp describes the number of block necessary to describe the complete density matrix. + nsp=ns + IF(ifSO) nsp=4 +C The only possible cases are therefore : +C nsp=1 for a computation without spin-polarized input files, without SO [block (up/up+dn/dn)] +C nsp=2 for a computation with spin-polarized input files (but without SO) [blocks up/up and dn/dn] +C nsp=4 for a computation (with spin-polarized input files) with SO [all the blocks] +C +C +C ============================================================= +C Computation of the density matrices for correlated orbitals : +C ============================================================= +C +C These computations are performed only if there are correlated orbitals in the system. + IF(ncrorb.NE.0) THEN +C crdensmat is a table of size nsp*ncrorb. +C For each correlated orbital icrorb, crdensmat(:,icrorb) is the corresponding density matrix. + IF(.NOT.ALLOCATED(crdensmat)) THEN + ALLOCATE(crdensmat(nsp,ncrorb)) + ENDIF + DO icrorb=1,ncrorb + DO is=1,nsp + IF(ALLOCATED(crdensmat(is,icrorb)%mat)) + & DEALLOCATE(crdensmat(is,icrorb)%mat) + ALLOCATE(crdensmat(is,icrorb)%mat(1,1)) + crdensmat(is,icrorb)%mat(1,1)=0.d0 + ENDDO + ENDDO +C +C Loop on the correlated orbitals icrorb +C + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C +C ----------------------------------------------------------------------------------- +C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : +C ----------------------------------------------------------------------------------- + IF (l==0) THEN +C The field mat of crdensmat has already the good size (1 scalar element). +C There's no need of a basis change since the representation of an s-orbital is Identity whatever the basis is. + DO ik=1,nk + DO iss=1,nsp +C +C Determination of the block indices : +C ------------------------------------ + IF(iss.LE.2) THEN + is=iss + is1=iss +C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block +C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block + ELSE + is=iss-2 + is1=3-is +C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block +C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block + ENDIF +C Only the k-points with included bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE + IF(.NOT.kp(ik,is1)%included) CYCLE + nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 + nbbot=kp(ik,is)%nb_bot + nbtop=kp(ik,is)%nb_top +C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. +C for the off-diagonal blocks (calculated only when SO is considered), +C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] +C thus nbtop and nbtop fit again for is and is1. +C +C Computation of the density matrix using the tetrahedron weights for the integration : +C ------------------------------------------------------------------------------------- + IF(tetr) THEN +C The field pr_crorb%mat_rep is used to perform the computation (well defined for s-orbitals) + ALLOCATE(mat(1,nbbot:nbtop),conj_mat(1,nbbot:nbtop)) + mat(1,nbbot:nbtop)= + & pr_crorb(icrorb,ik,is)%mat_rep(1,nbbot:nbtop)* + & SQRT(kp(ik,is)%tetrweight(nbbot:nbtop)) + conj_mat(1,nbbot:nbtop)=CONJG( + & pr_crorb(icrorb,ik,is1)%mat_rep(1,nbbot:nbtop))* + & SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) +C mat = P(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) +C conj_mat = conjugate[ P(icrorb,ik,is1)) ]*sqrt(tetrahedron-weight(ik,is1)) + DO ib = nbbot,nbtop + crdensmat(iss,icrorb)%mat(1,1)= + = crdensmat(iss,icrorb)%mat(1,1)+ + + mat(1,ib)*conj_mat(1,ib) + ENDDO +C crdensmat = mat*transpose(conj_mat) which is a matrix of size 1 +C The summation over the k-points is done with the do loop ; +C crdensmat(iss,icrorb) is therefore the block "iss" of the density matrix for the orbital icrorb. + DEALLOCATE(conj_mat,mat) +C +C Computation of the density matrix using a simple point integration : +C -------------------------------------------------------------------- + ELSE + DO ib = nbbot, nbtop + crdensmat(iss,icrorb)%mat(1,1)= + = crdensmat(iss,icrorb)%mat(1,1)+ + + pr_crorb(icrorb,ik,is)%mat_rep(1,ib)* + * CONJG(pr_crorb(icrorb,ik,is1)%mat_rep(1,ib))* + * kp(ik,is)%weight + ENDDO +C crdensmat = P(icrorb,ik,is)*transpose(conjugate(P(icrorb,ik,is1)))*weight(ik,is) which is a matrix of size 1. +C The weight used is a geometric factor associated to k and does not depend on the variable is. +C That's why we merely multiply by the "weight" each term while summing over the k-points. + ENDIF + ENDDO ! End of the iss loop + ENDDO ! End of the ik loop +C +C ----------------------------------------------------------------------------------------------------- +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : +C ----------------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) +C Moreover ifSP=.TRUE. (since ifSO => ifSP, in this version) +C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) +C +C The field mat of crdensmat must be resized. +C As the complete spinor rotation approach is used, only one matrix is necessary (with is=1). + DEALLOCATE(crdensmat(1,icrorb)%mat) + ALLOCATE(crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))) + crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))=0.d0 + ALLOCATE(D(1:2*(2*l+1),1:2*(2*l+1))) +C +C Computation of the density matrix using the tetrahedron weights for the integration : +C ------------------------------------------------------------------------------------- + IF(tetr) THEN + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,1)%included) CYCLE + nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 + nbbot=kp(ik,1)%nb_bot + nbtop=kp(ik,1)%nb_top +C A distinction between up and dn states is necessary in order to use the tetrahedron weight. +C As a result, we will transform the projectors back in spherical harmonics basis +C to perform the calculation and then put the resulting density matrix in the desired basis. +C + ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) + ALLOCATE(conj_mat(1:2*(2*l+1),nbbot:nbtop)) +C The representation of the projectors is put back in the spherical harmonics basis + mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL(TRANSPOSE(CONJG( + = reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1)))),pr_crorb(icrorb,ik,1)% + & mat_rep(1:2*(2*l+1),nbbot:nbtop)) +C mat = inverse(reptrans)*pr_crorb%mat_rep = *proj_{new_i} = proj_{lm} [temporarily] + conj_mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL( + & TRANSPOSE(CONJG(reptrans(l,isrt)% + & transmat(1:2*(2*l+1),1:2*(2*l+1)) )), + & pr_crorb(icrorb,ik,1)%mat_rep + & (1:2*(2*l+1),nbbot:nbtop)) +C conj_mat = inverse(reptrans)*pr_crorb%mat_rep = *proj_{new_i} = proj_{lm} [temporarily] + DO m=1,2*l+1 + mat(m,nbbot:nbtop)=mat(m,nbbot:nbtop)* + & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) +C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) + mat((2*l+1)+m,nbbot:nbtop)= + = mat((2*l+1)+m,nbbot:nbtop)* + & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) +C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) +C mat = P(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) + conj_mat(m,nbbot:nbtop)= + = CONJG(conj_mat(m,nbbot:nbtop))* + & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) +C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) + conj_mat((2*l+1)+m,nbbot:nbtop)= + & CONJG(conj_mat((2*l+1)+m,nbbot:nbtop))* + & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) +C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) +C conj_mat = conjugate[ P(icrorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] + ENDDO + CALL zgemm('N','T',2*(2*l+1),2*(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),conj_mat,2*(2*l+1), + & DCMPLX(0.D0,0.D0),D,2*(2*l+1)) + DEALLOCATE(conj_mat,mat) +C D = mat*transpose(conj_mat) is a matrix of size 2*(2*l+1)* 2*(2*l+1) +C + crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + & crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) + & +D(1:2*(2*l+1),1:2*(2*l+1)) + END DO ! End of the ik loop +C The summation over the k-points is done. +C crdensmat(icrorb) is therefore the complete density matrix in spherical harmonic basis. +C +C The density matrix is then put into the desired basis, using reptrans(l,isrt)%transmat + crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1)),crdensmat(1,icrorb)%mat + & (1:2*(2*l+1),1:2*(2*l+1)) ) + crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(crdensmat(1,icrorb)%mat + & (1:2*(2*l+1),1:2*(2*l+1)),TRANSPOSE( CONJG( + & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))))) +C crdensmat = (reptrans)*crdensmat_l*inverse(reptrans) +C or crdensmat = crdensmat_{lm} +C crdensmat(icrorb) is now the complete density matrix in the desired basis. +C +C Computation of the density matrix using a simple point integration : +C -------------------------------------------------------------------- + ELSE +C No distinction between up and dn states is necessary because we use a +C geometric factor which depends only of the k-point. +C We can then use directly the projectors in the desired basis. + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,1)%included) CYCLE + nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 + nbbot=kp(ik,1)%nb_bot + nbtop=kp(ik,1)%nb_top + ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) + mat(1:2*(2*l+1),nbbot:nbtop)= + = pr_crorb(icrorb,ik,1)%mat_rep(1:2*(2*l+1), + & nbbot:nbtop) + CALL zgemm('N','C',2*(2*l+1),2*(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),mat,2*(2*l+1), + & DCMPLX(0.D0,0.D0),D,2*(2*l+1)) + DEALLOCATE(mat) +C D = P(icrorb,ik,is)*transpose(conjugate(P(icrorb,ik,is))) is a matrix of size 2*(2*l+1) * 2*(2*l+1) + crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = crdensmat(1,icrorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) + + +D(1:2*(2*l+1),1:2*(2*l+1))*kp(ik,1)%weight + ENDDO ! End of the ik loop +C The summation over the k-points is done in the do loop. +C The weight used is a geometric factor associated to k and does not depend on the variable is. +C That's why we merely multiply by the "weight" each term while summing over the k-points. + ENDIF + DEALLOCATE(D) +C +C ---------------------------------------------------------------------------------------------- +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : +C ---------------------------------------------------------------------------------------------- + ELSE +C The field mat of crdensmat must be resized. +C nsp matrices of size (2*l+1) are necessary to represent the whole density matrix. + DO is=1,nsp + DEALLOCATE(crdensmat(is,icrorb)%mat) + ALLOCATE(crdensmat(is,icrorb)%mat(-l:l,-l:l)) + crdensmat(is,icrorb)%mat(-l:l,-l:l)=0.d0 + ENDDO + ALLOCATE(D(-l:l,-l:l)) +C All the computations can be performed in the new basis (using the field pr_crorb%mat_rep) + DO ik=1,nk + DO iss=1,nsp +C +C Determination of the block indices : +C ------------------------------------ + IF(iss.LE.2) THEN + is=iss + is1=iss +C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block +C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block + ELSE + is=iss-2 + is1=3-is +C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block +C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block + ENDIF +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE + IF(.NOT.kp(ik,is1)%included) CYCLE + nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 + nbbot=kp(ik,is)%nb_bot + nbtop=kp(ik,is)%nb_top +C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. +C for the off-diagonal blocks (calculated only when SO is considered), +C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] +C thus nbtop and nbtop fit again for is and is1. +C +C Computation of the density matrix using the tetrahedron weights for the integration : +C ------------------------------------------------------------------------------------- + IF(tetr) THEN +C The representation of the projectors in the desired basis is used (field pr_crorb%mat_rep) + ALLOCATE(mat(-l:l,nbbot:nbtop)) + ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) + DO m=-l,l + mat(m,nbbot:nbtop)= + = pr_crorb(icrorb,ik,is)%mat_rep(m,nbbot:nbtop)* + & SQRT(kp(ik,is)%tetrweight(nbbot:nbtop)) + conj_mat(m,nbbot:nbtop)=CONJG( + & pr_crorb(icrorb,ik,is1)%mat_rep(m,nbbot:nbtop)) + & *SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) +C mat = P(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) +C conj_mat = conjugate[ P(icrorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] + ENDDO + CALL zgemm('N','T',(2*l+1),(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), + & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) + DEALLOCATE(conj_mat,mat) +C D = mat*transpose(conj_mat) is a matrix of size (2*l+1)*(2*l+1) + crdensmat(iss,icrorb)%mat(-l:l,-l:l)= + = crdensmat(iss,icrorb)%mat(-l:l,-l:l)+D(-l:l,-l:l) +C The summation over the k-points is done. +C crdensmat(icrorb) is therefore the complete density matrix of the orbital icrorb. +C +C Computation of the density matrix using a simple point integration : +C -------------------------------------------------------------------- + ELSE + ALLOCATE(mat(-l:l,nbbot:nbtop)) + ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) + mat(-l:l,nbbot:nbtop)=pr_crorb(icrorb,ik,is) + & %mat_rep(-l:l,nbbot:nbtop) + conj_mat(-l:l,nbbot:nbtop)=pr_crorb(icrorb,ik,is1) + & %mat_rep(-l:l,nbbot:nbtop) + CALL zgemm('N','C',(2*l+1),(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), + & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) + DEALLOCATE(mat,conj_mat) +C D = P(icrorb,ik,is)*transpose(conjugate(P(icrorb,ik,is))) is a matrix of size (2*l+1)*(2*l+1) + crdensmat(iss,icrorb)%mat(-l:l,-l:l)= + = crdensmat(iss,icrorb)%mat(-l:l,-l:l) + + +D(-l:l,-l:l)*kp(ik,is)%weight +C The weight used is a geometric factor asoociated to k and does not depend on the variable is. +C That's why we merely multiply by the "weight" each term while summing over the k-points. + ENDIF + ENDDO ! End of the iss loop + ENDDO ! End of the ik loop + DEALLOCATE(D) + ENDIF ! End of the basis if-then-else +C + ENDDO ! End of the icrorb loop +C +C +C =============================== +C Symmetrization to the full BZ : +C =============================== + CALL symmetrize_mat(crdensmat,crorb,ncrorb) +C +C +C ============================================================================ +C Application of the Rloc transformation to go back to the local coordinates : +C ============================================================================ + CALL rotdens_mat(crdensmat,crorb,ncrorb) +C +C +C ================================================================= +C Printing the density matrices and the charge in the output file : +C ================================================================= + IF(ifprnt) THEN + CALL printout(0) + WRITE(buf,'(a)') '-------------------------------------' + CALL printout(0) + WRITE(buf,'(a)') + & 'Density Matrices for the Correlated States : ' + CALL printout(0) +C The density matrices and charge are printed for all the corrrelated orbitals + DO icrorb=1,ncrorb + CALL printout(0) + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C Description of the correlated orbital + WRITE(buf,'(3(a,i3))') + & ' Sort = ',isrt,' Atom = ',crorb(icrorb)%atom, + & ' and Orbital l = ',l + CALL printout(0) + q=0d0 +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For a calculation spin-polarized with SO : + IF (nsp==4) THEN + WRITE(buf,'(2(2F12.6,2x))') + & crdensmat(1,icrorb)%mat(1,1), + & crdensmat(3,icrorb)%mat(1,1) + CALL printout(0) + WRITE(buf,'(2(2F12.6,2x))') + & crdensmat(4,icrorb)%mat(1,1), + & crdensmat(2,icrorb)%mat(1,1) + CALL printout(0) + q=q+crdensmat(1,icrorb)%mat(1,1)+ + + crdensmat(2,icrorb)%mat(1,1) +C For a calculation spin-polarized without SO : + ELSE IF (nsp==2) THEN + WRITE(buf,'(2(2F12.6,2x))') + & crdensmat(1,icrorb)%mat(1,1),DCMPLX(0.D0,0.D0) + CALL printout(0) + WRITE(buf,'(2(2F12.6,2x))') + & DCMPLX(0.D0,0.D0),crdensmat(2,icrorb)%mat(1,1) + CALL printout(0) + q=q+crdensmat(1,icrorb)%mat(1,1)+ + + crdensmat(2,icrorb)%mat(1,1) +C For a paramagnetic calculation without SO : + ELSE + WRITE(buf,'(2F12.6,2x)') crdensmat(1,icrorb)%mat(1,1) + CALL printout(0) + q=q+crdensmat(1,icrorb)%mat(1,1) + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO : + WRITE(buf,'(a,a)') 'Writing the matrix as : ', + & '[ block 1 | block 2 ] with' + CALL printout(0) + WRITE(buf,'(a,a)') ' ', + & '[ block 3 | block 4 ]' + CALL printout(0) +C Printing the different blocks + ALLOCATE(D(1,1:2*l+1)) + WRITE(buf,'(a,i2,a)') ' # For the block 1 :' + CALL printout(0) + DO m=1,2*l+1 + D(1,1:2*l+1)=crdensmat(1,icrorb)%mat(m,1:(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') ' # For the block 2 :' + CALL printout(0) + DO m=1,2*l+1 + D(1,1:2*l+1)= + & crdensmat(1,icrorb)%mat(m,2*l+2:2*(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') ' # For the block 3 :' + CALL printout(0) + DO m=2*l+2,2*(2*l+1) + D(1,1:2*l+1)= + & crdensmat(1,icrorb)%mat(m,1:(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') ' # For the block 4 :' + CALL printout(0) + DO m=2*l+2,2*(2*l+1) + D(1,1:2*l+1)= + & crdensmat(1,icrorb)%mat(m,2*l+2:2*(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + DEALLOCATE(D) + DO m1=1,2*(2*l+1) + q=q+crdensmat(1,icrorb)%mat(m1,m1) + ENDDO +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF(nsp==4) THEN + WRITE(buf,'(a,a)') 'Writing the matrix as : ', + & '[ block up/up | block up/dn ] with' + CALL printout(0) + WRITE(buf,'(a,a)') ' ', + & '[ block dn/up | block dn/dn ]' + CALL printout(0) + ELSEIF(nsp==2) THEN + WRITE(buf,'(a,a)') 'Writing the matrix as : ', + & '[ block up/up | 0 ] with' + CALL printout(0) + WRITE(buf,'(a,a)') ' ', + & '[ 0 | block dn/dn ]' + CALL printout(0) + ENDIF + DO iss=1,nsp + IF(iss.LE.2) THEN + is=iss + is1=iss +C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block +C If iss=2 (down), is=2 and is1=2 -> Description of the down/down block + IF (is==1) THEN + IF ( ifSP.or.ifSO ) THEN + WRITE(buf,'(a)') ' # For the Up/Up block :' + ENDIF + CALL printout(0) + ELSE + WRITE(buf,'(a)') ' # For the Down/Down block :' + CALL printout(0) + ENDIF + ELSE + is=iss-2 + is1=3-is +C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/down block +C If iss=4, is=2 (down) and is1=1 (up) -> Description of the down/up block + IF (is==1) THEN + WRITE(buf,'(a)') ' # For the Up/Down block :' + CALL printout(0) + ELSE + WRITE(buf,'(a)') ' # For the Down/Up block :' + CALL printout(0) + ENDIF + ENDIF + ALLOCATE(D(1,-l:l)) + DO m=-l,l + D(1,-l:l)=crdensmat(iss,icrorb)%mat(m,-l:l) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + IF(is==is1) q=q+crdensmat(iss,icrorb)%mat(m,m) + ENDDO + DEALLOCATE(D) + ENDDO + ENDIF +C Displaying the charge q of the orbital + CALL printout(0) + WRITE(buf,'(a,f10.5)')'The charge of the orbital is : ',q + CALL printout(0) + ENDDO + ENDIF +C + ENDIF ! End of the if ncrorb=0 if-then-else +C The calculation is stopped here if the flag only_corr is .TRUE. + IF (.not.only_corr) THEN +C +C ========================================= +C Computation of the total charge density : +C ========================================= +C The charge is stored in the variable qtot given in argument. + qtot=0d0 + do is=1,ns + DO ik=1,nk + if (kp(ik,is)%included) then + DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top + IF(tetr) THEN + qtot=qtot+kp(ik,is)%tetrweight(ib) + ELSE + qtot=qtot+kp(ik,is)%weight + ENDIF + ENDDO + endif + ENDDO + if (ifSO) exit + enddo +C +C ================================================================= +C Computation of the density matrix for all the included orbitals : +C ================================================================= +C The computations are performed with the Theta projectors (pr_orb) +C +C densmat is a table of size nsp*norb. +C For each included orbital iorb, densmat(:,iorb) is the corresponding density matrix. + IF(.NOT.ALLOCATED(densmat)) THEN + ALLOCATE(densmat(nsp,norb)) + ENDIF + DO iorb=1,norb + DO is=1,nsp + IF(ALLOCATED(densmat(is,iorb)%mat)) + & DEALLOCATE(densmat(is,iorb)%mat) + ALLOCATE(densmat(is,iorb)%mat(1,1)) + densmat(is,iorb)%mat(1,1)=0.d0 + ENDDO + ENDDO +C +C Loop on the included orbitals iorb +C + DO iorb=1,norb + isrt=orb(iorb)%sort + l=orb(iorb)%l +C +C ----------------------------------------------------------------------------------- +C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : +C ----------------------------------------------------------------------------------- + IF (l==0) THEN +C The field mat of densmat has already the good size (1 scalar element). +C There's no need of a basis change since the representation of an s-orbital is Identity whatever the basis is. + DO ik=1,nk + DO iss=1,nsp +C +C Determination of the block indices : +C ------------------------------------ + IF(iss.LE.2) THEN + is=iss + is1=iss +C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block +C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block + ELSE + is=iss-2 + is1=3-is +C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block +C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block + ENDIF +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE + IF(.NOT.kp(ik,is1)%included) CYCLE + nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 + nbbot=kp(ik,is)%nb_bot + nbtop=kp(ik,is)%nb_top +C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. +C for the off-diagonal blocks (calculated only when SO is considered), +C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] +C thus nbtop and nbtop fit again for is and is1. +C +C Computation of the density matrix using the tetrahedron weights for the integration : +C ------------------------------------------------------------------------------------- + IF(tetr) THEN +C The field pr_orb%matn_rep is used to perform the computation (well defined for s-orbitals) + DO i=1,norm_radf(iorb)%n + ALLOCATE(mat(1,nbbot:nbtop)) + ALLOCATE(conj_mat(1,nbbot:nbtop)) + mat(1,nbbot:nbtop)= + & pr_orb(iorb,ik,is)%matn_rep(1,nbbot:nbtop,i)* + & SQRT(kp(ik,is)%tetrweight(nbbot:nbtop)) + conj_mat(1,nbbot:nbtop)=CONJG( + & pr_orb(iorb,ik,is1)%matn_rep(1,nbbot:nbtop,i))* + & SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) +C mat = Theta(iorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) +C conj_mat = conjugate[ Theta(iorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] + DO ib = nbbot,nbtop + densmat(iss,iorb)%mat(1,1)= + = densmat(iss,iorb)%mat(1,1) + & +mat(1,ib)*conj_mat(1,ib) + ENDDO +C densmat = mat*transpose(conj_mat) which is a matrix of size 1 + DEALLOCATE(conj_mat,mat) + ENDDO +C The summation over the k-points is done with the do loop ; +C The summation over the |phi_j> basis is done with the do loop ; +C densmat(iss,iorb) is therefore the block "iss" of the density matrix for the orbital iorb. +C +C Computation of the density matrix using a simple point integration : +C -------------------------------------------------------------------- + ELSE + DO i=1,norm_radf(iorb)%n + DO ib = nbbot,nbtop + densmat(iss,iorb)%mat(1,1)= + = densmat(iss,iorb)%mat(1,1)+ + + pr_orb(iorb,ik,is)%matn_rep(1,ib,i)* + * CONJG(pr_orb(iorb,ik,is1)%matn_rep(1,ib,i))* + * kp(ik,is)%weight + ENDDO + ENDDO +C densmat = Theta(iorb,ik,is)*transpose(conjugate(Theta(iorb,ik,is1))) which is a matrix of size 1 +C The weight used is a geometric factor associated to k and does not depend on the variable is. +C That's why we merely multiply by the "weight" each term while summing over the k-points. + ENDIF + ENDDO ! End of the iss loop + ENDDO ! End of the ik loop +C +C ----------------------------------------------------------------------------------------------------- +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : +C ----------------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) +C Moreover ifSP=.TRUE. (since ifSO => ifSP, in this version) +C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) +C +C The field mat of densmat must be resized. +C As the complete spinor rotation approach is used, only one matrix is necessary (with is=1). + DEALLOCATE(densmat(1,iorb)%mat) + ALLOCATE(densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))) + densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))=0.d0 + ALLOCATE(D(1:2*(2*l+1),1:2*(2*l+1))) +C +C Computation of the density matrix using the tetrahedron weights for the integration : +C ------------------------------------------------------------------------------------- + IF(tetr) THEN + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,1)%included) CYCLE + nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 + nbbot=kp(ik,1)%nb_bot + nbtop=kp(ik,1)%nb_top +C A distinction between up and dn states is necessary in order to use the tetrahedron weight. +C As a result, we will transform the projectors back in spherical harmonics basis +C to perform the calculation and then put the resulting density matrix in the desired basis. +C +C Loop on the |phi_j> basis + DO i=1,norm_radf(iorb)%n + ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) + ALLOCATE(conj_mat(1:2*(2*l+1),nbbot:nbtop)) +C The representation of the projectors is put back in the spherical harmonics basis + mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL( + & TRANSPOSE(CONJG(reptrans(l,isrt)% + & transmat(1:2*(2*l+1),1:2*(2*l+1)) )), + & pr_orb(iorb,ik,1)%matn_rep + & (1:2*(2*l+1),nbbot:nbtop,i) ) +C mat = inverse(reptrans)*pr_orb%mat_rep = *theta_{new_i} = theta_{lm} [temporarily] + conj_mat(1:2*(2*l+1),nbbot:nbtop)=MATMUL( + & TRANSPOSE(CONJG(reptrans(l,isrt)% + & transmat(1:2*(2*l+1),1:2*(2*l+1)) )), + & pr_orb(iorb,ik,1)%matn_rep + & (1:2*(2*l+1),nbbot:nbtop,i) ) +C conj_mat = inverse(reptrans)*pr_orb%mat_rep = *theta_{new_i} = theta_{lm} [temporarily] + DO m=1,2*l+1 + mat(m,nbbot:nbtop)=mat(m,nbbot:nbtop)* + & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) +C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) + mat((2*l+1)+m,nbbot:nbtop)= + = mat((2*l+1)+m,nbbot:nbtop)* + & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) +C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) +C mat = Theta(icrorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) + conj_mat(m,nbbot:nbtop)=CONJG( + & conj_mat(m,nbbot:nbtop) )* + & SQRT(kp(ik,1)%tetrweight(nbbot:nbtop)) +C The first (2*l+1) lines are associated to up states. Hence a multiplication by tetrweight(up) + conj_mat((2*l+1)+m,nbbot:nbtop)= + & CONJG(conj_mat((2*l+1)+m,nbbot:nbtop))* + & SQRT(kp(ik,2)%tetrweight(nbbot:nbtop)) +C The last (2*l+1) lines are associated to dn states. Hence a multiplication by tetrweight(dn) +C conj_mat = conjugate[ Theta(icrorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] + ENDDO + CALL zgemm('N','T',2*(2*l+1),2*(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),conj_mat,2*(2*l+1), + & DCMPLX(0.D0,0.D0),D,2*(2*l+1)) + DEALLOCATE(conj_mat,mat) +C D = mat*transpose(conj_mat) is a matrix of size 2*(2*l+1)* 2*(2*l+1) +C + densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + & densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) + & +D(1:2*(2*l+1),1:2*(2*l+1)) + END DO ! End of the |phi_j> basis loop + END DO ! End of the ik loop +C The summation over the k-points is done ; +C The summation over the |phi_j> basis is done ; +C crdensmat(icrorb) is therefore the complete density matrix in spherical harmonic basis. +C +C The density matrix is then put into the desired basis, using reptrans(l,isrt)%transmat + densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1)),densmat(1,iorb)%mat + & (1:2*(2*l+1),1:2*(2*l+1)) ) + densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(densmat(1,iorb)%mat + & (1:2*(2*l+1),1:2*(2*l+1)),TRANSPOSE( CONJG( + & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))))) +C densmat = (reptrans)*densmat_l*inverse(reptrans) +C or densmat = densmat_{lm} +C densmat(iorb) is now the complete density matrix in the desired basis. +C +C Computation of the density matrix using a simple point integration : +C -------------------------------------------------------------------- + ELSE +C No distinction between up and dn states is necessary because we use a +C geometric factor which depends only of the k-point. +C We can then use directly the projectors in the desired basis. + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,1)%included) CYCLE +C Loop on the |phi_j> basis + DO i=1,norm_radf(iorb)%n + nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 + nbbot=kp(ik,1)%nb_bot + nbtop=kp(ik,1)%nb_top + ALLOCATE(mat(1:2*(2*l+1),nbbot:nbtop)) + mat(1:2*(2*l+1),nbbot:nbtop)= + = pr_orb(iorb,ik,1)%matn_rep + & (1:2*(2*l+1),nbbot:nbtop,i) + CALL zgemm('N','C',2*(2*l+1),2*(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,2*(2*l+1),mat, + & 2*(2*l+1),DCMPLX(0.D0,0.D0),D,2*(2*l+1)) + DEALLOCATE(mat) +C D = Theta(iorb,ik,is)*transpose(conjugate(Theta(iorb,ik,is))) is a matrix of size 2*(2*l+1) * 2*(2*l+1) + densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = densmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) + + +D(1:2*(2*l+1),1:2*(2*l+1))*kp(ik,1)%weight + END DO ! End of the |phi_j > basis loop + ENDDO ! End of the ik loop +C The summation over the k-points is done ; +C The summation over the |phi_j> basis is done ; +C The weight used is a geometric factor associated to k and does not depend on the variable is. +C That's why we merely multiply by the "weight" each term while summing over the k-points. + ENDIF + DEALLOCATE(D) +C +C ---------------------------------------------------------------------------------------------- +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : +C ---------------------------------------------------------------------------------------------- + ELSE +C The field mat of densmat must be resized. +C nsp matrices of size (2*l+1) are necessary to represent the whole density matrix. + DO is=1,nsp + DEALLOCATE(densmat(is,iorb)%mat) + ALLOCATE(densmat(is,iorb)%mat(-l:l,-l:l)) + densmat(is,iorb)%mat(-l:l,-l:l)=0.d0 + ENDDO + ALLOCATE(D(-l:l,-l:l)) +C All the computations can be performed in the new basis (using the field pr_orb%matn_rep) + DO ik=1,nk + DO iss=1,nsp +C +C Determination of the block indices : +C ------------------------------------ + IF(iss.LE.2) THEN + is=iss + is1=iss +C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block +C If iss=2 (down), is=2 and is1=2 -> Description of the dn/dn block + ELSE + is=iss-2 + is1=3-is +C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/dn block +C If iss=4, is=2 (down) and is1=1 (up) -> Description of the dn/up block + ENDIF +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE + IF(.NOT.kp(ik,is1)%included) CYCLE + nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 + nbbot=kp(ik,is)%nb_bot + nbtop=kp(ik,is)%nb_top +C for the diagonal blocks, is=is1 ; thus nbtop and nbtop are the same for is and is1. +C for the off-diagonal blocks (calculated only when SO is considered), +C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) [in set_projections.f] +C thus nbtop and nbtop fit again for is and is1. +C +C Computation of the density matrix using the tetrahedron weights for the integration : +C ------------------------------------------------------------------------------------- + IF(tetr) THEN +C The representation of the projectors in the desired basis is used (field pr_orb%mat_rep) + DO i=1,norm_radf(iorb)%n + ALLOCATE(mat(-l:l,nbbot:nbtop)) + ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) + DO m=-l,l + mat(m,nbbot:nbtop)=pr_orb(iorb,ik,is)%matn_rep + & (m,nbbot:nbtop,i)*SQRT(kp(ik,is)% + & tetrweight(nbbot:nbtop)) + conj_mat(m,nbbot:nbtop)=CONJG( + = pr_orb(iorb,ik,is1)%matn_rep(m,nbbot:nbtop,i)) + & *SQRT(kp(ik,is1)%tetrweight(nbbot:nbtop)) +C mat = Theta(iorb,ik,is)*sqrt(tetrahedron-weight(ik,is)) +C conj_mat = conjugate[ Theta(iorb,ik,is1))*sqrt(tetrahedron-weight(ik,is1)) ] + ENDDO + CALL zgemm('N','T',(2*l+1),(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), + & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) + DEALLOCATE(conj_mat,mat) +C D = mat*transpose(conj_mat) is a matrix of size (2*l+1)*(2*l+1) + densmat(iss,iorb)%mat(-l:l,-l:l)= + = densmat(iss,iorb)%mat(-l:l,-l:l)+D(-l:l,-l:l) + ENDDO +C The summation over the |phi_j > basis is done. +C The summation over the k-points is done. +C densmat(iorb) is therefore the complete density matrix of the orbital iorb. +C +C Computation of the density matrix using a simple point integration : +C -------------------------------------------------------------------- + ELSE + DO i=1,norm_radf(iorb)%n + ALLOCATE(mat(-l:l,nbbot:nbtop)) + ALLOCATE(conj_mat(-l:l,nbbot:nbtop)) + mat(-l:l,nbbot:nbtop)= + = pr_orb(iorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,i) + conj_mat(-l:l,nbbot:nbtop)= + = pr_orb(iorb,ik,is1)%matn_rep(-l:l,nbbot:nbtop,i) + CALL zgemm('N','C',(2*l+1),(2*l+1),nbnd, + & DCMPLX(1.D0,0.D0),mat,(2*l+1),conj_mat,(2*l+1), + & DCMPLX(0.D0,0.D0),D(-l:l,-l:l),(2*l+1)) + DEALLOCATE(mat,conj_mat) +C D = Theta(iorb,ik,is)*transpose(conjugate(Theta(iorb,ik,is))) is a matrix of size (2*l+1)*(2*l+1) + densmat(iss,iorb)%mat(-l:l,-l:l)= + = densmat(iss,iorb)%mat(-l:l,-l:l) + + +D(-l:l,-l:l)*kp(ik,is)%weight +C The weight used is a geometric factor asoociated to k and does not depend on the variable is. +C That's why we merely multiply by the "weight" each term while summing over the k-points and the |phi_j> basis. + ENDDO ! End of the |phi_j > basis loop + ENDIF + ENDDO ! End of the iss loop + ENDDO ! End of the ik loop + DEALLOCATE(D) +C + ENDIF ! End of the basis if-then-else +C + ENDDO ! End of the iorb loop +C +C +C =============================== +C Symmetrization to the full BZ : +C =============================== + CALL symmetrize_mat(densmat,orb,norb) +C +C +C ============================================================================ +C Application of the Rloc transformation to go back to the local coordinates : +C ============================================================================ + CALL rotdens_mat(densmat,orb,norb) +C +C +C ================================================================= +C Printing the density matrices and the charge in the output file : +C ================================================================= + IF(ifprnt) THEN + CALL printout(0) + WRITE(buf,'(a)') '-------------------------------------' + CALL printout(0) + WRITE(buf,'(a)') + & 'Density Matrices for all the States of the System : ' + CALL printout(0) +C The density matrices and charge are printed for all the included orbitals + DO iorb=1,norb + CALL printout(0) + isrt=orb(iorb)%sort + l= orb(iorb)%l +C Description of the correlated orbital + WRITE(buf,'(3(a,i3))') + & ' Sort = ',isrt,' Atom = ',orb(iorb)%atom, + & ' and Orbital l = ',l + CALL printout(0) + q=0d0 +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For a calculation spin-polarized with SO : + IF (nsp==4) THEN + WRITE(buf,'(2(2F12.6,2x))') + & densmat(1,iorb)%mat(1,1), + & densmat(3,iorb)%mat(1,1) + CALL printout(0) + WRITE(buf,'(2(2F12.6,2x))') + & densmat(4,iorb)%mat(1,1), + & densmat(2,iorb)%mat(1,1) + CALL printout(0) + q=q+densmat(1,iorb)%mat(1,1)+ + + densmat(2,iorb)%mat(1,1) +C For a calculation spin-polarized without SO : + ELSE IF (nsp==2) THEN + WRITE(buf,'(2(2F12.6,2x))') + & densmat(1,iorb)%mat(1,1),DCMPLX(0.D0,0.D0) + CALL printout(0) + WRITE(buf,'(2(2F12.6,2x))') + & DCMPLX(0.D0,0.D0),densmat(2,iorb)%mat(1,1) + CALL printout(0) + q=q+densmat(1,iorb)%mat(1,1)+ + + densmat(2,iorb)%mat(1,1) +C For a paramagnetic calculation without SO : + ELSE + WRITE(buf,'(2F12.6,2x)') densmat(1,iorb)%mat(1,1) + q=q+densmat(1,iorb)%mat(1,1) + CALL printout(0) + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO : + WRITE(buf,'(a,a)') 'Writing the matrix as : ', + & '[ block 1 | block 2 ] with' + CALL printout(0) + WRITE(buf,'(a,a)') ' ', + & '[ block 3 | block 4 ]' + CALL printout(0) +C Printing the different blocks + ALLOCATE(D(1,1:2*l+1)) + WRITE(buf,'(a,i2,a)') ' # For the block 1 :' + CALL printout(0) + DO m=1,2*l+1 + D(1,1:2*l+1)=densmat(1,iorb)%mat(m,1:(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') ' # For the block 2 :' + CALL printout(0) + DO m=1,2*l+1 + D(1,1:2*l+1)= + & densmat(1,iorb)%mat(m,2*l+2:2*(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') ' # For the block 3 :' + CALL printout(0) + DO m=2*l+2,2*(2*l+1) + D(1,1:2*l+1)= + & densmat(1,iorb)%mat(m,1:(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') ' # For the block 4 :' + CALL printout(0) + DO m=2*l+2,2*(2*l+1) + D(1,1:2*l+1)= + & densmat(1,iorb)%mat(m,2*l+2:2*(2*l+1)) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + ENDDO + DEALLOCATE(D) + DO m1=1,2*(2*l+1) + q=q+densmat(1,iorb)%mat(m1,m1) + ENDDO +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF(nsp==4) THEN + WRITE(buf,'(a,a)') 'Writing the matrix as : ', + & '[ block up/up | block up/dn ] with' + CALL printout(0) + WRITE(buf,'(a,a)') ' ', + & '[ block dn/up | block dn/dn ]' + CALL printout(0) + ELSEIF(nsp==2) THEN + WRITE(buf,'(a,a)') 'Writing the matrix as : ', + & '[ block up/up | 0 ] with' + CALL printout(0) + WRITE(buf,'(a,a)') ' ', + & '[ 0 | block dn/dn ]' + CALL printout(0) + ENDIF + DO iss=1,nsp + IF(iss.LE.2) THEN + is=iss + is1=iss +C If iss=1 (up), is=1 and is1=1 -> Description of the up/up block +C If iss=2 (down), is=2 and is1=2 -> Description of the down/down block + IF (is==1) THEN + IF ( ifSP.or.ifSO ) THEN + WRITE(buf,'(a)') ' # For the Up/Up block :' + ENDIF + CALL printout(0) + ELSE + WRITE(buf,'(a)') ' # For the Down/Down block :' + CALL printout(0) + ENDIF + ELSE + is=iss-2 + is1=3-is +C If iss=3, is=1 (up) and is1=2 (down) -> Description of the up/down block +C If iss=4, is=2 (down) and is1=1 (up) -> Description of the down/up block + IF (is==1) THEN + WRITE(buf,'(a)') ' # For the Up/Down block :' + CALL printout(0) + ELSE + WRITE(buf,'(a)') ' # For the Down/Up block :' + CALL printout(0) + ENDIF + ENDIF + ALLOCATE(D(1,-l:l)) + DO m=-l,l + D(1,-l:l)=densmat(iss,iorb)%mat(m,-l:l) + WRITE(buf,'(7(2F12.6),x)') D(:,:) + CALL printout(0) + IF(is==is1) q=q+densmat(iss,iorb)%mat(m,m) + ENDDO + DEALLOCATE(D) + ENDDO + ENDIF +C Displaying the charge q of the orbital + CALL printout(0) + WRITE(buf,'(a,f10.5)')'The charge of the orbital is : ',q + CALL printout(0) + ENDDO + ENDIF +C +C ========================================================================== +C Printing the total charge in the output file (only if only_corr =.FALSE.): +C ========================================================================== + WRITE(buf,'(a,f11.5)')'TOTAL CHARGE = ',qtot + CALL printout(1) +C + ENDIF ! End of the .not.only_corr if-then-else + RETURN + END + + + + + + diff --git a/fortran/dmftproj/dmftproj.f b/fortran/dmftproj/dmftproj.f new file mode 100644 index 0000000..7106526 --- /dev/null +++ b/fortran/dmftproj/dmftproj.f @@ -0,0 +1,884 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + PROGRAM dmftproj +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This prgm computes projections to a local (correlated) set of %% +C %% orbitals from the set of eigenfunctions obtained with Wien2k. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE almblm_data + USE common_data + USE file_names + USE prnt + USE symm + USE reps + IMPLICIT NONE +C + REAL(KIND=8) :: e_win, e_sum, elecn, qtot, qdum + REAL(KIND=8), DIMENSION(:,:), ALLOCATABLE :: Alm_sum, Qlm_sum + COMPLEX(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: occ_mat + COMPLEX(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: occ_mat_sym +C + COMPLEX(KIND=8) :: coff + COMPLEX(KIND=8),DIMENSION(-3:3,-3:3) :: tmpmat + INTEGER, DIMENSION(:,:), ALLOCATABLE :: lnreps + INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: correps + INTEGER :: isrt, ie, l, m, isym, jatom + INTEGER :: lm, ik, ilo, ib, iatom, imu, io + INTEGER :: idum, i1, i2 + INTEGER :: m1, m2, lm1, lm2 + INTEGER :: is, irep, nbrep + INTEGER :: iorb, icrorb, nmaxrep + INTEGER :: paramflag, lcorr + LOGICAL :: ifcorr + REAL(KIND=8) :: fdum, rtetr + REAL(KIND=8),PARAMETER :: Elarge=1d6 + character(len=120) line +C ================================ +C Processing of the command line : +C ================================ + CALL readcomline +C ==================================================== +C Initialization of the variable ns (number of spin) : +C ==================================================== +C If the computation uses spin-polarized input files, ns=2 + ns=1 + IF(ifSP) ns=2 +C =================================== +C Opening of the input/output files : +C =================================== + CALL openfiles +C ========================================= +C Reading of the input file case.indmftpr : +C ========================================= + READ(iuinp,*)nsort +C nsort = number of sorts of atom + ALLOCATE(nmult(0:nsort)) + nmult(0)=0 + READ(iuinp,*)nmult(1:nsort) +C nmult = multiplicity for each sort of atom, table from 1 to nsort + natom=SUM(nmult(1:nsort)) +C natom = total number of atoms in the unit cell + ALLOCATE(isort(natom)) + iatom=0 + DO isrt=1,nsort + DO imu=1,nmult(isrt) + iatom=iatom+1 + isort(iatom)=isrt + ENDDO + ENDDO +C isort = table of correspondance iatom -> isort (from 1 to natom) + READ(iuinp,*)lmax +C lmax = maximal orbital number l for all the atoms + IF(ifSO) THEN + nlm=(lmax+1)*(lmax+1)*2 + ELSE + nlm=(lmax+1)*(lmax+1) + ENDIF +C nlm = maximal number of matrix elements for an l-orbital +C only doubled when SO because of the up and down independent parts... + ALLOCATE(lsort(0:lmax,nsort)) + ALLOCATE(defbasis(nsort)) + ALLOCATE(lnreps(0:lmax,nsort)) + IF(.not.ifSO) THEN +C Spin is a good quantum number and ireps are considered in orbital space only. + ALLOCATE(correps(2*lmax+1,0:lmax,nsort)) + ELSE +C Spin is not a good quantum number anymore (possibility of basis which mixes up and dn states) +C the ireps are considered in spin+orbital space. + ALLOCATE(correps(2*(2*lmax+1),0:lmax,nsort)) + ENDIF + ALLOCATE(ifSOflag(nsort)) + DO isrt=1,nsort + READ(iuinp,*) defbasis(isrt)%typebasis + IF (defbasis(isrt)%typebasis(1:8)=='fromfile') THEN + READ(iuinp,*) defbasis(isrt)%sourcefile + ELSE + defbasis(isrt)%sourcefile = 'null' + ENDIF +C defbasis = table of correspondance isort -> "basistrans" element, table from 1 to nsort +C defbasis(isrt)%typebasis = "cubic", "complex" or "fromfile" +C defbasis(isrt)%sourcefile = the name of the file to read if typebasis="fromfile" + READ(iuinp,*)lsort(0:lmax,isrt) + READ(iuinp,*)lnreps(0:lmax,isrt) +C ifcorr is a flag who states if the atomic sort isrt has correlated orbitals. + ifcorr=.FALSE. + DO l=0,lmax + IF (lsort(l,isrt)==2) THEN + ifcorr=.TRUE. +C If lnreps(l,isrt)=1, the treatment is the same as a 0 value. +C because if the number of irep is 1, this irep will be the correlated one. +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if the number of irep is not correct. +C ------------------------- +C + IF (ifSO) THEN +C With SO, the number of ireps must not exceed 2*(2*l+1). + IF(lnreps(l,isrt).gt.(2*(2*l+1))) THEN + WRITE(buf,'(a,a,i2,a,i2,a)')' The number of ireps ', + & 'considered for l=',l,' and isrt=',isrt, + & ' is not possible.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF + ELSE +C Without SO, the number of ireps must not exceed (2*l+1). + IF(lnreps(l,isrt).gt.(2*l+1)) THEN + WRITE(buf,'(a,a,i2,a,i2,a)')' The number of ireps ', + & 'considered for l=',l,' and isrt=',isrt, + & ' is not possible.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF + ENDIF +C --------------------------------------------------------------------------------------- +C +C The description of the different ireps is considered only if there are more than 1 irep. +C that is to say if lnreps(l,isrt)=2, 3,... + IF(lnreps(l,isrt)>0) THEN + READ(iuinp,'(14i1)') correps(1:lnreps(l,isrt),l,isrt) + ENDIF + ENDIF + ENDDO +C The ifSO_flag is read only if there is a correlated orbital for the sort isrt. + IF (ifcorr) THEN + READ(iuinp,'(i1)') ifSOflag(isrt) + ENDIF + ENDDO +C lsort = index for each orbital (0 : not include / 1 : include / 2 : correlated), table from 0 to lmax, from 1 to nsort +C lnreps = number of irreducible representations for each orbital, table from 0 to lmax, from 1 to nsort (temporary variables) +C correps = index for each irreducible representations of the correlated orbital, table from 1 to lnreps(l,isrt), from 0 to lmax, from 1 to nsort (temporary variable) +C ifSOflag = table of correspondance isort -> optionSO (1 or 0). Only used for isort with correlated orbitals + + READ(iuinp,'(A)',iostat=io) line +C Try reading the energies/bandindices and the proj_mode + READ(line,*,iostat=io) e_bot, e_top, proj_mode +C If it fails we know that we are dealing with an older version of the indmftpr file +C with only 2 values on the window line. proj_mode = 0. + IF(io.ne.0) THEN + proj_mode = 0 + READ(line,*,iostat=io) e_bot, e_top + IF(io.ne.0) THEN + WRITE(buf,'(a,a)')' The energy window line', + & ' is ill-defined.' + CALL printout(0) + STOP + WRITE(buf,'(a)')'END OF THE PRGM' + ENDIF + ENDIF + +C --------------------------------------------------------------------------------------- +C proj_mode: +C 0: use energy window for projection +C 1: use all band indices present in the given energy window +C (same number of bands at all kpoints) +C 2: use given band indices (same number of bands at all kpoints) +C --------------------------------------------------------------------------------------- + +C --------------------------------------------------------------------------------------- +C e_bot, e_top : lower/upper energy limits of window (used in mode 0) +C b_bot, b_top : lower/upper band index of window (used in mode 2) +C In mode 1 e_bot/e_top are provided in the input file and then +C translated into b_bot/b_top +C --------------------------------------------------------------------------------------- +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if the energy/band window or proj_mode is not well-defined. +C --------------------------------------------------------------------------------------- +C + IF((proj_mode.lt.0) .or. (proj_mode.gt.2)) THEN + WRITE(buf,'(a,a)')' The energy window mode (3rd value)', + & ' must be 0,1 or 2.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF + + IF(proj_mode==0) THEN + b_bot = 0 + b_top = 0 + ELSEIF(proj_mode==1) THEN + b_bot = 1e3 + b_top = 1 + ELSEIF(proj_mode==2) THEN + b_bot = INT(e_bot) + b_top = INT(e_top) + e_bot = 0.0 + e_top = 0.0 + ENDIF + + IF((proj_mode.lt.2) .and. (e_bot.gt.e_top)) THEN + WRITE(buf,'(a,a)')' The energy window ', + & ' is ill-defined.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF + + IF((proj_mode==2) .and. (b_bot.gt.b_top)) THEN + WRITE(buf,'(a,a)')' The k-point index window ', + & ' is ill-defined.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF + +C Writing in the output file case.outdmftpr the previous informations : +C ===================================================================== + WRITE(buf,'(a,a)')'Welcome in DMFTPROJ: ', + & 'PROJECTION TO LOCALIZED BASIS' + CALL printout(1) + WRITE(buf,'(a,a)')'This prgm will build', + & ' the Wannier projectors to the' + CALL printout(0) + WRITE(buf,'(a,a)')'localized orbitals of an atom', + & ' onto which DMFT will be applied.' + CALL printout(1) + WRITE(buf,'(a)')'You are performing a computation' + CALL printout(0) +C Spin orbit option + IF(ifSO) THEN + WRITE(buf,'(a)')'in which Spin-Orbit is included.' + ELSE + WRITE(buf,'(a)')'without Spin-Orbit.' + ENDIF + CALL printout(0) +C Spin polarized option + IF(ifSP) THEN + WRITE(buf,'(a)')'using Spin-Polarized Wien2k input files.' + ELSE + WRITE(buf,'(a)')'using Paramagnetic Wien2k input files.' + ENDIF + CALL printout(0) + IF (ifSO.AND.(.not.ifSP)) THEN + WRITE(buf,'(a,a)')'You must use Spin-Polarized input files', + & ' to perform Spin-Orbit computation, with this version.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C Printing nsort, nmult + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + WRITE(buf,'(a,i3)')'Sorts of atoms = ',nsort + CALL printout(0) + WRITE(buf,'(a,50i2)')'Equivalent sites per each sort:', + & nmult(1:nsort) + CALL printout(1) +C + norb=0 + ncrorb=0 + ALLOCATE(notinclude(1:nsort)) + DO isrt=1,nsort + WRITE(buf,'(a)')'-------------------------------------' + CALL printout(0) + WRITE(buf,'(a,i2,a)')'For the sort ',isrt,' :' + CALL printout(0) + notinclude(isrt)=.TRUE. +C Printing the name of the included orbitals for each sort + DO l=0,lmax + IF(lsort(l,isrt).NE.0) THEN + WRITE(buf,'(a,i2,a)')'The orbital l=',l,' is included.' + CALL printout(0) + norb=norb+nmult(isrt) + notinclude(isrt)=.FALSE. + ENDIF + ENDDO +C The variable notinclude(isrt) is a boolean which precises whether the sort isrt +C is considered in the pbm. (whether there is at least one lsort(l,isrt) not 0.) + IF (notinclude(isrt)) THEN + WRITE(buf,'(a)')'No orbital is included.' + CALL printout(0) + CALL printout(0) + cycle +C If no orbital of isrt is included, they can't be correlated orbitals. + END IF + CALL printout(0) +C Determination of the total number of correlated orbitals for each sort + DO l=0,lmax + IF(lsort(l,isrt)==2) THEN + ncrorb=ncrorb+nmult(isrt) + ENDIF ! End of the lsort=2 if-then-else + ENDDO ! End of the l loop + ENDDO ! End of the isrt loop +C norb = total number of included orbitals in the system +C ncrorb = total number of correlated orbitals in the system +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if no orbital is included. +C ------------------------- +C + IF (norb==0) THEN + WRITE(buf,'(a,a)')'You must include at least one orbital.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C --------------------------------------------------------------------------------------- +C +C =========================================================================================== +C Initialization of the "orbital-type" tables orb and crorb, tables of size norb and ncrorb : +C =========================================================================================== + ALLOCATE(orb(norb),crorb(ncrorb)) + iorb=0 + icrorb=0 + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + DO l=0,lmax + IF(lsort(l,isrt).NE.0) THEN +C ------------------------------- +C For all the included orbitals : +C ------------------------------- + DO imu=1,nmult(isrt) + iatom=SUM(nmult(0:isrt-1))+imu + iorb=iorb+1 + orb(iorb)%atom=iatom +C the field orb%atom = number of the atom when classified in the order (isort,imult) + orb(iorb)%sort=isrt +C the field orb%sort = sort of the associated atom + orb(iorb)%l=l +C the field orb%l = the orbital number l + IF(imu==1) THEN + orb(iorb)%first=.TRUE. + ELSE + orb(iorb)%first=.FALSE. + ENDIF +C the field orb%first = boolean (if first_atom of the sort isort or not) + IF(lnreps(l,isrt).NE.0) THEN + orb(iorb)%ifsplit=.TRUE. + ELSE + orb(iorb)%ifsplit=.FALSE. + ENDIF +C the field orb%ifsplit = boolean (if ireps are used or not) + ENDDO +C + IF(lsort(l,isrt)==2) THEN +C --------------------------------- +C For all the correlated orbitals : +C --------------------------------- + DO imu=1,nmult(isrt) + iatom=SUM(nmult(0:isrt-1))+imu + icrorb=icrorb+1 + crorb(icrorb)%atom=iatom +C the field crorb%atom = number of the atom when classified in the order (isort,imult) + crorb(icrorb)%sort=isrt +C the field crorb%sort = sort of the associated atom + crorb(icrorb)%l=l +C the field crorb%l = the orbital number l + IF(imu==1) THEN + crorb(icrorb)%first=.TRUE. + ELSE + crorb(icrorb)%first=.FALSE. + ENDIF +C the field orb%first = boolean (if first_atom of the sort isort or not) + IF(lnreps(l,isrt).NE.0) THEN + crorb(icrorb)%ifsplit=.TRUE. + ALLOCATE(crorb(icrorb)%correp(lnreps(l,isrt))) + crorb(icrorb)%correp=.FALSE. + DO irep=1,lnreps(l,isrt) + IF(correps(irep,l,isrt)==1) + & crorb(icrorb)%correp(irep)=.TRUE. + ENDDO +C the field crorb%correp is defined only when crorb%ifsplit= true +C the field orb%correp = boolean table of size lnreps(l,isrt) : True if the ireps is correlated, False otherwise + ELSE + crorb(icrorb)%ifsplit=.FALSE. + ENDIF +C the field orb%ifsplit = boolean (if ireps are used or not) + IF (ifSOflag(isrt)==1) THEN + crorb(icrorb)%ifSOat=1 + ELSE + crorb(icrorb)%ifSOat=0 + ENDIF +C the field crorb%ifSOflag = boolean (if SO are used or not) + ENDDO + ENDIF ! End of the lsort=2 if-then-else + ENDIF ! End of the lsort>0 if-then-else + ENDDO ! End of the l loop + ENDDO ! End of the isrt loop +C +C ======================================================================================= +C Reading of the transformation matrices from the complex to the required angular basis : +C ======================================================================================= + CALL set_ang_trans +C +C ====================================================================================== +C Comparing data about correlated ireps and the description of transformation matrices : +C ====================================================================================== +C + CALL printout(0) + CALL printout(0) + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + WRITE(buf,'(a)')'Precisions about correlated orbitals.' + CALL printout(0) + CALL printout(0) + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + WRITE(buf,'(a)')'-------------------------------------' + CALL printout(0) + WRITE(buf,'(a,i2,a)')'For the sort ',isrt,' :' + CALL printout(0) + lcorr=0 + DO l=0,lmax +C Only correlated orbital l of isrt are considered here. + IF (lsort(l,isrt)==2) THEN + lcorr=lcorr+1 +C If the whole orbital is correlated (lnreps=0 in this case) + IF (lnreps(l,isrt)==0) THEN + WRITE(buf,'(a,i2,a)')'The whole orbital l=',l, + & ' is included as correlated.' + CALL printout(0) +C If only one particular irep of the orbital is correlated + ELSE +C +C For a computation without spin-orbit or a computation with SO and with a basis which mixes up and dn states. +C ------------------------------------------------------------------------------------------------------------ + IF ((.not.ifSO).OR. + & (ifSO.AND.(l.NE.0).AND.reptrans(l,isrt)%ifmixing)) + & THEN +C without SO, the case l=0 can not occur since lnreps(0,isrt)=0. +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if the data about ireps are conflicting. +C ------------------------- +C + IF (lnreps(l,isrt).NE.reptrans(l,isrt)%nreps) THEN + WRITE(buf,'(a,a,i2,a)') + & 'The number of ireps considered ', + & 'for the orbital l= ', l ,' is wrong.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP +C --------------------------------------------------------------------------------------- +C +C Writing in the output file case.outdmftpr the irep considered as correlated. + ELSE + nbrep=0 + DO irep=1,lnreps(l,isrt) + IF (correps(irep,l,isrt)==1) THEN + WRITE(buf,'(a,i2,a,i2,a)') + & 'The irep ',irep,' of orbital l= ', l, + & ' is considered as correlated.' + CALL printout(0) + nbrep=nbrep+1 + ENDIF + ENDDO +C --------------------------------------------------------------------------------------- +C Printing a Warning if more than one irep for one value of l is considered. +C ------------------- +C + IF (nbrep.gt.1) THEN + CALL printout(0) + WRITE(buf,'(a,a)') 'WARNING : ', + & 'more than 1 irep is included as correlated.' + CALL printout(0) + WRITE(buf,'(a,a,a)') ' ', + & 'The calculation may not be correct ', + & 'in this case.' + CALL printout(1) + ENDIF + ENDIF ! End of the data-conflict if-then-else +C +C For a computation with spin-orbit with basis which doesn't mix up and dn states. +C -------------------------------------------------------------------------------- + ELSE + WRITE(buf,'(a,i2,a)')'The whole orbital l=',l, + & ' is included as correlated.' + CALL printout(0) + WRITE(buf,'(a,a)')'because this computation ', + & 'includes Spin-Orbit coupling.' + CALL printout(0) + ENDIF ! End of the ifSo if-then-else + ENDIF ! End of the lnreps=0 if-then-else + ENDIF ! End of the lsort=2 if-then-else +C In the case of no correlated orbitals are considered for the atomic sort isrt : + ENDDO ! End of the l loop + IF (lcorr==0) THEN + WRITE(buf,'(a,a)')'No orbital is included as correlated.' + CALL printout(0) + ENDIF ! End of the lcorr=0 if-then-else + ENDDO ! End of the isrt loop + CALL printout(0) + DEALLOCATE(lnreps,correps) +C lnreps and correps can not be used anymore... +C +C ================================== +C Setting of the symmetry matrices : +C ================================== + CALL setsym +C +C ========================================================================================= +C Reading of the Wien2k informations in the case.almblm file (generated by x lapw2 -almd) : +C ========================================================================================= +C + CALL printout(0) + CALL printout(0) + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + CALL printout(0) + WRITE(buf,'(a,a)')'Reading of the file ',almblm_file + CALL printout(0) +C Reading of the klist_band file if the computation if band oriented (option -band) + IF(ifBAND) CALL read_k_list + DO is=1,ns +C If the computation is spin-polarized, there are two differents file (up and down) + IF(is==2) THEN + CLOSE(iualmblm) + OPEN(iualmblm,file=almblm_file_sp2,status='old') + WRITE(buf,'(a,a)')'Reading of the file ',almblm_file_sp2 + CALL printout(0) + ENDIF +C ------------------------------------------------------------- +C Reading of the general informations in the case.almblm file : +C ------------------------------------------------------------- + READ(iualmblm,*)elecn + READ(iualmblm,*)nk + READ(iualmblm,*)nloat +C elecn = total number of semicore+valence electrons in the system +C nk = total number of k_points +C nloat = maximal number of LO (local orbitals in LAPW expansion) + IF(ifBAND) THEN + IF (is==1) READ(iuinp,*)eferm + READ(iualmblm,*) + ELSE + READ(iualmblm,*)eferm + ENDIF +C eferm = fermi level (if the computation is band-oriented, it is read in case.indmftpr) + IF(is==1) THEN + ALLOCATE(kp(nk,ns),u_dot_norm(0:lmax,nsort,ns)) + ALLOCATE(ovl_LO_u(nloat,0:lmax,nsort,ns)) + ALLOCATE(ovl_LO_udot(nloat,0:lmax,nsort,ns)) + ALLOCATE(nLO(0:lmax,nsort)) + ENDIF + nLO=0 + DO isrt=1,nsort +C Beginning of the loop on the sort of atoms (isort) + + DO l=0,lmax + READ(iualmblm,*)u_dot_norm(l,isrt,is) + READ(iualmblm,*)nLO(l,isrt) +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if nLO is more than 1. +C ------------------------- +C + IF (nLO(l,isrt) > 1) THEN + WRITE(buf,'(a,a)')'The current version of DMFTproj ', + & ' cannot be used with more than 1 LO orbital by atom. ' + CALL printout(0) + WRITE(buf,'(a,i2,a,i2)') + & ' This is not the case for the orbital l= ',l, + & ' of the atomic sort ',isrt + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C --------------------------------------------------------------------------------------- +C +C It is assumed in the following that nLO is 0 or 1. + DO ilo=1,nLO(l,isrt) + READ(iualmblm,*)ovl_LO_u(ilo,l,isrt,is), + & ovl_LO_udot(ilo,l,isrt,is) + ENDDO + ENDDO +C kp = table of "kp_data" elements. It ranges from 1 to nk and from 1 to ns. +C u_dot_norm(isort,l) = norm for the orbital +C nLO(isort,l) = number of LO (local orbitals) for each orbital of each sort (its value is assumed to be 0 or 1) +C ovl_LO_u(isort, l) = overlap element for the LO orbitals +C ovl_LO_udot(isort, l) = overlap element for the LO orbitals +C These informations are relative to the basis set for the atomic eigenstates (LAPW-APW expansion) +C +C -------------------------------------------------------------- +C For each kpoints and isrt, the "kp_data" elements are filled : +C -------------------------------------------------------------- + DO ik=1,nk + READ(iualmblm,'()') + READ(iualmblm,'()') + READ(iualmblm,*)idum,kp(ik,is)%nbmin,kp(ik,is)%nbmax +C idum = useless variable in case.almblm +C kp(ik,is)%nbmin = index of the lowest band +C kp(ik,is)%nbmzx = index of the uppest band + IF(.NOT.ALLOCATED(kp(ik,is)%Alm)) THEN + ALLOCATE(kp(ik,is)%eband(kp(ik,is) + & %nbmin:kp(ik,is)%nbmax)) + ALLOCATE(kp(ik,is)%Alm(nlm,natom, + & kp(ik,is)%nbmin:kp(ik,is)%nbmax)) + ALLOCATE(kp(ik,is)%Blm(nlm,natom, + & kp(ik,is)%nbmin:kp(ik,is)%nbmax)) + ALLOCATE(kp(ik,is)%Clm(nloat,nlm,natom, + & kp(ik,is)%nbmin:kp(ik,is)%nbmax)) + ALLOCATE(kp(ik,is)%tetrweight(kp(ik,is)%nbmin: + & kp(ik,is)%nbmax)) + ENDIF + DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax + READ(iualmblm,*)rtetr,kp(ik,is)%eband(ib) + kp(ik,is)%tetrweight(ib)=CMPLX(rtetr,0d0) + ENDDO +C rtetr = tetrahedron weights of the band ib at this kpoint +C the field kp(ik,is)%eband(ib) = eigenvalues of the ib band at this kpoint +C the field kp(ik,is)%tetrweight(ib) = the tetrahedron weights are set as complex number to avoid problems with SQRT(tetrweight) + kp(ik,is)%weight=REAL(kp(ik,is)%tetrweight + & (kp(ik,is)%nbmin)) +C the field kp(ik,is)%weight = value of the tetrahedron weight of the lowest band (fully occupied) at this kpoint -> "a geometric factor" + kp(ik,is)%eband=kp(ik,is)%eband-eferm +C the eigenvalues kp(ik,is)%eband are shifted with respect to the fermi level. +C +C Reading of the Alm, Blm and Clm coefficient + DO imu=1,nmult(isrt) + iatom=SUM(nmult(0:isrt-1))+imu + READ(iualmblm,'()') + READ(iualmblm,*)idum + DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax + lm=0 + DO l=0,lmax + DO m=-l,l + lm=lm+1 + READ(iualmblm,*)kp(ik,is)%Alm(lm,iatom,ib), + & kp(ik,is)%Blm(lm,iatom,ib) + DO ilo=1,nLO(l,isrt) + READ(iualmblm,*)kp(ik,is)%Clm(ilo,lm,iatom,ib) + ENDDO + ENDDO ! End of the m loop + ENDDO ! End of the l loop + ENDDO ! End of the ib loop + ENDDO ! End of the imu loop +C the field kp(ik,is)%Alm = coefficient A_(lm,ib,iatom)(ik,is) as defined in equation (2.34) of my thesis (equation (??) of the tutorial) +C the field kp(ik,is)%Blm = coefficient B_(lm,ib,iatom)(ik,is) as defined in equation (2.34) of my thesis (equation (??) of the tutorial) +C the field kp(ik,is)%Clm = coefficient C_(ilo,lm,ib,iatom)(ik,is) as defined in equation (2.34) of my thesis (equation (??) of the tutorial) +C Their explicit expression depends of the representation (LAPW or APW). They enable to compute the projectors. +C These values are given for all the orbitals (even those which are not included in the study) + ENDDO ! End of the loop on kp + ENDDO ! End of the loop on isort + ENDDO ! End of the loop on ns (spin) +C End of reading the case.almblm.file +C Printing in the file case.outdmftpr the fermi level (in Rydberg) + CALL printout(0) + WRITE(buf,'(a,f10.5,a)')'The value of the Fermi Energy is ', + & eferm,' Ry.' + CALL printout(0) + WRITE(buf,'(a,a)')'All the considered energies are now given ', + & 'with respect to this value. (E_Fermi is now 0 Ry)' + CALL printout(1) +C +C --------------------------------------------------------------------------------------- +C If proj_mode=1 find now the lowest and highes band index +C --------------------------------------------------------------------------------------- +C + IF(proj_mode==1) THEN + DO is=1,ns + DO ik=1,nk + DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax + IF(kp(ik,is)%eband(ib) > e_bot.AND. + & kp(ik,is)%eband(ib).LE.e_top) THEN + IF(ib.gt.b_top) THEN + b_top = ib + ENDIF + IF(ib.lt.b_bot) THEN + b_bot = ib + ENDIF + ENDIF + ENDDO ! End of the ib loop + ENDDO ! End of the ik loop + ENDDO ! End of the is loop + e_top = 0.0 + e_bot = 0.0 + ENDIF + +C --------------------------------------------------------------------------------------- +C Printing the size of the Energy window +C --------------------------------------------------------------------------------------- + + CALL printout(0) + IF(proj_mode==0) THEN + WRITE(buf,'(2(a,f10.5),a)') + & 'The Eigenstates are projected in an energy window from ', + & e_bot,' Ry to ',e_top,' Ry around the Fermi level.' + ELSEIF(proj_mode==1) THEN + WRITE(buf,'(a,2(a,i3),a)') + & 'The Eigenstates are projected for the band indices from ', + & 'band Nr. ', b_bot,' to ',b_top,'.' + ELSEIF(proj_mode==2) THEN + WRITE(buf,'(a,2(a,i3),a)') + & 'The Eigenstates are projected for the band indices from ', + & 'band Nr. ',b_bot,' to ',b_top,'.' + ENDIF + CALL printout(1) +C +C ============================================================== +C Computation of the density matrices up to the Fermi level Ef : +C ============================================================== +C + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + WRITE(buf,'(a,a)')'Computation of the Occupancies ', + & 'and Density Matrices up to E_Fermi' + CALL printout(1) +C ---------------------------------------- +C Setting up the projections for all bands +C ---------------------------------------- + IF(proj_mode==0) THEN + CALL set_projections(-Elarge,Elarge) + ELSE + CALL set_projections(1d0,1d6) + ENDIF + + +C Elarge is an energy variable equal to 1.d6 Rydberg (very large !!!) +C +C --------------------------------------------------------- +C Computation of the density matrices and the total charges +C --------------------------------------------------------- +C + IF(.NOT.ifBAND) CALL density(.TRUE.,.FALSE.,qdum,.TRUE.) +C For the integration, tetrahedron weights are used. +C The computation is performed for all the included orbitals +C and the density matrices are printed in the file case.outdmftpr +C qdum is the total charge density. (unused variable) +C +C The calculation of Wannier projectors is performed only if correlated orbitals are included. + IF(ncrorb.NE.0) THEN +C +C ========================================================================== +C Computation of the charge below the lower limit e_bot/b_bot of the window : +C ========================================================================== +C + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + IF(proj_mode==0) THEN + WRITE(buf,'(a,a,f10.5,a)')'Computation of the total ', + & 'Charge below the lower limit of the energy window :', + & e_bot,' Ry' + ELSE + WRITE(buf,'(a,a,i3)')'Computation of the total ', + & 'Charge below the lower band index Nr. ', b_bot + ENDIF + CALL printout(1) +C +C ---------------------------------------- +C Setting up the projections for all bands +C ---------------------------------------- + IF(proj_mode==0) THEN + CALL set_projections(-Elarge,e_bot) + ELSE +C set_projections expects REAL(8) + CALL set_projections(1d0,REAL(b_bot-1,8)) + ENDIF +C +C --------------------------------------------------------- +C Computation of the density matrices and the total charges +C --------------------------------------------------------- +C + IF(.NOT.ifBAND) CALL density(.FAlSE.,.FALSE.,qtot,.FALSE.) +C A simple point integration is used. +C The computation is performed for all the included orbitals. +C qtot is the total charge density below e_bot/b_bot. +C Nothing will be printed in the file case.outdmftpr apart from the total charge qtot. +C +C +C ============================================================ +C Computation of the Wannier projectors in the energy window : +C ============================================================ +C + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + IF(proj_mode==0) THEN + WRITE(buf,'(a,a,a,f10.5,a,f10.5,a)')'Computation of the ', + & 'Occupancies and Density Matrices in the desired ', + & 'energy window [ ',e_bot,'; ',e_top,']' + ELSE + WRITE(buf,'(a,a,a,i3,a,i3,a)')'Computation of the ', + & 'Occupancies and Density Matrices in the desired ', + & 'band range [ ',b_bot,'; ',b_top,']' + ENDIF + CALL printout(1) +C +C ---------------------------------------- +C Setting up the projections for all bands +C ---------------------------------------- + IF(proj_mode==0) THEN + CALL set_projections(e_bot,e_top) + ELSE + CALL set_projections(REAL(b_bot,8),REAL(b_top,8)) + ENDIF +C +C ------------------------------------------------------------------------------ +C Orthonormalization of the projectors for correlated orbitals P(icrorb,ik,is) : +C ------------------------------------------------------------------------------ + IF(ifSO) THEN +C In this case, up and dn states must be orthogonalized together +C because the spin is not a good quantum number anymore. + CALL orthogonal_wannier_SO + ELSE +C In this case, up and dn states can be orthogonalized separately + CALL orthogonal_wannier + ENDIF +C +C --------------------------------------------------------- +C Computation of the density matrices and the total charges +C --------------------------------------------------------- +C Tetrahedron weights are used, the computation are done for correlated orbitals only and are printed in the outputfile. + IF(.NOT.ifBAND) CALL density(.TRUE.,.TRUE.,qdum,.TRUE.) +C For the integration, tetrahedron weights are used. +C The computation is performed for the correlated orbitals only +C and the density matrices are printed in the file case.outdmftpr +C qdum is the total charge density in the energy window. (unused variable) +C +C +C Writing the output files for DMFT computations : +C ------------------------------------------------ + IF(.NOT.ifBAND) THEN + CALL outqmc(elecn,qtot) + CALL outbwin + ELSE + CALL outband + ENDIF + ENDIF +C End of the prgm + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) +C + END + + + + + + diff --git a/fortran/dmftproj/modules.f b/fortran/dmftproj/modules.f new file mode 100644 index 0000000..434887a --- /dev/null +++ b/fortran/dmftproj/modules.f @@ -0,0 +1,412 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + +C-------------------- +C MODULE almblm_data +C-------------------- + MODULE almblm_data + INTEGER :: nk, nloat + INTEGER, DIMENSION(:,:), ALLOCATABLE :: nLO + REAL(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: u_dot_norm + REAL(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: ovl_LO_u + REAL(KIND=8), DIMENSION(:,:,:,:), ALLOCATABLE :: ovl_LO_udot + TYPE kp_data + LOGICAL :: included + INTEGER :: nb_bot, nb_top + INTEGER :: nbmin,nbmax + REAL(KIND=8) :: weight + COMPLEX(KIND=8), DIMENSION(:), ALLOCATABLE :: tetrweight + REAL(KIND=8),DIMENSION(:), ALLOCATABLE :: eband + COMPLEX(KIND=8),DIMENSION(:,:,:), ALLOCATABLE :: Alm, Blm + COMPLEX(KIND=8),DIMENSION(:,:,:,:), ALLOCATABLE :: Clm + ENDTYPE + TYPE(kp_data), DIMENSION(:,:), ALLOCATABLE :: kp + ENDMODULE almblm_data +C +C-------------- +C MODULE bands +C-------------- + MODULE bands + INTEGER :: nlab, nkband + TYPE label + CHARACTER(len=20) :: kname + INTEGER :: pos + ENDTYPE + TYPE(label), DIMENSION(:), ALLOCATABLE :: labels + ENDMODULE +C +C-------------------- +C MODULE common_data +C-------------------- + MODULE common_data +C 11/03/10 : Modification of the fullpath for myDMFTproj-2 +C CHARACTER(len=*), PARAMETER :: wien_path= +C & '/workpmc/martins/DMFTprojectors/newDMFTproj' + CHARACTER(len=250) :: wien_path + INTEGER :: natom, nsort, lmax, nlm, ns, nsp + INTEGER, DIMENSION(:), ALLOCATABLE :: isort + INTEGER, DIMENSION(:), ALLOCATABLE :: nmult + INTEGER, DIMENSION(:,:), ALLOCATABLE :: lsort + INTEGER, DIMENSION(:), ALLOCATABLE :: ifSOflag + INTEGER, DIMENSION(:), ALLOCATABLE :: timeflag + INTEGER :: b_bot, b_top, proj_mode + LOGICAL :: ifSO, ifSP, ifBAND + LOGICAL, DIMENSION(:), ALLOCATABLE :: notinclude + REAL(KIND=8) :: eferm + REAL(KIND=8) :: e_bot, e_top + + REAL(KIND=8), PARAMETER :: PI=3.1415926535898d0 +C New type structure basistrans + TYPE deftrans + CHARACTER(len=8) :: typebasis +C The size of typebasis is limited to 8 characters ! + CHARACTER(len=25) :: sourcefile +C The size of sourcefile is limited to 25 characters ! + ENDTYPE + TYPE(deftrans), DIMENSION(:), ALLOCATABLE :: defbasis +C Type structure orbital + TYPE orbital + INTEGER :: atom + INTEGER :: sort + INTEGER :: l + LOGICAL :: first + LOGICAL :: ifsplit + INTEGER :: ifSOat + LOGICAL,DIMENSION(:), ALLOCATABLE :: correp + ENDTYPE + TYPE(orbital), DIMENSION(:), ALLOCATABLE :: orb, crorb + INTEGER :: norb, ncrorb + ENDMODULE common_data +C +C------------------ +C MODULE factorial +C------------------ + MODULE factorial + REAL(KIND=8), DIMENSION(:), ALLOCATABLE :: fac + INTEGER :: nfctrl + CONTAINS + SUBROUTINE setfact(n) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets the factorial array %% +C %% FAC(I+1) = I! for I=0,...,N-1 %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + IMPLICIT NONE + INTEGER :: n, i +C + nfctrl=n + ALLOCATE(fac(nfctrl)) +C I! = FAC(I+1) + fac(1)=1.0d00 + DO i=1,nfctrl-1 + fac(i+1)=i*fac(i) + ENDDO + RETURN + END SUBROUTINE setfact + END MODULE factorial +C +C------------------- +C MODULE file_names +C------------------- + MODULE file_names + INTEGER :: iudef, iuinp, iusym, iualmblm, iumatfile, iuradwf + INTEGER :: iuklist + INTEGER :: ouproj, ouprn, ouctqmc, oupartial,ousymqmc, ousympar + INTEGER :: ouband, oubwinup, oubwindn, oubwin + INTEGER :: outw2kpath + CHARACTER(len=25) :: jobname + CHARACTER(len=35) :: inp_file, sym_file, almblm_file + CHARACTER(len=35) :: almblm_file_sp2 + CHARACTER(len=35) :: radwf_file, radwf_file_sp2 + CHARACTER(len=35) :: prn_file, ctqmc_file, partial_file + CHARACTER(len=35) :: klist_file + CHARACTER(len=35) :: symqmc_file, sympar_file, outband_file + CHARACTER(len=35) :: oubwin_file, oubwinup_file, oubwindn_file + CHARACTER(len=8), PARAMETER :: inp_ext='indmftpr' + CHARACTER(len=7), PARAMETER :: sym_ext='dmftsym' + CHARACTER(len=6), PARAMETER :: almblm_ext='almblm' + CHARACTER(len=8), PARAMETER :: almblmup_ext='almblmup' + CHARACTER(len=8), PARAMETER :: almblmdn_ext='almblmdn' + CHARACTER(len=9), PARAMETER :: prn_ext='outdmftpr' + CHARACTER(len=8), PARAMETER :: ctqmc_ext='ctqmcout' + CHARACTER(len=7), PARAMETER :: partial_ext='parproj' + CHARACTER(len=6), PARAMETER :: symqmc_ext='symqmc' + CHARACTER(len=6), PARAMETER :: sympar_ext='sympar' + CHARACTER(len=7), PARAMETER :: radwfup_ext='radwfup' + CHARACTER(len=7), PARAMETER :: radwfdn_ext='radwfdn' + CHARACTER(len=10), PARAMETER :: klist_ext='klist_band' + CHARACTER(len=7), PARAMETER :: outband_ext='outband' + CHARACTER(len=6), PARAMETER :: oubwin_ext='oubwin' + CHARACTER(len=8), PARAMETER :: oubwinup_ext='oubwinup' + CHARACTER(len=8), PARAMETER :: oubwindn_ext='oubwindn' + CONTAINS + SUBROUTINE set_file_name(filename,exten) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets the file name %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + IMPLICIT NONE + CHARACTER(len=*) :: filename, exten + INTEGER :: i1, i2, i + i1=LEN_TRIM(jobname) + i2=LEN(exten) + i=i1+i2+1 + IF(LEN(filename) < i) THEN + WRITE(*,'(i3,3a)') + & i,' characters required for the $case.',exten, + & ' filename, too long' + STOP + ENDIF + filename=' ' + filename(1:i)=jobname(1:i1)//'.'//exten(1:i2) + END SUBROUTINE set_file_name +C + SUBROUTINE openfiles +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine opens the input and output units for dmftproj %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data, ONLY: ifSP, ifSO, ifBAND, wien_path + IMPLICIT NONE + CHARACTER(len=120) :: buf + INTEGER :: i1, i2 +C initialize input/output channels + CALL setchannels +C Get working directory name: + CALL system('pwd > dir_name.tmp') + OPEN(outw2kpath,file='dir_name.tmp',status='old') + READ(outw2kpath,'(a)')buf + CLOSE(outw2kpath,status='delete') + i1=INDEX(buf,'/',.TRUE.) + i2=LEN_TRIM(buf) + jobname(1:i2-i1)=buf(i1+1:i2) + jobname(i2-i1+1:)=' ' +C Construct file names + CALL set_file_name(inp_file,inp_ext) + CALL set_file_name(sym_file,sym_ext) + IF(.NOT.ifSP) THEN + CALL set_file_name(almblm_file,almblm_ext) + ELSE + CALL set_file_name(almblm_file,almblmup_ext) + CALL set_file_name(almblm_file_sp2,almblmdn_ext) + ENDIF + CALL set_file_name(prn_file,prn_ext) + CALL set_file_name(ctqmc_file,ctqmc_ext) + CALL set_file_name(partial_file,partial_ext) + CALL set_file_name(symqmc_file,symqmc_ext) + CALL set_file_name(sympar_file,sympar_ext) + IF(ifSP.AND.ifSO) THEN + CALL set_file_name(radwf_file,radwfup_ext) + CALL set_file_name(radwf_file_sp2,radwfdn_ext) + ENDIF + IF(ifBAND) THEN + CALL set_file_name(klist_file,klist_ext) + CALL set_file_name(outband_file,outband_ext) + ENDIF + IF(ifSP) THEN + CALL set_file_name(oubwinup_file,oubwinup_ext) + CALL set_file_name(oubwindn_file,oubwindn_ext) + ELSE + CALL set_file_name(oubwin_file,oubwin_ext) + ENDIF +C Open units + OPEN(iuinp,file=inp_file,status='old') + OPEN(iusym,file=sym_file,status='old') + OPEN(iualmblm,file=almblm_file,status='old') + OPEN(ouprn,file=prn_file) + OPEN(ouctqmc,file=ctqmc_file) + OPEN(oupartial,file=partial_file) + OPEN(ousymqmc,file=symqmc_file) + OPEN(ousympar,file=sympar_file) + IF(ifBAND) THEN + OPEN(iuklist,file=klist_file,status='old') + OPEN(ouband,file=outband_file) + ENDIF + IF(ifSP) THEN + OPEN(oubwinup,file=oubwinup_file) + OPEN(oubwindn,file=oubwindn_file) + ELSE + OPEN(oubwin,file=oubwin_file) + ENDIF +C +C Set path to Wien2k + CALL system('echo $WIENROOT > path_wienroot.tmp') + OPEN(outw2kpath,file='path_wienroot.tmp',status='old') + READ(outw2kpath,'(a)')wien_path + CLOSE(outw2kpath,status='delete') +C + RETURN + END SUBROUTINE +C + SUBROUTINE setchannels +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine opens the input and output channels %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data, ONLY: ifSP + IMPLICIT NONE +C Channels +C input + iudef=5 ! def-file + iuinp=7 ! input data + iusym=8 ! symmetries + iualmblm=9 ! almblm matrices from Wien + iumatfile=15 !transformation matrices between different angular basises + iuradwf=16 !radial mesh and wave functions + iuklist=20 !bands +C output + ouprn=10 ! print-out file + ouproj=11 ! projection matrices and other data for DMFT run + ouctqmc=12 ! output for ctqmc + oupartial=13 ! output for partial charges projectors for ctqmc + ousymqmc=14 ! output for permutations and rotation matrices + ousympar=19 ! output for permutations and rotation matrices + ! for partial charges analisis + ouband=21 ! bands + IF(ifSP) THEN + oubwinup=22 ! included bands information for lapw2(up) + oubwindn=23 ! included bands information for lapw2(dn) + ELSE + oubwin=22 ! included bands information for lapw2 + ENDIF +C + RETURN + END SUBROUTINE +C +C + ENDMODULE file_names +C + MODULE prnt + CHARACTER(len=250) :: buf + CONTAINS + SUBROUTINE printout(newline) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine prints the string in buf to the screen %% +C %% and to the output file and renitializes buf %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE file_names + IMPLICIT NONE + INTEGER :: newline, i + i=LEN_TRIM(buf) + WRITE(ouprn,'(a)')buf(1:i) + WRITE(*,'(a)')buf(1:i) + buf=' ' + IF(newline==1) THEN + WRITE(ouprn,'(/)') + WRITE(*,'(/)') + ENDIF + RETURN + END subroutine + ENDMODULE prnt +C +C-------------------- +C MODULE projections +C-------------------- + MODULE projections + TYPE proj_mat + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: mat + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: mat_rep + ENDTYPE + TYPE(proj_mat), DIMENSION(:,:,:), ALLOCATABLE :: pr_crorb +C + TYPE proj_mat_n + COMPLEX(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: matn + COMPLEX(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: matn_rep + ENDTYPE + TYPE(proj_mat_n), DIMENSION(:,:,:), ALLOCATABLE :: pr_orb +C + TYPE ortfunc + INTEGER :: n + REAL(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: s12 + ENDTYPE + TYPE(ortfunc), DIMENSION(:), ALLOCATABLE :: norm_radf + ENDMODULE projections +C +C------------- +C MODULE reps +C------------- + MODULE reps + TYPE ang_bas + INTEGER :: nreps + INTEGER, DIMENSION(:), ALLOCATABLE :: dreps + LOGICAL :: ifmixing + COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: transmat + ENDTYPE + TYPE(ang_bas), DIMENSION(:,:), ALLOCATABLE :: reptrans + ENDMODULE +C +C------------- +C MODULE symm +C------------- + MODULE symm + TYPE matrix + COMPLEX(KIND=8),DIMENSION(:,:),ALLOCATABLE :: mat + ENDTYPE + TYPE symop + LOGICAL :: timeinv + INTEGER, DIMENSION(:), ALLOCATABLE :: perm + INTEGER :: iprop + REAL(KIND=8) :: a, b, g + REAL(KIND=8) :: phase + REAL(KIND=8) :: krotm(3,3) + COMPLEX(KIND=8),DIMENSION(:,:,:),ALLOCATABLE ::rotl + TYPE(matrix),DIMENSION(:,:),ALLOCATABLE ::rotrep + ENDTYPE + TYPE symoploc + LOGICAL :: timeinv + INTEGER :: iprop + INTEGER :: srotnum + REAL(KIND=8) :: a, b, g + REAL(KIND=8) :: phase + REAL(KIND=8) :: krotm(3,3) + COMPLEX(KIND=8),DIMENSION(:,:,:),ALLOCATABLE ::rotl + TYPE(matrix),DIMENSION(:),ALLOCATABLE ::rotrep + ENDTYPE + INTEGER :: nsym + INTEGER :: lsym, nlmsym + TYPE(symop), DIMENSION(:), ALLOCATABLE :: srot + TYPE(symoploc), DIMENSION(:), ALLOCATABLE :: rotloc + TYPE(matrix), DIMENSION(:,:), ALLOCATABLE :: densmat + TYPE(matrix), DIMENSION(:,:), ALLOCATABLE :: crdensmat + END MODULE symm + diff --git a/fortran/dmftproj/orthogonal.f b/fortran/dmftproj/orthogonal.f new file mode 100644 index 0000000..7d24858 --- /dev/null +++ b/fortran/dmftproj/orthogonal.f @@ -0,0 +1,225 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE orthogonal_h(s1,ndim,inv) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine computes : %% +C %% - if inv = .FALSE. the square root of the Hermitian matrix s1 %% +C %% - if inv = .TRUE. the inverse of the square root of the %% +C %% Hermitian matrix s1 %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE prnt + IMPLICIT NONE + INTEGER :: ndim, INFO, lm, lm1 + COMPLEX(KIND=8), DIMENSION(ndim) :: WORK + COMPLEX(KIND=8), DIMENSION(ndim,ndim) :: s1 + INTEGER, DIMENSION(ndim,ndim) :: IPIV + LOGICAL :: inv +C +C Calculation of S1^(1/2) or S1^(-1/2): +C ------------------------------------- + CALL sqrtm(s1,ndim,inv) +C The resulting matrix is stored in s1. + RETURN + END + + SUBROUTINE orthogonal_r(s2,ndim,inv) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine computes : %% +C %% - if inv = .FALSE. the square root of s1 %% +C %% - if inv = .TRUE. the inverse of the square root of s2 %% +C %% where s2 is a real symmetric matrix. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE prnt + IMPLICIT NONE + INTEGER :: ndim, INFO, lm, lm1 + COMPLEX(KIND=8), DIMENSION(ndim) :: WORK + COMPLEX(KIND=8), DIMENSION(ndim,ndim) :: s1 + REAL(KIND=8), DIMENSION(ndim,ndim) :: s2 + INTEGER, DIMENSION(ndim,ndim) :: IPIV + LOGICAL :: inv +C +C Calculation of S2^(1/2) or S2^(-1/2): +C ------------------------------------- + s1=s2 + CALL sqrtm(s1,ndim,inv) + s2=REAL(s1) +C The resulting matrix is stored in s2. + RETURN + END + + + SUBROUTINE sqrtm(cmat,m,inv) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine calculates the square root of a positively %% +C %% defined Hermitian matrix A=cmat using the decomposition %% +C %% A=Z*D*Z^H %% +C %% where D is a diagonal matrix of eigenvalues of A, %% +C %% Z is matrix of orthonormal eigenvectors of A, %% +C %% Z^H is its Hermitian conjugate. %% +C %% Then A^(1/2)=Z*D^(1/2)*Z^H. %% +C %% Correction: the matrix A is allowed to be negatively defined. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + IMPLICIT NONE + INTEGER :: m + COMPLEX(KIND=8), DIMENSION(m,m):: cmat, D, D1 + LOGICAL :: inv +C Calculation of Z*D^(1/2): +C ------------------------- + CALL sqrt_eigenvec(cmat,D1,m,inv) + WRITE(95,*) cmat + WRITE(95,*) ' ' + WRITE(95,*) D1 + WRITE(95,*) ' ' +C Calculation of A^(1/2)=Z*D^(1/2)*Z^H: +C ------------------------------------- + D=CONJG(cmat) + call ZGEMM('N','T',m,m,m,DCMPLX(1.D0,0.D0),D1, + & m,D,m,DCMPLX(0.D0,0.D0),cmat,m) +C The resulting matrix is stored in cmat. + RETURN + END + + + SUBROUTINE sqrt_eigenvec(cmat,D1,m,inv) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine computes : %% +C %% - if inv = .FALSE. Z*D^(1/2) %% +C %% - if inv = .TRUE. Z*D^(-1/2) %% +C %% where Z is a matrix of orthonormal eigenvectors of cmat and %% +C %% D is the diagonal matrix of cmat's eigenvalues. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE prnt + IMPLICIT NONE + LOGICAL :: inv, ifwrite + INTEGER :: m, INFO, i, j + INTEGER, PARAMETER :: nwork=40 +C + COMPLEX(KIND=8), allocatable, DIMENSION(:) :: WORK + COMPLEX(KIND=8), DIMENSION(m,m) :: cmat, D1 + REAL(KIND=8), DIMENSION(m) :: W + COMPLEX(KIND=8), DIMENSION(m) :: W_comp + REAL(KIND=8), allocatable, DIMENSION(:) :: RWORK +C +C Finding the eigenvalues and the eigenvectors of cmat : +C ------------------------------------------------------ + ALLOCATE(rwork(3*m-2)) + ALLOCATE(work(2*m-1)) + CALL ZHEEV('V', 'U', m, cmat, m, W, WORK,2*m-1,RWORK,INFO) + IF (info.ne.0) THEN + WRITE(buf,'(a)') + & 'The subroutine zheev ends with info = ',info + CALL printout(0) + WRITE(buf,'(a)')'In sqrt_eigenvec, a pbm occurs in zheev.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C W contains the eigenvalues of cmat. + W_comp=CMPLX(W,0d0) +C +C Checking of the validity of the computation : +C --------------------------------------------- + ifwrite=.FALSE. + DO j=1,m +C The warning is written only once in the file case.outdmftpr + IF (ifwrite) EXIT +C Checking if the eigenvalues are not negative. + IF (W(j).lt.0.d0) THEN + WRITE(buf,'(a,i2,a,a)') + & 'WARNING : An eigenvalue (',j,') of the ', + & 'overlap matrix is negative.' + CALL printout(0) + WRITE(buf,'(a,a)')' The result ', + & 'of the calculation may thus be wrong.' + CALL printout(1) + ifwrite=.TRUE. + ENDIF + IF (ABS(W(j)).lt.1.d-12) THEN + WRITE(buf,'(a,i2,a,a)') + & 'WARNING : An eigenvalue (',j,') of the ', + & 'overlap matrix is almost zero.' + CALL printout(0) + WRITE(buf,'(a,a)')' The result ', + & 'of the calculation may thus be wrong.' + CALL printout(1) + ifwrite=.TRUE. + ENDIF + ENDDO +C +C Calculation of Z*D^(1/2) : +C -------------------------- +C The result is stored in D1. + IF(.NOT.inv) THEN + DO i=1,m + DO j=1,m + D1(i,j)=cmat(i,j)*SQRT(W_comp(j)) + ENDDO + ENDDO + ELSE +C Calculation of Z*D^(-1/2) : +C --------------------------- +C The result is stored in D1. + DO i=1,m + DO j=1,m + IF (ABS(W(j))==0.d0) THEN + WRITE(buf,'(a,i2,a)') + & 'An eigenvalue (',j,') of the ', + & 'overlap matrix has the value 0.' + CALL printout(0) + WRITE(buf,'(a)') + & 'The calculation can not be performed further.' + CALL printout(0) + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF + D1(i,j)=cmat(i,j)/SQRT(W_comp(j)) + ENDDO + ENDDO + ENDIF +C The resulting matrix is stored in D1 and cmat is now Z. + RETURN + END + diff --git a/fortran/dmftproj/orthogonal_wannier.f b/fortran/dmftproj/orthogonal_wannier.f new file mode 100644 index 0000000..171c754 --- /dev/null +++ b/fortran/dmftproj/orthogonal_wannier.f @@ -0,0 +1,593 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE orthogonal_wannier +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine orthonormalizes the Wannier-like functions %% +C %% obtained with the projectors P(icrorb,ik,is), in order to %% +C %% get a set of "true" Wannier orbitals. %% +C %% %% +C %% Only the correlated orbitals are treated here. %% +C %% %% +C %% THIS VERSION CAN NOT BE USED WITH SPIN-ORBIT %% +C %% (since the calculation is made independently for up/dn states) %% +C %% THIS VERSION CAN BE USED WITH SPIN-POLARIZED INPUT FILES. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE almblm_data + USE common_data + USE prnt + USE projections + USE reps + IMPLICIT NONE + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: Dmat, D_orth, D + INTEGER :: is, ik, l, nbnd, ndim, isrt, nbbot, nbtop + INTEGER :: icrorb, ind1, ind2, ib, iatom + INTEGER :: m1, m2, irep +C + WRITE(buf,'(a)')'Orthonormalization of the projectors...' + CALL printout(0) + CALL printout(0) +C + IF(ncrorb==0) RETURN +C +C ===================================== +C Creation of the overlap matrix Dmat : +C ===================================== +C +C ----------------------------------------------------------- +C Determination of the dimension ndim of the overlap matrix : +C ----------------------------------------------------------- + ndim=0 +C Loop on the correlated orbitals + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C Since this subroutine is used only in the case without SO, +C the correlated ireps can be considered if there are any. (ifsplit=.TRUE.) + IF(crorb(icrorb)%ifsplit) THEN +C the value of l can not be 0 here, because ifsplit is necessary .FALSE. +C for s-orbital (restriction in dmftproj.f) + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) + & ndim=ndim+reptrans(l,isrt)%dreps(irep) +C The dimension of the irep is added to ndim. + ENDDO + ELSE +C If no particular irep is considered (ifsplit=.FALSE.), +C The whole matrix of the representation is considered. + ndim=ndim+2*l+1 + ENDIF + ENDDO +C ------------------ +C Creation of Dmat : +C ------------------ + ALLOCATE(Dmat(1:ndim,1:ndim)) +C +C ===================================================================== +C Computation of the orthonormalized Wannier functions and projectors : +C ===================================================================== +C The computation is performed for each k_point and each spin-value independently +C because they are good quantum numbers. + DO ik=1,nk + DO is=1,ns +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE + nbnd=kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1 + nbbot=kp(ik,is)%nb_bot + nbtop=kp(ik,is)%nb_top + ALLOCATE(D(1:ndim,1:nbnd)) +C +C -------------------------------- +C Initialization of the D matrix : +C -------------------------------- +C This D matrix of size ndim*nbnd is the complete "projector matrix" +C which enables to go from the Wannier-like basis |u_orb> to the Bloch states |ik,ib>. + ind1=0 + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C If l=0, there only possible irep is the whole matrix itself. + IF (l==0) THEN + D(ind1+1,1:nbnd)=pr_crorb(icrorb,ik,is)% + & mat_rep(1,nbbot:nbtop) + ind1=ind1+1 + ELSE +C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) + IF(crorb(icrorb)%ifsplit) THEN +C the value of l can not be 0 here, because ifsplit is necessary .FALSE. +C for s-orbital (restriction in dmftproj.f) + m1=-l-1 + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + m2=m1+reptrans(l,isrt)%dreps(irep) + ind2=ind1+reptrans(l,isrt)%dreps(irep) +C Since there is no SO, prcrorb%matrep is of size 2*l+1, from -l to l +C (the basis which mix up/dn states are not possible here.) +C The states range from m1+1 to m2 in the irep. +C The corresponding projector is stored from the line (ind1+1) to the line ind2, in the D matrix. + D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,is)% + & mat_rep(m1+1:m2,nbbot:nbtop) + ind1=ind2 + ENDIF + m1=m1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) + ind2=ind1+2*l+1 +C Since there is no SO, prcrorb%matrep is of size 2*l+1, from -l to l. +C (the basis which mix up/dn states are not possible here.) +C The corresponding projection matrix is stored from the line (ind1+1) to the line ind2, in the D matrix. + D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,is)% + & mat_rep(-l:l,nbbot:nbtop) + ind1=ind2 + ENDIF ! End of the ifsplit if-then-else + ENDIF ! End of the l=0 if-then-else + ENDDO ! End of the icrorb loop +C +C ---------------------------------------- +C Computation of the overlap matrix Dmat : +C ---------------------------------------- +C The overlap matrix is stored in Dmat = D*transpose(conjugate(D)) + CALL ZGEMM('N','C',ndim,ndim,nbnd,DCMPLX(1.D0,0.D0), + & D,ndim,D,ndim,DCMPLX(0.D0,0.D0),Dmat,ndim) +C +C ------------------------------------------- +C Computation of the matrix S = Dmat^{-1/2} : +C ------------------------------------------- + CALL orthogonal_h(Dmat,ndim,.TRUE.) +C This matrix is stored in Dmat. +C +C ----------------------------------------------- +C Computation of the orthonormalized projectors : +C ----------------------------------------------- +C The calculation performed is the following : P=O^(-1/2)*P_tilde. +C Its value is stored in the matrix D_orth (of size ndim*nbnd) + + ALLOCATE(D_orth(1:ndim,1:nbnd)) + CALL ZGEMM('N','N',ndim,nbnd,ndim,DCMPLX(1.D0,0.D0), + & Dmat,ndim,D,ndim,DCMPLX(0.D0,0.D0),D_orth,ndim) + DEALLOCATE(D) +C +C -------------------------------------------------------------------------------- +C Storing the value of the orthonormalized projectors in the pr_crorb structures : +C -------------------------------------------------------------------------------- + ind1=0 + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C If l=0, there only possible irep is the whole matrix itself. + IF (l==0) THEN + pr_crorb(icrorb,ik,is)%mat_rep + & (1,nbbot:nbtop)=D_orth(ind1+1,1:nbnd) + ind1=ind1+1 + ELSE +C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) + IF(crorb(icrorb)%ifsplit) THEN +C the value of l can not be 0 here, because ifsplit is necessary .FALSE. +C for s-orbital (restriction in dmftproj.f) + m1=-l-1 + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + m2=m1+reptrans(l,isrt)%dreps(irep) + ind2=ind1+reptrans(l,isrt)%dreps(irep) +C prcrorb%matrep is of size 2*l+1, from -l to l (the basis which mix up/dn states are not possible here.) +C In the D_orth matrix, the corresponding part of the projection matrix ranges from the line (ind1+1) to the line ind2. +C The projector associated to the ireps is stored in the prcrorb%matrep from m1+1 to m2. + pr_crorb(icrorb,ik,is)% + & mat_rep(m1+1:m2,nbbot:nbtop)= + & D_orth(ind1+1:ind2,1:nbnd) + ind1=ind2 + ENDIF + m1=m1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) + ind2=ind1+2*l+1 +C Since there is no SO, prcrorb%matrep is of size 2*l+1, from -l to l. +C (the basis which mix up/dn states are not possible here.) +C In the D_orth matrix, the projection matrix ranges from the line (ind1+1) to the line ind2. +C The projector is stored in the pr_crorb%matrep (from -l to l). + pr_crorb(icrorb,ik,is)%mat_rep + & (-l:l,nbbot:nbtop)=D_orth(ind1+1:ind2,1:nbnd) + ind1=ind2 + ENDIF ! End of the ifsplit if-then-else + ENDIF ! End of the l=0 if-then-else + ENDDO ! End of the icrorb loop +C prcrorb%matrep contains now the orthonormalized projectors. + DEALLOCATE(D_orth) + ENDDO ! End of the loop on is + ENDDO ! End of the loop on ik + DEALLOCATE(Dmat) +C +C ============================================================================= +C Printing the projectors with k-points 1 and nk in the file fort.18 for test : +C ============================================================================= + DO icrorb=1,ncrorb + iatom=crorb(icrorb)%atom + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l + WRITE(18,'()') + WRITE(18,'(a)') 'apres othonormalizsation' + WRITE(18,'(a,i4)') 'icrorb = ', icrorb + WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l + IF (l==0) THEN + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ELSEIF (reptrans(l,isrt)%ifmixing) THEN + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ELSE + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ENDIF + ENDDO +C + RETURN + END + + + + SUBROUTINE orthogonal_wannier_SO +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine orthonormalizes the Wannier-like functions %% +C %% obtained with the projectors P(icrorb,ik,is), in order to %% +C %% get a set of "true" Wannier orbitals. %% +C %% %% +C %% Only the correlated orbitals are treated here. %% +C %% %% +C %% THIS VERSION MUST BE USED WITH SPIN-ORBIT %% +C %% (since the calculation for up/dn states is made simultaneously) %% +C %% THIS VERSION CAN NOT BE USED WITHOUT SPIN-POLARIZED INPUT FILES.%% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE almblm_data + USE common_data + USE prnt + USE projections + USE reps + IMPLICIT NONE + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: Dmat, D_orth, D + INTEGER :: is, ik, l, nbnd, ndim, isrt, nbbot, nbtop + INTEGER :: icrorb, ind1, ind2, iatom, ib + INTEGER :: m1, m2, irep +C + WRITE(buf,'(a)')'Orthonormalization of the projectors...' + CALL printout(0) + CALL printout(0) +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if there is no dn part of pr_crorb. +C ------------------------- +C + IF(.not.ifSP) THEN + WRITE(buf,'(a,a,i2,a)')'The projectors on ', + & 'the dn states are required for isrt = ',isrt, + & ' but there is no spin-polarized input files.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C --------------------------------------------------------------------------------------- +C +C ===================================== +C Creation of the overlap matrix Dmat : +C ===================================== +C +C ----------------------------------------------------------- +C Determination of the dimension ndim of the overlap matrix : +C ----------------------------------------------------------- + ndim=0 +C Loop on the correlated orbitals + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C Since this subroutine is used only in the case with SO, +C the only irep possible for s-orbital is the matrix itself. + ndim=ndim+2 +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) + IF(crorb(icrorb)%ifsplit) THEN + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ndim=ndim+reptrans(l,isrt)%dreps(irep) + ENDIF +C The dimension of the irep is added to ndim. + ENDDO + ELSE +C If no particular irep is considered (ifsplit=.FALSE.), +C The whole matrix of the representation is considered. + ndim=ndim+2*(2*l+1) + ENDIF +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE +C Since this subroutine is used only in the case with SO, +C the only irep possible for this orbital is the matrix itself. + ndim=ndim+2*(2*l+1) + ENDIF + ENDDO +C ------------------ +C Creation of Dmat : +C ------------------ + ALLOCATE(Dmat(1:ndim,1:ndim)) +C +C ===================================================================== +C Computation of the orthonormalized Wannier functions and projectors : +C ===================================================================== +C The computation is performed for each k_point independently +C because they are still good quantum numbers. + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,1)%included) CYCLE + nbnd=kp(ik,1)%nb_top-kp(ik,1)%nb_bot+1 + nbbot=kp(ik,1)%nb_bot + nbtop=kp(ik,1)%nb_top +C it was checked that nbtop(up)=nbtop(dn) and nbbot(up)=nbbot(dn) +C for a computation with SO [in set_projections.f] + ALLOCATE(D(1:ndim,1:nbnd)) +C +C -------------------------------- +C Initialization of the D matrix : +C -------------------------------- +C This D matrix of size ndim*nbnd is the complete "projector matrix" +C which enables to go from the Wannier-like basis |u_orb> to the Bloch states |ik,ib>. + ind1=0 + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C the only irep possible for s-orbital is the matrix itself. + DO is=1,ns +C D(ind1,1:nbnd)= +C Bug correction 8.11.2012 + D(ind1+1,1:nbnd)= + & pr_crorb(icrorb,ik,is)%mat_rep(1,nbbot:nbtop) + ind1=ind1+1 + ENDDO +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the projection matrix is stored in prcrorb%matrep with is=1. +C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) + IF (crorb(icrorb)%ifsplit) THEN + m1=0 + DO irep=1,reptrans(l,isrt)%nreps + IF (crorb(icrorb)%correp(irep)) THEN + m2=m1+reptrans(l,isrt)%dreps(irep) + ind2=ind1+reptrans(l,isrt)%dreps(irep) +C The states range from m1+1 to m2 in the irep. +C The corresponding projector is stored from the line (ind1+1) to the line ind2, in the D matrix. + D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,1)% + & mat_rep(m1+1:m2,nbbot:nbtop) + ind1=ind2 + ENDIF + m1=m1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) + ind2=ind1+2*(2*l+1) +C The corresponding projection matrix is stored from the line (ind1+1) to the line ind2, in the D matrix. + D(ind1+1:ind2,1:nbnd)=pr_crorb(icrorb,ik,1)% + & mat_rep(1:2*(2*l+1),nbbot:nbtop) + ind1=ind2 + ENDIF ! End of the ifsplit if-then-else +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE +C the only irep possible for such an orbital is the matrix itself. + DO is=1,ns + ind2=ind1+2*l+1 + D(ind1+1:ind2,1:nbnd)= + & pr_crorb(icrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop) + ind1=ind2 + ENDDO + ENDIF ! End of the ifmixing if-then-else + ENDDO ! End of the icrorb loop +C +C ---------------------------------------- +C Computation of the overlap matrix Dmat : +C ---------------------------------------- +C The overlap matrix is stored in Dmat = D*transpose(conjugate(D)) + CALL ZGEMM('N','C',ndim,ndim,nbnd,DCMPLX(1.D0,0.D0), + & D,ndim,D,ndim,DCMPLX(0.D0,0.D0),Dmat,ndim) +C +C ------------------------------------------- +C Computation of the matrix S = Dmat^{-1/2} : +C ------------------------------------------- + CALL orthogonal_h(Dmat,ndim,.TRUE.) +C This matrix is stored in Dmat. +C +C ----------------------------------------------- +C Computation of the orthonormalized projectors : +C ----------------------------------------------- +C The calculation performed is the following : P=O^(-1/2)*P_tilde. +C Its value is stored in the matrix D_orth (of size ndim*nbnd) + ALLOCATE(D_orth(1:ndim,1:nbnd)) + CALL ZGEMM('N','N',ndim,nbnd,ndim,DCMPLX(1.D0,0.D0), + & Dmat,ndim,D,ndim,DCMPLX(0.D0,0.D0),D_orth,ndim) + DEALLOCATE(D) +C +C -------------------------------------------------------------------------------- +C Storing the value of the orthonormalized projectors in the pr_crorb structures : +C -------------------------------------------------------------------------------- + ind1=0 + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C the only irep possible for s-orbital is the matrix itself. + DO is=1,ns + pr_crorb(icrorb,ik,is)%mat_rep(1,nbbot:nbtop)= + & D_orth(ind1+1,1:nbnd) + ind1=ind1+1 + ENDDO +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C the projectors of the correlated ireps are considered if there are any. (ifsplit=.TRUE.) + IF(crorb(icrorb)%ifsplit) THEN + m1=0 + DO irep=1,reptrans(l,isrt)%nreps + IF (crorb(icrorb)%correp(irep)) THEN + m2=m1+reptrans(l,isrt)%dreps(irep) + ind2=ind1+reptrans(l,isrt)%dreps(irep) +C In the D_orth matrix, the corresponding part of the projection matrix ranges from the line (ind1+1) to the line ind2. +C The projector associated to the ireps is stored in the prcrorb%matrep from m1+1 to m2. + pr_crorb(icrorb,ik,1)%mat_rep(m1+1:m2,nbbot:nbtop) + & =D_orth(ind1+1:ind2,1:nbnd) + ind1=ind2 + ENDIF + m1=m1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C The projectors of the whole correlated representation is considered. (ifsplit=.FALSE.) + ind2=ind1+2*(2*l+1) +C The corresponding projection matrix is stored from the line (ind1+1) to the line ind2, in the D matrix. + pr_crorb(icrorb,ik,1)%mat_rep(1:2*(2*l+1),nbbot:nbtop) + & =D_orth(ind1+1:ind2,1:nbnd) + ind1=ind2 + ENDIF ! End of the ifsplit if-then-else +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE +C the only irep possible for this orbital is the matrix itself. + DO is=1,ns + ind2=ind1+2*l+1 + pr_crorb(icrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop) + & =D_orth(ind1+1:ind2,1:nbnd) + ind1=ind2 + ENDDO + ENDIF ! End of the ifmixing if-then-else + ENDDO ! End of the icrorb loop + DEALLOCATE(D_orth) + ENDDO ! End of the loop on ik + DEALLOCATE(Dmat) +C +C ============================================================================= +C Printing the projectors with k-points 1 and nk in the file fort.18 for test : +C ============================================================================= + DO icrorb=1,ncrorb + iatom=crorb(icrorb)%atom + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l + WRITE(18,'()') + WRITE(18,'(a)') 'apres othonormalizsation' + WRITE(18,'(a,i4)') 'icrorb = ', icrorb + WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l + IF (l==0) THEN + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ELSEIF (reptrans(l,isrt)%ifmixing) THEN + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ELSE + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ENDIF + ENDDO +C + RETURN + END + + diff --git a/fortran/dmftproj/outband.f b/fortran/dmftproj/outband.f new file mode 100644 index 0000000..625992e --- /dev/null +++ b/fortran/dmftproj/outband.f @@ -0,0 +1,287 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE outband +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine creates the output file case.outband, with all %% +C %% the informations necessary for the computation of the spectral %% +C %% function of the system. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definition of the variables : +C ----------------------------- + USE almblm_data + USE bands + USE common_data + USE file_names + USE prnt + USE projections + USE reps + IMPLICIT NONE +C + INTEGER :: iorb, icrorb, irep, isrt + INTEGER :: l, m, is, i1, i2, i + INTEGER :: ik, il, ib, ir, n + INTEGER :: ind1, ind2, iatom +C + WRITE(buf,'(a)')'Writing the file case.outband...' + CALL printout(0) +C +C ====================================== +C Informations about the chosen k-path : +C ====================================== +C +C Number of k-points along the chosen k-path + WRITE(ouband,'(i6)') nkband +C Description of the number of bands in the energy window at each k_point +C + DO is=1,ns +C If SO is considered, the number of up and dn bands are the same. + IF ((ifSP.AND.ifSO).and.(is.eq.2)) cycle + DO ik=1,nk + WRITE(ouband,'(i6)') + & ABS(kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1) + ENDDO ! End of the ik loop + ENDDO ! End of the is loop +C for each k-point, the number of band included in the energy window is written. +C =========================================================== +C Description of the projectors for the correlated orbitals : +C =========================================================== + DO ik=1,nk + DO icrorb=1,ncrorb + l=crorb(icrorb)%l + isrt=crorb(icrorb)%sort +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s-orbitals, the only irep possible is the matrix itself. + DO is=1,ns + WRITE(ouband,*) + & REAL(pr_crorb(icrorb,ik,is)%mat_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + DO is=1,ns + WRITE(ouband,*) + & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the SO is necessary considered, spinor rotation matrices are used. + IF(crorb(icrorb)%ifsplit) THEN +C If only 1 irep is correlated + ind1=1 + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO m=ind1,ind2 + WRITE(ouband,*) + & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + DO m=ind1,ind2 + WRITE(ouband,*) + & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated + DO m=1,2*(2*l+1) + WRITE(ouband,*) + & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ouband,*) + & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + ENDIF +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF ((.not.(ifSP.AND.ifSO)).AND.crorb(icrorb)%ifsplit) THEN +C If only 1 irep is correlated (case without SO) + ind1=-l + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO is=1,ns + DO m=ind1,ind2 + WRITE(ouband,*) + & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + DO is=1,ns + DO m=ind1,ind2 + WRITE(ouband,*) + & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated (case with and without SO) + DO is=1,ns + DO m=-l,l + WRITE(ouband,*) + & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + DO is=1,ns + DO m=-l,l + WRITE(ouband,*) + & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + END IF ! End of the ifsplit if-then-else + END IF ! End of the ifmixing if-then-else + END DO ! End of the icrorb loop + END DO ! End of the ik loop +C for each k-point and each correlated orbital, the corresponding projector is described by : +C - the real part of the "correlated" submatrix +C - the imaginary part of the "correlated" submatrix +C +C ====================================================== +C Description of the Hamiltonian H(k) at each k_point : +C ====================================================== + DO is=1,ns + DO ik=1,nk +C If SO is considered, the numbers of up and dn bands are the same. + IF (ifSO.and.is.eq.2) cycle + DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top + WRITE(ouband,*) kp(ik,is)%eband(ib) + ENDDO + ENDDO ! End of the ik loop + ENDDO ! End of the is loop +C for each spin value is and each k-point, +C - the energies of the band with spin is at point k +C +C ================================================================ +C Description of the size of the basis for each included orbital : +C ================================================================ + DO iorb=1,norb + WRITE(ouband,'(3(i6))') norm_radf(iorb)%n + ENDDO +C There is not more than 1 LO for each orbital (hence n < 4 ) +C +C ==================================== +C Description of the Theta projector : +C ==================================== + DO iorb=1,norb + l=orb(iorb)%l + isrt=orb(iorb)%sort +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN + DO ik=1,nk + DO ir=1,norm_radf(iorb)%n + DO is=1,ns + WRITE(ouband,*) + & REAL(pr_orb(iorb,ik,is)%matn_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + DO is=1,ns + WRITE(ouband,*) + & AIMAG(pr_orb(iorb,ik,is)%matn_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + ENDDO ! End of the ir loop + ENDDO ! End of the ik loop +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. + DO ik=1,nk + DO ir=1,norm_radf(iorb)%n + DO m=1,2*(2*l+1) + WRITE(ouband,*) + & REAL(pr_orb(iorb,ik,1)%matn_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ouband,*) + & AIMAG(pr_orb(iorb,ik,1)%matn_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) + ENDDO + ENDDO ! End of the ir loop + ENDDO ! End of the ik loop +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + DO ik=1,nk + DO ir=1,norm_radf(iorb)%n + DO is=1,ns + DO m=-l,l + WRITE(ouband,*) + & REAL(pr_orb(iorb,ik,is)%matn_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + ENDDO ! End of the is loop + DO is=1,ns + DO m=-l,l + WRITE(ouband,*) + & AIMAG(pr_orb(iorb,ik,is)%matn_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + ENDDO ! End of the is loop + ENDDO ! End of the ir loop + ENDDO ! End of the ik loop + ENDIF ! End of the ifmixing if-then-else + ENDDO ! End of the iorb loop +C for each included orbital, for each k-point and each |phi_j> elmt, +C the corresponding Thetaprojector is described by : +C - the real part of the matrix +C - the imaginary part of the matrix +C +C ============================= +C Description of the k-labels : +C ============================= + DO i=1,nlab + WRITE(ouband,'(2i6,a)') i,labels(i)%pos,labels(i)%kname + ENDDO +C for each label, are written : +C - the number of the corresponding k-point in the k-path +C - the name associated to this label +C + RETURN + END + + + diff --git a/fortran/dmftproj/outbwin.f b/fortran/dmftproj/outbwin.f new file mode 100644 index 0000000..25d1f03 --- /dev/null +++ b/fortran/dmftproj/outbwin.f @@ -0,0 +1,92 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE outbwin +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine creates the output file case.oubwin %% +C %% which contains all the informations for the charge density %% +C %% self-consistency. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definition of the variables : +C ---------------------------- + USE almblm_data + USE common_data + USE file_names + USE prnt + IMPLICIT NONE + INTEGER :: is, ik, ou +C + WRITE(buf,'(a)')'Writing the file case.outbwin...' + CALL printout(0) +C + DO is=1,ns +C ==================================== +C Definition of the file case.oubwin : +C ==================================== +C If the computations is spin-polarized, the output file is divided +C in two files : case.oubwinup and case.oubwindn + IF(ifSP.AND.is==1) THEN + ou=oubwinup + ELSEIF(ifSP.AND.is==2) THEN + ou=oubwindn + ELSE + ou=oubwin + ENDIF +C ======================================= +C General informations about the system : +C ======================================= +C +C Number of k-points in the I-BZ + WRITE(ou,'(i6)') nk +C Definition of the Spin-orbit flag ifSO + IF(ifSO) THEN + WRITE(ou,'(i6)') 1 + ELSE + WRITE(ou,'(i6)') 0 + ENDIF +C ==================================================== +C Description of the main properties of each k-point : +C ==================================================== + DO ik=1,nk +C Description of the if-included flag + IF(kp(ik,is)%included) THEN + WRITE(ou,'(i6)') 1 + ELSE + WRITE(ou,'(i6)') 0 + ENDIF + IF(kp(ik,is)%included) THEN +C Range of bands included at each k-point + WRITE(ou,'(2(i6))') kp(ik,is)%nb_bot,kp(ik,is)%nb_top +C Weight associated to each k-point (for the simple point integration) + WRITE(ou,*) kp(ik,is)%weight + ENDIF + ENDDO ! End of the ik loop + ENDDO ! End of the is loop +C + RETURN + END + + + diff --git a/fortran/dmftproj/outputqmc.f b/fortran/dmftproj/outputqmc.f new file mode 100644 index 0000000..f0df75d --- /dev/null +++ b/fortran/dmftproj/outputqmc.f @@ -0,0 +1,1405 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE outqmc(elecn,qbbot) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine creates the output files : %% +C %% - case.ctqmcout, with all the informations necessary for a %% +C %% CTQMC computation. %% +C %% - case.symqmc, describing all the symmetries of the system %% +c %% (necessary for CTQMC computation too). %% +C %% - case.parproj which gives the partial charge projectors for %% +C %% orbitals and for all atoms. %% +C %% - case.sympar which contains the symmetry matrices for all %% +C %% the included orbitals (for partial charge analysis) %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definition of the variables : +C ----------------------------- + USE almblm_data + USE common_data + USE file_names + USE prnt + USE reps + USE symm + USE projections + IMPLICIT NONE +C + INTEGER :: iorb, icrorb, irep, isrt + INTEGER :: l, m, is, i1, i2, isym + INTEGER :: ik, il, ib, ir, n + INTEGER :: ind1, ind2, iatom + INTEGER :: timeinvflag + REAL(KIND=8) :: qbbot, elecn, factor + COMPLEX(KIND=8) :: ephase + COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: hk + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: spinrot + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: densprint + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: time_op +C +C +C ======================================= +C Writing the file case.ctqmcout : +C ======================================= +C + WRITE(buf,'(a)')'Writing the file case.ctqmcout...' + CALL printout(0) +C +C Definition of 1 electron-Volt + WRITE(ouctqmc,'(a)') '13.605698' +C +C --------------------------------------- +C General informations about the system : +C --------------------------------------- +C +C Number of k-points in the I-BZ + WRITE(ouctqmc,'(i6)') nk +C Definition of the spin-polarized flag ifSP + IF (ifSP) THEN + WRITE(ouctqmc,'(i6)') 1 + ELSE + WRITE(ouctqmc,'(i6)') 0 + ENDIF +C Definition of the Spin-orbit flag ifSO + IF (ifSO) THEN + WRITE(ouctqmc,'(i6)') 1 + ELSE + WRITE(ouctqmc,'(i6)') 0 + ENDIF +C The only possible combinations are : +C - (0,0) which stands for a paramagnetic computation without SO. +C - (1,0) which stands for computation without SO using spin-polarized input files. +C - (1,1) which stands for computation with SO using spin-polarized input files. +C +C Writing the total charge below the lower limit of the energy window (variable "qbbot") + WRITE(ouctqmc,*) qbbot +C Writing the total number of electrons (valence band+semicore) (variable "elecn"). +C It is also the charge upto the Fermi level. + WRITE(ouctqmc,*) elecn +C +C ------------------------------------------ +C Description of all the included orbitals : +C ------------------------------------------ +C +C Definition of the number of included orbitals "norb" + WRITE(ouctqmc,'(i6)') norb +C Description of each orbital "iorb" + DO iorb=1,norb + IF (ifSO) THEN + WRITE(ouctqmc,'(4(i6,x))') orb(iorb)%atom, orb(iorb)%sort, + & orb(iorb)%l, 2*(2*orb(iorb)%l+1) + ELSE + WRITE(ouctqmc,'(4(i6,x))') orb(iorb)%atom, orb(iorb)%sort, + & orb(iorb)%l, 2*orb(iorb)%l+1 + ENDIF + ENDDO +C an orbital "iorb" is described by : +C - the associated atom +C - the corresponding atomic sort +C - the considered orbital number l +C - the size of the corresponding matrices : 2*l+1 without SO ; 2*(2*l+1) with SO +C +C ---------------------------------------- +C Description of the correlated orbitals : +C ---------------------------------------- +C +C Definition of the number of correlated orbitals "ncrorb" + WRITE(ouctqmc,'(i6)') ncrorb +C Description of each correlated orbital "icrorb" + DO icrorb=1,ncrorb + l=crorb(icrorb)%l + isrt=crorb(icrorb)%sort +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s-orbitals, the only irep possible is the matrix itself. + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrix is considered. +C The spin is not a good quantum number, so the whole representation is used. + WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, 0, + & 2, crorb(icrorb)%ifSOat, 1 + ELSE +C Without SO, only the rotation matrix in orbital space is necessary. + WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, 0, + & 1, crorb(icrorb)%ifSOat, 1 + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF(reptrans(l,isrt)%ifmixing) THEN +C In this case, the SO is necessary considered, spinor rotation matrices are used. + IF (crorb(icrorb)%ifsplit) THEN +C If only an irep is correlated + DO irep=1,reptrans(l,isrt)%nreps + IF (crorb(icrorb)%correp(irep)) THEN + WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, + & isrt, l, reptrans(l,isrt)%dreps(irep), + & crorb(icrorb)%ifSOat, irep + ENDIF + ENDDO + ELSE +C If no particular irep is correlated + WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, l, + & 2*(2*l+1), crorb(icrorb)%ifSOat, 1 + ENDIF +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrices are considered. +C The spin is not a good quantum number, so the whole representation is used. + WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, l, + & 2*(2*l+1), crorb(icrorb)%ifSOat, 1 + ELSE +C Without SO, only the rotation matrix in orbital space is necessary. + IF (crorb(icrorb)%ifsplit) THEN +C If only an irep is correlated + DO irep=1,reptrans(l,isrt)%nreps + IF (crorb(icrorb)%correp(irep)) THEN + WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, + & isrt, l, reptrans(l,isrt)%dreps(irep), + & crorb(icrorb)%ifSOat, irep + ENDIF + ENDDO + ELSE +C If no particular irep is correlated + WRITE(ouctqmc,'(6(i6,x))') crorb(icrorb)%atom, isrt, l, + & (2*l+1), crorb(icrorb)%ifSOat, 1 + END IF ! End of the ifsplit if-then-else + END IF ! End of the ifSO if-then-else + END IF ! End of the ifmixing if-then-else + END DO ! End of the icrorb loop +C an orbital "iorb" is described by : +C - the associated atom +C - the corresponding atomic sort +C - the considered orbital number l +C - the size of the "correlated" submatrix (can be the whole matrix) +C - the flag ifSOat which states that SO is considered for this orbital +C - the number of the irep +C +C ------------------------------------------------------------------------------------------------ +C Description of the global to local coordinates transformation Rloc for each correlated orbital : +C ------------------------------------------------------------------------------------------------ +C Description of each transformation Rloc + DO icrorb=1,ncrorb + l=crorb(icrorb)%l + isrt=crorb(icrorb)%sort + iatom=crorb(icrorb)%atom +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF(l==0) THEN +C For the s-orbitals, the only irep possible is the matrix itself. + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrix must be considered. + ALLOCATE(spinrot(1:2,1:2)) + spinrot(:,:)=0.d0 +C The spinor-rotation matrix is directly calculated from the Euler angles a,b and c. + IF (rotloc(iatom)%timeinv) THEN + factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 + spinrot(2,1)=EXP(CMPLX(0.d0,factor))* + & DCOS(rotloc(iatom)%b/2.d0) + spinrot(1,2)=-CONJG(spinrot(2,1)) +C Up/dn and Dn/up terms + factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 + spinrot(2,2)=-EXP(CMPLX(0.d0,factor))* + & DSIN(rotloc(iatom)%b/2.d0) + spinrot(1,1)=CONJG(spinrot(2,2)) + ELSE + factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 + spinrot(1,1)=EXP(CMPLX(0.d0,factor))* + & DCOS(rotloc(iatom)%b/2.d0) + spinrot(2,2)=CONJG(spinrot(1,1)) +C Up/dn and Dn/up terms + factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 + spinrot(1,2)=EXP(CMPLX(0.d0,factor))* + & DSIN(rotloc(iatom)%b/2.d0) + spinrot(2,1)=-CONJG(spinrot(1,2)) + ENDIF +C Printing the transformation informations + DO m=1,2 + WRITE(ouctqmc,*) REAL(spinrot(m,1:2)) + ENDDO + DO m=1,2 + WRITE(ouctqmc,*) AIMAG(spinrot(m,1:2)) + ENDDO + DEALLOCATE(spinrot) +C Without SO, only the rotation matrix in orbital space is necessary. + ELSE +C In this case, the Rloc matrix is merely identity. + WRITE(ouctqmc,*) 1.d0 + WRITE(ouctqmc,*) 0.d0 + ENDIF +C Printing the time inversion flag if the calculation is spin-polarized (ifSP=1) + IF (ifSP) THEN + timeinvflag=0 + IF (rotloc(iatom)%timeinv) timeinvflag=1 + WRITE(ouctqmc,'(i6)') timeinvflag + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. + IF(crorb(icrorb)%ifsplit) THEN +C If only an irep is correlated + ind1=1 + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO m=ind1,ind2 + WRITE(ouctqmc,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,ind1:ind2)) + ENDDO + DO m=ind1,ind2 + WRITE(ouctqmc,*)AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,ind1:ind2)) + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO + ENDIF +C Printing if the transformation included a time-reversal operation. + timeinvflag =0 + IF (rotloc(iatom)%timeinv) timeinvflag=1 + WRITE(ouctqmc,'(i6)') timeinvflag +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrices are considered. +C The spin is not a good quantum number, so the whole representation is used. + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO + ELSE +C The calculation is either spin-polarized without SO or paramagnetic. +C The spin is a good quantum number and irep are possible. + IF(crorb(icrorb)%ifsplit) THEN +C If only an irep is correlated + ind1=-l + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO m=ind1,ind2 + WRITE(ouctqmc,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,ind1:ind2)) + ENDDO + DO m=ind1,ind2 + WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,ind1:ind2)) + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated + DO m=-l,l + WRITE(ouctqmc,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,-l:l)) + ENDDO + DO m=-l,l + WRITE(ouctqmc,*) AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,-l:l)) + ENDDO + END IF ! End of the ifsplit if-then-else + END IF ! End of the ifSO if-then-else +C Printing if the transformation included a time-reversal operation. + IF (ifSP) THEN + timeinvflag =0 + IF (rotloc(iatom)%timeinv) timeinvflag=1 + WRITE(ouctqmc,'(i6)') timeinvflag + END IF + END IF ! End of the ifmixing if-then-else + END DO ! End of the icrorb loop +C for each correlated orbital icrorb, the transformation Rloc is described by : +C - the real part of the submatrix associated to "icrorb" +C - the imaginary part of the submatrix associated to "icrorb" +C - a flag which states if a time reversal operation is included in the transformation (if SP only ) +C +C ------------------------------------------------------------------------------------------------------------- +C Description of the transformation from complex harmonics to the basis associated to each correlated orbital : +C ------------------------------------------------------------------------------------------------------------- +C + DO icrorb=1,ncrorb + l=crorb(icrorb)%l + isrt=crorb(icrorb)%sort +C The transformation is printed only for the first (representative) atom of each sort. + IF (crorb(icrorb)%first) THEN +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s-orbitals, the only basis considered is the complex basis. + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, orbital+spin space is considered. + ALLOCATE(spinrot(1:2,1:2)) + spinrot(:,:)=0.d0 + spinrot(1,1)=1.d0 + spinrot(2,2)=1.d0 +C Printing the number of irep in the considered basis and the size of each irep +C in the considered basis (in this case, it's 1 and 2.) + WRITE(ouctqmc,*) 1, 2 +C Printing the transformation matrix + DO m=1,2 + WRITE(ouctqmc,*) REAL(spinrot(m,1:2)) + ENDDO + DO m=1,2 + WRITE(ouctqmc,*) AIMAG(spinrot(m,1:2)) + ENDDO +C + DEALLOCATE(spinrot) + ELSE +C Without SO, only the matrix in orbital space is necessary. +C Printing the number of irep in the considered basis and the size of each irep +C in the considered basis (in this case, it's 1 and 1.) + WRITE(ouctqmc,'(2(i6,x))') 1, 1 +C Printing the transformation matrix + WRITE(ouctqmc,*) 1.d0 + WRITE(ouctqmc,*) 0.d0 + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the SO is necessary considered, spinor rotation matrices are used. + IF (crorb(icrorb)%ifsplit) THEN + WRITE(ouctqmc,'(15(i6,x))') reptrans(l,isrt)%nreps, + & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) + ELSE + WRITE(ouctqmc,'(2(i6,x))') 1, 2*(2*l+1) + ENDIF + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) REAL(reptrans(l,isrt)% + & transmat(m,1:2*(2*l+1)) ) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) AIMAG(reptrans(l,isrt)% + & transmat(m,1:2*(2*l+1)) ) + ENDDO +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, orbital+spin space is considered. + ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) + spinrot(:,:)=0.d0 + spinrot(1:2*l+1,1:2*l+1)= + & reptrans(l,isrt)%transmat(-l:l,-l:l) + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + & reptrans(l,isrt)%transmat(-l:l,-l:l) +C Printing the number of irep in the considered basis and the size of each irep +C in the considered basis (in this case, it's 1 and 2*(2*l+1).) + WRITE(ouctqmc,*) 1, 2*(2*l+1) +C Printing the transformation matrix + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) REAL(spinrot(m,1:2*(2*l+1)) ) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) AIMAG(spinrot(m,1:2*(2*l+1)) ) + ENDDO +C + DEALLOCATE(spinrot) +C Without SO, only the rotation matrix in orbital space is necessary. + ELSE + IF (crorb(icrorb)%ifsplit) THEN + WRITE(ouctqmc,'(8(i6,x))') reptrans(l,isrt)%nreps, + & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) + ELSE + WRITE(ouctqmc,'(2(i6,x))') 1, 2*l+1 + ENDIF + DO m=-l,l + WRITE(ouctqmc,*) REAL(reptrans(l,isrt)% + & transmat(m,-l:l) ) + ENDDO + DO m=-l,l + WRITE(ouctqmc,*) AIMAG(reptrans(l,isrt)% + & transmat(m,-l:l) ) + END DO + END IF ! End of the ifSO if-then-else + END IF ! End of the ifmixing if-then-else + END IF ! End of the iffirst if-then-else + END DO ! End of the icrorb loop +C for each correlated orbital icrorb, the basis transformation is described by : +C - the number of irep in the new basis +C - the dimension of each irep in the new basis +C - the real part of the basis transformation +C - the imaginary part of the basis transformation +C +C ------------------------------------------------------------------------- +C Description of the number of bands in the energy window at each k_point : +C ------------------------------------------------------------------------- +C + DO is=1,ns +C If SO is considered, the number of up and dn bands are the same. + IF ((ifSP.AND.ifSO).and.(is.eq.2)) cycle +C Printing the number of included bands in the window for each k_point + DO ik=1,nk + WRITE(ouctqmc,'(i6)') + & ABS(kp(ik,is)%nb_top-kp(ik,is)%nb_bot+1) + ENDDO + ENDDO +C +C ----------------------------------------------------------- +C Description of the projectors for the correlated orbitals : +C ----------------------------------------------------------- + DO ik=1,nk + DO icrorb=1,ncrorb + l=crorb(icrorb)%l + isrt=crorb(icrorb)%sort +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s-orbitals, the only irep possible is the matrix itself. +C if the calculation is spin-polarized, up and dn projectors are written the one above the other (orbital+spin-space of size 2) + DO is=1,ns + WRITE(ouctqmc,*) + & REAL(pr_crorb(icrorb,ik,is)%mat_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + DO is=1,ns + WRITE(ouctqmc,*) + & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. + IF(crorb(icrorb)%ifsplit) THEN +C If only 1 irep is correlated + ind1=1 + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO m=ind1,ind2 + WRITE(ouctqmc,*) + & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + DO m=ind1,ind2 + WRITE(ouctqmc,*) + & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) + & REAL(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ouctqmc,*) + & AIMAG(pr_crorb(icrorb,ik,1)%mat_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top)) + ENDDO + ENDIF +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF ((.not.(ifSP.AND.ifSO)).AND.crorb(icrorb)%ifsplit) THEN +C If only 1 irep is correlated (case without SO) + ind1=-l + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO is=1,ns + DO m=ind1,ind2 + WRITE(ouctqmc,*) + & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + DO is=1,ns + DO m=ind1,ind2 + WRITE(ouctqmc,*) + & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated (case with and without SO) + DO is=1,ns + DO m=-l,l + WRITE(ouctqmc,*) + & REAL(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + DO is=1,ns + DO m=-l,l + WRITE(ouctqmc,*) + & AIMAG(pr_crorb(icrorb,ik,is)%mat_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) + ENDDO + ENDDO + END IF ! End of the ifsplit if-then-else + END IF ! End of the ifmixing if-then-else + END DO ! End of the icrorb loop + END DO ! End of the ik loop +C for each k-point and each correlated orbital, the corresponding projector is described by : +C - the real part of the "correlated" submatrix +C - the imaginary part of the "correlated" submatrix +C +C ---------------------------------------------------------------------------- +C Description of the weight of each k_point for the simple point integration : +C ---------------------------------------------------------------------------- + DO ik=1,nk + WRITE(ouctqmc,*) kp(ik,1)%weight +C This is a geometrical factor independent of the spin value. + ENDDO +C +C ----------------------------------------------------- +C Description of the Hamiltonian H(k) at each k_point : +C ----------------------------------------------------- + DO is=1,ns + DO ik=1,nk +C If the calculation is spin-polarized with SO, the numbers for up and dn bands are the same. + IF ((ifSP.AND.ifSO).AND.(is.eq.2)) cycle + DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top + WRITE(ouctqmc,*) kp(ik,is)%eband(ib) + ENDDO + ENDDO + ENDDO +C for each spin value is and each k-point, +C - the energies of the band with spin is at point k +C +C +C ====================================== +C Writing the file case.symqmc : +C ====================================== +C + WRITE(buf,'(a)')'Writing the file case.symqmc...' + CALL printout(0) +C +C ---------------------------------------------------------- +C Description of the general informations about the system : +C ---------------------------------------------------------- + WRITE(ousymqmc,'(2(i6,x))') nsym, natom +C nysm is the total number of symmetries in the system +C natom is the total number of atom in the unit cell +C +C ------------------------------------------------------------------- +C Description of the permutation matrix associated to each symmetry : +C ------------------------------------------------------------------- + DO isym=1,nsym + WRITE(ousymqmc,'(100(i6,x))') srot(isym)%perm(1:natom) + ENDDO +C +C ------------------------------------------------------------ +C Description of the time-reversal property for each symmetry : +C ------------------------------------------------------------ + IF (ifSP) THEN + ALLOCATE(timeflag(nsym)) + timeflag=0 + DO isym=1,nsym + IF (srot(isym)%timeinv) timeflag(isym)= 1 + ENDDO + WRITE(ousymqmc,'(100(i6,x))') timeflag(1:nsym) + DEALLOCATE(timeflag) +C When the calculation is spin-polarized (with SO), a flag which states +C if a time reversal operation is included in the transformation isym is written. + ENDIF +C +C ----------------------------------------------------------------------------------------- +C Description of the representation matrices of each symmetry for each correlated orbital : +C ----------------------------------------------------------------------------------------- + DO isym=1,nsym + DO icrorb=1,ncrorb + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF(l==0) THEN +C For the s-orbitals, the only irep possible is the matrix itself. + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrix is considered. + ALLOCATE(spinrot(1:2,1:2)) + spinrot(:,:)=0.d0 + IF (srot(isym)%timeinv) THEN +C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, +C since the time-reversal operator is included in the definition of the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (g-a) if beta=Pi. +C Up/up and Dn/dn terms + spinrot(1,1)=EXP(CMPLX(0.d0,factor)) + spinrot(2,2)=CONJG(spinrot(1,1)) +C spinrot(1,1) = -exp(+i(alpha-gamma)/2) ; spinrot(2,2) = -exp(-i(alpha-gamma)/2) +C in good agreement with Wien conventions for the definition of this phase factor. + ELSE +C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, +C No time-reversal treatment was applied to the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (a+g) if beta=0. +C Up/up and Dn/dn terms + spinrot(1,1)=EXP(CMPLX(0.d0,factor)) + spinrot(2,2)=CONJG(spinrot(1,1)) +C the field phase is 2pi-(alpha+gamma) in this case. +C spinrot(1,1) = -exp(-i(alpha+gamma)/2) ; spinrot(2,2) = -exp(i(alpha-gamma)/2) +C in good agreement with Wien conventions for the definition of this phase factor. + END IF +C Printing the transformation informations + DO m=1,2 + WRITE(ousymqmc,*) REAL(spinrot(m,1:2)) + ENDDO + DO m=1,2 + WRITE(ousymqmc,*) AIMAG(spinrot(m,1:2)) + ENDDO +C + DEALLOCATE(spinrot) +C Without SO, only the rotation matrix in orbital space is necessary. + ELSE +C In this case, the Rloc matrix is merely identity. + WRITE(ousymqmc,*) 1.d0 + WRITE(ousymqmc,*) 0.d0 + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the SO is necessary considered, spinor rotation matrices are used. + IF(crorb(icrorb)%ifsplit) THEN +C If only an irep is correlated + ind1=1 + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO m=ind1,ind2 + WRITE(ousymqmc,*) REAL(srot(isym)% + & rotrep(l,isrt)%mat(m,ind1:ind2)) + ENDDO + DO m=ind1,ind2 + WRITE(ousymqmc,*)AIMAG(srot(isym)% + & rotrep(l,isrt)%mat(m,ind1:ind2)) + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated + DO m=1,2*(2*l+1) + WRITE(ousymqmc,*) REAL(srot(isym)% + & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ousymqmc,*) AIMAG(srot(isym)% + & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) + ENDDO + ENDIF +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF (ifSP.AND.ifSO) THEN +C If the calculation is spin-polarized with SO, spinor rotation matrices are considered. +C The spin is not a good quantum number, so the whole representation is used. + ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) + spinrot(:,:)=0.d0 + IF (srot(isym)%timeinv) THEN +C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, +C since the time-reversal operator is included in the definition of the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (g-a) in this case. +C Up/up block : + ephase=EXP(CMPLX(0.d0,factor)) +C As a result, ephase = -exp(i(alpha-gamma)/2) + spinrot(1:2*l+1,1:2*l+1)= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) +C Dn/dn block : + ephase=CONJG(ephase) +C Now, ephase = -exp(-i(alpha-gamma)/2) + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) + ELSE +C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, +C No time-reversal treatment was applied to the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (a+g) in this case. +C Up/up block : + ephase=EXP(CMPLX(0.d0,factor)) +C As a result, ephase = -exp(-i(alpha+gamma)/2) + spinrot(1:2*l+1,1:2*l+1)= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) +C Dn/dn block : + ephase=CONJG(ephase) +C Now, ephase = -exp(i(alpha+gamma)/2) + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) + END IF +C Printing the transformation informations + DO m=1,2*(2*l+1) + WRITE(ousymqmc,*) REAL(spinrot(m,1:2*(2*l+1)) ) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ousymqmc,*) AIMAG(spinrot(m,1:2*(2*l+1)) ) + ENDDO +C + DEALLOCATE(spinrot) +C In the other cases (spin-polarized without SO or paramagnetic), only the rotation matrix in orbital space is necessary. + ELSE + IF(crorb(icrorb)%ifsplit) THEN +C If only an irep is correlated + ind1=-l + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO m=ind1,ind2 + WRITE(ousymqmc,*) REAL(srot(isym)% + & rotrep(l,isrt)%mat(m,ind1:ind2)) + ENDDO + DO m=ind1,ind2 + WRITE(ousymqmc,*) AIMAG(srot(isym)% + & rotrep(l,isrt)%mat(m,ind1:ind2)) + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated + DO m=-l,l + WRITE(ousymqmc,*) REAL(srot(isym)% + & rotrep(l,isrt)%mat(m,-l:l)) + ENDDO + DO m=-l,l + WRITE(ousymqmc,*) AIMAG(srot(isym)% + & rotrep(l,isrt)%mat(m,-l:l)) + ENDDO + END IF ! End of the ifsplit if-then-else + END IF ! End of the ifSO if-then-else + END IF ! End of the ifmixing if-then-else + END DO ! End of the icrorb loop + END DO ! End of the isym loop +C for each symmetry and each correlated orbital icrorb, is described : +C - the real part of the submatrix associated to "isym" for the "icrorb" +C - the imaginary part of the submatrix associated to "isym" for the "icrorb" +C +C ----------------------------------------------------------------------- +C Description of the time reversal operator for each correlated orbital : +C ----------------------------------------------------------------------- +C This description occurs only if the computation is paramagnetic. (ifSP=0) + IF (.not.ifSP) THEN + DO icrorb=1,ncrorb + l=crorb(icrorb)%l + isrt=crorb(icrorb)%sort +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s-orbitals, the only basis considered is the complex basis. + WRITE(ousymqmc,*) 1.d0 + WRITE(ousymqmc,*) 0.d0 +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE +C Calculation of the time-reversal operator + ALLOCATE(time_op(-l:l,-l:l)) + time_op(:,:)=0.d0 + DO m=-l,l + time_op(m,m)=1.d0 + ENDDO +C time_op is Identity. + CALL timeinv_op(time_op,(2*l+1),l,isrt) +C time_op is now the time-reversal operator in the desired basis ({new_i}) +C + IF(crorb(icrorb)%ifsplit) THEN +C If only an irep is correlated + ind1=-l + DO irep=1,reptrans(l,isrt)%nreps + IF(crorb(icrorb)%correp(irep)) THEN + ind2=ind1+reptrans(l,isrt)%dreps(irep)-1 + DO m=ind1,ind2 + WRITE(ousymqmc,*) REAL(time_op(m,ind1:ind2)) + ENDDO + DO m=ind1,ind2 + WRITE(ousymqmc,*) AIMAG(time_op(m,ind1:ind2)) + ENDDO + ENDIF + ind1=ind1+reptrans(l,isrt)%dreps(irep) + ENDDO + ELSE +C If no particular irep is correlated + DO m=-l,l + WRITE(ousymqmc,*) REAL(time_op(m,-l:l)) + ENDDO + DO m=-l,l + WRITE(ousymqmc,*) AIMAG(time_op(m,-l:l)) + ENDDO + END IF ! End of the ifsplit if-then-else + DEALLOCATE(time_op) + END IF ! End of the l if-then-else + END DO ! End of the icrorb loop + END IF ! End of the ifsp if-then-else +C for each correlated orbital icrorb, the time-reversal operator is described by : +C - its real part +C - its imaginary part +C +C +C =============================== +C Writing the file case.parproj : +C =============================== +C + WRITE(buf,'(a)')'Writing the file case.parproj...' + CALL printout(0) +C +C ---------------------------------------------------------------- +C Description of the size of the basis for each included orbital : +C ---------------------------------------------------------------- + DO iorb=1,norb + WRITE(oupartial,'(3(i6))') norm_radf(iorb)%n + ENDDO +C There is not more than 1 LO for each orbital (hence n < 4 ) +C +C The following descriptions are made for each included orbital. + DO iorb=1,norb + l=orb(iorb)%l + isrt=orb(iorb)%sort +C ------------------------------------ +C Description of the Theta projector : +C ------------------------------------ +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN + DO ik=1,nk + DO ir=1,norm_radf(iorb)%n + DO is=1,ns + WRITE(oupartial,*) + & REAL(pr_orb(iorb,ik,is)%matn_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + DO is=1,ns + WRITE(oupartial,*) + & AIMAG(pr_orb(iorb,ik,is)%matn_rep(1, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + ENDDO ! End of the ir loop + ENDDO ! End of the ik loop +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. + DO ik=1,nk + DO ir=1,norm_radf(iorb)%n + DO m=1,2*(2*l+1) + WRITE(oupartial,*) + & REAL(pr_orb(iorb,ik,1)%matn_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) + ENDDO + DO m=1,2*(2*l+1) + WRITE(oupartial,*) + & AIMAG(pr_orb(iorb,ik,1)%matn_rep(m, + & kp(ik,1)%nb_bot:kp(ik,1)%nb_top,ir)) + ENDDO + ENDDO ! End of the ir loop + ENDDO ! End of the ik loop +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + DO ik=1,nk + DO ir=1,norm_radf(iorb)%n + DO is=1,ns + DO m=-l,l + WRITE(oupartial,*) + & REAL(pr_orb(iorb,ik,is)%matn_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + ENDDO ! End of the is loop + DO is=1,ns + DO m=-l,l + WRITE(oupartial,*) + & AIMAG(pr_orb(iorb,ik,is)%matn_rep(m, + & kp(ik,is)%nb_bot:kp(ik,is)%nb_top,ir)) + ENDDO + ENDDO ! End of the is loop + ENDDO ! End of the ir loop + ENDDO ! End of the ik loop + ENDIF ! End of the ifmixing if-then-else +C for each included orbital, for each k-point and each |phi_j> elmt, +C the corresponding Thetaprojector is described by : +C - the real part of the matrix +C - the imaginary part of the matrix +C +C ------------------------------------------------------------------------------- +C Description of the density matrices below the lower limit e_bot of the window : +C ------------------------------------------------------------------------------- +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C With SO, the density matrix is printed for the complete spin+orbital subspace. +C (in this case, this means a matrix of size 2) + IF (ifSP.AND.ifSO) THEN + ALLOCATE(densprint(2,2)) + densprint(1,1)=densmat(1,iorb)%mat(1,1) + densprint(2,2)=densmat(2,iorb)%mat(1,1) + densprint(1,2)=densmat(3,iorb)%mat(1,1) + densprint(2,1)=densmat(4,iorb)%mat(1,1) + DO m=1,2 + WRITE(oupartial,*) REAL(densprint(m,1:2)) + ENDDO + DO m=1,2 + WRITE(oupartial,*) AIMAG(densprint(m,1:2)) + ENDDO + DEALLOCATE(densprint) +C In the other cases the density matrix is printed for each spin subspace independently. +C (in this case, this means two matrices of size 1) + ELSE + DO is=1,ns + WRITE(oupartial,*) REAL(densmat(is,iorb)%mat(1,1)) + ENDDO + DO is=1,ns + WRITE(oupartial,*) AIMAG(densmat(is,iorb)%mat(1,1)) + ENDDO + ENDIF ! End of the ifSO if-then-else +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. +C As a result, the density matrix is printed for the complete spin+orbital subspace. +C (this means a matrix of size 2*(2*l+1)) + DO m=1,2*(2*l+1) + WRITE(oupartial,*) + & REAL(densmat(1,iorb)%mat(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(oupartial,*) + & AIMAG(densmat(1,iorb)%mat(m,1:2*(2*l+1))) + ENDDO +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE +C With SO, the density matrix is printed for the complete spin+orbital subspace. +C (this means a matrix of size 2*(2*l+1)) + IF (ifSP.AND.ifSO) THEN + ALLOCATE(densprint(1:2*(2*l+1),1:2*(2*l+1))) + densprint(1:2*l+1,1:2*l+1)= + & densmat(1,iorb)%mat(-l:l,-l:l) + densprint(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + & densmat(2,iorb)%mat(-l:l,-l:l) + densprint(1:2*l+1,2*l+2:2*(2*l+1))= + & densmat(3,iorb)%mat(-l:l,-l:l) + densprint(2*l+2:2*(2*l+1),1:2*l+1)= + & densmat(4,iorb)%mat(-l:l,-l:l) + DO m=1,2*(2*l+1) + WRITE(oupartial,*) REAL(densprint(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(oupartial,*) AIMAG(densprint(m,1:2*(2*l+1))) + ENDDO + DEALLOCATE(densprint) +C In the other cases, the density matrix is printed for each spin subspace independently. +C (this means two matrices of size 2*l+1) + ELSE + DO is=1,ns + DO m=-l,l + WRITE(oupartial,*) + & REAL(densmat(is,iorb)%mat(m,-l:l)) + ENDDO + ENDDO + DO is=1,ns + DO m=-l,l + WRITE(oupartial,*) + & AIMAG(densmat(is,iorb)%mat(m,-l:l)) + ENDDO + ENDDO + ENDIF ! End of the ifSO if-then-else + ENDIF ! End of the ifmixing if-then-else +C for each included orbital, the corresponding density matrix is described by : +C - the real part of the matrix +C - the imaginary part of the matrix +C +C -------------------------------------------------------------------- +C Description of the global to local coordinates transformation Rloc : +C -------------------------------------------------------------------- +C Description of each transformation Rloc + iatom=orb(iorb)%atom +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF(l==0) THEN +C For the s-orbitals, the only irep possible is the matrix itself. + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrix must be considered. + ALLOCATE(spinrot(1:2,1:2)) + spinrot(:,:)=0.d0 +C The spinor-rotation matrix is directly calculated from the Euler angles a,b and c. + IF (rotloc(iatom)%timeinv) THEN + factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 + spinrot(2,1)=EXP(CMPLX(0.d0,factor))* + & DCOS(rotloc(iatom)%b/2.d0) + spinrot(1,2)=-CONJG(spinrot(2,1)) +C Up/dn and Dn/up terms + factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 + spinrot(2,2)=-EXP(CMPLX(0.d0,factor))* + & DSIN(rotloc(iatom)%b/2.d0) + spinrot(1,1)=CONJG(spinrot(2,2)) + ELSE + factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 + spinrot(1,1)=EXP(CMPLX(0.d0,factor))* + & DCOS(rotloc(iatom)%b/2.d0) + spinrot(2,2)=CONJG(spinrot(1,1)) +C Up/dn and Dn/up terms + factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 + spinrot(1,2)=EXP(CMPLX(0.d0,factor))* + & DSIN(rotloc(iatom)%b/2.d0) + spinrot(2,1)=-CONJG(spinrot(1,2)) + ENDIF +C Printing the transformation informations + DO m=1,2 + WRITE(oupartial,*) REAL(spinrot(m,1:2)) + ENDDO + DO m=1,2 + WRITE(oupartial,*) AIMAG(spinrot(m,1:2)) + ENDDO + DEALLOCATE(spinrot) +C Without SO, only the rotation matrix in orbital space is necessary. + ELSE +C In this case, the Rloc matrix is merely identity. + WRITE(oupartial,*) 1.d0 + WRITE(oupartial,*) 0.d0 + ENDIF +C Printing the time inversion flag if the calculation is spin-polarized (ifSP=1) + IF (ifSP) THEN + timeinvflag=0 + IF (rotloc(iatom)%timeinv) timeinvflag=1 + WRITE(oupartial,'(i6)') timeinvflag + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the calculation is necessary spin-polarized with SO, spinor rotation matrices are used. + DO m=1,2*(2*l+1) + WRITE(oupartial,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(oupartial,*) AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO +C Printing if the transforamtion included a time-reversal operation. + timeinvflag =0 + IF (rotloc(iatom)%timeinv) timeinvflag=1 + WRITE(oupartial,'(i6)') timeinvflag +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrices are considered. +C The spin is not a good quantum number, so the whole representation is used. + DO m=1,2*(2*l+1) + WRITE(oupartial,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(oupartial,*) AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,1:2*(2*l+1))) + ENDDO + ELSE +C The calculation is either spin-polarized without SO or paramagnetic. +C The spin is a good quantum number and irep are possible. + DO m=-l,l + WRITE(oupartial,*) REAL(rotloc(iatom)% + & rotrep(l)%mat(m,-l:l)) + ENDDO + DO m=-l,l + WRITE(oupartial,*) AIMAG(rotloc(iatom)% + & rotrep(l)%mat(m,-l:l)) + ENDDO + END IF ! End of the ifSO if-then-else +C Printing if the transformation included a time-reversal operation. + IF (ifSP) THEN + timeinvflag =0 + IF (rotloc(iatom)%timeinv) timeinvflag=1 + WRITE(oupartial,'(i6)') timeinvflag + END IF + END IF ! End of the ifmixing if-then-else +C for each included orbital iorb, the transformation Rloc is described by : +C - the real part of the submatrix associated to "iorb" +C - the imaginary part of the submatrix associated to "iorb" +C - a flag which states if a time reversal operation is included in the transformation (if SP only ) +C + END DO ! End of the iorb loop +C +C +C ============================== +C Writing the file case.sympar : +C ============================== +C + WRITE(buf,'(a)')'Writing the file case.sympar...' + CALL printout(0) +C +C ---------------------------------------------------------- +C Description of the general informations about the system : +C ---------------------------------------------------------- + WRITE(ousympar,'(2(i6,x))') nsym, natom +C nysm is the total number of symmetries of the system +C natom is the total number of atom in the unit cell +C +C ------------------------------------------------------------------- +C Description of the permutation matrix associated to each symmetry : +C ------------------------------------------------------------------- + DO is=1,nsym + WRITE(ousympar,'(100(i6,x))') srot(is)%perm + ENDDO +C +C ------------------------------------------------------------ +C Description of the time-reversal property for each symmetry : +C ------------------------------------------------------------ + IF (ifSP) THEN + ALLOCATE(timeflag(nsym)) + timeflag=0 + DO isym=1,nsym + IF (srot(isym)%timeinv) timeflag(isym)= 1 + ENDDO + WRITE(ousympar,'(100(i6,x))') timeflag(1:nsym) + DEALLOCATE(timeflag) +C When the calculation is spin-polarized (with SO), a flag which states +C if a time reversal operation is included in the transformation isym is written. + ENDIF +C +C ------------------------------------------------------------------------------------------- +C Description of the representation matrices of each symmetry for all the included orbitals : +C ------------------------------------------------------------------------------------------- + DO isym=1,nsym + DO iorb=1,norb + isrt=orb(iorb)%sort + l=orb(iorb)%l +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF(l==0) THEN +C For the s-orbitals, the only irep possible is the matrix itself. + IF (ifSP.AND.ifSO) THEN +C If SO is taken into account, spinor rotation matrix is considered. + ALLOCATE(spinrot(1:2,1:2)) + spinrot(:,:)=0.d0 + IF (srot(isym)%timeinv) THEN +C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, +C since the time-reversal operator is included in the definition of the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (g-a) if beta=Pi. +C Up/up and Dn/dn terms + spinrot(1,1)=EXP(CMPLX(0.d0,factor)) + spinrot(2,2)=CONJG(spinrot(1,1)) +C spinrot(1,1) = -exp(i(alpha-gamma)/2) ; spinrot(2,2) = -exp(-i(alpha-gamma)/2) +C in good agreement with Wien conventions for the definition of this phase factor. + ELSE +C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, +C No time-reversal treatment was applied to the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (a+g) if beta=0. +C Up/up and Dn/dn terms + spinrot(1,1)=EXP(CMPLX(0.d0,factor)) + spinrot(2,2)=CONJG(spinrot(1,1)) +C spinrot(1,1) = -exp(-i(alpha+gamma)/2) ; spinrot(2,2) = -exp(i(alpha-gamma)/2) +C in good agreement with Wien conventions for the definition of this phase factor. + END IF +C Printing the transformation informations + DO m=1,2 + WRITE(ousympar,*) REAL(spinrot(m,1:2)) + ENDDO + DO m=1,2 + WRITE(ousympar,*) AIMAG(spinrot(m,1:2)) + ENDDO +C + DEALLOCATE(spinrot) +C Without SO, only the rotation matrix in orbital space is necessary. + ELSE +C In this case, the Rloc matrix is merely identity. + WRITE(ousympar,*) 1.d0 + WRITE(ousympar,*) 0.d0 + ENDIF +C +C If the basis representation needs a complete spinor rotation approach (basis with "mixing" ). +C --------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the SO is necessary considered, spinor rotation matrices are used. + DO m=1,2*(2*l+1) + WRITE(ousympar,*) REAL(srot(isym)% + & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ousympar,*) AIMAG(srot(isym)% + & rotrep(l,isrt)%mat(m,1:2*(2*l+1))) + ENDDO +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE + IF (ifSP.AND.ifSO) THEN +C If the calculation is spin-polarized with SO, spinor rotation matrices are considered. +C The spin is not a good quantum number, so the whole representation is used. + ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) + spinrot(:,:)=0.d0 + IF (srot(isym)%timeinv) THEN +C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-diagonal, +C since the time-reversal operator is included in the definition of the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (g-a) in this case. +C Up/up block : + ephase=EXP(CMPLX(0.d0,factor)) +C AS a result, ephase = -exp(i(alpha-gamma)/2) + spinrot(1:2*l+1,1:2*l+1)= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) +C Dn/dn block : + ephase=CONJG(ephase) +C Now, ephase = -exp(-i(alpha-gamma)/2) + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) + ELSE +C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal, +C No time-reversal treatment was applied to the transformation. +C + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is 2pi-(alpha+gamma) in this case. +C Up/up block : + ephase=EXP(CMPLX(0.d0,factor)) +C As a result, ephase = -exp(-i(alpha+gamma)/2) + spinrot(1:2*l+1,1:2*l+1)= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) +C Dn/dn block : + ephase=CONJG(ephase) +C Now, ephase = -exp(i(alpha+gamma)/2) + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + = ephase*srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l) + END IF +C Printing the transformation informations + DO m=1,2*(2*l+1) + WRITE(ousympar,*) REAL(spinrot(m,1:2*(2*l+1)) ) + ENDDO + DO m=1,2*(2*l+1) + WRITE(ousympar,*) AIMAG(spinrot(m,1:2*(2*l+1)) ) + ENDDO +C + DEALLOCATE(spinrot) +C In the other cases (spin-polarized without SO or paramagnetic), only the rotation matrix in orbital space is necessary. + ELSE + DO m=-l,l + WRITE(ousympar,*) REAL(srot(isym)% + & rotrep(l,isrt)%mat(m,-l:l)) + ENDDO + DO m=-l,l + WRITE(ousympar,*) AIMAG(srot(isym)% + & rotrep(l,isrt)%mat(m,-l:l)) + ENDDO + END IF ! End of the ifSO if-then-else + END IF ! End of the ifmixing if-then-else + END DO ! End of the iorb loop + END DO ! End of the isym loop +C for each symmetry and each included orbital iorb, is described : +C - the real part of the matrix associated to "isym" for the "iorb" +C - the imaginary part of the matrix associated to "isym" for the "iorb" +C +C --------------------------------------------------------------------- +C Description of the time reversal operator for each included orbital : +C --------------------------------------------------------------------- +C This description occurs only if the computation is paramagnetic (ifSP=0) + IF (.not.ifSP) THEN + DO iorb=1,norb + l=orb(iorb)%l + isrt=orb(iorb)%sort +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s-orbitals, the only basis considered is the complex basis. + WRITE(ousympar,*) 1.d0 + WRITE(ousympar,*) 0.d0 +C +C If the basis representation can be reduce to the up/up block (basis without "mixing"). +C -------------------------------------------------------------------------------------- + ELSE +C Calculation of the time-reversal operator + ALLOCATE(time_op(-l:l,-l:l)) + time_op(:,:)=0.d0 + DO m=-l,l + time_op(m,m)=1.d0 + ENDDO +C time_op is Identity. + CALL timeinv_op(time_op,(2*l+1),l,isrt) +C time_op is now the time-reversal operator in the desired basis ({new_i}) +C + DO m=-l,l + WRITE(ousympar,*) REAL(time_op(m,-l:l)) + ENDDO + DO m=-l,l + WRITE(ousympar,*) AIMAG(time_op(m,-l:l)) + ENDDO + DEALLOCATE(time_op) + END IF ! End of the l if-then-else + END DO ! End of the icrorb loop + END IF ! End of the ifsp if-then-else +C for each included orbital iorb, the time-reversal operator is described by : +C - its real part +C - its imaginary part +C + RETURN + END + + + diff --git a/fortran/dmftproj/read_k_list.f b/fortran/dmftproj/read_k_list.f new file mode 100644 index 0000000..4cda707 --- /dev/null +++ b/fortran/dmftproj/read_k_list.f @@ -0,0 +1,98 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE read_k_list +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine reads the labels of high-symmetry points %% +C %% along the k-path chosen for plotting the k-resolved spectral %% +C %% function. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C --------------------------- + USE bands + USE file_names + IMPLICIT NONE + CHARACTER(len=100) :: buf + INTEGER :: ilab, pos, i +C +C ======================================================================== +C Determination of the total number of labels and the number of k-points : +C ======================================================================== + buf=' ' + nlab=0 + pos=0 +C nlab will count the number of labels met. +C pos will count the number of lines +C (which is also the number of k-points along the k-path) + DO WHILE (buf(1:3).NE.'END') + READ(iuklist,'(a)') buf + pos=pos+1 + IF(buf(1:1).NE.' ') THEN + nlab=nlab+1 + ENDIF + ENDDO +C pos is now the number of line of the file. +C nlab is the number of labels, includind the label 'END' +C +C nkband = number of k-points along the k-path. + nkband=pos-1 +C The label 'END' must not be taken into account + nlab=nlab-1 +C The last line of the file case.klist_band contains "END". +C So the while loop can have an end too. +C +C ============================= +C Determination of the labels : +C ============================= + ALLOCATE(labels(nlab)) +C The file case.klist_band is read again. + REWIND(iuklist) + ilab=0 + DO pos=1,nkband + READ(iuklist,'(a)') buf + IF(buf(1:1).NE.' ') THEN + ilab=ilab+1 + labels(ilab)%pos=pos +C labels(ilab)%pos is the number of the corresponding k-point + i=INDEX(buf,' ') +C determination of the size of buf +C (index is a function which finds the index of ' ' in buf) + labels(ilab)%kname=' ' + labels(ilab)%kname(1:i)=buf(1:i) +C labels(ilab)%kname is the corresponding label + ENDIF + ENDDO +C ====================================== +C Printing the labels read for testing : +C ====================================== + WRITE(*,*) nkband + WRITE(*,*)'nlab = ', nlab + DO i=1,nlab + WRITE(*,*) i, labels(i)%pos, labels(i)%kname + ENDDO +C + RETURN + END + diff --git a/fortran/dmftproj/readcomline.f b/fortran/dmftproj/readcomline.f new file mode 100644 index 0000000..60f0675 --- /dev/null +++ b/fortran/dmftproj/readcomline.f @@ -0,0 +1,105 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE readcomline +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine reads and process the command line options %% +C %% (Only -so, -sp and -band are the possible ones). %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data + USE prnt + IMPLICIT NONE + CHARACTER(len=100) :: buf1 + CHARACTER(len=100), DIMENSION(:), ALLOCATABLE :: flags + INTEGER :: i1, iargc, iarg + LOGICAL :: ifError +C Process the command line : +C --------------------------- + iarg=iargc() + ALLOCATE(flags(iarg)) + ifSP=.FALSE. + ifSO=.FALSE. + ifBAND=.FALSE. + ifError=.FALSE. + DO i1=1,iarg + CALL getarg(i1,buf1) + READ(buf1,*)flags(i1) + flags(i1)=ADJUSTL(flags(i1)) + CALL makelowcase(flags(i1)) + SELECT CASE(flags(i1)(1:5)) + CASE('-sp ') + ifSP=.TRUE. + CASE('-so ') + ifSO=.TRUE. + CASE('-band') + ifBAND=.TRUE. + CASE DEFAULT + ifError=.TRUE. + EXIT + END SELECT + ENDDO +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if the options are not recognized. +C ------------------------- +C + IF (ifError) THEN + WRITE(6,'(a,a,a)')'Command line option: ',flags(i1)(1:5), + & ' is not recognized.' + WRITE(6,'(a)')'END OF THE PRGM' + STOP + ENDIF +C --------------------------------------------------------------------------------------- + DEALLOCATE(flags) +C + RETURN + END + + SUBROUTINE makelowcase(string) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine modifies the input string into low case %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + IMPLICIT NONE + CHARACTER*26 :: upperabc + CHARACTER*26 :: lowabc + CHARACTER* (*) string + INTEGER :: i,k + PARAMETER(upperabc='ABCDEFHGIJKLMNOPQRSTUVWXYZ') + PARAMETER(lowabc='abcdefhgijklmnopqrstuvwxyz') + DO i=1,len(string) + DO k=1,26 + IF(string(i:i)==upperabc(k:k)) string(i:i)=lowabc(k:k) + ENDDO + ENDDO + RETURN + END + + diff --git a/fortran/dmftproj/rot_dens.f b/fortran/dmftproj/rot_dens.f new file mode 100644 index 0000000..32e6261 --- /dev/null +++ b/fortran/dmftproj/rot_dens.f @@ -0,0 +1,239 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE rotdens_mat(Dmat,orbit,norbit) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine applies to each density matrix in Dmat %% +C %% the transformation to go from the global coordinates to the %% +C %% local coordinates associated to the considered orbital. %% +C %% %% +C %% This version can be used for SO computations. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definition of the variables : +C ---------------------------- + USE common_data + USE projections + USE symm + USE reps + IMPLICIT NONE + INTEGER :: norbit + TYPE(matrix), DIMENSION(nsp,norbit) :: Dmat + COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: rot_dmat + COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: tmp_mat + COMPLEX(KIND=8):: ephase + REAL(KIND=8):: factor + TYPE(orbital), DIMENSION(norbit) :: orbit + INTEGER :: iatom, isrt, iorb, is, is1, l, i, m +C +C + DO iorb=1,norbit + l=orbit(iorb)%l + isrt=orbit(iorb)%sort + iatom=orbit(iorb)%atom +C + IF(ifSP.AND.ifSO) THEN +C In this case, the complete spinor rotation approach (matrices of size 2*(2*l+1) ) is used for rotloc. + IF (l==0) THEN +C ------------------------------------------------------------------------------------------------------------ +C For the s orbital, the spinor rotation matrix will be constructed directly from the Euler angles a,b and c : +C ------------------------------------------------------------------------------------------------------------ +C Up/dn and Dn/up terms + ALLOCATE(tmp_mat(1:2,1:2)) + ALLOCATE(rot_dmat(1:2,1:2)) + IF (rotloc(iatom)%timeinv) THEN + factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 + tmp_mat(2,1)=EXP(CMPLX(0.d0,factor))* + & DCOS(rotloc(iatom)%b/2.d0) + tmp_mat(1,2)=-CONJG(tmp_mat(2,1)) +C Up/dn and Dn/up terms + factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 + tmp_mat(2,2)=-EXP(CMPLX(0.d0,factor))* + & DSIN(rotloc(iatom)%b/2.d0) + tmp_mat(1,1)=CONJG(tmp_mat(2,2)) +C definition of the total density matrix + rot_dmat(1,1)=Dmat(1,iorb)%mat(1,1) + rot_dmat(2,2)=Dmat(2,iorb)%mat(1,1) + rot_dmat(1,2)=Dmat(3,iorb)%mat(1,1) + rot_dmat(2,1)=Dmat(4,iorb)%mat(1,1) +C going to the local basis + rot_dmat(1:2,1:2)=CONJG(MATMUl( + & rot_dmat(1:2,1:2),tmp_mat(1:2,1:2))) + rot_dmat(1:2,1:2)=MATMUl( + & TRANSPOSE(tmp_mat(1:2,1:2)), + & rot_dmat(1:2,1:2)) + ELSE + factor=(rotloc(iatom)%a+rotloc(iatom)%g)/2.d0 + tmp_mat(1,1)=EXP(CMPLX(0.d0,factor))* + & DCOS(rotloc(iatom)%b/2.d0) + tmp_mat(2,2)=CONJG(tmp_mat(1,1)) +C Up/dn and Dn/up terms + factor=-(rotloc(iatom)%a-rotloc(iatom)%g)/2.d0 + tmp_mat(1,2)=EXP(CMPLX(0.d0,factor))* + & DSIN(rotloc(iatom)%b/2.d0) + tmp_mat(2,1)=-CONJG(tmp_mat(1,2)) +C definition of the total density matrix + rot_dmat(1,1)=Dmat(1,iorb)%mat(1,1) + rot_dmat(2,2)=Dmat(2,iorb)%mat(1,1) + rot_dmat(1,2)=Dmat(3,iorb)%mat(1,1) + rot_dmat(2,1)=Dmat(4,iorb)%mat(1,1) +C going to the local basis + rot_dmat(1:2,1:2)=MATMUl( + & TRANSPOSE(CONJG(tmp_mat(1:2,1:2))), + & rot_dmat(1:2,1:2)) + rot_dmat(1:2,1:2)=MATMUl( + & rot_dmat(1:2,1:2),tmp_mat(1:2,1:2)) + ENDIF + DEALLOCATE(tmp_mat) +C storing in Dmat + Dmat(1,iorb)%mat(1,1)=rot_dmat(1,1) + Dmat(2,iorb)%mat(1,1)=rot_dmat(2,2) + Dmat(3,iorb)%mat(1,1)=rot_dmat(1,2) + Dmat(4,iorb)%mat(1,1)=rot_dmat(2,1) + DEALLOCATE(rot_dmat) + ELSE +C ----------------------------------------------------------------------------------------------------- +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : +C ----------------------------------------------------------------------------------------------------- + IF (reptrans(l,isrt)%ifmixing) THEN +C We use the complete spin-space representation, so no trick on indices is necessary. +C +C Application of the operation inverse(Rloc).Dmat.(Rloc) : +C ------------------------------------------------------- + IF (rotloc(iatom)%timeinv) THEN +C In this case, the operators is antiunitary [ inverse(R)=transpose(R) ] + Dmat(1,iorb)%mat(:,:)=CONJG( + = MATMUL(Dmat(1,iorb)%mat(:,:), + & rotloc(iatom)%rotrep(l)%mat(:,:) )) + Dmat(1,iorb)%mat(:,:)= + = MATMUL(TRANSPOSE( rotloc(iatom)% + & rotrep(l)%mat(:,:) ),Dmat(1,iorb)%mat(:,:) ) +C Dmat_{local} = inverse(Rloc) Dmat_{global}* Rloc* +C Dmat_{local} = transpose(Rloc) Dmat_{global}* Rloc* + ELSE +C In this case, all the operators are unitary [ inverse(R)=transpose(conjugate(R)) ] + Dmat(1,iorb)%mat(:,:)= + = MATMUL(Dmat(1,iorb)%mat(:,:), + & rotloc(iatom)%rotrep(l)%mat(:,:) ) + Dmat(1,iorb)%mat(:,:)= + = MATMUL(TRANSPOSE(CONJG( rotloc(iatom)% + & rotrep(l)%mat(:,:) )),Dmat(1,iorb)%mat(:,:) ) +C Dmat_{local} = Dmat_{global} +C Dmat_{local} = inverse(Rloc) Dmat_{global} Rloc + ENDIF +C + ELSE +C ---------------------------------------------------------------------------------------------- +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : +C ---------------------------------------------------------------------------------------------- +C definition of the total density matrix + ALLOCATE(rot_dmat(1:2*(2*l+1),1:2*(2*l+1))) + rot_dmat(1:(2*l+1),1:(2*l+1))= + & Dmat(1,iorb)%mat(-l:l,-l:l) + rot_dmat(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + & Dmat(2,iorb)%mat(-l:l,-l:l) + rot_dmat(1:(2*l+1),2*l+2:2*(2*l+1))= + & Dmat(3,iorb)%mat(-l:l,-l:l) + rot_dmat(2*l+2:2*(2*l+1),1:(2*l+1))= + & Dmat(4,iorb)%mat(-l:l,-l:l) + IF (rotloc(iatom)%timeinv) THEN +C In this case, the operator is antiunitary [ inverse(R)=transpose(R) ] + rot_dmat(1:2*(2*l+1),1:2*(2*l+1))=CONJG( + = MATMUL(rot_dmat(1:2*(2*l+1),1:2*(2*l+1)), + & rotloc(iatom)%rotrep(l) + & %mat(1:2*(2*l+1),1:2*(2*l+1)) )) + rot_dmat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(TRANSPOSE( rotloc(iatom)% + & rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1)) ), + & rot_dmat(1:2*(2*l+1),1:2*(2*l+1)) ) +C Dmat_{local} = inverse(Rloc) Dmat_{global}* Rloc* +C Dmat_{local} = transpose(Rloc) Dmat_{global}* Rloc* + ELSE +C In this case, all the operators are unitary [ inverse(R)=transpose(conjugate(R)) ] + rot_dmat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(rot_dmat(1:2*(2*l+1),1:2*(2*l+1)), + & rotloc(iatom)%rotrep(l) + & %mat(1:2*(2*l+1),1:2*(2*l+1)) ) + rot_dmat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(TRANSPOSE(CONJG( rotloc(iatom)% + & rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1)) )), + & rot_dmat(1:2*(2*l+1),1:2*(2*l+1)) ) +C Dmat_{local} = Dmat_{global} +C Dmat_{local} = inverse(Rloc) Dmat_{global} Rloc + ENDIF +C storing in dmat again + Dmat(1,iorb)%mat(-l:l,-l:l)= + & rot_dmat(1:(2*l+1),1:(2*l+1)) + Dmat(2,iorb)%mat(-l:l,-l:l)= + & rot_dmat(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1)) + Dmat(3,iorb)%mat(-l:l,-l:l)= + & rot_dmat(1:(2*l+1),2*l+2:2*(2*l+1)) + Dmat(4,iorb)%mat(-l:l,-l:l)= + & rot_dmat(2*l+2:2*(2*l+1),1:(2*l+1)) + DEALLOCATE(rot_dmat) + ENDIF ! End of the if mixing if-then-else + ENDIF ! End of the if "l=0" if-then-else + ELSE +C ------------------------------------------------------------------------------ +C The s-orbitals are a particular case of a "non-mixing" basis and is invariant. +C ------------------------------------------------------------------------------ + IF(l==0) CYCLE +C ---------------------------------------------------------------------------------------------- +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : +C ---------------------------------------------------------------------------------------------- + ALLOCATE(rot_dmat(-l:l,-l:l)) + DO is=1,nsp + rot_dmat=0.d0 +C +C Application of the operation inverse(Rloc).Dmat.(Rloc) : +C ------------------------------------------------------- +C In this case, (either a paramagnetic calculation or a spin-polarized one +C but the symmetry operation does not change the magntization direction) +C all the operators are unitary [ inverse(R)=transpose(conjugate(R)) ] + rot_dmat(-l:l,-l:l)= + = MATMUL(Dmat(is,iorb)%mat(-l:l,-l:l), + & rotloc(iatom)%rotrep(l)%mat(-l:l,-l:l) ) + rot_dmat(-l:l,-l:l)= + = MATMUL(TRANSPOSE(CONJG( rotloc(iatom)% + & rotrep(l)%mat(-l:l,-l:l) )), + & rot_dmat(-l:l,-l:l) ) +C rotmat_{local} = rotmat_{global} +C rotmat_{local} = inverse(Rloc) rotmat_{global} Rloc +C +C Storing the new value in Dmat : +C ------------------------------- + Dmat(is,iorb)%mat(-l:l,-l:l)=rot_dmat(-l:l,-l:l) + ENDDO + DEALLOCATE(rot_dmat) +C + ENDIF ! End of the ifSO-ifSP if-then-else + ENDDO ! End of the iorb loop +C + RETURN + END + + + + + diff --git a/fortran/dmftproj/rot_projectmat.f b/fortran/dmftproj/rot_projectmat.f new file mode 100644 index 0000000..df3294c --- /dev/null +++ b/fortran/dmftproj/rot_projectmat.f @@ -0,0 +1,72 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE rot_projectmat(mat,l,bottom,top,jatom,isrt) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine makes the transformation from local to global %% +C %% frame coordinates for the matrices mat in agreement with %% +C %% the atom j considered. %% +C %% %% +C %% mat SHOULD BE IN THE COMPLEX SPHERICAL HARMONICS BASIS. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE almblm_data, ONLY : nk + USE common_data + USE symm + IMPLICIT NONE + INTEGER,INTENT(IN) :: l, bottom, top, jatom, isrt + COMPLEX(KIND=8), DIMENSION(-l:l,bottom:top) :: mat + COMPLEX(KIND=8), DIMENSION(-l:l,bottom:top) :: mattmp + COMPLEX(KIND=8), DIMENSION(1:2*l+1,1:2*l+1) :: rot_dmat + INTEGER :: is, ik, isym, lm, lms, ind1, ind2, m +C + DO m=-l,l + mattmp(m,bottom:top)= mat(m,bottom:top) + END DO +C mat is the projector in the local frame (spherical harmonic basis). +C +C The subroutine lapw2 has actually made the computation in the local frame +C BUT with considering the up and the dn elements in the global frame (no rotation in spin-space), +C That's why we have to make the computation only in the spin-space to put entirely the matrix mat in the global frame. +C Moreover, no time-reversal symmetry should be taken into account, since the true "rotloc" matrix is considered in lapw2 (-alm). +C +C The transformation is thus simply achieved by performing the multiplication by rotloc = +C (use of the subroutine dmat) + rot_dmat=0.d0 + CALL dmat(l,rotloc(jatom)%a,rotloc(jatom)%b, + & rotloc(jatom)%g, + & REAL(rotloc(jatom)%iprop,KIND=8),rot_dmat,2*l+1) +C Performing the rotation + mattmp(-l:l,bottom:top)= + = MATMUL(rot_dmat(1:2*l+1,1:2*l+1), + & mattmp(-l:l,bottom:top)) +C The variable mattmp is then the projector in the global frame (spherical harmonic basis). +C The resulting matrix is stored in mat. + mat(-l:l,bottom:top)=mattmp(-l:l,bottom:top) +C + RETURN + END + diff --git a/fortran/dmftproj/set_ang_trans.f b/fortran/dmftproj/set_ang_trans.f new file mode 100644 index 0000000..361893e --- /dev/null +++ b/fortran/dmftproj/set_ang_trans.f @@ -0,0 +1,543 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE set_ang_trans +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets up the matrices for transformation between %% +C %% the default complex spherical harmonics used in Wien2k and an %% +C %% angular basis chosen, for each orbital of each atom. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data + USE file_names + USE reps + USE prnt + IMPLICIT NONE + CHARACTER(len=150) :: fullpath + CHARACTER(len=250) :: buf1 + CHARACTER(len=25) :: basis_file + CHARACTER(len=1) :: repsign + INTEGER, DIMENSION(2*(2*lmax+1)) :: degrep + REAL(KIND=8), DIMENSION(:), ALLOCATABLE :: rtrans,itrans + INTEGER :: m, l, m1, irep, isrt, ind, ind1, ind2 + COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: tempmat + LOGICAL :: flag +C +C + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + WRITE(buf,'(a)')'Basis representation for each sort.' + CALL printout(0) + CALL printout(0) +C ================================= +C Creation of the reptrans matrix : +C ================================= +C +C For the s-electrons : no transformation is necessary (it's always the scalar 1) + ALLOCATE(reptrans(1:lmax,1:nsort)) +C Definition of the size of reptrans (size lmax*nsort) +C Each element of this table is an "ang_bas" element, which will be defined below. + DO isrt=1,nsort +C ----------------------------------------------- +C Case of a representation in the complex basis : +C ----------------------------------------------- + IF (defbasis(isrt)%typebasis(1:7)=='complex') THEN + DO l=1,lmax + IF (lsort(l,isrt)==0) THEN +C The considered orbital is not included, all the fields are set up to default value. + reptrans(l,isrt)%nreps=1 + ALLOCATE(reptrans(l,isrt)%dreps(1)) + ALLOCATE(reptrans(l,isrt)%transmat(1,1)) + reptrans(l,isrt)%transmat=0d0 + reptrans(l,isrt)%dreps(1)=0 + reptrans(l,isrt)%ifmixing=.FALSE. + ELSE +C The considered orbital is included. + reptrans(l,isrt)%nreps=1 + ALLOCATE(reptrans(l,isrt)%dreps(1)) + ALLOCATE(reptrans(l,isrt)%transmat(-l:l,-l:l)) + reptrans(l,isrt)%transmat=0d0 + reptrans(l,isrt)%dreps(1)=2*l+1 + reptrans(l,isrt)%ifmixing=.FALSE. + DO m=-l,l + reptrans(l,isrt)%transmat(m,m)=1d0 + ENDDO +C In this case, the transformation matrix is just the Identity (hence 1 irep). +C Spin up and Spin down states are not mixed in the basis representation. + ENDIF + ENDDO +C --------------------------------------------- +C Case of a representation in the cubic basis : +C --------------------------------------------- + ELSEIF (defbasis(isrt)%typebasis(1:5)=='cubic') THEN + DO l=1,lmax + IF (lsort(l,isrt)==0) THEN +C The considered orbital is not included, all the fields are set up to default value. + reptrans(l,isrt)%nreps=1 + ALLOCATE(reptrans(l,isrt)%dreps(1)) + ALLOCATE(reptrans(l,isrt)%transmat(1,1)) + reptrans(l,isrt)%transmat=0d0 + reptrans(l,isrt)%dreps(1)=0 + reptrans(l,isrt)%ifmixing=.FALSE. + ELSE +C The considered orbital is included. +C The cubic basis is described in the format transpose(P) where P is the usual matrix +C of the eigenvectors of a matrix D ( D.P=Delta.P with Delta diagonal or P=). +C In other words, each line of the file describes the coefficient of the "new basis vector" +C in the basis { |l,-l,up>,...|l,l,up>,|l,-l,dn>,...|l,l,dn> }. +C The transformation matrices are stored in the directory SRC_templates, the variable "fullpath" +C must be updated if this prgm is copied. + ALLOCATE(reptrans(l,isrt)%transmat(-l:l,-l:l)) + ALLOCATE(rtrans(-l:l)) + ALLOCATE(itrans(-l:l)) +C write(*,*)fullpath + IF (l==1) CALL + & set_harm_file(fullpath,'case.cf_p_cubic') +C standard cubic representation of p electrons : px,py,pz + IF (l==2) CALL + & set_harm_file(fullpath,'case.cf_d_eg_t2g') +C standard cubic representation of d-electrons : dz2, dx2-y2, dxy, dxz,dyz (Wien-convention for the phase) + IF (l==3) CALL + & set_harm_file(fullpath,'case.cf_f_mm2') +C mm2 representation of the f electrons (standard definition with complex coefficients) +C +C Reading of the file + OPEN(iumatfile,file=fullpath,status='old') + ind=-l + irep=0 + m = -l + DO WHILE (m.le.l) + READ(iumatfile,'(a)')buf1 + READ(buf1(1:1),'(a)')repsign +C Get rid of comment lines first + IF (repsign.NE.'#') THEN + IF(repsign=='*') THEN +C Finding the different ireps in the new basis (a "*" means the end of an irep) + irep=irep+1 + degrep(irep)=m-ind+1 + ind=m+1 + ENDIF + READ(buf1(2:250),*)(rtrans(m1),itrans(m1),m1=-l,l) +C The line of the file is stored in the column of reptrans, which is temporarly "P". + reptrans(l,isrt)%transmat(-l:l,m)= + & CMPLX(rtrans(-l:l),itrans(-l:l)) + m = m + 1 + ENDIF + ENDDO + reptrans(l,isrt)%transmat(-l:l,-l:l)= + = TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l))) +C reptrans%transmat = inverse(P) = , the transformation matrix from complex basis to the cubic one. +C ( inverse(P) is the decomposition of the complex basis in the new basis...) + reptrans(l,isrt)%nreps=irep + ALLOCATE(reptrans(l,isrt)%dreps(irep)) + reptrans(l,isrt)%dreps(1:irep)=degrep(1:irep) + reptrans(l,isrt)%ifmixing=.FALSE. +C reptrans%nreps = the total number of ireps in the cubic basis +C reptrans%dreps = table of the size of the different ireps +C reptrans%ifmixing = .FALSE. because Spin up and Spin down states are not mixed in the basis representation. + CLOSE(iumatfile) + DEALLOCATE(rtrans) + DEALLOCATE(itrans) + ENDIF + ENDDO +C --------------------------------------------------------- +C Case of a representation defined in an added input file : +C --------------------------------------------------------- + ELSEIF (defbasis(isrt)%typebasis(1:8)=='fromfile') THEN + basis_file=defbasis(isrt)%sourcefile + OPEN(iumatfile,file=basis_file,status='old') + DO l=1,lmax + IF (lsort(l,isrt)==0) THEN +C The considered orbital is not included, all the fields are set up to default value. + reptrans(l,isrt)%nreps=1 + ALLOCATE(reptrans(l,isrt)%dreps(1)) + ALLOCATE(reptrans(l,isrt)%transmat(1,1)) + reptrans(l,isrt)%transmat=0d0 + reptrans(l,isrt)%dreps(1)=0 + ELSE +C The considered orbital is included. +C The new basis is described in the format transpose(P) where P is the usual matrix +C of the eigenvectors of a matrix D ( D.P=Delta.P with Delta diagonal or P=). +C In other words, each line of the file describes the coefficient of the "new basis vector" +C in the basis { |l,-l,up>,...|l,l,up>,|l,-l,dn>,...|l,l,dn> }. +C The transformation matrices are stored in the directory SRC_templates, the variable "fullpath" +C must be updated if this prgm is copied. + ind=1 + irep=0 + ALLOCATE(tempmat(1:2*(2*l+1),1:2*(2*l+1))) + ALLOCATE(rtrans(1:2*(2*l+1))) + ALLOCATE(itrans(1:2*(2*l+1))) +C +C Reading of the file + DO m=1,2*(2*l+1) + READ(iumatfile,'(a)')buf1 + READ(buf1(1:1),'(a)')repsign + IF(repsign=='*') THEN +C Finding the different ireps in the new basis (a "*" means the end of an irep) + irep=irep+1 + degrep(irep)=m-ind+1 + ind=m+1 + ENDIF + READ(buf1(2:250),*)(rtrans(m1),itrans(m1), + & m1=1,2*(2*l+1)) + tempmat(1:2*(2*l+1),m)= + = CMPLX(rtrans(1:2*(2*l+1)),itrans(1:2*(2*l+1))) +C The lines of the read matrix are stored in the column of tempmat, which is then P. + ENDDO +C +C Determination if the basis mixes Spin up and Spin down states + flag=.TRUE. + ind1=1 + ind2=1 +C The "do while" loop stops when flag=FALSE or i=2*(l+1) + DO WHILE (flag.AND.(ind1.lt.2*(l+1))) + flag=flag.AND. + & (tempmat((2*l+1)+ind1,(2*l+1)+ind2)==tempmat(ind1,ind2)) + flag=flag.AND.(tempmat((2*l+1)+ind1,ind2)==0.d0) + flag=flag.AND.(tempmat(ind1,(2*l+1)+ind2)==0.d0) + IF (ind2==(2*l+1)) THEN + ind1=ind1+1 + ind2=1 + ELSE + ind2=ind2+1 + END IF + ENDDO + IF (flag) THEN +C If flag=TRUE (then i=2*l+2), the tempmat matrix is block diagonal in spin with +C the condition block up/up = block down/down. +C The Spin up and Spin down states are not mixed in the basis representation. + reptrans(l,isrt)%ifmixing=.FALSE. +C reptrans%ifmixing = .FALSE. because Spin up and Spin down states are not mixed in the basis representation. +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if the basis description is not correct. +C ------------------------- +C + IF (SUM(degrep(1:irep/2)).ne.(2*l+1)) THEN + WRITE(buf,'(a,a,i2,a,i2,a)')'The basis description ', + & 'for isrt = ',isrt,' and l = ',l,' is not recognized.' + CALL printout(0) + WRITE(buf,'(a,a)')'Check the structure of the file ', + & defbasis(isrt)%sourcefile + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + END IF +C --------------------------------------------------------------------------------------- +C + ALLOCATE(reptrans(l,isrt)%transmat(-l:l,-l:l)) + reptrans(l,isrt)%transmat(-l:l,-l:l)= + = tempmat(1:(2*l+1),1:(2*l+1)) + reptrans(l,isrt)%transmat(-l:l,-l:l)= + = TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l))) +C The up/up block is enough to describe the transformation (as for cubic or complex bases) +C reptrans%transmat = inverse(P) = +C inverse(P) is indeed the decomposition of the complex basis in the new basis. + reptrans(l,isrt)%nreps=irep/2 + ALLOCATE(reptrans(l,isrt)%dreps(reptrans(l,isrt)%nreps)) + reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps)= + = degrep(1:reptrans(l,isrt)%nreps) +C reptrans%nreps = the number of ireps in the desired basis for up spin +C reptrans%dreps = table of the size of the different ireps for up spin + ELSE +C If flag=FALSE, either the tempmat matrix either mixes Spin up and Spin down states +C or the representation basis for Spin up and Spin down states differ. +C In this case, it is not possible to reduce the description only to the up/up block. +C The whole tempmat matrix is necessary. +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if the basis description is not correct. +C ------------------------- +C + IF (SUM(degrep(1:irep)).ne.(2*(2*l+1))) THEN + WRITE(buf,'(a,a,i2,a,i2,a)')'The basis description ', + & 'for isrt = ',isrt,' and l = ',l,' is not recognized.' + CALL printout(0) + WRITE(buf,'(a,a)')'Check the structure of the file ', + & defbasis(isrt)%sourcefile + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + END IF +C --------------------------------------------------------------------------------------- +C + reptrans(l,isrt)%ifmixing=.TRUE. +C reptrans%ifmixing = .TRUE. because Spin up and Spin down states are mixed in the basis representation. + ALLOCATE(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1))) + reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))= + = tempmat(1:2*(2*l+1),1:2*(2*l+1)) + reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1))= + = TRANSPOSE(CONJG(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1)))) +C In this case, reptrans%transmat is a square matrix which ranges from 1 to 2*(2*l+1). +C reptrans%transmat = inverse(P) = +C inverse(P) is indeed the decomposition of the complex basis in the new basis. + reptrans(l,isrt)%nreps=irep + ALLOCATE(reptrans(l,isrt)%dreps(irep)) + reptrans(l,isrt)%dreps(1:irep)=degrep(1:irep) +C reptrans%nreps = the total number of ireps in the desired basis +C reptrans%dreps = table of the size of the different ireps +C +C Restriction for simplicity in the following (and for physical reasons) : +C a basis with ifmixing=.TRUE. is allowed only if the computation includes SO. + IF (.not.ifSO) THEN + WRITE(buf,'(a,a,i2,a,i2,a)')'The basis description ', + & 'for isrt = ',isrt,' and l = ',l, + & ' mixes up and down states.' + CALL printout(0) + WRITE(buf,'(a,a)')'This option can not ', + & 'be used in a computation without Spin-Orbit.' + CALL printout(0) + WRITE(buf,'(a,a)')'Modify the structure of the file ', + & defbasis(isrt)%sourcefile + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + END IF + END IF + DEALLOCATE(tempmat) + DEALLOCATE(rtrans) + DEALLOCATE(itrans) + ENDIF + ENDDO + CLOSE(iumatfile) +C ---------------------------------------------- +C Case of a wrong definition in the input file : +C ---------------------------------------------- + ELSE +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if the file has not the expected structure. +C ------------------------- +C + WRITE(buf,'(a,i2,a)')'The basis description for isrt = ', + & isrt,' is not recognized.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C --------------------------------------------------------------------------------------- +C + ENDDO +C +C +C =============================================== +C Printing the basis representation information : +C =============================================== +C + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + CALL printout(0) + WRITE(buf,'(a)')'-------------------------------------' + CALL printout(0) + WRITE(buf,'(a,i2,a)')'For the sort ',isrt,' :' + CALL printout(0) + IF (defbasis(isrt)%typebasis(1:7)=='complex') THEN +C ----------------------------------------------- +C Case of a representation in the complex basis : +C ----------------------------------------------- + WRITE(buf,'(a,i2,a)')'The atomic sort', isrt, + & ' is studied in the complex basis representation.' + CALL printout(0) + CALL printout(0) + ELSEIF (defbasis(isrt)%typebasis(1:5)=='cubic') THEN +C --------------------------------------------- +C Case of a representation in the cubic basis : +C --------------------------------------------- + WRITE(buf,'(a,i2,a)')'The atomic sort', isrt, + & ' is studied in the cubic basis representation.' + CALL printout(0) + CALL printout(0) + DO l=0,lmax +C The considered orbital is not included. + IF (lsort(l,isrt)==0) cycle +C Case of the s-electrons + IF (l==0) THEN + WRITE(buf,'(a,a,(F12.6))')'The basis for s-orbital ', + & 'is still',1.d0 + CALL printout(0) + ELSE +C Case of the other orbitals + WRITE(buf,'(a,i2,a,a,a)')'The basis for orbital l=',l, + & ' has the following properties :' + CALL printout(0) + WRITE(buf,'(a,i2)')' - number of ireps : ', + & reptrans(l,isrt)%nreps + CALL printout(0) + WRITE(buf,'(a,14(i2,x))')' - degree of each ireps : ', + & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) + CALL printout(0) + WRITE(buf,'(a,a,a)')'The transformation matrix is block', + & ' diagonal in the spin-space. The up/up and down/down', + & ' blocks are the same and defined as :' + CALL printout(0) +C The transformation matrix "P = " is displayed. + DO m=-l,l + WRITE(buf,'(7(2F12.6),x)') + & CONJG(reptrans(l,isrt)%transmat(-l:l,m)) + CALL printout(0) + ENDDO + CALL printout(0) + ENDIF + ENDDO + CALL printout(0) + ELSE +C --------------------------------------------------------- +C Case of a representation defined in an added input file : +C --------------------------------------------------------- + WRITE(buf,'(a,i2,a,a,a)')'The atomic sort', isrt, + & ' is studied in the basis representation', + & ' defined in the file ', + & defbasis(isrt)%sourcefile + CALL printout(0) + CALL printout(0) + DO l=0,lmax +C The considered orbital is not included. + IF (lsort(l,isrt)==0) cycle +C Case of the s-electrons + IF (l==0) THEN + WRITE(buf,'(a,a,(F12.6))')'The basis for s-orbital ', + & 'is still',1.d0 + CALL printout(0) + CALL printout(0) + ELSE +C Case of the other orbitals + WRITE(buf,'(a,i2,a)')'The basis for orbital l=',l, + & ' has the following properties :' + CALL printout(0) + WRITE(buf,'(a,i2)')' - number of ireps : ', + & reptrans(l,isrt)%nreps + CALL printout(0) + WRITE(buf,'(a,14(i2,x))')' - degree of each ireps : ', + & reptrans(l,isrt)%dreps(1:reptrans(l,isrt)%nreps) + CALL printout(0) + IF (reptrans(l,isrt)%ifmixing) THEN +C If the whole matrix description is necessary. + WRITE(buf,'(a,a)')'The transformation matrix mixes', + & ' up and down states in the spin-space' + CALL printout(0) + WRITE(buf,'(a,a)') ' and is defined as : ', + & '[ block 1 | block 2 ] with' + CALL printout(0) + WRITE(buf,'(a,a)') ' ', + & '[ block 3 | block 4 ]' + CALL printout(0) +C The transformation matrix "P = " is displayed. + WRITE(buf,'(a,i2,a)') 'For the block 1 :' + CALL printout(0) + DO m=1,2*l+1 + WRITE(buf,'(7(2F12.6),x)') + & CONJG(reptrans(l,isrt)%transmat(1:(2*l+1),m)) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') 'For the block 2 :' + CALL printout(0) + DO m=1,2*l+1 + WRITE(buf,'(7(2F12.6),x)') + & CONJG(reptrans(l,isrt)%transmat(2*l+2:2*(2*l+1),m)) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') 'For the block 3 :' + CALL printout(0) + DO m=2*l+2,2*(2*l+1) + WRITE(buf,'(7(2F12.6),x)') + & CONJG(reptrans(l,isrt)%transmat(1:(2*l+1),m)) + CALL printout(0) + ENDDO + WRITE(buf,'(a,i2,a)') 'For the block 4 :' + CALL printout(0) + DO m=2*l+2,2*(2*l+1) + WRITE(buf,'(7(2F12.6),x)') + & CONJG(reptrans(l,isrt)% + & transmat(2*l+2:2*(2*l+1),m)) + CALL printout(0) + ENDDO + ELSE +C If the matrix description can be reduced to its up/up block. + WRITE(buf,'(a,a,a)')'The transformation matrix is block', + & ' diagonal in the spin-space. The up/up and down/down', + & ' blocks are the same and defined as :' + CALL printout(0) +C The transformation matrix "P = " is displayed. + DO m=-l,l + WRITE(buf,'(7(2F12.6),x)') + & CONJG(reptrans(l,isrt)%transmat(-l:l,m)) + CALL printout(0) + ENDDO + ENDIF ! End of the ifmixing if-then-else + CALL printout(0) + ENDIF ! End of the l if-then-else + ENDDO ! End of the l loop + CALL printout(0) + ENDIF ! End of the basis description if-then-else + ENDDO ! End of the isrt loop +C + RETURN + END + + + SUBROUTINE set_harm_file(fullpath,filename) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets the fullpath variable %% +C %% Be careful, wien_path is defined in modules.f !!! %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data, ONLY : wien_path + USE prnt + IMPLICIT NONE + CHARACTER(len=*) :: filename, fullpath + CHARACTER(len=*), PARAMETER :: dir='SRC_templates' + INTEGER :: i1, i2, i, i3 +C + i1=LEN_TRIM(wien_path) + i2=LEN(dir) + i3=LEN(filename) + i=i1+i2+i3+2 + IF(LEN(fullpath) < i) THEN + WRITE(buf,'(a)') + & 'Characters required for the basis transformation ', + & ' filename is too long.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + STOP + ENDIF + fullpath=' ' + fullpath(1:i)=wien_path(1:i1)//'/'//dir//'/'//filename(1:i3) + END SUBROUTINE set_harm_file + + + diff --git a/fortran/dmftproj/set_projections.f b/fortran/dmftproj/set_projections.f new file mode 100644 index 0000000..e1c46a7 --- /dev/null +++ b/fortran/dmftproj/set_projections.f @@ -0,0 +1,749 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE set_projections(e1,e2) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets up the projection matrices in the energy %% +C %% window [e1,e2]. If proj_mode is 1 or 2 then e1 and e2 are not %% +C %% energies, but directly used as band indices. %% +C %% Two types of projection can be defined : %% +C %% - The projectors for the correlated orbital %% +C %% only. (orb = iatom,is,m) %% +C %% (They are stored in the table pr_crorb) %% +C %% - The Theta projectors for all the orbitals %% +C %% (They are stored in the table pr_orb) %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- +C + USE almblm_data + USE common_data + USE prnt + USE projections + USE reps + USE symm + IMPLICIT NONE +C + REAL(KIND=8) :: e1, e2 + INTEGER :: iorb, icrorb, ik, is, ib, m, l, lm, nbbot, nbtop + INTEGER :: isrt, n, ilo, iatom, i, imu, jatom, jorb,isym, jcrorb + LOGICAL :: included,param + COMPLEX(KIND=8), DIMENSION(:), ALLOCATABLE :: coeff + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_mat + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_matbis + COMPLEX(KIND=8), DIMENSION(:,:,:), ALLOCATABLE :: tmp_matn +C +C +C + WRITE(buf,'(a)')'Creation of the projectors...' + CALL printout(0) +C +C +C ====================================================================== +C Selection of the bands which lie in the chosen energy window [e1;e2] +C or if proj_mode = [1,2] e1 and e2 are directly used as band indices: +C ====================================================================== +C + + IF(proj_mode.gt.0) THEN +C The same number of bands are included at each k-point + kp(:,:)%included=.TRUE. +C Use directly e1 and e2 as band indices. Set to nbmin or +C nbmax if too small or too large + DO is=1,ns + DO ik=1,nk + IF(e1 > kp(ik,is)%nbmin) THEN + kp(ik,is)%nb_bot=INT(e1) + ELSE + kp(ik,is)%nb_bot=kp(ik,is)%nbmin + ENDIF + IF(e2 < kp(ik,is)%nbmax) THEN + kp(ik,is)%nb_top=INT(e2) + ELSE + kp(ik,is)%nb_top=kp(ik,is)%nbmax + ENDIF + ENDDO + ENDDO + ELSE + kp(:,:)%included=.FALSE. +C the field kp%included = boolean which is .TRUE. when there is at least one band +C at this k-point whose energy eignevalue is in the energy window. + DO is=1,ns + DO ik=1,nk + included=.FALSE. + DO ib=kp(ik,is)%nbmin,kp(ik,is)%nbmax + IF(.NOT.included.AND.kp(ik,is)%eband(ib) > e1.AND. + & kp(ik,is)%eband(ib).LE.e2) THEN +C If the energy eigenvalue E of the band ib at the k-point ik is such that e1 < E =< e2, +C then all the band with ib1>ib must be "included" in the computation and kp%nb_bot is initialized at the value ib. + included=.TRUE. + kp(ik,is)%nb_bot=ib + ELSEIF(included.AND.kp(ik,is)%eband(ib) > e2) THEN +C If the energy eigenvalue E of the current band ib at the k-point ik is such that E > e2 and all the previous +C band are "included", then the field kp%included = .TRUE. and kp%nb_top = ib-1 (the index of the previous band) + kp(ik,is)%nb_top=ib-1 + kp(ik,is)%included=.TRUE. + EXIT +C The loop on the band ib is stopped, since all the bands after ib have an energy > that of ib. + ELSEIF(ib==kp(ik,is)%nbmax.AND.kp(ik,is)%eband(ib) + & > e1.AND.kp(ik,is)%eband(ib).LE.e2) THEN +C If the energy eigenvalue E of the last band ib=kp%nbmax at the k-point ik is such that e1 < E =< e2 and all the +C previous bands are "included", then the band ib must be "included" and kp%nb_bot is initialized at the value kp%nbmax. + kp(ik,is)%nb_top=ib + kp(ik,is)%included=.TRUE. + ENDIF +C If the eigenvalues of the bands at the k-point ik are < e1 and included=.FALSE. +C of if the eigenvalues of the bands at the k-point ik are in the energy window [e1,e2] and included=.TRUE., +C nothing is done... + ENDDO ! End of the ib loop +C If all the eigenvalues of the bands at the k-point ik are not in the window, +C then kp%included remains at the value .FALSE. and the field kp%nb_top and kp%nb_bot are set to 0 + IF (.not.kp(ik,is)%included) THEN + kp(ik,is)%nb_bot=0 + kp(ik,is)%nb_top=0 + ENDIF + ENDDO ! End of the ik loop + ENDDO ! End of the is loop + ENDIF +C --------------------------------------------------------------------------------------- +C Checking of the input files if spin-polarized inputs and SO is taken into account: +C There should not be any difference between up and dn limits for each k-point. +C Printing a Warning if this is not the case. +C ------------------- +C + IF (ifSP.AND.ifSO) THEN + param=.TRUE. + DO ik=1,nk + param=param.AND.(kp(ik,1)%included.eqv.kp(ik,2)%included) + param=param.AND.(kp(ik,1)%nb_bot==kp(ik,2)%nb_bot) + param=param.AND.(kp(ik,1)%nb_top==kp(ik,2)%nb_top) + IF (.not.param) EXIT +C For a valid compoutation, the same k-points must be included for up and dn states, +C and the upper and lower limits must be the same in both case. + ENDDO + IF (.not.param) THEN + WRITE(buf,'(a,a)')'A Spin-orbit computation for this', + & ' compound is not possible with these input files.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF + ENDIF +C --------------------------------------------------------------------------------------- +C +C +C ================================================================== +C Orthonormalization of the radial wave functions for each orbital : +C ================================================================== +C +C This step is essential for setting the Theta projectors. + IF(.NOT.ALLOCATED(norm_radf)) THEN + ALLOCATE(norm_radf(norb)) +C norm_radf is a table of "ortfunc" elements, its size ranges from 1 to norb. + DO iorb=1,norb + l=orb(iorb)%l + isrt=orb(iorb)%sort + norm_radf(iorb)%n=nLO(l,isrt)+2 + n=norm_radf(iorb)%n + ALLOCATE(norm_radf(iorb)%s12(n,n,ns)) +C norm_radf%n = size of the matrix s12 +C norm_radf%s12 = matrix of size n*n (one for spin up, one for spin down, if necessary) + DO is=1,ns + norm_radf(iorb)%s12(1:n,1:n,is)=0d0 + norm_radf(iorb)%s12(1,1,is)=1d0 + norm_radf(iorb)%s12(2,2,is)=u_dot_norm(l,isrt,is) +C Initialization of the matrix norm_radf%s12 for each orbital (l,isrt). +C We remind tha it is assumed that nLO has the value 0 or 1 only !! + DO ilo=1,nLO(l,isrt) + norm_radf(iorb)%s12(2+ilo,2+ilo,is)=1d0 + norm_radf(iorb)%s12(2+ilo,1,is)= + = ovl_LO_u(ilo,l,isrt,is) + norm_radf(iorb)%s12(1,2+ilo,is)= + = ovl_LO_u(ilo,l,isrt,is) + norm_radf(iorb)%s12(2+ilo,2,is)= + = ovl_LO_udot(ilo,l,isrt,is) + norm_radf(iorb)%s12(2,2+ilo,is)= + = ovl_LO_udot(ilo,l,isrt,is) + ENDDO +C Computation of the square root of norm_radf: + CALL orthogonal_r(norm_radf(iorb)% + & s12(1:n,1:n,is),n,.FALSE.) +C the field norm_radf%s12 is finally the C matrix described in the tutorial (or in equation (3.63) in my thesis) + ENDDO + ENDDO + ENDIF +C +C ===================================== +C Creation of the projection matrices : +C ===================================== +C + IF(.NOT.ALLOCATED(pr_orb)) THEN + ALLOCATE(pr_crorb(ncrorb,nk,ns)) + ALLOCATE(pr_orb(norb,nk,ns)) + ENDIF +C pr_crorb = table of "proj_mat" elements for the correlated orbitals (size from 1 to ncrorb, from 1 to nk, from 1 to ns) +C pr_orb = table of "proj_mat_n" elements for all the orbitals (size from 1 to norb, from 1 to nk, from 1 to ns) + DO is=1,ns + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE +C ------------------------------------------------ +C Wannier Projectors for the correlated orbitals : +C ------------------------------------------------ + DO icrorb=1,ncrorb + l=crorb(icrorb)%l + iatom=crorb(icrorb)%atom + isrt=crorb(icrorb)%sort +C Case of l=0 : +C ------------- + IF (l==0) THEN + IF(ALLOCATED(pr_crorb(icrorb,ik,is)%mat)) THEN + DEALLOCATE(pr_crorb(icrorb,ik,is)%mat) + ENDIF + ALLOCATE(pr_crorb(icrorb,ik,is)% + % mat(1,kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) +C pr_crorb%mat = the projection matrix with 1 line and (nb_top-nb_bot) columns + DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top + pr_crorb(icrorb,ik,is)%mat(1,ib)= + = kp(ik,is)%Alm(1,iatom,ib) + DO ilo=1,nLO(l,isrt) + pr_crorb(icrorb,ik,is)%mat(1,ib)= + = pr_crorb(icrorb,ik,is)%mat(1,ib)+ + + kp(ik,is)%Clm(ilo,1,iatom,ib)* + * ovl_LO_u(ilo,l,isrt,is) + ENDDO ! End of the ilo loop + ENDDO ! End of the ib loop +C prcrorb(icrorb,ik,is)%mat(1,ib)= = Alm+Clm*ovl_LO_u +C +C Case of any other l : +C --------------------- + ELSE + lm=l*l +C Since the correlated orbital is the l orbital, the elements range from l*l+1 to (l+1)^2 +C the sum from 0 to (l-1) of m (from -l to l) is l^2. + IF(ALLOCATED(pr_crorb(icrorb,ik,is)%mat)) THEN + DEALLOCATE(pr_crorb(icrorb,ik,is)%mat) + ENDIF + ALLOCATE(pr_crorb(icrorb,ik,is)% + % mat(-l:l,kp(ik,is)%nb_bot:kp(ik,is)%nb_top)) +C pr_crorb%mat = the projection matrix with (2*l+1) lines and (nb_top-nb_bot) columns + DO m=-l,l + lm=lm+1 + DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top + pr_crorb(icrorb,ik,is)%mat(m,ib)= + = kp(ik,is)%Alm(lm,iatom,ib) + DO ilo=1,nLO(l,isrt) + pr_crorb(icrorb,ik,is)%mat(m,ib)= + = pr_crorb(icrorb,ik,is)%mat(m,ib)+ + + kp(ik,is)%Clm(ilo,lm,iatom,ib)* + * ovl_LO_u(ilo,l,isrt,is) + ENDDO ! End of the ilo loop + ENDDO ! End of the ib loop + ENDDO ! End of the m loop +C prcrorb(icrorb,ik,is)%mat(m,ib)= = Alm+Clm*ovl_LO_u + ENDIF ! End of the if l=0 if-then-else + ENDDO ! End of the icrorb loop +C +C --------------------------------------- +C Theta Projectors for all the orbitals : +C --------------------------------------- + DO iorb=1,norb + l=orb(iorb)%l + n=norm_radf(iorb)%n + iatom=orb(iorb)%atom +C Case of l=0 : +C ------------- + IF (l==0) THEN + IF(ALLOCATED(pr_orb(iorb,ik,is)%matn)) THEN + DEALLOCATE(pr_orb(iorb,ik,is)%matn) + ENDIF + ALLOCATE(pr_orb(iorb,ik,is)% + % matn(1,kp(ik,is)%nb_bot:kp(ik,is)%nb_top,n)) + ALLOCATE(coeff(1:n)) +C pr_orb%matn = the projection matrix with 1 line and (nb_top-nb_bot) columns for the n (size of s12) coefficients +C coeff = table of size n which will contain the decomposition of the Bloch state |psi_ik,ib,is> +C as in equation 22 of the tutorial (Alm, Blm, and Clm ) + DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top + coeff(1)=kp(ik,is)%Alm(1,iatom,ib) + coeff(2)=kp(ik,is)%Blm(1,iatom,ib) + coeff(3:n)=kp(ik,is)%Clm(1:n-2,1,iatom,ib) + coeff=MATMUL(coeff,norm_radf(iorb)%s12(1:n,1:n,is)) +C coeff = coefficients c_(j,lm) of the decomposition of the state |psi> in the orthogonalized basis |phi_j> +C as defined in the tutorial (equation 25) + pr_orb(iorb,ik,is)%matn(1,ib,1:n)=coeff(1:n) + ENDDO + DEALLOCATE(coeff) +C pr_orb(iorb,ik,is)%matn(m,ib,1:n) is then the Theta projector as defined in equation 26 of the tutorial. +C +C Case of any other l : +C --------------------- + ELSE + lm=l*l +C As the orbital is the l orbital, the elements range from l*l+1 to (l+1)^2 +C the sum from 0 to (l-1) of m (from -l to l) is l^2. + IF(ALLOCATED(pr_orb(iorb,ik,is)%matn)) THEN + DEALLOCATE(pr_orb(iorb,ik,is)%matn) + ENDIF + ALLOCATE(pr_orb(iorb,ik,is)% + % matn(-l:l,kp(ik,is)%nb_bot:kp(ik,is)%nb_top,n)) + ALLOCATE(coeff(1:n)) +C pr_orb%matn = the projection matrix with (2*l+1) lines and (nb_top-nb_bot) columns for the n (size of s12) coefficients +C coeff = table of size n which will contain the decomposition of the Bloch state |psi_ik,ib,is> +C as in equation 22 of the tutorial (Alm, Blm, and Clm ) + DO m=-l,l + lm=lm+1 + DO ib=kp(ik,is)%nb_bot,kp(ik,is)%nb_top + coeff(1)=kp(ik,is)%Alm(lm,iatom,ib) + coeff(2)=kp(ik,is)%Blm(lm,iatom,ib) + coeff(3:n)=kp(ik,is)%Clm(1:n-2,lm,iatom,ib) + coeff=MATMUL(coeff, + & norm_radf(iorb)%s12(1:n,1:n,is)) +C coeff = coefficients c_(j,lm) of the decomposition of the state |psi> in the orthogonalized basis |phi_j> +C as defined in the tutorial (equation 25) + pr_orb(iorb,ik,is)%matn(m,ib,1:n)=coeff(1:n) + ENDDO + ENDDO ! End of the m loop + DEALLOCATE(coeff) +C pr_orb(iorb,ik,is)%matn(m,ib,1:n) is then the Theta projector as defined in equation 26 of the tutorial. + ENDIF ! End of the if l=0 if-then-else + ENDDO ! End of the iorb loop +C + ENDDO ! End of the loop on ik + ENDDO ! End of the loop on is +C +C +C ========================================================================== +C Multiplication of the projection matrices by the local rotation matrices : +C ========================================================================== +C +C ------------------------------------------------ +C Wannier Projectors for the correlated orbitals : +C ------------------------------------------------ +C + DO jcrorb=1,ncrorb + jatom=crorb(jcrorb)%atom + isrt=crorb(jcrorb)%sort + l=crorb(jcrorb)%l +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s orbital, no multiplication is needed, since the matrix representation of any rotation +C (and thus Rloc) is always 1. + DO ik=1,nk + DO is=1,ns +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE + nbtop=kp(ik,is)%nb_top + nbbot=kp(ik,is)%nb_bot + IF(ALLOCATED(pr_crorb(jcrorb,ik,is)%mat_rep)) THEN + DEALLOCATE(pr_crorb(jcrorb,ik,is)%mat_rep) + ENDIF + ALLOCATE(pr_crorb(jcrorb,ik,is) + & %mat_rep(1,nbbot:nbtop)) + pr_crorb(jcrorb,ik,is)%mat_rep(1,nbbot:nbtop)= + = pr_crorb(jcrorb,ik,is)%mat(1,nbbot:nbtop) +C As a result, prcrorb%matrep = prcrorb%mat + ENDDO + ENDDO +C +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) +C --------------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) +C Moreover ifSP=.TRUE. (since ifSO => ifSP in this version) +C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,1)%included) CYCLE + nbbot=kp(ik,1)%nb_bot + nbtop=kp(ik,1)%nb_top +C In this case, the projection matrix will be stored in prcrorb%matrep with is=1. + IF(ALLOCATED(pr_crorb(jcrorb,ik,1)%mat_rep)) THEN + DEALLOCATE(pr_crorb(jcrorb,ik,1)%mat_rep) + ENDIF + ALLOCATE(pr_crorb(jcrorb,ik,1)% + % mat_rep(1:2*(2*l+1),nbbot:nbtop)) +C The element prcrorb%matrep for is=2 is set to 0, since all the matrix will be stored in the matrix matrep for is=1 + IF(.not.ALLOCATED(pr_crorb(jcrorb,ik,2)%mat_rep)) THEN + ALLOCATE(pr_crorb(jcrorb,ik,2)%mat_rep(1,1)) + pr_crorb(jcrorb,ik,2)%mat_rep(1,1)=0.d0 + ENDIF +C Creation of a matrix tmp_mat which "concatenates" up and dn parts of pr_crorb. + ALLOCATE(tmp_mat(1:2*(2*l+1),nbbot:nbtop)) + tmp_mat(1:(2*l+1),nbbot:nbtop)= + = pr_crorb(jcrorb,ik,1)%mat(-l:l,nbbot:nbtop) +C The first (2l+1) lines are the spin-up part of the projection matrix prcrorb%mat. +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if there is no dn part of pr_orb. +C ------------------------- +C + IF(.not.ifSP) THEN + WRITE(buf,'(a,a,i2,a)')'The projectors on ', + & 'the dn states are required for isrt = ',isrt, + & ' but there is no spin-polarized input files.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C --------------------------------------------------------------------------------------- +C +C The last (2l+1) lines are the spin-dn part of the projection matrix prcrorb%mat. + tmp_mat((2*l+2):2*(2*l+1),nbbot:nbtop)= + = pr_crorb(jcrorb,ik,2)%mat(-l:l,nbbot:nbtop) +C +C Multiplication by the local rotation matrix ; Up and dn parts are treated independently +C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame +C but without taking into account the spinor-rotation matrix. + ALLOCATE(tmp_matbis(1:(2*l+1),nbbot:nbtop)) + tmp_matbis(1:(2*l+1),nbbot:nbtop)= + = tmp_mat(1:(2*l+1),nbbot:nbtop) + CALL rot_projectmat(tmp_matbis, + & l,nbbot,nbtop,jatom,isrt) + tmp_mat(1:(2*l+1),nbbot:nbtop)= + = tmp_matbis(1:(2*l+1),nbbot:nbtop) + tmp_matbis(1:(2*l+1),nbbot:nbtop)= + = tmp_mat(2*l+2:2*(2*l+1),nbbot:nbtop) + CALL rot_projectmat(tmp_matbis, + & l,nbbot,nbtop,jatom,isrt) + tmp_mat(2*l+2:2*(2*l+1),nbbot:nbtop)= + = tmp_matbis(1:(2*l+1),nbbot:nbtop) + DEALLOCATE(tmp_matbis) +C +C Putting pr_crorb in the desired basis associated to (l,isrt) +C + pr_crorb(jcrorb,ik,1)%mat_rep(1:2*(2*l+1),nbbot:nbtop)= + = MATMUL(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1)), + & tmp_mat(1:2*(2*l+1),nbbot:nbtop)) +C pr_crorb%mat_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} + DEALLOCATE(tmp_mat) + ENDDO ! End of the ik loop +C +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) +C -------------------------------------------------------------------------------------------- + ELSE + DO ik=1,nk + DO is=1,ns +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE +C In this case, nb_top(up) and nb_bot(up) can differ from nb_top(dn) and nb_bot(dn) + nbbot=kp(ik,is)%nb_bot + nbtop=kp(ik,is)%nb_top + IF(ALLOCATED(pr_crorb(jcrorb,ik,is)%mat_rep)) THEN + DEALLOCATE(pr_crorb(jcrorb,ik,is)%mat_rep) + ENDIF + ALLOCATE(pr_crorb(jcrorb,ik,is) + & %mat_rep(-l:l,nbbot:nbtop)) + pr_crorb(jcrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop)= + = pr_crorb(jcrorb,ik,is)%mat(-l:l,nbbot:nbtop) +C +C Multiplication by the local rotation matrix +C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame + CALL rot_projectmat(pr_crorb(jcrorb,ik,is) + & %mat_rep(-l:l,nbbot:nbtop),l,nbbot,nbtop,jatom,isrt) +C +C Putting pr_crorb in the desired basis associated to (l,isrt) + pr_crorb(jcrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop)= + = MATMUL(reptrans(l,isrt)%transmat(-l:l,-l:l), + & pr_crorb(jcrorb,ik,is)%mat_rep(-l:l,nbbot:nbtop)) +C pr_crorb%mat_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} + ENDDO ! End of the is loop + ENDDO ! End of the ik loop + ENDIF ! End of the if mixing if-then-else + ENDDO ! End of the jcrorb loop +C +C --------------------------------------- +C Theta Projectors for all the orbitals : +C --------------------------------------- +C + DO jorb=1,norb + jatom=orb(jorb)%atom + isrt=orb(jorb)%sort + n=norm_radf(jorb)%n + l=orb(jorb)%l +C +C The case l=0 is a particular case of "non-mixing" basis. +C -------------------------------------------------------- + IF (l==0) THEN +C For the s orbital, no multiplication is needed, since the matrix representation of any rotation +C (and therefore Rloc) is always 1. + DO ik=1,nk + DO is=1,ns +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE + nbtop=kp(ik,is)%nb_top + nbbot=kp(ik,is)%nb_bot + IF(ALLOCATED(pr_orb(jorb,ik,is)%matn_rep)) THEN + DEALLOCATE(pr_orb(jorb,ik,is)%matn_rep) + ENDIF + ALLOCATE(pr_orb(jorb,ik,is)%matn_rep + & (1,nbbot:nbtop,1:n)) + pr_orb(jorb,ik,is)%matn_rep(1,nbbot:nbtop,1:n)= + = pr_orb(jorb,ik,is)%matn(1,nbbot:nbtop,1:n) +C As a result, prorb%matnrep = prorb%matn + ENDDO + ENDDO +C +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) +C --------------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C If this option is used, then ifSO=.TRUE. (restriction in set_ang_trans.f) +C Moreover ifSP=.TRUE. (since ifSO => ifSP) +C As a result, we know that nb_bot(up)=nb_bot(dn) and nb_top(up)=nb_top(dn) + DO ik=1,nk +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,1)%included) CYCLE + nbbot=kp(ik,1)%nb_bot + nbtop=kp(ik,1)%nb_top +C In this case, the projection matrix will be stored in prorb%matnrep with is=1. + IF(ALLOCATED(pr_orb(jorb,ik,1)%matn_rep)) THEN + DEALLOCATE(pr_orb(jorb,ik,1)%matn_rep) + ENDIF + ALLOCATE(pr_orb(jorb,ik,1)% + % matn_rep(1:2*(2*l+1),nbbot:nbtop,1:n)) +C The element prorb%matnrep for is=2 is set to 0, since all the matrix will be stored in the matrix matnrep for is=1 + IF(.not.ALLOCATED(pr_orb(jorb,ik,2)%matn_rep)) THEN + ALLOCATE(pr_orb(jorb,ik,2)%matn_rep(1,1,1)) + pr_orb(jorb,ik,2)%matn_rep(1,1,1)=0.d0 + ENDIF +C Creation of a matrix tmp_matn which "concatenates" up and dn parts of pr_orb + ALLOCATE(tmp_matn(1:2*(2*l+1),nbbot:nbtop,1:n)) + tmp_matn(1:(2*l+1),nbbot:nbtop,1:n)= + = pr_orb(jorb,ik,1)%matn(-l:l,nbbot:nbtop,1:n) +C The first (2l+1) lines are the spin-up part of the projection matrix prorb%matn. +C +C --------------------------------------------------------------------------------------- +C Interruption of the prgm if there is no dn part of pr_orb. +C ------------------------- +C + IF(.not.ifSP) THEN + WRITE(buf,'(a,a,i2,a)')'The projectors on ', + & 'the down states are required for isrt = ',isrt, + & ' but there is no spin-polarized input files.' + CALL printout(0) + WRITE(buf,'(a)')'END OF THE PRGM' + CALL printout(0) + STOP + ENDIF +C --------------------------------------------------------------------------------------- +C +C The last (2l+1) lines are the spin-dn part of the projection matrix prorb%matn. + tmp_matn(2*l+2:2*(2*l+1),nbbot:nbtop,1:n)= + = pr_orb(jorb,ik,2)%matn(-l:l,nbbot:nbtop,1:n) +C + DO i=1,n +C Multiplication by the local rotation matrix ; Up and dn parts are treated independently +C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame +C but without taking into account the spinor-rotation matrix. + ALLOCATE(tmp_matbis(1:(2*l+1),nbbot:nbtop)) + tmp_matbis(1:(2*l+1),nbbot:nbtop)= + = tmp_matn(1:(2*l+1),nbbot:nbtop,i) + CALL rot_projectmat(tmp_matbis, + & l,nbbot,nbtop,jatom,isrt) + tmp_matn(1:(2*l+1),nbbot:nbtop,i)= + = tmp_matbis(1:(2*l+1),nbbot:nbtop) + tmp_matbis(1:(2*l+1),nbbot:nbtop)= + = tmp_matn(2*l+2:2*(2*l+1),nbbot:nbtop,i) + CALL rot_projectmat(tmp_matbis, + & l,nbbot,nbtop,jatom,isrt) + tmp_matn(2*l+2:2*(2*l+1),nbbot:nbtop,i)= + = tmp_matbis(1:(2*l+1),nbbot:nbtop) + DEALLOCATE(tmp_matbis) +C Putting pr_orb in the desired basis associated to (l,isrt) + pr_orb(jorb,ik,1)%matn_rep + & (1:2*(2*l+1),nbbot:nbtop,i)= + = MATMUL(reptrans(l,isrt)% + & transmat(1:2*(2*l+1),1:2*(2*l+1)), + & tmp_matn(1:2*(2*l+1),nbbot:nbtop,i)) +C pr_orb%matn_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} + ENDDO ! End of the i-loop + DEALLOCATE(tmp_matn) + ENDDO ! End of the ik loop +C +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) +C -------------------------------------------------------------------------------------------- + ELSE + DO ik=1,nk + DO is=1,ns +C Only the k-points with inlcuded bands are considered for the projectors. + IF(.NOT.kp(ik,is)%included) CYCLE +C In this case, nb_top(up) and nb_bot(up) can differ from nb_top(dn) and nb_bot(dn) + nbbot=kp(ik,is)%nb_bot + nbtop=kp(ik,is)%nb_top + IF(ALLOCATED(pr_orb(jorb,ik,is)%matn_rep)) THEN + DEALLOCATE(pr_orb(jorb,ik,is)%matn_rep) + ENDIF + ALLOCATE(pr_orb(jorb,ik,is)% + & matn_rep(-l:l,nbbot:nbtop,1:n)) + pr_orb(jorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,1:n)= + = pr_orb(jorb,ik,is)%matn(-l:l,nbbot:nbtop,1:n) +C + DO i=1,n +C Multiplication by the local rotation matrix +C since in lapw2 (-alm) the coefficients Alm, Blm and Clm were calculated in the local frame + CALL rot_projectmat(pr_orb(jorb,ik,is) + & %matn_rep(-l:l,nbbot:nbtop,i), + & l,nbbot,nbtop,jatom,isrt) +C Putting pr_orb in the desired basis associated to (l,isrt) + pr_orb(jorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,i)= + = MATMUL(reptrans(l,isrt)%transmat(-l:l,-l:l), + & pr_orb(jorb,ik,is)%matn_rep(-l:l,nbbot:nbtop,i)) +C pr_orb%matn_rep = proj_{new_i} = reptrans*proj_{lm} = *proj_{lm} + ENDDO ! End of the i loop + ENDDO ! End of the is loop + ENDDO ! End of the ik loop + ENDIF ! End of the if mixing if-then-else + ENDDO ! End of the jorb loop +C +C +C ============================================================================= +C Printing the projectors with k-points 1 and nk in the file fort.18 for test : +C ============================================================================= + DO icrorb=1,ncrorb + iatom=crorb(icrorb)%atom + isrt=crorb(icrorb)%sort + l=crorb(icrorb)%l + WRITE(18,'()') + WRITE(18,'(a,i4)') 'icrorb = ', icrorb + WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l + IF (l==0) THEN + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ELSEIF (reptrans(l,isrt)%ifmixing) THEN + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ELSE + WRITE(18,'(a,i4)') 'ik = ', 1 + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,1,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,1,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_crorb(icrorb,nk,1)%mat_rep(:,ib) + IF (ifSP) + & WRITE(18,*) pr_crorb(icrorb,nk,2)%mat_rep(:,ib) + WRITE(18,'()') + ENDDO + ENDIF + ENDDO +C + DO iorb=1,norb + iatom=orb(iorb)%atom + isrt=orb(iorb)%sort + l=orb(iorb)%l + n=norm_radf(iorb)%n + WRITE(18,'()') + WRITE(18,'(a,i4)') 'iorb = ', iorb + WRITE(18,'(a,i4,a,i4)') 'isrt = ', isrt, ' l = ', l + IF (l==0) THEN + WRITE(18,'(a,i4)') 'ik = ', 1 + DO i=1,n + WRITE(18,'(i4)') i + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_orb(iorb,1,1)%matn_rep(:,ib,i) + IF (ifSP) + & WRITE(18,*) pr_orb(iorb,1,2)%matn_rep(:,ib,i) + WRITE(18,'()') + ENDDO + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO i=1,n + WRITE(18,'(i4)') i + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_orb(iorb,nk,1)%matn_rep(:,ib,i) + IF (ifSP) + & WRITE(18,*) pr_orb(iorb,nk,2)%matn_rep(:,ib,i) + WRITE(18,'()') + ENDDO + ENDDO + ELSEIF(reptrans(l,isrt)%ifmixing) THEN + DO i=1,n + WRITE(18,'(i4)') i + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_orb(iorb,1,1)%matn_rep(:,ib,i) + WRITE(18,'()') + ENDDO + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO i=1,n + WRITE(18,'(i4)') i + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_orb(iorb,nk,1)%matn_rep(:,ib,i) + WRITE(18,'()') + ENDDO + ENDDO + ELSE + DO i=1,n + WRITE(18,'(i4)') i + DO ib = kp(1,1)%nb_bot,kp(1,1)%nb_top + WRITE(18,*) pr_orb(iorb,1,1)%matn_rep(:,ib,i) + IF (ifSP) + & WRITE(18,*) pr_orb(iorb,1,2)%matn_rep(:,ib,i) + WRITE(18,'()') + ENDDO + ENDDO + WRITE(18,'(a,i4)') 'ik = ', nk + DO i=1,n + WRITE(18,'(i4)') i + DO ib = kp(nk,1)%nb_bot,kp(nk,1)%nb_top + WRITE(18,*) pr_orb(iorb,nk,1)%matn_rep(:,ib,i) + IF (ifSP) + & WRITE(18,*) pr_orb(iorb,nk,2)%matn_rep(:,ib,i) + WRITE(18,'()') + ENDDO + ENDDO + ENDIF + ENDDO +C + RETURN + END + diff --git a/fortran/dmftproj/set_rotloc.f b/fortran/dmftproj/set_rotloc.f new file mode 100644 index 0000000..d2cbec1 --- /dev/null +++ b/fortran/dmftproj/set_rotloc.f @@ -0,0 +1,368 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE set_rotloc +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets up the Global->local coordinates %% +C %% rotational matrices for each atom of the system. %% +C %% These matrices will be used to create the projectors. %% +C %% (They are the SR matrices defined in the tutorial file.) %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data + USE reps + USE symm + USE prnt + IMPLICIT NONE + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_rot, spinrot + REAL(KIND=8) :: alpha, beta, gama, factor + INTEGER :: iatom, jatom, imu, isrt + INTEGER :: is, is1, isym, l, lm + INTEGER :: ind1, ind2, inof1, inof2 + COMPLEX(KIND=8) :: ephase +C +C ==================================================== +C Multiplication by an S matrix for equivalent sites : +C ==================================================== +C Up to now, rotloc is the rotloc matrix (from Global to local coordinates rotation : (rotloc)_ij = ) +C The matrix S to go from the representative atom of the sort to another one must be introduced. That's what is done here-after. + DO isrt=1,nsort + iatom=SUM(nmult(0:isrt-1))+1 + DO imu=1,nmult(isrt) + jatom=iatom+imu-1 + DO isym=1,nsym +C If the symmetry operation isym transforms the representative atom iatom in the jatom, +C the matrix rotloc is multiplied by the corresponding srot matrix, for each orbital number l. +C if R[isym](iatom) = jatom, rotloc is multiplied by R[isym] and Rloc is finally R[isym] X rotloc = + IF(srot(isym)%perm(iatom)==jatom) THEN + WRITE(17,*) ' For jatom = ',jatom, ', isym =', isym + rotloc(jatom)%srotnum=isym +C Calculation of krotm and iprop. + rotloc(jatom)%krotm(1:3,1:3)= + = MATMUL(srot(isym)%krotm(1:3,1:3), + & rotloc(jatom)%krotm(1:3,1:3)) + rotloc(jatom)%iprop=rotloc(jatom)%iprop* + * srot(isym)%iprop +C Evaluation of the Euler angles of the final operation Rloc + CALL euler(TRANSPOSE(rotloc(jatom)%krotm(1:3,1:3)), + & alpha,beta,gama) +C According to Wien convention, euler takes in argument the transpose +C of the matrix rotloc(jatom)%krotm to give a,b anc c of rotloc(jatom). + rotloc(jatom)%a=alpha + rotloc(jatom)%b=beta + rotloc(jatom)%g=gama +C +C ============================================================================================================= +C Calculation of the rotational matrices and evaluation of the fields timeinv and phase for the Rloc matrices : +C ============================================================================================================= + IF(ifSP.AND.ifSO) THEN +C No time reversal operation is applied to rotloc (alone). If a time reversal operation must be applied, +C it comes from the symmetry operation R[isym]. That is why the field timeinv is the same as the one from srot. + rotloc(jatom)%timeinv=srot(isym)%timeinv + rotloc(jatom)%phase=0.d0 + DO l=1,lmax + ALLOCATE(tmp_rot(1:2*(2*l+1),1:2*(2*l+1))) + tmp_rot=0.d0 +C Whatever the value of beta (0 or Pi), the spinor rotation matrix of isym is block-diagonal. +C because the time-reversal operation have been applied if necessary. + factor=srot(isym)%phase/2.d0 + ephase=EXP(CMPLX(0.d0,factor)) +C We remind that the field phase is (g-a) if beta=Pi. As a result, ephase = exp(+i(g-a)/2) = -exp(+i(alpha-gamma)/2) +C We remind that the field phase is (a+g) if beta=0. As a result, ephase = exp(+i(a+g)/2)=-exp(-i(alpha+gamma)/2) +C in good agreement with Wien conventions for the definition of this phase factor. +C Up/up block : + tmp_rot(1:2*l+1,1:2*l+1)=ephase* + & srot(isym)%rotl(-l:l,-l:l,l) +C Dn/dn block : + ephase=CONJG(ephase) +C now, ephase = exp(+i(a-g)/2) = -exp(-i(alpha-gamma)/2) if beta=Pi +C now, ephase = exp(-i(a+g)/2) = -exp(+i(alpha+gamma)/2) if beta=0 + tmp_rot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + & ephase*srot(isym)%rotl(-l:l,-l:l,l) + IF (rotloc(jatom)%timeinv) THEN +C In this case, the time reversal operator was applied to srot. + rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)= + & MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)),CONJG( + & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l))) +C rotloc(jatom)%rotl now contains D(Rloc) = D(R[isym])*transpose[D(rotloc)]. + ELSE +C In this case, no time reversal operator was applied to srot. + rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)= + & MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), + & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) +C rotloc(jatom)%rotl now contains D(Rloc) = D(R[isym])*D(rotloc). + ENDIF + DEALLOCATE(tmp_rot) + ENDDO + ELSE +C Calculation of the rotational matrices associated to Rloc + ALLOCATE(tmp_rot(1:2*lmax+1,1:2*lmax+1)) + DO l=1,lmax +C Use of the subroutine dmat to compute the rotational matrix +C associated to the Rloc operation in a (2*l+1) space : + tmp_rot=0.d0 + CALL dmat(l,rotloc(jatom)%a,rotloc(jatom)%b, + & rotloc(jatom)%g, + & REAL(rotloc(jatom)%iprop,KIND=8),tmp_rot,2*lmax+1) + rotloc(jatom)%rotl(-l:l,-l:l,l)= + = tmp_rot(1:2*l+1,1:2*l+1) +C rotloc(jatom)%rotl = table of the rotational matrices of the symmetry operation +C for the different l orbital (from 1 to lmax), in the usual complex basis : dmat = D(R[isym])_l +C rotloc(jatom)%rotl = D(Rloc[jatom])_{lm} + ENDDO + DEALLOCATE(tmp_rot) + ENDIF ! End of the "ifSO-ifSP" if-then-else +C + EXIT +C Only one symmetry operation is necessary to be applied to R to get the complete rotloc matrix. +C This EXIT enables to leave the loop as soon as a symmetry operation which transforms the representative atom in jatom is found. + ENDIF ! End of the "perm" if-then-else + ENDDO ! End of the isym loop +C +C +C =========================================================== +C Computation of the rotational matrices in each sort basis : +C =========================================================== + ALLOCATE(rotloc(jatom)%rotrep(lmax)) +C +C Initialization of the rotloc(jatom)%rotrep field = D(Rloc)_{new_i} +C This field is a table of size lmax which contains the rotloc matrices +C in the representation basis associated to each included orbital of the jatom. + DO l=1,lmax + ALLOCATE(rotloc(jatom)%rotrep(l)%mat(1,1)) + rotloc(jatom)%rotrep(l)%mat(1,1)=0.d0 + ENDDO +C +C Computation of the elements 'mat' in rotloc(jatom)%rotrep(l) + DO l=1,lmax +C The considered orbital is not included, hence no computation + IF (lsort(l,isrt)==0) cycle +C The considered orbital is included + IF (ifSP.AND.ifSO) THEN +C In this case, the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) +C -------------------------------------------------------------------------------------------------------------- + DEALLOCATE(rotloc(jatom)%rotrep(l)%mat) + ALLOCATE(rotloc(jatom)%rotrep(l)%mat + & (1:2*(2*l+1),1:2*(2*l+1))) + ALLOCATE(tmp_rot(1:2*(2*l+1),1:2*(2*l+1))) +C Computation of rotloc(jatom)%rotrep(l)%mat + IF (reptrans(l,isrt)%ifmixing) THEN +C In this case, the basis representation requires a complete spinor rotation approach too. + IF(rotloc(jatom)%timeinv) THEN + tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( + & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), + & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) + rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1)))) +C Since the operation is antilinear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*conjugate(inverse(reptrans)) +C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} []^* +C which is exactly the expression of the spinor rotation matrix in the new basis. + ELSE + tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( + & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), + & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) + rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1))))) +C Since the operation is linear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*inverse(reptrans) +C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} +C which is exactly the expression of the spinor rotation matrix in the new basis. + ENDIF + ELSE +C In this case, the basis representation is reduced to the up/up block and must be extended. + ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) + spinrot(1:2*(2*l+1),1:2*(2*l+1))=0.d0 + spinrot(1:2*l+1,1:2*l+1)= + & reptrans(l,isrt)%transmat(-l:l,-l:l) + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + & reptrans(l,isrt)%transmat(-l:l,-l:l) + IF(rotloc(jatom)%timeinv) THEN + tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( + & spinrot(1:2*(2*l+1),1:2*(2*l+1)), + & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) + rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(spinrot(1:2*(2*l+1),1:2*(2*l+1)))) +C Since the operation is antilinear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*conjugate(inverse(reptrans)) +C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} []^* +C which is exactly the expression of the spinor rotation matrix in the new basis. + ELSE + tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( + & spinrot(1:2*(2*l+1),1:2*(2*l+1)), + & rotloc(jatom)%rotl(1:2*(2*l+1),1:2*(2*l+1),l)) + rotloc(jatom)%rotrep(l)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(CONJG(spinrot(1:2*(2*l+1),1:2*(2*l+1))))) +C Since the operation is linear, the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*spinrot(l)*inverse(reptrans) +C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} +C which is exactly the expression of the spinor rotation matrix in the new basis. + ENDIF + DEALLOCATE(spinrot) + ENDIF ! End of the if mixing if-then-else + DEALLOCATE(tmp_rot) +C + ELSE +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) +C -------------------------------------------------------------------------------------------- + DEALLOCATE(rotloc(jatom)%rotrep(l)%mat) + ALLOCATE(rotloc(jatom)%rotrep(l)%mat(-l:l,-l:l)) + ALLOCATE(tmp_rot(-l:l,-l:l)) +C Computation of rotloc(jatom)%rotrep(l)%mat + tmp_rot(-l:l,-l:l)=MATMUL( + & reptrans(l,isrt)%transmat(-l:l,-l:l), + & rotloc(jatom)%rotl(-l:l,-l:l,l)) + rotloc(jatom)%rotrep(l)%mat(-l:l,-l:l)= + = MATMUL(tmp_rot(-l:l,-l:l), + & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l)))) +C the field rotloc(jatom)%rotrep(l)%mat = (reptrans)*rotl*inverse(reptrans) +C rotloc(jatom)%rotrep(l)%mat = D(Rloc)_{new_i} = D(Rloc)_{lm} +C which is exactly the expression of the rotation matrix for the up/up block in the new basis. + DEALLOCATE(tmp_rot) + ENDIF + ENDDO ! End of the l loop + ENDDO ! End of the jatom loop + ENDDO ! End of the isrt loop +C + RETURN + END + + + SUBROUTINE euler(Rot,a,b,c) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine calculates the Euler angles a, b and c of Rot. %% +C %% The result are stored in a,b,c. (same as in SRC_lapwdm/euler.f) %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C + IMPLICIT NONE + REAL(KIND=8) :: a,aa,b,bb,c,cc,zero,pi,y_norm,dot + REAL(KIND=8), DIMENSION(3,3) :: Rot, Rot_temp + REAL(KIND=8), DIMENSION(3) :: z,zz,y,yy,yyy,pom,x,xx + INTEGER :: i,j +C Definition of the constants + zero=0d0 + pi=ACOS(-1d0) +C Definition of Rot_temp=Id + DO i=1,3 + DO j=1,3 + Rot_temp(i,j)=0 + IF (i.EQ.j) Rot_temp(i,i)=1 + ENDDO + ENDDO +C Initialization of y=e_y, z=e_z, yyy and zz + DO j=1,3 + y(j)=Rot_temp(j,2) + yyy(j)=Rot(j,2) + z(j)=Rot_temp(j,3) + zz(j)=Rot(j,3) + ENDDO +C Calculation of yy + CALL vecprod(z,zz,yy) + y_norm=DSQRT(dot(yy,yy)) + IF (y_norm.lt.1d-10) THEN +C If yy=0, this implies that b is zero or pi + IF (ABS(dot(y,yyy)).gt.1d0) THEN + aa=dot(y,yyy)/ABS(dot(y,yyy)) + a=ACOS(aa) + ELSE + a=ACOS(dot(y,yyy)) + ENDIF +C + IF (dot(z,zz).gt.zero) THEN + c=zero + b=zero + IF (yyy(1).gt.zero) a=2*pi-a + ELSE + c=a + a=zero + b=pi + IF (yyy(1).lt.zero) c=2*pi-c + ENDIF + ELSE +C If yy is not 0, then b belongs to ]0,pi[ + DO j=1,3 + yy(j)=yy(j)/y_norm + ENDDO +C + aa=dot(y,yy) + bb=dot(z,zz) + cc=dot(yy,yyy) + IF (ABS(aa).gt.1d0) aa=aa/ABS(aa) + IF (ABS(bb).gt.1d0) bb=bb/ABS(bb) + IF (ABS(cc).gt.1d0) cc=cc/ABS(cc) + b=ACOS(bb) + a=ACOS(aa) + c=ACOS(cc) + IF (yy(1).gt.zero) a=2*pi-a + CALL vecprod(yy,yyy,pom) + IF (dot(pom,zz).lt.zero) c=2*pi-c + ENDIF +C + END + + + SUBROUTINE vecprod(a,b,c) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine calculates the vector product of a and b. %% +C %% The result is stored in c. (same as in SRC_lapwdm/euler.f) %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C + IMPLICIT NONE + REAL(KIND=8), DIMENSION(3) :: a,b,c +C + c(1)=a(2)*b(3)-a(3)*b(2) + c(2)=a(3)*b(1)-a(1)*b(3) + c(3)=a(1)*b(2)-a(2)*b(1) +C + END + + REAL(KIND=8) FUNCTION dot(a,b) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This function calculates the scalar product of a and b. %% +C %% The result is stored in dot. (same as in SRC_lapwdm/euler.f) %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C + IMPLICIT NONE + REAL(KIND=8) :: a,b + INTEGER :: i + dimension a(3),b(3) + dot=0 + DO i=1,3 + dot=dot+a(i)*b(i) + ENDDO +C + END + + + diff --git a/fortran/dmftproj/setsym.f b/fortran/dmftproj/setsym.f new file mode 100644 index 0000000..877a200 --- /dev/null +++ b/fortran/dmftproj/setsym.f @@ -0,0 +1,886 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE setsym +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets up the symmetry matrices of the structure %% +C %% and the local rotation matrices for each atom of the system. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data + USE factorial + USE file_names + USE prnt + USE reps + USE symm + IMPLICIT NONE +C + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_rot, spinrot + COMPLEX(KIND=8), DIMENSION(:,:),ALLOCATABLE :: tmat + COMPLEX(KIND=8), DIMENSION(:,:,:),ALLOCATABLE :: tmp_dmat + REAL(KIND=8) :: factor + INTEGER :: l, isym, mmax, nrefl, i, m, isrt, lms + INTEGER :: lm, is, is1 + INTEGER :: iatom, imu, iatomref + REAL(KIND=8) :: det + REAL(KIND=8), DIMENSION(:),ALLOCATABLE :: bufreal + COMPLEX(KIND=8), DIMENSION(:),ALLOCATABLE :: bufcomp + COMPLEX(KIND=8), DIMENSION(:,:),ALLOCATABLE :: tmpcomp + COMPLEX(KIND=8), DIMENSION(1:2,1:2) :: spmt + +C +C + WRITE(buf,'(a)')'=======================================' + CALL printout(0) + WRITE(buf,'(a)')'Symmetry operations of the system' + CALL printout(1) +C +C =========================================== +C Reading of the symmetry file case.dmftsym : +C =========================================== + CALL setfact(170) + READ(iusym,*)nsym + WRITE(buf,'(a,i4)')'Number of Symmetries = ',nsym + CALL printout(0) + CALL printout(0) +C nsym = total number of symmetry operations for the structure + lsym=lmax + nlmsym=2*lsym+1 +C lsym = maximal orbital number for the symmetry +C nlmsym = maximal size of the representation for the symmetry + ALLOCATE(srot(nsym)) + DO isym=1,nsym + ALLOCATE(srot(isym)%perm(natom)) + READ(iusym,*)srot(isym)%perm + ENDDO +C srot = table of symop elements from to 1 to nsym. +C the field srot(isym)%perm = the table of permutation for the isym symmetry (table from 1 to natom) +C srot(isym)%perm(iatom) = R[isym](iatom) = image by R[isym] fo iatom + WRITE(buf,'(a)')'Properties of the symmetry operations :' + CALL printout(0) + WRITE(buf,'(a)') ' alpha, beta, gamma are their Euler angles.' + CALL printout(0) + WRITE(buf,'(a)') ' iprop is the value of their determinant.' + CALL printout(0) + CALL printout(0) + WRITE(buf,'(a)')' SYM.OP. alpha beta gamma iprop' + CALL printout(0) + DO isym=1,nsym + READ(iusym,'()') + READ(iusym,'()') + READ(iusym,'(3(f6.1),i3)') srot(isym)%a, srot(isym)%b, + & srot(isym)%g, srot(isym)%iprop +C Printing the matrices parameters in the file case.outdmftpr + WRITE(buf,'(i5,3F10.1,5x,i3)')isym, + & srot(isym)%a,srot(isym)%b,srot(isym)%g,srot(isym)%iprop + CALL printout(0) + srot(isym)%a=srot(isym)%a/180d0*Pi + srot(isym)%b=srot(isym)%b/180d0*Pi + srot(isym)%g=srot(isym)%g/180d0*Pi +C the field srot(isym)%a is linked to the Euler precession angle (alpha) +C the field srot(isym)%b is linked to the Euler nutation angle (beta) +C the field srot(isym)%c is linked to the Euler intrinsic rotation angle (gamma) +C They are read in case.dmftsym in degree and are then transformed into radians +C the field sort(isym)% iprop = value of the transformation determinant (1 or -1), +C determines if there is an inversion in the transformation + READ(iusym,*)(srot(isym)%krotm(1:3,i),i=1,3) + srot(isym)%krotm(1:3,1:3)= + & TRANSPOSE(srot(isym)%krotm(1:3,1:3)) +C the field srot(isym)%krotm = 3x3 matrices of rotation associated to the transformation (R[isym]). +C (without the global inversion). The matrix was multiplied by the value of iprop before being written in case.dmftsym. +C This reading line was chosen to be consistent with the writing line in rotmat_dmft (in SRC_lapw2) + ENDDO +C +C ============================================================= +C Determination of the properties for each symmetry operation : +C ============================================================= +C +C Creation of the rotational matrices for each orbital : +C ------------------------------------------------------ + DO isym=1,nsym + ALLOCATE(srot(isym)%rotl(-lsym:lsym,-lsym:lsym,lsym)) + srot(isym)%rotl=0.d0 + ALLOCATE(tmat(1:2*lsym+1,1:2*lsym+1)) + DO l=1,lsym +C Use of the subroutine dmat to compute the the rotational matrix +C associated to the isym symmetry operation in a (2*l+1) space : + CALL dmat(l,srot(isym)%a,srot(isym)%b,srot(isym)%g, + & REAL(srot(isym)%iprop,KIND=8),tmat,2*lsym+1) + srot(isym)%rotl(-l:l,-l:l,l)=tmat(1:2*l+1,1:2*l+1) +C srot(isym)%rotl = table of the rotationnal matrices of the symmetry operation +C for the different l orbital (from 1 to lsym), in the usual complex basis : dmat = D(R[isym])_l +C srot(isym)%rotl = D(R[isym])_{lm} + ENDDO + DEALLOCATE(tmat) +C +C +C Determination of the fields timeinv and phase (if SP+SO computations): +C ---------------------------------------------------------------------- +C If the calculation is spin-polarized with spin-orbit, the magnetic spacegroup of the +C system is of type III (black-and-white type). The operation must then be classified +C according to their keeping the z-axis invariant or not. +C +C srot(isym)%timeinv = boolean indicating if a time reversal operation is required + IF(ifSP.AND.ifSO) THEN + det=srot(isym)%krotm(1,1)*srot(isym)%krotm(2,2)- + - srot(isym)%krotm(1,2)*srot(isym)%krotm(2,1) +C the value of det is cos(srot(isym)%b) even if the rotation is improper. + IF(det < 0.0d0) THEN + srot(isym)%timeinv=.TRUE. +C The direction of the magnetic moment is changed to its opposite ( srot(isym)%b=pi ), +C A time reversal operation is required. + srot(isym)%phase=srot(isym)%g-srot(isym)%a +C In this case, we define a phase factor for the off-diagonal term (up/dn term) +C which is srot(isym)%phase= g-a = 2pi+(alpha-gamma) + ELSE + srot(isym)%timeinv=.FALSE. +C The direction of the magnetic moment is unchanged ( srot(isym)%b=0 ), +C no time reversal operation is required. + srot(isym)%phase=srot(isym)%a+srot(isym)%g +C In this case, we define a phase factor for the off-diagonal term (up/dn term) +C which is srot(isym)%phase= a+g = 2pi-(alpha+gamma) + ENDIF + ELSE +C If the calculation is either spin-polarized without spin-orbit, or paramagnetic +C the magnetic spacegroup of the system is of type I (ordinary type). The operation +C are thus merely applied. + srot(isym)%timeinv=.FALSE. + srot(isym)%phase=0.d0 + ENDIF ! End of the ifSP if-then-else +C +C +C Computation of the rotational matrices in each sort basis : +C ----------------------------------------------------------- + ALLOCATE(srot(isym)%rotrep(lsym,nsort)) +C +C Initialization of the srot(isym)%rotrep field +C This field is a table of size (lsym*nsort) which contains the rotation matrices +C of isym in the representation basis associated to each included orbital of each atom. +C srot(isym)%rotrep = D(R[isym])_{new_i} + DO isrt=1,nsort + DO l=1,lsym + ALLOCATE(srot(isym)%rotrep(l,isrt)%mat(1,1)) + srot(isym)%rotrep(l,isrt)%mat(1,1)=0.d0 + ENDDO + ENDDO +C +C Computation of the elements 'mat' in srot(isym)%rotrep(l,isrt) + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + DO l=1,lsym +C The considered orbital is not included, hence no computation + IF (lsort(l,isrt)==0) cycle +C The considered orbital is included + IF (reptrans(l,isrt)%ifmixing) THEN +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) +C If this option is used, then ifSO=.TRUE. (because of the restriction in set_ang_trans.f) +C Moreover ifSP=.TRUE. (since ifSO => ifSP in this version) + DEALLOCATE(srot(isym)%rotrep(l,isrt)%mat) + ALLOCATE(srot(isym)%rotrep(l,isrt)%mat + & (1:2*(2*l+1),1:2*(2*l+1))) + ALLOCATE(tmp_rot(1:2*(2*l+1),1:2*(2*l+1))) + ALLOCATE(spinrot(1:2*(2*l+1),1:2*(2*l+1))) + spinrot=0.d0 +C Computation of the full spinor rotation matrix associated to isym. + CALL spinrotmat(spinrot,isym,l) +C Computation of srot(isym)%rotrep(l,isrt)%mat + tmp_rot(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( + & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), + & spinrot(1:2*(2*l+1),1:2*(2*l+1))) + srot(isym)%rotrep(l,isrt)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(tmp_rot(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1))))) +C the field srot(isym)%rotrep(l,isrt)%mat = (reptrans)*spinrot(l)*inverse(reptrans) +C or srot(isym)%rotrep = D(R[isym])_{new_i} = D(R[isym])_{lm} +C which is exactly the expression of the spinor rotation matrix in the new basis. + DEALLOCATE(tmp_rot) + DEALLOCATE(spinrot) + ELSE +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) + DEALLOCATE(srot(isym)%rotrep(l,isrt)%mat) + ALLOCATE(srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l)) + ALLOCATE(tmp_rot(-l:l,-l:l)) +C Computation of srot(isym)%rotrep(l,isrt)%mat + tmp_rot(-l:l,-l:l)=MATMUL( + & reptrans(l,isrt)%transmat(-l:l,-l:l), + & srot(isym)%rotl(-l:l,-l:l,l)) + srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l)= + = MATMUL(tmp_rot(-l:l,-l:l), + & TRANSPOSE(CONJG(reptrans(l,isrt)%transmat(-l:l,-l:l)))) +C the field srot(isym)%rotrep(l,isrt)%mat = (reptrans)*rotl*inverse(reptrans) +C or srot(isym)%rotrep = D(R[isym])_{new_i} = D(R[isym])_{lm} +C which is exactly the expression of the rotation matrix for the up/up block in the new basis. + DEALLOCATE(tmp_rot) + ENDIF + ENDDO ! End of the l loop + ENDDO ! End of the isrt loop + ENDDO ! End of the isym loop +C +C +C ============================================================= +C Printing the matrix parameters in the file fort.17 for test : +C ============================================================= + DO isym=1,nsym + WRITE(17,'()') + WRITE(17,'(a,i3)')' Sym. op.: ',isym + DO i =1,3 + ALLOCATE(bufreal(3)) + bufreal(1:3)=srot(isym)%krotm(i,1:3) + WRITE(17,'(3f10.4)') bufreal + DEALLOCATE(bufreal) + ENDDO + WRITE(17,'(a,3f8.1,i4)')'a, b, g, iprop =', + & srot(isym)%a*180d0/Pi,srot(isym)%b*180d0/Pi, + & srot(isym)%g*180d0/Pi,srot(isym)%iprop +C Printing the data relative to SP option + IF (ifSP) THEN + WRITE(17,*)'If DIR. magn. mom. is inverted :' + & ,srot(isym)%timeinv + WRITE(17,*)'phase = ',srot(isym)%phase + ENDIF +C Printing the rotational matrices for each orbital number l. + WRITE(17,'()') + DO l=1,lsym + WRITE(17,'(a,a,i2)')'Rotation matrix ', + & 'D(R[isym])_{lm} for l = ',l + DO m=-l,l + ALLOCATE(bufcomp(-l:l)) + bufcomp(-l:l)=srot(isym)%rotl(m,-l:l,l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ENDDO +C Printing the matrices rotrep(l,isrt)%mat + WRITE(17,'()') + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + DO l=1,lsym + IF (lsort(l,isrt)==0) cycle + WRITE(17,'(a,i2,a,i2)')'Representation for isrt = ', + & isrt,' and l= ',l + IF (reptrans(l,isrt)%ifmixing) THEN + DO m=1,2*(2*l+1) + ALLOCATE(bufcomp(1:2*(2*l+1))) + bufcomp(1:2*(2*l+1))= + & srot(isym)%rotrep(l,isrt)%mat(m,1:2*(2*l+1)) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ELSE + DO m=-l,l + ALLOCATE(bufcomp(-l:l)) + bufcomp(-l:l)= + & srot(isym)%rotrep(l,isrt)%mat(m,-l:l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ENDIF + ENDDO + ENDDO + ENDDO +C +C +C ================================================================================= +C Applying time-reversal operator if the system is spin-polarized with Spin Orbit : +C ================================================================================= +C +C If the calculation is spin-polarized with spin-orbit, the magnetic spacegroup of the compound +C is of type III (black-and-white). The symmetry operations which reverse the z-axis must be +C multiplied by the time-reversal operator. +C If spin-orbit is not taken into account, all the field timeinv are .FALSE. and no time-reversal +C is applied, since the magnetic spacegroup of the compound is of type I (ordinary). + IF (ifSP) THEN +C The modification of srot(isym)%rotl is done for each isym + DO isym=1,nsym + DO l=1,lsym + IF (srot(isym)%timeinv) THEN +C The field srot(isym)%rotl is multiplied by the time-reversal operator in the complex basis. + ALLOCATE(tmpcomp(-l:l,-l:l)) + tmpcomp(-l:l,-l:l)= + & srot(isym)%rotl(-l:l,-l:l,l) + CALL timeinv_op(tmpcomp,(2*l+1),l,0) + srot(isym)%rotl(-l:l,-l:l,l)=tmpcomp(-l:l,-l:l) + DEALLOCATE(tmpcomp) +C The field srot(isym)%phase must not be modified. + END IF + END DO + END DO +C +C The other modification are done for each (isrt,l) included. + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + DO l=1,lsym +C The considered orbital is not included, hence no computation + IF (lsort(l,isrt)==0) cycle +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) + IF (reptrans(l,isrt)%ifmixing) THEN + DO isym=1,nsym + IF (srot(isym)%timeinv) THEN +C The field srot(isym)%rotrep(l,isrt)%mat is multiplied by the time-reversal operator in the corresponding basis of isrt. + CALL timeinv_op(srot(isym)%rotrep(l,isrt)%mat, + & 2*(2*l+1),l,isrt) + END IF + END DO ! End of the isym loop +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) + ELSE + DO isym=1,nsym + IF (srot(isym)%timeinv) THEN +C The field srot(isym)%rotrep(l,isrt)%mat is multiplied by the time-reversal operator in the corresponding basis of isrt. + CALL timeinv_op(srot(isym)%rotrep(l,isrt)%mat, + & (2*l+1),l,isrt) + END IF + END DO ! End of the isym loop + END IF ! End of the ifmixing if-then-else + END DO ! End of the l loop + END DO ! End of the isrt loop + END IF ! End of the ifSP if-then-else +C +C +C ====================================================================== +C Printing the time-reversal modification in the file fort.17 for test : +C ====================================================================== + IF (ifSP.AND.ifSO) THEN + WRITE(17,'()') + WRITE(17,'(a)') '---With time-reversal operation---' + WRITE(17,'()') +C Printing the srot(isym) operations if necessary : + DO isym=1,nsym + IF (srot(isym)%timeinv) THEN + WRITE(17,'()') + WRITE(17,'(a,i3)')' Sym. op.: ',isym +C Printing the new rotational matrices for each orbital number l. + WRITE(17,'()') + DO l=1,lsym + WRITE(17,'(a,a,i2)')'T*Rotation matrix ', + & 'D(T.R[isym])_{lm} for l = ',l + DO m=-l,l + ALLOCATE(bufcomp(-l:l)) + bufcomp(-l:l)=srot(isym)%rotl(m,-l:l,l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ENDDO +C Printing the new matrices rotrep(l,isrt)%mat + WRITE(17,'()') + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + DO l=1,lsym + IF (lsort(l,isrt)==0) cycle + WRITE(17,'(a,i2,a,i2)') + & 'Representation for isrt = ',isrt,' and l= ',l + IF (reptrans(l,isrt)%ifmixing) THEN + DO m=1,2*(2*l+1) + ALLOCATE(bufcomp(1:2*(2*l+1))) + bufcomp(1:2*(2*l+1))= + & srot(isym)%rotrep(l,isrt)%mat(m,1:2*(2*l+1)) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ELSE + DO m=-l,l + ALLOCATE(bufcomp(-l:l)) + bufcomp(-l:l)= + & srot(isym)%rotrep(l,isrt)%mat(m,-l:l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + END DO + END IF + END DO + END DO + END IF + ENDDO + END IF +C +C +C ============================================================ +C Creation of the global->local coordinate rotation matrices : +C ============================================================ + ALLOCATE(rotloc(natom)) + CALL printout(1) + WRITE(buf,'(a)')'-------------------------------------' + CALL printout(0) + WRITE(buf,'(a)')'Global-to-local-coordinates rotations' + CALL printout(1) + WRITE(buf,'(a)')'Properties of the symmetry operations :' + CALL printout(0) + WRITE(buf,'(a)') ' alpha, beta, gamma are their Euler angles.' + CALL printout(0) + WRITE(buf,'(a)') ' iprop is the value of their determinant.' + CALL printout(0) + CALL printout(0) + WRITE(buf,'(a)')' SORT alpha beta gamma iprop' + CALL printout(0) + READ(iusym,'()') + DO isrt=1,nsort +C Reading the data for the representative atom in case.dmftsym and printing them in case.outdmftpr : +C -------------------------------------------------------------------------------------------------- + iatomref=SUM(nmult(0:isrt-1))+1 + READ(iusym,'()') + DO i=1,3 + ALLOCATE(bufreal(3)) + READ(iusym,*) bufreal + rotloc(iatomref)%krotm(i,1:3)=bufreal(1:3) + DEALLOCATE(bufreal) + ENDDO +C the field rotloc(iatomref)%krotm = 3x3 matrices of rotation associated to the transformation Rloc +C Rloc = . The matrix was not multiplied by the value of iprop before being +C written in case.dmftsym (cf. SRC_lapw2/rotmat_dmft.f). +C rotloc(iatomref)%krotm can thus be either a proper or an improper rotation (with inversion). +C This reading line was chosen to be consistent with the writing line in rotmat_dmft (in SRC_lapw2) + READ(iusym,*)rotloc(iatomref)%a,rotloc(iatomref)%b, + & rotloc(iatomref)%g, rotloc(iatomref)%iprop + WRITE(buf,'(i5,3F10.1,5x,i3)')isrt, + & rotloc(iatomref)%a, rotloc(iatomref)%b, + & rotloc(iatomref)%g, rotloc(iatomref)%iprop + CALL printout(0) + rotloc(iatomref)%a=rotloc(iatomref)%a/180d0*Pi + rotloc(iatomref)%b=rotloc(iatomref)%b/180d0*Pi + rotloc(iatomref)%g=rotloc(iatomref)%g/180d0*Pi +C the field rotloc%a is linked to the Euler precession angle (alpha) +C the field rotloc%b is linked to the Euler nutation angle (beta) +C the field rotloc%c is linked to the Euler intrinsic rotation angle (gamma) +C They are read in case.dmftsym and printed in case.outdmftpr in degree and are then transformed into radians +C the field rotloc%iprop = value of the transformation determinant (should be 1 in almost all the cases), +C determines if there is an inversion in the transformation from global to local basis. + rotloc(iatomref)%krotm(1:3,1:3)=rotloc(iatomref)%iprop* + & rotloc(iatomref)%krotm(1:3,1:3) +C Now, the field rotloc(iatomref)%krotm described only the proper rotation associated to the transformation. +C +C Use of the subroutine dmat to compute the rotational matrix +C associated to the rotloc(iatomref) operation in a (2*l+1) orbital space : + ALLOCATE(tmat(1:2*lsym+1,1:2*lsym+1)) + ALLOCATE(tmp_dmat(1:2*lsym+1,1:2*lsym+1,1:lsym)) + DO l=1,lsym + tmat=0.d0 + CALL dmat(l,rotloc(iatomref)%a,rotloc(iatomref)%b, + & rotloc(iatomref)%g,REAL(rotloc(iatomref)%iprop,KIND=8), + & tmat,2*lsym+1) + tmp_dmat(1:2*l+1,1:2*l+1,l)=tmat(1:2*l+1,1:2*l+1) +C tmp_dmat = D(Rloc)_{lm} + ENDDO + DEALLOCATE(tmat) +C +C +C Storing the rotloc matrix and initializing the other fields for all equivalent atoms : +C -------------------------------------------------------------------------------------- +C All the equivalent atoms will have the same rotloc description. These data +C will be correctly redifined in the subroutine set_rotloc, where the action of the +C symmetry operation which transforms the representative atom in the considered one +C will be added. + DO imu=1,nmult(isrt) + iatom=SUM(nmult(0:isrt-1))+imu + IF(ifSP.AND.ifSO) THEN +C In this case, we have to consider the spinor rotation matrix associated to rotloc +C (the value of the Euler angle beta can be anything between 0 and Pi) + ALLOCATE(rotloc(iatom)%rotl(1:2*(2*lsym+1), + & 1:2*(2*lsym+1),lsym)) + rotloc(iatom)%rotl=0.d0 + DO l=1,lsym +C For each orbital (from l=0 to lsym) +C Calculation of the representation matrix of rotloc in the spin-space +C in agreement with Wien conventions used for the definition of spmt (in SRC_lapwdm/sym.f) +C Up/up and Dn/dn terms + factor=(rotloc(iatomref)%a+rotloc(iatomref)%g)/2.d0 + spmt(1,1)=EXP(CMPLX(0.d0,factor)) + & *DCOS(rotloc(iatomref)%b/2.d0) + spmt(2,2)=CONJG(spmt(1,1)) +C Up/dn and Dn/up terms + factor=-(rotloc(iatomref)%a-rotloc(iatomref)%g)/2.d0 + spmt(1,2)=EXP(CMPLX(0.d0,factor)) + & *DSIN(rotloc(iatomref)%b/2.d0) + spmt(2,1)=-CONJG(spmt(1,2)) +C Up/up block : + rotloc(iatom)%rotl(1:2*l+1,1:2*l+1,l)= + & spmt(1,1)*tmp_dmat(1:2*l+1,1:2*l+1,l) +C Dn/dn block : + rotloc(iatom)%rotl(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1),l)= + & spmt(2,2)*tmp_dmat(1:2*l+1,1:2*l+1,l) +C Up/dn block : + rotloc(iatom)%rotl(1:2*l+1,2*l+2:2*(2*l+1),l)= + & spmt(1,2)*tmp_dmat(1:2*l+1,1:2*l+1,l) +C Dn/up block : + rotloc(iatom)%rotl(2*l+2:2*(2*l+1),1:2*l+1,l)= + & spmt(2,1)*tmp_dmat(1:2*l+1,1:2*l+1,l) +C The fields rotloc(iatom)%rotl now contain D(rotloc)_{lm}xD(rotloc)_{1/2} + ENDDO + ELSE +C In this case, we can consider the spatial rotation matrix only +C since each spin space is independent (paramagnetic or spin-polarized without SO computation) + ALLOCATE(rotloc(iatom)%rotl(-lsym:lsym,-lsym:lsym,lsym)) + rotloc(iatom)%rotl=0.d0 + DO l=1,lsym + rotloc(iatom)%rotl(-l:l,-l:l,l)= + = tmp_dmat(1:2*l+1,1:2*l+1,l) +C The fields rotloc(iatom)%rotl now contain D(rotloc)_{lm} + ENDDO + ENDIF +C The fields rotloc(iatom)%a,b and c will now contain the parameters linked to +C the Euler angles of the local rotation rotloc. + IF(imu.gt.1) THEN + rotloc(iatom)%a=rotloc(iatomref)%a + rotloc(iatom)%b=rotloc(iatomref)%b + rotloc(iatom)%g=rotloc(iatomref)%g + rotloc(iatom)%iprop=rotloc(iatomref)%iprop + rotloc(iatom)%krotm(1:3,1:3)= + = rotloc(iatomref)%krotm(1:3,1:3) + ENDIF +C The fields rotloc%phase, timeinv and srotnum are initialized to their +C default value. + rotloc(iatom)%phase=0.d0 + rotloc(iatom)%timeinv=.FALSE. + rotloc(iatom)%srotnum=0 +C the field rotloc(iatom)%srotnum and timeinv will be recalculated in set_rotloc. + ENDDO + DEALLOCATE(tmp_dmat) + ENDDO ! End of the isrt loop +C +C +C ==================================================================== +C Printing the rotloc matrix parameters in the file fort.17 for test : +C ==================================================================== + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + DO imu=1,nmult(isrt) + iatom=SUM(nmult(0:isrt-1))+imu + WRITE(17,'()') + WRITE(17,'(2(a,i3))')' SORT ',isrt,' IMU= ',imu + DO i=1,3 + ALLOCATE(bufreal(3)) + bufreal(1:3)=rotloc(iatom)%krotm(i,1:3) + WRITE(17,'(3f10.4)') bufreal + DEALLOCATE(bufreal) + ENDDO + WRITE(17,'(a,3f8.1,i4)')'a, b, g, iprop ==', + & rotloc(iatom)%a*180d0/Pi,rotloc(iatom)%b*180d0/Pi, + & rotloc(iatom)%g*180d0/Pi,rotloc(iatom)%iprop +C Printing the data relative to SP option + IF (ifSP) THEN + WRITE(17,*)'If DIR. magn. mom. is inverted :' + & ,rotloc(iatom)%timeinv + WRITE(17,*)'phase = ',rotloc(iatom)%phase + ENDIF +C Printing the rotloc matrices for each orbital number l. + WRITE(17,'()') + DO l=1,lsym + WRITE(17,'(a,a,i2)')'Rotation matrix ', + & 'D(R[isym])_{lm} for l = ',l + IF(ifSP.AND.ifSO) THEN + DO m=1,2*(2*l+1) + ALLOCATE(bufcomp(1:2*(2*l+1))) + bufcomp(1:2*(2*l+1))=rotloc(iatom)%rotl(m,1:2*(2*l+1),l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ELSE + DO m=-l,l + ALLOCATE(bufcomp(-l:l)) + bufcomp(-l:l)=rotloc(iatom)%rotl(m,-l:l,l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ENDIF + ENDDO + ENDDO + ENDDO +C +C +C ================================================================================== +C Computation of the true local rotation matrices for each non representative atom : +C ================================================================================== + CALL set_rotloc +C +C +C ==================================================================== +C Printing the rotloc matrix parameters in the file fort.17 for test : +C ==================================================================== + DO isrt=1,nsort + IF (notinclude(isrt)) cycle + DO imu=1,nmult(isrt) + iatom=SUM(nmult(0:isrt-1))+imu + WRITE(17,'()') + WRITE(17,'(2(a,i3))')' SORT ',isrt,' IMU= ',imu + DO i=1,3 + ALLOCATE(bufreal(3)) + bufreal(1:3)=rotloc(iatom)%krotm(i,1:3) + WRITE(17,'(3f10.4)') bufreal + DEALLOCATE(bufreal) + ENDDO + WRITE(17,'(a,3f8.1,i4)')'a, b, g, iprop ==', + & rotloc(iatom)%a*180d0/Pi,rotloc(iatom)%b*180d0/Pi, + & rotloc(iatom)%g*180d0/Pi,rotloc(iatom)%iprop +C Printing the data relative to SP option + IF (ifSP) THEN + WRITE(17,*)'If DIR. magn. mom. is inverted :' + & ,rotloc(iatom)%timeinv + WRITE(17,*)'phase = ',rotloc(iatom)%phase + ENDIF +C Printing the rotloc matrices for each orbital number l. + WRITE(17,'()') + DO l=1,lsym + WRITE(17,'(a,a,i2)')'Rotation matrix ', + & 'D(R[isym])_{lm} for l = ',l + IF(ifSP.AND.ifSO) THEN + DO m=1,2*(2*l+1) + ALLOCATE(bufcomp(1:2*(2*l+1))) + bufcomp(1:2*(2*l+1))=rotloc(iatom)%rotl(m,1:2*(2*l+1),l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ELSE + DO m=-l,l + ALLOCATE(bufcomp(-l:l)) + bufcomp(-l:l)=rotloc(iatom)%rotl(m,-l:l,l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ENDIF + ENDDO +C Printing the matrices rotrep(l)%mat + WRITE(17,'()') + DO l=1,lsym + IF (lsort(l,isrt)==0) cycle + WRITE(17,'(a,i2)')'Representation for l= ',l + IF (ifSP.AND.ifSO) THEN + DO m=1,2*(2*l+1) + ALLOCATE(bufcomp(1:2*(2*l+1))) + bufcomp(1:2*(2*l+1))= + & rotloc(iatom)%rotrep(l)%mat(m,1:2*(2*l+1)) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ELSE + DO m=-l,l + ALLOCATE(bufcomp(-l:l)) + bufcomp(-l:l)= + & rotloc(iatom)%rotrep(l)%mat(m,-l:l) + WRITE(17,'(7(2f7.3,x))') bufcomp + DEALLOCATE(bufcomp) + ENDDO + ENDIF + ENDDO + ENDDO + ENDDO +C + RETURN + END + + + + + Subroutine dmat(l,a,b,c,det,DD,length) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine computes the inverse of the matrix of the %% +C %% representation of size (2*l+1) associated to the rotation %% +C %% described by (a,b,c) angles in Euler description and with %% +C %% determinant det. %% +C %% The obtained matrix is put in the variable DD. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + IMPLICIT REAL*8 (A-H,O-Z) + INTEGER l,m,n,ifac,length + COMPLEX*16 izero,imag, dd + dimension DD(length,length) + imag=(0d0,1d0) + izero=(0d0,0d0) + pi=acos(-1d0) + + do m=-l,l + do n=-l,l + call d_matrix(l,m,n,b,dm) + if (det.lt.-0.5) then + dd(l+m+1,n+l+1)=(-1)**l*cdexp(imag*n*a) + & *cdexp(imag*m*c)*dm + else + dd(l+m+1,n+l+1)=cdexp(imag*n*a) + & *cdexp(imag*m*c)*dm + end if + 3 format(2I3,2f10.6) + end do + end do + do j=1,2*l+1 + end do + 5 format(7(2f6.3,1X)) + + end + + + Subroutine d_matrix(l,m,n,b,dm) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine is called by the subroutine dmat to compute the %% +C %% the value of the coefficient dm. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + IMPLICIT REAL*8 (A-H,O-Z) + INTEGER l,m,n,t + + sum=0d0 + + f1=dfloat(ifac(l+m)*ifac(l-m))/ + & dfloat(ifac(l+n)*ifac(l-n)) + + do t=0,2*l + if ((l-m-t).ge.0.AND.(l-n-t).ge.0.AND.(t+n+m).ge.0) then +C general factor + f2=dfloat(ifac(l+n)*ifac(l-n))/dfloat(ifac(l-m-t) + & *ifac(m+n+t)*ifac(l-n-t)*ifac(t)) +C factor with sin(b/2) + if ((2*l-m-n-2*t).eq.0) then + f3=1. + else + f3=(sin(b/2))**(2*l-m-n-2*t) + end if +C factor with cos(b/2) + if ((2*t+n+m).eq.0) then + f4=1. + else + f4=(cos(b/2))**(2*t+n+m) + end if +! write(12,*)f1,f2,f3,f4 + sum=sum+(-1)**(l-m-t)*f2*f3*f4 + end if + end do + + dm=sqrt(f1)*sum + end + + + Integer Function ifac(n) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine computes the factorial of the number n %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + if (n.eq.0) then + ifac=1 + else + ifac=1 + do j=1,n + ifac=ifac*j + end do + end if + end + + + SUBROUTINE spinrotmat(spinrot,isym,l) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine sets up the complete spinor rotation matrix %% +C %% associated to the symmetry operation isym for the orbital l. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definition of the variables : +C ----------------------------- + USE common_data + USE symm + IMPLICIT NONE + INTEGER :: l,isym + COMPLEX(KIND=8) :: ephase, det + REAL(KIND=8) :: factor + COMPLEX(KIND=8), DIMENSION(1:2*(2*l+1),1:2*(2*l+1)) :: spinrot + COMPLEX(KIND=8), DIMENSION(1:2,1:2) :: spmt +C + spinrot=0.d0 +C For a computation with spin polarized inputs : + IF (ifSP) THEN + IF (srot(isym)%timeinv) THEN +C In this case, the Euler angle Beta is Pi. The spinor rotation matrix is block-antidiagonal and +C the time reversal operation will be applied to keep the direction of the magnetization. +C Up/dn block : + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (g-a) in this case. +C as a result, ephase = exp(+i(g-a)/2) = -exp(+i(alpha-gamma)/2) +C in good agreement with Wien conventions for the definition of this phase factor. + ephase=EXP(CMPLX(0.d0,factor)) + spinrot(1:2*l+1,2*l+2:2*(2*l+1))= + = ephase*srot(isym)%rotl(-l:l,-l:l,l) +C Dn/up block : + ephase=-CONJG(ephase) +C now, ephase = -exp(+i(a-g)/2) = exp(-i(alpha-gamma)/2) + spinrot(2*l+2:2*(2*l+1),1:2*l+1)= + = ephase*srot(isym)%rotl(-l:l,-l:l,l) + ELSE +C In this case, the Euler angle Beta is 0. The spinor rotation matrix is block-diagonal and +C no time reversal operation will be applied. +C Up/up block : + factor=srot(isym)%phase/2.d0 +C We remind that the field phase is (a+g) in this case. +C as a result, ephase = exp(+i(a+g)/2)=-exp(-i(alpha+gamma)/2) +C in good agreement with Wien conventions for the definition of this phase factor. + ephase=EXP(CMPLX(0.d0,factor)) + spinrot(1:2*l+1,1:2*l+1)= + = ephase*srot(isym)%rotl(-l:l,-l:l,l) +C Dn/dn block : + ephase=CONJG(ephase) +C now, ephase = exp(-i(a+g)/2) = -exp(+i(alpha+gamma)/2) + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + = ephase*srot(isym)%rotl(-l:l,-l:l,l) + ENDIF + ELSE +C For a computation with paramagnetic treatment input files. (not used in this version) +C +C In this case, there is no restriction on the value of the Euler angle beta. +C The general definition of a spinor rotation matrix is used. +C +C Calculation of the representation matrix of isym in the spin-space +C in agreement with Wien conventions used for the definition of spmt (in SRC_lapwdm/sym.f) +C Up/up and Dn/dn terms + factor=(srot(isym)%a+srot(isym)%g)/2.d0 + spmt(1,1)=EXP(CMPLX(0.d0,factor))*DCOS(srot(isym)%b/2.d0) + spmt(2,2)=CONJG(spmt(1,1)) +C Up/dn and Dn/up terms + factor=-(srot(isym)%a-srot(isym)%g)/2.d0 + spmt(1,2)=EXP(CMPLX(0.d0,factor))*DSIN(srot(isym)%b/2.d0) + spmt(2,1)=-CONJG(spmt(1,2)) +C Up/up block : + spinrot(1:2*l+1,1:2*l+1)= + & spmt(1,1)*srot(isym)%rotl(-l:l,-l:l,l) +C Dn/dn block : + spinrot(2*l+2:2*(2*l+1),2*l+2:2*(2*l+1))= + & spmt(2,2)*srot(isym)%rotl(-l:l,-l:l,l) +C Up/dn block : + spinrot(1:2*l+1,2*l+2:2*(2*l+1))= + & spmt(1,2)*srot(isym)%rotl(-l:l,-l:l,l) +C Dn/up block : + spinrot(2*l+2:2*(2*l+1),1:2*l+1)= + & spmt(2,1)*srot(isym)%rotl(-l:l,-l:l,l) + ENDIF +C + RETURN + END + diff --git a/fortran/dmftproj/symmetrize_mat.f b/fortran/dmftproj/symmetrize_mat.f new file mode 100644 index 0000000..694f75e --- /dev/null +++ b/fortran/dmftproj/symmetrize_mat.f @@ -0,0 +1,292 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE symmetrize_mat(Dmat,orbit,norbit) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine applies the symmetry operations to the %% +C %% density matrices stored in Dmat and puts the resulting %% +C %% density matrices into the local coordinate system. %% +C %% %% +C %% This version can be used for SO computations. %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definition of the variables : +C ---------------------------- + USE common_data + USE projections + USE symm + USE reps + IMPLICIT NONE + INTEGER :: norbit + TYPE(matrix), DIMENSION(nsp,norbit) :: Dmat + COMPLEX(KIND=8),DIMENSION(:,:,:,:), ALLOCATABLE :: sym_dmat + COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: tmp_mat + COMPLEX(KIND=8):: ephase + TYPE(orbital), DIMENSION(norbit) :: orbit + INTEGER :: isym, iorb, iatom, jorb, is, is1, l, i, m + INTEGER :: isrt, jatom, imult, asym +C +C ========================================= +C Computation of the symmetrized matrices : +C ========================================= +C + iorb=1 +C Initialization of the iorb index. + DO WHILE (iorb.lt.(norbit+1)) +C The use of the while-loop was motivated by the idea of studying +C all the orbitals iorb associated to a same atomic sort isrt together. +C At the end, the index iorb is incremented by nmult(isrt) so that the +C following studied orbitals are associated to another atomic sort. + l=orbit(iorb)%l + isrt=orbit(iorb)%sort +C +C ----------------------------------------------------------------------------------- +C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : +C ----------------------------------------------------------------------------------- + IF (l==0) THEN +C The table sym_dmat will store the symmetrized value of the density matrices of Dmat +C associated to a same atomic sort isrt. + ALLOCATE(sym_dmat(1,1,nsp,1:nmult(isrt))) + sym_dmat=0.d0 +C Its size is nmult(isrt) because symmetry operations can transform the representants +C of a same atomic sort one into another. +C +C Loop on the representants of the atomic sort isrt + DO imult=0,nmult(isrt)-1 + iatom=orbit(iorb+imult)%atom +C Loop on the symmetry operations of the system + DO isym=1,nsym + DO is=1,nsp + ALLOCATE(tmp_mat(1,1)) +C If the calculation uses spin-polarized input files, the application of the symmetry operation +C depends on the field srot%timeinv. + IF(ifSP.AND.srot(isym)%timeinv) THEN +C In this case (spin-polarized computation), the symmetry operation is block-diagonal in spin-space but +C the time reversal operator is included. + tmp_mat(1,1)=CONJG(Dmat(is,iorb+imult)%mat(1,1)) +C because of the antiunitarity of the operator, the conjugate of Dmat must be use + ELSE + tmp_mat(1,1)=Dmat(is,iorb+imult)%mat(1,1) + ENDIF +C +C Definition of the index where the transformed Dmat will be stored. [jorb = R[isym](iorb)] + jorb=srot(isym)%perm(iatom)-iatom+(imult+1) +C +C Computation of the phase factors in the case of a SO computation : +C ------------------------------------------------------------------ +C For up/up and dn/dn blocks, no phase factor is needed. + ephase=1.d0 +C For the up/dn block, initialisation of the phase factor + IF(is==3) THEN + ephase=EXP(CMPLX(0d0,srot(isym)%phase)) +C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(+i(g-a)) = exp(+i(alpha-gamma)) +C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(+i(a+g)) = exp(-i(alpha+gamma)) + ENDIF +C For the dn/up block, initialisation of the phase factor + IF(is==4) THEN + ephase=EXP(CMPLX(0d0,-srot(isym)%phase)) +C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(-i(g-a)) = exp(-i(alpha-gamma)) +C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(-i(a+g)) = exp(+i(alpha+gamma)) + ENDIF +C +C Application of the symmetry operation which changes iorb in jorb=R[isym](iorb) : +C -------------------------------------------------------------------------------- +C That's why the result is stored in the jorb section of sym_dmat. + sym_dmat(1,1,is,jorb)= + = sym_dmat(1,1,is,jorb)+tmp_mat(1,1)*ephase + DEALLOCATE(tmp_mat) + ENDDO ! End of the is loop + ENDDO ! End of the isym loop + ENDDO ! End of the imult loop +C +C Renormalization of the symmetrized density matrices : +C ----------------------------------------------------- + IF (nsym.gt.0) THEN + DO imult=0,nmult(isrt)-1 + DO is=1,nsp + Dmat(is,iorb+imult)%mat(1,1)= + & sym_dmat(1,1,is,imult+1)/nsym + ENDDO + ENDDO + ENDIF + DEALLOCATE(sym_dmat) +C Incrementation of the iorb index (for the while loop) + iorb=iorb+nmult(isrt) +C +C ----------------------------------------------------------------------------------------------------- +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : +C ----------------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C The table sym_dmat will store the symmetrized value of the density matrices of Dmat +C associated to a same atomic sort isrt. + ALLOCATE(sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,1:nmult(isrt))) + sym_dmat=0.d0 +C Its size is nmult(isrt) because symmetry operations can transform the representants +C of a same atomic sort one into another. +C +C Loop on the representants of the atomic sort isrt + DO imult=0,nmult(isrt)-1 + iatom=orbit(iorb+imult)%atom +C Loop on the symmetry operations of the system + DO isym=1,nsym + ALLOCATE(tmp_mat(1:2*(2*l+1),1:2*(2*l+1))) +C We use the complete spin-space representation, so no trick on indices is necessary. + tmp_mat(1:2*(2*l+1),1:2*(2*l+1))= + & Dmat(1,iorb+imult)%mat(1:2*(2*l+1),1:2*(2*l+1)) +C If the calculation is spin-polarized, the symmetry operator is antiunitary. + IF(ifSP.AND.srot(isym)%timeinv) THEN + tmp_mat(1:2*(2*l+1),1:2*(2*l+1))= + & CONJG(tmp_mat(1:2*(2*l+1),1:2*(2*l+1))) + ENDIF +C Definition of the index where the transformed Dmat will be stored. [jorb = R[isym](iorb)] + jorb=srot(isym)%perm(iatom)-iatom+(imult+1) +C Application of the symmetry operation : +C --------------------------------------- +C The transformation is : srot%rotrep.tmpmat(iorb).inverse(sort%rotrep) = Dmat(jorb) +C or in other words, if R is a simple symmetry D(R[isym]) tmpmat(iorb) D(inverse(R[isym])) = Dmat(R[isym](iorb)) +C if R is multiplied by Theta D(R[isym]) tmpmat(iorb)* D(inverse(R[isym]))* = Dmat(R[isym](iorb)) + tmp_mat(1:2*(2*l+1),1:2*(2*l+1))= + = MATMUL(tmp_mat(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(CONJG(srot(isym)%rotrep(l,isrt) + % %mat(1:2*(2*l+1),1:2*(2*l+1)) )) ) + sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,jorb)= + = sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,jorb)+ + + MATMUL( srot(isym)%rotrep(l,isrt) + % %mat(1:2*(2*l+1),1:2*(2*l+1)) , + & tmp_mat(1:2*(2*l+1),1:2*(2*l+1))) + DEALLOCATE(tmp_mat) + ENDDO ! End of the isym loop + ENDDO ! End of the imult loop +C Renormalization of the symmetrized density matrices : +C ----------------------------------------------------- + IF (nsym.gt.0) THEN + DO imult=0,nmult(isrt)-1 + Dmat(1,iorb+imult)%mat(1:2*(2*l+1),1:2*(2*l+1))= + = sym_dmat(1:2*(2*l+1),1:2*(2*l+1),1,imult+1)/nsym + ENDDO + ENDIF + DEALLOCATE(sym_dmat) +C Incrementation of the iorb index (for the while loop) + iorb=iorb+nmult(isrt) +C +C ---------------------------------------------------------------------------------------------- +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : +C ---------------------------------------------------------------------------------------------- + ELSE +C The table sym_dmat will store the symmetrized value of the density matrices of Dmat +C associated to a same atomic sort isrt. + ALLOCATE(sym_dmat(-l:l,-l:l,nsp,1:nmult(isrt))) + sym_dmat=0.d0 +C Its size is nmult(isrt) because symmetry operations can transform the representants +C of a same atomic sort one into another. +C +C Loop on the representants of the atomic sort isrt + DO imult=0,nmult(isrt)-1 + iatom=orbit(iorb+imult)%atom +C Loop on the symmetry operations of the system + asym=0 + DO isym=1,nsym + DO is=1,nsp + ALLOCATE(tmp_mat(-l:l,-l:l)) +C If the calculation uses spin-polarized input files, the application of the symmetry operation +C depends on the field srot%timeinv. + IF(ifSP.AND.srot(isym)%timeinv) THEN +C In this case (spin-polarized computation), the symmetry operation is block-diagonal in spin-space but +C the time reversal operatot is included. + tmp_mat(-l:l,-l:l)=CONJG( + & Dmat(is,iorb+imult)%mat(-l:l,-l:l)) +C because of antiunitarity of the operator, the conjugate of Dmat must be use + ELSE + tmp_mat(-l:l,-l:l)= + & Dmat(is,iorb+imult)%mat(-l:l,-l:l) + ENDIF +C +C Definition of the index where the transformed Dmat will be stored. [jorb = R[isym](iorb)] + jorb=srot(isym)%perm(iatom)-iatom+(imult+1) +C +C Computation of the phase factors in the case of a SO computation : +C ------------------------------------------------------------------ +C For up/up and dn/dn blocks, no phase factor is needed. + ephase=1.d0 +C For the up/dn block, initialisation of the phase factor + IF(is==3) THEN + ephase=EXP(CMPLX(0d0,srot(isym)%phase)) +C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(+i(g-a)) = exp(+i(alpha-gamma)) +C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(+i(a+g)) = exp(-i(alpha+gamma)) + ENDIF +C For the dn/up block, initialisation of the phase factor + IF(is==4) THEN + ephase=EXP(CMPLX(0d0,-srot(isym)%phase)) +C if srot%timeinv = .TRUE. , phase= g-a = 2pi+(alpha-gamma) and ephase = exp(-i(g-a)) = exp(-i(alpha-gamma)) +C if srot%timeinv = .FALSE., phase= a+g = 2pi-(alpha+gamma) and ephase = exp(-i(a+g)) = exp(+i(alpha+gamma)) + ENDIF +C +C Application of the symmetry operation which changes iorb in jorb : +C ------------------------------------------------------------------ +C The transformation is : srot%rotrep.tmpmat(iorb).inverse(sort%rotrep) = Dmat(jorb) +C or in other words, if R is a simple symmetry D(R[isym]) tmpmat(iorb) D(inverse(R[isym])) = Dmat(R[isym](iorb)) +C if R is multiplied by T D(R[isym]) tmpmat(iorb)* D(inverse(R[isym]))* = Dmat(R[isym](iorb)) + tmp_mat(-l:l,-l:l)= + = MATMUL(tmp_mat(-l:l,-l:l), + & TRANSPOSE(CONJG( srot(isym) + & %rotrep(l,isrt)%mat(-l:l,-l:l) )) ) + sym_dmat(-l:l,-l:l,is,jorb)= + = sym_dmat(-l:l,-l:l,is,jorb)+ + + MATMUL(srot(isym)%rotrep(l,isrt)%mat(-l:l,-l:l), + & tmp_mat(-l:l,-l:l) )*ephase + DEALLOCATE(tmp_mat) + ENDDO ! End of the is loop + ENDDO ! End of the isym loop + ENDDO ! End of the imult loop +C +C Renormalization of the symmetrized density matrices : +C ----------------------------------------------------- + IF (nsym.gt.0) THEN + DO imult=0,nmult(isrt)-1 + DO is=1,nsp + Dmat(is,iorb+imult)%mat(-l:l,-l:l)= + = sym_dmat(-l:l,-l:l,is,imult+1)/(nsym-asym) + ENDDO + ENDDO + ENDIF + DEALLOCATE(sym_dmat) +C Incrementation of the iorb index (for the while loop) + iorb=iorb+nmult(isrt) + ENDIF ! End of the type basis if-then-else +C + ENDDO ! End of the while(iorb) loop +C +C +C ============================================================= +C Application of the time reversal operation if paramagnetism : +C ============================================================= +C If the system is paramagnetic, the magnetic group of the system +C is a type II Shubnikov group and time-reveral symmetry must be added +C to achieve the complete symmetrization. + IF (.not.ifSP) THEN + CALL add_timeinv(Dmat,orbit,norbit) + END IF +C + RETURN + END diff --git a/fortran/dmftproj/timeinv.f b/fortran/dmftproj/timeinv.f new file mode 100644 index 0000000..481df40 --- /dev/null +++ b/fortran/dmftproj/timeinv.f @@ -0,0 +1,289 @@ + +c ****************************************************************************** +c +c TRIQS: a Toolbox for Research in Interacting Quantum Systems +c +c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn +c +c TRIQS is free software: you can redistribute it and/or modify it under the +c terms of the GNU General Public License as published by the Free Software +c Foundation, either version 3 of the License, or (at your option) any later +c version. +c +c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +c details. +c +c You should have received a copy of the GNU General Public License along with +c TRIQS. If not, see . +c +c *****************************************************************************/ + + SUBROUTINE timeinv_op(mat,lm,l,isrt) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine applies the time reversal operation to the %% +C %% matrix mat which is associated to the l orbital of the atomic %% +C %% isrt. (matrix size = lm) The matrix mat is assumed to already %% +C %% be in the desired basis associated to isrt. %% +C %% The calculation done is : %% +C %% reptrans*T*conjg((inv(reptrans))*conjg(mat) %% +C %% %% +C %% If isrt=0, the matrix mat is assumed to be in the spherical %% +C %% harmonics basis and no spin is considered. (lm = 2*l+1) %% +C %% The calculation done is then : T*conjg(mat) %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data + USE reps + IMPLICIT NONE + INTEGER :: lm,l,isrt + COMPLEX(KIND=8), DIMENSION(1:lm,1:lm) :: mat + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tinv + COMPLEX(KIND=8), DIMENSION(:,:), ALLOCATABLE :: tmp_tinv + COMPLEX(KIND=8), DIMENSION(-l:l,-l:l) :: tmat + INTEGER :: m,n +C +C Definition of the complex conjugation operator in the spherical harmonic basis : +C -------------------------------------------------------------------------------- +C + tmat = CMPLX(0.d0,0.d0) + DO m=-l,l + tmat(m,-m)=(-1)**m + END DO +C +C +C Calculation of the Time-reversal operator in the desired representation basis : +C ------------------------------------------------------------------------------- +C + IF (isrt==0) THEN +C The case isrt=0 is a "default case" : +C mat is in the spherical harmonic basis (without spinor representation) + ALLOCATE(tinv(1:2*l+1,1:2*l+1)) + tinv(1:2*l+1,1:2*l+1)=tmat(-l:l,-l:l) + ELSE +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) + IF (reptrans(l,isrt)%ifmixing) THEN + ALLOCATE(tinv(1:2*(2*l+1),1:2*(2*l+1))) + ALLOCATE(tmp_tinv(1:2*(2*l+1),1:2*(2*l+1))) + tinv = CMPLX(0.d0,0.d0) + tmp_tinv = CMPLX(0.d0,0.d0) +C Definition of the time-reversal operator as a spinor-operator (multiplication by -i.sigma_y) + tinv(1:2*l+1,2*l+2:2*(2*l+1))=-tmat(-l:l,-l:l) + tinv(2*l+2:2*(2*l+1),1:2*l+1)=tmat(-l:l,-l:l) +C The time reversal operator is put in the desired basis. + tmp_tinv(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( + & reptrans(l,isrt)%transmat(1:2*(2*l+1),1:2*(2*l+1)), + & tinv(1:2*(2*l+1),1:2*(2*l+1))) + tinv(1:2*(2*l+1),1:2*(2*l+1))=MATMUL( + & tmp_tinv(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(reptrans(l,isrt)%transmat + & (1:2*(2*l+1),1:2*(2*l+1)) ) ) +C the result tinv = (reptrans)*tinv*transpose(reptrans) +C or tinv_{new_i} = tinv_{lm} ()* +C which is exactly the expression of the spinor operator in the new basis. + DEALLOCATE(tmp_tinv) +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) + ELSE + ALLOCATE(tinv(1:2*l+1,1:2*l+1)) + ALLOCATE(tmp_tinv(-l:l,-l:l)) + tinv = CMPLX(0.d0,0.d0) + tmp_tinv = CMPLX(0.d0,0.d0) +C The time reversal operator is put in the desired basis. + tmp_tinv(-l:l,-l:l)=MATMUL( + & reptrans(l,isrt)%transmat(-l:l,-l:l), + & tmat(-l:l,-l:l) ) + tinv(1:2*l+1,1:2*l+1)=MATMUL( + & tmp_tinv(-l:l,-l:l),TRANSPOSE( + & reptrans(l,isrt)%transmat(-l:l,-l:l)) ) + DEALLOCATE(tmp_tinv) + END IF +C the result tinv = (reptrans)*tinv*transpose(reptrans) +C or tinv_{new_i} = tinv_{lm} ()* +C which is exactly the expression of the operator in the new basis. + END IF +C +C +C Multiplication of the matrix mat by the time reversal operator : +C ---------------------------------------------------------------- +C + mat(1:lm,1:lm) = MATMUL( + & tinv(1:lm,1:lm),CONJG(mat(1:lm,1:lm)) ) + DEALLOCATE(tinv) +C The multiplication is the product of tinv and (mat)* +C + RETURN + END + + + + SUBROUTINE add_timeinv(Dmat,orbit,norbit) +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +C %% %% +C %% This subroutine calculates for each density matrix in Dmat %% +C %% its image by the time-reversal operator and adds it to the %% +C %% former one to get a time-symmetrized result. %% +C %% %% +C %% This operation is done only if the computation is paramagnetic %% +C %% %% +C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +C Definiton of the variables : +C ---------------------------- + USE common_data + USE projections + USE symm + USE reps + IMPLICIT NONE + INTEGER :: norbit + TYPE(matrix), DIMENSION(nsp,norbit) :: Dmat + COMPLEX(KIND=8),DIMENSION(:,:,:), ALLOCATABLE :: rot_dmat + COMPLEX(KIND=8),DIMENSION(:,:), ALLOCATABLE :: time_op + COMPLEX(KIND=8),DIMENSION(:,:,:), ALLOCATABLE :: tmp_mat + COMPLEX(KIND=8):: ephase + TYPE(orbital), DIMENSION(norbit) :: orbit + INTEGER :: isym, iorb, iatom, jorb, is, is1, l, i + INTEGER :: isrt, jatom, imult, m +C +C + DO iorb=1,norbit + l=orbit(iorb)%l + isrt=orbit(iorb)%sort + iatom=orbit(iorb)%atom +C ----------------------------------------------------------------------------------- +C The s-orbitals are a particular case of a "non-mixing" basis and are treated here : +C ----------------------------------------------------------------------------------- + IF(l==0) THEN + IF (nsp==1) THEN + Dmat(1,iorb)%mat(1,1) = + & ( Dmat(1,iorb)%mat(1,1)+ + & CONJG(Dmat(1,iorb)%mat(1,1)) )/2.d0 + ELSE + ALLOCATE(tmp_mat(1,1,nsp)) + tmp_mat=0.d0 +C Application of the time-reversal operation +C ------------------------------------------ + DO is=1,nsp + is1=is+(-1)**(is+1) +C the time reversal operation transforms up/up -1- in dn/dn -2- and up/dn -3- in dn/up -4- (and vice versa) + tmp_mat(1,1,is)=CONJG(Dmat(is1,iorb)%mat(1,1) ) + IF (is.gt.2) tmp_mat(1,1,is)=-tmp_mat(1,1,is) +C Off diagonal blocks are multiplied by (-1). + ENDDO +C Symmetrization of Dmat : +C ------------------------ + DO is=1,nsp + Dmat(is,iorb)%mat(1,1) = (Dmat(is,iorb)%mat(1,1)+ + & tmp_mat(1,1,is) )/2.d0 + ENDDO + DEALLOCATE(tmp_mat) + ENDIF +C ----------------------------------------------------------------------------------------------------- +C If the basis representation needs a complete spinor rotation approach (matrices of size 2*(2*l+1) ) : +C ----------------------------------------------------------------------------------------------------- + ELSEIF (reptrans(l,isrt)%ifmixing) THEN +C Calculation of the time-reversal operator : +C ------------------------------------------- + ALLOCATE(time_op(1:2*(2*l+1),1:2*(2*l+1))) + time_op(:,:)=0.d0 + DO m=1,2*(2*l+1) + time_op(m,m)=1.d0 + ENDDO +C time_op is Identity. + CALL timeinv_op(time_op,2*(2*l+1),l,isrt) +C time_op is now the time-reversal operator in the desired basis ({new_i}) +C +C Application of the time-reversal operation +C ------------------------------------------ + ALLOCATE(tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1)) + tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1)= + = MATMUL(Dmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)), + & TRANSPOSE(time_op(1:2*(2*l+1),1:2*(2*l+1)) ) ) + tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1)= + = MATMUL(time_op(1:2*(2*l+1),1:2*(2*l+1)), + & CONJG(tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1) ) ) +C The operation performed is : time_op.conjugate(Dmat).transpose(conjugate(time_op)) +C or in other words, D(T)_{new_i} . Dmat* . D(inverse(T))*_{new_i} +C +C Symmetrization of Dmat : +C ------------------------ + Dmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) = + & ( Dmat(1,iorb)%mat(1:2*(2*l+1),1:2*(2*l+1)) + + & tmp_mat(1:2*(2*l+1),1:2*(2*l+1),1) )/2.d0 + DEALLOCATE(tmp_mat) + DEALLOCATE(time_op) +C ---------------------------------------------------------------------------------------------- +C If the basis representation can be reduce to the up/up block (matrices of size (2*l+1) only) : +C ---------------------------------------------------------------------------------------------- + ELSE +C Calculation of the time-reversal operator : +C ------------------------------------------- + ALLOCATE(time_op(-l:l,-l:l)) + time_op(:,:)=0.d0 + DO m=-l,l + time_op(m,m)=1.d0 + ENDDO +C time_op is Identity. + CALL timeinv_op(time_op,(2*l+1),l,isrt) +C time_op is now the time-reversal operator in the desired basis ({new_i}) +C + IF (nsp==1) THEN +C Application of the time-reversal operation and symmetrization : +C --------------------------------------------------------------- + ALLOCATE(tmp_mat(-l:l,-l:l,1)) + tmp_mat(-l:l,-l:l,1)= + = MATMUL( Dmat(1,iorb)%mat(-l:l,-l:l), + & TRANSPOSE(time_op(-l:l,-l:l) ) ) + tmp_mat(-l:l,-l:l,1)= + = MATMUL(time_op(-l:l,-l:l), + & CONJG(tmp_mat(-l:l,-l:l,1)) ) +C The operation performed is : time_op.conjugate(Dmat).transpose(conjugate(time_op)) +C or in other words, D(T)_{new_i} . Dmat* . D(inverse(T))*_{new_i} + Dmat(1,iorb)%mat(-l:l,-l:l) = + & ( Dmat(1,iorb)%mat(-l:l,-l:l) + + & tmp_mat(-l:l,-l:l,1) )/2.d0 + DEALLOCATE(tmp_mat) + ELSE +C Application of the time-reversal operation +C ------------------------------------------ + ALLOCATE(tmp_mat(-l:l,-l:l,nsp)) + DO is=1,nsp + is1=is+(-1)**(is+1) +C the time reversal operation transforms up/up -1- in dn/dn -2- and up/dn -3- in dn/up -4 (and vice versa) + tmp_mat(-l:l,-l:l,is)= + = MATMUL( Dmat(is1,iorb)%mat(-l:l,-l:l), + & TRANSPOSE( time_op(-l:l,-l:l) ) ) + tmp_mat(-l:l,-l:l,is)= + = MATMUL( time_op(-l:l,-l:l), + & CONJG( tmp_mat(-l:l,-l:l,is) ) ) +C The operation performed is : time_op.conjugate(Dmat).transpose(conjugate(time_op)) +C or in other words, D(T)_{new_i} . Dmat* . D(inverse(T))*_{new_i} + IF (is.gt.2) THEN + tmp_mat(-l:l,-l:l,is)=-tmp_mat(-l:l,-l:l,is) + ENDIF +C Off diagonal terms are multiplied by (-1). + ENDDO +C Symmetrization of Dmat : +C ------------------------ + DO is=1,nsp + Dmat(is,iorb)%mat(-l:l,-l:l) = + & (Dmat(is,iorb)%mat(-l:l,-l:l)+ + & tmp_mat(-l:l,-l:l,is) )/2.d0 + ENDDO + DEALLOCATE(tmp_mat) + ENDIF + DEALLOCATE(time_op) +C + ENDIF ! End of the type basis if-then-else + ENDDO ! End of the iorb loop +C + RETURN + END + + + + From 49d16185fbac01fda5a1e24cb00ff959cd63d8fb Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 18:43:18 +0200 Subject: [PATCH 13/16] [wien2k] fix stale docstrings: generators use exact harmonics, not the float32 cast --- python/triqs_dftkit/wien2k/parproj.py | 8 ++++---- python/triqs_dftkit/wien2k/sympar.py | 11 +++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/python/triqs_dftkit/wien2k/parproj.py b/python/triqs_dftkit/wien2k/parproj.py index 5caeb41..e75b064 100644 --- a/python/triqs_dftkit/wien2k/parproj.py +++ b/python/triqs_dftkit/wien2k/parproj.py @@ -44,10 +44,10 @@ the per-orbital Rloc spinor rotrep (set_rotloc.f), and a time-reversal flag. The reference case CaOs2 is SP+SO (ifSP=ifSO=1, ns=2), so every per-orbital -matrix is the full 2*(2l+1)=10 spin+orbital block. The cubic transmat (cast to -complex64 for the Os shells, as dmftproj does in set_ang_trans.f:146) and the -rot_projectmat local rotation are applied to matn_rep before writing, exactly -as in ctqmcout. +matrix is the full 2*(2l+1)=10 spin+orbital block. The exact cubic transmat and +the rot_projectmat local rotation are applied to matn_rep before writing, +exactly as in ctqmcout (dmftproj reads the same full-precision templates after +the precision fix). outputqmc.f parproj writer: 897-1183. set_projections.f s12/projector: 163-197/273-622. density.f Theta path: 588-915. symmetrize_mat.f / diff --git a/python/triqs_dftkit/wien2k/sympar.py b/python/triqs_dftkit/wien2k/sympar.py index d78769d..a74b3db 100644 --- a/python/triqs_dftkit/wien2k/sympar.py +++ b/python/triqs_dftkit/wien2k/sympar.py @@ -31,16 +31,15 @@ crorb(1:ncrorb). The orb ordering is (sort, l, atom) per dmftproj.f:357-387. The per-shell basis transmat is per sort: a complex shell uses the exact -identity, a cubic shell uses the single-precision CMPLX cast of the cubic-d -harmonics (set_ang_trans.f:146), giving 0.70710676908 for 1/sqrt2 — the same -truncation ctqmcout carries. Mixed within one file (Ca complex exact, Os cubic -truncated for CaOs2). +identity, a cubic shell uses the exact double-precision cubic-d harmonics (the +same full-precision templates dmftproj reads after the precision fix), as +ctqmcout does. Mixed within one file (Ca complex, Os cubic for CaOs2). sympar drops three things symqmc/ctqmcout carry: no orbital-description block at the top, no ifsplit/irep sub-block selection (always the full matrix), and no crorb%ifSOat/correp metadata. It is purely group-theoretic: header, perms, -optional timeflag line (ifSP), the representation matrices, and — only when -.not.ifSP — a paramagnetic time-reversal operator per orbital. +optional timeflag line (ifSP), the representation matrices, and (only when +.not.ifSP) a paramagnetic time-reversal operator per orbital. This reference case (CaOs2) is SP+SO: indmftpr SO flag=1 sets ifSO, and ifSO=>ifSP, so it exercises the non-mixing 2*(2l+1)=10-wide block-diag spinor From 4c34cd7040eff0917ec944d149e6f347e18db717 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 16 Jun 2026 19:36:53 +0200 Subject: [PATCH 14/16] [wien2k] port and verify the non-spin-orbit (ifSO=0) path The generators were validated only for the SO case (2*(2l+1) spinor matrices); the non-SO path (ifSO=0, the common DMFT case e.g. SrVO3) wrongly emitted SO-sized matrices. Handle ifSO=0 in symqmc/ctqmcout/sympar/parproj: (2l+1) matrices, per-spin orthonormalization (orthogonal_wannier), bare (2l+1) representation and Rloc, two independent density-matrix spin blocks, timeinv always false. Add wien2k_noso test against a precision-fixed dmftproj run without -so (CaOs2 spin-polarized non-SO, full-rank window): ctqmcout 1.4e-15, symqmc 2.1e-14, sympar/parproj at machine precision; SO tests unchanged. Part of #7. --- python/triqs_dftkit/wien2k/ctqmcout.py | 65 ++++++---- python/triqs_dftkit/wien2k/parproj.py | 112 +++++++++++++++--- python/triqs_dftkit/wien2k/sympar.py | 15 ++- python/triqs_dftkit/wien2k/symqmc.py | 55 +++++++-- test/python/wien2k/CMakeLists.txt | 13 ++ test/python/wien2k/CaOs2_noso.almblmdn.gz | Bin 0 -> 283940 bytes test/python/wien2k/CaOs2_noso.almblmup.gz | Bin 0 -> 284117 bytes test/python/wien2k/CaOs2_noso.ctqmcout.gz | Bin 0 -> 27136 bytes test/python/wien2k/CaOs2_noso.indmftpr | 11 ++ test/python/wien2k/CaOs2_noso.symqmc.gz | Bin 0 -> 986 bytes .../python/wien2k/CaOs2_noso_partial.indmftpr | 11 ++ .../wien2k/CaOs2_noso_partial.parproj.gz | Bin 0 -> 69098 bytes .../wien2k/CaOs2_noso_partial.sympar.gz | Bin 0 -> 1923 bytes test/python/wien2k/wien2k_noso_python.py | 83 +++++++++++++ test/python/wien2k/wien2k_symqmc_mixing.py | 2 +- 15 files changed, 315 insertions(+), 52 deletions(-) create mode 100644 test/python/wien2k/CaOs2_noso.almblmdn.gz create mode 100644 test/python/wien2k/CaOs2_noso.almblmup.gz create mode 100644 test/python/wien2k/CaOs2_noso.ctqmcout.gz create mode 100644 test/python/wien2k/CaOs2_noso.indmftpr create mode 100644 test/python/wien2k/CaOs2_noso.symqmc.gz create mode 100644 test/python/wien2k/CaOs2_noso_partial.indmftpr create mode 100644 test/python/wien2k/CaOs2_noso_partial.parproj.gz create mode 100644 test/python/wien2k/CaOs2_noso_partial.sympar.gz create mode 100644 test/python/wien2k/wien2k_noso_python.py diff --git a/python/triqs_dftkit/wien2k/ctqmcout.py b/python/triqs_dftkit/wien2k/ctqmcout.py index b8ac01e..b46bd80 100644 --- a/python/triqs_dftkit/wien2k/ctqmcout.py +++ b/python/triqs_dftkit/wien2k/ctqmcout.py @@ -112,18 +112,23 @@ def _build_orbs(info): # --- Rloc spinor representation (set_rotloc.f / setsym.f) --------------------- -def _rloc_rotrep(op, l, transmat): - """rotloc%rotrep(l)%mat, the 2(2l+1) spinor rotation in the new basis for a - non-mixing SO shell, with identity struct local rotation (rotloc_ref - Euler = 0). rotloc%rotl = blkdiag(ephase*D, conj(ephase)*D) with - D = D(R[isym])_{lm}, ephase = exp(i*phase/2); rotrep = S rotl S^H, - S = blkdiag(transmat, transmat). Returns (rotrep, timeinv).""" +def _rloc_rotrep(op, l, transmat, ifSO): + """rotloc%rotrep(l)%mat, the Rloc rotation in the new basis for a non-mixing + shell, with identity struct local rotation (rotloc_ref Euler = 0). + + Under SO it is the 2(2l+1) spinor rotation: rotloc%rotl = + blkdiag(ephase*D, conj(ephase)*D), rotrep = S rotl S^H, S = + blkdiag(transmat, transmat). Without SO srot%timeinv is always false, there + is no spin phase, and it reduces to the bare (2l+1) transmat D transmat^H + (set_rotloc.f non-SO branch). Returns (rotrep, timeinv).""" a, b, g, iprop = op['a'], op['b'], op['g'], op['iprop'] + D = dmat(l, a, b, g, float(iprop)) + if not ifSO: + return transmat @ D @ np.conj(transmat.T), False krotm = op['krotm'] det2 = krotm[0, 0] * krotm[1, 1] - krotm[0, 1] * krotm[1, 0] timeinv = det2 < 0.0 phase = (g - a) if timeinv else (a + g) - D = dmat(l, a, b, g, float(iprop)) if timeinv: D = tmat(l) @ np.conj(D) # setsym.f:320-326 orbital time reversal ephase = np.exp(1j * phase / 2) @@ -276,10 +281,17 @@ def write_ctqmcout(case): for ispin in range(ns): mat_rep[(icr, ik, ispin)] = transmat @ spin_blocks[ispin] - # Loewdin: per k stack all crorb rows. A mixing crorb contributes its full - # 2(2l+1) block once (is=1 only); a non-mixing one the two (2l+1) spin - # blocks (orthogonal_wannier_SO ndim layout). - for ik in range(nk): + # Loewdin orthonormalization. Under SO (orthogonal_wannier_SO) the up+dn + # blocks of each crorb are stacked together and a single overlap is + # orthonormalized per k. Without SO (orthogonal_wannier) spin is a good + # quantum number, so each spin is orthonormalized independently over the + # stack of (2l+1)-wide crorb blocks of that spin. + if ifSO: + ortho_groups = [[(ik, None)] for ik in range(nk)] + else: + ortho_groups = [[(ik, ispin)] for ik in range(nk) for ispin in range(ns)] + for group in ortho_groups: + (ik, gspin) = group[0] incl, nb_bot, nb_top = windows[ik] if not incl: continue @@ -287,15 +299,18 @@ def write_ctqmcout(case): layout = [] # (key, nrows) for icr, cr in enumerate(crorbs): l = cr['l'] - if mixing[(l, cr['sort'])]: + if ifSO and mixing[(l, cr['sort'])]: blocks.append(mat_rep[(icr, ik)]) layout.append(((icr, ik), 2 * (2 * l + 1))) - else: + elif ifSO: for ispin in range(ns): blocks.append(mat_rep[(icr, ik, ispin)]) layout.append(((icr, ik, ispin), 2 * l + 1)) + else: + blocks.append(mat_rep[(icr, ik, gspin)]) + layout.append(((icr, ik, gspin), 2 * l + 1)) D = np.vstack(blocks) # ndim x nbnd - # match the Fortran's exact BLAS calls (orthogonal_wannier_SO): the + # match the Fortran's exact BLAS calls (orthogonal_wannier[_SO]): the # near-singular O^{-1/2} amplifies any last-bit difference, so use the # identical ZGEMM trans flags rather than numpy's conj-transpose copies. O = zgemm(1.0, D, D, trans_b=2) # ZGEMM('N','C'): D @ D^H @@ -317,7 +332,7 @@ def write_ctqmcout(case): l, rotloc_ref[cr['sort'] - 1], ops, cr['atom'], iref, transmat)) else: op = next(o for o in ops if o['perm'][iref - 1] == cr['atom']) - rloc_blocks.append(_rloc_rotrep(op, l, transmat)) + rloc_blocks.append(_rloc_rotrep(op, l, transmat, ifSO)) # ---- write ---- with open(case + '.ctqmcout', 'w') as f: @@ -338,15 +353,18 @@ def write_ctqmcout(case): l = cr['l'] size = 2 * (2 * l + 1) if ifSO else 2 * l + 1 f.write('%6d %6d %6d %6d %6d %6d \n' % - (cr['atom'], cr['sort'], l, size, 1, 1)) + (cr['atom'], cr['sort'], l, size, 1 if ifSO else 0, 1)) - # Rloc block per crorb (non-mixing SP+SO whole shell) + # Rloc block per crorb. SO writes the 2*(2l+1) spinor whole shell; + # non-SO the bare (2l+1) shell. The time-reversal flag follows under + # SO always, under non-SO only when ifSP (outputqmc.f:347-351). for rotrep, timeinv in rloc_blocks: for m in range(rotrep.shape[0]): write_row(f, rotrep[m, :].real) for m in range(rotrep.shape[0]): write_row(f, rotrep[m, :].imag) - f.write('%6d\n' % (1 if timeinv else 0)) + if ifSO or ifSP: + f.write('%6d\n' % (1 if timeinv else 0)) # complex-harmonics -> basis transform block (crorb%first only). Mixing # writes the full 2(2l+1) transmat; non-mixing the spin block-diagonal. @@ -358,14 +376,17 @@ def write_ctqmcout(case): d = 2 * l + 1 if mixing[(l, cr['sort'])]: spinrot = transmat - else: + elif ifSO: spinrot = np.zeros((2 * d, 2 * d), dtype=complex) spinrot[:d, :d] = transmat spinrot[d:, d:] = transmat - f.write('%6d %6d \n' % (1, 2 * d)) - for m in range(2 * d): + else: + spinrot = transmat # bare (2l+1) transform, non-SO + dim = spinrot.shape[0] + f.write('%6d %6d \n' % (1, dim)) + for m in range(dim): write_row(f, spinrot[m, :].real) - for m in range(2 * d): + for m in range(dim): write_row(f, spinrot[m, :].imag) # number of bands per k (skip is=2 under SO) diff --git a/python/triqs_dftkit/wien2k/parproj.py b/python/triqs_dftkit/wien2k/parproj.py index e75b064..2fb5957 100644 --- a/python/triqs_dftkit/wien2k/parproj.py +++ b/python/triqs_dftkit/wien2k/parproj.py @@ -138,6 +138,18 @@ def _srot_rotrep_nonmixing(op, l, transmat, ifSP, ifSO): # --- rotloc rotrep (set_rotloc.f) under SP+SO, non-mixing -------------------- +def _rotloc_rotrep_nonso(orb, ops, info, transmat): + """rotloc(iatom)%rotrep(l)%mat without SO: the bare (2l+1) Rloc rotation in + the new basis, transmat D(Rloc)_{lm} transmat^H with D(Rloc) the symmetry op + mapping the sort representative onto this atom (set_rotloc.f non-SO branch). + srot%timeinv is always false under non-SO, so timeinv=False.""" + l = orb['l'] + iref = sum(info['mult'][:orb['sort'] - 1]) + 1 + op = next(o for o in ops if o['perm'][iref - 1] == orb['atom']) + D = dmat(l, op['a'], op['b'], op['g'], float(op['iprop'])) + return transmat @ D @ np.conj(transmat.T), False + + def _rotloc_rotrep_so(orb, ops, info, ref, transmat, mixing): """rotloc(iatom)%rotrep(l)%mat, the full 2*(2l+1) Rloc spinor rotation in the new basis under SP+SO (set_rotloc.f), plus timeinv flag. @@ -368,6 +380,44 @@ def _symmetrize_densmat(orbs, info, ops, nsym, srot_rotreps, dens_raw, ns, return out +def _symmetrize_densmat_nonso(orbs, info, ops, nsym, srot_rotreps, dens_raw): + """symmetrize_mat for the non-SO non-mixing path (symmetrize_mat.f:196-262, + nsp=2). Only the two diagonal blocks (up/up, dn/dn) exist; srot%timeinv is + always false so the ephase phase factors are 1. Each block is summed over + symmetry ops as rotrep block rotrep^H, equivalent atoms scattering via the + permutation, divided by nsym. Returns per-atom [up/up, dn/dn].""" + out = {} + isort_groups = {} + for o in orbs: + isort_groups.setdefault(o['sort'], []).append(o) + for isrt, group in isort_groups.items(): + l = group[0]['l'] + d = 2 * l + 1 + mult = len(group) + sym = [[np.zeros((d, d), dtype=complex) for _ in range(2)] + for _ in range(mult)] + for imult in range(mult): + iatom = group[imult]['atom'] + for isym in range(nsym): + op = ops[isym] + rotrep, _, _ = srot_rotreps[(isrt, isym)] + jorb = op['perm'][iatom - 1] - iatom + imult + for iss in range(2): + blk = dens_raw[iatom][iss] + sym[jorb][iss] += rotrep @ (blk @ np.conj(rotrep.T)) + for imult in range(mult): + iatom = group[imult]['atom'] + out[iatom] = [sym[imult][k] / nsym for k in range(2)] + return out + + +def _rotdens_densmat_nonso(blocks, rotrep_loc): + """rotdens_mat for the non-SO non-mixing path (rot_dens.f:197-228, nsp=2): + each (2l+1) spin block is rotated as conj(Rloc^T) D Rloc with the bare + (2l+1) rotloc rotrep (timeinv always false). Returns [up/up, dn/dn].""" + return [np.conj(rotrep_loc.T) @ (blk @ rotrep_loc) for blk in blocks] + + def _rotdens_densmat(orb, blocks, rotrep_loc, timeinv): """rotdens_mat for non-mixing SP+SO (rot_dens.f:151-193): assemble the four blocks into a 2*(2l+1) matrix, apply inverse(Rloc) D Rloc, return it as the @@ -473,12 +523,17 @@ def write_parproj(case): rotloc_rotrep = {} for o in orbs: transmat = transmats[(o['l'], o['sort'])] - ref = rotloc_ref[o['sort'] - 1] - rotloc_rotrep[o['atom']] = _rotloc_rotrep_so( - o, ops, info, ref, transmat, mixing[(o['l'], o['sort'])]) + if not ifSO: + rotloc_rotrep[o['atom']] = _rotloc_rotrep_nonso(o, ops, info, transmat) + else: + ref = rotloc_ref[o['sort'] - 1] + rotloc_rotrep[o['atom']] = _rotloc_rotrep_so( + o, ops, info, ref, transmat, mixing[(o['l'], o['sort'])]) # ---- density matrices: raw -> symmetrize -> rotdens ---- - # Non-mixing sorts use the 4-block path; mixing sorts the single-block path. + # Non-mixing sorts use the block path; mixing sorts the single-block path. + # Under SO each non-mixing density is the 2*(2l+1) 4-block matrix; without + # SO it is two independent (2l+1) spin blocks (density.f nsp=2 path). nonmix_orbs = [o for o in orbs if not mixing[(o['l'], o['sort'])]] densprint = {} @@ -495,12 +550,20 @@ def write_parproj(case): dens_raw = {o['atom']: _orbital_densmat_blocks( o, info, spins, ns, below_windows, matn_reps_full) for o in nonmix_orbs} - dens_sym = _symmetrize_densmat(nonmix_orbs, info, ops, nsym, - srot_rotreps, dens_raw, ns, ifSP, ifSO) - for o in nonmix_orbs: - rotrep_loc, timeinv = rotloc_rotrep[o['atom']] - densprint[o['atom']] = _rotdens_densmat( - o, dens_sym[o['atom']], rotrep_loc, timeinv) + if ifSO: + dens_sym = _symmetrize_densmat(nonmix_orbs, info, ops, nsym, + srot_rotreps, dens_raw, ns, ifSP, ifSO) + for o in nonmix_orbs: + rotrep_loc, timeinv = rotloc_rotrep[o['atom']] + densprint[o['atom']] = _rotdens_densmat( + o, dens_sym[o['atom']], rotrep_loc, timeinv) + else: + dens_sym = _symmetrize_densmat_nonso(nonmix_orbs, info, ops, nsym, + srot_rotreps, dens_raw) + for o in nonmix_orbs: + rotrep_loc, _ = rotloc_rotrep[o['atom']] + densprint[o['atom']] = _rotdens_densmat_nonso( + dens_sym[o['atom']], rotrep_loc) for o in orbs: l, sort = o['l'], o['sort'] @@ -550,18 +613,29 @@ def write_parproj(case): for mi in range(2 * l + 1): write_row(f, P[mi, :].imag) - # (B) density matrix, SP+SO 2*(2l+1) (outputqmc.f:1012-1066). + # (B) density matrix (outputqmc.f:1012-1066). SO writes the single + # 2*(2l+1) block; mixing too; non-SO the two (2l+1) spin blocks + # (each real then imag, per spin, outputqmc.f:1052-1064). dp = densprint[atom] - for m in range(2 * (2 * l + 1)): - write_row(f, dp[m, :].real) - for m in range(2 * (2 * l + 1)): - write_row(f, dp[m, :].imag) - - # (C) Rloc rotrep, SP+SO 2*(2l+1) (outputqmc.f:1130-1177). + if ifSO or ismix: + for m in range(2 * (2 * l + 1)): + write_row(f, dp[m, :].real) + for m in range(2 * (2 * l + 1)): + write_row(f, dp[m, :].imag) + else: + for ispin in range(ns): + for m in range(2 * l + 1): + write_row(f, dp[ispin][m, :].real) + for ispin in range(ns): + for m in range(2 * l + 1): + write_row(f, dp[ispin][m, :].imag) + + # (C) Rloc rotrep (outputqmc.f:1130-1177). SO/mixing 2*(2l+1); + # non-SO bare (2l+1). The time-reversal flag follows under ifSP. rotrep_loc, timeinv = rotloc_rotrep[atom] - for m in range(2 * (2 * l + 1)): + for m in range(rotrep_loc.shape[0]): write_row(f, rotrep_loc[m, :].real) - for m in range(2 * (2 * l + 1)): + for m in range(rotrep_loc.shape[0]): write_row(f, rotrep_loc[m, :].imag) if ifSP: f.write('%6d\n' % (1 if timeinv else 0)) diff --git a/python/triqs_dftkit/wien2k/sympar.py b/python/triqs_dftkit/wien2k/sympar.py index a74b3db..bc8bb09 100644 --- a/python/triqs_dftkit/wien2k/sympar.py +++ b/python/triqs_dftkit/wien2k/sympar.py @@ -106,12 +106,23 @@ def _nonmixing_matrix(op, shell, ti): return mat -def _shell_matrix(op, shell, ti): +def _nonmixing_orbital(op, shell): + """Non-SO spin-diagonal basis: the bare (2l+1) representation + P D(R)_{lm} P^H (setsym.f non-SO branch, outputqmc.f:1342-1349). Under + non-SO srot%timeinv is always false, so no time-reversal or phase.""" + l, P = shell['l'], shell['P'] + rotl = dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + return P @ rotl @ np.conj(P.T) + + +def _shell_matrix(op, shell, ti, ifSO): l = shell['l'] if l == 0: return _l0_matrix(op, ti) if shell['mixing']: return mixing_rotrep(op, l, shell['P'], bool(ti)) + if not ifSO: + return _nonmixing_orbital(op, shell) return _nonmixing_matrix(op, shell, ti) @@ -161,7 +172,7 @@ def write_sympar(case): f.write(fmt(1.0) + '\n') f.write(fmt(0.0) + '\n') continue - _write_matrix(f, _shell_matrix(op, sh, ti)) + _write_matrix(f, _shell_matrix(op, sh, ti, ifSO)) if not ifSP: for sh in shells: diff --git a/python/triqs_dftkit/wien2k/symqmc.py b/python/triqs_dftkit/wien2k/symqmc.py index 33e5785..18bfd39 100644 --- a/python/triqs_dftkit/wien2k/symqmc.py +++ b/python/triqs_dftkit/wien2k/symqmc.py @@ -47,10 +47,12 @@ is full double precision. """ +import os + import numpy as np from ._dmftproj import (dmat, mixing_rotrep, read_dmftsym, read_fromfile, - read_indmftpr, reptrans, timeinv_orbital) + read_indmftpr, reptrans, timeinv_orbital, tmat) # --- correlated shells ------------------------------------------------------- @@ -85,35 +87,63 @@ def _read_correlated_shells(indmftpr, struct): def write_symqmc(case): - """Write .symqmc from .dmftsym, .indmftpr, .struct.""" + """Write .symqmc from .dmftsym, .indmftpr, .struct. + + ifSO comes from the indmftpr SO flag; ifSP from the presence of + .almblm{up,dn} (ifSO => ifSP). With SO the matrices are the 2*(2l+1) + block-diag spinor representation and a timeflag line is written; without SO + they are the bare (2l+1) representation, with a timeflag line (all zero) + only when ifSP. The paramagnetic time-reversal tail follows when .not.ifSP.""" nsym, ops = read_dmftsym(case + '.dmftsym') info = read_indmftpr(case + '.indmftpr') shells, so = _correlated_shells(info), info['so'] natom = len(ops[0]['perm']) + ifSO = bool(so) + ifSP = (os.path.exists(case + '.almblmup') + and os.path.exists(case + '.almblmdn')) or ifSO + timeinv = [] for op in ops: det2 = op['krotm'][0, 0] * op['krotm'][1, 1] - op['krotm'][0, 1] * op['krotm'][1, 0] - timeinv.append(1 if (so and det2 < 0.0) else 0) + timeinv.append(1 if (ifSO and det2 < 0.0) else 0) with open(case + '.symqmc', 'w') as f: f.write('%6d %6d\n' % (nsym, natom)) for op in ops: f.write(''.join('%6d ' % p for p in op['perm']) + '\n') - if so: + if ifSP: f.write(''.join('%6d ' % t for t in timeinv) + '\n') for isym, op in enumerate(ops): for sh in shells: - f.write(_format_matrix(_shell_matrix(op, sh, timeinv[isym]))) + f.write(_format_matrix(_shell_matrix(op, sh, timeinv[isym], ifSO))) + if not ifSP: + for sh in shells: + f.write(_format_matrix(_time_op_matrix(sh))) + + +def _time_op_matrix(shell): + """Paramagnetic time-reversal operator for one correlated shell (.not.ifSP, + outputqmc.f:835-887): the (2l+1) operator P T P^T in the new basis; the s + shell reduces to the 1x1 identity.""" + l = shell['l'] + if l == 0: + return np.array([[1.0 + 0j]], dtype=complex) + P = shell['P'] + return (P @ tmat(l) @ P.T) @ np.eye(2 * l + 1, dtype=complex) -def _shell_matrix(op, shell, ti): - """Spinor symmetry matrix for one correlated shell under one operation.""" +def _shell_matrix(op, shell, ti, ifSO): + """Symmetry matrix for one correlated shell under one operation: the + 2*(2l+1) block-diag spinor representation under SO, the bare (2l+1) + representation otherwise.""" l = shell['l'] if l == 0: - return _l0_matrix(op, ti) + return _l0_matrix(op, ti) if ifSO else np.array([[1.0 + 0j]], dtype=complex) if shell['mixing']: return _mixing_matrix(op, shell, ti) + if not ifSO: + return _nonmixing_orbital(op, shell) return _nonmixing_matrix(op, shell, ti) @@ -144,6 +174,15 @@ def _nonmixing_matrix(op, shell, ti): return mat +def _nonmixing_orbital(op, shell): + """Non-SO spin-diagonal basis: the bare (2l+1) representation + P D(R)_{lm} P^H (setsym.f non-SO branch). Under non-SO srot%timeinv is + always false, so no orbital time-reversal or spin phase enters.""" + l, P = shell['l'], shell['P'] + rotl = dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm'])) + return P @ rotl @ np.conj(P.T) + + def _mixing_matrix(op, shell, ti): """Spin-coupling basis: full 2(2l+1) spinor representation (setsym.f, timeinv.f), shared with sympar via _dmftproj.mixing_rotrep.""" diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt index 23ac38c..6eefc25 100644 --- a/test/python/wien2k/CMakeLists.txt +++ b/test/python/wien2k/CMakeLists.txt @@ -121,3 +121,16 @@ add_test(NAME Py_wien2k_outband_python WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_property(TEST Py_wien2k_outband_python APPEND PROPERTY ENVIRONMENT PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) + +# Pure-Python generators on the non-spin-orbit path (ifSO=0, the common DMFT +# case): dmftproj writes (2l+1) matrices, per-spin orthonormalization. Validated +# against the precision-fixed dmftproj run without -so. Reuses CaOs2.struct/dmftsym. +file(COPY CaOs2_noso.indmftpr CaOs2_noso.almblmup.gz CaOs2_noso.almblmdn.gz + CaOs2_noso.ctqmcout.gz CaOs2_noso.symqmc.gz + CaOs2_noso_partial.indmftpr CaOs2_noso_partial.sympar.gz CaOs2_noso_partial.parproj.gz + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +add_test(NAME Py_wien2k_noso_python + COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_noso_python.py + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set_property(TEST Py_wien2k_noso_python APPEND PROPERTY ENVIRONMENT + PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD}) diff --git a/test/python/wien2k/CaOs2_noso.almblmdn.gz b/test/python/wien2k/CaOs2_noso.almblmdn.gz new file mode 100644 index 0000000000000000000000000000000000000000..10bba323563ce9c32d2f3029b087687e4ccd2a13 GIT binary patch literal 283940 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

FsH~z!SgLlI4$eC#tTs>%y)0lf}5n!|SD5FB| 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

j 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

U&-8KmRUr&(i!~~~AMz`cAsozYM>%pVo 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 P6oLOg_|ArK;F=5o_Q>3* literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_noso.almblmup.gz b/test/python/wien2k/CaOs2_noso.almblmup.gz new file mode 100644 index 0000000000000000000000000000000000000000..8080ae5d8b4087fe66928b4e9362887f0b07407d GIT binary patch literal 284117 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 HWEBAbteV7Y literal 0 HcmV?d00001 diff --git a/test/python/wien2k/CaOs2_noso.indmftpr b/test/python/wien2k/CaOs2_noso.indmftpr new file mode 100644 index 0000000..b54bf2f --- /dev/null +++ b/test/python/wien2k/CaOs2_noso.indmftpr @@ -0,0 +1,11 @@ +2 +1 2 +3 +complex +0 0 0 0 +0 0 0 0 +cubic +0 0 2 0 +0 0 0 0 +0 +-2.0 3.0 diff --git a/test/python/wien2k/CaOs2_noso.symqmc.gz b/test/python/wien2k/CaOs2_noso.symqmc.gz new file mode 100644 index 0000000000000000000000000000000000000000..d18da413eab6acef6e6cdc7cbb7836c5ec9ecddf GIT binary patch literal 986 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

d9K|{{N+7n0E%Zp1}w+ox$YA+=1kIf0@-pS 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