diff --git a/CMakeLists.txt b/CMakeLists.txt index de85d43a7f..cd506c2230 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ option(USE_OPENMP " Enable OpenMP in abacus." ON) option(ENABLE_ASAN "Enable AddressSanitizer" OFF) option(BUILD_TESTING "Build ABACUS unit tests" OFF) option(GENERATE_TEST_REPORTS "Enable test report generation" OFF) +option(INFO "Enable gathering of math library information" OFF) set(ABACUS_BIN_NAME abacus) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/modules) @@ -217,7 +218,7 @@ if(ENABLE_DEEPKS) HINTS ${libnpy_INCLUDE_DIR} ) if(NOT libnpy_SOURCE_DIR) - include(FetchContent) + include(FetchContent) FetchContent_Declare( libnpy GIT_REPOSITORY https://github.com/llohse/libnpy.git @@ -237,14 +238,22 @@ if(DEFINED Libxc_DIR) set(ENABLE_LIBXC ON) endif() if(ENABLE_LIBXC) - find_package(Libxc) + find_package(Libxc HINTS ${Libxc_DIR}/share/cmake/Libxc) if(${Libxc_FOUND}) message("Using Libxc.") add_compile_definitions(USE_LIBXC) target_link_libraries(${ABACUS_BIN_NAME} Libxc::xc) include_directories(${Libxc_INCLUDE_DIRS}) else() - message(WARNING "Will not use Libxc.") + include(FetchContent) + FetchContent_Declare( + Libxc + GIT_REPOSITORY https://gitlab.com/libxc/libxc.git + GIT_TAG "5.2.3" + GIT_SHALLOW TRUE + GIT_PROGRESS TRUE + ) + FetchContent_MakeAvailable(Libxc) endif() endif() @@ -261,6 +270,12 @@ add_compile_definitions( TEST_EXX_RADIAL=1 ) +if(INFO) + message(STATUS "Will gather math lib info.") + add_compile_definitions(GATHER_INFO) + # modifications on blas_connector and lapack_connector +endif() + IF (BUILD_TESTING) set(CMAKE_CXX_STANDARD 14) # Required in orbital include(CTest) @@ -310,7 +325,7 @@ target_link_libraries(${ABACUS_BIN_NAME} neighbor orb io - ions + relax lcao gint parallel @@ -319,7 +334,7 @@ target_link_libraries(${ABACUS_BIN_NAME} pw ri driver - xc + xc_ hsolver elecstate hamilt diff --git a/docs/examples/dpgen.md b/docs/examples/dpgen.md index f2ff30435a..54c69604f9 100644 --- a/docs/examples/dpgen.md +++ b/docs/examples/dpgen.md @@ -2,7 +2,9 @@ [back to main page](../../README.md) -[DP-GEN](https://github.com/deepmodeling/dpgen), the deep potential generator, is a package designed to generate deep learning based model of interatomic potential energy and force fields (Yuzhi Zhang, Haidi Wang, Weijie Chen, Jinzhe Zeng, Linfeng Zhang, Han Wang, and Weinan E, DP-GEN: A concurrent learning platform for the generation of reliable deep learning based potential energy models, Computer Physics Communications, 2020, 107206). ABACUS can now interface with DP-GEN to generate deep potentials. In the following, we take the FCC aluminum as an example. +[DP-GEN](https://github.com/deepmodeling/dpgen), the deep potential generator, is a package designed to generate deep learning based model of interatomic potential energy and force fields (Yuzhi Zhang, Haidi Wang, Weijie Chen, Jinzhe Zeng, Linfeng Zhang, Han Wang, and Weinan E, DP-GEN: A concurrent learning platform for the generation of reliable deep learning based potential energy models, Computer Physics Communications, 2020, 107206). ABACUS can now interface with DP-GEN to generate deep potentials and performe autotests. In the following, we take the FCC aluminum as an example. + +## init_bulk and run This example can be found in examples/dpgen-example/init_and_run directory. @@ -11,7 +13,7 @@ Firstly, one needs to prepare input files for ABACUS calculation, e.g., “INPUT Secondly, for the "dpgen init_bulk" step, an `init.json` file should be provided: -``` +```json { "init_fp_style": "ABACUS", # abacus interface "stages": [1,2,3,4], @@ -36,7 +38,7 @@ Secondly, for the "dpgen init_bulk" step, an `init.json` file should be provided ``` Next, for the "dpgen run" step, the following `run_param.json` should be provided. -``` +```json { "type_map": [ "Al" @@ -181,6 +183,188 @@ Next, for the "dpgen run" step, the following `run_param.json` should be provide } ``` +## autotest + +This example can be found in examples/dpgen-example/autotest directory. + +`dpgen autotest` supports to perform `relaxation`,`eos` (equation of state),`elastic`,`surface`,`vacancy`, and `interstitial` calculations with ABACUS. A `property.json` and `machine.json` file need to be provided. For example, + +`property.json`: +```json + +{ + "structures": ["confs/"], + "interaction": { + "type": "abacus", + "incar": "./INPUT", + "potcar_prefix":"./", + "potcars": {"Al": "Al.PD04.PBE.UPF"}, + "orb_files": {"Al":"Al_gga_10au_100Ry_3s3p2d.orb"} + }, + "_relaxation": { + "cal_type": "relaxation", + "cal_setting":{ + "input_prop": "./INPUT.rlx" + } + }, + "properties": [ + { + "type": "eos", + "vol_start": 0.85, + "vol_end": 1.15, + "vol_step": 0.01, + "cal_setting": { + "relax_pos": true, + "relax_shape": true, + "relax_vol": false, + "overwrite_interaction":{ + "type": "abacus", + "incar": "./INPUT", + "potcar_prefix":"./", + "orb_files": {"Al":"Al_gga_10au_100Ry_3s3p2d.orb"}, + "potcars": {"Al": "Al.PD04.PBE.UPF"} } + } + }, + { + "type": "elastic", + "skip": false, + "norm_deform": 1e-2, + "shear_deform": 1e-2 + }, + { + "type": "vacancy", + "skip": false, + "supercell": [2, 2, 2] + }, + { + "type": "surface", + "skip": true, + "min_slab_size": 15, + "min_vacuum_size":11, + "pert_xz": 0.01, + "max_miller": 3, + "cal_type": "static" + } + ] +} +``` + +`machine.json` + +```json +{ + "api_version": "1.0", + "deepmd_version": "2.1.0", + "train" :[ + { + "command": "dp", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "00*/train.log", + "grouped":true, + "job_name": "Al-train-VASP", + "disk_size": 100, + "scass_type":"c8_m32_1 * NVIDIA V100", + "platform": "ali", + "image_name":"LBG_DeePMD-kit_2.1.0_v1", + "on_demand":0 + } + } + }, + "resources": { + "number_node":123473334635, + "local_root":"./", + "cpu_per_node": 4, + "gpu_per_node": 1, + "queue_name": "GPU", + "group_size": 1 + } + }], + "model_devi": + [{ + "command": "lmp -i input.lammps -v restart 0", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "*/model_devi.log", + "grouped":true, + "job_name": "Al-devia-ABACUS", + "disk_size": 200, + "scass_type":"c8_m32_1 * NVIDIA V100", + "platform": "ali", + "image_name":"LBG_DeePMD-kit_2.1.0_v1", + "on_demand":0 + } + } + }, + "resources": { + "number_node": 28348383, + "local_root":"./", + "cpu_per_node": 4, + "gpu_per_node": 1, + "queue_name": "GPU", + "group_size": 100 + } + }], + "fp": + [{ + "command": "OMP_NUM_THREADS=1 mpirun -np 16 abacus", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "task*/fp.log", + "grouped":true, + "job_name": "al-DFT-test", + "disk_size": 100, + "scass_type":"c32_m128_cpu", + "platform": "ali", + "image_name":"XXXXX", + "on_demand":0 + } + } + }, + "resources": { + "number_node": 712254638889, + "cpu_per_node": 32, + "gpu_per_node": 0, + "queue_name": "CPU", + "group_size": 2, + "local_root":"./", + "source_list": ["/opt/intel/oneapi/setvars.sh"] + } + } + ] +} + +``` + +For each property, the command `dpgen autotest make property.json` will generate the input files, `dpgen autotest run property.json machine.json` will run the corresponding tasks, and `dpgen autotest post property.json` will collect the final results. + Notes: - The ABACUS-DPGEN interface can be used in both pw and lcao basis. diff --git a/docs/input-main.md b/docs/input-main.md index 505c2e5f82..60be0721de 100644 --- a/docs/input-main.md +++ b/docs/input-main.md @@ -68,7 +68,7 @@ - [Variables useful for debugging](#variables-useful-for-debugging) - [nurse](#nurse) | [t_in_h](#t_in_h) | [vl_in_h](#vl_in_h) | [vnl_in_h](#vnl_in_h) | [test_force](#test_force) | [test_stress](#test_stress) | [colour](#colour) | [test_just_neighbor](#test_just_neighbor) + [nurse](#nurse) | [t_in_h](#t_in_h) | [vl_in_h](#vl_in_h) | [vnl_in_h](#vnl_in_h) | [test_force](#test_force) | [test_stress](#test_stress) | [colour](#colour) - [DeePKS](#deepks) @@ -148,6 +148,9 @@ This part of variables are used to control general system parameters. - *md*: molecular dynamics - *sto-scf*: do self-consistent electronic structure calculation with [stochastic DFT](#electronic-structure-sdft) - *sto-md*: molecular dynamics with [stochastic DFT](#electronic-structure-sdft) + - *test_memory* : checks memory required for the calculation. The number is not quite reliable, please use with care + - *test_neighbour* : only performs neighbouring atom search + - *gen_jle* : generates projectors for DeePKS; see also deepks_lmax_descriptor > Note: *istate* and *ienvelope* only work for LCAO basis set and are not working right now. - **Default**: scf @@ -597,9 +600,9 @@ This part of variables are used to control the parameters of stochastic DFT (SDF - **Description**: - Different method to do SDFT. - 1: SDFT calculates $T_n(\hat{h})\ket{\chi}$ twice, where $T_n(x)$ is the n-th order Chebyshev polynomial and $\hat{h}=\frac{\hat{H}-\bar{E}}{\Delta E}$ owning eigen-value $\in(-1,1)$. This method cost less memory but slow. - - 2: SDFT calculates $T_n(\hat{h})\ket{\chi}$ once but need much more memory. This method is fast but when memory is not enough, only method 1 can be used. - - other: use 1 -- **Default**: 1 + - 2: SDFT calculates $T_n(\hat{h})\ket{\chi}$ once but need much more memory. This method is much faster. Besides, it calculate $N_e$ with $\bra{\chi}\sqrt{\hat f}\sqrt{\hat f}\ket{\chi}$, which needs smaller [nche_sto](#nche_sto). However, when memory is not enough, only method 1 can be used. + - other: use 2 +- **Default**: 2 #### nbands_sto @@ -642,6 +645,12 @@ This part of variables are used to control the parameters of stochastic DFT (SDF - **Description**: Frequency (once each initsto_freq steps) to generate new stochastic orbitals when running md. - **Default**:1000 +#### npart_sto + +- **Type**: Integer +- **Description**: Make memory cost to 1/npart_sto times of previous one when running post process of SDFT like DOS with method_sto = 2. +- **Default**:1 + ### Geometry relaxation This part of variables are used to control the geometry relaxation. @@ -963,8 +972,8 @@ Warning: this function is not robust enough for the current version. Please try #### deepks_descriptor_lmax - **Type**: Integer -- **Description**: control the max angular momentum of descriptor basis. -- **Default**: 0 +- **Description**: when generating projectors, this variable controls the max angular momentum of descriptor basis. +- **Default**: 2 #### deepks_scf @@ -1597,12 +1606,6 @@ This part of variables are used to control berry phase and wannier90 interfacae - **Description**: If set to 1, output to terminal will have some color. - **Default**: 0 -#### test_just_neighbor - -- **Type**: Boolean -- **Description**: If set to 1, then only perform the neighboring atoms search. -- **Default**: 0 - ### Electronic conductivities Frequency-dependent electronic conductivities can be calculated with Kubo-Greenwood formula[Phys. Rev. B 83, 235120 (2011)]. diff --git a/docs/install.md b/docs/install.md index 85003e2193..4b76a9f87a 100644 --- a/docs/install.md +++ b/docs/install.md @@ -34,7 +34,7 @@ To compile ABACUS, please make sure that the following prerequisites are present - C++ compiler, supporting C++11. You can use [Intel® C++ compiler](https://software.intel.com/enus/c-compilers) or [GCC](https://gcc.gnu.org/). - MPI compiler. The recommended version are [Intel MPI](https://software.intel.com/enus/mpi-library) or [MPICH](https://www.mpich.org/). -- Fortran compiler for building `BLAS`, `LAPACK`, `ScaLAPACK` or `ELPA`. You can use[Intel® Fortran Compiler](https://www.intel.com/content/www/us/en/developer/tools/oneapi/fortran-compiler.html) [GFortran](https://gcc.gnu.org/fortran/). +- Fortran compiler if you are building `BLAS`, `LAPACK`, `ScaLAPACK`, and `ELPA` from source file. You can use[Intel® Fortran Compiler](https://www.intel.com/content/www/us/en/developer/tools/oneapi/fortran-compiler.html) [GFortran](https://gcc.gnu.org/fortran/). - [BLAS](http://www.netlib.org/blas/). You can use [OpenBLAS](https://www.openblas.net/). - [LAPACK](http://www.netlib.org/lapack/). - [ScaLAPACK](http://www.netlib.org/scalapack/). @@ -42,6 +42,8 @@ To compile ABACUS, please make sure that the following prerequisites are present - [ELPA](https://elpa.mpcdf.mpg.de/) >= 2017. - [CEREAL](https://uscilab.github.io/cereal/). +> GCC version 5.1 or later is required: Intel compilers also use GCC headers and libraries[(ref)](https://www.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compatibility-and-portability/gcc-compatibility-and-interoperability.html#gcc-compatibility-and-interoperability_GUID-52CB6FE0-83DA-4028-9EF4-0DFAF1652736). + These packages can be installed with popular package management system, such as `apt` and `yum`: ```bash @@ -50,7 +52,7 @@ sudo apt update && sudo apt install -y libopenblas-dev liblapack-dev libscalapac > Installing ELPA by apt only matches requirements on Ubuntu 22.04. For earlier linux distributions, you may install elpa from source. -Alternatively, you can choose [Intel® oneAPI toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/commercial-base-hpc.html) (former Parallel Studio) as toolchain. The [Intel® oneAPI Base Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#base-kit) contains Intel® oneAPI Math Kernel Library (aka `MKL`), including `BLAS`, `LAPACK`, `ScaLAPACK` and `FFTW3`, - this means that no Fortran compiler required anymore. The [Intel® oneAPI HPC Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#hpc-kit) contains Intel® MPI Library, and C++ compiler(including MPI compiler). Please noted that building `elpa` with a different MPI library may cause conflict between MPI libraries. Don't forget to [set environment variables](https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-render-linux/top/configure-your-system.html) before you start! `cmake` will use Intel MKL if the environment variable `MKLROOT` is set. +Alternatively, you can choose [Intel® oneAPI toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/commercial-base-hpc.html) (former Parallel Studio) as toolchain. The [Intel® oneAPI Base Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#base-kit) contains Intel® oneAPI Math Kernel Library (aka `MKL`), including `BLAS`, `LAPACK`, `ScaLAPACK` and `FFTW3`. The [Intel® oneAPI HPC Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#hpc-kit) contains Intel® MPI Library, and C++ compiler(including MPI compiler). Please noted that building `elpa` with a different MPI library may cause conflict between MPI libraries. Don't forget to [set environment variables](https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-render-linux/top/configure-your-system.html) before you start! `cmake` will use Intel MKL if the environment variable `MKLROOT` is set. > Please refer to our [guide](https://github.com/deepmodeling/abacus-develop/wiki/Building-and-Running-ABACUS) on requirements. @@ -95,13 +97,13 @@ cmake -B build -DFFTW3_ROOT=/opt/fftw3 If environment variable `MKLROOT` exists, `cmake` will take MKL as a preference, i.e. not using `LAPACK` and `ScaLAPACK`. To disable MKL, unset environment variable `MKLROOT`, or pass `-DMKLROOT=OFF` to `cmake`. -You can also choose to build with which components. +You can also choose to build with which components, e.g.: ```bash cmake -B build -DENABLE_LIBXC=1 -DUSE_CUDA=1 ``` -If Libxc is not installed in standard path (i.e. installed with a custom prefix path), you may add the installation prefix of `FindLibxc.cmake` to `CMAKE_MODULE_PATH` environment variable, or set `Libxc_DIR` to the directory containing the file. +If Libxc is not installed in standard path (i.e. installed with a custom prefix path), you can set `Libxc_DIR` to the corresponding directory. ```bash cmake -B build -DLibxc_DIR=~/libxc @@ -241,9 +243,9 @@ This part of installation is based on [Installation](#installation). If DeePKS f ### Extra prerequisites -- C++ compiler, supporting **C++14**. For example, Intel C++ compiler 18 -- [LibTorch](https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.9.0%2Bcpu.zip) for cpu, with c++11 ABI; -- [Libnpy](https://github.com.cnpmjs.org/llohse/libnpy/); +- C++ compiler, supporting **C++14** +- [LibTorch](https://pytorch.org/) with cxx11 ABI supporting CPU +- [Libnpy](https://github.com/llohse/libnpy/) ### Extra settings for building @@ -283,7 +285,7 @@ OPTS = ${INCLUDES} -Ofast -traceback -std=c++14 -simd -march=native -xHost -m64 - src_external - src_global - src_io -- src_ions +- module_relaxation - src_lcao - src_parallel - src_pdiag diff --git a/examples/dpgen-example/autotest/Al.PD04.PBE.UPF b/examples/dpgen-example/autotest/Al.PD04.PBE.UPF new file mode 100644 index 0000000000..272c57d274 --- /dev/null +++ b/examples/dpgen-example/autotest/Al.PD04.PBE.UPF @@ -0,0 +1,5825 @@ + + + + This pseudopotential file has been produced using the code + ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) + scalar-relativistic version 3.3.1 12/12/2017 by D. R. Hamann + The code is available through a link at URL www.mat-simresearch.com. + Documentation with the package provides a full discription of the + input data below. + + + While it is not required under the terms of the GNU GPL, it is + suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) + in any publication using these pseudopotentials. + + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + Al 13.00 3 2 4 upf +# +# n l f energy (Ha) + 1 0 2.00 + 2 0 2.00 + 2 1 6.00 + 3 0 2.00 + 3 1 1.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 2 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.75000 -0.28491 4 9 6.00000 + 1 1.75000 -0.09967 4 9 6.40000 + 2 1.70000 0.05000 4 9 6.50000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.40000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 2.80000 + 1 2 2.80000 + 2 2 1.50000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact + 3 5.00000 1.30000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -12.00 12.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 0 +# nvcnf +# n l f + + + + + + + + + 0.0000 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 + 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300 0.1400 0.1500 + 0.1600 0.1700 0.1800 0.1900 0.2000 0.2100 0.2200 0.2300 + 0.2400 0.2500 0.2600 0.2700 0.2800 0.2900 0.3000 0.3100 + 0.3200 0.3300 0.3400 0.3500 0.3600 0.3700 0.3800 0.3900 + 0.4000 0.4100 0.4200 0.4300 0.4400 0.4500 0.4600 0.4700 + 0.4800 0.4900 0.5000 0.5100 0.5200 0.5300 0.5400 0.5500 + 0.5600 0.5700 0.5800 0.5900 0.6000 0.6100 0.6200 0.6300 + 0.6400 0.6500 0.6600 0.6700 0.6800 0.6900 0.7000 0.7100 + 0.7200 0.7300 0.7400 0.7500 0.7600 0.7700 0.7800 0.7900 + 0.8000 0.8100 0.8200 0.8300 0.8400 0.8500 0.8600 0.8700 + 0.8800 0.8900 0.9000 0.9100 0.9200 0.9300 0.9400 0.9500 + 0.9600 0.9700 0.9800 0.9900 1.0000 1.0100 1.0200 1.0300 + 1.0400 1.0500 1.0600 1.0700 1.0800 1.0900 1.1000 1.1100 + 1.1200 1.1300 1.1400 1.1500 1.1600 1.1700 1.1800 1.1900 + 1.2000 1.2100 1.2200 1.2300 1.2400 1.2500 1.2600 1.2700 + 1.2800 1.2900 1.3000 1.3100 1.3200 1.3300 1.3400 1.3500 + 1.3600 1.3700 1.3800 1.3900 1.4000 1.4100 1.4200 1.4300 + 1.4400 1.4500 1.4600 1.4700 1.4800 1.4900 1.5000 1.5100 + 1.5200 1.5300 1.5400 1.5500 1.5600 1.5700 1.5800 1.5900 + 1.6000 1.6100 1.6200 1.6300 1.6400 1.6500 1.6600 1.6700 + 1.6800 1.6900 1.7000 1.7100 1.7200 1.7300 1.7400 1.7500 + 1.7600 1.7700 1.7800 1.7900 1.8000 1.8100 1.8200 1.8300 + 1.8400 1.8500 1.8600 1.8700 1.8800 1.8900 1.9000 1.9100 + 1.9200 1.9300 1.9400 1.9500 1.9600 1.9700 1.9800 1.9900 + 2.0000 2.0100 2.0200 2.0300 2.0400 2.0500 2.0600 2.0700 + 2.0800 2.0900 2.1000 2.1100 2.1200 2.1300 2.1400 2.1500 + 2.1600 2.1700 2.1800 2.1900 2.2000 2.2100 2.2200 2.2300 + 2.2400 2.2500 2.2600 2.2700 2.2800 2.2900 2.3000 2.3100 + 2.3200 2.3300 2.3400 2.3500 2.3600 2.3700 2.3800 2.3900 + 2.4000 2.4100 2.4200 2.4300 2.4400 2.4500 2.4600 2.4700 + 2.4800 2.4900 2.5000 2.5100 2.5200 2.5300 2.5400 2.5500 + 2.5600 2.5700 2.5800 2.5900 2.6000 2.6100 2.6200 2.6300 + 2.6400 2.6500 2.6600 2.6700 2.6800 2.6900 2.7000 2.7100 + 2.7200 2.7300 2.7400 2.7500 2.7600 2.7700 2.7800 2.7900 + 2.8000 2.8100 2.8200 2.8300 2.8400 2.8500 2.8600 2.8700 + 2.8800 2.8900 2.9000 2.9100 2.9200 2.9300 2.9400 2.9500 + 2.9600 2.9700 2.9800 2.9900 3.0000 3.0100 3.0200 3.0300 + 3.0400 3.0500 3.0600 3.0700 3.0800 3.0900 3.1000 3.1100 + 3.1200 3.1300 3.1400 3.1500 3.1600 3.1700 3.1800 3.1900 + 3.2000 3.2100 3.2200 3.2300 3.2400 3.2500 3.2600 3.2700 + 3.2800 3.2900 3.3000 3.3100 3.3200 3.3300 3.3400 3.3500 + 3.3600 3.3700 3.3800 3.3900 3.4000 3.4100 3.4200 3.4300 + 3.4400 3.4500 3.4600 3.4700 3.4800 3.4900 3.5000 3.5100 + 3.5200 3.5300 3.5400 3.5500 3.5600 3.5700 3.5800 3.5900 + 3.6000 3.6100 3.6200 3.6300 3.6400 3.6500 3.6600 3.6700 + 3.6800 3.6900 3.7000 3.7100 3.7200 3.7300 3.7400 3.7500 + 3.7600 3.7700 3.7800 3.7900 3.8000 3.8100 3.8200 3.8300 + 3.8400 3.8500 3.8600 3.8700 3.8800 3.8900 3.9000 3.9100 + 3.9200 3.9300 3.9400 3.9500 3.9600 3.9700 3.9800 3.9900 + 4.0000 4.0100 4.0200 4.0300 4.0400 4.0500 4.0600 4.0700 + 4.0800 4.0900 4.1000 4.1100 4.1200 4.1300 4.1400 4.1500 + 4.1600 4.1700 4.1800 4.1900 4.2000 4.2100 4.2200 4.2300 + 4.2400 4.2500 4.2600 4.2700 4.2800 4.2900 4.3000 4.3100 + 4.3200 4.3300 4.3400 4.3500 4.3600 4.3700 4.3800 4.3900 + 4.4000 4.4100 4.4200 4.4300 4.4400 4.4500 4.4600 4.4700 + 4.4800 4.4900 4.5000 4.5100 4.5200 4.5300 4.5400 4.5500 + 4.5600 4.5700 4.5800 4.5900 4.6000 4.6100 4.6200 4.6300 + 4.6400 4.6500 4.6600 4.6700 4.6800 4.6900 4.7000 4.7100 + 4.7200 4.7300 4.7400 4.7500 4.7600 4.7700 4.7800 4.7900 + 4.8000 4.8100 4.8200 4.8300 4.8400 4.8500 4.8600 4.8700 + 4.8800 4.8900 4.9000 4.9100 4.9200 4.9300 4.9400 4.9500 + 4.9600 4.9700 4.9800 4.9900 5.0000 5.0100 5.0200 5.0300 + 5.0400 5.0500 5.0600 5.0700 5.0800 5.0900 5.1000 5.1100 + 5.1200 5.1300 5.1400 5.1500 5.1600 5.1700 5.1800 5.1900 + 5.2000 5.2100 5.2200 5.2300 5.2400 5.2500 5.2600 5.2700 + 5.2800 5.2900 5.3000 5.3100 5.3200 5.3300 5.3400 5.3500 + 5.3600 5.3700 5.3800 5.3900 5.4000 5.4100 5.4200 5.4300 + 5.4400 5.4500 5.4600 5.4700 5.4800 5.4900 5.5000 5.5100 + 5.5200 5.5300 5.5400 5.5500 5.5600 5.5700 5.5800 5.5900 + 5.6000 5.6100 5.6200 5.6300 5.6400 5.6500 5.6600 5.6700 + 5.6800 5.6900 5.7000 5.7100 5.7200 5.7300 5.7400 5.7500 + 5.7600 5.7700 5.7800 5.7900 5.8000 5.8100 5.8200 5.8300 + 5.8400 5.8500 5.8600 5.8700 5.8800 5.8900 5.9000 5.9100 + 5.9200 5.9300 5.9400 5.9500 5.9600 5.9700 5.9800 5.9900 + 6.0000 6.0100 6.0200 6.0300 6.0400 6.0500 6.0600 6.0700 + 6.0800 6.0900 6.1000 6.1100 6.1200 6.1300 6.1400 6.1500 + 6.1600 6.1700 6.1800 6.1900 6.2000 6.2100 6.2200 6.2300 + 6.2400 6.2500 6.2600 6.2700 6.2800 6.2900 6.3000 6.3100 + 6.3200 6.3300 6.3400 6.3500 6.3600 6.3700 6.3800 6.3900 + 6.4000 6.4100 6.4200 6.4300 6.4400 6.4500 6.4600 6.4700 + 6.4800 6.4900 6.5000 6.5100 6.5200 6.5300 6.5400 6.5500 + 6.5600 6.5700 6.5800 6.5900 6.6000 6.6100 6.6200 6.6300 + 6.6400 6.6500 6.6600 6.6700 6.6800 6.6900 6.7000 6.7100 + 6.7200 6.7300 6.7400 6.7500 6.7600 6.7700 6.7800 6.7900 + 6.8000 6.8100 6.8200 6.8300 6.8400 6.8500 6.8600 6.8700 + 6.8800 6.8900 6.9000 6.9100 6.9200 6.9300 6.9400 6.9500 + 6.9600 6.9700 6.9800 6.9900 7.0000 7.0100 7.0200 7.0300 + 7.0400 7.0500 7.0600 7.0700 7.0800 7.0900 7.1000 7.1100 + 7.1200 7.1300 7.1400 7.1500 7.1600 7.1700 7.1800 7.1900 + 7.2000 7.2100 7.2200 7.2300 7.2400 7.2500 7.2600 7.2700 + 7.2800 7.2900 7.3000 7.3100 7.3200 7.3300 7.3400 7.3500 + 7.3600 7.3700 7.3800 7.3900 7.4000 7.4100 7.4200 7.4300 + 7.4400 7.4500 7.4600 7.4700 7.4800 7.4900 7.5000 7.5100 + 7.5200 7.5300 7.5400 7.5500 7.5600 7.5700 7.5800 7.5900 + 7.6000 7.6100 7.6200 7.6300 7.6400 7.6500 7.6600 7.6700 + 7.6800 7.6900 7.7000 7.7100 7.7200 7.7300 7.7400 7.7500 + 7.7600 7.7700 7.7800 7.7900 7.8000 7.8100 7.8200 7.8300 + 7.8400 7.8500 7.8600 7.8700 7.8800 7.8900 7.9000 7.9100 + 7.9200 7.9300 7.9400 7.9500 7.9600 7.9700 7.9800 7.9900 + 8.0000 8.0100 8.0200 8.0300 8.0400 8.0500 8.0600 8.0700 + 8.0800 8.0900 8.1000 8.1100 8.1200 8.1300 8.1400 8.1500 + 8.1600 8.1700 8.1800 8.1900 8.2000 8.2100 8.2200 8.2300 + 8.2400 8.2500 8.2600 8.2700 8.2800 8.2900 8.3000 8.3100 + 8.3200 8.3300 8.3400 8.3500 8.3600 8.3700 8.3800 8.3900 + 8.4000 8.4100 8.4200 8.4300 8.4400 8.4500 8.4600 8.4700 + 8.4800 8.4900 8.5000 8.5100 8.5200 8.5300 8.5400 8.5500 + 8.5600 8.5700 8.5800 8.5900 8.6000 8.6100 8.6200 8.6300 + 8.6400 8.6500 8.6600 8.6700 8.6800 8.6900 8.7000 8.7100 + 8.7200 8.7300 8.7400 8.7500 8.7600 8.7700 8.7800 8.7900 + 8.8000 8.8100 8.8200 8.8300 8.8400 8.8500 8.8600 8.8700 + 8.8800 8.8900 8.9000 8.9100 8.9200 8.9300 8.9400 8.9500 + 8.9600 8.9700 8.9800 8.9900 9.0000 9.0100 9.0200 9.0300 + 9.0400 9.0500 9.0600 9.0700 9.0800 9.0900 9.1000 9.1100 + 9.1200 9.1300 9.1400 9.1500 9.1600 9.1700 9.1800 9.1900 + 9.2000 9.2100 9.2200 9.2300 9.2400 9.2500 9.2600 9.2700 + 9.2800 9.2900 9.3000 9.3100 9.3200 9.3300 9.3400 9.3500 + 9.3600 9.3700 9.3800 9.3900 9.4000 9.4100 9.4200 9.4300 + 9.4400 9.4500 9.4600 9.4700 9.4800 9.4900 9.5000 9.5100 + 9.5200 9.5300 9.5400 9.5500 9.5600 9.5700 9.5800 9.5900 + 9.6000 9.6100 9.6200 9.6300 9.6400 9.6500 9.6600 9.6700 + 9.6800 9.6900 9.7000 9.7100 9.7200 9.7300 9.7400 9.7500 + 9.7600 9.7700 9.7800 9.7900 9.8000 9.8100 9.8200 9.8300 + 9.8400 9.8500 9.8600 9.8700 9.8800 9.8900 9.9000 9.9100 + 9.9200 9.9300 9.9400 9.9500 9.9600 9.9700 9.9800 9.9900 + 10.0000 10.0100 10.0200 10.0300 10.0400 10.0500 10.0600 10.0700 + 10.0800 10.0900 10.1000 10.1100 10.1200 10.1300 10.1400 10.1500 + 10.1600 10.1700 10.1800 10.1900 10.2000 10.2100 10.2200 10.2300 + 10.2400 10.2500 10.2600 10.2700 10.2800 10.2900 10.3000 10.3100 + 10.3200 10.3300 10.3400 10.3500 10.3600 10.3700 10.3800 10.3900 + 10.4000 10.4100 10.4200 10.4300 10.4400 10.4500 10.4600 10.4700 + 10.4800 10.4900 10.5000 10.5100 10.5200 10.5300 10.5400 10.5500 + 10.5600 10.5700 10.5800 10.5900 10.6000 10.6100 10.6200 10.6300 + 10.6400 10.6500 10.6600 10.6700 10.6800 10.6900 10.7000 10.7100 + 10.7200 10.7300 10.7400 10.7500 10.7600 10.7700 10.7800 10.7900 + 10.8000 10.8100 10.8200 10.8300 10.8400 10.8500 10.8600 10.8700 + 10.8800 10.8900 10.9000 10.9100 10.9200 10.9300 10.9400 10.9500 + 10.9600 10.9700 10.9800 10.9900 11.0000 11.0100 11.0200 11.0300 + 11.0400 11.0500 11.0600 11.0700 11.0800 11.0900 11.1000 11.1100 + 11.1200 11.1300 11.1400 11.1500 11.1600 11.1700 11.1800 11.1900 + 11.2000 11.2100 11.2200 11.2300 11.2400 11.2500 11.2600 11.2700 + 11.2800 11.2900 11.3000 11.3100 11.3200 11.3300 11.3400 11.3500 + 11.3600 11.3700 11.3800 11.3900 11.4000 11.4100 11.4200 11.4300 + 11.4400 11.4500 11.4600 11.4700 11.4800 11.4900 11.5000 11.5100 + 11.5200 11.5300 11.5400 11.5500 11.5600 11.5700 11.5800 11.5900 + 11.6000 11.6100 11.6200 11.6300 11.6400 11.6500 11.6600 11.6700 + 11.6800 11.6900 11.7000 11.7100 11.7200 11.7300 11.7400 11.7500 + 11.7600 11.7700 11.7800 11.7900 11.8000 11.8100 11.8200 11.8300 + 11.8400 11.8500 11.8600 11.8700 11.8800 11.8900 11.9000 11.9100 + 11.9200 11.9300 11.9400 11.9500 11.9600 11.9700 11.9800 11.9900 + 12.0000 12.0100 12.0200 12.0300 12.0400 12.0500 12.0600 12.0700 + 12.0800 12.0900 12.1000 12.1100 12.1200 12.1300 12.1400 12.1500 + 12.1600 12.1700 12.1800 12.1900 12.2000 12.2100 12.2200 12.2300 + 12.2400 12.2500 12.2600 12.2700 12.2800 12.2900 12.3000 12.3100 + 12.3200 12.3300 12.3400 12.3500 12.3600 12.3700 12.3800 12.3900 + 12.4000 12.4100 12.4200 12.4300 12.4400 12.4500 12.4600 12.4700 + 12.4800 12.4900 12.5000 12.5100 12.5200 12.5300 12.5400 12.5500 + 12.5600 12.5700 12.5800 12.5900 12.6000 12.6100 12.6200 12.6300 + 12.6400 12.6500 12.6600 12.6700 12.6800 12.6900 12.7000 12.7100 + 12.7200 12.7300 12.7400 12.7500 12.7600 12.7700 12.7800 12.7900 + 12.8000 12.8100 12.8200 12.8300 12.8400 12.8500 12.8600 12.8700 + 12.8800 12.8900 12.9000 12.9100 12.9200 12.9300 12.9400 12.9500 + 12.9600 12.9700 12.9800 12.9900 13.0000 13.0100 13.0200 13.0300 + 13.0400 13.0500 13.0600 13.0700 13.0800 13.0900 13.1000 13.1100 + 13.1200 13.1300 13.1400 13.1500 13.1600 13.1700 13.1800 13.1900 + 13.2000 13.2100 13.2200 13.2300 13.2400 13.2500 13.2600 13.2700 + 13.2800 13.2900 13.3000 13.3100 13.3200 13.3300 13.3400 13.3500 + 13.3600 13.3700 13.3800 13.3900 13.4000 13.4100 13.4200 13.4300 + 13.4400 13.4500 13.4600 13.4700 13.4800 13.4900 13.5000 13.5100 + 13.5200 13.5300 13.5400 13.5500 13.5600 13.5700 13.5800 13.5900 + 13.6000 13.6100 13.6200 13.6300 13.6400 13.6500 13.6600 13.6700 + 13.6800 13.6900 13.7000 13.7100 13.7200 13.7300 13.7400 13.7500 + 13.7600 13.7700 13.7800 13.7900 13.8000 13.8100 13.8200 13.8300 + 13.8400 13.8500 13.8600 13.8700 13.8800 13.8900 13.9000 13.9100 + 13.9200 13.9300 13.9400 13.9500 13.9600 13.9700 13.9800 13.9900 + 14.0000 14.0100 14.0200 14.0300 14.0400 14.0500 14.0600 14.0700 + 14.0800 14.0900 14.1000 14.1100 14.1200 14.1300 14.1400 14.1500 + 14.1600 14.1700 14.1800 14.1900 14.2000 14.2100 14.2200 14.2300 + 14.2400 14.2500 14.2600 14.2700 14.2800 14.2900 14.3000 14.3100 + 14.3200 14.3300 14.3400 14.3500 14.3600 14.3700 14.3800 14.3900 + 14.4000 14.4100 14.4200 14.4300 14.4400 14.4500 14.4600 14.4700 + 14.4800 14.4900 14.5000 14.5100 14.5200 14.5300 14.5400 14.5500 + 14.5600 14.5700 14.5800 14.5900 14.6000 14.6100 14.6200 14.6300 + 14.6400 14.6500 14.6600 14.6700 14.6800 14.6900 14.7000 14.7100 + 14.7200 14.7300 14.7400 14.7500 14.7600 14.7700 14.7800 14.7900 + 14.8000 14.8100 14.8200 14.8300 14.8400 14.8500 14.8600 14.8700 + 14.8800 14.8900 14.9000 14.9100 14.9200 14.9300 14.9400 14.9500 + 14.9600 14.9700 14.9800 14.9900 15.0000 15.0100 15.0200 15.0300 + 15.0400 15.0500 15.0600 15.0700 15.0800 15.0900 15.1000 15.1100 + 15.1200 15.1300 15.1400 15.1500 15.1600 15.1700 15.1800 15.1900 + 15.2000 15.2100 15.2200 15.2300 15.2400 15.2500 15.2600 15.2700 + 15.2800 15.2900 15.3000 15.3100 15.3200 15.3300 15.3400 15.3500 + 15.3600 15.3700 15.3800 15.3900 15.4000 15.4100 15.4200 15.4300 + 15.4400 15.4500 15.4600 15.4700 15.4800 15.4900 15.5000 15.5100 + 15.5200 15.5300 15.5400 15.5500 15.5600 15.5700 15.5800 15.5900 + 15.6000 15.6100 15.6200 15.6300 15.6400 15.6500 15.6600 15.6700 + 15.6800 15.6900 15.7000 15.7100 15.7200 15.7300 15.7400 15.7500 + 15.7600 15.7700 15.7800 15.7900 15.8000 15.8100 15.8200 15.8300 + 15.8400 15.8500 15.8600 15.8700 15.8800 15.8900 15.9000 15.9100 + 15.9200 15.9300 15.9400 15.9500 15.9600 15.9700 15.9800 15.9900 + 16.0000 16.0100 16.0200 16.0300 16.0400 16.0500 16.0600 16.0700 + 16.0800 16.0900 16.1000 16.1100 16.1200 16.1300 16.1400 16.1500 + 16.1600 16.1700 16.1800 16.1900 16.2000 16.2100 16.2200 16.2300 + 16.2400 16.2500 16.2600 16.2700 16.2800 16.2900 16.3000 16.3100 + 16.3200 16.3300 16.3400 16.3500 16.3600 16.3700 16.3800 16.3900 + 16.4000 16.4100 16.4200 16.4300 16.4400 16.4500 16.4600 16.4700 + 16.4800 16.4900 16.5000 16.5100 16.5200 16.5300 16.5400 16.5500 + 16.5600 16.5700 16.5800 16.5900 16.6000 16.6100 16.6200 16.6300 + 16.6400 16.6500 16.6600 16.6700 16.6800 16.6900 16.7000 16.7100 + 16.7200 16.7300 16.7400 16.7500 16.7600 16.7700 16.7800 16.7900 + 16.8000 16.8100 16.8200 16.8300 16.8400 16.8500 16.8600 16.8700 + 16.8800 16.8900 16.9000 16.9100 16.9200 16.9300 16.9400 16.9500 + 16.9600 16.9700 16.9800 16.9900 17.0000 17.0100 17.0200 17.0300 + 17.0400 17.0500 17.0600 17.0700 17.0800 17.0900 17.1000 17.1100 + 17.1200 17.1300 17.1400 17.1500 17.1600 17.1700 17.1800 17.1900 + 17.2000 17.2100 17.2200 17.2300 17.2400 17.2500 17.2600 17.2700 + 17.2800 17.2900 17.3000 17.3100 17.3200 17.3300 17.3400 17.3500 + 17.3600 17.3700 17.3800 17.3900 17.4000 17.4100 17.4200 17.4300 + 17.4400 17.4500 17.4600 17.4700 17.4800 17.4900 17.5000 17.5100 + 17.5200 17.5300 17.5400 17.5500 17.5600 17.5700 17.5800 17.5900 + 17.6000 17.6100 17.6200 17.6300 17.6400 17.6500 17.6600 17.6700 + 17.6800 17.6900 17.7000 17.7100 17.7200 17.7300 17.7400 17.7500 + 17.7600 17.7700 17.7800 17.7900 17.8000 17.8100 17.8200 17.8300 + 17.8400 17.8500 17.8600 17.8700 17.8800 17.8900 17.9000 17.9100 + 17.9200 17.9300 17.9400 17.9500 17.9600 17.9700 17.9800 17.9900 + 18.0000 18.0100 18.0200 18.0300 18.0400 18.0500 18.0600 18.0700 + 18.0800 18.0900 18.1000 18.1100 18.1200 18.1300 18.1400 18.1500 + 18.1600 18.1700 18.1800 18.1900 18.2000 18.2100 18.2200 18.2300 + 18.2400 18.2500 18.2600 18.2700 18.2800 18.2900 18.3000 18.3100 + 18.3200 18.3300 18.3400 18.3500 18.3600 18.3700 18.3800 18.3900 + 18.4000 18.4100 18.4200 18.4300 18.4400 18.4500 18.4600 18.4700 + 18.4800 18.4900 18.5000 18.5100 18.5200 18.5300 18.5400 18.5500 + 18.5600 18.5700 18.5800 18.5900 18.6000 18.6100 18.6200 18.6300 + 18.6400 18.6500 18.6600 18.6700 18.6800 18.6900 18.7000 18.7100 + 18.7200 18.7300 18.7400 18.7500 + + + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 + + + + -8.1841022395E+00 -8.1839427173E+00 -8.1834640636E+00 -8.1826660250E+00 + -8.1815481793E+00 -8.1801099382E+00 -8.1783505490E+00 -8.1762690978E+00 + -8.1738645129E+00 -8.1711355686E+00 -8.1680808891E+00 -8.1646989536E+00 + -8.1609880998E+00 -8.1569465295E+00 -8.1525723125E+00 -8.1478633910E+00 + -8.1428175844E+00 -8.1374325924E+00 -8.1317059993E+00 -8.1256352765E+00 + -8.1192177859E+00 -8.1124507821E+00 -8.1053314142E+00 -8.0978567276E+00 + -8.0900236655E+00 -8.0818290695E+00 -8.0732696810E+00 -8.0643421417E+00 + -8.0550429946E+00 -8.0453686846E+00 -8.0353155603E+00 -8.0248798745E+00 + -8.0140577871E+00 -8.0028453668E+00 -7.9912385943E+00 -7.9792333661E+00 + -7.9668254987E+00 -7.9540107334E+00 -7.9407847430E+00 -7.9271431374E+00 + -7.9130814719E+00 -7.8985952545E+00 -7.8836799550E+00 -7.8683310141E+00 + -7.8525438531E+00 -7.8363138837E+00 -7.8196365184E+00 -7.8025071809E+00 + -7.7849213159E+00 -7.7668743995E+00 -7.7483619488E+00 -7.7293795312E+00 + -7.7099227729E+00 -7.6899873671E+00 -7.6695690810E+00 -7.6486637626E+00 + -7.6272673459E+00 -7.6053758556E+00 -7.5829854110E+00 -7.5600922288E+00 + -7.5366926253E+00 -7.5127830181E+00 -7.4883599269E+00 -7.4634199738E+00 + -7.4379598843E+00 -7.4119764870E+00 -7.3854667145E+00 -7.3584276044E+00 + -7.3308563006E+00 -7.3027500560E+00 -7.2741062365E+00 -7.2449223252E+00 + -7.2151959300E+00 -7.1849247909E+00 -7.1541067914E+00 -7.1227399700E+00 + -7.0908225354E+00 -7.0583528834E+00 -7.0253296159E+00 -6.9917515632E+00 + -6.9576178077E+00 -6.9229277103E+00 -6.8876809396E+00 -6.8518775019E+00 + -6.8155177747E+00 -6.7786025410E+00 -6.7411330253E+00 -6.7031109311E+00 + -6.6645384797E+00 -6.6254184493E+00 -6.5857542151E+00 -6.5455497892E+00 + -6.5048098610E+00 -6.4635398366E+00 -6.4217458778E+00 -6.3794349408E+00 + -6.3366148121E+00 -6.2932941448E+00 -6.2494824914E+00 -6.2051903360E+00 + -6.1604291237E+00 -6.1152112874E+00 -6.0695502732E+00 -6.0234605620E+00 + -5.9769576893E+00 -5.9300582625E+00 -5.8827799751E+00 -5.8351416186E+00 + -5.7871630923E+00 -5.7388654110E+00 -5.6902707097E+00 -5.6414022478E+00 + -5.5922844114E+00 -5.5429427138E+00 -5.4934037960E+00 -5.4436954265E+00 + -5.3938465005E+00 -5.3438870404E+00 -5.2938481958E+00 -5.2437622456E+00 + -5.1936626009E+00 -5.1435838103E+00 -5.0935615672E+00 -5.0436327195E+00 + -4.9938352825E+00 -4.9442084550E+00 -4.8947926382E+00 -4.8456294585E+00 + -4.7967617946E+00 -4.7482338068E+00 -4.7000909714E+00 -4.6523801178E+00 + -4.6051494695E+00 -4.5584486879E+00 -4.5123289195E+00 -4.4668428456E+00 + -4.4220447337E+00 -4.3779904983E+00 -4.3347377285E+00 -4.2923457794E+00 + -4.2508758082E+00 -4.2103908411E+00 -4.1709548112E+00 -4.1326314301E+00 + -4.0954789696E+00 -4.0595462927E+00 -4.0248711207E+00 -3.9914778545E+00 + -3.9593759442E+00 -3.9285591316E+00 -3.8990053070E+00 -3.8706771975E+00 + -3.8435236582E+00 -3.8174815842E+00 -3.7924782208E+00 -3.7684337817E+00 + -3.7452641174E+00 -3.7228834131E+00 -3.7012065859E+00 -3.6801515164E+00 + -3.6596407742E+00 -3.6396030581E+00 -3.6199741211E+00 -3.6006973782E+00 + -3.5817241004E+00 -3.5630133441E+00 -3.5445316137E+00 -3.5262523482E+00 + -3.5081552897E+00 -3.4902257975E+00 -3.4724539386E+00 -3.4548338107E+00 + -3.4373631378E+00 -3.4200422192E+00 -3.4028740122E+00 -3.3858628277E+00 + -3.3690080302E+00 -3.3523012778E+00 -3.3357273043E+00 -3.3192615524E+00 + -3.3028833762E+00 -3.2865912338E+00 -3.2703902500E+00 -3.2542884643E+00 + -3.2382950538E+00 -3.2224109447E+00 -3.2066326375E+00 -3.1909598052E+00 + -3.1753954679E+00 -3.1599417353E+00 -3.1445987653E+00 -3.1293666033E+00 + -3.1142455864E+00 -3.0992357923E+00 -3.0843370740E+00 -3.0695491239E+00 + -3.0548715051E+00 -3.0403036661E+00 -3.0258449541E+00 -3.0114946321E+00 + -2.9972518937E+00 -2.9831158768E+00 -2.9690856757E+00 -2.9551603523E+00 + -2.9413389459E+00 -2.9276204816E+00 -2.9140039785E+00 -2.9004884556E+00 + -2.8870729380E+00 -2.8737564614E+00 -2.8605380765E+00 -2.8474168518E+00 + -2.8343918768E+00 -2.8214622639E+00 -2.8086271501E+00 -2.7958856982E+00 + -2.7832370976E+00 -2.7706805645E+00 -2.7582153426E+00 -2.7458407023E+00 + -2.7335559410E+00 -2.7213603820E+00 -2.7092533742E+00 -2.6972342913E+00 + -2.6853025305E+00 -2.6734575118E+00 -2.6616986767E+00 -2.6500254871E+00 + -2.6384374244E+00 -2.6269339876E+00 -2.6155146927E+00 -2.6041790710E+00 + -2.5929266682E+00 -2.5817570428E+00 -2.5706697651E+00 -2.5596644157E+00 + -2.5487405848E+00 -2.5378978702E+00 -2.5271358771E+00 -2.5164542161E+00 + -2.5058525027E+00 -2.4953303559E+00 -2.4848873973E+00 -2.4745232501E+00 + -2.4642375382E+00 -2.4540298850E+00 -2.4438999131E+00 -2.4338472427E+00 + -2.4238714914E+00 -2.4139722734E+00 -2.4041491983E+00 -2.3944018710E+00 + -2.3847298909E+00 -2.3751328512E+00 -2.3656103382E+00 -2.3561619314E+00 + -2.3467872024E+00 -2.3374857150E+00 -2.3282570244E+00 -2.3191006773E+00 + -2.3100162114E+00 -2.3010031549E+00 -2.2920610271E+00 -2.2831893374E+00 + -2.2743875857E+00 -2.2656552622E+00 -2.2569918475E+00 -2.2483968125E+00 + -2.2398696184E+00 -2.2314097170E+00 -2.2230165509E+00 -2.2146895534E+00 + -2.2064281489E+00 -2.1982317533E+00 -2.1900997739E+00 -2.1820316101E+00 + -2.1740266538E+00 -2.1660842895E+00 -2.1582038947E+00 -2.1503848407E+00 + -2.1426264928E+00 -2.1349282109E+00 -2.1272893499E+00 -2.1197092604E+00 + -2.1121872890E+00 -2.1047227793E+00 -2.0973150718E+00 -2.0899635052E+00 + -2.0826674166E+00 -2.0754261422E+00 -2.0682390176E+00 -2.0611053791E+00 + -2.0540245636E+00 -2.0469959096E+00 -2.0400187575E+00 -2.0330924507E+00 + -2.0262163354E+00 -2.0193897620E+00 -2.0126120850E+00 -2.0058826639E+00 + -1.9992008636E+00 -1.9925660550E+00 -1.9859776154E+00 -1.9794349288E+00 + -1.9729373867E+00 -1.9664843884E+00 -1.9600753413E+00 -1.9537096611E+00 + -1.9473867728E+00 -1.9411061102E+00 -1.9348671169E+00 -1.9286692459E+00 + -1.9225119606E+00 -1.9163947344E+00 -1.9103170511E+00 -1.9042784051E+00 + -1.8982783015E+00 -1.8923162563E+00 -1.8863917961E+00 -1.8805044589E+00 + -1.8746537931E+00 -1.8688393585E+00 -1.8630607257E+00 -1.8573174760E+00 + -1.8516092018E+00 -1.8459355060E+00 -1.8402960023E+00 -1.8346903146E+00 + -1.8291180775E+00 -1.8235789353E+00 -1.8180725426E+00 -1.8125985636E+00 + -1.8071566720E+00 -1.8017465508E+00 -1.7963678920E+00 -1.7910203964E+00 + -1.7857037732E+00 -1.7804177401E+00 -1.7751620223E+00 -1.7699363530E+00 + -1.7647404724E+00 -1.7595741280E+00 -1.7544370739E+00 -1.7493290705E+00 + -1.7442498844E+00 -1.7391992878E+00 -1.7341770586E+00 -1.7291829796E+00 + -1.7242168385E+00 -1.7192784275E+00 -1.7143675433E+00 -1.7094839860E+00 + -1.7046275598E+00 -1.6997980720E+00 -1.6949953331E+00 -1.6902191564E+00 + -1.6854693577E+00 -1.6807457552E+00 -1.6760481693E+00 -1.6713764219E+00 + -1.6667303369E+00 -1.6621097396E+00 -1.6575144563E+00 -1.6529443148E+00 + -1.6483991435E+00 -1.6438787717E+00 -1.6393830293E+00 -1.6349117467E+00 + -1.6304647548E+00 -1.6260418847E+00 -1.6216429677E+00 -1.6172678354E+00 + -1.6129163192E+00 -1.6085882508E+00 -1.6042834617E+00 -1.6000017834E+00 + -1.5957430476E+00 -1.5915070854E+00 -1.5872937284E+00 -1.5831028079E+00 + -1.5789341550E+00 -1.5747876012E+00 -1.5706629779E+00 -1.5665601163E+00 + -1.5624788483E+00 -1.5584190055E+00 -1.5543804201E+00 -1.5503629245E+00 + -1.5463663515E+00 -1.5423905345E+00 -1.5384353073E+00 -1.5345005046E+00 + -1.5305859616E+00 -1.5266915143E+00 -1.5228169999E+00 -1.5189622562E+00 + -1.5151271224E+00 -1.5113114386E+00 -1.5075150463E+00 -1.5037377881E+00 + -1.4999795082E+00 -1.4962400522E+00 -1.4925192670E+00 -1.4888170015E+00 + -1.4851331058E+00 -1.4814674319E+00 -1.4778198336E+00 -1.4741901664E+00 + -1.4705782877E+00 -1.4669840566E+00 -1.4634073342E+00 -1.4598479836E+00 + -1.4563058697E+00 -1.4527808595E+00 -1.4492728217E+00 -1.4457816272E+00 + -1.4423071487E+00 -1.4388492609E+00 -1.4354078406E+00 -1.4319827662E+00 + -1.4285739181E+00 -1.4251811787E+00 -1.4218044322E+00 -1.4184435644E+00 + -1.4150984631E+00 -1.4117690176E+00 -1.4084551191E+00 -1.4051566603E+00 + -1.4018735354E+00 -1.3986056403E+00 -1.3953528722E+00 -1.3921151298E+00 + -1.3888923133E+00 -1.3856843238E+00 -1.3824910641E+00 -1.3793124380E+00 + -1.3761483502E+00 -1.3729987068E+00 -1.3698634148E+00 -1.3667423821E+00 + -1.3636355176E+00 -1.3605427310E+00 -1.3574639326E+00 -1.3543990339E+00 + -1.3513479467E+00 -1.3483105835E+00 -1.3452868577E+00 -1.3422766828E+00 + -1.3392799733E+00 -1.3362966440E+00 -1.3333266100E+00 -1.3303697870E+00 + -1.3274260911E+00 -1.3244954388E+00 -1.3215777469E+00 -1.3186729325E+00 + -1.3157809131E+00 -1.3129016066E+00 -1.3100349309E+00 -1.3071808046E+00 + -1.3043391462E+00 -1.3015098748E+00 -1.2986929097E+00 -1.2958881704E+00 + -1.2930955767E+00 -1.2903150489E+00 -1.2875465075E+00 -1.2847898733E+00 + -1.2820450676E+00 -1.2793120118E+00 -1.2765906279E+00 -1.2738808382E+00 + -1.2711825656E+00 -1.2684957332E+00 -1.2658202646E+00 -1.2631560840E+00 + -1.2605031161E+00 -1.2578612860E+00 -1.2552305195E+00 -1.2526107427E+00 + -1.2500018827E+00 -1.2474038669E+00 -1.2448166234E+00 -1.2422400810E+00 + -1.2396741692E+00 -1.2371188181E+00 -1.2345739586E+00 -1.2320395221E+00 + -1.2295154411E+00 -1.2270016486E+00 -1.2244980783E+00 -1.2220046650E+00 + -1.2195213438E+00 -1.2170480511E+00 -1.2145847236E+00 -1.2121312992E+00 + -1.2096877163E+00 -1.2072539142E+00 -1.2048298331E+00 -1.2024154138E+00 + -1.2000105978E+00 -1.1976153278E+00 -1.1952295467E+00 -1.1928531987E+00 + -1.1904862282E+00 -1.1881285808E+00 -1.1857802024E+00 -1.1834410399E+00 + -1.1811110407E+00 -1.1787901530E+00 -1.1764783255E+00 -1.1741755075E+00 + -1.1718816490E+00 -1.1695967005E+00 -1.1673206130E+00 -1.1650533382E+00 + -1.1627948282E+00 -1.1605450355E+00 -1.1583039132E+00 -1.1560714148E+00 + -1.1538474940E+00 -1.1516321048E+00 -1.1494252019E+00 -1.1472267402E+00 + -1.1450366722E+00 -1.1428549540E+00 -1.1406815453E+00 -1.1385164033E+00 + -1.1363594848E+00 -1.1342107464E+00 -1.1320701505E+00 -1.1299376678E+00 + -1.1278132253E+00 -1.1256967731E+00 -1.1235882625E+00 -1.1214876475E+00 + -1.1193948847E+00 -1.1173098821E+00 -1.1152326592E+00 -1.1131632051E+00 + -1.1111015024E+00 -1.1090475334E+00 -1.1070012785E+00 -1.1049627344E+00 + -1.1029318756E+00 -1.1009086321E+00 -1.0988929540E+00 -1.0968847848E+00 + -1.0948840626E+00 -1.0928907201E+00 -1.0909047323E+00 -1.0889259740E+00 + -1.0869543559E+00 -1.0849897944E+00 -1.0830322099E+00 -1.0810815294E+00 + -1.0791376428E+00 -1.0772004576E+00 -1.0752700497E+00 -1.0733464122E+00 + -1.0714295445E+00 -1.0695194499E+00 -1.0676161321E+00 -1.0657196762E+00 + -1.0638300244E+00 -1.0619471020E+00 -1.0600708718E+00 -1.0582012922E+00 + -1.0563383187E+00 -1.0544819049E+00 -1.0526319536E+00 -1.0507884728E+00 + -1.0489514323E+00 -1.0471207982E+00 -1.0452965378E+00 -1.0434786191E+00 + -1.0416670117E+00 -1.0398616937E+00 -1.0380626226E+00 -1.0362697662E+00 + -1.0344830923E+00 -1.0327025689E+00 -1.0309281643E+00 -1.0291598469E+00 + -1.0273975849E+00 -1.0256413478E+00 -1.0238911047E+00 -1.0221468250E+00 + -1.0204084782E+00 -1.0186760341E+00 -1.0169494628E+00 -1.0152287343E+00 + -1.0135138191E+00 -1.0118046877E+00 -1.0101013110E+00 -1.0084036600E+00 + -1.0067117058E+00 -1.0050254197E+00 -1.0033447734E+00 -1.0016697387E+00 + -1.0000002874E+00 -9.9833639162E-01 -9.9667802378E-01 -9.9502515632E-01 + -9.9337776194E-01 -9.9173581349E-01 -9.9009928401E-01 -9.8846814672E-01 + -9.8684237500E-01 -9.8522194244E-01 -9.8360682277E-01 -9.8199698990E-01 + -9.8039241792E-01 -9.7879308108E-01 -9.7719895380E-01 -9.7561001068E-01 + -9.7402622645E-01 -9.7244757604E-01 -9.7087403452E-01 -9.6930557714E-01 + -9.6774217929E-01 -9.6618381653E-01 -9.6463046458E-01 -9.6308209931E-01 + -9.6153869673E-01 -9.6000023304E-01 -9.5846668456E-01 -9.5693802777E-01 + -9.5541423931E-01 -9.5389529595E-01 -9.5238117463E-01 -9.5087185241E-01 + -9.4936730652E-01 -9.4786751432E-01 -9.4637245332E-01 -9.4488210116E-01 + -9.4339643564E-01 -9.4191543467E-01 -9.4043907633E-01 -9.3896733882E-01 + -9.3750020048E-01 -9.3603763978E-01 -9.3457963534E-01 -9.3312616589E-01 + -9.3167721032E-01 -9.3023274762E-01 -9.2879275693E-01 -9.2735721751E-01 + -9.2592610876E-01 -9.2449941019E-01 -9.2307710146E-01 -9.2165916233E-01 + -9.2024557270E-01 -9.1883631257E-01 -9.1743136210E-01 -9.1603070155E-01 + -9.1463431129E-01 -9.1324217183E-01 -9.1185426379E-01 -9.1047056790E-01 + -9.0909106501E-01 -9.0771573611E-01 -9.0634456226E-01 -9.0497752468E-01 + -9.0361460467E-01 -9.0225578365E-01 -9.0090104317E-01 -8.9955036487E-01 + -8.9820373051E-01 -8.9686112195E-01 -8.9552252117E-01 -8.9418791025E-01 + -8.9285727137E-01 -8.9153058683E-01 -8.9020783904E-01 -8.8888901048E-01 + -8.8757408378E-01 -8.8626304164E-01 -8.8495586687E-01 -8.8365254238E-01 + -8.8235305120E-01 -8.8105737642E-01 -8.7976550127E-01 -8.7847740906E-01 + -8.7719308319E-01 -8.7591250716E-01 -8.7463566459E-01 -8.7336253916E-01 + -8.7209311467E-01 -8.7082737501E-01 -8.6956530415E-01 -8.6830688616E-01 + -8.6705210522E-01 -8.6580094556E-01 -8.6455339155E-01 -8.6330942762E-01 + -8.6206903828E-01 -8.6083220817E-01 -8.5959892197E-01 -8.5836916449E-01 + -8.5714292059E-01 -8.5592017524E-01 -8.5470091349E-01 -8.5348512047E-01 + -8.5227278141E-01 -8.5106388160E-01 -8.4985840643E-01 -8.4865634137E-01 + -8.4745767196E-01 -8.4626238385E-01 -8.4507046275E-01 -8.4388189444E-01 + -8.4269666480E-01 -8.4151475979E-01 -8.4033616543E-01 -8.3916086784E-01 + -8.3798885319E-01 -8.3682010776E-01 -8.3565461789E-01 -8.3449236999E-01 + -8.3333335055E-01 -8.3217754614E-01 -8.3102494340E-01 -8.2987552905E-01 + -8.2872928988E-01 -8.2758621274E-01 -8.2644628457E-01 -8.2530949238E-01 + -8.2417582325E-01 -8.2304526431E-01 -8.2191780280E-01 -8.2079342599E-01 + -8.1967212126E-01 -8.1855387601E-01 -8.1743867776E-01 -8.1632651405E-01 + -8.1521737254E-01 -8.1411124090E-01 -8.1300810691E-01 -8.1190795840E-01 + -8.1081078326E-01 -8.0971656946E-01 -8.0862530503E-01 -8.0753697805E-01 + -8.0645157668E-01 -8.0536908914E-01 -8.0428950371E-01 -8.0321280874E-01 + -8.0213899263E-01 -8.0106804385E-01 -7.9999995094E-01 -7.9893470248E-01 + -7.9787228713E-01 -7.9681269360E-01 -7.9575591067E-01 -7.9470192717E-01 + -7.9365073199E-01 -7.9260231408E-01 -7.9155666245E-01 -7.9051376617E-01 + -7.8947361436E-01 -7.8843619620E-01 -7.8740150092E-01 -7.8636951783E-01 + -7.8534023626E-01 -7.8431364563E-01 -7.8328973540E-01 -7.8226849507E-01 + -7.8124991422E-01 -7.8023398247E-01 -7.7922068951E-01 -7.7821002507E-01 + -7.7720197893E-01 -7.7619654094E-01 -7.7519370098E-01 -7.7419344900E-01 + -7.7319577499E-01 -7.7220066901E-01 -7.7120812115E-01 -7.7021812156E-01 + -7.6923066043E-01 -7.6824572802E-01 -7.6726331463E-01 -7.6628341060E-01 + -7.6530600633E-01 -7.6433109226E-01 -7.6335865890E-01 -7.6238869678E-01 + -7.6142119651E-01 -7.6045614871E-01 -7.5949354407E-01 -7.5853337333E-01 + -7.5757562727E-01 -7.5662029672E-01 -7.5566737255E-01 -7.5471684568E-01 + -7.5376870707E-01 -7.5282294774E-01 -7.5187955874E-01 -7.5093853117E-01 + -7.4999985618E-01 -7.4906352495E-01 -7.4812952872E-01 -7.4719785876E-01 + -7.4626850639E-01 -7.4534146299E-01 -7.4441671994E-01 -7.4349426871E-01 + -7.4257410078E-01 -7.4165620768E-01 -7.4074058099E-01 -7.3982721233E-01 + -7.3891609335E-01 -7.3800721576E-01 -7.3710057129E-01 -7.3619615171E-01 + -7.3529394886E-01 -7.3439395460E-01 -7.3349616081E-01 -7.3260055945E-01 + -7.3170714249E-01 -7.3081590195E-01 -7.2992682988E-01 -7.2903991839E-01 + -7.2815515960E-01 -7.2727254569E-01 -7.2639206886E-01 -7.2551372137E-01 + -7.2463749550E-01 -7.2376338358E-01 -7.2289137795E-01 -7.2202147103E-01 + -7.2115365523E-01 -7.2028792303E-01 -7.1942426694E-01 -7.1856267949E-01 + -7.1770315326E-01 -7.1684568087E-01 -7.1599025496E-01 -7.1513686822E-01 + -7.1428551335E-01 -7.1343618312E-01 -7.1258887031E-01 -7.1174356774E-01 + -7.1090026826E-01 -7.1005896476E-01 -7.0921965018E-01 -7.0838231745E-01 + -7.0754695957E-01 -7.0671356956E-01 -7.0588214048E-01 -7.0505266541E-01 + -7.0422513748E-01 -7.0339954983E-01 -7.0257589565E-01 -7.0175416815E-01 + -7.0093436058E-01 -7.0011646623E-01 -6.9930047840E-01 -6.9848639043E-01 + -6.9767419570E-01 -6.9686388760E-01 -6.9605545959E-01 -6.9524890510E-01 + -6.9444421765E-01 -6.9364139076E-01 -6.9284041798E-01 -6.9204129290E-01 + -6.9124400913E-01 -6.9044856031E-01 -6.8965494011E-01 -6.8886314225E-01 + -6.8807316044E-01 -6.8728498845E-01 -6.8649862006E-01 -6.8571404910E-01 + -6.8493126940E-01 -6.8415027484E-01 -6.8337105932E-01 -6.8259361677E-01 + -6.8181794114E-01 -6.8104402642E-01 -6.8027186661E-01 -6.7950145576E-01 + -6.7873278793E-01 -6.7796585720E-01 -6.7720065771E-01 -6.7643718359E-01 + -6.7567542901E-01 -6.7491538817E-01 -6.7415705530E-01 -6.7340042465E-01 + -6.7264549048E-01 -6.7189224710E-01 -6.7114068884E-01 -6.7039081005E-01 + -6.6964260510E-01 -6.6889606839E-01 -6.6815119436E-01 -6.6740797746E-01 + -6.6666641215E-01 -6.6592649295E-01 -6.6518821437E-01 -6.6445157097E-01 + -6.6371655732E-01 -6.6298316801E-01 -6.6225139768E-01 -6.6152124096E-01 + -6.6079269252E-01 -6.6006574705E-01 -6.5934039928E-01 -6.5861664393E-01 + -6.5789447577E-01 -6.5717388959E-01 -6.5645488019E-01 -6.5573744240E-01 + -6.5502157108E-01 -6.5430726110E-01 -6.5359450736E-01 -6.5288330477E-01 + -6.5217364828E-01 -6.5146553286E-01 -6.5075895349E-01 -6.5005390517E-01 + -6.4935038294E-01 -6.4864838185E-01 -6.4794789696E-01 -6.4724892338E-01 + -6.4655145621E-01 -6.4585549059E-01 -6.4516102168E-01 -6.4446804465E-01 + -6.4377655470E-01 -6.4308654706E-01 -6.4239801695E-01 -6.4171095964E-01 + -6.4102537041E-01 -6.4034124456E-01 -6.3965857741E-01 -6.3897736429E-01 + -6.3829760057E-01 -6.3761928162E-01 -6.3694240285E-01 -6.3626695967E-01 + -6.3559294752E-01 -6.3492036185E-01 -6.3424919815E-01 -6.3357945191E-01 + -6.3291111864E-01 -6.3224419388E-01 -6.3157867318E-01 -6.3091455210E-01 + -6.3025182625E-01 -6.2959049122E-01 -6.2893054264E-01 -6.2827197616E-01 + -6.2761478744E-01 -6.2695897217E-01 -6.2630452603E-01 -6.2565144475E-01 + -6.2499972406E-01 -6.2434935971E-01 -6.2370034749E-01 -6.2305268316E-01 + -6.2240636254E-01 -6.2176138145E-01 -6.2111773573E-01 -6.2047542124E-01 + -6.1983443385E-01 -6.1919476945E-01 -6.1855642396E-01 -6.1791939329E-01 + -6.1728367339E-01 -6.1664926021E-01 -6.1601614974E-01 -6.1538433796E-01 + -6.1475382089E-01 -6.1412459454E-01 -6.1349665495E-01 -6.1286999819E-01 + -6.1224462033E-01 -6.1162051745E-01 -6.1099768566E-01 -6.1037612109E-01 + -6.0975581986E-01 -6.0913677813E-01 -6.0851899207E-01 -6.0790245786E-01 + -6.0728717170E-01 -6.0667312980E-01 -6.0606032840E-01 -6.0544876374E-01 + -6.0483843207E-01 -6.0422932968E-01 -6.0362145285E-01 -6.0301479789E-01 + -6.0240936111E-01 -6.0180513886E-01 -6.0120212748E-01 -6.0060032333E-01 + -5.9999972280E-01 -5.9940032227E-01 -5.9880211816E-01 -5.9820510687E-01 + -5.9760928486E-01 -5.9701464857E-01 -5.9642119447E-01 -5.9582891902E-01 + -5.9523781873E-01 -5.9464789010E-01 -5.9405912965E-01 -5.9347153391E-01 + -5.9288509943E-01 -5.9229982278E-01 -5.9171570052E-01 -5.9113272924E-01 + -5.9055090555E-01 -5.8997022606E-01 -5.8939068740E-01 -5.8881228621E-01 + -5.8823501914E-01 -5.8765888286E-01 -5.8708387406E-01 -5.8650998942E-01 + -5.8593722565E-01 -5.8536557948E-01 -5.8479504763E-01 -5.8422562685E-01 + -5.8365731389E-01 -5.8309010553E-01 -5.8252399856E-01 -5.8195898975E-01 + -5.8139507593E-01 -5.8083225391E-01 -5.8027052052E-01 -5.7970987261E-01 + -5.7915030704E-01 -5.7859182067E-01 -5.7803441039E-01 -5.7747807308E-01 + -5.7692280566E-01 -5.7636860504E-01 -5.7581546814E-01 -5.7526339192E-01 + -5.7471237331E-01 -5.7416240929E-01 -5.7361349683E-01 -5.7306563292E-01 + -5.7251881455E-01 -5.7197303873E-01 -5.7142830250E-01 -5.7088460287E-01 + -5.7034193689E-01 -5.6980030162E-01 -5.6925969413E-01 -5.6872011149E-01 + -5.6818155078E-01 -5.6764400912E-01 -5.6710748361E-01 -5.6657197136E-01 + -5.6603746952E-01 -5.6550397523E-01 -5.6497148564E-01 -5.6443999791E-01 + -5.6390950922E-01 -5.6338001676E-01 -5.6285151772E-01 -5.6232400931E-01 + -5.6179748875E-01 -5.6127195326E-01 -5.6074740008E-01 -5.6022382646E-01 + -5.5970122966E-01 -5.5917960695E-01 -5.5865895561E-01 -5.5813927292E-01 + -5.5762055619E-01 -5.5710280272E-01 -5.5658600984E-01 -5.5607017487E-01 + -5.5555529515E-01 -5.5504136804E-01 -5.5452839088E-01 -5.5401636105E-01 + -5.5350527593E-01 -5.5299513291E-01 -5.5248592938E-01 -5.5197766274E-01 + -5.5147033043E-01 -5.5096392985E-01 -5.5045845846E-01 -5.4995391368E-01 + -5.4945029298E-01 -5.4894759383E-01 -5.4844581368E-01 -5.4794495004E-01 + -5.4744500038E-01 -5.4694596220E-01 -5.4644783303E-01 -5.4595061036E-01 + -5.4545429175E-01 -5.4495887471E-01 -5.4446435680E-01 -5.4397073557E-01 + -5.4347800858E-01 -5.4298617341E-01 -5.4249522763E-01 -5.4200516884E-01 + -5.4151599464E-01 -5.4102770262E-01 -5.4054029042E-01 -5.4005375564E-01 + -5.3956809593E-01 -5.3908330893E-01 -5.3859939228E-01 -5.3811634364E-01 + -5.3763416069E-01 -5.3715284109E-01 -5.3667238253E-01 -5.3619278270E-01 + -5.3571403930E-01 -5.3523615004E-01 -5.3475911263E-01 -5.3428292480E-01 + -5.3380758428E-01 -5.3333308882E-01 -5.3285943615E-01 -5.3238662404E-01 + -5.3191465025E-01 -5.3144351255E-01 -5.3097320873E-01 -5.3050373657E-01 + -5.3003509387E-01 -5.2956727843E-01 -5.2910028806E-01 -5.2863412058E-01 + -5.2816877383E-01 -5.2770424562E-01 -5.2724053382E-01 -5.2677763625E-01 + -5.2631555079E-01 -5.2585427530E-01 -5.2539380764E-01 -5.2493414571E-01 + -5.2447528738E-01 -5.2401723055E-01 -5.2355997313E-01 -5.2310351301E-01 + -5.2264784813E-01 -5.2219297639E-01 -5.2173889574E-01 -5.2128560411E-01 + -5.2083309945E-01 -5.2038137970E-01 -5.1993044283E-01 -5.1948028681E-01 + -5.1903090960E-01 -5.1858230919E-01 -5.1813448357E-01 -5.1768743073E-01 + -5.1724114867E-01 -5.1679563540E-01 -5.1635088894E-01 -5.1590690730E-01 + -5.1546368852E-01 -5.1502123063E-01 -5.1457953168E-01 -5.1413858970E-01 + -5.1369840277E-01 -5.1325896894E-01 -5.1282028628E-01 -5.1238235286E-01 + -5.1194516677E-01 -5.1150872610E-01 -5.1107302894E-01 -5.1063807339E-01 + -5.1020385757E-01 -5.0977037958E-01 -5.0933763755E-01 -5.0890562960E-01 + -5.0847435387E-01 -5.0804380849E-01 -5.0761399162E-01 -5.0718490141E-01 + -5.0675653601E-01 -5.0632889360E-01 -5.0590197233E-01 -5.0547577040E-01 + -5.0505028597E-01 -5.0462551725E-01 -5.0420146243E-01 -5.0377811970E-01 + -5.0335548729E-01 -5.0293356339E-01 -5.0251234624E-01 -5.0209183405E-01 + -5.0167202506E-01 -5.0125291751E-01 -5.0083450964E-01 -5.0041679969E-01 + -4.9999978593E-01 -4.9958346662E-01 -4.9916784001E-01 -4.9875290439E-01 + -4.9833865804E-01 -4.9792509923E-01 -4.9751222625E-01 -4.9710003741E-01 + -4.9668853100E-01 -4.9627770533E-01 -4.9586755871E-01 -4.9545808946E-01 + -4.9504929590E-01 -4.9464117637E-01 -4.9423372918E-01 -4.9382695270E-01 + -4.9342084526E-01 -4.9301540520E-01 -4.9261063090E-01 -4.9220652070E-01 + -4.9180307298E-01 -4.9140028611E-01 -4.9099815847E-01 -4.9059668843E-01 + -4.9019587440E-01 -4.8979571475E-01 -4.8939620789E-01 -4.8899735223E-01 + -4.8859914617E-01 -4.8820158812E-01 -4.8780467651E-01 -4.8740840977E-01 + -4.8701278631E-01 -4.8661780458E-01 -4.8622346301E-01 -4.8582976006E-01 + -4.8543669416E-01 -4.8504426378E-01 -4.8465246738E-01 -4.8426130341E-01 + -4.8387077036E-01 -4.8348086669E-01 -4.8309159089E-01 -4.8270294143E-01 + -4.8231491681E-01 -4.8192751553E-01 -4.8154073608E-01 -4.8115457696E-01 + -4.8076903669E-01 -4.8038411378E-01 -4.7999980675E-01 -4.7961611411E-01 + -4.7923303441E-01 -4.7885056616E-01 -4.7846870791E-01 -4.7808745820E-01 + -4.7770681558E-01 -4.7732677860E-01 -4.7694734580E-01 -4.7656851576E-01 + -4.7619028704E-01 -4.7581265820E-01 -4.7543562783E-01 -4.7505919449E-01 + -4.7468335678E-01 -4.7430811328E-01 -4.7393346258E-01 -4.7355940328E-01 + -4.7318593398E-01 -4.7281305328E-01 -4.7244075980E-01 -4.7206905214E-01 + -4.7169792893E-01 -4.7132738879E-01 -4.7095743035E-01 -4.7058805223E-01 + -4.7021925307E-01 -4.6985103152E-01 -4.6948338622E-01 -4.6911631581E-01 + -4.6874981894E-01 -4.6838389429E-01 -4.6801854049E-01 -4.6765375623E-01 + -4.6728954017E-01 -4.6692589098E-01 -4.6656280734E-01 -4.6620028794E-01 + -4.6583833145E-01 -4.6547693658E-01 -4.6511610200E-01 -4.6475582643E-01 + -4.6439610855E-01 -4.6403694709E-01 -4.6367834074E-01 -4.6332028823E-01 + -4.6296278826E-01 -4.6260583957E-01 -4.6224944088E-01 -4.6189359091E-01 + -4.6153828841E-01 -4.6118353211E-01 -4.6082932074E-01 -4.6047565306E-01 + -4.6012252782E-01 -4.5976994377E-01 -4.5941789966E-01 -4.5906639425E-01 + -4.5871542632E-01 -4.5836499463E-01 -4.5801509794E-01 -4.5766573504E-01 + -4.5731690471E-01 -4.5696860572E-01 -4.5662083687E-01 -4.5627359695E-01 + -4.5592688475E-01 -4.5558069906E-01 -4.5523503870E-01 -4.5488990246E-01 + -4.5454528915E-01 -4.5420119759E-01 -4.5385762659E-01 -4.5351457498E-01 + -4.5317204157E-01 -4.5283002519E-01 -4.5248852467E-01 -4.5214753885E-01 + -4.5180706656E-01 -4.5146710664E-01 -4.5112765794E-01 -4.5078871931E-01 + -4.5045028959E-01 -4.5011236765E-01 -4.4977495234E-01 -4.4943804251E-01 + -4.4910163705E-01 -4.4876573480E-01 -4.4843033466E-01 -4.4809543548E-01 + -4.4776103615E-01 -4.4742713556E-01 -4.4709373258E-01 -4.4676082611E-01 + -4.4642841503E-01 -4.4609649824E-01 -4.4576507465E-01 -4.4543414314E-01 + -4.4510370264E-01 -4.4477375203E-01 -4.4444429024E-01 -4.4411531619E-01 + -4.4378682877E-01 -4.4345882693E-01 -4.4313130959E-01 -4.4280427566E-01 + -4.4247772408E-01 -4.4215165379E-01 -4.4182606372E-01 -4.4150095281E-01 + -4.4117632000E-01 -4.4085216425E-01 -4.4052848449E-01 -4.4020527969E-01 + -4.3988254879E-01 -4.3956029076E-01 -4.3923850456E-01 -4.3891718914E-01 + -4.3859634349E-01 -4.3827596657E-01 -4.3795605735E-01 -4.3763661481E-01 + -4.3731763793E-01 -4.3699912569E-01 -4.3668107708E-01 -4.3636349109E-01 + -4.3604636670E-01 -4.3572970292E-01 -4.3541349873E-01 -4.3509775314E-01 + -4.3478246516E-01 -4.3446763378E-01 -4.3415325802E-01 -4.3383933689E-01 + -4.3352586940E-01 -4.3321285458E-01 -4.3290029143E-01 -4.3258817899E-01 + -4.3227651627E-01 -4.3196530232E-01 -4.3165453615E-01 -4.3134421681E-01 + -4.3103434333E-01 -4.3072491475E-01 -4.3041593012E-01 -4.3010738847E-01 + -4.2979928886E-01 -4.2949163034E-01 -4.2918441195E-01 -4.2887763277E-01 + -4.2857129184E-01 -4.2826538822E-01 -4.2795992099E-01 -4.2765488921E-01 + -4.2735029195E-01 -4.2704612827E-01 -4.2674239726E-01 -4.2643909800E-01 + -4.2613622955E-01 -4.2583379102E-01 -4.2553178147E-01 -4.2523020000E-01 + -4.2492904570E-01 -4.2462831766E-01 -4.2432801498E-01 -4.2402813676E-01 + -4.2372868209E-01 -4.2342965008E-01 -4.2313103984E-01 -4.2283285047E-01 + -4.2253508109E-01 -4.2223773080E-01 -4.2194079873E-01 -4.2164428399E-01 + -4.2134818571E-01 -4.2105250300E-01 -4.2075723499E-01 -4.2046238081E-01 + -4.2016793960E-01 -4.1987391047E-01 -4.1958029258E-01 -4.1928708505E-01 + -4.1899428704E-01 -4.1870189767E-01 -4.1840991610E-01 -4.1811834147E-01 + -4.1782717293E-01 -4.1753640964E-01 -4.1724605074E-01 -4.1695609541E-01 + -4.1666654279E-01 -4.1637739204E-01 -4.1608864234E-01 -4.1580029284E-01 + -4.1551234272E-01 -4.1522479115E-01 -4.1493763730E-01 -4.1465088034E-01 + -4.1436451945E-01 -4.1407855382E-01 -4.1379298262E-01 -4.1350780504E-01 + -4.1322302027E-01 -4.1293862750E-01 -4.1265462591E-01 -4.1237101470E-01 + -4.1208779307E-01 -4.1180496021E-01 -4.1152251532E-01 -4.1124045761E-01 + -4.1095878628E-01 -4.1067750053E-01 -4.1039659958E-01 -4.1011608264E-01 + -4.0983594892E-01 -4.0955619763E-01 -4.0927682800E-01 -4.0899783924E-01 + -4.0871923057E-01 -4.0844100121E-01 -4.0816315040E-01 -4.0788567737E-01 + -4.0760858133E-01 -4.0733186153E-01 -4.0705551719E-01 -4.0677954756E-01 + -4.0650395187E-01 -4.0622872936E-01 -4.0595387928E-01 -4.0567940087E-01 + -4.0540529337E-01 -4.0513155604E-01 -4.0485818813E-01 -4.0458518888E-01 + -4.0431255756E-01 -4.0404029342E-01 -4.0376839572E-01 -4.0349686371E-01 + -4.0322569667E-01 -4.0295489386E-01 -4.0268445453E-01 -4.0241437797E-01 + -4.0214466345E-01 -4.0187531023E-01 -4.0160631758E-01 -4.0133768480E-01 + -4.0106941115E-01 -4.0080149591E-01 -4.0053393837E-01 -4.0026673781E-01 + -3.9999989352E-01 -3.9973340479E-01 -3.9946727090E-01 -3.9920149114E-01 + -3.9893606482E-01 -3.9867099122E-01 -3.9840626964E-01 -3.9814189939E-01 + -3.9787787976E-01 -3.9761421006E-01 -3.9735088959E-01 -3.9708791765E-01 + -3.9682529357E-01 -3.9656301663E-01 -3.9630108617E-01 -3.9603950149E-01 + -3.9577826191E-01 -3.9551736674E-01 -3.9525681531E-01 -3.9499660694E-01 + -3.9473674094E-01 -3.9447721665E-01 -3.9421803339E-01 -3.9395919049E-01 + -3.9370068727E-01 -3.9344252308E-01 -3.9318469724E-01 -3.9292720909E-01 + -3.9267005797E-01 -3.9241324321E-01 -3.9215676415E-01 -3.9190062015E-01 + -3.9164481053E-01 -3.9138933465E-01 -3.9113419186E-01 -3.9087938150E-01 + -3.9062490292E-01 -3.9037075548E-01 -3.9011693853E-01 -3.8986345143E-01 + -3.8961029353E-01 -3.8935746419E-01 -3.8910496278E-01 -3.8885278865E-01 + -3.8860094118E-01 -3.8834941972E-01 -3.8809822364E-01 -3.8784735231E-01 + -3.8759680511E-01 -3.8734658140E-01 -3.8709668057E-01 -3.8684710197E-01 + -3.8659784500E-01 -3.8634890903E-01 -3.8610029344E-01 -3.8585199761E-01 + -3.8560402093E-01 -3.8535636278E-01 -3.8510902254E-01 -3.8486199962E-01 + -3.8461529339E-01 -3.8436890324E-01 -3.8412282858E-01 -3.8387706879E-01 + -3.8363162327E-01 -3.8338649142E-01 -3.8314167264E-01 -3.8289716632E-01 + -3.8265297187E-01 -3.8240908870E-01 -3.8216551621E-01 -3.8192225380E-01 + -3.8167930089E-01 -3.8143665688E-01 -3.8119432118E-01 -3.8095229322E-01 + -3.8071057239E-01 -3.8046915812E-01 -3.8022804983E-01 -3.7998724693E-01 + -3.7974674884E-01 -3.7950655499E-01 -3.7926666480E-01 -3.7902707769E-01 + -3.7878779309E-01 -3.7854881042E-01 -3.7831012912E-01 -3.7807174862E-01 + -3.7783366834E-01 -3.7759588772E-01 -3.7735840620E-01 -3.7712122321E-01 + -3.7688433819E-01 -3.7664775057E-01 -3.7641145980E-01 -3.7617546532E-01 + -3.7593976658E-01 -3.7570436300E-01 -3.7546925406E-01 -3.7523443918E-01 + -3.7499991782E-01 -3.7476568943E-01 -3.7453175345E-01 -3.7429810935E-01 + -3.7406475658E-01 -3.7383169459E-01 -3.7359892284E-01 -3.7336644078E-01 + -3.7313424788E-01 -3.7290234360E-01 -3.7267072740E-01 -3.7243939874E-01 + -3.7220835709E-01 -3.7197760192E-01 -3.7174713268E-01 -3.7151694886E-01 + -3.7128704991E-01 -3.7105743532E-01 -3.7082810456E-01 -3.7059905709E-01 + -3.7037029240E-01 -3.7014180996E-01 -3.6991360924E-01 -3.6968568974E-01 + -3.6945805092E-01 -3.6923069228E-01 -3.6900361329E-01 -3.6877681343E-01 + -3.6855029220E-01 -3.6832404909E-01 -3.6809808357E-01 -3.6787239513E-01 + -3.6764698328E-01 -3.6742184750E-01 -3.6719698728E-01 -3.6697240212E-01 + -3.6674809151E-01 -3.6652405495E-01 -3.6630029194E-01 -3.6607680198E-01 + -3.6585358457E-01 -3.6563063921E-01 -3.6540796540E-01 -3.6518556265E-01 + -3.6496343046E-01 -3.6474156835E-01 -3.6451997580E-01 -3.6429865235E-01 + -3.6407759749E-01 -3.6385681074E-01 -3.6363629160E-01 -3.6341603961E-01 + -3.6319605426E-01 -3.6297633507E-01 -3.6275688157E-01 -3.6253769327E-01 + -3.6231876968E-01 -3.6210011034E-01 -3.6188171476E-01 -3.6166358247E-01 + -3.6144571299E-01 -3.6122810584E-01 -3.6101076055E-01 -3.6079367665E-01 + -3.6057685367E-01 -3.6036029114E-01 -3.6014398859E-01 -3.5992794554E-01 + -3.5971216154E-01 -3.5949663612E-01 -3.5928136882E-01 -3.5906635916E-01 + -3.5885160670E-01 -3.5863711096E-01 -3.5842287148E-01 -3.5820888782E-01 + -3.5799515950E-01 -3.5778168608E-01 -3.5756846710E-01 -3.5735550210E-01 + -3.5714279063E-01 -3.5693033224E-01 -3.5671812647E-01 -3.5650617288E-01 + -3.5629447101E-01 -3.5608302042E-01 -3.5587182066E-01 -3.5566087129E-01 + -3.5545017186E-01 -3.5523972192E-01 -3.5502952103E-01 -3.5481956876E-01 + -3.5460986466E-01 -3.5440040829E-01 -3.5419119921E-01 -3.5398223698E-01 + -3.5377352117E-01 -3.5356505134E-01 -3.5335682706E-01 -3.5314884790E-01 + -3.5294111341E-01 -3.5273362318E-01 -3.5252637676E-01 -3.5231937373E-01 + -3.5211261367E-01 -3.5190609614E-01 -3.5169982071E-01 -3.5149378697E-01 + -3.5128799448E-01 -3.5108244283E-01 -3.5087713159E-01 -3.5067206034E-01 + -3.5046722865E-01 -3.5026263612E-01 -3.5005828232E-01 -3.4985416683E-01 + -3.4965028923E-01 -3.4944664912E-01 -3.4924324608E-01 -3.4904007968E-01 + -3.4883714953E-01 -3.4863445520E-01 -3.4843199630E-01 -3.4822977240E-01 + -3.4802778309E-01 -3.4782602798E-01 -3.4762450665E-01 -3.4742321870E-01 + -3.4722216372E-01 -3.4702134131E-01 -3.4682075106E-01 -3.4662039257E-01 + -3.4642026545E-01 -3.4622036928E-01 -3.4602070368E-01 -3.4582126823E-01 + -3.4562206255E-01 -3.4542308624E-01 -3.4522433890E-01 -3.4502582014E-01 + -3.4482752956E-01 -3.4462946677E-01 -3.4443163137E-01 -3.4423402298E-01 + -3.4403664120E-01 -3.4383948565E-01 -3.4364255594E-01 -3.4344585168E-01 + -3.4324937247E-01 -3.4305311795E-01 -3.4285708771E-01 -3.4266128138E-01 + -3.4246569857E-01 -3.4227033891E-01 -3.4207520200E-01 -3.4188028747E-01 + -3.4168559494E-01 -3.4149112403E-01 -3.4129687436E-01 -3.4110284555E-01 + -3.4090903723E-01 -3.4071544902E-01 -3.4052208055E-01 -3.4032893144E-01 + -3.4013600132E-01 -3.3994328981E-01 -3.3975079656E-01 -3.3955852118E-01 + -3.3936646330E-01 -3.3917462256E-01 -3.3898299859E-01 -3.3879159103E-01 + -3.3860039949E-01 -3.3840942363E-01 -3.3821866308E-01 -3.3802811746E-01 + -3.3783778642E-01 -3.3764766960E-01 -3.3745776664E-01 -3.3726807716E-01 + -3.3707860082E-01 -3.3688933726E-01 -3.3670028611E-01 -3.3651144702E-01 + -3.3632281964E-01 -3.3613440360E-01 -3.3594619856E-01 -3.3575820415E-01 + -3.3557042002E-01 -3.3538284583E-01 -3.3519548122E-01 -3.3500832584E-01 + -3.3482137933E-01 -3.3463464136E-01 -3.3444811156E-01 -3.3426178960E-01 + -3.3407567512E-01 -3.3388976778E-01 -3.3370406724E-01 -3.3351857314E-01 + -3.3333328515E-01 -3.3314820292E-01 -3.3296332610E-01 -3.3277865437E-01 + -3.3259418737E-01 -3.3240992476E-01 -3.3222586621E-01 -3.3204201138E-01 + -3.3185835993E-01 -3.3167491152E-01 -3.3149166581E-01 -3.3130862247E-01 + -3.3112578117E-01 -3.3094314157E-01 -3.3076070333E-01 -3.3057846613E-01 + -3.3039642963E-01 -3.3021459350E-01 -3.3003295741E-01 -3.2985152103E-01 + -3.2967028403E-01 -3.2948924608E-01 -3.2930840685E-01 -3.2912776603E-01 + -3.2894732327E-01 -3.2876707826E-01 -3.2858703067E-01 -3.2840718017E-01 + -3.2822752645E-01 -3.2804806918E-01 -3.2786880804E-01 -3.2768974270E-01 + -3.2751087285E-01 -3.2733219817E-01 -3.2715371833E-01 -3.2697543302E-01 + -3.2679734192E-01 -3.2661944471E-01 -3.2644174108E-01 -3.2626423071E-01 + -3.2608691329E-01 -3.2590978850E-01 -3.2573285603E-01 -3.2555611556E-01 + -3.2537956678E-01 -3.2520320939E-01 -3.2502704306E-01 -3.2485106749E-01 + -3.2467528237E-01 -3.2449968740E-01 -3.2432428225E-01 -3.2414906663E-01 + -3.2397404023E-01 -3.2379920274E-01 -3.2362455385E-01 -3.2345009327E-01 + -3.2327582068E-01 -3.2310173578E-01 -3.2292783828E-01 -3.2275412786E-01 + -3.2258060422E-01 -3.2240726707E-01 -3.2223411610E-01 -3.2206115102E-01 + -3.2188837152E-01 -3.2171577731E-01 -3.2154336808E-01 -3.2137114355E-01 + -3.2119910341E-01 -3.2102724737E-01 -3.2085557513E-01 -3.2068408640E-01 + -3.2051278089E-01 -3.2034165829E-01 -3.2017071833E-01 -3.1999996070E-01 + + + + -1.5381461105E-09 2.2298172447E-02 4.4482909183E-02 6.6442672064E-02 + 8.8069689887E-02 1.0926177179E-01 1.2992403767E-01 1.4997053977E-01 + 1.6932575124E-01 1.8792589909E-01 2.0572012151E-01 2.2267143174E-01 + 2.3875747353E-01 2.5397105616E-01 2.6832046019E-01 2.8182950820E-01 + 2.9453739836E-01 3.0649830184E-01 3.1778072863E-01 3.2846666943E-01 + 3.3865052484E-01 3.4843783575E-01 3.5794383201E-01 3.6729181905E-01 + 3.7661142438E-01 3.8603672811E-01 3.9570430340E-01 4.0575119406E-01 + 4.1631285753E-01 4.2752110230E-01 4.3950204872E-01 4.5237414233E-01 + 4.6624624798E-01 4.8121585226E-01 4.9736740017E-01 5.1477079035E-01 + 5.3348005131E-01 5.5353221819E-01 5.7494642746E-01 5.9772324382E-01 + 6.2184423019E-01 6.4727176885E-01 6.7394913803E-01 7.0180084479E-01 + 7.3073321160E-01 7.6063521054E-01 7.9137953541E-01 8.2282389900E-01 + 8.5481253930E-01 8.8717791582E-01 9.1974257412E-01 9.5232115460E-01 + 9.8472251916E-01 1.0167519678E+00 1.0482135160E+00 1.0789122018E+00 + 1.1086563932E+00 1.1372600627E+00 1.1645450004E+00 1.1903429335E+00 + 1.2144975252E+00 1.2368662239E+00 1.2573219384E+00 1.2757545143E+00 + 1.2920719928E+00 1.3062016321E+00 1.3180906784E+00 1.3277068738E+00 + 1.3350386939E+00 1.3400953105E+00 1.3429062802E+00 1.3435209598E+00 + 1.3420076585E+00 1.3384525346E+00 1.3329582534E+00 1.3256424223E+00 + 1.3166358245E+00 1.3060804745E+00 1.2941275224E+00 1.2809350338E+00 + 1.2666656772E+00 1.2514843500E+00 1.2355557753E+00 1.2190421035E+00 + 1.2021005526E+00 1.1848811191E+00 1.1675243929E+00 1.1501595082E+00 + 1.1329022575E+00 1.1158533997E+00 1.0990971844E+00 1.0827001166E+00 + 1.0667099807E+00 1.0511551393E+00 1.0360441190E+00 1.0213654925E+00 + 1.0070880602E+00 9.9316133263E-01 9.7951630887E-01 9.6606654466E-01 + 9.5270949683E-01 9.3932812909E-01 9.2579275944E-01 9.1196312620E-01 + 8.9769064651E-01 8.8282083815E-01 8.6719587290E-01 8.5065722786E-01 + 8.3304839889E-01 8.1421763975E-01 7.9402068902E-01 7.7232344712E-01 + 7.4900456570E-01 7.2395791257E-01 6.9709487605E-01 6.6834647499E-01 + 6.3766524224E-01 6.0502685267E-01 5.7043146852E-01 5.3390477966E-01 + 4.9549871976E-01 4.5529184220E-01 4.1338934496E-01 3.6992273833E-01 + 3.2504915306E-01 2.7895029056E-01 2.3183102374E-01 1.8391766011E-01 + 1.3545588155E-01 8.6708383761E-02 3.7952239288E-02 -1.0523988882E-02 + -5.8423348499E-02 -1.0544378059E-01 -1.5128154552E-01 -1.9563475092E-01 + -2.3820694154E-01 -2.7871070630E-01 -3.1687125963E-01 -3.5242995082E-01 + -3.8514766464E-01 -4.1480805649E-01 -4.4122058420E-01 -4.6422326723E-01 + -4.8368497507E-01 -4.9950732002E-01 -5.1162608640E-01 -5.2001219001E-01 + -5.2467218501E-01 -5.2564829733E-01 -5.2301804054E-01 -5.1689341462E-01 + -5.0741974051E-01 -4.9477415066E-01 -4.7916377874E-01 -4.6082366533E-01 + -4.4001441702E-01 -4.1701962544E-01 -3.9214307270E-01 -3.6570573547E-01 + -3.3804259543E-01 -3.0949928906E-01 -2.8042859518E-01 -2.5118681041E-01 + -2.2213001633E-01 -1.9361029820E-01 -1.6597193280E-01 -1.3954760741E-01 + -1.1465469955E-01 -9.1591677964E-02 -7.0634661081E-02 -5.2042475720E-02 + -3.6025527253E-02 -2.2716238635E-02 -1.2343702691E-02 -5.2549257257E-03 + -1.3486746536E-03 1.8191734785E-04 3.1554347333E-04 -1.6475527969E-05 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + 3.4041912275E-09 -7.7006378483E-03 -1.5144395301E-02 -2.2078637799E-02 + -2.8259160005E-02 -3.3454245158E-02 -3.7448540579E-02 -4.0046692107E-02 + -4.1076683626E-02 -4.0392832042E-02 -3.7878392920E-02 -3.3447737486E-02 + -2.7048067809E-02 -1.8660643464E-02 -8.3014999492E-03 3.9783536655E-03 + 1.8093262990E-02 3.3923780078E-02 5.1318028863E-02 7.0093567073E-02 + 9.0039720288E-02 1.1092035702E-01 1.3247706733E-01 1.5443270154E-01 + 1.7649522050E-01 1.9836180401E-01 2.1972316030E-01 2.4026797643E-01 + 2.5968744688E-01 2.7767981669E-01 2.9395487457E-01 3.0823833209E-01 + 3.2027602614E-01 3.2983788419E-01 3.3672159475E-01 3.4075592941E-01 + 3.4180366717E-01 3.3976407748E-01 3.3457492386E-01 3.2621395682E-01 + 3.1469987151E-01 3.0009271286E-01 2.8249371876E-01 2.6204459917E-01 + 2.3892625724E-01 2.1335696600E-01 1.8559002199E-01 1.5591090429E-01 + 1.2463397463E-01 9.2098760677E-02 5.8665870521E-02 2.4712591786E-02 + -9.3717665518E-03 -4.3190727783E-02 -7.6345631580E-02 -1.0844068153E-01 + -1.3908798780E-01 -1.6791253624E-01 -1.9455701603E-01 -2.1868643932E-01 + -2.3999248904E-01 -2.5819753415E-01 -2.7305825607E-01 -2.8436883481E-01 + -2.9196364927E-01 -2.9571945239E-01 -2.9555698879E-01 -2.9144203026E-01 + -2.8338581172E-01 -2.7144485903E-01 -2.5572020767E-01 -2.3635602015E-01 + -2.1353761780E-01 -1.8748895108E-01 -1.5846954013E-01 -1.2677092475E-01 + -9.2712669978E-02 -5.6637979789E-02 -1.8908977078E-02 2.0098286956E-02 + 5.9999026794E-02 1.0040504954E-01 1.4093014209E-01 1.8119544449E-01 + 2.2083473525E-01 2.5949955475E-01 2.9686409502E-01 3.3262978643E-01 + 3.6652951578E-01 3.9833141464E-01 4.2784216214E-01 4.5490975304E-01 + 4.7942568817E-01 5.0132655248E-01 5.2059495369E-01 5.3725980305E-01 + 5.5139592887E-01 5.6312302192E-01 5.7260392159E-01 5.8004226022E-01 + 5.8567949239E-01 5.8979134413E-01 5.9268372579E-01 5.9468815968E-01 + 5.9615678079E-01 5.9745697536E-01 5.9896572797E-01 6.0106375192E-01 + 6.0412948222E-01 6.0853301260E-01 6.1463006011E-01 6.2275604147E-01 + 6.3322034478E-01 6.4630087821E-01 6.6223897575E-01 6.8123473520E-01 + 7.0344285933E-01 7.2896906477E-01 7.5786711856E-01 7.9013655198E-01 + 8.2572109404E-01 8.6450785990E-01 9.0632731823E-01 9.5095405088E-01 + 9.9810830996E-01 1.0474583686E+00 1.0986236458E+00 1.1511785804E+00 + 1.2046572200E+00 1.2585584762E+00 1.3123519903E+00 1.3654845512E+00 + 1.4173869878E+00 1.4674814608E+00 1.5151890715E+00 1.5599376929E+00 + 1.6011699363E+00 1.6383511587E+00 1.6709773790E+00 1.6985830873E+00 + 1.7207487635E+00 1.7371080453E+00 1.7473534971E+00 1.7512415841E+00 + 1.7485926553E+00 1.7392911067E+00 1.7232864345E+00 1.7005927938E+00 + 1.6712880267E+00 1.6355124560E+00 1.5934673572E+00 1.5454133601E+00 + 1.4916686976E+00 1.4326073902E+00 1.3686572640E+00 1.3002977443E+00 + 1.2280572746E+00 1.1525103184E+00 1.0742736900E+00 9.9400233436E-01 + 9.1238422654E-01 8.3013466351E-01 7.4798968981E-01 6.6669896242E-01 + 5.8701794029E-01 5.0969968733E-01 4.3548630429E-01 3.6510023430E-01 + 2.9923553616E-01 2.3854932394E-01 1.8365350022E-01 1.3512846747E-01 + 9.3442729294E-02 5.8876737788E-02 3.1976236831E-02 1.3606898476E-02 + 3.4878299426E-03 -4.7589108677E-04 -8.1934699786E-04 4.2749871757E-05 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + 1.6679140194E-08 1.1878572911E-03 4.7212566679E-03 1.0510243378E-02 + 1.8406759055E-02 2.8207407709E-02 3.9657262010E-02 5.2454645045E-02 + 6.6256806071E-02 8.0686393429E-02 9.5338614043E-02 1.0978895699E-01 + 1.2360134868E-01 1.3633659954E-01 1.4756099652E-01 1.5685489279E-01 + 1.6382114556E-01 1.6809325456E-01 1.6934305836E-01 1.6728785225E-01 + 1.6169680062E-01 1.5239652758E-01 1.3927578309E-01 1.2228909649E-01 + 1.0145934560E-01 7.6879187594E-02 4.8711315985E-02 1.7187527671E-02 + -1.7393396452E-02 -5.4668974181E-02 -9.4217425371E-02 -1.3556313456E-01 + -1.7818309352E-01 -2.2151422761E-01 -2.6496149465E-01 -3.0790663139E-01 + -3.4971741108E-01 -3.8975726628E-01 -4.2739512379E-01 -4.6201529398E-01 + -4.9302725455E-01 -5.1987516928E-01 -5.4204698506E-01 -5.5908295629E-01 + -5.7058345362E-01 -5.7621592418E-01 -5.7572088345E-01 -5.6891683292E-01 + -5.5570401461E-01 -5.3606693105E-01 -5.1007557865E-01 -4.7788536266E-01 + -4.3973568243E-01 -3.9594719721E-01 -3.4691780343E-01 -2.9311737568E-01 + -2.3508134328E-01 -1.7340319373E-01 -1.0872601204E-01 -4.1733181331E-02 + 2.6861615906E-02 9.6324943806E-02 1.6591454466E-01 2.3489048666E-01 + 3.0252635367E-01 3.6812030086E-01 4.3100580035E-01 4.9056190482E-01 + 5.4622286272E-01 5.9748692805E-01 6.4392421837E-01 6.8518348912E-01 + 7.2099770763E-01 7.5118832857E-01 7.7566819170E-01 7.9444298417E-01 + 8.0761123123E-01 8.1536280240E-01 8.1797594291E-01 8.1581286384E-01 + 8.0931394695E-01 7.9899064266E-01 7.8541716065E-01 7.6922107243E-01 + 7.5107296349E-01 7.3167528859E-01 7.1175059780E-01 6.9202931251E-01 + 6.7323723896E-01 6.5608301342E-01 6.4124567554E-01 6.2936256694E-01 + 6.2101774867E-01 6.1673112542E-01 6.1694845520E-01 6.2203241146E-01 + 6.3225485010E-01 6.4779041694E-01 6.6871161195E-01 6.9498540534E-01 + 7.2647147783E-01 7.6292213343E-01 8.0398390771E-01 8.4920086862E-01 + 8.9801958211E-01 9.4979568775E-01 1.0038020051E+00 1.0592380674E+00 + 1.1152409556E+00 1.1708972862E+00 1.2252561854E+00 1.2773430665E+00 + 1.3261740125E+00 1.3707705549E+00 1.4101746317E+00 1.4434635025E+00 + 1.4697643941E+00 1.4882686575E+00 1.4982452145E+00 1.4990530861E+00 + 1.4901528048E+00 1.4711165250E+00 1.4416366647E+00 1.4015329331E+00 + 1.3507576217E+00 1.2893990500E+00 1.2176831015E+00 1.1359728037E+00 + 1.0447659191E+00 9.4469057653E-01 8.3649897582E-01 7.2105922202E-01 + 5.9934540554E-01 4.7242603878E-01 3.4145099214E-01 2.0763711905E-01 + 7.2252741076E-02 -6.3398785639E-02 -1.9799619275E-01 -3.3021788976E-01 + -4.5875975990E-01 -5.8235291603E-01 -6.9978112697E-01 -8.0989767428E-01 + -9.1164114841E-01 -1.0040501851E+00 -1.0862769150E+00 -1.1575988280E+00 + -1.2174289745E+00 -1.2653242531E+00 -1.3009917949E+00 -1.3242932427E+00 + -1.3352469614E+00 -1.3340281069E+00 -1.3209665580E+00 -1.2965427843E+00 + -1.2613816152E+00 -1.2162441156E+00 -1.1620175090E+00 -1.0997034504E+00 + -1.0304046129E+00 -9.5530992779E-01 -8.7567851579E-01 -7.9282264688E-01 + -7.0808984816E-01 -6.2284448708E-01 -5.3844901359E-01 -4.5624517569E-01 + -3.7753542828E-01 -3.0356483324E-01 -2.3550368202E-01 -1.7445970874E-01 + -1.2136578860E-01 -7.6873470935E-02 -4.1951668548E-02 -1.7956569076E-02 + -4.6753057529E-03 5.6473669013E-04 1.0546829095E-03 -5.5191919771E-05 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + -1.2258315446E-08 -1.1015890619E-03 -4.3828461835E-03 -9.7736580293E-03 + -1.7158551531E-02 -2.6378743125E-02 -3.7234959093E-02 -4.9490979381E-02 + -6.2877845003E-02 -7.7098657872E-02 -9.1833891768E-02 -1.0674712443E-01 + -1.2149109342E-01 -1.3571397269E-01 -1.4906576298E-01 -1.6120468663E-01 + -1.7180347721E-01 -1.8055545585E-01 -1.8718028892E-01 -1.9142932721E-01 + -1.9309043288E-01 -1.9199220903E-01 -1.8800755607E-01 -1.8105649011E-01 + -1.7110817064E-01 -1.5818209764E-01 -1.4234845190E-01 -1.2372756664E-01 + -1.0248853258E-01 -7.8846953520E-02 -5.3061883235E-02 -2.5431988697E-02 + 3.7090025488E-03 3.3997500590E-02 6.5045815562E-02 9.6448393026E-02 + 1.2778842255E-01 1.5864471288E-01 1.8859872192E-01 2.1724162627E-01 + 2.4418131362E-01 2.6904918154E-01 2.9150662861E-01 3.1125112770E-01 + 3.2802177737E-01 3.4160423485E-01 3.5183494341E-01 3.5860457758E-01 + 3.6186064184E-01 3.6160917141E-01 3.5791549808E-01 3.5090405867E-01 + 3.4075723894E-01 3.2771326148E-01 3.1206314132E-01 2.9414674853E-01 + 2.7434803141E-01 2.5308946832E-01 2.3082582868E-01 2.0803733598E-01 + 1.8522233568E-01 1.6288957999E-01 1.4155024862E-01 1.2170983001E-01 + 1.0385999074E-01 8.8470562636E-02 7.5981776001E-02 6.6796865129E-02 + 6.1275167410E-02 5.9725830722E-02 6.2402235366E-02 6.9497226528E-02 + 8.1139241472E-02 9.7389402329E-02 1.1823963096E-01 1.4361182675E-01 + 1.7335813212E-01 2.0726229335E-01 2.4504210782E-01 2.8635293103E-01 + 3.3079220036E-01 3.7790491617E-01 4.2719000507E-01 4.7810747594E-01 + 5.3008626590E-01 5.8253266166E-01 6.3483917154E-01 6.8639371536E-01 + 7.3658899268E-01 7.8483188625E-01 8.3055275502E-01 8.7321447142E-01 + 9.1232106024E-01 9.4742580081E-01 9.7813866118E-01 1.0041329419E+00 + 1.0251510181E+00 1.0410090804E+00 1.0516007914E+00 1.0568997870E+00 + 1.0569609736E+00 1.0519205848E+00 1.0419949836E+00 1.0274782143E+00 + 1.0087383263E+00 9.8621251232E-01 9.6040112113E-01 9.3186062409E-01 + 9.0119562993E-01 8.6905005874E-01 8.3609759973E-01 8.0303159020E-01 + 7.7055446270E-01 7.3936691625E-01 7.1015697229E-01 6.8358908158E-01 + 6.6029344742E-01 6.4085572971E-01 6.2580729193E-01 6.1561614527E-01 + 6.1067873454E-01 6.1131270289E-01 6.1775075753E-01 6.3013574133E-01 + 6.4851700059E-01 6.7284812605E-01 7.0298611343E-01 7.3869197525E-01 + 7.7963282442E-01 8.2538540762E-01 8.7544105883E-01 9.2921202971E-01 + 9.8603910767E-01 1.0452004364E+00 1.1059214307E+00 1.1673856413E+00 + 1.2287464424E+00 1.2891393770E+00 1.3476949613E+00 1.4035518481E+00 + 1.4558700753E+00 1.5038442631E+00 1.5467157693E+00 1.5837842229E+00 + 1.6144149983E+00 1.6380466913E+00 1.6541991121E+00 1.6624796633E+00 + 1.6625888030E+00 1.6543246849E+00 1.6375868311E+00 1.6123788966E+00 + 1.5788104114E+00 1.5370974868E+00 1.4875623510E+00 1.4306316873E+00 + 1.3668335818E+00 1.2967931761E+00 1.2212267402E+00 1.1409344562E+00 + 1.0567916068E+00 9.6973857804E-01 8.8076949102E-01 7.9091987228E-01 + 7.0125334316E-01 6.1284770186E-01 5.2678051002E-01 4.4411450961E-01 + 3.6588305380E-01 2.9307583198E-01 2.2662509797E-01 1.6741991607E-01 + 1.1620138646E-01 7.3463588505E-02 4.0025332648E-02 1.7097046404E-02 + 4.4226866011E-03 -5.6662222755E-04 -1.0176334185E-03 5.3132028720E-05 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + -1.5249409124E-08 -3.6973911391E-05 -2.9419384858E-04 -9.8395915013E-04 + -2.3028640029E-03 -4.4244114089E-03 -7.4921758437E-03 -1.1613679151E-02 + -1.6855128965E-02 -2.3237150491E-02 -3.0731621140E-02 -3.9259693838E-02 + -4.8691069122E-02 -5.8844549175E-02 -6.9489879014E-02 -8.0350851930E-02 + -9.1109628460E-02 -1.0141219122E-01 -1.1087483242E-01 -1.1909154753E-01 + -1.2564218727E-01 -1.3010120230E-01 -1.3204680016E-01 -1.3107032260E-01 + -1.2678564468E-01 -1.1883839343E-01 -1.0691478515E-01 -9.0749885442E-02 + -7.0135105310E-02 -4.4924760118E-02 -1.5041534807E-02 1.9519280711E-02 + 5.8686898800E-02 1.0231357092E-01 1.5017461297E-01 2.0196994867E-01 + 2.5732716995E-01 3.1580608277E-01 3.7690467607E-01 4.4006642200E-01 + 5.0468878755E-01 5.7013281156E-01 6.3573357749E-01 7.0081139213E-01 + 7.6468346346E-01 8.2667585781E-01 8.8613550788E-01 9.4244203857E-01 + 9.9501917773E-01 1.0433455240E+00 1.0869644522E+00 1.1254929523E+00 + 1.1586292128E+00 1.1861587847E+00 1.2079591836E+00 1.2240028198E+00 + 1.2343581730E+00 1.2391891633E+00 1.2387527047E+00 1.2333944598E+00 + 1.2235428509E+00 1.2097014171E+00 1.1924396380E+00 1.1723823781E+00 + 1.1501981322E+00 1.1265862787E+00 1.1022635681E+00 1.0779500941E+00 + 1.0543550042E+00 1.0321622180E+00 1.0120164236E+00 9.9450962109E-01 + 9.8016847473E-01 9.6944272493E-01 9.6269489315E-01 9.6019149253E-01 + 9.6209593117E-01 9.6846326601E-01 9.7923693259E-01 9.9424754073E-01 + 1.0132137890E+00 1.0357455123E+00 1.0613488366E+00 1.0894333772E+00 + 1.1193213770E+00 1.1502586435E+00 1.1814271120E+00 1.2119588241E+00 + 1.2409510905E+00 1.2674825728E+00 1.2906300094E+00 1.3094852862E+00 + 1.3231725495E+00 1.3308650521E+00 1.3318014227E+00 1.3253010614E+00 + 1.3107783688E+00 1.2877555425E+00 1.2558736905E+00 1.2149020436E+00 + 1.1647450785E+00 1.1054473997E+00 1.0371962669E+00 9.6032169540E-01 + 8.7529410096E-01 7.8271950109E-01 6.8333233306E-01 5.7798598812E-01 + 4.6764120536E-01 3.5335250631E-01 2.3625288809E-01 1.1753702747E-01 + -1.5567256859E-03 -1.1976526198E-01 -2.3582021326E-01 -3.4846770387E-01 + -4.5648801268E-01 -5.5871480516E-01 -6.5405359611E-01 -7.4149911874E-01 + -8.2015129492E-01 -8.8922951708E-01 -9.4808498380E-01 -9.9621086914E-01 + -1.0332501374E+00 -1.0590008452E+00 -1.0734188393E+00 -1.0766177926E+00 + -1.0688665429E+00 -1.0505837949E+00 -1.0223302582E+00 -9.8479832658E-01 + -9.3879949751E-01 -8.8524972066E-01 -8.2515291479E-01 -7.5958295279E-01 + -6.8966439043E-01 -6.1655227490E-01 -5.4141141393E-01 -4.6539535725E-01 + -3.8962553615E-01 -3.1517090482E-01 -2.4302957562E-01 -1.7411201988E-01 + -1.0923160155E-01 -4.9096064475E-02 5.7005825107E-03 5.4682837940E-02 + 9.7496324671E-02 1.3390845434E-01 1.6380724693E-01 1.8719853868E-01 + 2.0420170197E-01 2.1504404794E-01 2.2005397062E-01 2.1965290345E-01 + 2.1434606508E-01 2.0471211366E-01 1.9139154450E-01 1.7507416856E-01 + 1.5648540834E-01 1.3637194932E-01 1.1548658181E-01 9.4572811448E-02 + 7.4349265447E-02 5.5504512096E-02 3.8647056374E-02 2.4253393148E-02 + 1.2924147957E-02 5.3247677475E-03 1.3233953374E-03 -1.2020022031E-04 + -1.9482486732E-04 6.0788070309E-05 8.2167907232E-05 -7.7853406773E-06 + -1.4917790561E-05 -2.3684818020E-07 -6.7916397559E-07 0.0000000000E+00 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + 2.4641681522E-08 8.0240621523E-05 6.3926780957E-04 2.1426478519E-03 + 5.0298108571E-03 9.7017371223E-03 1.6509530816E-02 2.5744147086E-02 + 3.7627514061E-02 5.2305261367E-02 6.9841232368E-02 9.0213918990E-02 + 1.1331491662E-01 1.3894945289E-01 1.6683899915E-01 1.9662592811E-01 + 2.2788013602E-01 2.6010750473E-01 2.9276003745E-01 3.2524746450E-01 + 3.5695008156E-01 3.8723255362E-01 4.1545839442E-01 4.4100481323E-01 + 4.6327760942E-01 4.8172579037E-01 4.9585558990E-01 5.0524357347E-01 + 5.0954853083E-01 5.0852187907E-01 5.0201632605E-01 4.8999257724E-01 + 4.7252390694E-01 4.4979845653E-01 4.2211916754E-01 3.8990130535E-01 + 3.5366757756E-01 3.1404090153E-01 2.7173492384E-01 2.2754244241E-01 + 1.8232192690E-01 1.3698237479E-01 9.2466777858E-02 4.9734506127E-02 + 9.7429432326E-03 -2.6571272930E-02 -5.8311036608E-02 -8.4637213787E-02 + -1.0478636207E-01 -1.1808736634E-01 -1.2397664136E-01 -1.2201157537E-01 + -1.1188191814E-01 -9.3418852793E-02 -6.6601531725E-02 -3.1560903577E-02 + 1.1419292236E-02 6.1904433287E-02 1.1931383915E-01 1.8292847210E-01 + 2.5190141608E-01 3.2527098115E-01 4.0197622817E-01 4.8087465884E-01 + 5.6076177082E-01 6.4039213792E-01 7.1850164092E-01 7.9383044754E-01 + 8.6514631978E-01 9.3126781484E-01 9.9108694137E-01 1.0435908373E+00 + 1.0878820473E+00 1.1231969994E+00 1.1489223069E+00 1.1646085595E+00 + 1.1699813087E+00 1.1649490013E+00 1.1496076680E+00 1.1242422343E+00 + 1.0893243783E+00 1.0455069272E+00 9.9361484557E-01 9.3463293344E-01 + 8.6969041498E-01 8.0004265755E-01 7.2705031738E-01 6.5215625892E-01 + 5.7686064044E-01 5.0269459652E-01 4.3119297935E-01 3.6386664314E-01 + 3.0217477020E-01 2.4749774212E-01 2.0111105516E-01 1.6416076578E-01 + 1.3764092916E-01 1.2237346304E-01 1.1899082939E-01 1.2792187896E-01 + 1.4938115074E-01 1.8336185794E-01 2.2963272820E-01 2.8773879607E-01 + 3.5700617812E-01 4.3655078646E-01 5.2529086547E-01 6.2196316703E-01 + 7.2514251018E-01 8.3326441049E-01 9.4465040434E-01 1.0575356394E+00 + 1.1700982607E+00 1.2804900830E+00 1.3868680151E+00 1.4874256784E+00 + 1.5804246568E+00 1.6642248198E+00 1.7373131621E+00 1.7983306337E+00 + 1.8460964681E+00 1.8796295437E+00 1.8981663702E+00 1.9011753557E+00 + 1.8883670662E+00 1.8597002386E+00 1.8153834255E+00 1.7558722004E+00 + 1.6818618968E+00 1.5942760103E+00 1.4942504152E+00 1.3831135991E+00 + 1.2623632785E+00 1.1336397342E+00 9.9869629596E-01 8.5936749671E-01 + 7.1753538154E-01 5.7509453994E-01 4.3391658294E-01 2.9581433732E-01 + 1.6250670872E-01 3.5584659901E-02 -8.3517327526E-02 -1.9354652632E-01 + -2.9343723370E-01 -3.8231626988E-01 -4.5951134293E-01 -5.2455271134E-01 + -5.7717191591E-01 -6.1729855363E-01 -6.4505486186E-01 -6.6074895445E-01 + -6.6486654581E-01 -6.5806153214E-01 -6.4114516464E-01 -6.1507379218E-01 + -5.8093471020E-01 -5.3993027619E-01 -4.9335945143E-01 -4.4259757741E-01 + -3.8907334662E-01 -3.3424428416E-01 -2.7957005413E-01 -2.2648494557E-01 + -1.7636941629E-01 -1.3054455823E-01 -9.0165192087E-02 -5.6109478972E-02 + -2.9553462399E-02 -1.1834836963E-02 -2.5601541991E-03 6.4308370562E-04 + 5.7684312642E-04 -1.7207648642E-04 -2.2560891871E-04 2.3480074407E-05 + 4.4075574440E-05 1.2198212755E-07 3.4978468749E-07 0.0000000000E+00 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + 1.0253333203E+01 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 1.4565829637E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 1.4575095131E+01 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 1.6648748652E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -5.5409935671E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 -1.2754436333E+00 + + + + + -1.3798476250E-12 1.2942076768E-03 2.5897803537E-03 3.8880836788E-03 + 5.1904845793E-03 6.4983518520E-03 7.8130566956E-03 9.1359731674E-03 + 1.0468478546E-02 1.1811953589E-02 1.3167782658E-02 1.4537353724E-02 + 1.5922058210E-02 1.7323290691E-02 1.8742448425E-02 2.0180930726E-02 + 2.1640138161E-02 2.3121471589E-02 2.4626331029E-02 2.6156114371E-02 + 2.7712215938E-02 2.9296024900E-02 3.0908923556E-02 3.2552285507E-02 + 3.4227473710E-02 3.5935838460E-02 3.7678715286E-02 3.9457422807E-02 + 4.1273260549E-02 4.3127506745E-02 4.5021416148E-02 4.6956217860E-02 + 4.8933113211E-02 5.0953273700E-02 5.3017839007E-02 5.5127915111E-02 + 5.7284572513E-02 5.9488844584E-02 6.1741726047E-02 6.4044171606E-02 + 6.6397094726E-02 6.8801366569E-02 7.1257815096E-02 7.3767224324E-02 + 7.6330333750E-02 7.8947837925E-02 8.1620386185E-02 8.4348582519E-02 + 8.7132985575E-02 8.9974108784E-02 9.2872420595E-02 9.5828344795E-02 + 9.8842260919E-02 1.0191450471E-01 1.0504536862E-01 1.0823510236E-01 + 1.1148391341E-01 1.1479196754E-01 1.1815938935E-01 1.2158626269E-01 + 1.2507263101E-01 1.2861849775E-01 1.3222382649E-01 1.3588854111E-01 + 1.3961252578E-01 1.4339562485E-01 1.4723764261E-01 1.5113834294E-01 + 1.5509744882E-01 1.5911464170E-01 1.6318956078E-01 1.6732180213E-01 + 1.7151091780E-01 1.7575641470E-01 1.8005775351E-01 1.8441434747E-01 + 1.8882556118E-01 1.9329070931E-01 1.9780905533E-01 2.0237981027E-01 + 2.0700213150E-01 2.1167512160E-01 2.1639782728E-01 2.2116923841E-01 + 2.2598828724E-01 2.3085384768E-01 2.3576473486E-01 2.4071970477E-01 + 2.4571745423E-01 2.5075662099E-01 2.5583578413E-01 2.6095346470E-01 + 2.6610812660E-01 2.7129817776E-01 2.7652197158E-01 2.8177780863E-01 + 2.8706393862E-01 2.9237856265E-01 2.9771983569E-01 3.0308586930E-01 + 3.0847473461E-01 3.1388446545E-01 3.1931306172E-01 3.2475849289E-01 + 3.3021870164E-01 3.3569160765E-01 3.4117511139E-01 3.4666709810E-01 + 3.5216544165E-01 3.5766800846E-01 3.6317266144E-01 3.6867726373E-01 + 3.7417968247E-01 3.7967779237E-01 3.8516947916E-01 3.9065264283E-01 + 3.9612520071E-01 4.0158509030E-01 4.0703027186E-01 4.1245873075E-01 + 4.1786847952E-01 4.2325755965E-01 4.2862404310E-01 4.3396603352E-01 + 4.3928166719E-01 4.4456911366E-01 4.4982657616E-01 4.5505229170E-01 + 4.6024453097E-01 4.6540159801E-01 4.7052182962E-01 4.7560359469E-01 + 4.8064529329E-01 4.8564535567E-01 4.9060224114E-01 4.9551443696E-01 + 5.0038045710E-01 5.0519884106E-01 5.0996815275E-01 5.1468697933E-01 + 5.1935393029E-01 5.2396763656E-01 5.2852674983E-01 5.3302994201E-01 + 5.3747590497E-01 5.4186335047E-01 5.4619101035E-01 5.5045763698E-01 + 5.5466200405E-01 5.5880290756E-01 5.6287916721E-01 5.6688962801E-01 + 5.7083316226E-01 5.7470867173E-01 5.7851509020E-01 5.8225138624E-01 + 5.8591656626E-01 5.8950967772E-01 5.9302981267E-01 5.9647611132E-01 + 5.9984776586E-01 6.0314402437E-01 6.0636419480E-01 6.0950764899E-01 + 6.1257382672E-01 6.1556223970E-01 6.1847247551E-01 6.2130420143E-01 + 6.2405716812E-01 6.2673121312E-01 6.2932626414E-01 6.3184234225E-01 + 6.3427956409E-01 6.3663814468E-01 6.3891840020E-01 6.4112074813E-01 + 6.4324571125E-01 6.4529391398E-01 6.4726606046E-01 6.4916291996E-01 + 6.5098529156E-01 6.5273396301E-01 6.5440972294E-01 6.5601335575E-01 + 6.5754564481E-01 6.5900738788E-01 6.6039939092E-01 6.6172245921E-01 + 6.6297739669E-01 6.6416500912E-01 6.6528610400E-01 6.6634148898E-01 + 6.6733197139E-01 6.6825835806E-01 6.6912145495E-01 6.6992206678E-01 + 6.7066099670E-01 6.7133904602E-01 6.7195701389E-01 6.7251569708E-01 + 6.7301588971E-01 6.7345838306E-01 6.7384396530E-01 6.7417342134E-01 + 6.7444753262E-01 6.7466707696E-01 6.7483282836E-01 6.7494555690E-01 + 6.7500602854E-01 6.7501500502E-01 6.7497324374E-01 6.7488149762E-01 + 6.7474051499E-01 6.7455103949E-01 6.7431381000E-01 6.7402956048E-01 + 6.7369901995E-01 6.7332291236E-01 6.7290195655E-01 6.7243686614E-01 + 6.7192834950E-01 6.7137710963E-01 6.7078384416E-01 6.7014924527E-01 + 6.6947399963E-01 6.6875878833E-01 6.6800428688E-01 6.6721116515E-01 + 6.6638008731E-01 6.6551171182E-01 6.6460669136E-01 6.6366567285E-01 + 6.6268929740E-01 6.6167820024E-01 6.6063301077E-01 6.5955435251E-01 + 6.5844284306E-01 6.5729909411E-01 6.5612371143E-01 6.5491729484E-01 + 6.5368043821E-01 6.5241372947E-01 6.5111775057E-01 6.4979307753E-01 + 6.4844028039E-01 6.4705992323E-01 6.4565256419E-01 6.4421875544E-01 + 6.4275904323E-01 6.4127396788E-01 6.3976406376E-01 6.3822985937E-01 + 6.3667187728E-01 6.3509063421E-01 6.3348664100E-01 6.3186040265E-01 + 6.3021241835E-01 6.2854318146E-01 6.2685317958E-01 6.2514289455E-01 + 6.2341280248E-01 6.2166337376E-01 6.1989507310E-01 6.1810835959E-01 + 6.1630368665E-01 6.1448150214E-01 6.1264224834E-01 6.1078636200E-01 + 6.0891427439E-01 6.0702641127E-01 6.0512319302E-01 6.0320503459E-01 + 6.0127234556E-01 5.9932553020E-01 5.9736498748E-01 5.9539111112E-01 + 5.9340428963E-01 5.9140490631E-01 5.8939333934E-01 5.8736996181E-01 + 5.8533514172E-01 5.8328924205E-01 5.8123262080E-01 5.7916563103E-01 + 5.7708862088E-01 5.7500193364E-01 5.7290590776E-01 5.7080087693E-01 + 5.6868717006E-01 5.6656511140E-01 5.6443502052E-01 5.6229721236E-01 + 5.6015199731E-01 5.5799968120E-01 5.5584056537E-01 5.5367494672E-01 + 5.5150311773E-01 5.4932536651E-01 5.4714197685E-01 5.4495322825E-01 + 5.4275939595E-01 5.4056075102E-01 5.3835756033E-01 5.3615008665E-01 + 5.3393858869E-01 5.3172332107E-01 5.2950453447E-01 5.2728247558E-01 + 5.2505738717E-01 5.2282950816E-01 5.2059907361E-01 5.1836631481E-01 + 5.1613145928E-01 5.1389473082E-01 5.1165634957E-01 5.0941653203E-01 + 5.0717549109E-01 5.0493343610E-01 5.0269057290E-01 5.0044710382E-01 + 4.9820322777E-01 4.9595914025E-01 4.9371503341E-01 4.9147109605E-01 + 4.8922751369E-01 4.8698446860E-01 4.8474213984E-01 4.8250070327E-01 + 4.8026033162E-01 4.7802119454E-01 4.7578345856E-01 4.7354728722E-01 + 4.7131284102E-01 4.6908027754E-01 4.6684975141E-01 4.6462141435E-01 + 4.6239541525E-01 4.6017190016E-01 4.5795101234E-01 4.5573289230E-01 + 4.5351767781E-01 4.5130550396E-01 4.4909650318E-01 4.4689080528E-01 + 4.4468853746E-01 4.4248982439E-01 4.4029478818E-01 4.3810354845E-01 + 4.3591622237E-01 4.3373292465E-01 4.3155376761E-01 4.2937886121E-01 + 4.2720831303E-01 4.2504222837E-01 4.2288071023E-01 4.2072385937E-01 + 4.1857177430E-01 4.1642455135E-01 4.1428228469E-01 4.1214506634E-01 + 4.1001298622E-01 4.0788613214E-01 4.0576458990E-01 4.0364844324E-01 + 4.0153777390E-01 3.9943266167E-01 3.9733318437E-01 3.9523941792E-01 + 3.9315143633E-01 3.9106931176E-01 3.8899311452E-01 3.8692291310E-01 + 3.8485877420E-01 3.8280076277E-01 3.8074894200E-01 3.7870337338E-01 + 3.7666411671E-01 3.7463123010E-01 3.7260477004E-01 3.7058479139E-01 + 3.6857134742E-01 3.6656448983E-01 3.6456426877E-01 3.6257073285E-01 + 3.6058392919E-01 3.5860390342E-01 3.5663069972E-01 3.5466436083E-01 + 3.5270492807E-01 3.5075244136E-01 3.4880693927E-01 3.4686845899E-01 + 3.4493703641E-01 3.4301270607E-01 3.4109550126E-01 3.3918545398E-01 + 3.3728259498E-01 3.3538695378E-01 3.3349855870E-01 3.3161743686E-01 + 3.2974361421E-01 3.2787711556E-01 3.2601796456E-01 3.2416618377E-01 + 3.2232179464E-01 3.2048481755E-01 3.1865527180E-01 3.1683317567E-01 + 3.1501854640E-01 3.1321140023E-01 3.1141175242E-01 3.0961961722E-01 + 3.0783500795E-01 3.0605793700E-01 3.0428841581E-01 3.0252645492E-01 + 3.0077206399E-01 2.9902525179E-01 2.9728602623E-01 2.9555439439E-01 + 2.9383036250E-01 2.9211393600E-01 2.9040511950E-01 2.8870391686E-01 + 2.8701033113E-01 2.8532436463E-01 2.8364601894E-01 2.8197529490E-01 + 2.8031219265E-01 2.7865671160E-01 2.7700885051E-01 2.7536860745E-01 + 2.7373597982E-01 2.7211096439E-01 2.7049355729E-01 2.6888375401E-01 + 2.6728154945E-01 2.6568693792E-01 2.6409991313E-01 2.6252046820E-01 + 2.6094859574E-01 2.5938428775E-01 2.5782753573E-01 2.5627833065E-01 + 2.5473666294E-01 2.5320252256E-01 2.5167589895E-01 2.5015678108E-01 + 2.4864515743E-01 2.4714101604E-01 2.4564434449E-01 2.4415512990E-01 + 2.4267335900E-01 2.4119901805E-01 2.3973209292E-01 2.3827256909E-01 + 2.3682043162E-01 2.3537566521E-01 2.3393825416E-01 2.3250818243E-01 + 2.3108543360E-01 2.2966999091E-01 2.2826183727E-01 2.2686095524E-01 + 2.2546732707E-01 2.2408093469E-01 2.2270175973E-01 2.2132978350E-01 + 2.1996498705E-01 2.1860735111E-01 2.1725685617E-01 2.1591348243E-01 + 2.1457720983E-01 2.1324801806E-01 2.1192588657E-01 2.1061079455E-01 + 2.0930272098E-01 2.0800164460E-01 2.0670754392E-01 2.0542039727E-01 + 2.0414018274E-01 2.0286687823E-01 2.0160046146E-01 2.0034090994E-01 + 1.9908820101E-01 1.9784231184E-01 1.9660321940E-01 1.9537090053E-01 + 1.9414533190E-01 1.9292649002E-01 1.9171435125E-01 1.9050889181E-01 + 1.8931008779E-01 1.8811791514E-01 1.8693234968E-01 1.8575336711E-01 + 1.8458094302E-01 1.8341505288E-01 1.8225567205E-01 1.8110277579E-01 + 1.7995633925E-01 1.7881633750E-01 1.7768274551E-01 1.7655553817E-01 + 1.7543469029E-01 1.7432017660E-01 1.7321197174E-01 1.7211005030E-01 + 1.7101438681E-01 1.6992495570E-01 1.6884173139E-01 1.6776468822E-01 + 1.6669380047E-01 1.6562904239E-01 1.6457038819E-01 1.6351781201E-01 + 1.6247128798E-01 1.6143079018E-01 1.6039629269E-01 1.5936776951E-01 + 1.5834519466E-01 1.5732854211E-01 1.5631778584E-01 1.5531289978E-01 + 1.5431385788E-01 1.5332063405E-01 1.5233320221E-01 1.5135153627E-01 + 1.5037561014E-01 1.4940539773E-01 1.4844087295E-01 1.4748200971E-01 + 1.4652878195E-01 1.4558116359E-01 1.4463912858E-01 1.4370265088E-01 + 1.4277170446E-01 1.4184626333E-01 1.4092630149E-01 1.4001179299E-01 + 1.3910271190E-01 1.3819903229E-01 1.3730072829E-01 1.3640777406E-01 + 1.3552014376E-01 1.3463781163E-01 1.3376075191E-01 1.3288893888E-01 + 1.3202234689E-01 1.3116095030E-01 1.3030472352E-01 1.2945364100E-01 + 1.2860767726E-01 1.2776680684E-01 1.2693100434E-01 1.2610024440E-01 + 1.2527450172E-01 1.2445375106E-01 1.2363796722E-01 1.2282712506E-01 + 1.2202119950E-01 1.2122016550E-01 1.2042399811E-01 1.1963267241E-01 + 1.1884616356E-01 1.1806444678E-01 1.1728749734E-01 1.1651529058E-01 + 1.1574780192E-01 1.1498500683E-01 1.1422688084E-01 1.1347339957E-01 + 1.1272453870E-01 1.1198027397E-01 1.1124058120E-01 1.1050543628E-01 + 1.0977481517E-01 1.0904869391E-01 1.0832704859E-01 1.0760985542E-01 + 1.0689709063E-01 1.0618873057E-01 1.0548475165E-01 1.0478513034E-01 + 1.0408984322E-01 1.0339886693E-01 1.0271217818E-01 1.0202975377E-01 + 1.0135157059E-01 1.0067760560E-01 1.0000783584E-01 9.9342238419E-02 + 9.8680790553E-02 9.8023469525E-02 9.7370252704E-02 9.6721117540E-02 + 9.6076041568E-02 9.5435002408E-02 9.4797977760E-02 9.4164945414E-02 + 9.3535883239E-02 9.2910769193E-02 9.2289581318E-02 9.1672297742E-02 + 9.1058896677E-02 9.0449356425E-02 8.9843655370E-02 8.9241771986E-02 + 8.8643684832E-02 8.8049372555E-02 8.7458813887E-02 8.6871987650E-02 + 8.6288872752E-02 8.5709448189E-02 8.5133693046E-02 8.4561586493E-02 + 8.3993107791E-02 8.3428236287E-02 8.2866951418E-02 8.2309232708E-02 + 8.1755059769E-02 8.1204412304E-02 8.0657270101E-02 8.0113613038E-02 + 7.9573421084E-02 7.9036674292E-02 7.8503352807E-02 7.7973436862E-02 + 7.7446906777E-02 7.6923742962E-02 7.6403925916E-02 7.5887436226E-02 + 7.5374254566E-02 7.4864361701E-02 7.4357738482E-02 7.3854365851E-02 + 7.3354224836E-02 7.2857296555E-02 7.2363562212E-02 7.1873003101E-02 + 7.1385600604E-02 7.0901336189E-02 7.0420191413E-02 6.9942147921E-02 + 6.9467187446E-02 6.8995291805E-02 6.8526442907E-02 6.8060622746E-02 + 6.7597813402E-02 6.7137997043E-02 6.6681155924E-02 6.6227272386E-02 + 6.5776328857E-02 6.5328307850E-02 6.4883191965E-02 6.4440963889E-02 + 6.4001606393E-02 6.3565102333E-02 6.3131434653E-02 6.2700586381E-02 + 6.2272540628E-02 6.1847280592E-02 6.1424789556E-02 6.1005050885E-02 + 6.0588048031E-02 6.0173764528E-02 5.9762183994E-02 5.9353290131E-02 + 5.8947066724E-02 5.8543497642E-02 5.8142566835E-02 5.7744258337E-02 + 5.7348556265E-02 5.6955444817E-02 5.6564908272E-02 5.6176930994E-02 + 5.5791497424E-02 5.5408592088E-02 5.5028199590E-02 5.4650304618E-02 + 5.4274891937E-02 5.3901946395E-02 5.3531452918E-02 5.3163396512E-02 + 5.2797762263E-02 5.2434535336E-02 5.2073700974E-02 5.1715244501E-02 + 5.1359151316E-02 5.1005406899E-02 5.0653996806E-02 5.0304906672E-02 + 4.9958122206E-02 4.9613629199E-02 4.9271413514E-02 4.8931461094E-02 + 4.8593757956E-02 4.8258290193E-02 4.7925043975E-02 4.7594005545E-02 + 4.7265161224E-02 4.6938497405E-02 4.6614000557E-02 4.6291657223E-02 + 4.5971454019E-02 4.5653377635E-02 4.5337414835E-02 4.5023552456E-02 + 4.4711777406E-02 4.4402076667E-02 4.4094437293E-02 4.3788846410E-02 + 4.3485291214E-02 4.3183758975E-02 4.2884237031E-02 4.2586712793E-02 + 4.2291173741E-02 4.1997607426E-02 4.1706001468E-02 4.1416343557E-02 + 4.1128621452E-02 4.0842822981E-02 4.0558936040E-02 4.0276948595E-02 + 3.9996848678E-02 3.9718624390E-02 3.9442263899E-02 3.9167755441E-02 + 3.8895087317E-02 3.8624247896E-02 3.8355225613E-02 3.8088008968E-02 + 3.7822586530E-02 3.7558946928E-02 3.7297078860E-02 3.7036971089E-02 + 3.6778612439E-02 3.6521991802E-02 3.6267098132E-02 3.6013920447E-02 + 3.5762447828E-02 3.5512669419E-02 3.5264574428E-02 3.5018152123E-02 + 3.4773391837E-02 3.4530282963E-02 3.4288814955E-02 3.4048977331E-02 + 3.3810759667E-02 3.3574151602E-02 3.3339142833E-02 3.3105723120E-02 + 3.2873882281E-02 3.2643610193E-02 3.2414896793E-02 3.2187732079E-02 + 3.1962106104E-02 3.1738008981E-02 3.1515430883E-02 3.1294362039E-02 + 3.1074792734E-02 3.0856713313E-02 3.0640114177E-02 3.0424985784E-02 + 3.0211318648E-02 2.9999103338E-02 2.9788330481E-02 2.9578990760E-02 + 2.9371074910E-02 2.9164573724E-02 2.8959478049E-02 2.8755778785E-02 + 2.8553466889E-02 2.8352533370E-02 2.8152969291E-02 2.7954765769E-02 + 2.7757913972E-02 2.7562405125E-02 2.7368230501E-02 2.7175381428E-02 + 2.6983849285E-02 2.6793625504E-02 2.6604701567E-02 2.6417069008E-02 + 2.6230719413E-02 2.6045644416E-02 2.5861835704E-02 2.5679285013E-02 + 2.5497984129E-02 2.5317924888E-02 2.5139099175E-02 2.4961498925E-02 + 2.4785116121E-02 2.4609942795E-02 2.4435971027E-02 2.4263192946E-02 + 2.4091600727E-02 2.3921186596E-02 2.3751942822E-02 2.3583861725E-02 + 2.3416935670E-02 2.3251157068E-02 2.3086518377E-02 2.2923012103E-02 + 2.2760630796E-02 2.2599367050E-02 2.2439213507E-02 2.2280162854E-02 + 2.2122207822E-02 2.1965341186E-02 2.1809555767E-02 2.1654844430E-02 + 2.1501200082E-02 2.1348615675E-02 2.1197084206E-02 2.1046598712E-02 + 2.0897152276E-02 2.0748738022E-02 2.0601349117E-02 2.0454978769E-02 + 2.0309620231E-02 2.0165266794E-02 2.0021911795E-02 1.9879548608E-02 + 1.9738170651E-02 1.9597771382E-02 1.9458344300E-02 1.9319882943E-02 + 1.9182380891E-02 1.9045831764E-02 1.8910229220E-02 1.8775566958E-02 + 1.8641838716E-02 1.8509038271E-02 1.8377159440E-02 1.8246196076E-02 + 1.8116142074E-02 1.7986991364E-02 1.7858737915E-02 1.7731375736E-02 + 1.7604898871E-02 1.7479301402E-02 1.7354577449E-02 1.7230721168E-02 + 1.7107726752E-02 1.6985588430E-02 1.6864300470E-02 1.6743857173E-02 + 1.6624252878E-02 1.6505481957E-02 1.6387538821E-02 1.6270417915E-02 + 1.6154113717E-02 1.6038620744E-02 1.5923933544E-02 1.5810046702E-02 + 1.5696954835E-02 1.5584652597E-02 1.5473134673E-02 1.5362395784E-02 + 1.5252430684E-02 1.5143234160E-02 1.5034801031E-02 1.4927126151E-02 + 1.4820204407E-02 1.4714030715E-02 1.4608600029E-02 1.4503907329E-02 + 1.4399947633E-02 1.4296715986E-02 1.4194207468E-02 1.4092417189E-02 + 1.3991340289E-02 1.3890971942E-02 1.3791307351E-02 1.3692341750E-02 + 1.3594070404E-02 1.3496488608E-02 1.3399591687E-02 1.3303374997E-02 + 1.3207833923E-02 1.3112963879E-02 1.3018760311E-02 1.2925218692E-02 + 1.2832334524E-02 1.2740103340E-02 1.2648520700E-02 1.2557582193E-02 + 1.2467283438E-02 1.2377620080E-02 1.2288587794E-02 1.2200182281E-02 + 1.2112399272E-02 1.2025234524E-02 1.1938683822E-02 1.1852742980E-02 + 1.1767407835E-02 1.1682674255E-02 1.1598538133E-02 1.1514995389E-02 + 1.1432041970E-02 1.1349673848E-02 1.1267887023E-02 1.1186677519E-02 + 1.1106041387E-02 1.1025974705E-02 1.0946473574E-02 1.0867534121E-02 + 1.0789152501E-02 1.0711324890E-02 1.0634047492E-02 1.0557316535E-02 + 1.0481128271E-02 1.0405478976E-02 1.0330364952E-02 1.0255782525E-02 + 1.0181728044E-02 1.0108197883E-02 1.0035188438E-02 9.9626961306E-03 + 9.8907174053E-03 9.8192487295E-03 9.7482865942E-03 9.6778275132E-03 + 9.6078680235E-03 9.5384046845E-03 9.4694340786E-03 9.4009528106E-03 + 9.3329575075E-03 9.2654448187E-03 9.1984114156E-03 9.1318539916E-03 + 9.0657692620E-03 9.0001539635E-03 8.9350048546E-03 8.8703187152E-03 + 8.8060923465E-03 8.7423225707E-03 8.6790062312E-03 8.6161401921E-03 + 8.5537213386E-03 8.4917465761E-03 8.4302128309E-03 8.3691170494E-03 + 8.3084561986E-03 8.2482272652E-03 8.1884272562E-03 8.1290531985E-03 + 8.0701021385E-03 8.0115711425E-03 7.9534572963E-03 7.8957577050E-03 + 7.8384694929E-03 7.7815898036E-03 7.7251157997E-03 7.6690446627E-03 + 7.6133735929E-03 7.5580998092E-03 7.5032205493E-03 7.4487330691E-03 + 7.3946346430E-03 7.3409225635E-03 7.2875941411E-03 7.2346467047E-03 + 7.1820776006E-03 7.1298841933E-03 7.0780638645E-03 7.0266140138E-03 + 6.9755320581E-03 6.9248154316E-03 6.8744615858E-03 6.8244679892E-03 + 6.7748321274E-03 6.7255515028E-03 6.6766236345E-03 6.6280460586E-03 + 6.5798163275E-03 6.5319320101E-03 6.4843906917E-03 6.4371899739E-03 + 6.3903274743E-03 6.3438008268E-03 6.2976076810E-03 6.2517457026E-03 + 6.2062125728E-03 6.1610059887E-03 6.1161236626E-03 6.0715633226E-03 + 6.0273227120E-03 5.9833995894E-03 5.9397917285E-03 5.8964969181E-03 + 5.8535129619E-03 5.8108376786E-03 5.7684689016E-03 5.7264044788E-03 + 5.6846422731E-03 5.6431801615E-03 5.6020160356E-03 5.5611478012E-03 + 5.5205733785E-03 5.4802907015E-03 5.4402977186E-03 5.4005923919E-03 + 5.3611726974E-03 5.3220366249E-03 5.2831821779E-03 5.2446073734E-03 + 5.2063102419E-03 5.1682888275E-03 5.1305411873E-03 5.0930653919E-03 + 5.0558595250E-03 5.0189216834E-03 4.9822499767E-03 4.9458425277E-03 + 4.9096974716E-03 4.8738129568E-03 4.8381871440E-03 4.8028182067E-03 + 4.7677043307E-03 4.7328437144E-03 4.6982345683E-03 4.6638751154E-03 + 4.6297635906E-03 4.5958982410E-03 4.5622773259E-03 4.5288991162E-03 + 4.4957618949E-03 4.4628639567E-03 4.4302036079E-03 4.3977791666E-03 + 4.3655889622E-03 4.3336313359E-03 4.3019046400E-03 4.2704072383E-03 + 4.2391375058E-03 4.2080938286E-03 4.1772746039E-03 4.1466782402E-03 + 4.1163031565E-03 4.0861477831E-03 4.0562105608E-03 4.0264899413E-03 + 3.9969843871E-03 3.9676923710E-03 3.9386123764E-03 3.9097428974E-03 + 3.8810824383E-03 3.8526295137E-03 3.8243826486E-03 3.7963403779E-03 + 3.7685012470E-03 3.7408638111E-03 3.7134266354E-03 3.6861882952E-03 + 3.6591473754E-03 3.6323024709E-03 3.6056521863E-03 3.5791951357E-03 + 3.5529299430E-03 3.5268552414E-03 3.5009696739E-03 3.4752718926E-03 + 3.4497605591E-03 3.4244343442E-03 3.3992919280E-03 3.3743319998E-03 + 3.3495532578E-03 3.3249544095E-03 3.3005341711E-03 3.2762912680E-03 + 3.2522244342E-03 3.2283324128E-03 3.2046139553E-03 3.1810678221E-03 + 3.1576927822E-03 3.1344876131E-03 3.1114511009E-03 3.0885820401E-03 + 3.0658792336E-03 3.0433414927E-03 3.0209676368E-03 2.9987564938E-03 + 2.9767068996E-03 2.9548176982E-03 2.9330877417E-03 2.9115158903E-03 + 2.8901010122E-03 2.8688419832E-03 2.8477376872E-03 2.8267870159E-03 + 2.8059888687E-03 2.7853421526E-03 2.7648457824E-03 2.7444986805E-03 + 2.7242997766E-03 2.7042480081E-03 2.6843423198E-03 2.6645816638E-03 + 2.6449649998E-03 2.6254912945E-03 2.6061595219E-03 2.5869686633E-03 + 2.5679177070E-03 2.5490056486E-03 2.5302314905E-03 2.5115942423E-03 + 2.4930929204E-03 2.4747265483E-03 2.4564941560E-03 2.4383947807E-03 + 2.4204274663E-03 2.4025912631E-03 2.3848852284E-03 2.3673084261E-03 + 2.3498599265E-03 2.3325388066E-03 2.3153441499E-03 2.2982750462E-03 + 2.2813305919E-03 2.2645098895E-03 2.2478120482E-03 2.2312361831E-03 + 2.2147814157E-03 2.1984468738E-03 2.1822316911E-03 2.1661350076E-03 + 2.1501559694E-03 2.1342937284E-03 2.1185474426E-03 2.1029162761E-03 + 2.0873993986E-03 2.0719959859E-03 2.0567052196E-03 2.0415262869E-03 + 2.0264583810E-03 2.0115007005E-03 1.9966524500E-03 1.9819128394E-03 + 1.9672810845E-03 1.9527564065E-03 1.9383380319E-03 1.9240251931E-03 + 1.9098171275E-03 1.8957130783E-03 1.8817122938E-03 1.8678140277E-03 + 1.8540175389E-03 1.8403220918E-03 1.8267269557E-03 1.8132314053E-03 + 1.7998347203E-03 1.7865361856E-03 1.7733350912E-03 1.7602307321E-03 + 1.7472224082E-03 1.7343094246E-03 1.7214910911E-03 1.7087667225E-03 + 1.6961356385E-03 1.6835971635E-03 1.6711506269E-03 1.6587953628E-03 + 1.6465307099E-03 1.6343560118E-03 1.6222706166E-03 1.6102738771E-03 + 1.5983651507E-03 1.5865437994E-03 1.5748091898E-03 1.5631606929E-03 + 1.5515976841E-03 1.5401195435E-03 1.5287256555E-03 1.5174154087E-03 + 1.5061881964E-03 1.4950434159E-03 1.4839804690E-03 1.4729987618E-03 + 1.4620977043E-03 1.4512767112E-03 1.4405352011E-03 1.4298725966E-03 + 1.4192883248E-03 1.4087818165E-03 1.3983525069E-03 1.3879998351E-03 + 1.3777232440E-03 1.3675221809E-03 1.3573960967E-03 1.3473444463E-03 + 1.3373666887E-03 1.3274622864E-03 1.3176307061E-03 1.3078714182E-03 + 1.2981838968E-03 1.2885676198E-03 1.2790220688E-03 1.2695467293E-03 + 1.2601410902E-03 1.2508046444E-03 1.2415368880E-03 1.2323373212E-03 + 1.2232054473E-03 1.2141407736E-03 1.2051428106E-03 1.1962110724E-03 + 1.1873450766E-03 1.1785443444E-03 1.1698084002E-03 1.1611367719E-03 + 1.1525289909E-03 1.1439845918E-03 1.1355031126E-03 1.1270840946E-03 + 1.1187270825E-03 1.1104316241E-03 1.1021972706E-03 1.0940235762E-03 + 1.0859100986E-03 1.0778563986E-03 1.0698620399E-03 1.0619265896E-03 + 1.0540496178E-03 1.0462306979E-03 1.0384694060E-03 1.0307653215E-03 + 1.0231180268E-03 1.0155271073E-03 1.0079921513E-03 1.0005127501E-03 + 9.9308849804E-04 9.8571899225E-04 9.7840383283E-04 9.7114262273E-04 + 9.6393496779E-04 9.5678047666E-04 9.4967876082E-04 9.4262943455E-04 + 9.3563211493E-04 9.2868642177E-04 9.2179197763E-04 9.1494840779E-04 + 9.0815534025E-04 9.0141240567E-04 8.9471923738E-04 8.8807547137E-04 + 8.8148074623E-04 8.7493470319E-04 8.6843698604E-04 8.6198724117E-04 + 8.5558511748E-04 8.4923026647E-04 8.4292234209E-04 8.3666100083E-04 + 8.3044590167E-04 8.2427670601E-04 8.1815307773E-04 8.1207468314E-04 + 8.0604119095E-04 8.0005227227E-04 7.9410760058E-04 7.8820685174E-04 + 7.8234970394E-04 7.7653583770E-04 7.7076493585E-04 7.6503668351E-04 + 7.5935076810E-04 7.5370687928E-04 7.4810470897E-04 7.4254395132E-04 + 7.3702430268E-04 7.3154546162E-04 7.2610712888E-04 7.2070900737E-04 + 7.1535080215E-04 7.1003222042E-04 7.0475297150E-04 6.9951276683E-04 + 6.9431131992E-04 6.8914834636E-04 6.8402356382E-04 6.7893669201E-04 + 6.7388745267E-04 6.6887556954E-04 6.6390076841E-04 6.5896277701E-04 + 6.5406132509E-04 6.4919614431E-04 6.4436696833E-04 6.3957353272E-04 + 6.3481557495E-04 6.3009283444E-04 6.2540505246E-04 6.2075197219E-04 + 6.1613333866E-04 6.1154889874E-04 6.0699840118E-04 6.0248159651E-04 + 5.9799823711E-04 5.9354807714E-04 5.8913087254E-04 5.8474638105E-04 + 5.8039436215E-04 5.7607457707E-04 5.7178678879E-04 5.6753076200E-04 + 5.6330626312E-04 5.5911306024E-04 5.5495092317E-04 5.5081962337E-04 + 5.4671893398E-04 5.4264862977E-04 5.3860848718E-04 5.3459828427E-04 + 5.3061780069E-04 5.2666681772E-04 5.2274511822E-04 5.1885248665E-04 + 5.1498870903E-04 5.1115357292E-04 5.0734686746E-04 5.0356838330E-04 + 4.9981791264E-04 4.9609524917E-04 4.9240018810E-04 4.8873252614E-04 + 4.8509206145E-04 4.8147859370E-04 4.7789192400E-04 4.7433185491E-04 + 4.7079819045E-04 4.6729073604E-04 4.6380929854E-04 4.6035368622E-04 + 4.5692370874E-04 4.5351917716E-04 4.5013990390E-04 4.4678570277E-04 + 4.4345638893E-04 4.4015177889E-04 4.3687169050E-04 4.3361594294E-04 + 4.3038435672E-04 4.2717675363E-04 4.2399295682E-04 4.2083279067E-04 + 4.1769608088E-04 4.1458265442E-04 4.1149233951E-04 4.0842496564E-04 + 4.0538036355E-04 4.0235836519E-04 3.9935880378E-04 3.9638151371E-04 + 3.9342633064E-04 3.9049309137E-04 3.8758163395E-04 3.8469179757E-04 + 3.8182342262E-04 3.7897635066E-04 3.7615042440E-04 3.7334548770E-04 + 3.7056138557E-04 3.6779796416E-04 3.6505507072E-04 3.6233255365E-04 + 3.5963026244E-04 3.5694804770E-04 3.5428576110E-04 3.5164325544E-04 + 3.4902038456E-04 3.4641700341E-04 3.4383296796E-04 3.4126813526E-04 + 3.3872236340E-04 3.3619551152E-04 3.3368743978E-04 3.3119800938E-04 + 3.2872708251E-04 3.2627452241E-04 3.2384019329E-04 3.2142396037E-04 + 3.1902568985E-04 3.1664524892E-04 3.1428250574E-04 3.1193732944E-04 + 3.0960959010E-04 3.0729915877E-04 3.0500590742E-04 3.0272970900E-04 + 3.0047043735E-04 2.9822796725E-04 2.9600217442E-04 2.9379293547E-04 + 2.9160012791E-04 2.8942363018E-04 2.8726332158E-04 2.8511908232E-04 + 2.8299079347E-04 2.8087833699E-04 2.7878159569E-04 2.7670045325E-04 + 2.7463479422E-04 2.7258450397E-04 2.7054946873E-04 2.6852957556E-04 + 2.6652471235E-04 2.6453476781E-04 2.6255963148E-04 2.6059919370E-04 + 2.5865334563E-04 2.5672197921E-04 2.5480498720E-04 2.5290226312E-04 + 2.5101370129E-04 2.4913919680E-04 2.4727864554E-04 2.4543194411E-04 + 2.4359898992E-04 2.4177968111E-04 2.3997391658E-04 2.3818159597E-04 + 2.3640261966E-04 2.3463688875E-04 2.3288430509E-04 2.3114477123E-04 + 2.2941819047E-04 2.2770446677E-04 2.2600350486E-04 2.2431521012E-04 + 2.2263948865E-04 2.2097624723E-04 2.1932539335E-04 2.1768683515E-04 + 2.1606048147E-04 2.1444624180E-04 2.1284402633E-04 2.1125374587E-04 + 2.0967531192E-04 2.0810863662E-04 2.0655363275E-04 2.0501021374E-04 + 2.0347829366E-04 2.0195778721E-04 2.0044860972E-04 1.9895067715E-04 + 1.9746390607E-04 1.9598821367E-04 1.9452351774E-04 1.9306973670E-04 + 1.9162678954E-04 1.9019459587E-04 1.8877307590E-04 1.8736215040E-04 + 1.8596174074E-04 1.8457176887E-04 1.8319215732E-04 1.8182282919E-04 + 1.8046370813E-04 1.7911471837E-04 1.7777578471E-04 1.7644683247E-04 + 1.7512778756E-04 1.7381857642E-04 1.7251912602E-04 1.7122936389E-04 + 1.6994921808E-04 1.6867861718E-04 1.6741749031E-04 1.6616576709E-04 + 1.6492337770E-04 1.6369025279E-04 1.6246632356E-04 1.6125152170E-04 + 1.6004577941E-04 1.5884902938E-04 1.5766120481E-04 1.5648223938E-04 + 1.5531206728E-04 1.5415062317E-04 1.5299784220E-04 1.5185365999E-04 + 1.5071801266E-04 1.4959083676E-04 1.4847206935E-04 1.4736164793E-04 + 1.4625951048E-04 1.4516559542E-04 1.4407984163E-04 1.4300218846E-04 + 1.4193257569E-04 1.4087094354E-04 1.3981723269E-04 1.3877138425E-04 + 1.3773333975E-04 1.3670304118E-04 1.3568043095E-04 1.3466545189E-04 + 1.3365804726E-04 1.3265816072E-04 1.3166573638E-04 1.3068071874E-04 + 1.2970305271E-04 1.2873268361E-04 1.2776955718E-04 1.2681361955E-04 + 1.2586481724E-04 1.2492309718E-04 1.2398840668E-04 1.2306069345E-04 + 1.2213990559E-04 1.2122599157E-04 1.2031890024E-04 1.1941858086E-04 + 1.1852498303E-04 1.1763805673E-04 1.1675775234E-04 1.1588402056E-04 + 1.1501681250E-04 1.1415607960E-04 1.1330177367E-04 1.1245384688E-04 + 1.1161225176E-04 1.1077694117E-04 1.0994786834E-04 1.0912498685E-04 + 1.0830825060E-04 1.0749761384E-04 1.0669303118E-04 1.0589445754E-04 + 1.0510184818E-04 1.0431515871E-04 1.0353434504E-04 1.0275936342E-04 + 1.0199017044E-04 1.0122672299E-04 1.0046897829E-04 9.9716893869E-05 + 9.8970427577E-05 9.8229537577E-05 9.7494182339E-05 9.6764320642E-05 + 9.6039911572E-05 9.5320914516E-05 9.4607289164E-05 9.3898995504E-05 + 9.3195993820E-05 9.2498244693E-05 9.1805708994E-05 9.1118347880E-05 + 9.0436122806E-05 8.9758995507E-05 8.9086928005E-05 8.8419882599E-05 + 8.7757821872E-05 8.7100708682E-05 8.6448506164E-05 8.5801177726E-05 + 8.5158687047E-05 8.4520998075E-05 8.3888075027E-05 8.3259882386E-05 + 8.2636384897E-05 8.2017547566E-05 8.1403335661E-05 8.0793714706E-05 + 8.0188650482E-05 7.9588109023E-05 7.8992056613E-05 7.8400459792E-05 + 7.7813285346E-05 7.7230500306E-05 7.6652071951E-05 7.6077967798E-05 + 7.5508155610E-05 7.4942603387E-05 7.4381279367E-05 7.3824152023E-05 + 7.3271190063E-05 7.2722362429E-05 7.2177638290E-05 7.1636987048E-05 + 7.1100378329E-05 7.0567781986E-05 7.0039168096E-05 6.9514506959E-05 + 6.8993769091E-05 6.8476925233E-05 6.7963946343E-05 6.7454803591E-05 + 6.6949468366E-05 6.6447912265E-05 6.5950107099E-05 6.5456024887E-05 + 6.4965637857E-05 6.4478918443E-05 6.3995839282E-05 6.3516373218E-05 + 6.3040493293E-05 6.2568172754E-05 6.2099385041E-05 6.1634103797E-05 + 6.1172302858E-05 6.0713956254E-05 6.0259038210E-05 5.9807523140E-05 + 5.9359385649E-05 5.8914600535E-05 5.8473142780E-05 5.8034987552E-05 + 5.7600110204E-05 5.7168486272E-05 5.6740091475E-05 5.6314901711E-05 + 5.5892893058E-05 5.5474041773E-05 5.5058324288E-05 5.4645717211E-05 + 5.4236197324E-05 5.3829741581E-05 5.3426327109E-05 5.3025931203E-05 + 5.2628531329E-05 5.2234105120E-05 5.1842630374E-05 5.1454085053E-05 + 5.1068447289E-05 5.0685695373E-05 5.0305807758E-05 4.9928763057E-05 + 4.9554540041E-05 4.9183117642E-05 4.8814474946E-05 4.8448591196E-05 + 4.8085445790E-05 4.7725018277E-05 4.7367288361E-05 4.7012235895E-05 + 4.6659840883E-05 4.6310083479E-05 4.5962943981E-05 4.5618402839E-05 + 4.5276440643E-05 4.4937038132E-05 4.4600176183E-05 4.4265835821E-05 + 4.3933998212E-05 4.3604644660E-05 4.3277756608E-05 4.2953315639E-05 + 4.2631303472E-05 4.2311701962E-05 4.1994493100E-05 4.1679659010E-05 + 4.1367181951E-05 4.1057044311E-05 4.0749228612E-05 4.0443717506E-05 + 4.0140493772E-05 3.9839540320E-05 3.9540840185E-05 3.9244376530E-05 + 3.8950132644E-05 3.8658091938E-05 3.8368237945E-05 3.8080554327E-05 + 3.7795024865E-05 3.7511633461E-05 3.7230364134E-05 3.6951201027E-05 + 3.6674128396E-05 3.6399130620E-05 3.6126192189E-05 3.5855297711E-05 + 3.5586431910E-05 3.5319579622E-05 3.5054725796E-05 3.4791855494E-05 + 3.4530953889E-05 3.4272006265E-05 3.4014998014E-05 3.3759914640E-05 + 3.3506741753E-05 3.3255465069E-05 3.3006070410E-05 3.2758543709E-05 + 3.2512871000E-05 3.2269038422E-05 3.2027032218E-05 3.1786838731E-05 + 3.1548444410E-05 3.1311835800E-05 3.1076999551E-05 3.0843922409E-05 + 3.0612591221E-05 3.0382992931E-05 3.0155114582E-05 2.9928943312E-05 + 2.9704466354E-05 2.9481671039E-05 2.9260544791E-05 2.9041075127E-05 + 2.8823249659E-05 2.8607056090E-05 2.8392482213E-05 2.8179515916E-05 + 2.7968145176E-05 2.7758358059E-05 2.7550142721E-05 2.7343487405E-05 + 2.7138380443E-05 2.6934810254E-05 2.6732765341E-05 2.6532234297E-05 + 2.6333205796E-05 2.6135668599E-05 2.5939611551E-05 2.5745023578E-05 + 2.5551893691E-05 2.5360210981E-05 2.5169964623E-05 2.4981143870E-05 + 2.4793738057E-05 2.4607736598E-05 2.4423128986E-05 2.4239904790E-05 + 2.4058053663E-05 2.3877565330E-05 2.3698429595E-05 2.3520636338E-05 + 2.3344175513E-05 2.3169037150E-05 2.2995211355E-05 2.2822688305E-05 + 2.2651458251E-05 2.2481511519E-05 2.2312838505E-05 2.2145429676E-05 + 2.1979275574E-05 2.1814366807E-05 2.1650694057E-05 2.1488248072E-05 + 2.1327019672E-05 2.1166999745E-05 2.1008179245E-05 2.0850549195E-05 + 2.0694100685E-05 2.0538824872E-05 2.0384712980E-05 2.0231756297E-05 + 2.0079946175E-05 1.9929274033E-05 1.9779731354E-05 1.9631309682E-05 + 1.9484000626E-05 1.9337795858E-05 1.9192687112E-05 1.9048666183E-05 + 1.8905724927E-05 1.8763855262E-05 1.8623049167E-05 1.8483298678E-05 + 1.8344595894E-05 1.8206932970E-05 1.8070302122E-05 1.7934695623E-05 + 1.7800105802E-05 1.7666525047E-05 1.7533945806E-05 1.7402360579E-05 + 1.7271761923E-05 1.7142142453E-05 1.7013494836E-05 1.6885811796E-05 + 1.6759086110E-05 1.6633310609E-05 1.6508478179E-05 1.6384581758E-05 + 1.6261614336E-05 1.6139568958E-05 1.6018438719E-05 1.5898216765E-05 + 1.5778896295E-05 1.5660470557E-05 1.5542932852E-05 1.5426276529E-05 + 1.5310494987E-05 1.5195581674E-05 1.5081530087E-05 1.4968333773E-05 + 1.4855986328E-05 1.4744481393E-05 1.4633812658E-05 1.4523973861E-05 + 1.4414958785E-05 1.4306761261E-05 1.4199375164E-05 1.4092794418E-05 + 1.3987012991E-05 1.3882024894E-05 1.3777824185E-05 1.3674404967E-05 + 1.3571761385E-05 1.3469887629E-05 1.3368777933E-05 1.3268426573E-05 + 1.3168827869E-05 1.3069976181E-05 1.2971865914E-05 1.2874491512E-05 + 1.2777847463E-05 1.2681928297E-05 1.2586728582E-05 1.2492242929E-05 + 1.2398465988E-05 1.2305392450E-05 1.2213017044E-05 1.2121334540E-05 + 1.2030339747E-05 1.1940027511E-05 1.1850392720E-05 1.1761430296E-05 + 1.1673135203E-05 1.1585502441E-05 1.1498527045E-05 1.1412204092E-05 + 1.1326528691E-05 1.1241495992E-05 1.1157101177E-05 1.1073339468E-05 + 1.0990206119E-05 1.0907696421E-05 1.0825805702E-05 1.0744529324E-05 + 1.0663862682E-05 1.0583801208E-05 1.0504340367E-05 1.0425475657E-05 + 1.0347202611E-05 1.0269516795E-05 1.0192413808E-05 1.0115889281E-05 + 1.0039938881E-05 9.9645583039E-06 9.8897432790E-06 9.8154895678E-06 + 9.7417929633E-06 9.6686492902E-06 9.5960544041E-06 9.5240041918E-06 + 9.4524945710E-06 9.3815214897E-06 9.3110809260E-06 9.2411688876E-06 + 9.1717814142E-06 9.1029145738E-06 9.0345644640E-06 8.9667272115E-06 + 8.8993989721E-06 8.8325759302E-06 8.7662542989E-06 8.7004303195E-06 + 8.6351002616E-06 8.5702604226E-06 8.5059071277E-06 8.4420367296E-06 + 8.3786456082E-06 8.3157301706E-06 8.2532868507E-06 8.1913121093E-06 + 8.1298024333E-06 8.0687543364E-06 8.0081643580E-06 7.9480290636E-06 + + + 6.0521921676E-12 3.6624939570E-05 1.4645122572E-04 3.2933352974E-04 + 5.8503054310E-04 9.1320632659E-04 1.3134321756E-03 1.7851889786E-03 + 2.3278700409E-03 2.9407843386E-03 3.6231601637E-03 4.3741491186E-03 + 5.1928304102E-03 6.0782153969E-03 7.0292523335E-03 8.0448312629E-03 + 9.1237889999E-03 1.0264914154E-02 1.1466952138E-02 1.2728610115E-02 + 1.4048561830E-02 1.5425452291E-02 1.6857902252E-02 1.8344512466E-02 + 1.9883867676E-02 2.1474540324E-02 2.3115093949E-02 2.4804086279E-02 + 2.6540071989E-02 2.8321605143E-02 3.0147241316E-02 3.2015539415E-02 + 3.3925063205E-02 3.5874382582E-02 3.7862074598E-02 3.9886724289E-02 + 4.1946925328E-02 4.4041280552E-02 4.6168402396E-02 4.8326913270E-02 + 5.0515445943E-02 5.2732643946E-02 5.4977162057E-02 5.7247666899E-02 + 5.9542837680E-02 6.1861367120E-02 6.4201962578E-02 6.6563347419E-02 + 6.8944262620E-02 7.1343468644E-02 7.3759747578E-02 7.6191905531E-02 + 7.8638775302E-02 8.1099219286E-02 8.3572132604E-02 8.6056446440E-02 + 8.8551131542E-02 9.1055201852E-02 9.3567718228E-02 9.6087792206E-02 + 9.8614589759E-02 1.0114733499E-01 1.0368531370E-01 1.0622787682E-01 + 1.0877444358E-01 1.1132450440E-01 1.1387762345E-01 1.1643344085E-01 + 1.1899167439E-01 1.2155212077E-01 1.2411465638E-01 1.2667923748E-01 + 1.2924589980E-01 1.3181475758E-01 1.3438600201E-01 1.3695989898E-01 + 1.3953678634E-01 1.4211707049E-01 1.4470122240E-01 1.4728977317E-01 + 1.4988330895E-01 1.5248246552E-01 1.5508792240E-01 1.5770039662E-01 + 1.6032063618E-01 1.6294941333E-01 1.6558751763E-01 1.6823574901E-01 + 1.7089491073E-01 1.7356580253E-01 1.7624921377E-01 1.7894591695E-01 + 1.8165666141E-01 1.8438216744E-01 1.8712312075E-01 1.8988016754E-01 + 1.9265390992E-01 1.9544490210E-01 1.9825364699E-01 2.0108059359E-01 + 2.0392613495E-01 2.0679060678E-01 2.0967428678E-01 2.1257739456E-01 + 2.1550009218E-01 2.1844248536E-01 2.2140462517E-01 2.2438651027E-01 + 2.2738808961E-01 2.3040926551E-01 2.3344989708E-01 2.3650980393E-01 + 2.3958877003E-01 2.4268654768E-01 2.4580286153E-01 2.4893741256E-01 + 2.5208988190E-01 2.5525993445E-01 2.5844722225E-01 2.6165138750E-01 + 2.6487206517E-01 2.6810888512E-01 2.7136147377E-01 2.7462945520E-01 + 2.7791245164E-01 2.8121008342E-01 2.8452196826E-01 2.8784772003E-01 + 2.9118694685E-01 2.9453924865E-01 2.9790421422E-01 3.0128141772E-01 + 3.0467041478E-01 3.0807073827E-01 3.1148189368E-01 3.1490335431E-01 + 3.1833455640E-01 3.2177489404E-01 3.2522371430E-01 3.2868031235E-01 + 3.3214392692E-01 3.3561373600E-01 3.3908885305E-01 3.4256832365E-01 + 3.4605112279E-01 3.4953615283E-01 3.5302224219E-01 3.5650814491E-01 + 3.5999254102E-01 3.6347403789E-01 3.6695117249E-01 3.7042241459E-01 + 3.7388617105E-01 3.7734079096E-01 3.8078457182E-01 3.8421576662E-01 + 3.8763259181E-01 3.9103323610E-01 3.9441587003E-01 3.9777865620E-01 + 4.0111976012E-01 4.0443736156E-01 4.0772966627E-01 4.1099491801E-01 + 4.1423141066E-01 4.1743750050E-01 4.2061161825E-01 4.2375228103E-01 + 4.2685810385E-01 4.2992781079E-01 4.3296024542E-01 4.3595438095E-01 + 4.3890932825E-01 4.4182434470E-01 4.4469884224E-01 4.4753239087E-01 + 4.5032472785E-01 4.5307575370E-01 4.5578549704E-01 4.5845409146E-01 + 4.6108171725E-01 4.6366853329E-01 4.6621469826E-01 4.6872036276E-01 + 4.7118567538E-01 4.7361080927E-01 4.7599595239E-01 4.7834129327E-01 + 4.8064702059E-01 4.8291332883E-01 4.8514041884E-01 4.8732849555E-01 + 4.8947776766E-01 4.9158844780E-01 4.9366075222E-01 4.9569490061E-01 + 4.9769111586E-01 4.9964962393E-01 5.0157065358E-01 5.0345443633E-01 + 5.0530120618E-01 5.0711119955E-01 5.0888465511E-01 5.1062181364E-01 + 5.1232291790E-01 5.1398821256E-01 5.1561794402E-01 5.1721236033E-01 + 5.1877171108E-01 5.2029624734E-01 5.2178622148E-01 5.2324188717E-01 + 5.2466349921E-01 5.2605131351E-01 5.2740558695E-01 5.2872657735E-01 + 5.3001454335E-01 5.3126974436E-01 5.3249244046E-01 5.3368289238E-01 + 5.3484136136E-01 5.3596810913E-01 5.3706339783E-01 5.3812748993E-01 + 5.3916064820E-01 5.4016313562E-01 5.4113521533E-01 5.4207715056E-01 + 5.4298920459E-01 5.4387164070E-01 5.4472472207E-01 5.4554871178E-01 + 5.4634387272E-01 5.4711046757E-01 5.4784875873E-01 5.4855900828E-01 + 5.4924147791E-01 5.4989642891E-01 5.5052412212E-01 5.5112481787E-01 + 5.5169877592E-01 5.5224625548E-01 5.5276751510E-01 5.5326281271E-01 + 5.5373240549E-01 5.5417654992E-01 5.5459550167E-01 5.5498951565E-01 + 5.5535884589E-01 5.5570374557E-01 5.5602446696E-01 5.5632126141E-01 + 5.5659437929E-01 5.5684407000E-01 5.5707058191E-01 5.5727416238E-01 + 5.5745505768E-01 5.5761351300E-01 5.5774977242E-01 5.5786407888E-01 + 5.5795667419E-01 5.5802779896E-01 5.5807769264E-01 5.5810659343E-01 + 5.5811473834E-01 5.5810236311E-01 5.5806970223E-01 5.5801698893E-01 + 5.5794445512E-01 5.5785233144E-01 5.5774084718E-01 5.5761023033E-01 + 5.5746070752E-01 5.5729250405E-01 5.5710584384E-01 5.5690094945E-01 + 5.5667804207E-01 5.5643734147E-01 5.5617906606E-01 5.5590343282E-01 + 5.5561065734E-01 5.5530095377E-01 5.5497453487E-01 5.5463161194E-01 + 5.5427239486E-01 5.5389709209E-01 5.5350591062E-01 5.5309905601E-01 + 5.5267673237E-01 5.5223914236E-01 5.5178648718E-01 5.5131896659E-01 + 5.5083677889E-01 5.5034012090E-01 5.4982918801E-01 5.4930417412E-01 + 5.4876527171E-01 5.4821267175E-01 5.4764656380E-01 5.4706713591E-01 + 5.4647457472E-01 5.4586906537E-01 5.4525079157E-01 5.4461993557E-01 + 5.4397667814E-01 5.4332119864E-01 5.4265367495E-01 5.4197428352E-01 + 5.4128319933E-01 5.4058059594E-01 5.3986664546E-01 5.3914151858E-01 + 5.3840538452E-01 5.3765841111E-01 5.3690076473E-01 5.3613261034E-01 + 5.3535411148E-01 5.3456543028E-01 5.3376672744E-01 5.3295816229E-01 + 5.3213989272E-01 5.3131207524E-01 5.3047486496E-01 5.2962841559E-01 + 5.2877287947E-01 5.2790840755E-01 5.2703514942E-01 5.2615325328E-01 + 5.2526286597E-01 5.2436413298E-01 5.2345719843E-01 5.2254220509E-01 + 5.2161929440E-01 5.2068860646E-01 5.1975028001E-01 5.1880445249E-01 + 5.1785126001E-01 5.1689083736E-01 5.1592331801E-01 5.1494883415E-01 + 5.1396751666E-01 5.1297949510E-01 5.1198489778E-01 5.1098385172E-01 + 5.0997648264E-01 5.0896291503E-01 5.0794327208E-01 5.0691767576E-01 + 5.0588624675E-01 5.0484910453E-01 5.0380636729E-01 5.0275815205E-01 + 5.0170457455E-01 5.0064574935E-01 4.9958178978E-01 4.9851280798E-01 + 4.9743891487E-01 4.9636022019E-01 4.9527683251E-01 4.9418885920E-01 + 4.9309640646E-01 4.9199957936E-01 4.9089848176E-01 4.8979321641E-01 + 4.8868388490E-01 4.8757058769E-01 4.8645342411E-01 4.8533249236E-01 + 4.8420788953E-01 4.8307971161E-01 4.8194805347E-01 4.8081300891E-01 + 4.7967467063E-01 4.7853313025E-01 4.7738847832E-01 4.7624080433E-01 + 4.7509019670E-01 4.7393674282E-01 4.7278052902E-01 4.7162164060E-01 + 4.7046016184E-01 4.6929617598E-01 4.6812976527E-01 4.6696101094E-01 + 4.6578999323E-01 4.6461679138E-01 4.6344148366E-01 4.6226414734E-01 + 4.6108485876E-01 4.5990369326E-01 4.5872072525E-01 4.5753602820E-01 + 4.5634967462E-01 4.5516173610E-01 4.5397228332E-01 4.5278138602E-01 + 4.5158911306E-01 4.5039553238E-01 4.4920071103E-01 4.4800471518E-01 + 4.4680761012E-01 4.4560946028E-01 4.4441032922E-01 4.4321027964E-01 + 4.4200937340E-01 4.4080767152E-01 4.3960523418E-01 4.3840212076E-01 + 4.3719838980E-01 4.3599409904E-01 4.3478930541E-01 4.3358406506E-01 + 4.3237843334E-01 4.3117246482E-01 4.2996621333E-01 4.2875973189E-01 + 4.2755307278E-01 4.2634628756E-01 4.2513942700E-01 4.2393254117E-01 + 4.2272567939E-01 4.2151889029E-01 4.2031222175E-01 4.1910572098E-01 + 4.1789943446E-01 4.1669340801E-01 4.1548768674E-01 4.1428231509E-01 + 4.1307733684E-01 4.1187279511E-01 4.1066873234E-01 4.0946519035E-01 + 4.0826221030E-01 4.0705983272E-01 4.0585809754E-01 4.0465704401E-01 + 4.0345671083E-01 4.0225713605E-01 4.0105835713E-01 3.9986041095E-01 + 3.9866333380E-01 3.9746716137E-01 3.9627192879E-01 3.9507767064E-01 + 3.9388442092E-01 3.9269221306E-01 3.9150107999E-01 3.9031105405E-01 + 3.8912216708E-01 3.8793445038E-01 3.8674793472E-01 3.8556265036E-01 + 3.8437862705E-01 3.8319589404E-01 3.8201448009E-01 3.8083441345E-01 + 3.7965572190E-01 3.7847843272E-01 3.7730257275E-01 3.7612816833E-01 + 3.7495524536E-01 3.7378382926E-01 3.7261394504E-01 3.7144561721E-01 + 3.7027886990E-01 3.6911372676E-01 3.6795021103E-01 3.6678834553E-01 + 3.6562815266E-01 3.6446965441E-01 3.6331287236E-01 3.6215782768E-01 + 3.6100454116E-01 3.5985303320E-01 3.5870332380E-01 3.5755543259E-01 + 3.5640937881E-01 3.5526518135E-01 3.5412285871E-01 3.5298242907E-01 + 3.5184391020E-01 3.5070731955E-01 3.4957267423E-01 3.4843999099E-01 + 3.4730928624E-01 3.4618057608E-01 3.4505387626E-01 3.4392920222E-01 + 3.4280656907E-01 3.4168599161E-01 3.4056748432E-01 3.3945106140E-01 + 3.3833673671E-01 3.3722452385E-01 3.3611443609E-01 3.3500648645E-01 + 3.3390068762E-01 3.3279705205E-01 3.3169559188E-01 3.3059631899E-01 + 3.2949924499E-01 3.2840438123E-01 3.2731173878E-01 3.2622132847E-01 + 3.2513316085E-01 3.2404724626E-01 3.2296359474E-01 3.2188221614E-01 + 3.2080312002E-01 3.1972631574E-01 3.1865181240E-01 3.1757961888E-01 + 3.1650974384E-01 3.1544219571E-01 3.1437698269E-01 3.1331411278E-01 + 3.1225359376E-01 3.1119543318E-01 3.1013963842E-01 3.0908621661E-01 + 3.0803517472E-01 3.0698651949E-01 3.0594025749E-01 3.0489639507E-01 + 3.0385493840E-01 3.0281589348E-01 3.0177926611E-01 3.0074506189E-01 + 2.9971328628E-01 2.9868394454E-01 2.9765704176E-01 2.9663258285E-01 + 2.9561057256E-01 2.9459101549E-01 2.9357391604E-01 2.9255927849E-01 + 2.9154710692E-01 2.9053740528E-01 2.8953017737E-01 2.8852542683E-01 + 2.8752315713E-01 2.8652337164E-01 2.8552607353E-01 2.8453126588E-01 + 2.8353895159E-01 2.8254913344E-01 2.8156181407E-01 2.8057699600E-01 + 2.7959468159E-01 2.7861487309E-01 2.7763757262E-01 2.7666278218E-01 + 2.7569050362E-01 2.7472073870E-01 2.7375348905E-01 2.7278875616E-01 + 2.7182654144E-01 2.7086684616E-01 2.6990967148E-01 2.6895501847E-01 + 2.6800288806E-01 2.6705328109E-01 2.6610619829E-01 2.6516164029E-01 + 2.6421960762E-01 2.6328010071E-01 2.6234311986E-01 2.6140866533E-01 + 2.6047673722E-01 2.5954733559E-01 2.5862046038E-01 2.5769611143E-01 + 2.5677428852E-01 2.5585499131E-01 2.5493821940E-01 2.5402397227E-01 + 2.5311224936E-01 2.5220304999E-01 2.5129637342E-01 2.5039221881E-01 + 2.4949058526E-01 2.4859147179E-01 2.4769487733E-01 2.4680080075E-01 + 2.4590924083E-01 2.4502019629E-01 2.4413366578E-01 2.4324964787E-01 + 2.4236814106E-01 2.4148914379E-01 2.4061265444E-01 2.3973867130E-01 + 2.3886719262E-01 2.3799821657E-01 2.3713174126E-01 2.3626776475E-01 + 2.3540628502E-01 2.3454730001E-01 2.3369080758E-01 2.3283680557E-01 + 2.3198529171E-01 2.3113626372E-01 2.3028971924E-01 2.2944565587E-01 + 2.2860407115E-01 2.2776496257E-01 2.2692832756E-01 2.2609416352E-01 + 2.2526246779E-01 2.2443323765E-01 2.2360647034E-01 2.2278216307E-01 + 2.2196031298E-01 2.2114091717E-01 2.2032397272E-01 2.1950947663E-01 + 2.1869742587E-01 2.1788781739E-01 2.1708064806E-01 2.1627591474E-01 + 2.1547361424E-01 2.1467374332E-01 2.1387629873E-01 2.1308127715E-01 + 2.1228867524E-01 2.1149848961E-01 2.1071071686E-01 2.0992535354E-01 + 2.0914239615E-01 2.0836184117E-01 2.0758368507E-01 2.0680792424E-01 + 2.0603455507E-01 2.0526357391E-01 2.0449497708E-01 2.0372876087E-01 + 2.0296492154E-01 2.0220345532E-01 2.0144435842E-01 2.0068762699E-01 + 1.9993325720E-01 1.9918124515E-01 1.9843158695E-01 1.9768427865E-01 + 1.9693931630E-01 1.9619669591E-01 1.9545641347E-01 1.9471846495E-01 + 1.9398284629E-01 1.9324955341E-01 1.9251858220E-01 1.9178992855E-01 + 1.9106358830E-01 1.9033955729E-01 1.8961783132E-01 1.8889840619E-01 + 1.8818127766E-01 1.8746644148E-01 1.8675389339E-01 1.8604362909E-01 + 1.8533564428E-01 1.8462993464E-01 1.8392649581E-01 1.8322532345E-01 + 1.8252641316E-01 1.8182976057E-01 1.8113536125E-01 1.8044321079E-01 + 1.7975330473E-01 1.7906563862E-01 1.7838020800E-01 1.7769700837E-01 + 1.7701603523E-01 1.7633728407E-01 1.7566075037E-01 1.7498642956E-01 + 1.7431431712E-01 1.7364440845E-01 1.7297669900E-01 1.7231118416E-01 + 1.7164785933E-01 1.7098671990E-01 1.7032776123E-01 1.6967097870E-01 + 1.6901636766E-01 1.6836392344E-01 1.6771364139E-01 1.6706551681E-01 + 1.6641954502E-01 1.6577572134E-01 1.6513404104E-01 1.6449449942E-01 + 1.6385709175E-01 1.6322181330E-01 1.6258865933E-01 1.6195762509E-01 + 1.6132870583E-01 1.6070189679E-01 1.6007719318E-01 1.5945459025E-01 + 1.5883408320E-01 1.5821566725E-01 1.5759933759E-01 1.5698508943E-01 + 1.5637291796E-01 1.5576281836E-01 1.5515478581E-01 1.5454881549E-01 + 1.5394490256E-01 1.5334304221E-01 1.5274322957E-01 1.5214545982E-01 + 1.5154972810E-01 1.5095602956E-01 1.5036435934E-01 1.4977471258E-01 + 1.4918708442E-01 1.4860146999E-01 1.4801786443E-01 1.4743626285E-01 + 1.4685666038E-01 1.4627905215E-01 1.4570343326E-01 1.4512979884E-01 + 1.4455814399E-01 1.4398846384E-01 1.4342075348E-01 1.4285500803E-01 + 1.4229122259E-01 1.4172939226E-01 1.4116951215E-01 1.4061157736E-01 + 1.4005558299E-01 1.3950152414E-01 1.3894939591E-01 1.3839919339E-01 + 1.3785091168E-01 1.3730454588E-01 1.3676009109E-01 1.3621754240E-01 + 1.3567689490E-01 1.3513814370E-01 1.3460128389E-01 1.3406631057E-01 + 1.3353321883E-01 1.3300200377E-01 1.3247266050E-01 1.3194518410E-01 + 1.3141956968E-01 1.3089581234E-01 1.3037390719E-01 1.2985384932E-01 + 1.2933563384E-01 1.2881925586E-01 1.2830471049E-01 1.2779199283E-01 + 1.2728109799E-01 1.2677202110E-01 1.2626475726E-01 1.2575930159E-01 + 1.2525564921E-01 1.2475379525E-01 1.2425373482E-01 1.2375546305E-01 + 1.2325897507E-01 1.2276426602E-01 1.2227133102E-01 1.2178016522E-01 + 1.2129076376E-01 1.2080312177E-01 1.2031723440E-01 1.1983309681E-01 + 1.1935070414E-01 1.1887005156E-01 1.1839113421E-01 1.1791394727E-01 + 1.1743848590E-01 1.1696474527E-01 1.1649272055E-01 1.1602240692E-01 + 1.1555379956E-01 1.1508689366E-01 1.1462168441E-01 1.1415816700E-01 + 1.1369633663E-01 1.1323618850E-01 1.1277771782E-01 1.1232091979E-01 + 1.1186578964E-01 1.1141232258E-01 1.1096051384E-01 1.1051035865E-01 + 1.1006185224E-01 1.0961498984E-01 1.0916976671E-01 1.0872617809E-01 + 1.0828421924E-01 1.0784388541E-01 1.0740517187E-01 1.0696807388E-01 + 1.0653258673E-01 1.0609870568E-01 1.0566642603E-01 1.0523574307E-01 + 1.0480665209E-01 1.0437914839E-01 1.0395322728E-01 1.0352888408E-01 + 1.0310611409E-01 1.0268491265E-01 1.0226527509E-01 1.0184719674E-01 + 1.0143067294E-01 1.0101569904E-01 1.0060227040E-01 1.0019038237E-01 + 9.9780030322E-02 9.9371209629E-02 9.8963915668E-02 9.8558143825E-02 + 9.8153889489E-02 9.7751148059E-02 9.7349914940E-02 9.6950185540E-02 + 9.6551955279E-02 9.6155219579E-02 9.5759973870E-02 9.5366213589E-02 + 9.4973934181E-02 9.4583131096E-02 9.4193799790E-02 9.3805935728E-02 + 9.3419534380E-02 9.3034591226E-02 9.2651101748E-02 9.2269061440E-02 + 9.1888465801E-02 9.1509310335E-02 9.1131590556E-02 9.0755301985E-02 + 9.0380440149E-02 9.0007000582E-02 8.9634978827E-02 8.9264370433E-02 + 8.8895170956E-02 8.8527375961E-02 8.8160981018E-02 8.7795981708E-02 + 8.7432373616E-02 8.7070152336E-02 8.6709313469E-02 8.6349852625E-02 + 8.5991765421E-02 8.5635047480E-02 8.5279694436E-02 8.4925701926E-02 + 8.4573065600E-02 8.4221781112E-02 8.3871844126E-02 8.3523250312E-02 + 8.3175995350E-02 8.2830074926E-02 8.2485484734E-02 8.2142220478E-02 + 8.1800277868E-02 8.1459652623E-02 8.1120340469E-02 8.0782337141E-02 + 8.0445638382E-02 8.0110239943E-02 7.9776137583E-02 7.9443327070E-02 + 7.9111804179E-02 7.8781564694E-02 7.8452604406E-02 7.8124919116E-02 + 7.7798504633E-02 7.7473356774E-02 7.7149471363E-02 7.6826844234E-02 + 7.6505471230E-02 7.6185348200E-02 7.5866471004E-02 7.5548835509E-02 + 7.5232437591E-02 7.4917273133E-02 7.4603338029E-02 7.4290628180E-02 + 7.3979139496E-02 7.3668867895E-02 7.3359809305E-02 7.3051959660E-02 + 7.2745314906E-02 7.2439870996E-02 7.2135623890E-02 7.1832569559E-02 + 7.1530703982E-02 7.1230023147E-02 7.0930523051E-02 7.0632199698E-02 + 7.0335049102E-02 7.0039067287E-02 6.9744250283E-02 6.9450594132E-02 + 6.9158094881E-02 6.8866748590E-02 6.8576551325E-02 6.8287499162E-02 + 6.7999588186E-02 6.7712814489E-02 6.7427174175E-02 6.7142663355E-02 + 6.6859278149E-02 6.6577014686E-02 6.6295869104E-02 6.6015837551E-02 + 6.5736916183E-02 6.5459101165E-02 6.5182388670E-02 6.4906774883E-02 + 6.4632255994E-02 6.4358828207E-02 6.4086487729E-02 6.3815230782E-02 + 6.3545053592E-02 6.3275952399E-02 6.3007923447E-02 6.2740962992E-02 + 6.2475067300E-02 6.2210232644E-02 6.1946455306E-02 6.1683731579E-02 + 6.1422057763E-02 6.1161430170E-02 6.0901845117E-02 6.0643298934E-02 + 6.0385787959E-02 6.0129308537E-02 5.9873857025E-02 5.9619429788E-02 + 5.9366023200E-02 5.9113633645E-02 5.8862257514E-02 5.8611891211E-02 + 5.8362531145E-02 5.8114173737E-02 5.7866815416E-02 5.7620452620E-02 + 5.7375081798E-02 5.7130699406E-02 5.6887301910E-02 5.6644885786E-02 + 5.6403447517E-02 5.6162983599E-02 5.5923490532E-02 5.5684964830E-02 + 5.5447403014E-02 5.5210801615E-02 5.4975157171E-02 5.4740466233E-02 + 5.4506725358E-02 5.4273931113E-02 5.4042080075E-02 5.3811168830E-02 + 5.3581193973E-02 5.3352152108E-02 5.3124039849E-02 5.2896853817E-02 + 5.2670590646E-02 5.2445246975E-02 5.2220819455E-02 5.1997304745E-02 + 5.1774699515E-02 5.1553000441E-02 5.1332204212E-02 5.1112307522E-02 + 5.0893307078E-02 5.0675199594E-02 5.0457981793E-02 5.0241650409E-02 + 5.0026202183E-02 4.9811633868E-02 4.9597942223E-02 4.9385124017E-02 + 4.9173176031E-02 4.8962095051E-02 4.8751877874E-02 4.8542521307E-02 + 4.8334022164E-02 4.8126377272E-02 4.7919583462E-02 4.7713637577E-02 + 4.7508536470E-02 4.7304277002E-02 4.7100856041E-02 4.6898270468E-02 + 4.6696517170E-02 4.6495593044E-02 4.6295494998E-02 4.6096219946E-02 + 4.5897764813E-02 4.5700126532E-02 4.5503302046E-02 4.5307288307E-02 + 4.5112082274E-02 4.4917680918E-02 4.4724081218E-02 4.4531280160E-02 + 4.4339274741E-02 4.4148061968E-02 4.3957638854E-02 4.3768002424E-02 + 4.3579149709E-02 4.3391077751E-02 4.3203783601E-02 4.3017264319E-02 + 4.2831516971E-02 4.2646538635E-02 4.2462326399E-02 4.2278877355E-02 + 4.2096188609E-02 4.1914257273E-02 4.1733080468E-02 4.1552655326E-02 + 4.1372978984E-02 4.1194048592E-02 4.1015861306E-02 4.0838414293E-02 + 4.0661704725E-02 4.0485729788E-02 4.0310486672E-02 4.0135972580E-02 + 3.9962184719E-02 3.9789120309E-02 3.9616776577E-02 3.9445150758E-02 + 3.9274240098E-02 3.9104041848E-02 3.8934553271E-02 3.8765771638E-02 + 3.8597694227E-02 3.8430318326E-02 3.8263641232E-02 3.8097660250E-02 + 3.7932372693E-02 3.7767775884E-02 3.7603867153E-02 3.7440643840E-02 + 3.7278103293E-02 3.7116242867E-02 3.6955059929E-02 3.6794551851E-02 + 3.6634716015E-02 3.6475549812E-02 3.6317050641E-02 3.6159215909E-02 + 3.6002043032E-02 3.5845529434E-02 3.5689672547E-02 3.5534469814E-02 + 3.5379918682E-02 3.5226016610E-02 3.5072761063E-02 3.4920149517E-02 + 3.4768179454E-02 3.4616848366E-02 3.4466153750E-02 3.4316093116E-02 + 3.4166663978E-02 3.4017863862E-02 3.3869690299E-02 3.3722140830E-02 + 3.3575213003E-02 3.3428904377E-02 3.3283212515E-02 3.3138134991E-02 + 3.2993669386E-02 3.2849813291E-02 3.2706564302E-02 3.2563920025E-02 + 3.2421878075E-02 3.2280436072E-02 3.2139591647E-02 3.1999342438E-02 + 3.1859686090E-02 3.1720620258E-02 3.1582142603E-02 3.1444250796E-02 + 3.1306942513E-02 3.1170215441E-02 3.1034067274E-02 3.0898495712E-02 + 3.0763498465E-02 3.0629073250E-02 3.0495217793E-02 3.0361929827E-02 + 3.0229207091E-02 3.0097047335E-02 2.9965448314E-02 2.9834407794E-02 + 2.9703923545E-02 2.9573993347E-02 2.9444614987E-02 2.9315786261E-02 + 2.9187504970E-02 2.9059768925E-02 2.8932575943E-02 2.8805923851E-02 + 2.8679810481E-02 2.8554233674E-02 2.8429191278E-02 2.8304681149E-02 + 2.8180701150E-02 2.8057249151E-02 2.7934323032E-02 2.7811920678E-02 + 2.7690039982E-02 2.7568678845E-02 2.7447835174E-02 2.7327506886E-02 + 2.7207691904E-02 2.7088388157E-02 2.6969593583E-02 2.6851306127E-02 + 2.6733523742E-02 2.6616244386E-02 2.6499466028E-02 2.6383186640E-02 + 2.6267404205E-02 2.6152116710E-02 2.6037322152E-02 2.5923018533E-02 + 2.5809203865E-02 2.5695876163E-02 2.5583033453E-02 2.5470673765E-02 + 2.5358795140E-02 2.5247395622E-02 2.5136473264E-02 2.5026026126E-02 + 2.4916052275E-02 2.4806549785E-02 2.4697516736E-02 2.4588951217E-02 + 2.4480851322E-02 2.4373215154E-02 2.4266040819E-02 2.4159326436E-02 + 2.4053070124E-02 2.3947270015E-02 2.3841924244E-02 2.3737030953E-02 + 2.3632588293E-02 2.3528594421E-02 2.3425047499E-02 2.3321945698E-02 + 2.3219287194E-02 2.3117070171E-02 2.3015292819E-02 2.2913953336E-02 + 2.2813049923E-02 2.2712580793E-02 2.2612544161E-02 2.2512938251E-02 + 2.2413761293E-02 2.2315011523E-02 2.2216687185E-02 2.2118786528E-02 + 2.2021307808E-02 2.1924249288E-02 2.1827609238E-02 2.1731385932E-02 + 2.1635577652E-02 2.1540182688E-02 2.1445199333E-02 2.1350625889E-02 + 2.1256460664E-02 2.1162701972E-02 2.1069348132E-02 2.0976397471E-02 + 2.0883848323E-02 2.0791699026E-02 2.0699947925E-02 2.0608593372E-02 + 2.0517633725E-02 2.0427067349E-02 2.0336892612E-02 2.0247107892E-02 + 2.0157711570E-02 2.0068702036E-02 1.9980077685E-02 1.9891836916E-02 + 1.9803978138E-02 1.9716499762E-02 1.9629400208E-02 1.9542677901E-02 + 1.9456331271E-02 1.9370358756E-02 1.9284758799E-02 1.9199529848E-02 + 1.9114670358E-02 1.9030178790E-02 1.8946053611E-02 1.8862293292E-02 + 1.8778896312E-02 1.8695861156E-02 1.8613186313E-02 1.8530870279E-02 + 1.8448911555E-02 1.8367308649E-02 1.8286060073E-02 1.8205164347E-02 + 1.8124619995E-02 1.8044425547E-02 1.7964579538E-02 1.7885080511E-02 + 1.7805927012E-02 1.7727117595E-02 1.7648650817E-02 1.7570525242E-02 + 1.7492739439E-02 1.7415291985E-02 1.7338181459E-02 1.7261406447E-02 + 1.7184965541E-02 1.7108857338E-02 1.7033080440E-02 1.6957633456E-02 + 1.6882514998E-02 1.6807723686E-02 1.6733258143E-02 1.6659116999E-02 + 1.6585298889E-02 1.6511802453E-02 1.6438626337E-02 1.6365769191E-02 + 1.6293229672E-02 1.6221006440E-02 1.6149098164E-02 1.6077503513E-02 + 1.6006221166E-02 1.5935249804E-02 1.5864588116E-02 1.5794234793E-02 + 1.5724188534E-02 1.5654448041E-02 1.5585012023E-02 1.5515879192E-02 + 1.5447048266E-02 1.5378517970E-02 1.5310287030E-02 1.5242354181E-02 + 1.5174718161E-02 1.5107377712E-02 1.5040331584E-02 1.4973578529E-02 + 1.4907117306E-02 1.4840946678E-02 1.4775065413E-02 1.4709472283E-02 + 1.4644166067E-02 1.4579145546E-02 1.4514409510E-02 1.4449956749E-02 + 1.4385786062E-02 1.4321896249E-02 1.4258286119E-02 1.4194954481E-02 + 1.4131900152E-02 1.4069121954E-02 1.4006618712E-02 1.3944389256E-02 + 1.3882432421E-02 1.3820747047E-02 1.3759331979E-02 1.3698186064E-02 + 1.3637308158E-02 1.3576697117E-02 1.3516351805E-02 1.3456271089E-02 + 1.3396453841E-02 1.3336898937E-02 1.3277605258E-02 1.3218571690E-02 + 1.3159797122E-02 1.3101280449E-02 1.3043020570E-02 1.2985016388E-02 + 1.2927266811E-02 1.2869770750E-02 1.2812527123E-02 1.2755534850E-02 + 1.2698792857E-02 1.2642300072E-02 1.2586055431E-02 1.2530057870E-02 + 1.2474306334E-02 1.2418799768E-02 1.2363537123E-02 1.2308517356E-02 + 1.2253739425E-02 1.2199202295E-02 1.2144904932E-02 1.2090846311E-02 + 1.2037025406E-02 1.1983441199E-02 1.1930092675E-02 1.1876978821E-02 + 1.1824098631E-02 1.1771451103E-02 1.1719035236E-02 1.1666850037E-02 + 1.1614894515E-02 1.1563167683E-02 1.1511668558E-02 1.1460396161E-02 + 1.1409349519E-02 1.1358527661E-02 1.1307929619E-02 1.1257554431E-02 + 1.1207401139E-02 1.1157468787E-02 1.1107756424E-02 1.1058263104E-02 + 1.1008987883E-02 1.0959929822E-02 1.0911087986E-02 1.0862461443E-02 + 1.0814049265E-02 1.0765850528E-02 1.0717864312E-02 1.0670089702E-02 + 1.0622525783E-02 1.0575171648E-02 1.0528026391E-02 1.0481089111E-02 + 1.0434358910E-02 1.0387834895E-02 1.0341516175E-02 1.0295401863E-02 + 1.0249491077E-02 1.0203782937E-02 1.0158276568E-02 1.0112971097E-02 + 1.0067865657E-02 1.0022959382E-02 9.9782514117E-03 9.9337408877E-03 + 9.8894269561E-03 9.8453087663E-03 9.8013854713E-03 9.7576562276E-03 + 9.7141201950E-03 9.6707765371E-03 9.6276244207E-03 9.5846630162E-03 + 9.5418914974E-03 9.4993090417E-03 9.4569148296E-03 9.4147080453E-03 + 9.3726878761E-03 9.3308535131E-03 9.2892041503E-03 9.2477389855E-03 + 9.2064572195E-03 9.1653580565E-03 9.1244407042E-03 9.0837043734E-03 + 9.0431482783E-03 9.0027716363E-03 8.9625736682E-03 8.9225535979E-03 + 8.8827106527E-03 8.8430440629E-03 8.8035530623E-03 8.7642368878E-03 + 8.7250947793E-03 8.6861259801E-03 8.6473297367E-03 8.6087052986E-03 + 8.5702519184E-03 8.5319688522E-03 8.4938553587E-03 8.4559107000E-03 + 8.4181341414E-03 8.3805249511E-03 8.3430824004E-03 8.3058057636E-03 + 8.2686943183E-03 8.2317473447E-03 8.1949641266E-03 8.1583439502E-03 + 8.1218861052E-03 8.0855898840E-03 8.0494545821E-03 8.0134794979E-03 + 7.9776639328E-03 7.9420071911E-03 7.9065085801E-03 7.8711674099E-03 + 7.8359829937E-03 7.8009546474E-03 7.7660816899E-03 7.7313634429E-03 + 7.6967992310E-03 7.6623883817E-03 7.6281302254E-03 7.5940240950E-03 + 7.5600693265E-03 7.5262652588E-03 7.4926112333E-03 7.4591065944E-03 + 7.4257506892E-03 7.3925428676E-03 7.3594824821E-03 7.3265688882E-03 + 7.2938014438E-03 7.2611795100E-03 7.2287024500E-03 7.1963696303E-03 + 7.1641804197E-03 7.1321341897E-03 7.1002303146E-03 7.0684681714E-03 + 7.0368471395E-03 7.0053666012E-03 6.9740259413E-03 6.9428245471E-03 + 6.9117618088E-03 6.8808371189E-03 6.8500498726E-03 6.8193994677E-03 + 6.7888853046E-03 6.7585067860E-03 6.7282633176E-03 6.6981543071E-03 + 6.6681791651E-03 6.6383373047E-03 6.6086281411E-03 6.5790510926E-03 + 6.5496055794E-03 6.5202910246E-03 6.4911068536E-03 6.4620524941E-03 + 6.4331273766E-03 6.4043309336E-03 6.3756626004E-03 6.3471218146E-03 + 6.3187080159E-03 6.2904206469E-03 6.2622591522E-03 6.2342229790E-03 + 6.2063115767E-03 6.1785243971E-03 6.1508608945E-03 6.1233205252E-03 + 6.0959027483E-03 6.0686070247E-03 6.0414328179E-03 6.0143795938E-03 + 5.9874468203E-03 5.9606339677E-03 5.9339405087E-03 5.9073659181E-03 + 5.8809096730E-03 5.8545712528E-03 5.8283501389E-03 5.8022458153E-03 + 5.7762577680E-03 5.7503854850E-03 5.7246284570E-03 5.6989861765E-03 + 5.6734581382E-03 5.6480438392E-03 5.6227427785E-03 5.5975544574E-03 + 5.5724783794E-03 5.5475140500E-03 5.5226609769E-03 5.4979186698E-03 + 5.4732866407E-03 5.4487644036E-03 5.4243514745E-03 5.4000473717E-03 + 5.3758516154E-03 5.3517637279E-03 5.3277832337E-03 5.3039096591E-03 + 5.2801425325E-03 5.2564813846E-03 5.2329257479E-03 5.2094751568E-03 + 5.1861291479E-03 5.1628872599E-03 5.1397490331E-03 5.1167140102E-03 + 5.0937817356E-03 5.0709517558E-03 5.0482236193E-03 5.0255968763E-03 + 5.0030710793E-03 4.9806457824E-03 4.9583205419E-03 4.9360949158E-03 + 4.9139684642E-03 4.8919407489E-03 4.8700113338E-03 4.8481797846E-03 + 4.8264456687E-03 4.8048085557E-03 4.7832680169E-03 4.7618236253E-03 + 4.7404749562E-03 4.7192215861E-03 4.6980630940E-03 4.6769990602E-03 + 4.6560290671E-03 4.6351526989E-03 4.6143695413E-03 4.5936791823E-03 + 4.5730812113E-03 4.5525752196E-03 4.5321608003E-03 4.5118375483E-03 + 4.4916050600E-03 4.4714629339E-03 4.4514107701E-03 4.4314481704E-03 + 4.4115747383E-03 4.3917900791E-03 4.3720937998E-03 4.3524855091E-03 + 4.3329648175E-03 4.3135313369E-03 4.2941846813E-03 4.2749244659E-03 + 4.2557503081E-03 4.2366618265E-03 4.2176586416E-03 4.1987403755E-03 + 4.1799066520E-03 4.1611570964E-03 4.1424913359E-03 4.1239089989E-03 + 4.1054097158E-03 4.0869931184E-03 4.0686588402E-03 4.0504065163E-03 + 4.0322357833E-03 4.0141462795E-03 3.9961376447E-03 3.9782095202E-03 + 3.9603615490E-03 3.9425933756E-03 3.9249046462E-03 3.9072950081E-03 + 3.8897641107E-03 3.8723116046E-03 3.8549371419E-03 3.8376403764E-03 + 3.8204209633E-03 3.8032785594E-03 3.7862128227E-03 3.7692234131E-03 + 3.7523099918E-03 3.7354722215E-03 3.7187097662E-03 3.7020222917E-03 + 3.6854094649E-03 3.6688709545E-03 3.6524064305E-03 3.6360155642E-03 + 3.6196980285E-03 3.6034534978E-03 3.5872816477E-03 3.5711821554E-03 + 3.5551546994E-03 3.5391989598E-03 3.5233146178E-03 3.5075013562E-03 + 3.4917588592E-03 3.4760868123E-03 3.4604849023E-03 3.4449528176E-03 + 3.4294902478E-03 3.4140968839E-03 3.3987724183E-03 3.3835165445E-03 + 3.3683289578E-03 3.3532093544E-03 3.3381574321E-03 3.3231728899E-03 + 3.3082554281E-03 3.2934047485E-03 3.2786205539E-03 3.2639025487E-03 + 3.2492504385E-03 3.2346639301E-03 3.2201427316E-03 3.2056865526E-03 + 3.1912951036E-03 3.1769680967E-03 3.1627052452E-03 3.1485062635E-03 + 3.1343708673E-03 3.1202987737E-03 3.1062897010E-03 3.0923433685E-03 + 3.0784594971E-03 3.0646378086E-03 3.0508780263E-03 3.0371798745E-03 + 3.0235430787E-03 3.0099673659E-03 2.9964524639E-03 2.9829981021E-03 + 2.9696040107E-03 2.9562699213E-03 2.9429955668E-03 2.9297806810E-03 + 2.9166249989E-03 2.9035282570E-03 2.8904901926E-03 2.8775105442E-03 + 2.8645890517E-03 2.8517254558E-03 2.8389194986E-03 2.8261709233E-03 + 2.8134794741E-03 2.8008448965E-03 2.7882669369E-03 2.7757453430E-03 + 2.7632798636E-03 2.7508702485E-03 2.7385162488E-03 2.7262176163E-03 + 2.7139741044E-03 2.7017854673E-03 2.6896514602E-03 2.6775718397E-03 + 2.6655463631E-03 2.6535747890E-03 2.6416568770E-03 2.6297923879E-03 + 2.6179810833E-03 2.6062227260E-03 2.5945170798E-03 2.5828639096E-03 + 2.5712629814E-03 2.5597140620E-03 2.5482169194E-03 2.5367713226E-03 + 2.5253770417E-03 2.5140338475E-03 2.5027415123E-03 2.4914998090E-03 + 2.4803085116E-03 2.4691673953E-03 2.4580762360E-03 2.4470348108E-03 + 2.4360428977E-03 2.4251002756E-03 2.4142067246E-03 2.4033620256E-03 + 2.3925659605E-03 2.3818183122E-03 2.3711188644E-03 2.3604674021E-03 + 2.3498637108E-03 2.3393075774E-03 2.3287987894E-03 2.3183371355E-03 + 2.3079224050E-03 2.2975543885E-03 2.2872328773E-03 2.2769576637E-03 + 2.2667285409E-03 2.2565453030E-03 2.2464077451E-03 2.2363156630E-03 + 2.2262688537E-03 2.2162671148E-03 2.2063102450E-03 2.1963980439E-03 + 2.1865303117E-03 2.1767068499E-03 2.1669274606E-03 2.1571919469E-03 + 2.1475001126E-03 2.1378517626E-03 2.1282467026E-03 2.1186847390E-03 + 2.1091656792E-03 2.0996893314E-03 2.0902555048E-03 2.0808640093E-03 + 2.0715146556E-03 2.0622072553E-03 2.0529416209E-03 2.0437175656E-03 + 2.0345349035E-03 2.0253934497E-03 2.0162930197E-03 2.0072334302E-03 + 1.9982144986E-03 1.9892360429E-03 1.9802978823E-03 1.9713998366E-03 + 1.9625417262E-03 1.9537233726E-03 1.9449445980E-03 1.9362052253E-03 + 1.9275050784E-03 1.9188439817E-03 1.9102217605E-03 1.9016382411E-03 + 1.8930932501E-03 1.8845866152E-03 1.8761181650E-03 1.8676877284E-03 + 1.8592951354E-03 1.8509402167E-03 1.8426228038E-03 1.8343427287E-03 + 1.8260998245E-03 1.8178939247E-03 1.8097248638E-03 1.8015924769E-03 + 1.7934965999E-03 1.7854370694E-03 1.7774137226E-03 1.7694263977E-03 + 1.7614749334E-03 1.7535591692E-03 1.7456789452E-03 1.7378341025E-03 + 1.7300244825E-03 1.7222499277E-03 1.7145102809E-03 1.7068053861E-03 + 1.6991350875E-03 1.6914992302E-03 1.6838976601E-03 1.6763302237E-03 + 1.6687967680E-03 1.6612971409E-03 1.6538311910E-03 1.6463987674E-03 + 1.6389997200E-03 1.6316338994E-03 1.6243011566E-03 1.6170013436E-03 + 1.6097343129E-03 1.6024999176E-03 1.5952980116E-03 1.5881284494E-03 + 1.5809910860E-03 1.5738857773E-03 1.5668123796E-03 1.5597707500E-03 + 1.5527607462E-03 1.5457822265E-03 1.5388350499E-03 1.5319190759E-03 + 1.5250341647E-03 1.5181801772E-03 1.5113569747E-03 1.5045644194E-03 + 1.4978023740E-03 1.4910707017E-03 1.4843692663E-03 1.4776979326E-03 + 1.4710565654E-03 1.4644450306E-03 1.4578631944E-03 1.4513109238E-03 + 1.4447880862E-03 1.4382945497E-03 1.4318301830E-03 1.4253948554E-03 + 1.4189884366E-03 1.4126107972E-03 1.4062618081E-03 1.3999413409E-03 + 1.3936492677E-03 1.3873854613E-03 1.3811497949E-03 1.3749421423E-03 + 1.3687623781E-03 1.3626103771E-03 1.3564860149E-03 1.3503891676E-03 + 1.3443197118E-03 1.3382775247E-03 1.3322624840E-03 1.3262744680E-03 + 1.3203133555E-03 1.3143790260E-03 1.3084713592E-03 1.3025902357E-03 + 1.2967355364E-03 1.2909071428E-03 1.2851049369E-03 1.2793288013E-03 + 1.2735786190E-03 1.2678542738E-03 1.2621556496E-03 1.2564826312E-03 + 1.2508351037E-03 1.2452129527E-03 1.2396160644E-03 1.2340443256E-03 + 1.2284976233E-03 1.2229758454E-03 1.2174788799E-03 1.2120066157E-03 + 1.2065589418E-03 1.2011357480E-03 1.1957369245E-03 1.1903623618E-03 + 1.1850119513E-03 1.1796855845E-03 1.1743831535E-03 1.1691045510E-03 + 1.1638496700E-03 1.1586184041E-03 1.1534106474E-03 1.1482262944E-03 + 1.1430652400E-03 1.1379273798E-03 1.1328126096E-03 1.1277208258E-03 + 1.1226519253E-03 1.1176058054E-03 1.1125823638E-03 1.1075814989E-03 + 1.1026031092E-03 1.0976470939E-03 1.0927133527E-03 1.0878017854E-03 + 1.0829122927E-03 1.0780447754E-03 1.0731991349E-03 1.0683752731E-03 + 1.0635730921E-03 1.0587924946E-03 1.0540333839E-03 1.0492956634E-03 + 1.0445792371E-03 1.0398840094E-03 1.0352098852E-03 1.0305567697E-03 + 1.0259245687E-03 1.0213131883E-03 1.0167225349E-03 1.0121525156E-03 + 1.0076030376E-03 1.0030740089E-03 9.9856533750E-04 9.9407693211E-04 + 9.8960870172E-04 9.8516055575E-04 9.8073240403E-04 9.7632415678E-04 + 9.7193572464E-04 9.6756701864E-04 9.6321795021E-04 9.5888843117E-04 + 9.5457837374E-04 9.5028769054E-04 9.4601629457E-04 9.4176409922E-04 + 9.3753101828E-04 9.3331696591E-04 9.2912185666E-04 9.2494560546E-04 + + + + 1.3271110416E-01 1.3269861596E-01 1.3266115798E-01 1.3259875001E-01 + 1.3251142504E-01 1.3239922922E-01 1.3226222179E-01 1.3210047509E-01 + 1.3191407445E-01 1.3170311815E-01 1.3146771732E-01 1.3120799586E-01 + 1.3092409033E-01 1.3061614984E-01 1.3028433594E-01 1.2992882246E-01 + 1.2954979540E-01 1.2914745274E-01 1.2872200431E-01 1.2827367163E-01 + 1.2780268765E-01 1.2730929668E-01 1.2679375409E-01 1.2625632615E-01 + 1.2569728980E-01 1.2511693244E-01 1.2451555168E-01 1.2389345513E-01 + 1.2325096010E-01 1.2258839341E-01 1.2190609107E-01 1.2120439807E-01 + 1.2048366804E-01 1.1974426303E-01 1.1898655320E-01 1.1821091651E-01 + 1.1741773845E-01 1.1660741174E-01 1.1578033600E-01 1.1493691746E-01 + 1.1407756863E-01 1.1320270799E-01 1.1231275969E-01 1.1140815319E-01 + 1.1048932295E-01 1.0955670810E-01 1.0861075211E-01 1.0765190247E-01 + 1.0668061032E-01 1.0569733015E-01 1.0470251945E-01 1.0369663840E-01 + 1.0268014946E-01 1.0165351714E-01 1.0061720758E-01 9.9571688247E-02 + 9.8517427623E-02 9.7454894838E-02 9.6384559362E-02 9.5306890674E-02 + 9.4222357938E-02 9.3131429680E-02 9.2034573472E-02 9.0932255618E-02 + 8.9824940838E-02 8.8713091968E-02 8.7597169652E-02 8.6477632045E-02 + 8.5354934518E-02 8.4229529375E-02 8.3101865562E-02 8.1972388393E-02 + 8.0841539278E-02 7.9709755455E-02 7.8577469732E-02 7.7445110229E-02 + 7.6313100136E-02 7.5181857467E-02 7.4051794830E-02 7.2923319196E-02 + 7.1796831685E-02 7.0672727346E-02 6.9551394960E-02 6.8433216834E-02 + 6.7318568620E-02 6.6207819125E-02 6.5101330143E-02 6.3999456284E-02 + 6.2902544820E-02 6.1810935532E-02 6.0724960568E-02 5.9644944314E-02 + 5.8571203261E-02 5.7504045894E-02 5.6443772580E-02 5.5390675470E-02 + 5.4345038404E-02 5.3307136829E-02 5.2277237722E-02 5.1255599524E-02 + 5.0242472080E-02 4.9238096587E-02 4.8242705554E-02 4.7256522764E-02 + 4.6279763249E-02 4.5312633269E-02 4.4355330305E-02 4.3408043051E-02 + 4.2470951420E-02 4.1544226556E-02 4.0628030852E-02 3.9722517980E-02 + 3.8827832917E-02 3.7944111993E-02 3.7071482936E-02 3.6210064924E-02 + 3.5359968646E-02 3.4521296373E-02 3.3694142026E-02 3.2878591258E-02 + 3.2074721539E-02 3.1282602248E-02 3.0502294766E-02 2.9733852582E-02 + 2.8977321397E-02 2.8232739236E-02 2.7500136567E-02 2.6779536422E-02 + 2.6070954518E-02 2.5374399394E-02 2.4689872539E-02 2.4017368534E-02 + 2.3356875189E-02 2.2708373690E-02 2.2071838748E-02 2.1447238746E-02 + 2.0834535894E-02 2.0233686387E-02 1.9644640561E-02 1.9067343053E-02 + 1.8501732964E-02 1.7947744024E-02 1.7405304757E-02 1.6874338646E-02 + 1.6354764305E-02 1.5846495642E-02 1.5349442034E-02 1.4863508496E-02 + 1.4388595848E-02 1.3924600892E-02 1.3471416576E-02 1.3028932168E-02 + 1.2597033427E-02 1.2175602772E-02 1.1764519446E-02 1.1363659693E-02 + 1.0972896917E-02 1.0592101852E-02 1.0221142726E-02 9.8598854233E-03 + 9.5081936455E-03 9.1659290722E-03 8.8329515184E-03 8.5091190901E-03 + 8.1942883381E-03 7.8883144093E-03 7.5910511961E-03 7.3023514822E-03 + 7.0220670875E-03 6.7500490088E-03 6.4861475587E-03 6.2302125014E-03 + 5.9820931853E-03 5.7416386732E-03 5.5086978688E-03 5.2831196406E-03 + 5.0647529422E-03 4.8534469298E-03 4.6490510760E-03 4.4514152805E-03 + 4.2603899772E-03 4.0758262385E-03 3.8975758754E-03 3.7254915345E-03 + 3.5594267917E-03 3.3992362421E-03 3.2447755867E-03 3.0959017153E-03 + 2.9524727858E-03 2.8143483009E-03 2.6813891800E-03 2.5534578285E-03 + 2.4304182035E-03 2.3121358759E-03 2.1984780892E-03 2.0893138145E-03 + 1.9845138032E-03 1.8839506349E-03 1.7874987634E-03 1.6950345583E-03 + 1.6064363445E-03 1.5215844375E-03 1.4403611763E-03 1.3626509530E-03 + 1.2883402395E-03 1.2173176109E-03 1.1494737665E-03 1.0847015479E-03 + 1.0228959539E-03 9.6395415314E-04 9.0777549420E-04 8.5426151268E-04 + 8.0331593614E-04 7.5484468655E-04 7.0875588033E-04 6.6495982623E-04 + 6.2336902087E-04 5.8389814230E-04 5.4646404138E-04 5.1098573130E-04 + 4.7738437512E-04 4.4558327156E-04 4.1550783896E-04 3.8708559766E-04 + 3.6024615072E-04 3.3492116319E-04 3.1104433988E-04 2.8855140178E-04 + 2.6738006125E-04 2.4746999590E-04 2.2876282138E-04 2.1120206317E-04 + 1.9473312717E-04 1.7930326965E-04 1.6486156609E-04 1.5135887934E-04 + 1.3874782713E-04 1.2698274879E-04 1.1601967146E-04 1.0581627581E-04 + 9.6331861201E-05 8.7527310523E-05 7.9365054709E-05 7.1809036858E-05 + 6.4824676263E-05 5.8378832218E-05 5.2439767627E-05 4.6977112695E-05 + 4.1961828523E-05 3.7366170665E-05 3.3163652918E-05 2.9329011143E-05 + 2.5838167189E-05 2.2668193179E-05 1.9797275944E-05 1.7204681679E-05 + 1.4870721075E-05 1.2776714715E-05 1.0904958767E-05 9.2386912768E-06 + 7.7620588104E-06 6.4600834559E-06 5.3186305361E-06 4.3243767331E-06 + 3.4647786426E-06 2.7280420936E-06 2.1030919578E-06 1.5795424533E-06 + 1.1476682144E-06 7.9837594863E-07 5.2317663276E-07 3.1415844542E-07 + 1.6396038566E-07 6.5746465615E-08 1.3180580967E-08 4.0216461161E-10 + 2.2002440753E-08 7.3001276554E-08 1.4882491234E-07 2.4528427292E-07 + 3.5855387988E-07 4.8515159909E-07 6.2191901548E-07 7.6600242694E-07 + 9.1483454412E-07 1.0661169116E-06 1.2178029381E-06 1.3680815067E-06 + 1.5153613843E-06 1.6582561805E-06 1.7955698904E-06 1.9262831284E-06 + 2.0495399590E-06 2.1646352966E-06 2.2710028585E-06 2.3682037747E-06 + 2.4559157048E-06 2.5339224738E-06 2.6021042910E-06 2.6604284762E-06 + 2.7089406815E-06 2.7477565883E-06 2.7770541242E-06 2.7970661155E-06 + 2.8080733894E-06 2.8103983163E-06 2.8043987735E-06 2.7904625079E-06 + 2.7690019045E-06 2.7404491103E-06 2.7052515296E-06 2.6638676720E-06 + 2.6167633427E-06 2.5644081188E-06 2.5072721475E-06 2.4458232640E-06 + 2.3805243554E-06 2.3118309794E-06 2.2401892410E-06 2.1660339701E-06 + 2.0897870287E-06 2.0118558724E-06 1.9326322943E-06 1.8524914630E-06 + 1.7717909658E-06 1.6908701208E-06 1.6100494181E-06 1.5296301880E-06 + 1.4498942435E-06 1.3711037474E-06 1.2935011840E-06 1.2173094906E-06 + 1.1427321435E-06 1.0699534248E-06 9.9913877190E-07 9.3043523447E-07 + 8.6397186308E-07 7.9986024752E-07 7.3819510846E-07 6.7905496804E-07 + 6.2250272235E-07 5.6858634247E-07 5.1733959566E-07 4.6878284089E-07 + 4.2292368551E-07 3.7975776340E-07 3.3926949311E-07 3.0143292997E-07 + 2.6621242847E-07 2.3356343088E-07 2.0343319129E-07 1.7576163218E-07 + 1.5048195428E-07 1.2752138126E-07 1.0680182561E-07 8.8240656933E-08 + 7.1751273753E-08 5.7243741283E-08 4.4625382517E-08 3.3801410268E-08 + 2.4675456857E-08 1.7150075301E-08 1.1127239631E-08 6.5088262375E-09 + 3.1970852055E-09 1.0950002553E-09 1.0668838615E-10 1.3773539323E-10 + 1.0955883252E-09 2.8897884889E-09 5.4322593005E-09 8.6375415070E-09 + 1.2423034058E-08 1.6709176777E-08 2.1419604241E-08 2.6481292404E-08 + 3.1824674751E-08 3.7383758829E-08 4.3096177856E-08 4.8903251824E-08 + 5.4750020413E-08 6.0585264275E-08 6.6361501090E-08 7.2034966189E-08 + 7.7565580588E-08 8.2916904918E-08 8.8056071493E-08 9.2953719132E-08 + 9.7583906663E-08 1.0192402215E-07 1.0595467060E-07 1.0965956162E-07 + 1.1302539982E-07 1.1604175583E-07 1.1870094459E-07 1.2099786103E-07 + 1.2292986534E-07 1.2449663912E-07 1.2570004117E-07 1.2654396897E-07 + 1.2703417701E-07 1.2717817044E-07 1.2698504825E-07 1.2646536463E-07 + 1.2563097934E-07 1.2449490099E-07 1.2307117951E-07 1.2137476262E-07 + 1.1942137369E-07 1.1722736674E-07 1.1480960483E-07 1.1218536175E-07 + 1.0937220227E-07 1.0638788400E-07 1.0325023094E-07 9.9977047884E-08 + 9.6586040260E-08 9.3094723429E-08 8.9520351651E-08 8.5879820382E-08 + 8.2189611954E-08 7.8465739798E-08 7.4723687803E-08 7.0978365983E-08 + 6.7244046973E-08 6.3534336276E-08 5.9862143103E-08 5.6239647851E-08 + 5.2678281782E-08 4.9188697718E-08 4.5780759176E-08 4.2463535672E-08 + 3.9245294483E-08 3.6133500438E-08 3.3134815540E-08 3.0255104298E-08 + 2.7499447094E-08 2.4872151574E-08 2.2376768309E-08 2.0016109630E-08 + 1.7792272128E-08 1.5706658419E-08 1.3760003426E-08 1.1952401893E-08 + 1.0283333964E-08 8.7517085961E-09 7.3558826044E-09 6.0936973970E-09 + 4.9625127120E-09 3.9592363811E-09 3.0803724943E-09 2.3220478845E-09 + 1.6800451111E-09 1.1498395008E-09 7.2663129061E-10 4.0538340679E-10 + 1.8086523498E-10 4.7669866666E-11 2.5214974089E-13 3.2960312336E-11 + 1.4005881801E-10 3.1578263963E-10 5.5434371241E-10 8.4996202073E-10 + 1.1968925574E-09 1.5894466099E-09 2.0220200525E-09 2.4891226915E-09 + 2.9853834185E-09 3.5055743592E-09 4.0446280607E-09 4.5976472841E-09 + 5.1599370102E-09 5.7270030067E-09 6.2945635352E-09 6.8585605557E-09 + 7.4151670916E-09 7.9607921076E-09 8.4920984882E-09 9.0059926186E-09 + 9.4996316806E-09 9.9704250709E-09 1.0416033259E-08 1.0834369599E-08 + 1.1223599565E-08 1.1582133299E-08 1.1908623254E-08 1.2201959182E-08 + 1.2461261958E-08 1.2685877792E-08 1.2875370359E-08 1.3029512528E-08 + 1.3148277866E-08 1.3231831440E-08 1.3280521762E-08 1.3294865868E-08 + 1.3275542891E-08 1.3223383037E-08 1.3139356308E-08 1.3024561422E-08 + 1.2880218170E-08 1.2707645101E-08 1.2508258375E-08 1.2283558512E-08 + 1.2035118922E-08 1.1764574970E-08 1.1473618003E-08 1.1163969886E-08 + 1.0837386507E-08 1.0495644835E-08 1.0140532843E-08 9.7738402635E-09 + 9.3973546199E-09 9.0128379082E-09 8.6220313403E-09 8.2266460052E-09 + 7.8283549029E-09 7.4287863477E-09 7.0295217351E-09 6.6320789873E-09 + 6.2379147178E-09 5.8484210172E-09 5.4649197772E-09 5.0886590966E-09 + 4.7208123755E-09 4.3624707710E-09 4.0146410662E-09 3.6782488966E-09 + 3.3541353971E-09 3.0430564591E-09 2.7457200574E-09 2.4627973922E-09 + 2.1946250820E-09 1.9415907132E-09 1.7040087107E-09 1.4821255411E-09 + 1.2761240925E-09 1.0854832248E-09 9.1092611770E-10 7.5269384672E-10 + 6.1082599025E-10 4.8524182714E-10 3.7571871933E-10 2.8231098439E-10 + 2.0452150210E-10 1.4083707648E-10 9.0160951266E-11 5.1261771606E-11 + 2.2802154033E-11 3.3700987523E-12 -8.2796133960E-12 -1.3832710957E-11 + -1.4777046796E-11 -1.2507776793E-11 -8.3075239234E-12 -3.3107534045E-12 + 9.5322554464E-13 3.2481748989E-12 4.5072479849E-12 4.7016184973E-12 + 3.9545036317E-12 2.5024955104E-12 6.5468607842E-13 -2.9761755394E-13 + -6.4258508774E-13 -8.2512947768E-13 -8.3114080147E-13 -6.7388829173E-13 + -3.8976890134E-13 -3.2266232980E-14 -2.8224119426E-15 -5.0078177802E-15 + -6.0137825265E-15 -5.7919014813E-15 -4.4740793616E-15 -2.3405424865E-15 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + + + 0.0000000000E+00 3.3512884074E-06 1.3435372523E-05 3.0342849961E-05 + 5.4224521073E-05 8.5291099380E-05 1.2381281394E-04 1.7011891112E-04 + 2.2459706508E-04 2.8769270768E-04 3.5990828983E-04 4.4180248711E-04 + 5.3398936297E-04 6.3713750313E-04 7.5196913431E-04 8.7925923996E-04 + 1.0198346850E-03 1.1745733595E-03 1.3444033512E-03 1.5303021535E-03 + 1.7332959139E-03 1.9544587282E-03 2.1949119791E-03 2.4558237210E-03 + 2.7384081069E-03 3.0439248537E-03 3.3736787394E-03 3.7290191253E-03 + 4.1113394938E-03 4.5220769939E-03 4.9627119828E-03 5.4347675554E-03 + 5.9398090506E-03 6.4794435272E-03 7.0553191988E-03 7.6691248234E-03 + 8.3225890405E-03 9.0174796526E-03 9.7556028504E-03 1.0538802380E-02 + 1.1368958655E-02 1.2247987821E-02 1.3177840772E-02 1.4160502134E-02 + 1.5197989220E-02 1.6292350968E-02 1.7445666881E-02 1.8660045965E-02 + 1.9937625699E-02 2.1280571021E-02 2.2691073377E-02 2.4171349801E-02 + 2.5723642068E-02 2.7350215910E-02 2.9053360287E-02 3.0835386741E-02 + 3.2698628794E-02 3.4645441408E-02 3.6678200480E-02 3.8799302359E-02 + 4.1011163369E-02 4.3316219301E-02 4.5716924861E-02 4.8215753025E-02 + 5.0815194287E-02 5.3517755731E-02 5.6325959924E-02 5.9242343563E-02 + 6.2269455835E-02 6.5409856470E-02 6.8666113420E-02 7.2040800146E-02 + 7.5536492466E-02 7.9155764934E-02 8.2901186731E-02 8.6775317035E-02 + 9.0780699856E-02 9.4919858337E-02 9.9195288506E-02 1.0360945249E-01 + 1.0816477119E-01 1.1286361650E-01 1.1770830298E-01 1.2270107913E-01 + 1.2784411832E-01 1.3313950928E-01 1.3858924640E-01 1.4419521977E-01 + 1.4995920514E-01 1.5588285375E-01 1.6196768224E-01 1.6821506267E-01 + 1.7462621272E-01 1.8120218618E-01 1.8794386386E-01 1.9485194490E-01 + 2.0192693873E-01 2.0916915755E-01 2.1657870967E-01 2.2415549346E-01 + 2.3189919230E-01 2.3980927036E-01 2.4788496931E-01 2.5612530609E-01 + 2.6452907156E-01 2.7309483030E-01 2.8182092131E-01 2.9070545981E-01 + 2.9974633988E-01 3.0894123819E-01 3.1828761848E-01 3.2778273694E-01 + 3.3742364827E-01 3.4720721247E-01 3.5713010209E-01 3.6718881007E-01 + 3.7737965783E-01 3.8769880363E-01 3.9814225111E-01 4.0870585773E-01 + 4.1938534326E-01 4.3017629787E-01 4.4107419009E-01 4.5207437416E-01 + 4.6317209704E-01 4.7436250466E-01 4.8564064766E-01 4.9700148629E-01 + 5.0843989460E-01 5.1995066385E-01 5.3152850515E-01 5.4316805123E-01 + 5.5486385758E-01 5.6661040274E-01 5.7840208811E-01 5.9023323702E-01 + 6.0209809348E-01 6.1399082046E-01 6.2590549798E-01 6.3783612111E-01 + 6.4977659800E-01 6.6172074812E-01 6.7366230083E-01 6.8559489452E-01 + 6.9751207644E-01 7.0940730331E-01 7.2127394306E-01 7.3310527761E-01 + 7.4489450705E-01 7.5663475521E-01 7.6831907674E-01 7.7994046593E-01 + 7.9149186718E-01 8.0296618724E-01 8.1435630930E-01 8.2565510887E-01 + 8.3685547146E-01 8.4795031200E-01 8.5893259597E-01 8.6979536207E-01 + 8.8053174636E-01 8.9113500768E-01 9.0159855422E-01 9.1191597098E-01 + 9.2208104794E-01 9.3208780871E-01 9.4193053933E-01 9.5160381710E-01 + 9.6110253898E-01 9.7042194948E-01 9.7955766758E-01 9.8850571315E-01 + 9.9726252922E-01 1.0058250060E+00 1.0141905044E+00 1.0223568683E+00 + 1.0303224507E+00 1.0380861096E+00 1.0456471260E+00 1.0530051473E+00 + 1.0601600493E+00 1.0671117617E+00 1.0738603154E+00 1.0804058242E+00 + 1.0867484909E+00 1.0928886734E+00 1.0988268577E+00 1.1045636188E+00 + 1.1100996155E+00 1.1154356018E+00 1.1205724263E+00 1.1255110224E+00 + 1.1302524051E+00 1.1347976682E+00 1.1391479812E+00 1.1433045856E+00 + 1.1472687918E+00 1.1510419761E+00 1.1546255776E+00 1.1580210951E+00 + 1.1612300846E+00 1.1642541561E+00 1.1670949713E+00 1.1697542406E+00 + 1.1722337207E+00 1.1745352121E+00 1.1766605567E+00 1.1786116352E+00 + 1.1803903653E+00 1.1819986990E+00 1.1834386205E+00 1.1847121441E+00 + 1.1858213125E+00 1.1867681942E+00 1.1875548819E+00 1.1881834904E+00 + 1.1886561551E+00 1.1889750299E+00 1.1891422854E+00 1.1891601075E+00 + 1.1890306955E+00 1.1887562607E+00 1.1883390245E+00 1.1877812173E+00 + 1.1870850769E+00 1.1862528470E+00 1.1852867758E+00 1.1841891150E+00 + 1.1829621178E+00 1.1816080387E+00 1.1801291312E+00 1.1785276476E+00 + 1.1768058370E+00 1.1749659451E+00 1.1730102123E+00 1.1709408734E+00 + 1.1687601562E+00 1.1664702808E+00 1.1640734584E+00 1.1615718910E+00 + 1.1589677699E+00 1.1562632755E+00 1.1534605760E+00 1.1505618271E+00 + 1.1475691714E+00 1.1444847370E+00 1.1413106378E+00 1.1380489722E+00 + 1.1347018230E+00 1.1312712566E+00 1.1277593224E+00 1.1241680527E+00 + 1.1204994617E+00 1.1167555456E+00 1.1129382819E+00 1.1090496289E+00 + 1.1050915258E+00 1.1010658918E+00 1.0969746261E+00 1.0928196077E+00 + 1.0886026949E+00 1.0843257250E+00 1.0799905143E+00 1.0755988580E+00 + 1.0711525295E+00 1.0666532806E+00 1.0621028414E+00 1.0575029200E+00 + 1.0528552021E+00 1.0481613517E+00 1.0434230101E+00 1.0386417965E+00 + 1.0338193075E+00 1.0289571174E+00 1.0240567778E+00 1.0191198179E+00 + 1.0141477444E+00 1.0091420414E+00 1.0041041704E+00 9.9903557070E-01 + 9.9393765880E-01 9.8881182903E-01 9.8365945331E-01 9.7848188128E-01 + 9.7328044040E-01 9.6805643600E-01 9.6281115138E-01 9.5754584795E-01 + 9.5226176529E-01 9.4696012127E-01 9.4164211222E-01 9.3630891299E-01 + 9.3096167716E-01 9.2560153710E-01 9.2022960420E-01 9.1484696896E-01 + 9.0945470117E-01 9.0405385006E-01 8.9864544451E-01 8.9323049316E-01 + 8.8780998461E-01 8.8238488761E-01 8.7695615123E-01 8.7152470505E-01 + 8.6609145934E-01 8.6065730524E-01 8.5522311499E-01 8.4978974209E-01 + 8.4435802152E-01 8.3892876991E-01 8.3350278578E-01 8.2808084972E-01 + 8.2266372460E-01 8.1725215577E-01 8.1184687128E-01 8.0644858207E-01 + 8.0105798220E-01 7.9567574904E-01 7.9030254349E-01 7.8493901020E-01 + 7.7958577775E-01 7.7424345890E-01 7.6891265078E-01 7.6359393510E-01 + 7.5828787836E-01 7.5299503208E-01 7.4771593299E-01 7.4245110324E-01 + 7.3720105064E-01 7.3196626881E-01 7.2674723747E-01 7.2154442256E-01 + 7.1635827652E-01 7.1118923846E-01 7.0603773435E-01 7.0090417727E-01 + 6.9578896759E-01 6.9069249314E-01 6.8561512948E-01 6.8055724004E-01 + 6.7551917634E-01 6.7050127820E-01 6.6550387389E-01 6.6052728040E-01 + 6.5557180355E-01 6.5063773825E-01 6.4572536865E-01 6.4083496833E-01 + 6.3596680050E-01 6.3112111819E-01 6.2629816441E-01 6.2149817236E-01 + 6.1672136557E-01 6.1196795814E-01 6.0723815486E-01 6.0253215140E-01 + 5.9785013450E-01 5.9319228213E-01 5.8855876364E-01 5.8394973998E-01 + 5.7936536380E-01 5.7480577968E-01 5.7027112423E-01 5.6576152630E-01 + 5.6127710710E-01 5.5681798040E-01 5.5238425263E-01 5.4797602309E-01 + 5.4359338406E-01 5.3923642097E-01 5.3490521253E-01 5.3059983090E-01 + 5.2632034181E-01 5.2206680470E-01 5.1783927291E-01 5.1363779373E-01 + 5.0946240863E-01 5.0531315332E-01 5.0119005793E-01 4.9709314710E-01 + 4.9302244016E-01 4.8897795121E-01 4.8495968926E-01 4.8096765838E-01 + 4.7700185777E-01 4.7306228193E-01 4.6914892074E-01 4.6526175960E-01 + 4.6140077954E-01 4.5756595731E-01 4.5375726554E-01 4.4997467279E-01 + 4.4621814369E-01 4.4248763906E-01 4.3878311598E-01 4.3510452791E-01 + 4.3145182478E-01 4.2782495311E-01 4.2422385609E-01 4.2064847368E-01 + 4.1709874269E-01 4.1357459691E-01 4.1007596715E-01 4.0660278138E-01 + 4.0315496478E-01 3.9973243983E-01 3.9633512641E-01 3.9296294190E-01 + 3.8961580120E-01 3.8629361687E-01 3.8299629919E-01 3.7972375620E-01 + 3.7647589386E-01 3.7325261602E-01 3.7005382459E-01 3.6687941954E-01 + 3.6372929900E-01 3.6060335933E-01 3.5750149517E-01 3.5442359955E-01 + 3.5136956388E-01 3.4833927808E-01 3.4533263062E-01 3.4234950857E-01 + 3.3938979767E-01 3.3645338238E-01 3.3354014595E-01 3.3064997047E-01 + 3.2778273691E-01 3.2493832519E-01 3.2211661425E-01 3.1931748204E-01 + 3.1654080566E-01 3.1378646130E-01 3.1105432440E-01 3.0834426961E-01 + 3.0565617087E-01 3.0298990147E-01 3.0034533405E-01 2.9772234070E-01 + 2.9512079295E-01 2.9254056183E-01 2.8998151791E-01 2.8744353136E-01 + 2.8492647194E-01 2.8243020906E-01 2.7995461186E-01 2.7749954915E-01 + 2.7506488954E-01 2.7265050141E-01 2.7025625296E-01 2.6788201227E-01 + 2.6552764727E-01 2.6319302583E-01 2.6087801575E-01 2.5858248483E-01 + 2.5630630084E-01 2.5404933158E-01 2.5181144492E-01 2.4959250880E-01 + 2.4739239126E-01 2.4521096047E-01 2.4304808474E-01 2.4090363257E-01 + 2.3877747265E-01 2.3666947387E-01 2.3457950537E-01 2.3250743655E-01 + 2.3045313707E-01 2.2841647691E-01 2.2639732633E-01 2.2439555594E-01 + 2.2241103670E-01 2.2044363992E-01 2.1849323730E-01 2.1655970094E-01 + 2.1464290332E-01 2.1274271739E-01 2.1085901649E-01 2.0899167446E-01 + 2.0714056556E-01 2.0530556456E-01 2.0348654669E-01 2.0168338771E-01 + 1.9989596388E-01 1.9812415196E-01 1.9636782928E-01 1.9462687369E-01 + 1.9290116360E-01 1.9119057796E-01 1.8949499632E-01 1.8781429880E-01 + 1.8614836608E-01 1.8449707947E-01 1.8286032086E-01 1.8123797275E-01 + 1.7962991825E-01 1.7803604110E-01 1.7645622566E-01 1.7489035692E-01 + 1.7333832052E-01 1.7180000272E-01 1.7027529045E-01 1.6876407127E-01 + 1.6726623340E-01 1.6578166575E-01 1.6431025784E-01 1.6285189990E-01 + 1.6140648281E-01 1.5997389812E-01 1.5855403806E-01 1.5714679555E-01 + 1.5575206418E-01 1.5436973820E-01 1.5299971258E-01 1.5164188296E-01 + 1.5029614565E-01 1.4896239767E-01 1.4764053673E-01 1.4633046122E-01 + 1.4503207021E-01 1.4374526348E-01 1.4246994149E-01 1.4120600540E-01 + 1.3995335706E-01 1.3871189900E-01 1.3748153444E-01 1.3626216732E-01 + 1.3505370223E-01 1.3385604447E-01 1.3266910003E-01 1.3149277558E-01 + 1.3032697849E-01 1.2917161679E-01 1.2802659921E-01 1.2689183516E-01 + 1.2576723474E-01 1.2465270871E-01 1.2354816851E-01 1.2245352628E-01 + 1.2136869480E-01 1.2029358755E-01 1.1922811865E-01 1.1817220291E-01 + 1.1712575580E-01 1.1608869345E-01 1.1506093264E-01 1.1404239084E-01 + 1.1303298613E-01 1.1203263727E-01 1.1104126367E-01 1.1005878538E-01 + 1.0908512309E-01 1.0812019813E-01 1.0716393249E-01 1.0621624876E-01 + 1.0527707020E-01 1.0434632066E-01 1.0342392464E-01 1.0250980726E-01 + 1.0160389426E-01 1.0070611199E-01 9.9816387409E-02 9.8934648100E-02 + 9.8060822241E-02 9.7194838615E-02 9.6336626604E-02 9.5486116187E-02 + 9.4643237934E-02 9.3807923004E-02 9.2980103140E-02 9.2159710669E-02 + 9.1346678495E-02 9.0540940095E-02 8.9742429520E-02 8.8951081384E-02 + 8.8166830867E-02 8.7389613710E-02 8.6619366207E-02 8.5856025207E-02 + 8.5099528106E-02 8.4349812849E-02 8.3606817917E-02 8.2870482331E-02 + 8.2140745648E-02 8.1417547953E-02 8.0700829857E-02 7.9990532496E-02 + 7.9286597524E-02 7.8588967109E-02 7.7897583934E-02 7.7212391186E-02 + 7.6533332558E-02 7.5860352245E-02 7.5193394936E-02 7.4532405814E-02 + 7.3877330553E-02 7.3228115309E-02 7.2584706724E-02 7.1947051915E-02 + 7.1315098476E-02 7.0688794470E-02 7.0068088428E-02 6.9452929345E-02 + 6.8843266675E-02 6.8239050330E-02 6.7640230671E-02 6.7046758514E-02 + 6.6458585115E-02 6.5875662174E-02 6.5297941831E-02 6.4725376657E-02 + 6.4157919658E-02 6.3595524266E-02 6.3038144337E-02 6.2485734149E-02 + 6.1938248395E-02 6.1395642185E-02 6.0857871036E-02 6.0324890874E-02 + 5.9796658028E-02 5.9273129228E-02 5.8754261598E-02 5.8240012659E-02 + 5.7730340319E-02 5.7225202875E-02 5.6724559005E-02 5.6228367770E-02 + 5.5736588605E-02 5.5249181320E-02 5.4766106096E-02 5.4287323480E-02 + 5.3812794384E-02 5.3342480079E-02 5.2876342195E-02 5.2414342716E-02 + 5.1956443979E-02 5.1502608667E-02 5.1052799809E-02 5.0606980777E-02 + 5.0165115281E-02 4.9727167368E-02 4.9293101416E-02 4.8862882137E-02 + 4.8436474567E-02 4.8013844067E-02 4.7594956320E-02 4.7179777328E-02 + 4.6768273406E-02 4.6360411185E-02 4.5956157604E-02 4.5555479908E-02 + 4.5158345650E-02 4.4764722681E-02 4.4374579153E-02 4.3987883513E-02 + 4.3604604502E-02 4.3224711150E-02 4.2848172778E-02 4.2474958990E-02 + 4.2105039674E-02 4.1738384997E-02 4.1374965405E-02 4.1014751619E-02 + 4.0657714631E-02 4.0303825703E-02 3.9953056367E-02 3.9605378416E-02 + 3.9260763911E-02 3.8919185168E-02 3.8580614762E-02 3.8245025525E-02 + 3.7912390541E-02 3.7582683143E-02 3.7255876914E-02 3.6931945683E-02 + 3.6610863521E-02 3.6292604741E-02 3.5977143896E-02 3.5664455775E-02 + 3.5354515402E-02 3.5047298031E-02 3.4742779150E-02 3.4440934471E-02 + 3.4141739936E-02 3.3845171708E-02 3.3551206172E-02 3.3259819933E-02 + 3.2970989814E-02 3.2684692850E-02 3.2400906294E-02 3.2119607608E-02 + 3.1840774464E-02 3.1564384740E-02 3.1290416520E-02 3.1018848094E-02 + 3.0749657949E-02 3.0482824775E-02 3.0218327458E-02 2.9956145080E-02 + 2.9696256918E-02 2.9438642440E-02 2.9183281305E-02 2.8930153360E-02 + 2.8679238639E-02 2.8430517361E-02 2.8183969926E-02 2.7939576919E-02 + 2.7697319103E-02 2.7457177417E-02 2.7219132980E-02 2.6983167083E-02 + 2.6749261190E-02 2.6517396937E-02 2.6287556130E-02 2.6059720741E-02 + 2.5833872910E-02 2.5609994943E-02 2.5388069306E-02 2.5168078630E-02 + 2.4950005703E-02 2.4733833474E-02 2.4519545049E-02 2.4307123686E-02 + 2.4096552802E-02 2.3887815964E-02 2.3680896891E-02 2.3475779450E-02 + 2.3272447659E-02 2.3070885681E-02 2.2871077825E-02 2.2673008543E-02 + 2.2476662431E-02 2.2282024226E-02 2.2089078806E-02 2.1897811185E-02 + 2.1708206517E-02 2.1520250090E-02 2.1333927329E-02 2.1149223789E-02 + 2.0966125160E-02 2.0784617262E-02 2.0604686044E-02 2.0426317585E-02 + 2.0249498090E-02 2.0074213890E-02 1.9900451440E-02 1.9728197321E-02 + 1.9557438233E-02 1.9388161000E-02 1.9220352564E-02 1.9053999989E-02 + 1.8889090453E-02 1.8725611253E-02 1.8563549801E-02 1.8402893623E-02 + 1.8243630359E-02 1.8085747762E-02 1.7929233693E-02 1.7774076127E-02 + 1.7620263146E-02 1.7467782940E-02 1.7316623809E-02 1.7166774154E-02 + 1.7018222484E-02 1.6870957413E-02 1.6724967656E-02 1.6580242031E-02 + 1.6436769455E-02 1.6294538950E-02 1.6153539632E-02 1.6013760718E-02 + 1.5875191522E-02 1.5737821454E-02 1.5601640020E-02 1.5466636819E-02 + 1.5332801546E-02 1.5200123987E-02 1.5068594021E-02 1.4938201618E-02 + 1.4808936837E-02 1.4680789828E-02 1.4553750828E-02 1.4427810163E-02 + 1.4302958245E-02 1.4179185572E-02 1.4056482728E-02 1.3934840380E-02 + 1.3814249281E-02 1.3694700264E-02 1.3576184246E-02 1.3458692225E-02 + 1.3342215279E-02 1.3226744567E-02 1.3112271324E-02 1.2998786867E-02 + 1.2886282587E-02 1.2774749956E-02 1.2664180519E-02 1.2554565897E-02 + 1.2445897787E-02 1.2338167957E-02 1.2231368252E-02 1.2125490587E-02 + 1.2020526951E-02 1.1916469401E-02 1.1813310068E-02 1.1711041151E-02 + 1.1609654920E-02 1.1509143713E-02 1.1409499934E-02 1.1310716057E-02 + 1.1212784622E-02 1.1115698235E-02 1.1019449567E-02 1.0924031354E-02 + 1.0829436397E-02 1.0735657562E-02 1.0642687775E-02 1.0550520026E-02 + 1.0459147369E-02 1.0368562916E-02 1.0278759842E-02 1.0189731382E-02 + 1.0101470829E-02 1.0013971538E-02 9.9272269209E-03 9.8412304478E-03 + 9.7559756466E-03 9.6714561024E-03 9.5876654566E-03 9.5045974065E-03 + 9.4222457050E-03 9.3406041599E-03 9.2596666333E-03 9.1794270414E-03 + 9.0998793541E-03 9.0210175941E-03 8.9428358366E-03 8.8653282088E-03 + 8.7884888895E-03 8.7123121084E-03 8.6367921459E-03 8.5619233326E-03 + 8.4877000484E-03 8.4141167229E-03 8.3411678345E-03 8.2688479097E-03 + 8.1971515230E-03 8.1260732965E-03 8.0556078990E-03 7.9857500462E-03 + 7.9164944999E-03 7.8478360676E-03 7.7797696020E-03 7.7122900009E-03 + 7.6453922068E-03 7.5790712064E-03 7.5133220298E-03 7.4481397507E-03 + 7.3835194855E-03 7.3194563934E-03 7.2559456756E-03 7.1929825752E-03 + 7.1305623766E-03 7.0686804050E-03 7.0073320270E-03 6.9465126491E-03 + 6.8862177179E-03 6.8264427192E-03 6.7671831785E-03 6.7084346600E-03 + 6.6501927663E-03 6.5924531384E-03 6.5352114549E-03 6.4784634320E-03 + 6.4222048232E-03 6.3664314189E-03 6.3111390458E-03 6.2563235671E-03 + 6.2019808815E-03 6.1481069233E-03 6.0946976623E-03 6.0417491030E-03 + 5.9892572844E-03 5.9372182799E-03 5.8856281967E-03 5.8344831762E-03 + 5.7837793928E-03 5.7335130542E-03 5.6836804007E-03 5.6342777051E-03 + 5.5853012727E-03 5.5367474403E-03 5.4886125766E-03 5.4408930816E-03 + 5.3935853864E-03 5.3466859529E-03 5.3001912736E-03 5.2540978714E-03 + 5.2084022990E-03 5.1631011389E-03 5.1181910031E-03 5.0736685327E-03 + 5.0295303979E-03 4.9857732976E-03 4.9423939590E-03 4.8993891375E-03 + 4.8567556166E-03 4.8144902075E-03 4.7725897490E-03 4.7310511068E-03 + 4.6898711738E-03 4.6490468695E-03 4.6085751400E-03 4.5684529577E-03 + 4.5286773210E-03 4.4892452541E-03 4.4501538066E-03 4.4114000538E-03 + 4.3729810962E-03 4.3348940590E-03 4.2971360921E-03 4.2597043701E-03 + 4.2225960916E-03 4.1858084795E-03 4.1493387804E-03 4.1131842646E-03 + 4.0773422258E-03 4.0418099809E-03 4.0065848699E-03 3.9716642558E-03 + 3.9370455241E-03 3.9027260827E-03 3.8687033618E-03 3.8349748135E-03 + 3.8015379119E-03 3.7683901527E-03 3.7355290532E-03 3.7029521518E-03 + 3.6706570080E-03 3.6386412023E-03 3.6069023361E-03 3.5754380313E-03 + 3.5442459301E-03 3.5133236947E-03 3.4826690078E-03 3.4522795716E-03 + 3.4221531081E-03 3.3922873588E-03 3.3626800845E-03 3.3333290651E-03 + 3.3042320997E-03 3.2753870062E-03 3.2467916212E-03 3.2184437999E-03 + 3.1903414156E-03 3.1624823600E-03 3.1348645429E-03 3.1074858918E-03 + 3.0803443520E-03 3.0534378865E-03 3.0267644756E-03 3.0003221167E-03 + 2.9741088248E-03 2.9481226316E-03 2.9223615857E-03 2.8968237524E-03 + 2.8715072136E-03 2.8464100674E-03 2.8215304284E-03 2.7968664272E-03 + 2.7724162104E-03 2.7481779405E-03 2.7241497955E-03 2.7003299692E-03 + 2.6767166709E-03 2.6533081251E-03 2.6301025716E-03 2.6070982650E-03 + 2.5842934750E-03 2.5616864862E-03 2.5392755975E-03 2.5170591227E-03 + 2.4950353898E-03 2.4732027413E-03 2.4515595335E-03 2.4301041370E-03 + 2.4088349365E-03 2.3877503303E-03 2.3668487304E-03 2.3461285623E-03 + 2.3255882652E-03 2.3052262914E-03 2.2850411065E-03 2.2650311892E-03 + 2.2451950312E-03 2.2255311372E-03 2.2060380244E-03 2.1867142229E-03 + 2.1675582755E-03 2.1485687372E-03 2.1297441754E-03 2.1110831698E-03 + 2.0925843122E-03 2.0742462065E-03 2.0560674684E-03 2.0380467255E-03 + 2.0201826172E-03 2.0024737943E-03 1.9849189193E-03 1.9675166662E-03 + 1.9502657202E-03 1.9331647779E-03 1.9162125469E-03 1.8994077458E-03 + 1.8827491043E-03 1.8662353628E-03 1.8498652727E-03 1.8336375957E-03 + 1.8175511045E-03 1.8016045820E-03 1.7857968214E-03 1.7701266266E-03 + 1.7545928116E-03 1.7391942005E-03 1.7239296272E-03 1.7087979361E-03 + 1.6937979809E-03 1.6789286256E-03 1.6641887436E-03 1.6495772180E-03 + 1.6350929414E-03 1.6207348161E-03 1.6065017534E-03 1.5923926742E-03 + 1.5784065087E-03 1.5645421960E-03 1.5507986844E-03 1.5371749312E-03 + 1.5236699027E-03 1.5102825738E-03 1.4970119283E-03 1.4838569588E-03 + 1.4708166664E-03 1.4578900607E-03 1.4450761598E-03 1.4323739901E-03 + 1.4197825867E-03 1.4073009927E-03 1.3949282594E-03 1.3826634462E-03 + 1.3705056205E-03 1.3584538580E-03 1.3465072418E-03 1.3346648633E-03 + 1.3229258214E-03 1.3112892228E-03 1.2997541819E-03 1.2883198205E-03 + 1.2769852682E-03 1.2657496618E-03 1.2546121457E-03 1.2435718715E-03 + 1.2326279982E-03 1.2217796917E-03 1.2110261253E-03 1.2003664794E-03 + 1.1897999413E-03 1.1793257053E-03 1.1689429725E-03 1.1586509511E-03 + 1.1484488557E-03 1.1383359080E-03 1.1283113363E-03 1.1183743755E-03 + 1.1085242668E-03 1.0987602582E-03 1.0890816041E-03 1.0794875652E-03 + 1.0699774087E-03 1.0605504077E-03 1.0512058421E-03 1.0419429974E-03 + 1.0327611657E-03 1.0236596448E-03 1.0146377387E-03 1.0056947575E-03 + 9.9683001705E-04 9.8804283909E-04 9.7933255119E-04 9.7069848669E-04 + 9.6213998465E-04 9.5365638981E-04 9.4524705252E-04 9.3691132871E-04 + 9.2864857985E-04 9.2045817284E-04 9.1233948000E-04 9.0429187919E-04 + 8.9631475351E-04 8.8840749138E-04 8.8056948645E-04 8.7280013760E-04 + 8.6509884885E-04 8.5746502936E-04 8.4989809334E-04 8.4239746006E-04 + 8.3496255377E-04 8.2759280365E-04 8.2028764380E-04 8.1304651310E-04 + 8.0586885543E-04 7.9875411936E-04 7.9170175820E-04 7.8471122997E-04 + 7.7778199734E-04 7.7091352760E-04 7.6410529263E-04 7.5735676883E-04 + 7.5066743713E-04 7.4403678290E-04 7.3746429597E-04 7.3094947053E-04 + 7.2449180506E-04 7.1809080247E-04 7.1174596995E-04 7.0545681888E-04 + 6.9922286486E-04 6.9304362766E-04 6.8691863118E-04 6.8084740342E-04 + 6.7482947645E-04 6.6886438636E-04 6.6295167324E-04 6.5709088115E-04 + 6.5128155805E-04 6.4552325580E-04 6.3981553009E-04 6.3415794056E-04 + 6.2855005057E-04 6.2299142723E-04 6.1748164141E-04 6.1202026766E-04 + 6.0660688420E-04 6.0124107290E-04 5.9592241921E-04 5.9065051217E-04 + 5.8542494438E-04 5.8024531191E-04 5.7511121436E-04 5.7002225470E-04 + 5.6497803942E-04 5.5997817841E-04 5.5502228490E-04 5.5010997545E-04 + 5.4524086992E-04 5.4041459149E-04 5.3563076655E-04 5.3088902473E-04 + 5.2618899888E-04 5.2153032498E-04 5.1691264218E-04 5.1233559275E-04 + 5.0779882204E-04 5.0330197839E-04 4.9884471331E-04 4.9442668128E-04 + 4.9004753976E-04 4.8570694917E-04 4.8140457284E-04 4.7714007704E-04 + 4.7291313092E-04 4.6872340648E-04 4.6457057855E-04 4.6045432480E-04 + 4.5637432566E-04 4.5233026433E-04 4.4832182676E-04 4.4434870155E-04 + 4.4041058010E-04 4.3650715646E-04 4.3263812730E-04 4.2880319192E-04 + 4.2500205224E-04 4.2123441272E-04 4.1749998042E-04 4.1379846491E-04 + 4.1012957829E-04 4.0649303515E-04 4.0288855254E-04 3.9931584997E-04 + 3.9577464939E-04 3.9226467508E-04 3.8878565382E-04 3.8533731473E-04 + 3.8191938928E-04 3.7853161123E-04 3.7517371669E-04 3.7184544402E-04 + 3.6854653388E-04 3.6527672916E-04 3.6203577498E-04 3.5882341867E-04 + 3.5563940976E-04 3.5248349995E-04 3.4935544308E-04 3.4625499513E-04 + 3.4318191417E-04 3.4013596046E-04 3.3711689629E-04 3.3412448599E-04 + 3.3115849598E-04 3.2821869466E-04 3.2530485248E-04 3.2241674187E-04 + 3.1955413722E-04 3.1671681489E-04 3.1390455320E-04 3.1111713237E-04 + 3.0835433454E-04 3.0561594375E-04 3.0290174583E-04 3.0021152863E-04 + 2.9754508175E-04 2.9490219665E-04 2.9228266658E-04 2.8968628659E-04 + 2.8711285352E-04 2.8456216597E-04 2.8203402430E-04 2.7952823060E-04 + 2.7704458867E-04 2.7458290404E-04 2.7214298392E-04 2.6972463718E-04 + 2.6732767438E-04 2.6495190767E-04 2.6259715093E-04 2.6026321963E-04 + 2.5794993082E-04 2.5565710315E-04 2.5338455687E-04 2.5113211376E-04 + 2.4889959718E-04 2.4668683201E-04 2.4449364468E-04 2.4231986309E-04 + 2.4016531669E-04 2.3802983637E-04 2.3591325453E-04 2.3381540498E-04 + 2.3173612300E-04 2.2967524537E-04 2.2763261022E-04 2.2560805713E-04 + 2.2360142706E-04 2.2161256236E-04 2.1964130674E-04 2.1768750530E-04 + 2.1575100448E-04 2.1383165204E-04 2.1192929710E-04 2.1004379008E-04 + 2.0817498270E-04 2.0632272798E-04 2.0448688020E-04 2.0266729493E-04 + 2.0086382904E-04 1.9907634061E-04 1.9730468897E-04 1.9554873466E-04 + 1.9380833947E-04 1.9208336636E-04 1.9037367952E-04 1.8867914429E-04 + 1.8699962723E-04 1.8533499603E-04 1.8368511955E-04 1.8204986779E-04 + 1.8042911190E-04 1.7882272412E-04 1.7723057782E-04 1.7565254753E-04 + 1.7408850882E-04 1.7253833838E-04 1.7100191396E-04 1.6947911438E-04 + 1.6796981953E-04 1.6647391033E-04 1.6499126876E-04 1.6352177783E-04 + 1.6206532156E-04 1.6062178501E-04 1.5919105422E-04 1.5777301623E-04 + 1.5636755909E-04 1.5497457176E-04 1.5359394428E-04 1.5222556759E-04 + 1.5086933361E-04 1.4952513518E-04 1.4819286609E-04 1.4687242108E-04 + 1.4556369576E-04 1.4426658672E-04 1.4298099140E-04 1.4170680816E-04 + 1.4044393626E-04 1.3919227583E-04 1.3795172788E-04 1.3672219429E-04 + 1.3550357777E-04 1.3429578190E-04 1.3309871114E-04 1.3191227077E-04 + 1.3073636688E-04 1.2957090641E-04 1.2841579709E-04 1.2727094748E-04 + 1.2613626693E-04 1.2501166558E-04 1.2389705438E-04 1.2279234503E-04 + 1.2169745004E-04 1.2061228265E-04 1.1953675690E-04 1.1847078755E-04 + 1.1741429010E-04 1.1636718083E-04 1.1532937676E-04 1.1430079560E-04 + 1.1328135581E-04 1.1227097657E-04 1.1126957773E-04 1.1027707989E-04 + 1.0929340433E-04 1.0831847301E-04 1.0735220858E-04 1.0639453438E-04 + 1.0544537441E-04 1.0450465336E-04 1.0357229655E-04 1.0264822998E-04 + 1.0173238026E-04 1.0082467471E-04 9.9925041247E-05 9.9033408443E-05 + 9.8149705485E-05 9.7273862184E-05 9.6405808968E-05 9.5545476877E-05 + 9.4692797558E-05 9.3847703258E-05 9.3010126820E-05 9.2180001678E-05 + 9.1357261851E-05 9.0541841938E-05 8.9733677116E-05 8.8932703128E-05 + 8.8138856266E-05 8.7352073407E-05 8.6572291992E-05 8.5799450000E-05 + 8.5033485954E-05 8.4274338919E-05 8.3521948498E-05 8.2776254823E-05 + 8.2037198555E-05 8.1304720876E-05 8.0578763487E-05 7.9859268602E-05 + 7.9146178943E-05 7.8439437738E-05 7.7738988714E-05 7.7044776093E-05 + 7.6356744583E-05 7.5674839369E-05 7.4999006159E-05 7.4329191117E-05 + 7.3665340881E-05 7.3007402560E-05 7.2355323727E-05 7.1709052419E-05 + 7.1068537131E-05 7.0433726811E-05 6.9804570858E-05 6.9181019115E-05 + 6.8563021871E-05 6.7950529849E-05 6.7343494211E-05 6.6741866545E-05 + 6.6145598870E-05 6.5554643603E-05 6.4968953621E-05 6.4388482206E-05 + 6.3813183049E-05 6.3243010245E-05 6.2677918298E-05 6.2117862111E-05 + 6.1562796987E-05 6.1012678622E-05 6.0467463103E-05 5.9927106905E-05 + 5.9391566887E-05 5.8860800288E-05 5.8334764727E-05 5.7813418195E-05 + 5.7296719054E-05 5.6784626032E-05 5.6277098201E-05 5.5774095042E-05 + 5.5275576370E-05 5.4781502354E-05 5.4291833515E-05 5.3806530724E-05 + 5.3325555197E-05 5.2848868491E-05 5.2376432504E-05 5.1908209473E-05 + 5.1444161964E-05 5.0984252877E-05 5.0528445438E-05 5.0076703201E-05 + 4.9628990039E-05 4.9185270146E-05 4.8745508027E-05 4.8309668490E-05 + 4.7877716690E-05 4.7449618072E-05 4.7025338384E-05 4.6604843679E-05 + 4.6188100308E-05 4.5775074923E-05 4.5365734467E-05 4.4960046179E-05 + 4.4557977584E-05 4.4159496498E-05 4.3764571019E-05 4.3373169528E-05 + 4.2985260687E-05 4.2600813433E-05 4.2219796980E-05 4.1842180812E-05 + 4.1467934665E-05 4.1097028583E-05 4.0729432855E-05 4.0365118035E-05 + 4.0004054935E-05 3.9646214625E-05 3.9291568434E-05 3.8940087943E-05 + 3.8591744984E-05 3.8246511640E-05 3.7904360240E-05 3.7565263359E-05 + 3.7229193814E-05 3.6896124663E-05 3.6566029203E-05 3.6238880967E-05 + 3.5914653722E-05 3.5593321455E-05 3.5274858404E-05 3.4959239035E-05 + 3.4646438034E-05 3.4336430310E-05 3.4029190996E-05 3.3724695443E-05 + 3.3422919225E-05 3.3123838127E-05 3.2827428152E-05 3.2533665515E-05 + 3.2242526642E-05 3.1953988167E-05 3.1668026932E-05 3.1384619984E-05 + 3.1103744575E-05 3.0825378155E-05 3.0549498375E-05 3.0276083072E-05 + 3.0005110309E-05 2.9736558329E-05 2.9470405566E-05 2.9206630646E-05 + 2.8945212387E-05 2.8686129791E-05 2.8429362048E-05 2.8174888534E-05 + 2.7922688806E-05 2.7672742603E-05 2.7425029844E-05 2.7179530626E-05 + 2.6936225222E-05 2.6695094082E-05 2.6456117827E-05 2.6219277251E-05 + 2.5984553312E-05 2.5751927141E-05 2.5521380050E-05 2.5292893506E-05 + 2.5066449140E-05 2.4842028749E-05 2.4619614289E-05 2.4399187876E-05 + 2.4180731787E-05 2.3964228455E-05 2.3749660468E-05 2.3537010571E-05 + 2.3326261660E-05 2.3117396785E-05 2.2910399145E-05 2.2705252088E-05 + 2.2501939111E-05 2.2300443857E-05 2.2100750107E-05 2.1902841793E-05 + 2.1706703000E-05 2.1512317943E-05 2.1319670981E-05 2.1128746609E-05 + 2.0939529463E-05 2.0752004312E-05 2.0566156063E-05 2.0381969756E-05 + 2.0199430565E-05 2.0018523793E-05 1.9839234877E-05 1.9661549382E-05 + 1.9485453001E-05 1.9310931554E-05 1.9137970988E-05 1.8966557375E-05 + 1.8796676904E-05 1.8628315891E-05 1.8461460783E-05 1.8296098142E-05 + 1.8132214649E-05 1.7969797101E-05 1.7808832415E-05 1.7649307623E-05 + 1.7491209873E-05 1.7334526428E-05 1.7179244662E-05 1.7025352063E-05 + 1.6872836231E-05 1.6721684874E-05 1.6571885812E-05 1.6423426971E-05 + 1.6276296385E-05 1.6130482197E-05 1.5985972651E-05 1.5842756087E-05 + 1.5700820972E-05 1.5560155863E-05 1.5420749421E-05 1.5282590406E-05 + 1.5145667678E-05 1.5009970198E-05 1.4875487023E-05 1.4742207308E-05 + 1.4610120306E-05 1.4479215365E-05 1.4349481926E-05 1.4220909525E-05 + 1.4093487794E-05 1.3967206453E-05 1.3842055316E-05 1.3718024287E-05 + 1.3595103359E-05 1.3473282613E-05 1.3352552216E-05 1.3232902435E-05 + 1.3114323615E-05 1.2996806190E-05 1.2880340675E-05 1.2764917673E-05 + 1.2650527870E-05 1.2537162033E-05 1.2424811014E-05 1.2313465743E-05 + 1.2203117235E-05 1.2093756582E-05 1.1985374956E-05 1.1877963609E-05 + 1.1771513869E-05 1.1666017143E-05 1.1561464913E-05 1.1457848738E-05 + 1.1355160245E-05 1.1253391145E-05 1.1152533225E-05 1.1052578341E-05 + 1.0953518420E-05 1.0855345464E-05 1.0758051544E-05 1.0661628802E-05 + 1.0566069452E-05 1.0471365773E-05 1.0377510118E-05 1.0284494905E-05 + 1.0192312620E-05 1.0100955817E-05 1.0010417115E-05 9.9206892000E-06 + 9.8317648228E-06 9.7436367986E-06 9.6562980071E-06 9.5697413863E-06 + 9.4839599420E-06 9.3989467476E-06 9.3146949336E-06 9.2311976914E-06 + 9.1484482734E-06 9.0664399920E-06 8.9851662195E-06 8.9046203871E-06 + 8.8247959846E-06 8.7456865599E-06 8.6672857186E-06 8.5895871232E-06 + 8.5125844927E-06 8.4362716021E-06 8.3606422822E-06 8.2856904186E-06 + 8.2114099514E-06 8.1377948751E-06 8.0648392355E-06 7.9925371286E-06 + 7.9208827152E-06 7.8498702013E-06 7.7794938445E-06 7.7097479538E-06 + 7.6406268889E-06 7.5721250600E-06 7.5042369270E-06 7.4369569993E-06 + 7.3702798354E-06 7.3042000422E-06 7.2387122749E-06 7.1738112362E-06 + 7.1094916764E-06 7.0457483924E-06 6.9825762276E-06 6.9199700715E-06 + 6.8579248591E-06 6.7964355709E-06 6.7354972262E-06 6.6751048980E-06 + 6.6152537024E-06 6.5559387967E-06 6.4971553815E-06 6.4388987003E-06 + 6.3811640391E-06 6.3239467259E-06 6.2672421305E-06 6.2110456639E-06 + 6.1553527783E-06 6.1001589664E-06 6.0454597612E-06 5.9912507354E-06 + 5.9375275015E-06 5.8842857112E-06 5.8315210547E-06 5.7792292610E-06 + 5.7274060972E-06 5.6760473682E-06 5.6251489095E-06 5.5747066072E-06 + 5.5247163781E-06 5.4751741751E-06 5.4260759874E-06 5.3774178399E-06 + 5.3291957930E-06 5.2814059424E-06 5.2340444187E-06 5.1871073869E-06 + 5.1405910464E-06 5.0944916307E-06 5.0488054065E-06 5.0035286744E-06 + 4.9586577678E-06 4.9141890527E-06 4.8701189279E-06 4.8264438241E-06 + 4.7831602042E-06 4.7402645624E-06 4.6977534181E-06 4.6556233344E-06 + 4.6138708989E-06 4.5724927299E-06 4.5314854757E-06 4.4908458146E-06 + 4.4505704547E-06 4.4106561334E-06 4.3710996173E-06 4.3318977020E-06 + 4.2930472116E-06 4.2545449986E-06 4.2163879439E-06 4.1785729558E-06 + 4.1410969708E-06 4.1039569523E-06 4.0671498911E-06 4.0306728049E-06 + 3.9945227380E-06 3.9586967611E-06 3.9231919669E-06 3.8880054813E-06 + 3.8531344543E-06 3.8185760604E-06 3.7843274989E-06 3.7503859944E-06 + 3.7167487964E-06 3.6834131787E-06 3.6503764398E-06 3.6176359023E-06 + 3.5851889124E-06 3.5530328405E-06 3.5211650803E-06 3.4895830488E-06 + 3.4582841862E-06 3.4272659553E-06 3.3965258421E-06 3.3660613546E-06 + 3.3358700234E-06 3.3059494011E-06 3.2762970605E-06 3.2469105959E-06 + 3.2177876286E-06 3.1889257976E-06 3.1603227633E-06 3.1319762067E-06 + 3.1038838298E-06 3.0760433549E-06 3.0484525250E-06 3.0211091031E-06 + 2.9940108722E-06 2.9671556352E-06 2.9405412146E-06 2.9141654525E-06 + 2.8880262101E-06 2.8621213679E-06 2.8364488254E-06 2.8110065007E-06 + 2.7857923308E-06 2.7608042709E-06 2.7360402946E-06 2.7114983910E-06 + 2.6871765706E-06 2.6630728630E-06 2.6391853133E-06 2.6155119845E-06 + 2.5920509565E-06 2.5688003266E-06 2.5457582092E-06 2.5229227355E-06 + 2.5002920533E-06 2.4778643272E-06 2.4556377381E-06 2.4336104832E-06 + 2.4117807758E-06 2.3901468453E-06 2.3687069368E-06 2.3474593113E-06 + 2.3264022451E-06 2.3055340302E-06 2.2848529737E-06 2.2643573980E-06 + 2.2440456379E-06 2.2239160466E-06 2.2039669927E-06 2.1841968579E-06 + 2.1646040384E-06 2.1451869447E-06 2.1259440015E-06 2.1068736478E-06 + 2.0879743363E-06 2.0692445338E-06 2.0506827206E-06 2.0322873908E-06 + 2.0140570519E-06 1.9959902248E-06 1.9780854436E-06 1.9603412555E-06 + 1.9427562207E-06 1.9253289125E-06 1.9080579166E-06 1.8909418318E-06 + 1.8739792691E-06 1.8571688505E-06 1.8405092114E-06 1.8239990021E-06 + 1.8076368828E-06 1.7914215259E-06 1.7753516154E-06 1.7594258473E-06 + 1.7436429293E-06 1.7280015806E-06 1.7125005318E-06 1.6971385251E-06 + 1.6819143136E-06 1.6668266619E-06 1.6518743456E-06 1.6370561511E-06 + 1.6223708758E-06 1.6078173278E-06 1.5933943261E-06 1.5791006999E-06 + 1.5649352892E-06 1.5508969443E-06 1.5369845257E-06 1.5231969011E-06 + 1.5095329545E-06 1.4959915769E-06 1.4825716692E-06 1.4692721423E-06 + 1.4560919166E-06 1.4430299223E-06 1.4300850993E-06 1.4172563967E-06 + 1.4045427732E-06 1.3919431970E-06 1.3794566452E-06 1.3670821042E-06 + 1.3548185697E-06 1.3426650459E-06 1.3306205465E-06 1.3186840936E-06 + 1.3068547182E-06 1.2951314602E-06 1.2835133676E-06 1.2719994975E-06 + 1.2605889143E-06 1.2492806903E-06 1.2380739097E-06 1.2269676625E-06 + 1.2159610474E-06 1.2050531706E-06 1.1942431466E-06 1.1835300980E-06 + 1.1729131549E-06 1.1623914553E-06 1.1519641452E-06 1.1416303779E-06 + 1.1313893144E-06 1.1212401233E-06 1.1111819806E-06 1.1012140696E-06 + 1.0913355811E-06 1.0815457130E-06 1.0718436704E-06 1.0622286655E-06 + 1.0526999178E-06 1.0432566535E-06 1.0338981051E-06 1.0246235118E-06 + 1.0154321221E-06 1.0063231899E-06 9.9729597554E-07 9.8834974609E-07 + 9.7948377514E-07 9.7069734280E-07 9.6198973566E-07 9.5336024666E-07 + 9.4480817511E-07 9.3633282659E-07 9.2793351289E-07 9.1960955200E-07 + 9.1136026799E-07 9.0318499101E-07 8.9508305720E-07 8.8705380865E-07 + 8.7909659335E-07 8.7121076515E-07 8.6339568366E-07 8.5565071425E-07 + + + diff --git a/examples/dpgen-example/autotest/Al_gga_10au_100Ry_3s3p2d.orb b/examples/dpgen-example/autotest/Al_gga_10au_100Ry_3s3p2d.orb new file mode 100644 index 0000000000..4b9cdf4b9d --- /dev/null +++ b/examples/dpgen-example/autotest/Al_gga_10au_100Ry_3s3p2d.orb @@ -0,0 +1,2037 @@ +--------------------------------------------------------------------------- +Element Al +Energy Cutoff(Ry) 100 +Radius Cutoff(a.u.) 10 +Lmax 2 +Number of Sorbital--> 3 +Number of Porbital--> 3 +Number of Dorbital--> 2 +--------------------------------------------------------------------------- +SUMMARY END + +Mesh 1001 +dr 0.01 + Type L N + 0 0 0 + 1.383406212538e-01 1.383647381527e-01 1.384370806818e-01 1.385576243280e-01 + 1.387263282034e-01 1.389431349952e-01 1.392079708978e-01 1.395207455258e-01 + 1.398813518098e-01 1.402896658763e-01 1.407455469117e-01 1.412488370138e-01 + 1.417993610304e-01 1.423969263885e-01 1.430413229148e-01 1.437323226496e-01 + 1.444696796574e-01 1.452531298344e-01 1.460823907174e-01 1.469571612939e-01 + 1.478771218186e-01 1.488419336358e-01 1.498512390119e-01 1.509046609801e-01 + 1.520018031986e-01 1.531422498253e-01 1.543255654111e-01 1.555512948135e-01 + 1.568189631330e-01 1.581280756726e-01 1.594781179244e-01 1.608685555825e-01 + 1.622988345850e-01 1.637683811856e-01 1.652766020555e-01 1.668228844178e-01 + 1.684065962124e-01 1.700270862949e-01 1.716836846666e-01 1.733757027378e-01 + 1.751024336232e-01 1.768631524688e-01 1.786571168099e-01 1.804835669597e-01 + 1.823417264265e-01 1.842308023592e-01 1.861499860191e-01 1.880984532772e-01 + 1.900753651338e-01 1.920798682608e-01 1.941110955624e-01 1.961681667537e-01 + 1.982501889547e-01 2.003562572976e-01 2.024854555442e-01 2.046368567125e-01 + 2.068095237098e-01 2.090025099689e-01 2.112148600870e-01 2.134456104632e-01 + 2.156937899343e-01 2.179584204050e-01 2.202385174715e-01 2.225330910369e-01 + 2.248411459154e-01 2.271616824253e-01 2.294936969677e-01 2.318361825906e-01 + 2.341881295369e-01 2.365485257755e-01 2.389163575146e-01 2.412906096961e-01 + 2.436702664717e-01 2.460543116598e-01 2.484417291833e-01 2.508315034881e-01 + 2.532226199441e-01 2.556140652272e-01 2.580048276846e-01 2.603938976836e-01 + 2.627802679458e-01 2.651629338662e-01 2.675408938210e-01 2.699131494631e-01 + 2.722787060096e-01 2.746365725200e-01 2.769857621701e-01 2.793252925205e-01 + 2.816541857844e-01 2.839714690940e-01 2.862761747701e-01 2.885673405943e-01 + 2.908440100885e-01 2.931052328008e-01 2.953500646015e-01 2.975775679913e-01 + 2.997868124211e-01 3.019768746274e-01 3.041468389838e-01 3.062957978695e-01 + 3.084228520560e-01 3.105271111143e-01 3.126076938411e-01 3.146637287069e-01 + 3.166943543243e-01 3.186987199387e-01 3.206759859394e-01 3.226253243922e-01 + 3.245459195930e-01 3.264369686405e-01 3.282976820284e-01 3.301272842553e-01 + 3.319250144510e-01 3.336901270181e-01 3.354218922862e-01 3.371195971781e-01 + 3.387825458840e-01 3.404100605437e-01 3.420014819326e-01 3.435561701495e-01 + 3.450735053035e-01 3.465528881973e-01 3.479937410042e-01 3.493955079350e-01 + 3.507576558925e-01 3.520796751111e-01 3.533610797766e-01 3.546014086257e-01 + 3.558002255195e-01 3.569571199909e-01 3.580717077600e-01 3.591436312180e-01 + 3.601725598736e-01 3.611581907621e-01 3.621002488134e-01 3.629984871768e-01 + 3.638526875010e-01 3.646626601672e-01 3.654282444735e-01 3.661493087696e-01 + 3.668257505398e-01 3.674574964347e-01 3.680445022492e-01 3.685867528480e-01 + 3.690842620366e-01 3.695370723799e-01 3.699452549665e-01 3.703089091214e-01 + 3.706281620657e-01 3.709031685260e-01 3.711341102946e-01 3.713211957406e-01 + 3.714646592752e-01 3.715647607728e-01 3.716217849487e-01 3.716360406981e-01 + 3.716078603961e-01 3.715375991637e-01 3.714256341011e-01 3.712723634916e-01 + 3.710782059793e-01 3.708435997236e-01 3.705690015324e-01 3.702548859795e-01 + 3.699017445075e-01 3.695100845194e-01 3.690804284639e-01 3.686133129146e-01 + 3.681092876493e-01 3.675689147299e-01 3.669927675875e-01 3.663814301142e-01 + 3.657354957658e-01 3.650555666766e-01 3.643422527890e-01 3.635961710017e-01 + 3.628179443355e-01 3.620082011225e-01 3.611675742169e-01 3.602967002315e-01 + 3.593962187998e-01 3.584667718656e-01 3.575090030008e-01 3.565235567524e-01 + 3.555110780190e-01 3.544722114570e-01 3.534076009179e-01 3.523178889149e-01 + 3.512037161203e-01 3.500657208921e-01 3.489045388300e-01 3.477208023607e-01 + 3.465151403495e-01 3.452881777406e-01 3.440405352216e-01 3.427728289143e-01 + 3.414856700873e-01 3.401796648927e-01 3.388554141218e-01 3.375135129816e-01 + 3.361545508887e-01 3.347791112796e-01 3.333877714363e-01 3.319811023257e-01 + 3.305596684505e-01 3.291240277118e-01 3.276747312799e-01 3.262123234748e-01 + 3.247373416518e-01 3.232503160948e-01 3.217517699124e-01 3.202422189390e-01 + 3.187221716389e-01 3.171921290113e-01 3.156525844982e-01 3.141040238927e-01 + 3.125469252475e-01 3.109817587845e-01 3.094089868042e-01 3.078290635949e-01 + 3.062424353426e-01 3.046495400407e-01 3.030508074008e-01 3.014466587644e-01 + 2.998375070155e-01 2.982237564960e-01 2.966058029233e-01 2.949840333116e-01 + 2.933588258966e-01 2.917305500660e-01 2.900995662953e-01 2.884662260900e-01 + 2.868308719358e-01 2.851938372571e-01 2.835554463841e-01 2.819160145311e-01 + 2.802758477849e-01 2.786352431052e-01 2.769944883380e-01 2.753538622410e-01 + 2.737136345239e-01 2.720740659026e-01 2.704354081678e-01 2.687979042693e-01 + 2.671617884151e-01 2.655272861865e-01 2.638946146683e-01 2.622639825948e-01 + 2.606355905111e-01 2.590096309488e-01 2.573862886174e-01 2.557657406086e-01 + 2.541481566150e-01 2.525336991607e-01 2.509225238442e-01 2.493147795923e-01 + 2.477106089233e-01 2.461101482195e-01 2.445135280070e-01 2.429208732417e-01 + 2.413323036005e-01 2.397479337752e-01 2.381678737702e-01 2.365922291987e-01 + 2.350211015798e-01 2.334545886327e-01 2.318927845668e-01 2.303357803670e-01 + 2.287836640720e-01 2.272365210450e-01 2.256944342340e-01 2.241574844227e-01 + 2.226257504680e-01 2.210993095256e-01 2.195782372604e-01 2.180626080426e-01 + 2.165524951272e-01 2.150479708168e-01 2.135491066075e-01 2.120559733163e-01 + 2.105686411902e-01 2.090871799975e-01 2.076116590990e-01 2.061421475023e-01 + 2.046787138958e-01 2.032214266655e-01 2.017703538937e-01 2.003255633400e-01 + 1.988871224059e-01 1.974550980830e-01 1.960295568869e-01 1.946105647758e-01 + 1.931981870570e-01 1.917924882813e-01 1.903935321262e-01 1.890013812700e-01 + 1.876160972584e-01 1.862377403638e-01 1.848663694396e-01 1.835020417711e-01 + 1.821448129241e-01 1.807947365923e-01 1.794518644463e-01 1.781162459846e-01 + 1.767879283875e-01 1.754669563773e-01 1.741533720840e-01 1.728472149191e-01 + 1.715485214581e-01 1.702573253329e-01 1.689736571356e-01 1.676975443338e-01 + 1.664290111992e-01 1.651680787489e-01 1.639147647018e-01 1.626690834490e-01 + 1.614310460388e-01 1.602006601780e-01 1.589779302471e-01 1.577628573322e-01 + 1.565554392708e-01 1.553556707132e-01 1.541635431985e-01 1.529790452439e-01 + 1.518021624483e-01 1.506328776080e-01 1.494711708443e-01 1.483170197424e-01 + 1.471703995001e-01 1.460312830858e-01 1.448996414034e-01 1.437754434650e-01 + 1.426586565682e-01 1.415492464779e-01 1.404471776109e-01 1.393524132219e-01 + 1.382649155902e-01 1.371846462045e-01 1.361115659464e-01 1.350456352696e-01 + 1.339868143743e-01 1.329350633763e-01 1.318903424678e-01 1.308526120713e-01 + 1.298218329837e-01 1.287979665103e-01 1.277809745884e-01 1.267708198990e-01 + 1.257674659665e-01 1.247708772458e-01 1.237810191962e-01 1.227978583418e-01 + 1.218213623187e-01 1.208514999083e-01 1.198882410572e-01 1.189315568834e-01 + 1.179814196697e-01 1.170378028440e-01 1.161006809469e-01 1.151700295886e-01 + 1.142458253936e-01 1.133280459352e-01 1.124166696609e-01 1.115116758087e-01 + 1.106130443153e-01 1.097207557187e-01 1.088347910535e-01 1.079551317432e-01 + 1.070817594875e-01 1.062146561487e-01 1.053538036352e-01 1.044991837865e-01 + 1.036507782584e-01 1.028085684100e-01 1.019725351948e-01 1.011426590551e-01 + 1.003189198224e-01 9.950129662338e-02 9.868976779293e-02 9.788431079539e-02 + 9.708490215378e-02 9.629151738846e-02 9.550413096536e-02 9.472271625446e-02 + 9.394724549858e-02 9.317768979314e-02 9.241401907664e-02 9.165620213228e-02 + 9.090420660038e-02 9.015799900171e-02 8.941754477131e-02 8.868280830256e-02 + 8.795375300107e-02 8.723034134786e-02 8.651253497120e-02 8.580029472656e-02 + 8.509358078379e-02 8.439235272077e-02 8.369656962276e-02 8.300619018634e-02 + 8.232117282719e-02 8.164147579063e-02 8.096705726386e-02 8.029787548902e-02 + 7.963388887584e-02 7.897505611308e-02 7.832133627755e-02 7.767268893984e-02 + 7.702907426571e-02 7.639045311231e-02 7.575678711824e-02 7.512803878670e-02 + 7.450417156096e-02 7.388514989140e-02 7.327093929356e-02 7.266150639659e-02 + 7.205681898168e-02 7.145684601013e-02 7.086155764064e-02 7.027092523581e-02 + 6.968492135759e-02 6.910351975182e-02 6.852669532182e-02 6.795442409135e-02 + 6.738668315711e-02 6.682345063123e-02 6.626470557421e-02 6.571042791880e-02 + 6.516059838547e-02 6.461519839027e-02 6.407420994563e-02 6.353761555517e-02 + 6.300539810326e-02 6.247754074028e-02 6.195402676463e-02 6.143483950235e-02 + 6.091996218555e-02 6.040937783061e-02 5.990306911712e-02 5.940101826875e-02 + 5.890320693703e-02 5.840961608900e-02 5.792022589977e-02 5.743501565098e-02 + 5.695396363593e-02 5.647704707241e-02 5.600424202387e-02 5.553552332972e-02 + 5.507086454547e-02 5.461023789316e-02 5.415361422273e-02 5.370096298455e-02 + 5.325225221369e-02 5.280744852588e-02 5.236651712544e-02 5.192942182529e-02 + 5.149612507877e-02 5.106658802333e-02 5.064077053568e-02 5.021863129815e-02 + 4.980012787584e-02 4.938521680391e-02 4.897385368466e-02 4.856599329338e-02 + 4.816158969257e-02 4.776059635345e-02 4.736296628403e-02 4.696865216273e-02 + 4.657760647667e-02 4.618978166348e-02 4.580513025568e-02 4.542360502661e-02 + 4.504515913670e-02 4.466974627905e-02 4.429732082336e-02 4.392783795693e-02 + 4.356125382182e-02 4.319752564720e-02 4.283661187574e-02 4.247847228323e-02 + 4.212306809053e-02 4.177036206700e-02 4.142031862463e-02 4.107290390222e-02 + 4.072808583899e-02 4.038583423705e-02 4.004612081227e-02 3.970891923328e-02 + 3.937420514821e-02 3.904195619907e-02 3.871215202360e-02 3.838477424469e-02 + 3.805980644745e-02 3.773723414398e-02 3.741704472638e-02 3.709922740812e-02 + 3.678377315435e-02 3.647067460171e-02 3.615992596809e-02 3.585152295331e-02 + 3.554546263108e-02 3.524174333345e-02 3.494036452830e-02 3.464132669097e-02 + 3.434463117083e-02 3.405028005393e-02 3.375827602261e-02 3.346862221308e-02 + 3.318132207213e-02 3.289637921384e-02 3.261379727741e-02 3.233357978709e-02 + 3.205573001515e-02 3.178025084891e-02 3.150714466271e-02 3.123641319565e-02 + 3.096805743603e-02 3.070207751306e-02 3.043847259679e-02 3.017724080668e-02 + 2.991837912945e-02 2.966188334678e-02 2.940774797306e-02 2.915596620373e-02 + 2.890652987437e-02 2.865942943066e-02 2.841465390934e-02 2.817219093014e-02 + 2.793202669861e-02 2.769414601969e-02 2.745853232161e-02 2.722516769012e-02 + 2.699403291229e-02 2.676510752957e-02 2.653836989971e-02 2.631379726656e-02 + 2.609136583756e-02 2.587105086781e-02 2.565282675023e-02 2.543666711095e-02 + 2.522254490904e-02 2.501043253984e-02 2.480030194105e-02 2.459212470054e-02 + 2.438587216526e-02 2.418151555021e-02 2.397902604660e-02 2.377837492855e-02 + 2.357953365733e-02 2.338247398237e-02 2.318716803848e-02 2.299358843836e-02 + 2.280170835981e-02 2.261150162714e-02 2.242294278605e-02 2.223600717171e-02 + 2.205067096935e-02 2.186691126727e-02 2.168470610182e-02 2.150403449410e-02 + 2.132487647837e-02 2.114721312204e-02 2.097102653707e-02 2.079629988317e-02 + 2.062301736254e-02 2.045116420672e-02 2.028072665556e-02 2.011169192868e-02 + 1.994404818990e-02 1.977778450501e-02 1.961289079332e-02 1.944935777361e-02 + 1.928717690501e-02 1.912634032338e-02 1.896684077395e-02 1.880867154070e-02 + 1.865182637332e-02 1.849629941238e-02 1.834208511337e-02 1.818917817037e-02 + 1.803757344000e-02 1.788726586638e-02 1.773825040768e-02 1.759052196500e-02 + 1.744407531409e-02 1.729890504063e-02 1.715500547942e-02 1.701237065813e-02 + 1.687099424611e-02 1.673086950841e-02 1.659198926568e-02 1.645434586003e-02 + 1.631793112716e-02 1.618273637504e-02 1.604875236901e-02 1.591596932373e-02 + 1.578437690162e-02 1.565396421799e-02 1.552471985265e-02 1.539663186783e-02 + 1.526968783219e-02 1.514387485069e-02 1.501917959989e-02 1.489558836845e-02 + 1.477308710223e-02 1.465166145379e-02 1.453129683548e-02 1.441197847588e-02 + 1.429369147892e-02 1.417642088505e-02 1.406015173404e-02 1.394486912870e-02 + 1.383055829889e-02 1.371720466536e-02 1.360479390270e-02 1.349331200086e-02 + 1.338274532469e-02 1.327308067089e-02 1.316430532194e-02 1.305640709640e-02 + 1.294937439523e-02 1.284319624361e-02 1.273786232792e-02 1.263336302753e-02 + 1.252968944114e-02 1.242683340729e-02 1.232478751905e-02 1.222354513254e-02 + 1.212310036933e-02 1.202344811256e-02 1.192458399696e-02 1.182650439263e-02 + 1.172920638286e-02 1.163268773611e-02 1.153694687230e-02 1.144198282380e-02 + 1.134779519138e-02 1.125438409537e-02 1.116175012266e-02 1.106989426968e-02 + 1.097881788210e-02 1.088852259150e-02 1.079901024972e-02 1.071028286129e-02 + 1.062234251449e-02 1.053519131177e-02 1.044883129981e-02 1.036326440007e-02 + 1.027849234016e-02 1.019451658680e-02 1.011133828067e-02 1.002895817392e-02 + 9.947376570648e-03 9.866593270938e-03 9.786607518876e-03 9.707417954936e-03 + 9.629022573157e-03 9.551418683418e-03 9.474602879144e-03 9.398571010672e-03 + 9.323318164503e-03 9.248838648606e-03 9.175125983887e-03 9.102172901882e-03 + 9.029971348713e-03 8.958512495253e-03 8.887786753443e-03 8.817783798613e-03 + 8.748492597651e-03 8.679901442790e-03 8.611997990758e-03 8.544769306983e-03 + 8.478201914523e-03 8.412281847330e-03 8.346994707459e-03 8.282325725771e-03 + 8.218259825675e-03 8.154781689427e-03 8.091875826491e-03 8.029526643434e-03 + 7.967718514849e-03 7.906435854774e-03 7.845663188071e-03 7.785385221250e-03 + 7.725586912215e-03 7.666253538428e-03 7.607370762996e-03 7.548924698210e-03 + 7.490901966087e-03 7.433289755492e-03 7.376075875432e-03 7.319248804174e-03 + 7.262797733848e-03 7.206712610234e-03 7.150984167497e-03 7.095603957626e-03 + 7.040564374433e-03 6.985858671952e-03 6.931480977164e-03 6.877426297001e-03 + 6.823690519616e-03 6.770270409966e-03 6.717163599783e-03 6.664368572064e-03 + 6.611884640223e-03 6.559711922125e-03 6.507851309219e-03 6.456304431047e-03 + 6.405073615424e-03 6.354161844616e-03 6.303572707878e-03 6.253310350709e-03 + 6.203379421233e-03 6.153785014124e-03 6.104532612470e-03 6.055628028038e-03 + 6.007077340370e-03 5.958886835135e-03 5.911062942209e-03 5.863612173879e-03 + 5.816541063639e-03 5.769856105963e-03 5.723563697471e-03 5.677670079881e-03 + 5.632181285096e-03 5.587103082786e-03 5.542440930773e-03 5.498199928525e-03 + 5.454384774008e-03 5.410999724143e-03 5.368048559072e-03 5.325534550392e-03 + 5.283460433510e-03 5.241828384217e-03 5.200639999548e-03 5.159896282976e-03 + 5.119597633932e-03 5.079743841633e-03 5.040334083150e-03 5.001366925629e-03 + 4.962840332544e-03 4.924751673828e-03 4.887097739714e-03 4.849874758094e-03 + 4.813078415148e-03 4.776703879044e-03 4.740745826408e-03 4.705198471330e-03 + 4.670055596588e-03 4.635310586823e-03 4.600956463342e-03 4.566985920257e-03 + 4.533391361644e-03 4.500164939419e-03 4.467298591622e-03 4.434784080820e-03 + 4.402613032330e-03 4.370776971982e-03 4.339267363169e-03 4.308075642911e-03 + 4.277193256707e-03 4.246611691967e-03 4.216322509801e-03 4.186317375001e-03 + 4.156588084064e-03 4.127126591107e-03 4.097925031565e-03 4.068975743595e-03 + 4.040271287105e-03 4.011804460373e-03 3.983568314239e-03 3.955556163867e-03 + 3.927761598109e-03 3.900178486511e-03 3.872800984035e-03 3.845623533570e-03 + 3.818640866354e-03 3.791848000401e-03 3.765240237091e-03 3.738813156044e-03 + 3.712562608460e-03 3.686484709067e-03 3.660575826867e-03 3.634832574844e-03 + 3.609251798828e-03 3.583830565690e-03 3.558566151043e-03 3.533456026644e-03 + 3.508497847657e-03 3.483689439957e-03 3.459028787621e-03 3.434514020777e-03 + 3.410143403931e-03 3.385915324922e-03 3.361828284597e-03 3.337880887333e-03 + 3.314071832472e-03 3.290399906750e-03 3.266863977776e-03 3.243462988589e-03 + 3.220195953335e-03 3.197061954045e-03 3.174060138522e-03 3.151189719304e-03 + 3.128449973658e-03 3.105840244549e-03 3.083359942526e-03 3.061008548416e-03 + 3.038785616757e-03 3.016690779849e-03 2.994723752310e-03 2.972884336024e-03 + 2.951172425337e-03 2.929588012383e-03 2.908131192389e-03 2.886802168834e-03 + 2.865601258319e-03 2.844528895011e-03 2.823585634529e-03 2.802772157151e-03 + 2.782089270215e-03 2.761537909604e-03 2.741119140213e-03 2.720834155311e-03 + 2.700684274708e-03 2.680670941668e-03 2.660795718520e-03 2.641060280915e-03 + 2.621466410720e-03 2.602015987543e-03 2.582710978887e-03 2.563553428973e-03 + 2.544545446269e-03 2.525689189789e-03 2.506986854230e-03 2.488440654044e-03 + 2.470052806557e-03 2.451825514239e-03 2.433760946275e-03 2.415861219568e-03 + 2.398128379346e-03 2.380564379522e-03 2.363171062994e-03 2.345950142049e-03 + 2.328903179076e-03 2.312031567758e-03 2.295336514942e-03 2.278819023364e-03 + 2.262479875430e-03 2.246319618225e-03 2.230338549920e-03 2.214536707758e-03 + 2.198913857771e-03 2.183469486367e-03 2.168202793933e-03 2.153112690563e-03 + 2.138197794025e-03 2.123456430041e-03 2.108886634955e-03 2.094486160834e-03 + 2.080252483037e-03 2.066182810244e-03 2.052274096950e-03 2.038523058368e-03 + 2.024926187694e-03 2.011479775653e-03 1.998179932213e-03 1.985022610356e-03 + 1.972003631748e-03 1.959118714151e-03 1.946363500386e-03 1.933733588645e-03 + 1.921224563934e-03 1.908832030402e-03 1.896551644322e-03 1.884379147435e-03 + 1.872310400421e-03 1.860341416170e-03 1.848468392610e-03 1.836687744768e-03 + 1.824996135780e-03 1.813390506560e-03 1.801868103832e-03 1.790426506238e-03 + 1.779063648242e-03 1.767777841564e-03 1.756567793884e-03 1.745432624564e-03 + 1.734371877180e-03 1.723385528625e-03 1.712473994626e-03 1.701638131478e-03 + 1.690879233876e-03 1.680199028706e-03 1.669599664721e-03 1.659083698025e-03 + 1.648654073340e-03 1.638314101044e-03 1.628067430012e-03 1.617918016318e-03 + 1.607870087871e-03 1.597928105134e-03 1.588096718040e-03 1.578380719319e-03 + 1.568784994424e-03 1.559314468308e-03 1.549974049316e-03 1.540768570485e-03 + 1.531702728578e-03 1.522781021184e-03 1.514007682261e-03 1.505386616499e-03 + 1.496921332909e-03 1.488614878045e-03 1.480469769303e-03 1.472487928728e-03 + 1.464670617769e-03 1.457018373445e-03 1.449530946369e-03 1.442207241079e-03 + 1.435045259123e-03 1.428042045342e-03 1.421193637774e-03 1.414495021604e-03 + 1.407940087554e-03 1.401521595092e-03 1.395231140837e-03 1.389059132475e-03 + 1.382994768518e-03 1.377026024172e-03 1.371139643577e-03 1.365321138627e-03 + 1.359554794571e-03 1.353823682514e-03 1.348109678960e-03 1.342393492440e-03 + 1.336654697259e-03 1.330871774348e-03 1.325022159140e-03 1.319082296369e-03 + 1.313027701577e-03 1.306833029107e-03 1.300472146200e-03 1.293918212757e-03 + 1.287143766118e-03 1.280120810041e-03 1.272820906738e-03 1.265215270439e-03 + 1.257274860413e-03 1.248970470618e-03 1.240272812198e-03 1.231152583749e-03 + 1.221580522714e-03 1.211527429251e-03 1.200964151654e-03 1.189861519764e-03 + 1.178190210099e-03 1.165920523804e-03 1.153022056512e-03 1.139463238270e-03 + 1.125210722803e-03 1.110228609345e-03 1.094477488346e-03 1.077913315652e-03 + 1.060486139324e-03 1.042138729920e-03 1.022805198891e-03 1.002409730011e-03 + 9.808655934559e-04 9.580746577355e-04 9.339276559635e-04 9.083054930012e-04 + 8.810818906978e-04 8.521276508047e-04 8.213167606178e-04 7.885344681306e-04 + 7.536873078532e-04 7.167148668778e-04 6.776028510417e-04 6.363967583924e-04 + 5.932152143537e-04 5.482617993954e-04 5.018340393513e-04 4.543281653928e-04 + 4.062383159756e-04 3.581490689228e-04 3.107205664493e-04 2.646660196364e-04 + 2.207220215603e-04 1.796128096652e-04 1.420103306142e-04 1.084925962621e-04 + 7.950329666691e-05 5.531588219905e-05 3.600528727889e-05 2.143011635228e-05 + 1.122745593328e-05 4.821559074216e-06 1.446548741934e-06 1.821092371897e-07 + 0.000000000000e+00 + Type L N + 0 0 1 + 3.168390094610e-01 3.167904361342e-01 3.166447407743e-01 3.164019971979e-01 + 3.160623282854e-01 3.156259057597e-01 3.150929498796e-01 3.144637290475e-01 + 3.137385593351e-01 3.129178039289e-01 3.120018724994e-01 3.109912204968e-01 + 3.098863483771e-01 3.086878007640e-01 3.073961655496e-01 3.060120729401e-01 + 3.045361944512e-01 3.029692418583e-01 3.013119661074e-01 2.995651561924e-01 + 2.977296380047e-01 2.958062731605e-01 2.937959578120e-01 2.916996214486e-01 + 2.895182256930e-01 2.872527630990e-01 2.849042559553e-01 2.824737551022e-01 + 2.799623387638e-01 2.773711114034e-01 2.747012026048e-01 2.719537659835e-01 + 2.691299781329e-01 2.662310376086e-01 2.632581639527e-01 2.602125967620e-01 + 2.570955948025e-01 2.539084351705e-01 2.506524125031e-01 2.473288382383e-01 + 2.439390399249e-01 2.404843605831e-01 2.369661581136e-01 2.333858047568e-01 + 2.297446865980e-01 2.260442031187e-01 2.222857667918e-01 2.184708027167e-01 + 2.146007482934e-01 2.106770529314e-01 2.067011777901e-01 2.026745955468e-01 + 1.985987901898e-01 1.944752568303e-01 1.903055015313e-01 1.860910411471e-01 + 1.818334031713e-01 1.775341255861e-01 1.731947567120e-01 1.688168550502e-01 + 1.644019891160e-01 1.599517372579e-01 1.554676874588e-01 1.509514371151e-01 + 1.464045927915e-01 1.418287699462e-01 1.372255926255e-01 1.325966931238e-01 + 1.279437116070e-01 1.232682956973e-01 1.185721000180e-01 1.138567856964e-01 + 1.091240198241e-01 1.043754748741e-01 9.961282807524e-02 9.483776074228e-02 + 9.005195756469e-02 8.525710585299e-02 8.045489474516e-02 7.564701437432e-02 + 7.083515499975e-02 6.602100610357e-02 6.120625545566e-02 5.639258814974e-02 + 5.158168561360e-02 4.677522459695e-02 4.197487614032e-02 3.718230452875e-02 + 3.239916623397e-02 2.762710884916e-02 2.286777002003e-02 1.812277637641e-02 + 1.339374246825e-02 8.682269710059e-03 3.989945337558e-03 -6.816586194501e-04 + -5.330986344481e-03 -9.956499218430e-03 -1.455667677695e-02 -1.913001763804e-02 + -2.367504039683e-02 -2.819028448505e-02 -3.267431099258e-02 -3.712570344913e-02 + -4.154306856412e-02 -4.592503692324e-02 -5.027026364057e-02 -5.457742896518e-02 + -5.884523884184e-02 -6.307242542547e-02 -6.725774754939e-02 -7.139999114773e-02 + -7.549796963278e-02 -7.955052422808e-02 -8.355652425854e-02 -8.751486739918e-02 + -9.142447988406e-02 -9.528431667744e-02 -9.909336160936e-02 -1.028506274778e-01 + -1.065551561204e-01 -1.102060184570e-01 -1.138023145082e-01 -1.173431733897e-01 + -1.208277532874e-01 -1.242552414154e-01 -1.276248539597e-01 -1.309358360104e-01 + -1.341874614848e-01 -1.373790330451e-01 -1.405098820113e-01 -1.435793682746e-01 + -1.465868802098e-01 -1.495318345919e-01 -1.524136765176e-01 -1.552318793325e-01 + -1.579859445669e-01 -1.606754018799e-01 -1.632998090145e-01 -1.658587517618e-01 + -1.683518439376e-01 -1.707787273693e-01 -1.731390718938e-01 -1.754325753665e-01 + -1.776589636794e-01 -1.798179907894e-01 -1.819094387533e-01 -1.839331177702e-01 + -1.858888662286e-01 -1.877765507571e-01 -1.895960662762e-01 -1.913473360490e-01 + -1.930303117302e-01 -1.946449734082e-01 -1.961913296410e-01 -1.976694174813e-01 + -1.990793024887e-01 -2.004210787272e-01 -2.016948687452e-01 -2.029008235344e-01 + -2.040391224670e-01 -2.051099732077e-01 -2.061136115980e-01 -2.070503015123e-01 + -2.079203346816e-01 -2.087240304850e-01 -2.094617357062e-01 -2.101338242543e-01 + -2.107406968471e-01 -2.112827806566e-01 -2.117605289158e-01 -2.121744204858e-01 + -2.125249593841e-01 -2.128126742738e-01 -2.130381179128e-01 -2.132018665658e-01 + -2.133045193789e-01 -2.133466977170e-01 -2.133290444674e-01 -2.132522233097e-01 + -2.131169179544e-01 -2.129238313526e-01 -2.126736848783e-01 -2.123672174868e-01 + -2.120051848509e-01 -2.115883584781e-01 -2.111175248123e-01 -2.105934843220e-01 + -2.100170505785e-01 -2.093890493280e-01 -2.087103175594e-01 -2.079817025727e-01 + -2.072040610495e-01 -2.063782581304e-01 -2.055051665007e-01 -2.045856654899e-01 + -2.036206401844e-01 -2.026109805603e-01 -2.015575806353e-01 -2.004613376449e-01 + -1.993231512434e-01 -1.981439227331e-01 -1.969245543227e-01 -1.956659484173e-01 + -1.943690069412e-01 -1.930346306943e-01 -1.916637187436e-01 -1.902571678513e-01 + -1.888158719376e-01 -1.873407215809e-01 -1.858326035547e-01 -1.842924003999e-01 + -1.827209900329e-01 -1.811192453898e-01 -1.794880341026e-01 -1.778282182105e-01 + -1.761406539010e-01 -1.744261912819e-01 -1.726856741818e-01 -1.709199399761e-01 + -1.691298194389e-01 -1.673161366165e-01 -1.654797087214e-01 -1.636213460448e-01 + -1.617418518844e-01 -1.598420224867e-01 -1.579226469996e-01 -1.559845074345e-01 + -1.540283786354e-01 -1.520550282525e-01 -1.500652167178e-01 -1.480596972219e-01 + -1.460392156892e-01 -1.440045107493e-01 -1.419563137047e-01 -1.398953484910e-01 + -1.378223316304e-01 -1.357379721756e-01 -1.336429716445e-01 -1.315380239439e-01 + -1.294238152826e-01 -1.273010240722e-01 -1.251703208168e-01 -1.230323679903e-01 + -1.208878199026e-01 -1.187373225542e-01 -1.165815134804e-01 -1.144210215852e-01 + -1.122564669660e-01 -1.100884607308e-01 -1.079176048079e-01 -1.057444917502e-01 + -1.035697045352e-01 -1.013938163621e-01 -9.921739044850e-02 -9.704097982678e-02 + -9.486512714300e-02 -9.269036445987e-02 -9.051721306531e-02 -8.834618328832e-02 + -8.617777432417e-02 -8.401247407024e-02 -8.185075897432e-02 -7.969309389693e-02 + -7.753993198896e-02 -7.539171458618e-02 -7.324887112174e-02 -7.111181905781e-02 + -6.898096383736e-02 -6.685669885691e-02 -6.473940546092e-02 -6.262945295836e-02 + -6.052719866181e-02 -5.843298794931e-02 -5.634715434890e-02 -5.427001964582e-02 + -5.220189401192e-02 -5.014307615691e-02 -4.809385350071e-02 -4.605450236615e-02 + -4.402528819105e-02 -4.200646575858e-02 -3.999827944464e-02 -3.800096348101e-02 + -3.601474223269e-02 -3.403983048797e-02 -3.207643375954e-02 -3.012474859493e-02 + -2.818496289464e-02 -2.625725623593e-02 -2.434180020070e-02 -2.243875870546e-02 + -2.054828833163e-02 -1.867053865435e-02 -1.680565256807e-02 -1.495376660717e-02 + -1.311501125996e-02 -1.128951127449e-02 -9.477385954740e-03 -7.678749445720e-03 + -5.893711006285e-03 -4.122375268485e-03 -2.364842482429e-03 -6.212087457938e-04 + 1.108433782770e-03 2.823996686936e-03 4.525395113143e-03 6.212547608483e-03 + 7.885375976182e-03 9.543805148664e-03 1.118776307807e-02 1.281718064392e-02 + 1.443199157747e-02 1.603213240232e-02 1.761754239035e-02 1.918816353248e-02 + 2.074394052311e-02 2.228482075736e-02 2.381075433995e-02 2.532169410463e-02 + 2.681759564287e-02 2.829841734057e-02 2.976412042146e-02 3.121466899588e-02 + 3.265003011350e-02 3.407017381886e-02 3.547507320806e-02 3.686470448563e-02 + 3.823904702009e-02 3.959808339710e-02 4.094179946899e-02 4.227018439963e-02 + 4.358323070356e-02 4.488093427863e-02 4.616329443111e-02 4.743031389272e-02 + 4.868199882897e-02 4.991835883817e-02 5.113940694091e-02 5.234515955965e-02 + 5.353563648825e-02 5.471086085149e-02 5.587085905461e-02 5.701566072312e-02 + 5.814529863310e-02 5.925980863249e-02 6.035922955387e-02 6.144360311927e-02 + 6.251297383777e-02 6.356738889661e-02 6.460689804665e-02 6.563155348310e-02 + 6.664140972236e-02 6.763652347608e-02 6.861695352330e-02 6.958276058184e-02 + 7.053400717973e-02 7.147075752797e-02 7.239307739542e-02 7.330103398679e-02 + 7.419469582486e-02 7.507413263751e-02 7.593941525069e-02 7.679061548791e-02 + 7.762780607697e-02 7.845106056462e-02 7.926045323964e-02 8.005605906471e-02 + 8.083795361759e-02 8.160621304163e-02 8.236091400604e-02 8.310213367566e-02 + 8.382994969046e-02 8.454444015445e-02 8.524568363379e-02 8.593375916382e-02 + 8.660874626443e-02 8.727072496344e-02 8.791977582721e-02 8.855597999793e-02 + 8.917941923677e-02 8.979017597207e-02 9.038833335182e-02 9.097397529938e-02 + 9.154718657161e-02 9.210805281845e-02 9.265666064283e-02 9.319309766019e-02 + 9.371745255639e-02 9.422981514314e-02 9.473027641012e-02 9.521892857268e-02 + 9.569586511442e-02 9.616118082386e-02 9.661497182432e-02 9.705733559639e-02 + 9.748837099255e-02 9.790817824309e-02 9.831685895320e-02 9.871451609077e-02 + 9.910125396457e-02 9.947717819276e-02 9.984239566173e-02 1.001970144751e-01 + 1.005411438931e-01 1.008748942632e-01 1.011983769405e-01 1.015117042014e-01 + 1.018149891471e-01 1.021083456017e-01 1.023918880023e-01 1.026657312832e-01 + 1.029299907557e-01 1.031847819829e-01 1.034302206515e-01 1.036664224409e-01 + 1.038935028916e-01 1.041115772725e-01 1.043207604495e-01 1.045211667557e-01 + 1.047129098638e-01 1.048961026639e-01 1.050708571439e-01 1.052372842778e-01 + 1.053954939195e-01 1.055455947044e-01 1.056876939595e-01 1.058218976227e-01 + 1.059483101718e-01 1.060670345637e-01 1.061781721846e-01 1.062818228120e-01 + 1.063780845870e-01 1.064670539996e-01 1.065488258856e-01 1.066234934349e-01 + 1.066911482118e-01 1.067518801878e-01 1.068057777840e-01 1.068529279258e-01 + 1.068934161075e-01 1.069273264668e-01 1.069547418680e-01 1.069757439943e-01 + 1.069904134473e-01 1.069988298532e-01 1.070010719747e-01 1.069972178274e-01 + 1.069873448009e-01 1.069715297807e-01 1.069498492736e-01 1.069223795321e-01 + 1.068891966784e-01 1.068503768270e-01 1.068059962038e-01 1.067561312614e-01 + 1.067008587895e-01 1.066402560187e-01 1.065744007180e-01 1.065033712837e-01 + 1.064272468200e-01 1.063461072100e-01 1.062600331759e-01 1.061691063295e-01 + 1.060734092106e-01 1.059730253138e-01 1.058680391032e-01 1.057585360154e-01 + 1.056446024494e-01 1.055263257441e-01 1.054037941442e-01 1.052770967533e-01 + 1.051463234752e-01 1.050115649434e-01 1.048729124408e-01 1.047304578070e-01 + 1.045842933372e-01 1.044345116712e-01 1.042812056741e-01 1.041244683098e-01 + 1.039643925071e-01 1.038010710204e-01 1.036345962862e-01 1.034650602746e-01 + 1.032925543393e-01 1.031171690653e-01 1.029389941160e-01 1.027581180810e-01 + 1.025746283253e-01 1.023886108409e-01 1.022001501022e-01 1.020093289258e-01 + 1.018162283357e-01 1.016209274347e-01 1.014235032835e-01 1.012240307869e-01 + 1.010225825896e-01 1.008192289803e-01 1.006140378066e-01 1.004070743990e-01 + 1.001984015073e-01 9.998807924635e-02 9.977616505406e-02 9.956271366080e-02 + 9.934777707005e-02 9.913140455073e-02 9.891364264092e-02 9.869453516294e-02 + 9.847412324938e-02 9.825244537991e-02 9.802953742841e-02 9.780543272006e-02 + 9.758016209784e-02 9.735375399784e-02 9.712623453293e-02 9.689762758396e-02 + 9.666795489798e-02 9.643723619270e-02 9.620548926643e-02 9.597273011284e-02 + 9.573897303968e-02 9.550423079085e-02 9.526851467085e-02 9.503183467107e-02 + 9.479419959709e-02 9.455561719620e-02 9.431609428460e-02 9.407563687350e-02 + 9.383425029351e-02 9.359193931675e-02 9.334870827608e-02 9.310456118098e-02 + 9.285950182959e-02 9.261353391644e-02 9.236666113558e-02 9.211888727871e-02 + 9.187021632807e-02 9.162065254383e-02 9.137020054585e-02 9.111886538960e-02 + 9.086665263623e-02 9.061356841665e-02 9.035961948975e-02 9.010481329466e-02 + 8.984915799720e-02 8.959266253059e-02 8.933533663062e-02 8.907719086527e-02 + 8.881823665927e-02 8.855848631338e-02 8.829795301907e-02 8.803665086843e-02 + 8.777459485981e-02 8.751180089931e-02 8.724828579838e-02 8.698406726785e-02 + 8.671916390847e-02 8.645359519837e-02 8.618738147751e-02 8.592054392947e-02 + 8.565310456062e-02 8.538508617700e-02 8.511651235896e-02 8.484740743381e-02 + 8.457779644648e-02 8.430770512850e-02 8.403715986512e-02 8.376618766101e-02 + 8.349481610421e-02 8.322307332875e-02 8.295098797568e-02 8.267858915277e-02 + 8.240590639273e-02 8.213296961005e-02 8.185980905646e-02 8.158645527506e-02 + 8.131293905291e-02 8.103929137245e-02 8.076554336146e-02 8.049172624166e-02 + 8.021787127612e-02 7.994400971530e-02 7.967017274198e-02 7.939639141504e-02 + 7.912269661219e-02 7.884911897180e-02 7.857568883399e-02 7.830243618100e-02 + 7.802939057721e-02 7.775658110882e-02 7.748403632355e-02 7.721178417052e-02 + 7.693985194058e-02 7.666826620746e-02 7.639705276986e-02 7.612623659502e-02 + 7.585584176387e-02 7.558589141828e-02 7.531640771068e-02 7.504741175636e-02 + 7.477892358894e-02 7.451096211917e-02 7.424354509763e-02 7.397668908145e-02 + 7.371040940558e-02 7.344472015874e-02 7.317963416447e-02 7.291516296745e-02 + 7.265131682546e-02 7.238810470700e-02 7.212553429489e-02 7.186361199595e-02 + 7.160234295680e-02 7.134173108587e-02 7.108177908163e-02 7.082248846702e-02 + 7.056385962986e-02 7.030589186928e-02 7.004858344782e-02 6.979193164913e-02 + 6.953593284069e-02 6.928058254162e-02 6.902587549474e-02 6.877180574288e-02 + 6.851836670857e-02 6.826555127690e-02 6.801335188085e-02 6.776176058847e-02 + 6.751076919147e-02 6.726036929437e-02 6.701055240369e-02 6.676131001649e-02 + 6.651263370756e-02 6.626451521458e-02 6.601694652058e-02 6.576991993306e-02 + 6.552342815907e-02 6.527746437564e-02 6.503202229502e-02 6.478709622404e-02 + 6.454268111716e-02 6.429877262271e-02 6.405536712182e-02 6.381246175979e-02 + 6.357005446939e-02 6.332814398605e-02 6.308672985455e-02 6.284581242722e-02 + 6.260539285353e-02 6.236547306112e-02 6.212605572834e-02 6.188714424846e-02 + 6.164874268590e-02 6.141085572460e-02 6.117348860910e-02 6.093664707868e-02 + 6.070033729513e-02 6.046456576477e-02 6.022933925520e-02 5.999466470773e-02 + 5.976054914607e-02 5.952699958203e-02 5.929402291931e-02 5.906162585587e-02 + 5.882981478613e-02 5.859859570362e-02 5.836797410517e-02 5.813795489740e-02 + 5.790854230654e-02 5.767973979236e-02 5.745154996716e-02 5.722397452053e-02 + 5.699701415085e-02 5.677066850403e-02 5.654493612048e-02 5.631981439060e-02 + 5.609529951970e-02 5.587138650259e-02 5.564806910837e-02 5.542533987572e-02 + 5.520319011898e-02 5.498160994515e-02 5.476058828189e-02 5.454011291651e-02 + 5.432017054580e-02 5.410074683653e-02 5.388182649636e-02 5.366339335466e-02 + 5.344543045283e-02 5.322792014360e-02 5.301084419854e-02 5.279418392317e-02 + 5.257792027882e-02 5.236203401040e-02 5.214650577914e-02 5.193131629936e-02 + 5.171644647817e-02 5.150187755720e-02 5.128759125512e-02 5.107356990995e-02 + 5.085979662003e-02 5.064625538249e-02 5.043293122822e-02 5.021981035214e-02 + 5.000688023783e-02 4.979412977539e-02 4.958154937163e-02 4.936913105166e-02 + 4.915686855095e-02 4.894475739716e-02 4.873279498099e-02 4.852098061533e-02 + 4.830931558231e-02 4.809780316765e-02 4.788644868208e-02 4.767525946941e-02 + 4.746424490128e-02 4.725341635832e-02 4.704278719800e-02 4.683237270911e-02 + 4.662219005326e-02 4.641225819374e-02 4.620259781213e-02 4.599323121330e-02 + 4.578418221937e-02 4.557547605343e-02 4.536713921373e-02 4.515919933936e-02 + 4.495168506825e-02 4.474462588851e-02 4.453805198425e-02 4.433199407690e-02 + 4.412648326318e-02 4.392155085087e-02 4.371722819359e-02 4.351354652566e-02 + 4.331053679834e-02 4.310822951848e-02 4.290665459077e-02 4.270584116468e-02 + 4.250581748711e-02 4.230661076176e-02 4.210824701617e-02 4.191075097732e-02 + 4.171414595650e-02 4.151845374432e-02 4.132369451634e-02 4.112988675000e-02 + 4.093704715319e-02 4.074519060492e-02 4.055433010824e-02 4.036447675571e-02 + 4.017563970732e-02 3.998782618095e-02 3.980104145517e-02 3.961528888414e-02 + 3.943056992434e-02 3.924688417265e-02 3.906422941530e-02 3.888260168717e-02 + 3.870199534066e-02 3.852240312358e-02 3.834381626514e-02 3.816622456930e-02 + 3.798961651455e-02 3.781397935928e-02 3.763929925178e-02 3.746556134385e-02 + 3.729274990723e-02 3.712084845174e-02 3.694983984420e-02 3.677970642732e-02 + 3.661043013752e-02 3.644199262087e-02 3.627437534635e-02 3.610755971553e-02 + 3.594152716814e-02 3.577625928269e-02 3.561173787160e-02 3.544794507035e-02 + 3.528486342020e-02 3.512247594396e-02 3.496076621476e-02 3.479971841736e-02 + 3.463931740206e-02 3.447954873101e-02 3.432039871705e-02 3.416185445510e-02 + 3.400390384636e-02 3.384653561554e-02 3.368973932134e-02 3.353350536075e-02 + 3.337782496744e-02 3.322269020480e-02 3.306809395413e-02 3.291402989856e-02 + 3.276049250331e-02 3.260747699282e-02 3.245497932554e-02 3.230299616681e-02 + 3.215152486062e-02 3.200056340082e-02 3.185011040230e-02 3.170016507289e-02 + 3.155072718633e-02 3.140179705696e-02 3.125337551646e-02 3.110546389319e-02 + 3.095806399429e-02 3.081117809103e-02 3.066480890741e-02 3.051895961236e-02 + 3.037363381549e-02 3.022883556638e-02 3.008456935748e-02 2.994084013033e-02 + 2.979765328491e-02 2.965501469198e-02 2.951293070783e-02 2.937140819122e-02 + 2.923045452194e-02 2.909007762048e-02 2.895028596828e-02 2.881108862791e-02 + 2.867249526249e-02 2.853451615380e-02 2.839716221827e-02 2.826044502023e-02 + 2.812437678166e-02 2.798897038783e-02 2.785423938806e-02 2.772019799105e-02 + 2.758686105410e-02 2.745424406566e-02 2.732236312079e-02 2.719123488889e-02 + 2.706087657358e-02 2.693130586411e-02 2.680254087833e-02 2.667460009699e-02 + 2.654750228924e-02 2.642126642948e-02 2.629591160571e-02 2.617145691948e-02 + 2.604792137800e-02 2.592532377863e-02 2.580368258647e-02 2.568301580562e-02 + 2.556334084478e-02 2.544467437815e-02 2.532703220245e-02 2.521042909102e-02 + 2.509487864612e-02 2.498039315054e-02 2.486698341964e-02 2.475465865504e-02 + 2.464342630125e-02 2.453329190647e-02 2.442425898878e-02 2.431632890910e-02 + 2.420950075209e-02 2.410377121616e-02 2.399913451398e-02 2.389558228432e-02 + 2.379310351657e-02 2.369168448871e-02 2.359130871975e-02 2.349195693736e-02 + 2.339360706144e-02 2.329623420409e-02 2.319981068656e-02 2.310430607325e-02 + 2.300968722323e-02 2.291591835893e-02 2.282296115208e-02 2.273077482657e-02 + 2.263931627762e-02 2.254854020682e-02 2.245839927213e-02 2.236884425195e-02 + 2.227982422217e-02 2.219128674499e-02 2.210317806813e-02 2.201544333291e-02 + 2.192802678961e-02 2.184087201850e-02 2.175392215447e-02 2.166712011368e-02 + 2.158040882002e-02 2.149373142951e-02 2.140703155059e-02 2.132025345822e-02 + 2.123334229964e-02 2.114624429001e-02 2.105890689562e-02 2.097127900299e-02 + 2.088331107181e-02 2.079495527005e-02 2.070616558956e-02 2.061689794061e-02 + 2.052711022391e-02 2.043676237906e-02 2.034581640820e-02 2.025423637407e-02 + 2.016198837178e-02 2.006904047395e-02 1.997536264878e-02 1.988092665126e-02 + 1.978570588760e-02 1.968967525341e-02 1.959281094644e-02 1.949509025455e-02 + 1.939649132046e-02 1.929699288446e-02 1.919657400681e-02 1.909521377173e-02 + 1.899289097512e-02 1.888958379815e-02 1.878526946939e-02 1.867992391805e-02 + 1.857352142108e-02 1.846603424724e-02 1.835743230104e-02 1.824768276982e-02 + 1.813674977715e-02 1.802459404587e-02 1.791117257400e-02 1.779643832698e-02 + 1.768033994927e-02 1.756282149884e-02 1.744382220737e-02 1.732327626951e-02 + 1.720111266378e-02 1.707725500821e-02 1.695162145288e-02 1.682412461197e-02 + 1.669467153730e-02 1.656316373503e-02 1.642949722701e-02 1.629356265775e-02 + 1.615524544734e-02 1.601442599013e-02 1.587097989791e-02 1.572477828529e-02 + 1.557568809300e-02 1.542357244284e-02 1.526829101453e-02 1.510970043051e-02 + 1.494765462854e-02 1.478200519407e-02 1.461260161378e-02 1.443929139794e-02 + 1.426192000253e-02 1.408033046127e-02 1.389436261390e-02 1.370385179065e-02 + 1.350862678562e-02 1.330850692713e-02 1.310329803487e-02 1.289278704917e-02 + 1.267673513432e-02 1.245486910604e-02 1.222687112405e-02 1.199236673557e-02 + 1.175091156419e-02 1.150197721750e-02 1.124493733559e-02 1.097905511110e-02 + 1.070347405810e-02 1.041721425258e-02 1.011917665934e-02 9.808158426931e-03 + 9.482882093277e-03 9.142041412128e-03 8.784365902578e-03 8.408705178112e-03 + 8.014132599503e-03 7.600065839961e-03 7.166399638022e-03 6.713643503007e-03 + 6.243054661751e-03 5.756754387479e-03 5.257814364932e-03 4.750299256052e-03 + 4.239252432550e-03 3.730614138733e-03 3.231065204281e-03 2.747794728155e-03 + 2.288196588920e-03 1.859506695582e-03 1.468399906078e-03 1.120571735297e-03 + 8.203345621970e-04 5.702603208884e-04 3.709011041260e-04 2.206154748039e-04 + 1.155216627393e-04 4.958966748407e-05 1.487337020611e-05 1.872112165864e-06 + 0.000000000000e+00 + Type L N + 0 0 2 + -1.813057268673e+00 -1.812890384123e+00 -1.812389695274e+00 -1.811555096961e+00 + -1.810386415331e+00 -1.808883409982e+00 -1.807045776923e+00 -1.804873152365e+00 + -1.802365117304e+00 -1.799521202879e+00 -1.796340896478e+00 -1.792823648544e+00 + -1.788968880063e+00 -1.784775990680e+00 -1.780244367401e+00 -1.775373393835e+00 + -1.770162459932e+00 -1.764610972149e+00 -1.758718364005e+00 -1.752484106960e+00 + -1.745907721568e+00 -1.738988788829e+00 -1.731726961703e+00 -1.724121976713e+00 + -1.716173665568e+00 -1.707881966776e+00 -1.699246937154e+00 -1.690268763203e+00 + -1.680947772280e+00 -1.671284443512e+00 -1.661279418409e+00 -1.650933511114e+00 + -1.640247718252e+00 -1.629223228323e+00 -1.617861430613e+00 -1.606163923565e+00 + -1.594132522594e+00 -1.581769267294e+00 -1.569076428033e+00 -1.556056511888e+00 + -1.542712267916e+00 -1.529046691737e+00 -1.515063029415e+00 -1.500764780640e+00 + -1.486155701184e+00 -1.471239804650e+00 -1.456021363507e+00 -1.440504909418e+00 + -1.424695232865e+00 -1.408597382097e+00 -1.392216661396e+00 -1.375558628700e+00 + -1.358629092590e+00 -1.341434108664e+00 -1.323979975334e+00 -1.306273229063e+00 + -1.288320639071e+00 -1.270129201554e+00 -1.251706133424e+00 -1.233058865623e+00 + -1.214195036037e+00 -1.195122482040e+00 -1.175849232706e+00 -1.156383500720e+00 + -1.136733674026e+00 -1.116908307238e+00 -1.096916112846e+00 -1.076765952264e+00 + -1.056466826718e+00 -1.036027868043e+00 -1.015458329378e+00 -9.947675758113e-01 + -9.739650749899e-01 -9.530603877150e-01 -9.320631585465e-01 -9.109831064350e-01 + -8.898300153975e-01 -8.686137252524e-01 -8.473441224266e-01 -8.260311308467e-01 + -8.046847029223e-01 -7.833148106317e-01 -7.619314367131e-01 -7.405445659684e-01 + -7.191641766812e-01 -6.978002321513e-01 -6.764626723459e-01 -6.551614056669e-01 + -6.339063008333e-01 -6.127071788752e-01 -5.915738052379e-01 -5.705158819908e-01 + -5.495430401387e-01 -5.286648320311e-01 -5.078907238641e-01 -4.872300882732e-01 + -4.666921970112e-01 -4.462862137087e-01 -4.260211867144e-01 -4.059060420128e-01 + -3.859495762172e-01 -3.661604496383e-01 -3.465471794279e-01 -3.271181327992e-01 + -3.078815203255e-01 -2.888453893209e-01 -2.700176173075e-01 -2.514059055741e-01 + -2.330177728334e-01 -2.148605489852e-01 -1.969413689944e-01 -1.792671668932e-01 + -1.618446699193e-01 -1.446803928001e-01 -1.277806321972e-01 -1.111514613220e-01 + -9.479872473900e-02 -7.872803336877e-02 -6.294475970604e-02 -4.745403326829e-02 + -3.226073628938e-02 -1.736949967347e-02 -2.784699224138e-03 1.148954783639e-02 + 2.544938604389e-02 3.909122455067e-02 5.241173965294e-02 6.540787697466e-02 + 7.807685329653e-02 9.041615801949e-02 1.024235542537e-01 1.140970795248e-01 + 1.254350460905e-01 1.364360408625e-01 1.470989249297e-01 1.574228326795e-01 + 1.674071705182e-01 1.770516151884e-01 1.863561116884e-01 1.953208707957e-01 + 2.039463662007e-01 2.122333312570e-01 2.201827553583e-01 2.277958799492e-01 + 2.350741941846e-01 2.420194302473e-01 2.486335583399e-01 2.549187813651e-01 + 2.608775293115e-01 2.665124533602e-01 2.718264197336e-01 2.768225033008e-01 + 2.815039809635e-01 2.858743248385e-01 2.899371952594e-01 2.936964336170e-01 + 2.971560550594e-01 3.003202410713e-01 3.031933319550e-01 3.057798192305e-01 + 3.080843379768e-01 3.101116591324e-01 3.118666817737e-01 3.133544253901e-01 + 3.145800221714e-01 3.155487093258e-01 3.162658214423e-01 3.167367829124e-01 + 3.169671004252e-01 3.169623555466e-01 3.167281973961e-01 3.162703354285e-01 + 3.155945323325e-01 3.147065970516e-01 3.136123779357e-01 3.123177560283e-01 + 3.108286384945e-01 3.091509521931e-01 3.072906373965e-01 3.052536416588e-01 + 3.030459138357e-01 3.006733982532e-01 2.981420290288e-01 2.954577245416e-01 + 2.926263820510e-01 2.896538724627e-01 2.865460352400e-01 2.833086734575e-01 + 2.799475489964e-01 2.764683778778e-01 2.728768257327e-01 2.691785034060e-01 + 2.653789626931e-01 2.614836922073e-01 2.574981133766e-01 2.534275765693e-01 + 2.492773573476e-01 2.450526528495e-01 2.407585782989e-01 2.364001636463e-01 + 2.319823503393e-01 2.275099882277e-01 2.229878326033e-01 2.184205413794e-01 + 2.138126724120e-01 2.091686809678e-01 2.044929173428e-01 1.997896246365e-01 + 1.950629366864e-01 1.903168761679e-01 1.855553528664e-01 1.807821621240e-01 + 1.760009834701e-01 1.712153794376e-01 1.664287945727e-01 1.616445546410e-01 + 1.568658660362e-01 1.520958153945e-01 1.473373694176e-01 1.425933749100e-01 + 1.378665590289e-01 1.331595297521e-01 1.284747765614e-01 1.238146713441e-01 + 1.191814695088e-01 1.145773113155e-01 1.100042234156e-01 1.054641205983e-01 + 1.009588077374e-01 9.648998193298e-02 9.205923483955e-02 8.766805517312e-02 + 8.331783138692e-02 7.900985450555e-02 7.474532110585e-02 7.052533643218e-02 + 6.635091763263e-02 6.222299710229e-02 5.814242591858e-02 5.410997735350e-02 + 5.012635044664e-02 4.619217362300e-02 4.230800833865e-02 3.847435273786e-02 + 3.469164530459e-02 3.096026849172e-02 2.728055231146e-02 2.365277787055e-02 + 2.007718083458e-02 1.655395480600e-02 1.308325460123e-02 9.665199413058e-03 + 6.299875845312e-03 2.987340807803e-03 -2.723757392878e-04 -3.479268201399e-03 + -6.633352934411e-03 -9.734666005512e-03 -1.278326113594e-02 -1.577920782998e-02 + -1.872258969331e-02 -2.161350294206e-02 -2.445205510276e-02 -2.723836390171e-02 + -2.997255634094e-02 -3.265476795635e-02 -3.528514225265e-02 -3.786383030770e-02 + -4.039099053844e-02 -4.286678861863e-02 -4.529139753808e-02 -4.766499779173e-02 + -4.998777768627e-02 -5.225993375093e-02 -5.448167123882e-02 -5.665320470416e-02 + -5.877475864081e-02 -6.084656816695e-02 -6.286887974071e-02 -6.484195189160e-02 + -6.676605595275e-02 -6.864147677905e-02 -7.046851343707e-02 -7.224747985286e-02 + -7.397870540452e-02 -7.566253544732e-02 -7.729933175988e-02 -7.888947290110e-02 + -8.043335446854e-02 -8.193138925007e-02 -8.338400726212e-02 -8.479165566895e-02 + -8.615479857873e-02 -8.747391671384e-02 -8.874950695404e-02 -8.998208175261e-02 + -9.117216842713e-02 -9.232030832783e-02 -9.342705588791e-02 -9.449297756163e-02 + -9.551865065698e-02 -9.650466207145e-02 -9.745160693995e-02 -9.836008720552e-02 + -9.923071012397e-02 -1.000640867148e-01 -1.008608301710e-01 -1.016215542415e-01 + -1.023468716001e-01 -1.030373922144e-01 -1.036937217308e-01 -1.043164598872e-01 + -1.049061989714e-01 -1.054635223352e-01 -1.059890029813e-01 -1.064832022335e-01 + -1.069466685046e-01 -1.073799361721e-01 -1.077835245736e-01 -1.081579371307e-01 + -1.085036606105e-01 -1.088211645320e-01 -1.091109007232e-01 -1.093733030340e-01 + -1.096087872081e-01 -1.098177509150e-01 -1.100005739437e-01 -1.101576185558e-01 + -1.102892299963e-01 -1.103957371570e-01 -1.104774533877e-01 -1.105346774475e-01 + -1.105676945887e-01 -1.105767777625e-01 -1.105621889370e-01 -1.105241805137e-01 + -1.104629968317e-01 -1.103788757442e-01 -1.102720502527e-01 -1.101427501849e-01 + -1.099912038988e-01 -1.098176399982e-01 -1.096222890433e-01 -1.094053852385e-01 + -1.091671680836e-01 -1.089078839699e-01 -1.086277877078e-01 -1.083271439690e-01 + -1.080062286304e-01 -1.076653300057e-01 -1.073047499514e-01 -1.069248048373e-01 + -1.065258263700e-01 -1.061081622610e-01 -1.056721767314e-01 -1.052182508483e-01 + -1.047467826867e-01 -1.042581873149e-01 -1.037528966027e-01 -1.032313588513e-01 + -1.026940382474e-01 -1.021414141462e-01 -1.015739801865e-01 -1.009922432467e-01 + -1.003967222488e-01 -9.978794682037e-02 -9.916645582625e-02 -9.853279578156e-02 + -9.788751916032e-02 -9.723118261401e-02 -9.656434511566e-02 -9.588756604587e-02 + -9.520140323770e-02 -9.450641099801e-02 -9.380313812278e-02 -9.309212592468e-02 + -9.237390629055e-02 -9.164899978664e-02 -9.091791382913e-02 -9.018114093665e-02 + -8.943915708129e-02 -8.869242015332e-02 -8.794136855435e-02 -8.718641993210e-02 + -8.642797006910e-02 -8.566639193606e-02 -8.490203491929e-02 -8.413522423005e-02 + -8.336626050192e-02 -8.259541958068e-02 -8.182295250964e-02 -8.104908571108e-02 + -8.027402136328e-02 -7.949793797026e-02 -7.872099111999e-02 -7.794331442478e-02 + -7.716502063597e-02 -7.638620292351e-02 -7.560693630911e-02 -7.482727924054e-02 + -7.404727529310e-02 -7.326695498294e-02 -7.248633767600e-02 -7.170543357529e-02 + -7.092424576824e-02 -7.014277231539e-02 -6.936100836118e-02 -6.857894824712e-02 + -6.779658760753e-02 -6.701392542828e-02 -6.623096604875e-02 -6.544772108808e-02 + -6.466421127695e-02 -6.388046817712e-02 -6.309653577177e-02 -6.231247191073e-02 + -6.152834959591e-02 -6.074425809359e-02 -5.996030386180e-02 -5.917661128233e-02 + -5.839332318906e-02 -5.761060118563e-02 -5.682862574757e-02 -5.604759610599e-02 + -5.526772991157e-02 -5.448926267996e-02 -5.371244702133e-02 -5.293755165900e-02 + -5.216486024390e-02 -5.139466997353e-02 -5.062729002598e-02 -4.986303982102e-02 + -4.910224712249e-02 -4.834524599698e-02 -4.759237464588e-02 -4.684397312875e-02 + -4.610038099721e-02 -4.536193485938e-02 -4.462896589593e-02 -4.390179734909e-02 + -4.318074200657e-02 -4.246609970264e-02 -4.175815485832e-02 -4.105717408299e-02 + -4.036340385882e-02 -3.967706832932e-02 -3.899836721242e-02 -3.832747385745e-02 + -3.766453346461e-02 -3.700966148402e-02 -3.636294221020e-02 -3.572442758618e-02 + -3.509413622989e-02 -3.447205269358e-02 -3.385812696523e-02 -3.325227421897e-02 + -3.265437481928e-02 -3.206427458196e-02 -3.148178529256e-02 -3.090668548079e-02 + -3.033872144749e-02 -2.977760853847e-02 -2.922303265751e-02 -2.867465200884e-02 + -2.813209905747e-02 -2.759498269390e-02 -2.706289058802e-02 -2.653539171538e-02 + -2.601203903757e-02 -2.549237231713e-02 -2.497592104628e-02 -2.446220746761e-02 + -2.395074966439e-02 -2.344106469719e-02 -2.293267176325e-02 -2.242509535494e-02 + -2.191786839315e-02 -2.141053531231e-02 -2.090265507340e-02 -2.039380408234e-02 + -1.988357899174e-02 -1.937159936484e-02 -1.885751018165e-02 -1.834098416863e-02 + -1.782172393448e-02 -1.729946389639e-02 -1.677397198248e-02 -1.624505109847e-02 + -1.571254034780e-02 -1.517631599714e-02 -1.463629218072e-02 -1.409242133924e-02 + -1.354469439126e-02 -1.299314063698e-02 -1.243782739648e-02 -1.187885938666e-02 + -1.131637784303e-02 -1.075055939469e-02 -1.018161470241e-02 -9.609786872084e-03 + -9.035349656865e-03 -8.458605463482e-03 -7.879883179316e-03 -7.299535838257e-03 + -6.717938144490e-03 -6.135483874321e-03 -5.552583176965e-03 -4.969659795838e-03 + -4.387148232338e-03 -3.805490874328e-03 -3.225135111617e-03 -2.646530460593e-03 + -2.070125719846e-03 -1.496366178130e-03 -9.256908953283e-04 -3.585300762519e-04 + 2.046974439031e-04 7.635865847799e-04 1.317748260393e-03 1.866811458017e-03 + 2.410425143030e-03 2.948259977923e-03 3.480009845449e-03 4.005393167619e-03 + 4.524154014153e-03 5.036062995835e-03 5.540917940122e-03 6.038544348273e-03 + 6.528795635136e-03 7.011553154563e-03 7.486726015270e-03 7.954250693650e-03 + 8.414090451732e-03 8.866234570045e-03 9.310697406580e-03 9.747517294418e-03 + 1.017675529176e-02 1.059849379921e-02 1.101283506001e-02 1.141989955978e-02 + 1.181982434287e-02 1.221276126280e-02 1.259887518470e-02 1.297834215759e-02 + 1.335134757436e-02 1.371808433707e-02 1.407875104481e-02 1.443355022064e-02 + 1.478268659374e-02 1.512636545178e-02 1.546479107751e-02 1.579816528287e-02 + 1.612668605208e-02 1.645054630444e-02 1.676993278577e-02 1.708502509618e-02 + 1.739599486014e-02 1.770300504348e-02 1.800620942009e-02 1.830575218971e-02 + 1.860176774647e-02 1.889438059623e-02 1.918370541941e-02 1.946984727418e-02 + 1.975290193389e-02 2.003295635075e-02 2.031008923699e-02 2.058437175323e-02 + 2.085586829291e-02 2.112463735069e-02 2.139073246184e-02 2.165420319917e-02 + 2.191509621327e-02 2.217345630187e-02 2.242932749343e-02 2.268275413042e-02 + 2.293378193771e-02 2.318245906159e-02 2.342883706561e-02 2.367297186975e-02 + 2.391492462021e-02 2.415476247789e-02 2.439255931454e-02 2.462839630672e-02 + 2.486236241858e-02 2.509455476609e-02 2.532507885629e-02 2.555404869680e-02 + 2.578158677202e-02 2.600782388407e-02 2.623289885806e-02 2.645695811241e-02 + 2.668015509705e-02 2.690264960303e-02 2.712460694931e-02 2.734619705305e-02 + 2.756759339178e-02 2.778897186652e-02 2.801050957632e-02 2.823238351570e-02 + 2.845476920734e-02 2.867783928315e-02 2.890176202778e-02 2.912669989872e-02 + 2.935280803802e-02 2.958023279055e-02 2.980911024402e-02 3.003956480598e-02 + 3.027170783250e-02 3.050563632342e-02 3.074143169799e-02 3.097915866459e-02 + 3.121886419713e-02 3.146057663000e-02 3.170430488235e-02 3.195003782140e-02 + 3.219774377328e-02 3.244737018849e-02 3.269884346780e-02 3.295206895291e-02 + 3.320693108466e-02 3.346329373011e-02 3.372100067817e-02 3.397987630200e-02 + 3.423972638481e-02 3.450033910400e-02 3.476148616746e-02 3.502292409398e-02 + 3.528439562868e-02 3.554563128283e-02 3.580635098647e-02 3.606626584092e-02 + 3.632507995732e-02 3.658249236673e-02 3.683819898611e-02 3.709189462443e-02 + 3.734327501227e-02 3.759203883827e-02 3.783788977552e-02 3.808053848087e-02 + 3.831970455065e-02 3.855511841608e-02 3.878652316271e-02 3.901367625830e-02 + 3.923635117459e-02 3.945433888927e-02 3.966744925547e-02 3.987551222695e-02 + 4.007837892895e-02 4.027592256538e-02 4.046803915485e-02 4.065464808939e-02 + 4.083569251121e-02 4.101113950448e-02 4.118098010071e-02 4.134522909789e-02 + 4.150392469528e-02 4.165712794719e-02 4.180492204071e-02 4.194741140405e-02 + 4.208472065331e-02 4.221699338711e-02 4.234439083976e-02 4.246709040494e-02 + 4.258528404266e-02 4.269917658370e-02 4.280898394624e-02 4.291493128023e-02 + 4.301725105564e-02 4.311618111112e-02 4.321196267990e-02 4.330483840993e-02 + 4.339505039510e-02 4.348283823435e-02 4.356843713507e-02 4.365207607671e-02 + 4.373397604990e-02 4.381434838572e-02 4.389339318858e-02 4.397129788561e-02 + 4.404823590388e-02 4.412436548587e-02 4.419982865213e-02 4.427475031874e-02 + 4.434923757580e-02 4.442337913139e-02 4.449724492445e-02 4.457088590777e-02 + 4.464433400137e-02 4.471760221458e-02 4.479068493373e-02 4.486355837089e-02 + 4.493618116771e-02 4.500849514671e-02 4.508042620168e-02 4.515188531690e-02 + 4.522276970446e-02 4.529296404742e-02 4.536234183611e-02 4.543076678370e-02 + 4.549809430702e-02 4.556417305760e-02 4.562884648815e-02 4.569195443889e-02 + 4.575333472876e-02 4.581282473602e-02 4.587026295349e-02 4.592549050383e-02 + 4.597835260082e-02 4.602869994332e-02 4.607639002947e-02 4.612128837928e-02 + 4.616326965524e-02 4.620221867133e-02 4.623803128214e-02 4.627061514514e-02 + 4.629989035047e-02 4.632578991386e-02 4.634826012995e-02 4.636726078454e-02 + 4.638276522577e-02 4.639476029590e-02 4.640324612630e-02 4.640823580022e-02 + 4.640975488876e-02 4.640784086696e-02 4.640254241822e-02 4.639391863592e-02 + 4.638203813277e-02 4.636697806866e-02 4.634882310905e-02 4.632766432630e-02 + 4.630359805694e-02 4.627672472835e-02 4.624714766849e-02 4.621497191224e-02 + 4.618030301836e-02 4.614324591025e-02 4.610390375387e-02 4.606237688552e-02 + 4.601876180153e-02 4.597315022119e-02 4.592562823363e-02 4.587627553799e-02 + 4.582516478562e-02 4.577236103144e-02 4.571792130077e-02 4.566189427636e-02 + 4.560432010915e-02 4.554523035480e-02 4.548464803671e-02 4.542258783472e-02 + 4.535905639743e-02 4.529405277435e-02 4.522756896320e-02 4.515959056579e-02 + 4.509009754522e-02 4.501906507543e-02 4.494646447340e-02 4.487226420320e-02 + 4.479643093999e-02 4.471893068162e-02 4.463972989468e-02 4.455879668115e-02 + 4.447610195190e-02 4.439162059255e-02 4.430533260745e-02 4.421722422754e-02 + 4.412728896810e-02 4.403552862257e-02 4.394195417956e-02 4.384658665048e-02 + 4.374945779608e-02 4.365061074136e-02 4.355010046915e-02 4.344799418378e-02 + 4.334437153781e-02 4.323932471596e-02 4.313295837177e-02 4.302538941419e-02 + 4.291674664271e-02 4.280717023142e-02 4.269681106363e-02 4.258582992077e-02 + 4.247439653041e-02 4.236268848018e-02 4.225089000554e-02 4.213919066119e-02 + 4.202778388686e-02 4.191686547984e-02 4.180663198765e-02 4.169727903521e-02 + 4.158899960206e-02 4.148198226567e-02 4.137640942780e-02 4.127245554100e-02 + 4.117028535315e-02 4.107005218752e-02 4.097189627627e-02 4.087594316490e-02 + 4.078230220466e-02 4.069106514978e-02 4.060230487516e-02 4.051607422970e-02 + 4.043240503917e-02 4.035130727137e-02 4.027276837508e-02 4.019675280275e-02 + 4.012320172528e-02 4.005203294573e-02 3.998314101679e-02 3.991639756518e-02 + 3.985165182417e-02 3.978873137346e-02 3.972744308382e-02 3.966757426173e-02 + 3.960889398749e-02 3.955115463829e-02 3.949409358591e-02 3.943743505680e-02 + 3.938089214082e-02 3.932416893320e-02 3.926696279264e-02 3.920896669766e-02 + 3.914987168138e-02 3.908936932469e-02 3.902715428621e-02 3.896292684737e-02 + 3.889639545008e-02 3.882727920438e-02 3.875531034337e-02 3.868023660286e-02 + 3.860182350358e-02 3.851985651427e-02 3.843414307479e-02 3.834451445950e-02 + 3.825082746203e-02 3.815296588418e-02 3.805084181312e-02 3.794439667272e-02 + 3.783360203671e-02 3.771846019344e-02 3.759900445387e-02 3.747529919686e-02 + 3.734743964798e-02 3.721555139039e-02 3.707978960881e-02 3.694033806985e-02 + 3.679740784447e-02 3.665123578083e-02 3.650208273768e-02 3.635023159137e-02 + 3.619598503105e-02 3.603966315921e-02 3.588160091630e-02 3.572214535024e-02 + 3.556165275305e-02 3.540048568828e-02 3.523900993438e-02 3.507759136992e-02 + 3.491659282751e-02 3.475637094392e-02 3.459727303412e-02 3.443963401714e-02 + 3.428377342149e-02 3.412999249741e-02 3.397857146286e-02 3.382976690875e-02 + 3.368380938838e-02 3.354090121424e-02 3.340121448397e-02 3.326488935548e-02 + 3.313203258904e-02 3.300271637231e-02 3.287697744155e-02 3.275481651019e-02 + 3.263619801286e-02 3.252105017078e-02 3.240926538111e-02 3.230070093043e-02 + 3.219518002931e-02 3.209249316237e-02 3.199239974495e-02 3.189463007509e-02 + 3.179888756652e-02 3.170485124567e-02 3.161217849337e-02 3.152050800930e-02 + 3.142946297506e-02 3.133865438983e-02 3.124768455040e-02 3.115615064615e-02 + 3.106364843777e-02 3.096977598773e-02 3.087413740935e-02 3.077634660096e-02 + 3.067603093116e-02 3.057283484140e-02 3.046642333218e-02 3.035648529976e-02 + 3.024273669147e-02 3.012492344832e-02 3.000282420562e-02 2.987625272368e-02 + 2.974506002276e-02 2.960913619869e-02 2.946841189795e-02 2.932285943390e-02 + 2.917249352830e-02 2.901737166581e-02 2.885759405175e-02 2.869330316739e-02 + 2.852468291964e-02 2.835195738620e-02 2.817538916014e-02 2.799527730180e-02 + 2.781195490900e-02 2.762578632033e-02 2.743716396932e-02 2.724650491075e-02 + 2.705424704321e-02 2.686084505524e-02 2.666676612484e-02 2.647248540477e-02 + 2.627848132843e-02 2.608523077283e-02 2.589320411728e-02 2.570286023759e-02 + 2.551464147670e-02 2.532896863364e-02 2.514623601305e-02 2.496680657756e-02 + 2.479100724525e-02 2.461912437371e-02 2.445139947136e-02 2.428802517535e-02 + 2.412914153374e-02 2.397483262770e-02 2.382512356700e-02 2.367997788946e-02 + 2.353929539168e-02 2.340291041487e-02 2.327059060531e-02 2.314203616404e-02 + 2.301687959454e-02 2.289468594999e-02 2.277495357321e-02 2.265711531092e-02 + 2.254054017065e-02 2.242453537044e-02 2.230834870904e-02 2.219117115571e-02 + 2.207213952303e-02 2.195033904246e-02 2.182480561065e-02 2.169452741531e-02 + 2.155844558527e-02 2.141545344463e-02 2.126439389427e-02 2.110405440595e-02 + 2.093315911227e-02 2.075035752961e-02 2.055420958617e-02 2.034316687101e-02 + 2.011555039806e-02 1.986952571580e-02 1.960307689780e-02 1.931398181613e-02 + 1.899979209574e-02 1.865782220703e-02 1.828515316961e-02 1.787865716765e-02 + 1.743504983189e-02 1.695097681795e-02 1.642314039405e-02 1.584846985775e-02 + 1.522433661080e-02 1.454881061599e-02 1.382094986850e-02 1.304110873632e-02 + 1.221124504648e-02 1.133520027347e-02 1.041892290863e-02 9.470602892002e-03 + 8.500685652692e-03 7.521738435485e-03 6.548149488013e-03 5.595652226486e-03 + 4.680681082118e-03 3.819582246430e-03 3.027719429994e-03 2.318530166852e-03 + 1.702600172799e-03 1.186829983441e-03 7.737681522974e-04 4.611779260458e-04 + 2.418896037221e-04 1.039696980113e-04 3.121236860217e-05 3.930885905926e-06 + 0.000000000000e+00 + Type L N + 0 1 0 + 0.000000000000e+00 3.716050806881e-03 7.430119258365e-03 1.114022739300e-02 + 1.484440601958e-02 1.854069905808e-02 2.222716782792e-02 2.590189526639e-02 + 2.956299006061e-02 3.320859067686e-02 3.683686927158e-02 4.044603546929e-02 + 4.403433999319e-02 4.760007813515e-02 5.114159305277e-02 5.465727888204e-02 + 5.814558365534e-02 6.160501201545e-02 6.503412771742e-02 6.843155591148e-02 + 7.179598520104e-02 7.512616947148e-02 7.842092948621e-02 8.167915424805e-02 + 8.489980212516e-02 8.808190174167e-02 9.122455263483e-02 9.432692568130e-02 + 9.738826329638e-02 1.004078794113e-01 1.033851592343e-01 1.063195588028e-01 + 1.092106043343e-01 1.120578913845e-01 1.148610838224e-01 1.176199126332e-01 + 1.203341745582e-01 1.230037305842e-01 1.256285042943e-01 1.282084800913e-01 + 1.307437013069e-01 1.332342682084e-01 1.356803359172e-01 1.380821122493e-01 + 1.404398554924e-01 1.427538721317e-01 1.450245145351e-01 1.472521786120e-01 + 1.494373014544e-01 1.515803589746e-01 1.536818635460e-01 1.557423616613e-01 + 1.577624316129e-01 1.597426812082e-01 1.616837455242e-01 1.635862847116e-01 + 1.654509818518e-01 1.672785408751e-01 1.690696845430e-01 1.708251524994e-01 + 1.725456993940e-01 1.742320930795e-01 1.758851128857e-01 1.775055479692e-01 + 1.790941957417e-01 1.806518603730e-01 1.821793513711e-01 1.836774822343e-01 + 1.851470691755e-01 1.865889299141e-01 1.880038825329e-01 1.893927443970e-01 + 1.907563311282e-01 1.920954556340e-01 1.934109271832e-01 1.947035505262e-01 + 1.959741250528e-01 1.972234439848e-01 1.984522935963e-01 1.996614524595e-01 + 2.008516907088e-01 2.020237693210e-01 2.031784394056e-01 2.043164415028e-01 + 2.054385048849e-01 2.065453468575e-01 2.076376720596e-01 2.087161717571e-01 + 2.097815231318e-01 2.108343885609e-01 2.118754148882e-01 2.129052326867e-01 + 2.139244555112e-01 2.149336791434e-01 2.159334808290e-01 2.169244185099e-01 + 2.179070300526e-01 2.188818324755e-01 2.198493211788e-01 2.208099691795e-01 + 2.217642263551e-01 2.227125187017e-01 2.236552476083e-01 2.245927891540e-01 + 2.255254934321e-01 2.264536839047e-01 2.273776567959e-01 2.282976805245e-01 + 2.292139951854e-01 2.301268120806e-01 2.310363133081e-01 2.319426514114e-01 + 2.328459490936e-01 2.337462990024e-01 2.346437635879e-01 2.355383750374e-01 + 2.364301352907e-01 2.373190161381e-01 2.382049594037e-01 2.390878772157e-01 + 2.399676523652e-01 2.408441387536e-01 2.417171619300e-01 2.425865197177e-01 + 2.434519829283e-01 2.443132961638e-01 2.451701787027e-01 2.460223254691e-01 + 2.468694080818e-01 2.477110759786e-01 2.485469576134e-01 2.493766617208e-01 + 2.501997786436e-01 2.510158817176e-01 2.518245287087e-01 2.526252632963e-01 + 2.534176165952e-01 2.542011087129e-01 2.549752503310e-01 2.557395443092e-01 + 2.564934872996e-01 2.572365713688e-01 2.579682856181e-01 2.586881177957e-01 + 2.593955558942e-01 2.600900897267e-01 2.607712124740e-01 2.614384221979e-01 + 2.620912233139e-01 2.627291280170e-01 2.633516576559e-01 2.639583440508e-01 + 2.645487307480e-01 2.651223742104e-01 2.656788449368e-01 2.662177285085e-01 + 2.667386265600e-01 2.672411576706e-01 2.677249581760e-01 2.681896828975e-01 + 2.686350057889e-01 2.690606204994e-01 2.694662408537e-01 2.698516012488e-01 + 2.702164569693e-01 2.705605844221e-01 2.708837812921e-01 2.711858666219e-01 + 2.714666808169e-01 2.717260855801e-01 2.719639637785e-01 2.721802192452e-01 + 2.723747765211e-01 2.725475805394e-01 2.726985962584e-01 2.728278082448e-01 + 2.729352202133e-01 2.730208545272e-01 2.730847516627e-01 2.731269696435e-01 + 2.731475834475e-01 2.731466843931e-01 2.731243795063e-01 2.730807908743e-01 + 2.730160549898e-01 2.729303220884e-01 2.728237554834e-01 2.726965309024e-01 + 2.725488358266e-01 2.723808688374e-01 2.721928389719e-01 2.719849650911e-01 + 2.717574752603e-01 2.715106061461e-01 2.712446024301e-01 2.709597162408e-01 + 2.706562066047e-01 2.703343389172e-01 2.699943844342e-01 2.696366197842e-01 + 2.692613265005e-01 2.688687905749e-01 2.684593020302e-01 2.680331545128e-01 + 2.675906449038e-01 2.671320729484e-01 2.666577409010e-01 2.661679531876e-01 + 2.656630160815e-01 2.651432373938e-01 2.646089261746e-01 2.640603924272e-01 + 2.634979468301e-01 2.629219004694e-01 2.623325645773e-01 2.617302502785e-01 + 2.611152683408e-01 2.604879289309e-01 2.598485413740e-01 2.591974139163e-01 + 2.585348534903e-01 2.578611654816e-01 2.571766534984e-01 2.564816191419e-01 + 2.557763617784e-01 2.550611783134e-01 2.543363629671e-01 2.536022070529e-01 + 2.528589987576e-01 2.521070229256e-01 2.513465608469e-01 2.505778900497e-01 + 2.498012840985e-01 2.490170123987e-01 2.482253400089e-01 2.474265274609e-01 + 2.466208305897e-01 2.458085003736e-01 2.449897827861e-01 2.441649186594e-01 + 2.433341435620e-01 2.424976876906e-01 2.416557757762e-01 2.408086270070e-01 + 2.399564549671e-01 2.390994675930e-01 2.382378671463e-01 2.373718502060e-01 + 2.365016076772e-01 2.356273248189e-01 2.347491812895e-01 2.338673512099e-01 + 2.329820032451e-01 2.320933007014e-01 2.312014016412e-01 2.303064590129e-01 + 2.294086207958e-01 2.285080301584e-01 2.276048256306e-01 2.266991412855e-01 + 2.257911069334e-01 2.248808483229e-01 2.239684873506e-01 2.230541422761e-01 + 2.221379279410e-01 2.212199559916e-01 2.203003351016e-01 2.193791711948e-01 + 2.184565676662e-01 2.175326255988e-01 2.166074439758e-01 2.156811198858e-01 + 2.147537487205e-01 2.138254243633e-01 2.128962393671e-01 2.119662851207e-01 + 2.110356520033e-01 2.101044295251e-01 2.091727064544e-01 2.082405709296e-01 + 2.073081105570e-01 2.063754124925e-01 2.054425635086e-01 2.045096500455e-01 + 2.035767582471e-01 2.026439739825e-01 2.017113828519e-01 2.007790701796e-01 + 1.998471209933e-01 1.989156199904e-01 1.979846514937e-01 1.970542993956e-01 + 1.961246470930e-01 1.951957774142e-01 1.942677725380e-01 1.933407139074e-01 + 1.924146821383e-01 1.914897569248e-01 1.905660169427e-01 1.896435397523e-01 + 1.887224017010e-01 1.878026778285e-01 1.868844417744e-01 1.859677656896e-01 + 1.850527201534e-01 1.841393740961e-01 1.832277947281e-01 1.823180474777e-01 + 1.814101959361e-01 1.805043018115e-01 1.796004248927e-01 1.786986230214e-01 + 1.777989520755e-01 1.769014659602e-01 1.760062166105e-01 1.751132540020e-01 + 1.742226261708e-01 1.733343792428e-01 1.724485574701e-01 1.715652032755e-01 + 1.706843573039e-01 1.698060584784e-01 1.689303440635e-01 1.680572497300e-01 + 1.671868096255e-01 1.663190564449e-01 1.654540215036e-01 1.645917348099e-01 + 1.637322251368e-01 1.628755200919e-01 1.620216461840e-01 1.611706288868e-01 + 1.603224926968e-01 1.594772611865e-01 1.586349570511e-01 1.577956021485e-01 + 1.569592175318e-01 1.561258234740e-01 1.552954394853e-01 1.544680843210e-01 + 1.536437759819e-01 1.528225317060e-01 1.520043679525e-01 1.511893003773e-01 + 1.503773438020e-01 1.495685121748e-01 1.487628185266e-01 1.479602749202e-01 + 1.471608923961e-01 1.463646809135e-01 1.455716492895e-01 1.447818051360e-01 + 1.439951547969e-01 1.432117032848e-01 1.424314542210e-01 1.416544097777e-01 + 1.408805706250e-01 1.401099358828e-01 1.393425030809e-01 1.385782681250e-01 + 1.378172252736e-01 1.370593671236e-01 1.363046846075e-01 1.355531670016e-01 + 1.348048019479e-01 1.340595754876e-01 1.333174721093e-01 1.325784748103e-01 + 1.318425651727e-01 1.311097234525e-01 1.303799286838e-01 1.296531587961e-01 + 1.289293907448e-01 1.282086006543e-01 1.274907639737e-01 1.267758556426e-01 + 1.260638502675e-01 1.253547223064e-01 1.246484462615e-01 1.239449968776e-01 + 1.232443493450e-01 1.225464795049e-01 1.218513640571e-01 1.211589807657e-01 + 1.204693086631e-01 1.197823282498e-01 1.190980216874e-01 1.184163729844e-01 + 1.177373681714e-01 1.170609954651e-01 1.163872454185e-01 1.157161110565e-01 + 1.150475879947e-01 1.143816745398e-01 1.137183717711e-01 1.130576836012e-01 + 1.123996168150e-01 1.117441810862e-01 1.110913889714e-01 1.104412558796e-01 + 1.097938000181e-01 1.091490423152e-01 1.085070063182e-01 1.078677180682e-01 + 1.072312059521e-01 1.065975005325e-01 1.059666343561e-01 1.053386417429e-01 + 1.047135585557e-01 1.040914219532e-01 1.034722701280e-01 1.028561420309e-01 + 1.022430770832e-01 1.016331148810e-01 1.010262948917e-01 1.004226561459e-01 + 9.982223692776e-02 9.922507446533e-02 9.863120462367e-02 9.804066160369e-02 + 9.745347764879e-02 9.686968276202e-02 9.628930443606e-02 9.571236739841e-02 + 9.513889337414e-02 9.456890086810e-02 9.400240496882e-02 9.343941717573e-02 + 9.287994525142e-02 9.232399310036e-02 9.177156067534e-02 9.122264391260e-02 + 9.067723469646e-02 9.013532085395e-02 8.959688617972e-02 8.906191049133e-02 + 8.853036971458e-02 8.800223599849e-02 8.747747785912e-02 8.695606035134e-02 + 8.643794526715e-02 8.592309135928e-02 8.541145458826e-02 8.490298839103e-02 + 8.439764396919e-02 8.389537059433e-02 8.339611592828e-02 8.289982635557e-02 + 8.240644732541e-02 8.191592370052e-02 8.142820010979e-02 8.094322130206e-02 + 8.046093249795e-02 7.998127973697e-02 7.950421021683e-02 7.902967262236e-02 + 7.855761744112e-02 7.808799726306e-02 7.762076706188e-02 7.715588445549e-02 + 7.669330994352e-02 7.623300711990e-02 7.577494285855e-02 7.531908747082e-02 + 7.486541483320e-02 7.441390248422e-02 7.396453168987e-02 7.351728747682e-02 + 7.307215863327e-02 7.262913767743e-02 7.218822079386e-02 7.174940773834e-02 + 7.131270171201e-02 7.087810920593e-02 7.044563981744e-02 7.001530603989e-02 + 6.958712302764e-02 6.916110833828e-02 6.873728165449e-02 6.831566448783e-02 + 6.789627986711e-02 6.747915201413e-02 6.706430600952e-02 6.665176745169e-02 + 6.624156211187e-02 6.583371558826e-02 6.542825296228e-02 6.502519846011e-02 + 6.462457512216e-02 6.422640448379e-02 6.383070626977e-02 6.343749810525e-02 + 6.304679524590e-02 6.265861032941e-02 6.227295315068e-02 6.188983046258e-02 + 6.150924580415e-02 6.113119935759e-02 6.075568783550e-02 6.038270439914e-02 + 6.001223860867e-02 5.964427640563e-02 5.927880012791e-02 5.891578855704e-02 + 5.855521699745e-02 5.819705738696e-02 5.784127843756e-02 5.748784580523e-02 + 5.713672228740e-02 5.678786804618e-02 5.644124085559e-02 5.609679637053e-02 + 5.575448841514e-02 5.541426928812e-02 5.507609008226e-02 5.473990101550e-02 + 5.440565177058e-02 5.407329184035e-02 5.374277087574e-02 5.341403903342e-02 + 5.308704732016e-02 5.276174793077e-02 5.243809457692e-02 5.211604280393e-02 + 5.179555029272e-02 5.147657714454e-02 5.115908614586e-02 5.084304301131e-02 + 5.052841660256e-02 5.021517912132e-02 4.990330627484e-02 4.959277741256e-02 + 4.928357563284e-02 4.897568785881e-02 4.866910488293e-02 4.836382137980e-02 + 4.805983588728e-02 4.775715075620e-02 4.745577206909e-02 4.715570952876e-02 + 4.685697631785e-02 4.655958893049e-02 4.626356697777e-02 4.596893296861e-02 + 4.567571206816e-02 4.538393183567e-02 4.509362194437e-02 4.480481388556e-02 + 4.451754065975e-02 4.423183645730e-02 4.394773633147e-02 4.366527586659e-02 + 4.338449084424e-02 4.310541691024e-02 4.282808924523e-02 4.255254224165e-02 + 4.227880918980e-02 4.200692197549e-02 4.173691079181e-02 4.146880386737e-02 + 4.120262721306e-02 4.093840438951e-02 4.067615629677e-02 4.041590098805e-02 + 4.015765350877e-02 3.990142576197e-02 3.964722640111e-02 3.939506075083e-02 + 3.914493075595e-02 3.889683495910e-02 3.865076850656e-02 3.840672318217e-02 + 3.816468746854e-02 3.792464663486e-02 3.768658285009e-02 3.745047532030e-02 + 3.721630044868e-02 3.698403201653e-02 3.675364138335e-02 3.652509770409e-02 + 3.629836816131e-02 3.607341821018e-02 3.585021183382e-02 3.562871180667e-02 + 3.540887996339e-02 3.519067747094e-02 3.497406510112e-02 3.475900350147e-02 + 3.454545346178e-02 3.433337617419e-02 3.412273348439e-02 3.391348813189e-02 + 3.370560397746e-02 3.349904621561e-02 3.329378157068e-02 3.308977847483e-02 + 3.288700722669e-02 3.268544012946e-02 3.248505160760e-02 3.228581830126e-02 + 3.208771913811e-02 3.189073538214e-02 3.169485065944e-02 3.150005096112e-02 + 3.130632462370e-02 3.111366228757e-02 3.092205683429e-02 3.073150330378e-02 + 3.054199879239e-02 3.035354233336e-02 3.016613476105e-02 2.997977856054e-02 + 2.979447770439e-02 2.961023747838e-02 2.942706429816e-02 2.924496551873e-02 + 2.906394923893e-02 2.888402410286e-02 2.870519910036e-02 2.852748336853e-02 + 2.835088599643e-02 2.817541583477e-02 2.800108131256e-02 2.782789026247e-02 + 2.765584975657e-02 2.748496595406e-02 2.731524396240e-02 2.714668771298e-02 + 2.697929985264e-02 2.681308165183e-02 2.664803293017e-02 2.648415200005e-02 + 2.632143562861e-02 2.615987901826e-02 2.599947580574e-02 2.584021807961e-02 + 2.568209641566e-02 2.552509992975e-02 2.536921634736e-02 2.521443208886e-02 + 2.506073236955e-02 2.490810131319e-02 2.475652207771e-02 2.460597699166e-02 + 2.445644769984e-02 2.430791531646e-02 2.416036058425e-02 2.401376403751e-02 + 2.386810616764e-02 2.372336758909e-02 2.357952920412e-02 2.343657236450e-02 + 2.329447902845e-02 2.315323191121e-02 2.301281462756e-02 2.287321182484e-02 + 2.273440930509e-02 2.259639413499e-02 2.245915474246e-02 2.232268099896e-02 + 2.218696428659e-02 2.205199754931e-02 2.191777532777e-02 2.178429377738e-02 + 2.165155066944e-02 2.151954537531e-02 2.138827883379e-02 2.125775350211e-02 + 2.112797329089e-02 2.099894348386e-02 2.087067064317e-02 2.074316250112e-02 + 2.061642783955e-02 2.049047635806e-02 2.036531853239e-02 2.024096546436e-02 + 2.011742872499e-02 1.999472019223e-02 1.987285188512e-02 1.975183579578e-02 + 1.963168372123e-02 1.951240709646e-02 1.939401683053e-02 1.927652314734e-02 + 1.915993543263e-02 1.904426208866e-02 1.892951039819e-02 1.881568639887e-02 + 1.870279476946e-02 1.859083872889e-02 1.847981994919e-02 1.836973848311e-02 + 1.826059270720e-02 1.815237928069e-02 1.804509312089e-02 1.793872739496e-02 + 1.783327352839e-02 1.772872122994e-02 1.762505853280e-02 1.752227185158e-02 + 1.742034605445e-02 1.731926454982e-02 1.721900938662e-02 1.711956136715e-02 + 1.702090017145e-02 1.692300449188e-02 1.682585217667e-02 1.672942038095e-02 + 1.663368572379e-02 1.653862444976e-02 1.644421259343e-02 1.635042614514e-02 + 1.625724121659e-02 1.616463420451e-02 1.607258195094e-02 1.598106189854e-02 + 1.589005223957e-02 1.579953205700e-02 1.570948145657e-02 1.561988168848e-02 + 1.553071525773e-02 1.544196602200e-02 1.535361927631e-02 1.526566182370e-02 + 1.517808203138e-02 1.509086987187e-02 1.500401694893e-02 1.491751650813e-02 + 1.483136343206e-02 1.474555422046e-02 1.466008695546e-02 1.457496125262e-02 + 1.449017819817e-02 1.440574027340e-02 1.432165126697e-02 1.423791617621e-02 + 1.415454109843e-02 1.407153311354e-02 1.398890015917e-02 1.390665089975e-02 + 1.382479459073e-02 1.374334093966e-02 1.366229996534e-02 1.358168185669e-02 + 1.350149683261e-02 1.342175500446e-02 1.334246624242e-02 1.326364004712e-02 + 1.318528542783e-02 1.310741078840e-02 1.303002382200e-02 1.295313141586e-02 + 1.287673956661e-02 1.280085330728e-02 1.272547664644e-02 1.265061251999e-02 + 1.257626275614e-02 1.250242805356e-02 1.242910797298e-02 1.235630094213e-02 + 1.228400427372e-02 1.221221419632e-02 1.214092589741e-02 1.207013357821e-02 + 1.199983051939e-02 1.193000915693e-02 1.186066116710e-02 1.179177755951e-02 + 1.172334877713e-02 1.165536480205e-02 1.158781526570e-02 1.152068956227e-02 + 1.145397696392e-02 1.138766673648e-02 1.132174825427e-02 1.125621111268e-02 + 1.119104523724e-02 1.112624098786e-02 1.106178925709e-02 1.099768156116e-02 + 1.093391012293e-02 1.087046794553e-02 1.080734887606e-02 1.074454765851e-02 + 1.068205997526e-02 1.061988247671e-02 1.055801279873e-02 1.049644956758e-02 + 1.043519239238e-02 1.037424184512e-02 1.031359942842e-02 1.025326753147e-02 + 1.019324937451e-02 1.013354894267e-02 1.007417090967e-02 1.001512055250e-02 + 9.956403657918e-03 9.898026421803e-03 9.839995342686e-03 9.782317110532e-03 + 9.724998492167e-03 9.668046214658e-03 9.611466848024e-03 9.555266688686e-03 + 9.499451645032e-03 9.444027126482e-03 9.388997937417e-03 9.334368177256e-03 + 9.280141147943e-03 9.226319270016e-03 9.172904008328e-03 9.119895808436e-03 + 9.067294044488e-03 9.015096979406e-03 8.963301737947e-03 8.911904293137e-03 + 8.860899466420e-03 8.810280941675e-03 8.760041293163e-03 8.710172027239e-03 + 8.660663637572e-03 8.611505673402e-03 8.562686820261e-03 8.514194992400e-03 + 8.466017436047e-03 8.418140842475e-03 8.370551469735e-03 8.323235271816e-03 + 8.276178033862e-03 8.229365512017e-03 8.182783576388e-03 8.136418355548e-03 + 8.090256380983e-03 8.044284729848e-03 7.998491164390e-03 7.952864266417e-03 + 7.907393565219e-03 7.862069657389e-03 7.816884317060e-03 7.771830595149e-03 + 7.726902906320e-03 7.682097102444e-03 7.637410531521e-03 7.592842081110e-03 + 7.548392205518e-03 7.504062936121e-03 7.459857874388e-03 7.415782167341e-03 + 7.371842465395e-03 7.328046862667e-03 7.284404820076e-03 7.240927071739e-03 + 7.197625515313e-03 7.154513087188e-03 7.111603623555e-03 7.068911708569e-03 + 7.026452510984e-03 6.984241610789e-03 6.942294817491e-03 6.900627981839e-03 + 6.859256802870e-03 6.818196632234e-03 6.777462277853e-03 6.737067808981e-03 + 6.697026364793e-03 6.657349968596e-03 6.618049349791e-03 6.579133775617e-03 + 6.540610894704e-03 6.502486594337e-03 6.464764873254e-03 6.427447731679e-03 + 6.390535080123e-03 6.354024668362e-03 6.317912035788e-03 6.282190484150e-03 + 6.246851073508e-03 6.211882641956e-03 6.177271849504e-03 6.143003246207e-03 + 6.109059364424e-03 6.075420834828e-03 6.042066525526e-03 6.008973703425e-03 + 5.976118216701e-03 5.943474697021e-03 5.911016779904e-03 5.878717341408e-03 + 5.846548749125e-03 5.814483125235e-03 5.782492619259e-03 5.750549687925e-03 + 5.718627379479e-03 5.686699619641e-03 5.654741496304e-03 5.622729540046e-03 + 5.590641997458e-03 5.558459094305e-03 5.526163285537e-03 5.493739489249e-03 + 5.461175301723e-03 5.428461190832e-03 5.395590665193e-03 5.362560416627e-03 + 5.329370433680e-03 5.296024084149e-03 5.262528164816e-03 5.228892916838e-03 + 5.195132005526e-03 5.161262463527e-03 5.127304596754e-03 5.093281852727e-03 + 5.059220651294e-03 5.025150178098e-03 4.991102141444e-03 4.957110493604e-03 + 4.923211117925e-03 4.889441483469e-03 4.855840269208e-03 4.822446960159e-03 + 4.789301418135e-03 4.756443430075e-03 4.723912237198e-03 4.691746048473e-03 + 4.659981542127e-03 4.628653359089e-03 4.597793592481e-03 4.567431277353e-03 + 4.537591885000e-03 4.508296826258e-03 4.479562968200e-03 4.451402168676e-03 + 4.423820833070e-03 4.396819497595e-03 4.370392443314e-03 4.344527344936e-03 + 4.319204958220e-03 4.294398849610e-03 4.270075171408e-03 4.246192485511e-03 + 4.222701638308e-03 4.199545688912e-03 4.176659892353e-03 4.153971738716e-03 + 4.131401048400e-03 4.108860122683e-03 4.086253947471e-03 4.063480446459e-03 + 4.040430777746e-03 4.016989665130e-03 3.993035751620e-03 3.968441958048e-03 + 3.943075823769e-03 3.916799799250e-03 3.889471451845e-03 3.860943536355e-03 + 3.831063871590e-03 3.799674953908e-03 3.766613229987e-03 3.731707945941e-03 + 3.694779491048e-03 3.655637165349e-03 3.614076325242e-03 3.569874904406e-03 + 3.522789373220e-03 3.472550291518e-03 3.418857728542e-03 3.361376968521e-03 + 3.299735084359e-03 3.233519133745e-03 3.162276893606e-03 3.085521175708e-03 + 3.002738828183e-03 2.913405491160e-03 2.817007005941e-03 2.713068047657e-03 + 2.601188043571e-03 2.481083753324e-03 2.352637047102e-03 2.215945474850e-03 + 2.071372255506e-03 1.919591437942e-03 1.761623322241e-03 1.598854914980e-03 + 1.433040348708e-03 1.266276916644e-03 1.100953701167e-03 9.396716835480e-04 + 7.851366089909e-04 6.400285619701e-04 5.068549295416e-04 3.877958950000e-04 + 2.845534971932e-04 1.982163240612e-04 1.291518623571e-04 7.693728425960e-05 + 4.033703305712e-05 1.733213478061e-05 5.202005722215e-06 6.550489907226e-07 + 0.000000000000e+00 + Type L N + 0 1 1 + 0.000000000000e+00 5.517306585949e-03 1.103161463370e-02 1.653992987028e-02 + 2.203926654498e-02 2.752665166979e-02 3.299912923524e-02 3.845376439317e-02 + 4.388764759848e-02 4.929789870172e-02 5.468167098433e-02 6.003615512873e-02 + 6.535858311521e-02 7.064623203800e-02 7.589642783261e-02 8.110654890712e-02 + 8.627402966989e-02 9.139636394643e-02 9.647110827851e-02 1.014958850986e-01 + 1.064683857728e-01 1.113863735065e-01 1.162476861060e-01 1.210502385907e-01 + 1.257920256500e-01 1.304711239407e-01 1.350856942186e-01 1.396339833018e-01 + 1.441143258600e-01 1.485251460276e-01 1.528649588364e-01 1.571323714668e-01 + 1.613260843142e-01 1.654448918690e-01 1.694876834110e-01 1.734534435148e-01 + 1.773412523692e-01 1.811502859098e-01 1.848798157659e-01 1.885292090242e-01 + 1.920979278121e-01 1.955855287019e-01 1.989916619415e-01 2.023160705150e-01 + 2.055585890368e-01 2.087191424862e-01 2.117977447874e-01 2.147944972406e-01 + 2.177095868120e-01 2.205432842890e-01 2.232959423081e-01 2.259679932638e-01 + 2.285599471064e-01 2.310723890370e-01 2.335059771084e-01 2.358614397408e-01 + 2.381395731616e-01 2.403412387772e-01 2.424673604872e-01 2.445189219492e-01 + 2.464969638033e-01 2.484025808648e-01 2.502369192951e-01 2.520011737568e-01 + 2.536965845635e-01 2.553244348306e-01 2.568860476353e-01 2.583827831920e-01 + 2.598160360509e-01 2.611872323249e-01 2.624978269502e-01 2.637493009869e-01 + 2.649431589631e-01 2.660809262664e-01 2.671641465868e-01 2.681943794132e-01 + 2.691731975861e-01 2.701021849076e-01 2.709829338101e-01 2.718170430846e-01 + 2.726061156669e-01 2.733517564833e-01 2.740555703532e-01 2.747191599473e-01 + 2.753441238002e-01 2.759320543743e-01 2.764845361724e-01 2.770031438972e-01 + 2.774894406531e-01 2.779449761874e-01 2.783712851690e-01 2.787698854985e-01 + 2.791422766489e-01 2.794899380313e-01 2.798143273842e-01 2.801168791821e-01 + 2.803990030607e-01 2.806620822570e-01 2.809074720608e-01 2.811364982766e-01 + 2.813504556948e-01 2.815506065696e-01 2.817381791056e-01 2.819143659509e-01 + 2.820803226984e-01 2.822371663975e-01 2.823859740748e-01 2.825277812709e-01 + 2.826635805914e-01 2.827943202794e-01 2.829209028115e-01 2.830441835232e-01 + 2.831649692680e-01 2.832840171169e-01 2.834020331028e-01 2.835196710193e-01 + 2.836375312773e-01 2.837561598299e-01 2.838760471704e-01 2.839976274135e-01 + 2.841212774654e-01 2.842473162926e-01 2.843760042951e-01 2.845075427942e-01 + 2.846420736399e-01 2.847796789475e-01 2.849203809684e-01 2.850641421031e-01 + 2.852108650621e-01 2.853603931790e-01 2.855125108831e-01 2.856669443329e-01 + 2.858233622165e-01 2.859813767197e-01 2.861405446641e-01 2.863003688166e-01 + 2.864602993697e-01 2.866197355911e-01 2.867780276414e-01 2.869344785569e-01 + 2.870883463918e-01 2.872388465167e-01 2.873851540661e-01 2.875264065276e-01 + 2.876617064652e-01 2.877901243678e-01 2.879107016119e-01 2.880224535284e-01 + 2.881243725623e-01 2.882154315115e-01 2.882945868332e-01 2.883607820032e-01 + 2.884129509146e-01 2.884500213012e-01 2.884709181700e-01 2.884745672297e-01 + 2.884598982971e-01 2.884258486694e-01 2.883713664441e-01 2.882954137739e-01 + 2.881969700411e-01 2.880750349366e-01 2.879286314306e-01 2.877568086213e-01 + 2.875586444492e-01 2.873332482652e-01 2.870797632412e-01 2.867973686142e-01 + 2.864852817534e-01 2.861427600440e-01 2.857691025790e-01 2.853636516561e-01 + 2.849257940713e-01 2.844549622104e-01 2.839506349331e-01 2.834123382504e-01 + 2.828396457960e-01 2.822321790932e-01 2.815896076203e-01 2.809116486793e-01 + 2.801980670733e-01 2.794486745982e-01 2.786633293588e-01 2.778419349150e-01 + 2.769844392704e-01 2.760908337128e-01 2.751611515171e-01 2.741954665247e-01 + 2.731938916101e-01 2.721565770488e-01 2.710837087999e-01 2.699755067175e-01 + 2.688322227036e-01 2.676541388191e-01 2.664415653639e-01 2.651948389425e-01 + 2.639143205274e-01 2.626003935339e-01 2.612534619194e-01 2.598739483189e-01 + 2.584622922294e-01 2.570189482521e-01 2.555443844056e-01 2.540390805159e-01 + 2.525035266944e-01 2.509382219090e-01 2.493436726566e-01 2.477203917400e-01 + 2.460688971555e-01 2.443897110924e-01 2.426833590477e-01 2.409503690556e-01 + 2.391912710318e-01 2.374065962323e-01 2.355968768218e-01 2.337626455507e-01 + 2.319044355347e-01 2.300227801321e-01 2.281182129127e-01 2.261912677109e-01 + 2.242424787561e-01 2.222723808708e-01 2.202815097296e-01 2.182704021670e-01 + 2.162395965283e-01 2.141896330491e-01 2.121210542586e-01 2.100344053915e-01 + 2.079302348036e-01 2.058090943771e-01 2.036715399092e-01 2.015181314728e-01 + 1.993494337420e-01 1.971660162734e-01 1.949684537357e-01 1.927573260815e-01 + 1.905332186538e-01 1.882967222228e-01 1.860484329484e-01 1.837889522642e-01 + 1.815188866808e-01 1.792388475069e-01 1.769494504859e-01 1.746513153503e-01 + 1.723450652934e-01 1.700313263607e-01 1.677107267646e-01 1.653838961254e-01 + 1.630514646438e-01 1.607140622107e-01 1.583723174602e-01 1.560268567719e-01 + 1.536783032329e-01 1.513272755636e-01 1.489743870197e-01 1.466202442772e-01 + 1.442654463098e-01 1.419105832691e-01 1.395562353765e-01 1.372029718365e-01 + 1.348513497809e-01 1.325019132533e-01 1.301551922431e-01 1.278117017771e-01 + 1.254719410781e-01 1.231363927969e-01 1.208055223256e-01 1.184797771991e-01 + 1.161595865894e-01 1.138453608985e-01 1.115374914537e-01 1.092363503086e-01 + 1.069422901520e-01 1.046556443260e-01 1.023767269541e-01 1.001058331778e-01 + 9.784323950153e-02 9.558920424146e-02 9.334396807702e-02 9.110775469882e-02 + 8.888077154879e-02 8.666321064613e-02 8.445524949228e-02 8.225705204737e-02 + 8.006876976997e-02 7.789054271125e-02 7.572250065445e-02 7.356476428985e-02 + 7.141744641532e-02 6.928065315215e-02 6.715448516583e-02 6.503903888139e-02 + 6.293440768285e-02 6.084068308665e-02 5.875795587898e-02 5.668631720745e-02 + 5.462585961780e-02 5.257667802690e-02 5.053887062401e-02 4.851253969258e-02 + 4.649779234601e-02 4.449474117132e-02 4.250350477558e-02 4.052420823077e-02 + 3.855698341390e-02 3.660196923984e-02 3.465931178565e-02 3.272916430578e-02 + 3.081168713897e-02 2.890704750823e-02 2.701541921658e-02 2.513698224201e-02 + 2.327192223604e-02 2.142042993128e-02 1.958270046394e-02 1.775893261840e-02 + 1.594932800122e-02 1.415409015300e-02 1.237342360669e-02 1.060753290183e-02 + 8.856621564211e-03 7.120891060972e-03 5.400539741312e-03 3.695761773082e-03 + 2.006746085562e-03 3.336753286608e-04 -1.323275141427e-03 -2.963938240282e-03 + -4.588156087622e-03 -6.195780884953e-03 -7.786675730035e-03 -9.360715360279e-03 + -1.091778681789e-02 -1.245779003027e-02 -1.398063830006e-02 -1.548625869993e-02 + -1.697459236834e-02 -1.844559470310e-02 -1.989923545094e-02 -2.133549869177e-02 + -2.275438271778e-02 -2.415589980827e-02 -2.554007590196e-02 -2.690695016984e-02 + -2.825657449216e-02 -2.958901284438e-02 -3.090434059755e-02 -3.220264373942e-02 + -3.348401802337e-02 -3.474856805297e-02 -3.599640631038e-02 -3.722765213752e-02 + -3.844243067928e-02 -3.964087179856e-02 -4.082310897272e-02 -4.198927818196e-02 + -4.313951679941e-02 -4.427396249327e-02 -4.539275215100e-02 -4.649602083529e-02 + -4.758390078144e-02 -4.865652044523e-02 -4.971400360986e-02 -5.075646856025e-02 + -5.178402733199e-02 -5.279678504180e-02 -5.379483930557e-02 -5.477827974907e-02 + -5.574718761572e-02 -5.670163547488e-02 -5.764168703310e-02 -5.856739704992e-02 + -5.947881135866e-02 -6.037596699201e-02 -6.125889241070e-02 -6.212760783320e-02 + -6.298212566298e-02 -6.382245100912e-02 -6.464858229529e-02 -6.546051195108e-02 + -6.625822717906e-02 -6.704171079027e-02 -6.781094209994e-02 -6.856589787500e-02 + -6.930655332431e-02 -7.003288312207e-02 -7.074486245469e-02 -7.144246808107e-02 + -7.212567939622e-02 -7.279447948803e-02 -7.344885617707e-02 -7.408880302941e-02 + -7.471432033294e-02 -7.532541602754e-02 -7.592210658041e-02 -7.650441779786e-02 + -7.707238556594e-02 -7.762605651244e-02 -7.816548858394e-02 -7.869075153211e-02 + -7.920192730442e-02 -7.969911033519e-02 -8.018240773392e-02 -8.065193936873e-02 + -8.110783784382e-02 -8.155024837051e-02 -8.197932853282e-02 -8.239524794930e-02 + -8.279818783359e-02 -8.318834045758e-02 -8.356590852140e-02 -8.393110443586e-02 + -8.428414952320e-02 -8.462527314322e-02 -8.495471175235e-02 -8.527270790374e-02 + -8.557950919720e-02 -8.587536718805e-02 -8.616053626455e-02 -8.643527250359e-02 + -8.669983251481e-02 -8.695447228312e-02 -8.719944601988e-02 -8.743500503269e-02 + -8.766139662369e-02 -8.787886302599e-02 -8.808764038745e-02 -8.828795781064e-02 + -8.848003645728e-02 -8.866408872478e-02 -8.884031750206e-02 -8.900891551081e-02 + -8.917006473790e-02 -8.932393596337e-02 -8.947068838816e-02 -8.961046936418e-02 + -8.974341422890e-02 -8.986964624549e-02 -8.998927664845e-02 -9.010240479402e-02 + -9.020911841343e-02 -9.030949396628e-02 -9.040359709048e-02 -9.049148314405e-02 + -9.057319783362e-02 -9.064877792343e-02 -9.071825201804e-02 -9.078164141121e-02 + -9.083896099300e-02 -9.089022020642e-02 -9.093542404473e-02 -9.097457407992e-02 + -9.100766951295e-02 -9.103470823589e-02 -9.105568789603e-02 -9.107060695235e-02 + -9.107946571439e-02 -9.108226735405e-02 -9.107901888118e-02 -9.106973207374e-02 + -9.105442435442e-02 -9.103311960541e-02 -9.100584891424e-02 -9.097265124373e-02 + -9.093357402021e-02 -9.088867363463e-02 -9.083801585223e-02 -9.078167612706e-02 + -9.071973981875e-02 -9.065230230963e-02 -9.057946902134e-02 -9.050135533090e-02 + -9.041808638724e-02 -9.032979682993e-02 -9.023663041293e-02 -9.013873953684e-02 + -9.003628469408e-02 -8.992943383218e-02 -8.981836164108e-02 -8.970324877098e-02 + -8.958428098784e-02 -8.946164827449e-02 -8.933554388524e-02 -8.920616336272e-02 + -8.907370352581e-02 -8.893836143781e-02 -8.880033336395e-02 -8.865981372782e-02 + -8.851699407573e-02 -8.837206205838e-02 -8.822520043876e-02 -8.807658613499e-02 + -8.792638930643e-02 -8.777477249106e-02 -8.762188980155e-02 -8.746788618684e-02 + -8.731289676550e-02 -8.715704623652e-02 -8.700044837225e-02 -8.684320559765e-02 + -8.668540865918e-02 -8.652713638558e-02 -8.636845554254e-02 -8.620942078157e-02 + -8.605007468338e-02 -8.589044789458e-02 -8.573055935611e-02 -8.557041662062e-02 + -8.541001625569e-02 -8.524934432854e-02 -8.508837696757e-02 -8.492708099516e-02 + -8.476541462577e-02 -8.460332822254e-02 -8.444076510553e-02 -8.427766240381e-02 + -8.411395194388e-02 -8.394956116604e-02 -8.378441406053e-02 -8.361843211514e-02 + -8.345153526564e-02 -8.328364284087e-02 -8.311467449411e-02 -8.294455111272e-02 + -8.277319569829e-02 -8.260053420981e-02 -8.242649636298e-02 -8.225101637887e-02 + -8.207403367625e-02 -8.189549350181e-02 -8.171534749373e-02 -8.153355417429e-02 + -8.135007936825e-02 -8.116489654412e-02 -8.097798707639e-02 -8.078934042772e-02 + -8.059895425029e-02 -8.040683440693e-02 -8.021299491295e-02 -8.001745780048e-02 + -7.982025290787e-02 -7.962141759730e-02 -7.942099640436e-02 -7.921904062425e-02 + -7.901560783922e-02 -7.881076139310e-02 -7.860456981852e-02 -7.839710622338e-02 + -7.818844764287e-02 -7.797867436426e-02 -7.776786923120e-02 -7.755611693478e-02 + -7.734350329861e-02 -7.713011456495e-02 -7.691603668902e-02 -7.670135464836e-02 + -7.648615177385e-02 -7.627050910888e-02 -7.605450480244e-02 -7.583821354195e-02 + -7.562170603081e-02 -7.540504851530e-02 -7.518830236495e-02 -7.497152370982e-02 + -7.475476313751e-02 -7.453806545218e-02 -7.432146949720e-02 -7.410500804213e-02 + -7.388870773458e-02 -7.367258911620e-02 -7.345666670198e-02 -7.324094912104e-02 + -7.302543931650e-02 -7.281013480176e-02 -7.259502796945e-02 -7.238010644927e-02 + -7.216535351022e-02 -7.195074850235e-02 -7.173626733286e-02 -7.152188297097e-02 + -7.130756597584e-02 -7.109328504152e-02 -7.087900755293e-02 -7.066470014665e-02 + -7.045032927036e-02 -7.023586173497e-02 -7.002126525334e-02 -6.980650895997e-02 + -6.959156390600e-02 -6.937640352450e-02 -6.916100406098e-02 -6.894534496484e-02 + -6.872940923770e-02 -6.851318373506e-02 -6.829665941838e-02 -6.807983155506e-02 + -6.786269986446e-02 -6.764526860876e-02 -6.742754662790e-02 -6.720954731850e-02 + -6.699128855744e-02 -6.677279257101e-02 -6.655408575153e-02 -6.633519842362e-02 + -6.611616456290e-02 -6.589702147046e-02 -6.567780940693e-02 -6.545857119023e-02 + -6.523935176171e-02 -6.502019772554e-02 -6.480115686654e-02 -6.458227765186e-02 + -6.436360872225e-02 -6.414519837839e-02 -6.392709406815e-02 -6.370934188065e-02 + -6.349198605244e-02 -6.327506849173e-02 -6.305862832573e-02 -6.284270147627e-02 + -6.262732026861e-02 -6.241251307766e-02 -6.219830401590e-02 -6.198471266645e-02 + -6.177175386442e-02 -6.155943752927e-02 -6.134776855012e-02 -6.113674672561e-02 + -6.092636675925e-02 -6.071661831049e-02 -6.050748610147e-02 -6.029895007835e-02 + -6.009098562600e-02 -5.988356383401e-02 -5.967665181131e-02 -5.947021304654e-02 + -5.926420781050e-02 -5.905859359654e-02 -5.885332559464e-02 -5.864835719414e-02 + -5.844364051016e-02 -5.823912692804e-02 -5.803476766039e-02 -5.783051431075e-02 + -5.762631943806e-02 -5.742213711591e-02 -5.721792348069e-02 -5.701363726268e-02 + -5.680924029455e-02 -5.660469799155e-02 -5.639997979825e-02 -5.619505959693e-02 + -5.598991607286e-02 -5.578453303254e-02 -5.557889967100e-02 -5.537301078509e-02 + -5.516686693002e-02 -5.496047451700e-02 -5.475384585056e-02 -5.454699910461e-02 + -5.433995823682e-02 -5.413275284183e-02 -5.392541794412e-02 -5.371799373211e-02 + -5.351052523575e-02 -5.330306195026e-02 -5.309565740945e-02 -5.288836871236e-02 + -5.268125600767e-02 -5.247438194068e-02 -5.226781106798e-02 -5.206160924557e-02 + -5.185584299614e-02 -5.165057886179e-02 -5.144588274838e-02 -5.124181926813e-02 + -5.103845108688e-02 -5.083583828253e-02 -5.063403772119e-02 -5.043310245738e-02 + -5.023308116432e-02 -5.003401760029e-02 -4.983595011665e-02 -4.963891121268e-02 + -4.944292714204e-02 -4.924801757518e-02 -4.905419532156e-02 -4.886146611481e-02 + -4.866982846356e-02 -4.847927356997e-02 -4.828978531740e-02 -4.810134032783e-02 + -4.791390808919e-02 -4.772745115197e-02 -4.754192539384e-02 -4.735728035022e-02 + -4.717345960839e-02 -4.699040126172e-02 -4.680803842031e-02 -4.662629977366e-02 + -4.644511020032e-02 -4.626439141928e-02 -4.608406267718e-02 -4.590404146512e-02 + -4.572424425864e-02 -4.554458727390e-02 -4.536498723331e-02 -4.518536213327e-02 + -4.500563200702e-02 -4.482571967530e-02 -4.464555147785e-02 -4.446505797872e-02 + -4.428417463862e-02 -4.410284244797e-02 -4.392100851441e-02 -4.373862659911e-02 + -4.355565759653e-02 -4.337206995298e-02 -4.318784001969e-02 -4.300295233674e-02 + -4.281739984501e-02 -4.263118402359e-02 -4.244431495133e-02 -4.225681129131e-02 + -4.206870019822e-02 -4.188001714906e-02 -4.169080569845e-02 -4.150111716043e-02 + -4.131101021949e-02 -4.112055047405e-02 -4.092980991638e-02 -4.073886635348e-02 + -4.054780277418e-02 -4.035670666789e-02 -4.016566930135e-02 -3.997478495970e-02 + -3.978415015890e-02 -3.959386283661e-02 -3.940402152881e-02 -3.921472453995e-02 + -3.902606911397e-02 -3.883815061400e-02 -3.865106171816e-02 -3.846489163910e-02 + -3.827972537422e-02 -3.809564299377e-02 -3.791271897331e-02 -3.773102157670e-02 + -3.755061229555e-02 -3.737154535012e-02 -3.719386725652e-02 -3.701761646417e-02 + -3.684282306690e-02 -3.666950859047e-02 -3.649768585850e-02 -3.632735893798e-02 + -3.615852316507e-02 -3.599116525073e-02 -3.582526346548e-02 -3.566078790129e-02 + -3.549770080841e-02 -3.533595700383e-02 -3.517550434758e-02 -3.501628428253e-02 + -3.485823243242e-02 -3.470127925271e-02 -3.454535072804e-02 -3.439036910980e-02 + -3.423625368682e-02 -3.408292158198e-02 -3.393028856732e-02 -3.377826988986e-02 + -3.362678110046e-02 -3.347573887785e-02 -3.332506184022e-02 -3.317467133657e-02 + -3.302449221049e-02 -3.287445352921e-02 -3.272448927095e-02 -3.257453896429e-02 + -3.242454827345e-02 -3.227446952401e-02 -3.212426216424e-02 -3.197389315766e-02 + -3.182333730319e-02 -3.167257748005e-02 -3.152160481501e-02 -3.137041877061e-02 + -3.121902715362e-02 -3.106744604367e-02 -3.091569964297e-02 -3.076382004849e-02 + -3.061184694904e-02 -3.045982725021e-02 -3.030781463074e-02 -3.015586903486e-02 + -3.000405610539e-02 -2.985244656320e-02 -2.970111553908e-02 -2.955014186443e-02 + -2.939960732774e-02 -2.924959590406e-02 -2.910019296478e-02 -2.895148447566e-02 + -2.880355619054e-02 -2.865649284880e-02 -2.851037738413e-02 -2.836529015243e-02 + -2.822130818611e-02 -2.807850448220e-02 -2.793694733091e-02 -2.779669969132e-02 + -2.765781862005e-02 -2.752035475852e-02 -2.738435188364e-02 -2.724984652629e-02 + -2.711686766116e-02 -2.698543647101e-02 -2.685556618745e-02 -2.672726200976e-02 + -2.660052110244e-02 -2.647533267147e-02 -2.635167811838e-02 -2.622953127055e-02 + -2.610885868539e-02 -2.598962002538e-02 -2.587176850013e-02 -2.575525137099e-02 + -2.564001051334e-02 -2.552598303072e-02 -2.541310191483e-02 -2.530129674475e-02 + -2.519049441838e-02 -2.508061990886e-02 -2.497159703838e-02 -2.486334926163e-02 + -2.475580045111e-02 -2.464887567642e-02 -2.454250196968e-02 -2.443660906950e-02 + -2.433113013594e-02 -2.422600242929e-02 -2.412116794587e-02 -2.401657400438e-02 + -2.391217377684e-02 -2.380792675886e-02 -2.370379917418e-02 -2.359976430960e-02 + -2.349580277664e-02 -2.339190269730e-02 -2.328805981180e-02 -2.318427750724e-02 + -2.308056676666e-02 -2.297694603880e-02 -2.287344102987e-02 -2.277008441916e-02 + -2.266691550121e-02 -2.256397975805e-02 -2.246132836558e-02 -2.235901763896e-02 + -2.225710842247e-02 -2.215566542989e-02 -2.205475654182e-02 -2.195445206705e-02 + -2.185482397532e-02 -2.175594510908e-02 -2.165788838223e-02 -2.156072597389e-02 + -2.146452852529e-02 -2.136936434798e-02 -2.127529865135e-02 -2.118239279742e-02 + -2.109070359030e-02 -2.100028260795e-02 -2.091117558283e-02 -2.082342183802e-02 + -2.073705378461e-02 -2.065209648569e-02 -2.056856729147e-02 -2.048647554946e-02 + -2.040582239293e-02 -2.032660060976e-02 -2.024879459352e-02 -2.017238037718e-02 + -2.009732574940e-02 -2.002359045240e-02 -1.995112645941e-02 -1.987987832898e-02 + -1.980978363272e-02 -1.974077345190e-02 -1.967277293791e-02 -1.960570193080e-02 + -1.953947562930e-02 -1.947400530524e-02 -1.940919905487e-02 -1.934496257881e-02 + -1.928119998230e-02 -1.921781458688e-02 -1.915470974449e-02 -1.909178964500e-02 + -1.902896010775e-02 -1.896612934819e-02 -1.890320871052e-02 -1.884011335764e-02 + -1.877676290985e-02 -1.871308202456e-02 -1.864900090910e-02 -1.858445576012e-02 + -1.851938912290e-02 -1.845375016536e-02 -1.838749486172e-02 -1.832058608208e-02 + -1.825299358487e-02 -1.818469391008e-02 -1.811567017215e-02 -1.804591175256e-02 + -1.797541389295e-02 -1.790417719077e-02 -1.783220700052e-02 -1.775951274446e-02 + -1.768610713799e-02 -1.761200533545e-02 -1.753722400343e-02 -1.746178032913e-02 + -1.738569097263e-02 -1.730897097205e-02 -1.723163261191e-02 -1.715368426502e-02 + -1.707512921910e-02 -1.699596449964e-02 -1.691617970070e-02 -1.683575583571e-02 + -1.675466422040e-02 -1.667286539984e-02 -1.659030813164e-02 -1.650692843697e-02 + -1.642264873073e-02 -1.633737704175e-02 -1.625100633312e-02 -1.616341393217e-02 + -1.607446107825e-02 -1.598399259577e-02 -1.589183669781e-02 -1.579780492412e-02 + -1.570169221459e-02 -1.560327711608e-02 -1.550232211618e-02 -1.539857409182e-02 + -1.529176485305e-02 -1.518161175262e-02 -1.506781831883e-02 -1.495007485308e-02 + -1.482805891250e-02 -1.470143557339e-02 -1.456985734139e-02 -1.443296354106e-02 + -1.429037898259e-02 -1.414171166927e-02 -1.398654928194e-02 -1.382445416263e-02 + -1.365495652908e-02 -1.347754569668e-02 -1.329165917863e-02 -1.309666969376e-02 + -1.289187034811e-02 -1.267645858110e-02 -1.244951988342e-02 -1.221001279293e-02 + -1.195675723437e-02 -1.168842884544e-02 -1.140356246283e-02 -1.110056834175e-02 + -1.077776484908e-02 -1.043343118964e-02 -1.006588308793e-02 -9.673573161848e-03 + -9.255215938872e-03 -8.809935089441e-03 -8.337427575722e-03 -7.838136222039e-03 + -7.313418987037e-03 -6.765700326020e-03 -6.198587903076e-03 -5.616936991589e-03 + -5.026845591751e-03 -4.435565891169e-03 -3.851322322602e-03 -3.283033026325e-03 + -2.739939637386e-03 -2.231159361408e-03 -1.765182422079e-03 -1.349346155308e-03 + -9.893232459975e-04 -6.886649043736e-04 -4.484394419578e-04 -2.670023692688e-04 + -1.399258754277e-04 -6.010391557814e-05 -1.803512097766e-05 -2.270703901798e-06 + 0.000000000000e+00 + Type L N + 0 1 2 + 0.000000000000e+00 2.353771982045e-02 4.703126246072e-02 7.043664255459e-02 + 9.371025709773e-02 1.168090734728e-01 1.396908137151e-01 1.623141338115e-01 + 1.846387968635e-01 2.066258389926e-01 2.282377269244e-01 2.494385062490e-01 + 2.701939394308e-01 2.904716327185e-01 3.102411511896e-01 3.294741212601e-01 + 3.481443200809e-01 3.662277513457e-01 3.837027071388e-01 4.005498155560e-01 + 4.167520739412e-01 4.322948676879e-01 4.471659746643e-01 4.613555554290e-01 + 4.748561295060e-01 4.876625380942e-01 4.997718936840e-01 5.111835171462e-01 + 5.218988629518e-01 5.319214332612e-01 5.412566816998e-01 5.499119077078e-01 + 5.578961424116e-01 5.652200270217e-01 5.718956848049e-01 5.779365877159e-01 + 5.833574188020e-01 5.881739315126e-01 5.924028070528e-01 5.960615109215e-01 + 5.991681497645e-01 6.017413296526e-01 6.038000168686e-01 6.053634022499e-01 + 6.064507700868e-01 6.070813725268e-01 6.072743103718e-01 6.070484210907e-01 + 6.064221747939e-01 6.054135788409e-01 6.040400916647e-01 6.023185463108e-01 + 6.002650840995e-01 5.978950987216e-01 5.952231909868e-01 5.922631343469e-01 + 5.890278512172e-01 5.855294000274e-01 5.817789728369e-01 5.777869032597e-01 + 5.735626843543e-01 5.691149960501e-01 5.644517416029e-01 5.595800924948e-01 + 5.545065411288e-01 5.492369606023e-01 5.437766707908e-01 5.381305099240e-01 + 5.323029107950e-01 5.262979807137e-01 5.201195842873e-01 5.137714280986e-01 + 5.072571463427e-01 5.005803864845e-01 4.937448940092e-01 4.867545953549e-01 + 4.796136781419e-01 4.723266678470e-01 4.648985001110e-01 4.573345879165e-01 + 4.496408829250e-01 4.418239303257e-01 4.338909166090e-01 4.258497097545e-01 + 4.177088913903e-01 4.094777805646e-01 4.011664488472e-01 3.927857265631e-01 + 3.843472000429e-01 3.758631998601e-01 3.673467801092e-01 3.588116888611e-01 + 3.502723300150e-01 3.417437168429e-01 3.332414176018e-01 3.247814936576e-01 + 3.163804306350e-01 3.080550631686e-01 2.998224938906e-01 2.917000073379e-01 + 2.837049795112e-01 2.758547838530e-01 2.681666944459e-01 2.606577872547e-01 + 2.533448402547e-01 2.462442332946e-01 2.393718485497e-01 2.327429724076e-01 + 2.263721996245e-01 2.202733405613e-01 2.144593322878e-01 2.089421543059e-01 + 2.037327496026e-01 1.988409516986e-01 1.942754183036e-01 1.900435721372e-01 + 1.861515494058e-01 1.826041563680e-01 1.794048343462e-01 1.765556334748e-01 + 1.740571953985e-01 1.719087450626e-01 1.701080916591e-01 1.686516387173e-01 + 1.675344032536e-01 1.667500438194e-01 1.662908972161e-01 1.661480235754e-01 + 1.663112594364e-01 1.667692783906e-01 1.675096588039e-01 1.685189580736e-01 + 1.697827928292e-01 1.712859244398e-01 1.730123491572e-01 1.749453921898e-01 + 1.770678049771e-01 1.793618649168e-01 1.818094767849e-01 1.843922750799e-01 + 1.870917265291e-01 1.898892319960e-01 1.927662270470e-01 1.957042804519e-01 + 1.986851899206e-01 2.016910744095e-01 2.047044623684e-01 2.077083753393e-01 + 2.106864063668e-01 2.136227927288e-01 2.165024825512e-01 2.193111949262e-01 + 2.220354732149e-01 2.246627312753e-01 2.271812924202e-01 2.295804209726e-01 + 2.318503463514e-01 2.339822796822e-01 2.359684229928e-01 2.378019711108e-01 + 2.394771064442e-01 2.409889868794e-01 2.423337270857e-01 2.435083735663e-01 + 2.445108738420e-01 2.453400401951e-01 2.459955084410e-01 2.464776922248e-01 + 2.467877333721e-01 2.469274488416e-01 2.468992748475e-01 2.467062087312e-01 + 2.463517491662e-01 2.458398352836e-01 2.451747852985e-01 2.443612352117e-01 + 2.434040781405e-01 2.423084048193e-01 2.410794457804e-01 2.397225157004e-01 + 2.382429603636e-01 2.366461066569e-01 2.349372159719e-01 2.331214413466e-01 + 2.312037886351e-01 2.291890819459e-01 2.270819335416e-01 2.248867183438e-01 + 2.226075531370e-01 2.202482805140e-01 2.178124575605e-01 2.153033492222e-01 + 2.127239262557e-01 2.100768676170e-01 2.073645670993e-01 2.045891439908e-01 + 2.017524574875e-01 1.988561245608e-01 1.959015409492e-01 1.928899049188e-01 + 1.898222434119e-01 1.866994401884e-01 1.835222655482e-01 1.802914072140e-01 + 1.770075019497e-01 1.736711674896e-01 1.702830343557e-01 1.668437771498e-01 + 1.633541449207e-01 1.598149902221e-01 1.562272964959e-01 1.525922034425e-01 + 1.489110300652e-01 1.451852951045e-01 1.414167346139e-01 1.376073164616e-01 + 1.337592515797e-01 1.298750018223e-01 1.259572843304e-01 1.220090723465e-01 + 1.180335924563e-01 1.140343182802e-01 1.100149606744e-01 1.059794545413e-01 + 1.019319423849e-01 9.787675478457e-02 9.381838799314e-02 8.976147889568e-02 + 8.571077759600e-02 8.167111792157e-02 7.764738616089e-02 7.364448836599e-02 + 6.966731656842e-02 6.572071426826e-02 6.180944156405e-02 5.793814029516e-02 + 5.411129956823e-02 5.033322203584e-02 4.660799128748e-02 4.293944070194e-02 + 3.933112409530e-02 3.578628848022e-02 3.230784923090e-02 2.889836792353e-02 + 2.556003309484e-02 2.229464413175e-02 1.910359847339e-02 1.598788227310e-02 + 1.294806463334e-02 9.984295489944e-03 7.096307185821e-03 4.283419736712e-03 + 1.544549754771e-03 -1.121777041122e-03 -3.717409835235e-03 -6.244553386824e-03 + -8.705745539016e-03 -1.110383177136e-02 -1.344193703210e-02 -1.572343511319e-02 + -1.795191585557e-02 -2.013115049353e-02 -2.226505546551e-02 -2.435765503361e-02 + -2.641304306607e-02 -2.843534434468e-02 -3.042867576421e-02 -3.239710779132e-02 + -3.434462654823e-02 -3.627509687975e-02 -3.819222675274e-02 -4.009953332368e-02 + -4.200031099362e-02 -4.389760175020e-02 -4.579416807371e-02 -4.769246865937e-02 + -4.959463717997e-02 -5.150246428358e-02 -5.341738298916e-02 -5.534045761011e-02 + -5.727237630108e-02 -5.921344728840e-02 -6.116359880876e-02 -6.312238274467e-02 + -6.508898190980e-02 -6.706222090188e-02 -6.904058040676e-02 -7.102221480384e-02 + -7.300497289194e-02 -7.498642152444e-02 -7.696387191535e-02 -7.893440835243e-02 + -8.089491903099e-02 -8.284212870224e-02 -8.477263281323e-02 -8.668293280171e-02 + -8.856947219937e-02 -9.042867318939e-02 -9.225697326138e-02 -9.405086160630e-02 + -9.580691489786e-02 -9.752183211339e-02 -9.919246805773e-02 -1.008158652669e-01 + -1.023892839853e-01 -1.039102299287e-01 -1.053764795690e-01 -1.067861027002e-01 + -1.081374820725e-01 -1.094293299098e-01 -1.106607011583e-01 -1.118310033438e-01 + -1.129400029496e-01 -1.139878282609e-01 -1.149749686555e-01 -1.159022703550e-01 + -1.167709286865e-01 -1.175824769347e-01 -1.183387719025e-01 -1.190419763241e-01 + -1.196945383091e-01 -1.202991680218e-01 -1.208588118271e-01 -1.213766241587e-01 + -1.218559373845e-01 -1.223002299666e-01 -1.227130932248e-01 -1.230981970280e-01 + -1.234592547479e-01 -1.237999878112e-01 -1.241240901968e-01 -1.244351932169e-01 + -1.247368309228e-01 -1.250324064654e-01 -1.253251597341e-01 -1.256181365811e-01 + -1.259141599250e-01 -1.262158030064e-01 -1.265253650496e-01 -1.268448495583e-01 + -1.271759454480e-01 -1.275200111918e-01 -1.278780621240e-01 -1.282507610182e-01 + -1.286384120230e-01 -1.290409580072e-01 -1.294579813323e-01 -1.298887080400e-01 + -1.303320154065e-01 -1.307864427852e-01 -1.312502056296e-01 -1.317212125549e-01 + -1.321970852710e-01 -1.326751811922e-01 -1.331526185028e-01 -1.336263034372e-01 + -1.340929595110e-01 -1.345491584231e-01 -1.349913523329e-01 -1.354159072064e-01 + -1.358191369136e-01 -1.361973377557e-01 -1.365468230965e-01 -1.368639577731e-01 + -1.371451919650e-01 -1.373870942047e-01 -1.375863832265e-01 -1.377399583583e-01 + -1.378449281782e-01 -1.378986371762e-01 -1.378986901800e-01 -1.378429743252e-01 + -1.377296783786e-01 -1.375573092439e-01 -1.373247055109e-01 -1.370310479359e-01 + -1.366758667716e-01 -1.362590458943e-01 -1.357808237069e-01 -1.352417908294e-01 + -1.346428846135e-01 -1.339853805552e-01 -1.332708807011e-01 -1.325012991779e-01 + -1.316788449980e-01 -1.308060023196e-01 -1.298855083642e-01 -1.289203292139e-01 + -1.279136337301e-01 -1.268687658537e-01 -1.257892155562e-01 -1.246785887278e-01 + -1.235405762922e-01 -1.223789228456e-01 -1.211973951211e-01 -1.199997505751e-01 + -1.187897063949e-01 -1.175709092149e-01 -1.163469058247e-01 -1.151211151377e-01 + -1.138968016760e-01 -1.126770508114e-01 -1.114647459824e-01 -1.102625480874e-01 + -1.090728772317e-01 -1.078978969803e-01 -1.067395012465e-01 -1.055993039150e-01 + -1.044786312753e-01 -1.033785173106e-01 -1.022997018599e-01 -1.012426316429e-01 + -1.002074641104e-01 -9.919407405211e-02 -9.820206287316e-02 -9.723077041810e-02 + -9.627928920306e-02 -9.534648089053e-02 -9.443099482165e-02 -9.353128840201e-02 + -9.264564911987e-02 -9.177221796146e-02 -9.090901397593e-02 -9.005395973282e-02 + -8.920490740836e-02 -8.835966523212e-02 -8.751602402439e-02 -8.667178355546e-02 + -8.582477846197e-02 -8.497290346160e-02 -8.411413761651e-02 -8.324656740710e-02 + -8.236840839144e-02 -8.147802524137e-02 -8.057394996421e-02 -7.965489813852e-02 + -7.871978301358e-02 -7.776772734479e-02 -7.679807286118e-02 -7.581038728529e-02 + -7.480446885177e-02 -7.378034829597e-02 -7.273828831024e-02 -7.167878049103e-02 + -7.060253982543e-02 -6.951049679036e-02 -6.840378716181e-02 -6.728373965381e-02 + -6.615186152883e-02 -6.500982234069e-02 -6.385943598967e-02 -6.270264128552e-02 + -6.154148122837e-02 -6.037808122977e-02 -5.921462650548e-02 -5.805333887924e-02 + -5.689645324162e-02 -5.574619391033e-02 -5.460475113840e-02 -5.347425801392e-02 + -5.235676799010e-02 -5.125423327684e-02 -5.016848431531e-02 -4.910121054499e-02 + -4.805394265864e-02 -4.702803652456e-02 -4.602465893797e-02 -4.504477534370e-02 + -4.408913965206e-02 -4.315828624748e-02 -4.225252426709e-02 -4.137193420273e-02 + -4.051636685581e-02 -3.968544465053e-02 -3.887856528658e-02 -3.809490768857e-02 + -3.733344018619e-02 -3.659293083633e-02 -3.587195977676e-02 -3.516893348055e-02 + -3.448210076108e-02 -3.380957036041e-02 -3.314932993760e-02 -3.249926625982e-02 + -3.185718638757e-02 -3.122083963526e-02 -3.058794008119e-02 -2.995618939604e-02 + -2.932329975589e-02 -2.868701660584e-02 -2.804514104209e-02 -2.739555158481e-02 + -2.673622512098e-02 -2.606525680508e-02 -2.538087871689e-02 -2.468147708849e-02 + -2.396560792782e-02 -2.323201088260e-02 -2.247962120709e-02 -2.170757971336e-02 + -2.091524060994e-02 -2.010217715236e-02 -1.926818505259e-02 -1.841328361738e-02 + -1.753771460894e-02 -1.664193884453e-02 -1.572663057476e-02 -1.479266970298e-02 + -1.384113193037e-02 -1.287327693210e-02 -1.189053469026e-02 -1.089449012791e-02 + -9.886866205613e-03 -8.869505657690e-03 -7.844351558908e-03 -6.813426924227e-03 + -5.778813553876e-03 -4.742630343582e-03 -3.707011285036e-03 -2.674083384669e-03 + -1.645944729461e-03 -6.246429268351e-04 3.878458583268e-04 1.389637052744e-03 + 2.378956801577e-03 3.354159875321e-03 4.313746171654e-03 5.256375641609e-03 + 6.180881485704e-03 7.086281483418e-03 7.971787338636e-03 8.836811944062e-03 + 9.680974488957e-03 1.050410335676e-02 1.130623678180e-02 1.208762125740e-02 + 1.284870771074e-02 1.359014548273e-02 1.431277417404e-02 1.501761343995e-02 + 1.570585083829e-02 1.637882785450e-02 1.703802424701e-02 1.768504087319e-02 + 1.832158117235e-02 1.894943149604e-02 1.957044048797e-02 2.018649772620e-02 + 2.079951184798e-02 2.141138838337e-02 2.202400752714e-02 2.263920207982e-02 + 2.325873578700e-02 2.388428230309e-02 2.451740499922e-02 2.515953782747e-02 + 2.581196744292e-02 2.647581677303e-02 2.715203020938e-02 2.784136058105e-02 + 2.854435805091e-02 2.926136105735e-02 2.999248940339e-02 3.073763957350e-02 + 3.149648233661e-02 3.226846267043e-02 3.305280201900e-02 3.384850287202e-02 + 3.465435563084e-02 3.546894770306e-02 3.629067474499e-02 3.711775394932e-02 + 3.794823925467e-02 3.878003833383e-02 3.961093119922e-02 4.043859024768e-02 + 4.126060155118e-02 4.207448718757e-02 4.287772839391e-02 4.366778931642e-02 + 4.444214112406e-02 4.519828624862e-02 4.593378251209e-02 4.664626690234e-02 + 4.733347876094e-02 4.799328215210e-02 4.862368718879e-02 4.922287010206e-02 + 4.978919185109e-02 5.032121508538e-02 5.081771928604e-02 5.127771393086e-02 + 5.170044954638e-02 5.208542653108e-02 5.243240165487e-02 5.274139216310e-02 + 5.301267743623e-02 5.324679818036e-02 5.344455314795e-02 5.360699341205e-02 + 5.373541424165e-02 5.383134464912e-02 5.389653470374e-02 5.393294072731e-02 + 5.394270850883e-02 5.392815469492e-02 5.389174653054e-02 5.383608014139e-02 + 5.376385756367e-02 5.367786273952e-02 5.358093670717e-02 5.347595222272e-02 + 5.336578805674e-02 5.325330321213e-02 5.314131131113e-02 5.303255539785e-02 + 5.292968339910e-02 5.283522448016e-02 5.275156652379e-02 5.268093495000e-02 + 5.262537308142e-02 5.258672424414e-02 5.256661577736e-02 5.256644510648e-02 + 5.258736801457e-02 5.263028922575e-02 5.269585539147e-02 5.278445054740e-02 + 5.289619408467e-02 5.303094125445e-02 5.318828620053e-02 5.336756748938e-02 + 5.356787608332e-02 5.378806567804e-02 5.402676530291e-02 5.428239406025e-02 + 5.455317785867e-02 5.483716797625e-02 5.513226127113e-02 5.543622184111e-02 + 5.574670391955e-02 5.606127578261e-02 5.637744443306e-02 5.669268081819e-02 + 5.700444533404e-02 5.731021336534e-02 5.760750061033e-02 5.789388794143e-02 + 5.816704555760e-02 5.842475619106e-02 5.866493714029e-02 5.888566091286e-02 + 5.908517427541e-02 5.926191552376e-02 5.941452980357e-02 5.954188233155e-02 + 5.964306938765e-02 5.971742697090e-02 5.976453703467e-02 5.978423124104e-02 + 5.977659219867e-02 5.974195217329e-02 5.968088928550e-02 5.959422123483e-02 + 5.948299661438e-02 5.934848390373e-02 5.919215825128e-02 5.901568617921e-02 + 5.882090836477e-02 5.860982067129e-02 5.838455361939e-02 5.814735050485e-02 + 5.790054438318e-02 5.764653415229e-02 5.738775997413e-02 5.712667828249e-02 + 5.686573662914e-02 5.660734862178e-02 5.635386920692e-02 5.610757054764e-02 + 5.587061874023e-02 5.564505160605e-02 5.543275778402e-02 5.523545733675e-02 + 5.505468406834e-02 5.489176973492e-02 5.474783031055e-02 5.462375445044e-02 + 5.452019427195e-02 5.443755855061e-02 5.437600840441e-02 5.433545551479e-02 + 5.431556290745e-02 5.431574829037e-02 5.433518992089e-02 5.437283494816e-02 + 5.442741015241e-02 5.449743497818e-02 5.458123673551e-02 5.467696782086e-02 + 5.478262478914e-02 5.489606908901e-02 5.501504925658e-02 5.513722434733e-02 + 5.526018837332e-02 5.538149550156e-02 5.549868576161e-02 5.560931100416e-02 + 5.571096084937e-02 5.580128836283e-02 5.587803519909e-02 5.593905595692e-02 + 5.598234149781e-02 5.600604098861e-02 5.600848244105e-02 5.598819153530e-02 + 5.594390853105e-02 5.587460308796e-02 5.577948683748e-02 5.565802357014e-02 + 5.550993692543e-02 5.533521549591e-02 5.513411528277e-02 5.490715946605e-02 + 5.465513547927e-02 5.437908940524e-02 5.408031773619e-02 5.376035656812e-02 + 5.342096832463e-02 5.306412613076e-02 5.269199598101e-02 5.230691686821e-02 + 5.191137906083e-02 5.150800073550e-02 5.109950318867e-02 5.068868486613e-02 + 5.027839446235e-02 4.987150335116e-02 4.947087761775e-02 4.907934996642e-02 + 4.869969178152e-02 4.833458561811e-02 4.798659839642e-02 4.765815556799e-02 + 4.735151651311e-02 4.706875141839e-02 4.681171986935e-02 4.658205137751e-02 + 4.638112804323e-02 4.621006953516e-02 4.606972054576e-02 4.596064085801e-02 + 4.588309813406e-02 4.583706350973e-02 4.582221005205e-02 4.583791410883e-02 + 4.588325955130e-02 4.595704488227e-02 4.605779315414e-02 4.618376461337e-02 + 4.633297196070e-02 4.650319809069e-02 4.669201614880e-02 4.689681172130e-02 + 4.711480695127e-02 4.734308635432e-02 4.757862409011e-02 4.781831243034e-02 + 4.805899115110e-02 4.829747756721e-02 4.853059691873e-02 4.875521281502e-02 + 4.896825744006e-02 4.916676122353e-02 4.934788168628e-02 4.950893117558e-02 + 4.964740321505e-02 4.976099720660e-02 4.984764123661e-02 4.990551275602e-02 + 4.993305692372e-02 4.992900242451e-02 4.989237459689e-02 4.982250573109e-02 + 4.971904242527e-02 4.958194991547e-02 4.941151332459e-02 4.920833580500e-02 + 4.897333357997e-02 4.870772791906e-02 4.841303411298e-02 4.809104754267e-02 + 4.774382696633e-02 4.737367517568e-02 4.698311719925e-02 4.657487625481e-02 + 4.615184767641e-02 4.571707106185e-02 4.527370090501e-02 4.482497599352e-02 + 4.437418786529e-02 4.392464862815e-02 4.347965845449e-02 4.304247306691e-02 + 4.261627153312e-02 4.220412468609e-02 4.180896448126e-02 4.143355459463e-02 + 4.108046255513e-02 4.075203369054e-02 4.045036715066e-02 4.017729425137e-02 + 3.993435936273e-02 3.972280353965e-02 3.954355106837e-02 3.939719907415e-02 + 3.928401030630e-02 3.920390918642e-02 3.915648117406e-02 3.914097547204e-02 + 3.915631106100e-02 3.920108602021e-02 3.927359005955e-02 3.937182015532e-02 + 3.949349915225e-02 3.963609716382e-02 3.979685557516e-02 3.997281342611e-02 + 4.016083592758e-02 4.035764484233e-02 4.055985044123e-02 4.076398472951e-02 + 4.096653562301e-02 4.116398174365e-02 4.135282749506e-02 4.152963807509e-02 + 4.169107408004e-02 4.183392535782e-02 4.195514377239e-02 4.205187455044e-02 + 4.212148589317e-02 4.216159655119e-02 4.217010107834e-02 4.214519250144e-02 + 4.208538216642e-02 4.198951654733e-02 4.185679083319e-02 4.168675913793e-02 + 4.147934121038e-02 4.123482555509e-02 4.095386890893e-02 4.063749205376e-02 + 4.028707198118e-02 3.990433046106e-02 3.949131910104e-02 3.905040101927e-02 + 3.858422928635e-02 3.809572232540e-02 3.758803649019e-02 3.706453607037e-02 + 3.652876100015e-02 3.598439257098e-02 3.543521747093e-02 3.488509049203e-02 + 3.433789626307e-02 3.379751037713e-02 3.326776029260e-02 3.275238639167e-02 + 3.225500358183e-02 3.177906382420e-02 3.132781996678e-02 3.090429125127e-02 + 3.051123084926e-02 3.015109576707e-02 2.982601943877e-02 2.953778730356e-02 + 2.928781563792e-02 2.907713388369e-02 2.890637068198e-02 2.877574378895e-02 + 2.868505401373e-02 2.863368328145e-02 2.862059688558e-02 2.864434995402e-02 + 2.870309811337e-02 2.879461229491e-02 2.891629758589e-02 2.906521598970e-02 + 2.923811291956e-02 2.943144721292e-02 2.964142441774e-02 2.986403306773e-02 + 3.009508363222e-02 3.033024979717e-02 3.056511170779e-02 3.079520078051e-02 + 3.101604567248e-02 3.122321898115e-02 3.141238423447e-02 3.157934272434e-02 + 3.172007973204e-02 3.183080969470e-02 3.190801986627e-02 3.194851203510e-02 + 3.194944187309e-02 3.190835550803e-02 3.182322293174e-02 3.169246788094e-02 + 3.151499385613e-02 3.129020597492e-02 3.101802839123e-02 3.069891704895e-02 + 3.033386757849e-02 2.992441818693e-02 2.947264743617e-02 2.898116684875e-02 + 2.845310832741e-02 2.789210642122e-02 2.730227551822e-02 2.668818209147e-02 + 2.605481217135e-02 2.540753426250e-02 2.475205796677e-02 2.409438861610e-02 + 2.344077825793e-02 2.279767337310e-02 2.217165973985e-02 2.156940488781e-02 + 2.099759861317e-02 2.046289204880e-02 1.997183580215e-02 1.953081768836e-02 + 1.914600059580e-02 1.882326102701e-02 1.856812885860e-02 1.838572885953e-02 + 1.828072449885e-02 1.825726455994e-02 1.831893306063e-02 1.846870295550e-02 + 1.870889406941e-02 1.904113567973e-02 1.946633412840e-02 1.998464580433e-02 + 2.059545579128e-02 2.129736242578e-02 2.208816795282e-02 2.296487540320e-02 + 2.392369174252e-02 2.496003725579e-02 2.606856102904e-02 2.724316226486e-02 + 2.847701701674e-02 2.976260973982e-02 3.109176882712e-02 3.245570502497e-02 + 3.384505129727e-02 3.524990234232e-02 3.665985157366e-02 3.806402299150e-02 + 3.945109504796e-02 4.080931342742e-02 4.212648973233e-02 4.338998352063e-02 + 4.458666614130e-02 4.570286652228e-02 4.672430162440e-02 4.763599777664e-02 + 4.842221354644e-02 4.906638001972e-02 4.955108002329e-02 4.985809334103e-02 + 4.996853953670e-02 4.986315256700e-02 4.952272077231e-02 4.892872088250e-02 + 4.806416435631e-02 4.691465807099e-02 4.546965912408e-02 4.372387619574e-02 + 4.167873945871e-02 3.934383037222e-02 3.673813572791e-02 3.389097148938e-02 + 3.084241581914e-02 2.764310116493e-02 2.435324500351e-02 2.104084841094e-02 + 1.777905907762e-02 1.464277594399e-02 1.170465887984e-02 9.030789294132e-03 + 6.676295746076e-03 4.681302352360e-03 3.067568689341e-03 1.836162847991e-03 + 9.664435244762e-04 4.165266291689e-04 1.252857545735e-04 1.579676576049e-05 + 0.000000000000e+00 + Type L N + 0 2 0 + 0.000000000000e+00 7.178134451301e-05 2.870337590894e-04 6.454825993306e-04 + 1.146670917815e-03 1.789960627966e-03 2.574534139601e-03 3.499396443688e-03 + 4.563377642685e-03 5.765135910481e-03 7.103160870580e-03 8.575777375015e-03 + 1.018114966728e-02 1.191728590970e-02 1.378204305443e-02 1.577313203577e-02 + 1.788812326037e-02 2.012445237113e-02 2.247942625872e-02 2.495022929527e-02 + 2.753392976276e-02 3.022748644956e-02 3.302775538720e-02 3.593149670043e-02 + 3.893538154286e-02 4.203599909132e-02 4.522986357248e-02 4.851342129545e-02 + 5.188305766559e-02 5.533510415492e-02 5.886584520611e-02 6.247152504786e-02 + 6.614835440100e-02 6.989251705598e-02 7.370017630360e-02 7.756748120300e-02 + 8.149057267185e-02 8.546558938596e-02 8.948867347670e-02 9.355597601683e-02 + 9.766366228672e-02 1.018079168147e-01 1.059849481875e-01 1.101909936270e-01 + 1.144223233337e-01 1.186752445953e-01 1.229461056642e-01 1.272312994058e-01 + 1.315272667228e-01 1.358304997614e-01 1.401375449057e-01 1.444450055691e-01 + 1.487495447903e-01 1.530478876453e-01 1.573368234826e-01 1.616132079954e-01 + 1.658739651393e-01 1.701160889080e-01 1.743366449772e-01 1.785327722291e-01 + 1.827016841676e-01 1.868406702343e-01 1.909470970372e-01 1.950184095010e-01 + 1.990521319470e-01 2.030458691132e-01 2.069973071203e-01 2.109042143913e-01 + 2.147644425300e-01 2.185759271637e-01 2.223366887532e-01 2.260448333735e-01 + 2.296985534659e-01 2.332961285635e-01 2.368359259883e-01 2.403164015184e-01 + 2.437361000242e-01 2.470936560680e-01 2.503877944643e-01 2.536173307941e-01 + 2.567811718687e-01 2.598783161344e-01 2.629078540119e-01 2.658689681622e-01 + 2.687609336703e-01 2.715831181385e-01 2.743349816801e-01 2.770160768045e-01 + 2.796260481848e-01 2.821646322991e-01 2.846316569368e-01 2.870270405617e-01 + 2.893507915244e-01 2.916030071159e-01 2.937838724568e-01 2.958936592165e-01 + 2.979327241558e-01 2.999015074910e-01 3.018005310753e-01 3.036303963958e-01 + 3.053917823855e-01 3.070854430504e-01 3.087122049138e-01 3.102729642800e-01 + 3.117686843217e-01 3.132003919968e-01 3.145691748007e-01 3.158761773616e-01 + 3.171225978887e-01 3.183096844825e-01 3.194387313184e-01 3.205110747165e-01 + 3.215280891102e-01 3.224911829276e-01 3.234017944007e-01 3.242613873178e-01 + 3.250714467358e-01 3.258334746676e-01 3.265489857632e-01 3.272195030005e-01 + 3.278465534041e-01 3.284316638083e-01 3.289763566833e-01 3.294821460400e-01 + 3.299505334311e-01 3.303830040645e-01 3.307810230451e-01 3.311460317596e-01 + 3.314794444187e-01 3.317826447703e-01 3.320569829964e-01 3.323037728045e-01 + 3.325242887240e-01 3.327197636176e-01 3.328913864141e-01 3.330403000707e-01 + 3.331675997688e-01 3.332743313479e-01 3.333614899808e-01 3.334300190898e-01 + 3.334808095046e-01 3.335146988611e-01 3.335324712362e-01 3.335348570169e-01 + 3.335225329963e-01 3.334961226910e-01 3.334561968719e-01 3.334032742993e-01 + 3.333378226533e-01 3.332602596472e-01 3.331709543145e-01 3.330702284554e-01 + 3.329583582309e-01 3.328355758905e-01 3.327020716204e-01 3.325579954971e-01 + 3.324034595327e-01 3.322385397965e-01 3.320632786004e-01 3.318776867305e-01 + 3.316817457137e-01 3.314754101037e-01 3.312586097732e-01 3.310312521991e-01 + 3.307932247286e-01 3.305443968140e-01 3.302846222045e-01 3.300137410855e-01 + 3.297315821551e-01 3.294379646291e-01 3.291327001664e-01 3.288155947089e-01 + 3.284864502277e-01 3.281450663734e-01 3.277912420235e-01 3.274247767258e-01 + 3.270454720348e-01 3.266531327399e-01 3.262475679848e-01 3.258285922791e-01 + 3.253960264031e-01 3.249496982080e-01 3.244894433141e-01 3.240151057111e-01 + 3.235265382640e-01 3.230236031293e-01 3.225061720878e-01 3.219741267977e-01 + 3.214273589753e-01 3.208657705097e-01 3.202892735159e-01 3.196977903361e-01 + 3.190912534920e-01 3.184696055980e-01 3.178327992398e-01 3.171807968251e-01 + 3.165135704132e-01 3.158311015288e-01 3.151333809650e-01 3.144204085828e-01 + 3.136921931093e-01 3.129487519405e-01 3.121901109528e-01 3.114163043257e-01 + 3.106273743789e-01 3.098233714272e-01 3.090043536530e-01 3.081703870000e-01 + 3.073215450875e-01 3.064579091460e-01 3.055795679733e-01 3.046866179124e-01 + 3.037791628473e-01 3.028573142168e-01 3.019211910449e-01 3.009709199837e-01 + 3.000066353677e-01 2.990284792760e-01 2.980366015995e-01 2.970311601096e-01 + 2.960123205256e-01 2.949802565766e-01 2.939351500550e-01 2.928771908572e-01 + 2.918065770101e-01 2.907235146773e-01 2.896282181444e-01 2.885209097789e-01 + 2.874018199626e-01 2.862711869938e-01 2.851292569574e-01 2.839762835612e-01 + 2.828125279361e-01 2.816382584002e-01 2.804537501854e-01 2.792592851268e-01 + 2.780551513135e-01 2.768416427035e-01 2.756190587022e-01 2.743877037054e-01 + 2.731478866101e-01 2.718999202934e-01 2.706441210630e-01 2.693808080818e-01 + 2.681103027691e-01 2.668329281827e-01 2.655490083841e-01 2.642588677918e-01 + 2.629628305257e-01 2.616612197468e-01 2.603543569973e-01 2.590425615431e-01 + 2.577261497254e-01 2.564054343234e-01 2.550807239336e-01 2.537523223690e-01 + 2.524205280819e-01 2.510856336148e-01 2.497479250814e-01 2.484076816821e-01 + 2.470651752564e-01 2.457206698752e-01 2.443744214738e-01 2.430266775303e-01 + 2.416776767878e-01 2.403276490244e-01 2.389768148696e-01 2.376253856693e-01 + 2.362735633985e-01 2.349215406215e-01 2.335695004993e-01 2.322176168427e-01 + 2.308660542107e-01 2.295149680505e-01 2.281645048801e-01 2.268148025079e-01 + 2.254659902893e-01 2.241181894169e-01 2.227715132395e-01 2.214260676101e-01 + 2.200819512566e-01 2.187392561734e-01 2.173980680295e-01 2.160584665911e-01 + 2.147205261531e-01 2.133843159777e-01 2.120499007356e-01 2.107173409477e-01 + 2.093866934224e-01 2.080580116870e-01 2.067313464089e-01 2.054067458057e-01 + 2.040842560397e-01 2.027639215959e-01 2.014457856411e-01 2.001298903626e-01 + 1.988162772844e-01 1.975049875605e-01 1.961960622439e-01 1.948895425313e-01 + 1.935854699820e-01 1.922838867126e-01 1.909848355661e-01 1.896883602570e-01 + 1.883945054925e-01 1.871033170714e-01 1.858148419608e-01 1.845291283528e-01 + 1.832462257028e-01 1.819661847500e-01 1.806890575230e-01 1.794148973316e-01 + 1.781437587474e-01 1.768756975739e-01 1.756107708097e-01 1.743490366054e-01 + 1.730905542168e-01 1.718353839558e-01 1.705835871410e-01 1.693352260502e-01 + 1.680903638747e-01 1.668490646785e-01 1.656113933627e-01 1.643774156363e-01 + 1.631471979940e-01 1.619208077023e-01 1.606983127936e-01 1.594797820690e-01 + 1.582652851095e-01 1.570548922957e-01 1.558486748356e-01 1.546467047996e-01 + 1.534490551626e-01 1.522557998511e-01 1.510670137957e-01 1.498827729867e-01 + 1.487031545317e-01 1.475282367141e-01 1.463580990499e-01 1.451928223430e-01 + 1.440324887355e-01 1.428771817522e-01 1.417269863377e-01 1.405819888841e-01 + 1.394422772484e-01 1.383079407565e-01 1.371790701945e-01 1.360557577845e-01 + 1.349380971443e-01 1.338261832296e-01 1.327201122584e-01 1.316199816166e-01 + 1.305258897445e-01 1.294379360037e-01 1.283562205247e-01 1.272808440351e-01 + 1.262119076693e-01 1.251495127593e-01 1.240937606089e-01 1.230447522513e-01 + 1.220025881919e-01 1.209673681372e-01 1.199391907125e-01 1.189181531695e-01 + 1.179043510856e-01 1.168978780578e-01 1.158988253933e-01 1.149072817984e-01 + 1.139233330690e-01 1.129470617851e-01 1.119785470111e-01 1.110178640052e-01 + 1.100650839403e-01 1.091202736380e-01 1.081834953190e-01 1.072548063722e-01 + 1.063342591428e-01 1.054219007445e-01 1.045177728948e-01 1.036219117758e-01 + 1.027343479229e-01 1.018551061411e-01 1.009842054510e-01 1.001216590636e-01 + 9.926747438676e-02 9.842165306066e-02 9.758419102407e-02 9.675507861019e-02 + 9.593430067154e-02 9.512183673289e-02 9.431766117100e-02 9.352174341974e-02 + 9.273404819881e-02 9.195453576412e-02 9.118316217773e-02 9.041987959496e-02 + 8.966463656615e-02 8.891737835054e-02 8.817804723933e-02 8.744658288524e-02 + 8.672292263557e-02 8.600700186577e-02 8.529875431069e-02 8.459811239043e-02 + 8.390500752805e-02 8.321937045620e-02 8.254113151010e-02 8.187022090425e-02 + 8.120656899039e-02 8.055010649473e-02 7.990076473215e-02 7.925847579580e-02 + 7.862317272047e-02 7.799478961851e-02 7.737326178724e-02 7.675852578712e-02 + 7.615051949044e-02 7.554918210011e-02 7.495445413904e-02 7.436627741032e-02 + 7.378459492921e-02 7.320935082777e-02 7.264049023377e-02 7.207795912515e-02 + 7.152170416220e-02 7.097167249935e-02 7.042781157905e-02 6.989006891008e-02 + 6.935839183313e-02 6.883272727635e-02 6.831302150386e-02 6.779921986027e-02 + 6.729126651417e-02 6.678910420386e-02 6.629267398831e-02 6.580191500639e-02 + 6.531676424753e-02 6.483715633651e-02 6.436302333538e-02 6.389429456489e-02 + 6.343089644819e-02 6.297275237872e-02 6.251978261465e-02 6.207190420132e-02 + 6.162903092348e-02 6.119107328836e-02 6.075793854064e-02 6.032953070989e-02 + 5.990575069075e-02 5.948649635606e-02 5.907166270232e-02 5.866114202716e-02 + 5.825482413767e-02 5.785259658839e-02 5.745434494757e-02 5.705995308962e-02 + 5.666930351187e-02 5.628227767330e-02 5.589875635257e-02 5.551862002274e-02 + 5.514174923964e-02 5.476802504087e-02 5.439732935233e-02 5.402954539874e-02 + 5.366455811507e-02 5.330225455543e-02 5.294252429587e-02 5.258525982809e-02 + 5.223035694043e-02 5.187771508324e-02 5.152723771540e-02 5.117883262919e-02 + 5.083241225067e-02 5.048789391323e-02 5.014520010183e-02 4.980425866596e-02 + 4.946500299965e-02 4.912737218681e-02 4.879131111088e-02 4.845677052790e-02 + 4.812370710226e-02 4.779208340507e-02 4.746186787507e-02 4.713303474256e-02 + 4.680556391700e-02 4.647944083924e-02 4.615465629983e-02 4.583120622479e-02 + 4.550909143097e-02 4.518831735276e-02 4.486889374290e-02 4.455083434951e-02 + 4.423415657251e-02 4.391888110189e-02 4.360503154125e-02 4.329263401941e-02 + 4.298171679359e-02 4.267230984709e-02 4.236444448504e-02 4.205815293123e-02 + 4.175346792938e-02 4.145042235187e-02 4.114904881903e-02 4.084937933182e-02 + 4.055144492077e-02 4.025527531356e-02 3.996089862381e-02 3.966834106303e-02 + 3.937762667789e-02 3.908877711417e-02 3.880181140907e-02 3.851674581284e-02 + 3.823359364061e-02 3.795236515496e-02 3.767306747960e-02 3.739570454399e-02 + 3.712027705870e-02 3.684678252095e-02 3.657521524940e-02 3.630556644717e-02 + 3.603782429176e-02 3.577197405025e-02 3.550799821804e-02 3.524587667924e-02 + 3.498558688648e-02 3.472710405799e-02 3.447040138951e-02 3.421545027861e-02 + 3.396222055886e-02 3.371068074129e-02 3.346079826055e-02 3.321253972330e-02 + 3.296587115608e-02 3.272075825041e-02 3.247716660271e-02 3.223506194657e-02 + 3.199441037557e-02 3.175517855432e-02 3.151733391617e-02 3.128084484582e-02 + 3.104568084542e-02 3.081181268296e-02 3.057921252197e-02 3.034785403168e-02 + 3.011771247720e-02 2.988876478926e-02 2.966098961367e-02 2.943436734036e-02 + 2.920888011263e-02 2.898451181706e-02 2.876124805488e-02 2.853907609589e-02 + 2.831798481597e-02 2.809796461963e-02 2.787900734896e-02 2.766110618073e-02 + 2.744425551321e-02 2.722845084462e-02 2.701368864497e-02 2.679996622331e-02 + 2.658728159220e-02 2.637563333139e-02 2.616502045259e-02 2.595544226715e-02 + 2.574689825840e-02 2.553938796046e-02 2.533291084494e-02 2.512746621705e-02 + 2.492305312246e-02 2.471967026600e-02 2.451731594324e-02 2.431598798565e-02 + 2.411568372015e-02 2.391639994319e-02 2.371813290988e-02 2.352087833795e-02 + 2.332463142650e-02 2.312938688913e-02 2.293513900089e-02 2.274188165825e-02 + 2.254960845126e-02 2.235831274679e-02 2.216798778147e-02 2.197862676325e-02 + 2.179022297985e-02 2.160276991252e-02 2.141626135370e-02 2.123069152650e-02 + 2.104605520447e-02 2.086234782987e-02 2.067956562851e-02 2.049770571950e-02 + 2.031676621827e-02 2.013674633105e-02 1.995764643940e-02 1.977946817320e-02 + 1.960221447093e-02 1.942588962593e-02 1.925049931764e-02 1.907605062696e-02 + 1.890255203509e-02 1.873001340530e-02 1.855844594732e-02 1.838786216434e-02 + 1.821827578274e-02 1.804970166468e-02 1.788215570442e-02 1.771565470872e-02 + 1.755021626260e-02 1.738585858128e-02 1.722260034983e-02 1.706046055176e-02 + 1.689945828840e-02 1.673961259059e-02 1.658094222462e-02 1.642346549446e-02 + 1.626720004216e-02 1.611216264854e-02 1.595836903636e-02 1.580583367806e-02 + 1.565456961008e-02 1.550458825598e-02 1.535589926029e-02 1.520851033505e-02 + 1.506242712081e-02 1.491765306395e-02 1.477418931163e-02 1.463203462603e-02 + 1.449118531890e-02 1.435163520753e-02 1.421337559297e-02 1.407639526106e-02 + 1.394068050660e-02 1.380621518090e-02 1.367298076256e-02 1.354095645105e-02 + 1.341011928270e-02 1.328044426809e-02 1.315190454993e-02 1.302447158014e-02 + 1.289811531459e-02 1.277280442391e-02 1.264850651853e-02 1.252518838580e-02 + 1.240281623724e-02 1.228135596345e-02 1.216077339442e-02 1.204103456266e-02 + 1.192210596676e-02 1.180395483275e-02 1.168654937071e-02 1.156985902411e-02 + 1.145385470948e-02 1.133850904383e-02 1.122379655768e-02 1.110969389147e-02 + 1.099617997321e-02 1.088323617570e-02 1.077084645140e-02 1.065899744375e-02 + 1.054767857340e-02 1.043688209862e-02 1.032660314887e-02 1.021683973127e-02 + 1.010759270959e-02 9.998865755762e-03 9.890665274411e-03 9.783000300814e-03 + 9.675882373215e-03 9.569325380609e-03 9.463345387348e-03 9.357960436190e-03 + 9.253190331614e-03 9.149056405462e-03 9.045581267126e-03 8.942788540697e-03 + 8.840702591626e-03 8.739348245567e-03 8.638750502174e-03 8.538934246695e-03 + 8.439923962243e-03 8.341743445629e-03 8.244415529651e-03 8.147961814653e-03 + 8.052402412124e-03 7.957755702996e-03 7.864038113155e-03 7.771263908551e-03 + 7.679445012095e-03 7.588590844324e-03 7.498708189616e-03 7.409801089455e-03 + 7.321870764025e-03 7.234915563106e-03 7.148930946973e-03 7.063909497714e-03 + 6.979840961045e-03 6.896712318445e-03 6.814507889077e-03 6.733209460716e-03 + 6.652796448548e-03 6.573246080466e-03 6.494533607195e-03 6.416632535306e-03 + 6.339514880962e-03 6.263151441992e-03 6.187512085700e-03 6.112566049638e-03 + 6.038282252417e-03 5.964629611512e-03 5.891577364923e-03 5.819095393477e-03 + 5.747154540560e-03 5.675726926015e-03 5.604786251027e-03 5.534308090832e-03 + 5.464270172227e-03 5.394652632934e-03 5.325438260075e-03 5.256612705157e-03 + 5.188164673202e-03 5.120086083877e-03 5.052372202740e-03 4.985021741002e-03 + 4.918036922476e-03 4.851423516729e-03 4.785190837741e-03 4.719351707723e-03 + 4.653922386069e-03 4.588922463782e-03 4.524374723999e-03 4.460304969641e-03 + 4.396741819477e-03 4.333716474235e-03 4.271262454711e-03 4.209415314066e-03 + 4.148212326803e-03 4.087692157147e-03 4.027894509765e-03 3.968859765959e-03 + 3.910628608617e-03 3.853241639363e-03 3.796738991404e-03 3.741159941686e-03 + 3.686542525966e-03 3.632923160424e-03 3.580336273388e-03 3.528813950694e-03 + 3.478385598074e-03 3.429077623846e-03 3.380913144987e-03 3.333911719504e-03 + 3.288089107753e-03 3.243457065117e-03 3.200023168180e-03 3.157790676225e-03 + 3.116758429546e-03 3.076920785778e-03 3.038267595042e-03 3.000784214379e-03 + 2.964451561582e-03 2.929246208150e-03 2.895140510747e-03 2.862102780160e-03 + 2.830097486428e-03 2.799085498450e-03 2.769024356055e-03 2.739868572225e-03 + 2.711569962856e-03 2.684078001177e-03 2.657340193727e-03 2.631302474563e-03 + 2.605909614196e-03 2.581105639610e-03 2.556834261605e-03 2.533039305623e-03 + 2.509665142181e-03 2.486657113028e-03 2.463961949162e-03 2.441528176936e-03 + 2.419306508562e-03 2.397250213468e-03 2.375315467138e-03 2.353461674270e-03 + 2.331651763314e-03 2.309852449708e-03 2.288034465451e-03 2.266172752912e-03 + 2.244246621144e-03 2.222239863309e-03 2.200140834165e-03 2.177942486956e-03 + 2.155642369413e-03 2.133242578960e-03 2.110749677588e-03 2.088174567246e-03 + 2.065532326964e-03 2.042842013265e-03 2.020126425789e-03 1.997411840344e-03 + 1.974727711935e-03 1.952106350561e-03 1.929582572861e-03 1.907193332877e-03 + 1.884977335421e-03 1.862974635658e-03 1.841226228675e-03 1.819773632874e-03 + 1.798658471060e-03 1.777922053158e-03 1.757604964409e-03 1.737746662873e-03 + 1.718385089967e-03 1.699556297605e-03 1.681294095376e-03 1.663629720967e-03 + 1.646591536820e-03 1.630204755763e-03 1.614491198038e-03 1.599469081883e-03 + 1.585152849459e-03 1.571553029600e-03 1.558676138473e-03 1.546524618901e-03 + 1.535096818702e-03 1.524387008022e-03 1.514385435281e-03 1.505078420958e-03 + 1.496448488087e-03 1.488474527982e-03 1.481131999379e-03 1.474393158840e-03 + 1.468227320014e-03 1.462601139013e-03 1.457478922985e-03 1.452822958691e-03 + 1.448593857753e-03 1.444750915059e-03 1.441252476708e-03 1.438056313816e-03 + 1.435119998411e-03 1.432401277705e-03 1.429858443008e-03 1.427450689646e-03 + 1.425138464347e-03 1.422883796686e-03 1.420650611370e-03 1.418405018348e-03 + 1.416115577942e-03 1.413753538499e-03 1.411293044324e-03 1.408711311967e-03 + 1.405988773276e-03 1.403109183969e-03 1.400059696831e-03 1.396830899019e-03 + 1.393416813309e-03 1.389814863520e-03 1.386025804687e-03 1.382053618950e-03 + 1.377905378449e-03 1.373591076886e-03 1.369123431712e-03 1.364517659209e-03 + 1.359791225027e-03 1.354963572972e-03 1.350055835072e-03 1.345090526158e-03 + 1.340091226314e-03 1.335082254736e-03 1.330088338568e-03 1.325134280387e-03 + 1.320244627980e-03 1.315443350067e-03 1.310753521538e-03 1.306197021692e-03 + 1.301794248805e-03 1.297563854221e-03 1.293522498904e-03 1.289684635222e-03 + 1.286062316381e-03 1.282665035732e-03 1.279499597766e-03 1.276570022346e-03 + 1.273877483332e-03 1.271420282396e-03 1.269193858445e-03 1.267190832699e-03 + 1.265401089050e-03 1.263811888987e-03 1.262408019942e-03 1.261171975588e-03 + 1.260084166225e-03 1.259123157061e-03 1.258265931889e-03 1.257488179329e-03 + 1.256764598567e-03 1.256069221259e-03 1.255375746073e-03 1.254657882162e-03 + 1.253889697719e-03 1.253045969679e-03 1.252102530568e-03 1.251036608468e-03 + 1.249827156115e-03 1.248455165195e-03 1.246903962003e-03 1.245159480791e-03 + 1.243210511309e-03 1.241048917250e-03 1.238669822607e-03 1.236071763183e-03 + 1.233256800884e-03 1.230230598718e-03 1.227002454832e-03 1.223585294304e-03 + 1.219995617827e-03 1.216253406838e-03 1.212381985105e-03 1.208407837201e-03 + 1.204360384764e-03 1.200271721869e-03 1.196176311280e-03 1.192110643761e-03 + 1.188112863059e-03 1.184222359526e-03 1.180479335734e-03 1.176924347772e-03 + 1.173597826197e-03 1.170539580923e-03 1.167788294524e-03 1.165381008644e-03 + 1.163352608357e-03 1.161735309430e-03 1.160558153495e-03 1.159846516149e-03 + 1.159621633002e-03 1.159900148561e-03 1.160693692745e-03 1.162008489629e-03 + 1.163845002784e-03 1.166197621278e-03 1.169054390067e-03 1.172396788073e-03 + 1.176199556742e-03 1.180430581275e-03 1.185050826006e-03 1.190014324476e-03 + 1.195268223709e-03 1.200752880740e-03 1.206402007798e-03 1.212142860311e-03 + 1.217896459261e-03 1.223577836049e-03 1.229096284108e-03 1.234355596804e-03 + 1.239254265987e-03 1.243685610069e-03 1.247537795214e-03 1.250693708939e-03 + 1.253030643260e-03 1.254419745990e-03 1.254725205838e-03 1.253803151713e-03 + 1.251500271431e-03 1.247652191945e-03 1.242081713695e-03 1.234597055936e-03 + 1.224990346281e-03 1.213036671935e-03 1.198494094895e-03 1.181105107936e-03 + 1.160600058454e-03 1.136703076609e-03 1.109140995104e-03 1.077655623903e-03 + 1.042019532246e-03 1.002055187734e-03 9.576569147457e-04 9.088146822842e-04 + 8.556382502198e-04 7.983797434367e-04 7.374523479483e-04 6.734426001632e-04 + 6.071137363907e-04 5.393978382182e-04 4.713750811802e-04 4.042392668743e-04 + 3.392499503276e-04 2.776727810949e-04 2.207110364072e-04 1.694325881947e-04 + 1.246975521146e-04 8.709246421976e-05 5.687689937986e-05 3.394791666666e-05 + 1.782658941679e-05 7.669224498780e-06 2.303840394477e-06 2.902582909615e-07 + 0.000000000000e+00 + Type L N + 0 2 1 + 0.000000000000e+00 -1.344964533376e-04 -5.377154898535e-04 -1.208847356325e-03 + -2.146546575734e-03 -3.348938073802e-03 -4.813625698213e-03 -6.537703069216e-03 + -8.517766681948e-03 -1.074993116966e-02 -1.322984661841e-02 -1.595271781227e-02 + -1.891332527327e-02 -2.210604794895e-02 -2.552488738938e-02 -2.916349324632e-02 + -3.301518991840e-02 -3.707300416005e-02 -4.132969346639e-02 -4.577777504261e-02 + -5.040955516432e-02 -5.521715873463e-02 -6.019255884467e-02 -6.532760614691e-02 + -7.061405785457e-02 -7.604360618566e-02 -8.160790607780e-02 -8.729860200728e-02 + -9.310735375630e-02 -9.902586098225e-02 -1.050458864555e-01 -1.111592778441e-01 + -1.173579879386e-01 -1.236340932232e-01 -1.299798107158e-01 -1.363875130143e-01 + -1.428497415028e-01 -1.493592176861e-01 -1.559088526402e-01 -1.624917545784e-01 + -1.691012345515e-01 -1.757308103157e-01 -1.823742084151e-01 -1.890253645424e-01 + -1.956784222530e-01 -2.023277301235e-01 -2.089678374527e-01 -2.155934886200e-01 + -2.221996162206e-01 -2.287813331087e-01 -2.353339234863e-01 -2.418528331791e-01 + -2.483336592501e-01 -2.547721390996e-01 -2.611641392049e-01 -2.675056436533e-01 + -2.737927426193e-01 -2.800216209367e-01 -2.861885469088e-01 -2.922898615000e-01 + -2.983219680401e-01 -3.042813225693e-01 -3.101644249400e-01 -3.159678107847e-01 + -3.216880444463e-01 -3.273217129561e-01 -3.328654211342e-01 -3.383157878716e-01 + -3.436694436427e-01 -3.489230292807e-01 -3.540731960375e-01 -3.591166069330e-01 + -3.640499393869e-01 -3.688698891109e-01 -3.735731752275e-01 -3.781565465667e-01 + -3.826167890816e-01 -3.869507343097e-01 -3.911552687978e-01 -3.952273443977e-01 + -3.991639893290e-01 -4.029623199000e-01 -4.066195527683e-01 -4.101330176169e-01 + -4.135001701185e-01 -4.167186050554e-01 -4.197860694606e-01 -4.227004756457e-01 + -4.254599139794e-01 -4.280626652849e-01 -4.305072127243e-01 -4.327922530443e-01 + -4.349167070619e-01 -4.368797292745e-01 -4.386807164889e-01 -4.403193153669e-01 + -4.417954288020e-01 -4.431092210433e-01 -4.442611215010e-01 -4.452518271750e-01 + -4.460823036611e-01 -4.467537847027e-01 -4.472677702666e-01 -4.476260231368e-01 + -4.478305640309e-01 -4.478836652573e-01 -4.477878429451e-01 -4.475458478879e-01 + -4.471606550593e-01 -4.466354518640e-01 -4.459736252032e-01 -4.451787474418e-01 + -4.442545613726e-01 -4.432049642838e-01 -4.420339912411e-01 -4.407457977042e-01 + -4.393446416005e-01 -4.378348649850e-01 -4.362208754173e-01 -4.345071271901e-01 + -4.326981025407e-01 -4.307982929814e-01 -4.288121808794e-01 -4.267442214152e-01 + -4.245988250456e-01 -4.223803405901e-01 -4.200930390563e-01 -4.177410983111e-01 + -4.153285886968e-01 -4.128594596832e-01 -4.103375276380e-01 -4.077664647855e-01 + -4.051497894156e-01 -4.024908573925e-01 -3.997928550023e-01 -3.970587931649e-01 + -3.942915030282e-01 -3.914936329450e-01 -3.886676468269e-01 -3.858158238541e-01 + -3.829402595113e-01 -3.800428679076e-01 -3.771253853284e-01 -3.741893749583e-01 + -3.712362327036e-01 -3.682671940364e-01 -3.652833417721e-01 -3.622856146891e-01 + -3.592748168905e-01 -3.562516278040e-01 -3.532166127134e-01 -3.501702337111e-01 + -3.471128609585e-01 -3.440447841442e-01 -3.409662240248e-01 -3.378773439403e-01 + -3.347782611934e-01 -3.316690581893e-01 -3.285497932340e-01 -3.254205108975e-01 + -3.222812518499e-01 -3.191320620905e-01 -3.159730014921e-01 -3.128041515962e-01 + -3.096256225979e-01 -3.064375594734e-01 -3.032401472093e-01 -3.000336151024e-01 + -2.968182401125e-01 -2.935943492540e-01 -2.903623210293e-01 -2.871225859105e-01 + -2.838756258898e-01 -2.806219731263e-01 -2.773622077258e-01 -2.740969546992e-01 + -2.708268801531e-01 -2.675526867721e-01 -2.642751086613e-01 -2.609949056206e-01 + -2.577128569293e-01 -2.544297547236e-01 -2.511463970515e-01 -2.478635806941e-01 + -2.445820938425e-01 -2.413027087206e-01 -2.380261742433e-01 -2.347532087998e-01 + -2.314844932483e-01 -2.282206642058e-01 -2.249623077140e-01 -2.217099533557e-01 + -2.184640688938e-01 -2.152250554959e-01 -2.119932436042e-01 -2.087688895001e-01 + -2.055521726087e-01 -2.023431935775e-01 -1.991419731580e-01 -1.959484519078e-01 + -1.927624907254e-01 -1.895838722175e-01 -1.864123028940e-01 -1.832474161735e-01 + -1.800887761777e-01 -1.769358822802e-01 -1.737881743736e-01 -1.706450388058e-01 + -1.675058149325e-01 -1.643698022271e-01 -1.612362678820e-01 -1.581044548310e-01 + -1.549735901183e-01 -1.518428935360e-01 -1.487115864504e-01 -1.455789007321e-01 + -1.424440877084e-01 -1.393064270530e-01 -1.361652355283e-01 -1.330198755003e-01 + -1.298697631440e-01 -1.267143762623e-01 -1.235532616462e-01 -1.203860419050e-01 + -1.172124217032e-01 -1.140321933458e-01 -1.108452416577e-01 -1.076515481129e-01 + -1.044511941733e-01 -1.012443638061e-01 -9.803134515513e-02 -9.481253135091e-02 + -9.158842044999e-02 -8.835961450448e-02 -8.512681776900e-02 -8.189083406092e-02 + -7.865256329726e-02 -7.541299723920e-02 -7.217321448204e-02 -6.893437473546e-02 + -6.569771244520e-02 -6.246452981272e-02 -5.923618927518e-02 -5.601410551225e-02 + -5.279973705042e-02 -4.959457753878e-02 -4.640014677280e-02 -4.321798154444e-02 + -4.004962639812e-02 -3.689662437250e-02 -3.376050780735e-02 -3.064278929409e-02 + -2.754495284647e-02 -2.446844536530e-02 -2.141466846813e-02 -1.838497075080e-02 + -1.538064054327e-02 -1.240289921736e-02 -9.452895098390e-03 -6.531698026696e-03 + -3.640294609015e-03 -7.795841927002e-04 2.049624410874e-03 4.846615434539e-03 + 7.610767883204e-03 1.034155647659e-02 1.303855180928e-02 1.570141973769e-02 + 1.832992001043e-02 2.092390416549e-02 2.348331272383e-02 2.600817171542e-02 + 2.849858857924e-02 3.095474748407e-02 3.337690412183e-02 3.576538002919e-02 + 3.812055649706e-02 4.044286813056e-02 4.273279612432e-02 4.499086132002e-02 + 4.721761711404e-02 4.941364228346e-02 5.157953379866e-02 5.371589968970e-02 + 5.582335203234e-02 5.790250011734e-02 5.995394386396e-02 6.197826753544e-02 + 6.397603381022e-02 6.594777825883e-02 6.789400427105e-02 6.981517847349e-02 + 7.171172667191e-02 7.358403034711e-02 7.543242372727e-02 7.725719145349e-02 + 7.905856684937e-02 8.083673079901e-02 8.259181123184e-02 8.432388320661e-02 + 8.603296958095e-02 8.771904224720e-02 8.938202390982e-02 9.102179037448e-02 + 9.263817331441e-02 9.423096347483e-02 9.579991427289e-02 9.734474574666e-02 + 9.886514880404e-02 1.003607897202e-01 1.018313148301e-01 1.032763553610e-01 + 1.046955323513e-01 1.060884615975e-01 1.074547585777e-01 1.087940432951e-01 + 1.101059449904e-01 1.113901066736e-01 1.126461894255e-01 1.138738764270e-01 + 1.150728766736e-01 1.162429283381e-01 1.173838017502e-01 1.184953019625e-01 + 1.195772708822e-01 1.206295889471e-01 1.216521763362e-01 1.226449937034e-01 + 1.236080424352e-01 1.245413644318e-01 1.254450414226e-01 1.263191938266e-01 + 1.271639791778e-01 1.279795901360e-01 1.287662521130e-01 1.295242205422e-01 + 1.302537778291e-01 1.309552300202e-01 1.316289032308e-01 1.322751398768e-01 + 1.328942947548e-01 1.334867310194e-01 1.340528161037e-01 1.345929176340e-01 + 1.351073993857e-01 1.355966173286e-01 1.360609158096e-01 1.365006239164e-01 + 1.369160520671e-01 1.373074888654e-01 1.376751982594e-01 1.380194170387e-01 + 1.383403527001e-01 1.386381817088e-01 1.389130481773e-01 1.391650629799e-01 + 1.393943033157e-01 1.396008127285e-01 1.397846015865e-01 1.399456480205e-01 + 1.400838993128e-01 1.401992737273e-01 1.402916627611e-01 1.403609338004e-01 + 1.404069331510e-01 1.404294894184e-01 1.404284171994e-01 1.404035210523e-01 + 1.403545997026e-01 1.402814504438e-01 1.401838736858e-01 1.400616776071e-01 + 1.399146828591e-01 1.397427272768e-01 1.395456705444e-01 1.393233987671e-01 + 1.390758289010e-01 1.388029129936e-01 1.385046421884e-01 1.381810504518e-01 + 1.378322179786e-01 1.374582742412e-01 1.370594006445e-01 1.366358327587e-01 + 1.361878621005e-01 1.357158374419e-01 1.352201656277e-01 1.347013118885e-01 + 1.341597996409e-01 1.335962097723e-01 1.330111794105e-01 1.324054001860e-01 + 1.317796159980e-01 1.311346203011e-01 1.304712529337e-01 1.297903965140e-01 + 1.290929724335e-01 1.283799364821e-01 1.276522741425e-01 1.269109955954e-01 + 1.261571304782e-01 1.253917224450e-01 1.246158235750e-01 1.238304886807e-01 + 1.230367695655e-01 1.222357092831e-01 1.214283364509e-01 1.206156596677e-01 + 1.197986620865e-01 1.189782961921e-01 1.181554788293e-01 1.173310865280e-01 + 1.165059511659e-01 1.156808560090e-01 1.148565321639e-01 1.140336554747e-01 + 1.132128438906e-01 1.123946553282e-01 1.115795860458e-01 1.107680695435e-01 + 1.099604759975e-01 1.091571122315e-01 1.083582222246e-01 1.075639881472e-01 + 1.067745319156e-01 1.059899172459e-01 1.052101521883e-01 1.044351921148e-01 + 1.036649431304e-01 1.028992658741e-01 1.021379796725e-01 1.013808670036e-01 + 1.006276782293e-01 9.987813654887e-02 9.913194312590e-02 9.838878233890e-02 + 9.764832710505e-02 9.691024422568e-02 9.617419970220e-02 9.543986397152e-02 + 9.470691701113e-02 9.397505326489e-02 9.324398634309e-02 9.251345345202e-02 + 9.178321951137e-02 9.105308092082e-02 9.032286894041e-02 8.959245265354e-02 + 8.886174148497e-02 8.813068725104e-02 8.739928572364e-02 8.666757769405e-02 + 8.593564952800e-02 8.520363320790e-02 8.447170586314e-02 8.374008879455e-02 + 8.300904600371e-02 8.227888224258e-02 8.154994060370e-02 8.082259967542e-02 + 8.009727029072e-02 7.937439190234e-02 7.865442862007e-02 7.793786494968e-02 + 7.722520127540e-02 7.651694913061e-02 7.581362630308e-02 7.511575182290e-02 + 7.442384088214e-02 7.373839973598e-02 7.305992063519e-02 7.238887683941e-02 + 7.172571776005e-02 7.107086428019e-02 7.042470429727e-02 6.978758853221e-02 + 6.915982664597e-02 6.854168370178e-02 6.793337700789e-02 6.733507337200e-02 + 6.674688679503e-02 6.616887662712e-02 6.560104620514e-02 6.504334198576e-02 + 6.449565318416e-02 6.395781192320e-02 6.342959389338e-02 6.291071951927e-02 + 6.240085562307e-02 6.189961757172e-02 6.140657188929e-02 6.092123931211e-02 + 6.044309826029e-02 5.997158869514e-02 5.950611632868e-02 5.904605714831e-02 + 5.859076221667e-02 5.813956270441e-02 5.769177511151e-02 5.724670663108e-02 + 5.680366060848e-02 5.636194204750e-02 5.592086311555e-02 5.547974859929e-02 + 5.503794126309e-02 5.459480706364e-02 5.414974017511e-02 5.370216778153e-02 + 5.325155459492e-02 5.279740706025e-02 5.233927721153e-02 5.187676614600e-02 + 5.140952708752e-02 5.093726801332e-02 5.045975382272e-02 4.997680803041e-02 + 4.948831397080e-02 4.899421550493e-02 4.849451722508e-02 4.798928415727e-02 + 4.747864096584e-02 4.696277066862e-02 4.644191287569e-02 4.591636156836e-02 + 4.538646243930e-02 4.485260981813e-02 4.431524321023e-02 4.377484347991e-02 + 4.323192871151e-02 4.268704978499e-02 4.214078570430e-02 4.159373871901e-02 + 4.104652928079e-02 4.049979087767e-02 3.995416478953e-02 3.941029480848e-02 + 3.886882196787e-02 3.833037932299e-02 3.779558682576e-02 3.726504633442e-02 + 3.673933679764e-02 3.621900965058e-02 3.570458445816e-02 3.519654483844e-02 + 3.469533469595e-02 3.420135479215e-02 3.371495967675e-02 3.323645500040e-02 + 3.276609522572e-02 3.230408175006e-02 3.185056144960e-02 3.140562565094e-02 + 3.096930953247e-02 3.054159195413e-02 3.012239571072e-02 2.971158820030e-02 + 2.930898249605e-02 2.891433880651e-02 2.852736630640e-02 2.814772531720e-02 + 2.777502981428e-02 2.740885023498e-02 2.704871656006e-02 2.669412163915e-02 + 2.634452472945e-02 2.599935521574e-02 2.565801647898e-02 2.531988988013e-02 + 2.498433882591e-02 2.465071288291e-02 2.431835190725e-02 2.398659015739e-02 + 2.365476035883e-02 2.332219769067e-02 2.298824366528e-02 2.265224987429e-02 + 2.231358157586e-02 2.197162110033e-02 2.162577105352e-02 2.127545729944e-02 + 2.092013170665e-02 2.055927464481e-02 2.019239722104e-02 1.981904324791e-02 + 1.943879093770e-02 1.905125432030e-02 1.865608438438e-02 1.825296994414e-02 + 1.784163823638e-02 1.742185525466e-02 1.699342582957e-02 1.655619346618e-02 + 1.611003995120e-02 1.565488474432e-02 1.519068416943e-02 1.471743042242e-02 + 1.423515041359e-02 1.374390446308e-02 1.324378486851e-02 1.273491436408e-02 + 1.221744449073e-02 1.169155389645e-02 1.115744658593e-02 1.061535013781e-02 + 1.006551390725e-02 9.508207230678e-03 8.943717648458e-03 8.372349159965e-03 + 7.794420524418e-03 7.210263619266e-03 6.620221866494e-03 6.024648735644e-03 + 5.423906330743e-03 4.818364066741e-03 4.208397439388e-03 3.594386890933e-03 + 2.976716772431e-03 2.355774401946e-03 1.731949216506e-03 1.105632014316e-03 + 4.772142825239e-04 -1.529123953357e-04 -7.843568590222e-04 -1.416728826094e-03 + -2.049639289610e-03 -2.682700867956e-03 -3.315528116112e-03 -3.947737807884e-03 + -4.578949198732e-03 -5.208784278680e-03 -5.836868024580e-03 -6.462828660597e-03 + -7.086297935240e-03 -7.706911422595e-03 -8.324308854613e-03 -8.938134490429e-03 + -9.548037527656e-03 -1.015367255957e-02 -1.075470008086e-02 -1.135078704364e-02 + -1.194160746379e-02 -1.252684307706e-02 -1.310618404243e-02 -1.367932968967e-02 + -1.424598930631e-02 -1.480588295854e-02 -1.535874233920e-02 -1.590431163516e-02 + -1.644234840564e-02 -1.697262446192e-02 -1.749492673870e-02 -1.800905814638e-02 + -1.851483839357e-02 -1.901210476867e-02 -1.950071286932e-02 -1.998053726864e-02 + -2.045147210751e-02 -2.091343160217e-02 -2.136635045744e-02 -2.181018417614e-02 + -2.224490925636e-02 -2.267052326893e-02 -2.308704480886e-02 -2.349451331534e-02 + -2.389298875632e-02 -2.428255117517e-02 -2.466330009806e-02 -2.503535380246e-02 + -2.539884844836e-02 -2.575393707572e-02 -2.610078847280e-02 -2.643958592171e-02 + -2.677052582900e-02 -2.709381625047e-02 -2.740967532069e-02 -2.771832959894e-02 + -2.802001234463e-02 -2.831496173601e-02 -2.860341904694e-02 -2.888562679749e-02 + -2.916182689429e-02 -2.943225877734e-02 -2.969715759016e-02 -2.995675239006e-02 + -3.021126441548e-02 -3.046090542684e-02 -3.070587613712e-02 -3.094636474740e-02 + -3.118254560229e-02 -3.141457797855e-02 -3.164260501982e-02 -3.186675282834e-02 + -3.208712972382e-02 -3.230382567742e-02 -3.251691192789e-02 -3.272644078436e-02 + -3.293244561927e-02 -3.313494105242e-02 -3.333392332572e-02 -3.352937086589e-02 + -3.372124503079e-02 -3.390949103307e-02 -3.409403903280e-02 -3.427480538939e-02 + -3.445169406094e-02 -3.462459813804e-02 -3.479340149722e-02 -3.495798055807e-02 + -3.511820612702e-02 -3.527394530946e-02 -3.542506347131e-02 -3.557142623037e-02 + -3.571290145749e-02 -3.584936126713e-02 -3.598068397705e-02 -3.610675601699e-02 + -3.622747376653e-02 -3.634274530298e-02 -3.645249204086e-02 -3.655665024571e-02 + -3.665517240585e-02 -3.674802844733e-02 -3.683520677861e-02 -3.691671515348e-02 + -3.699258134199e-02 -3.706285360174e-02 -3.712760094328e-02 -3.718691318579e-02 + -3.724090080132e-02 -3.728969454777e-02 -3.733344489343e-02 -3.737232123746e-02 + -3.740651093340e-02 -3.743621812449e-02 -3.746166240159e-02 -3.748307729666e-02 + -3.750070862610e-02 -3.751481270031e-02 -3.752565441689e-02 -3.753350525649e-02 + -3.753864120135e-02 -3.754134059729e-02 -3.754188198091e-02 -3.754054189402e-02 + -3.753759270754e-02 -3.753330047730e-02 -3.752792285377e-02 -3.752170706748e-02 + -3.751488801096e-02 -3.750768643745e-02 -3.750030729524e-02 -3.749293821531e-02 + -3.748574816853e-02 -3.747888630669e-02 -3.747248100016e-02 -3.746663908275e-02 + -3.746144531229e-02 -3.745696205327e-02 -3.745322918559e-02 -3.745026424116e-02 + -3.744806276753e-02 -3.744659891577e-02 -3.744582624687e-02 -3.744567874930e-02 + -3.744607205740e-02 -3.744690485884e-02 -3.744806047671e-02 -3.744940861030e-02 + -3.745080721685e-02 -3.745210451462e-02 -3.745314108692e-02 -3.745375206474e-02 + -3.745376936552e-02 -3.745302396418e-02 -3.745134817257e-02 -3.744857790296e-02 + -3.744455489143e-02 -3.743912885713e-02 -3.743215957418e-02 -3.742351883341e-02 + -3.741309227254e-02 -3.740078105446e-02 -3.738650337474e-02 -3.737019578135e-02 + -3.735181429129e-02 -3.733133529101e-02 -3.730875620965e-02 -3.728409595646e-02 + -3.725739511629e-02 -3.722871589942e-02 -3.719814184477e-02 -3.716577727797e-02 + -3.713174652853e-02 -3.709619291276e-02 -3.705927749193e-02 -3.702117761719e-02 + -3.698208527557e-02 -3.694220525326e-02 -3.690175313465e-02 -3.686095315738e-02 + -3.682003594531e-02 -3.677923614306e-02 -3.673878997662e-02 -3.669893276573e-02 + -3.665989641460e-02 -3.662190690758e-02 -3.658518183705e-02 -3.654992799033e-02 + -3.651633902214e-02 -3.648459323861e-02 -3.645485151762e-02 -3.642725538929e-02 + -3.640192529880e-02 -3.637895907208e-02 -3.635843060288e-02 -3.634038877771e-02 + -3.632485665265e-02 -3.631183089354e-02 -3.630128148843e-02 -3.629315173837e-02 + -3.628735852978e-02 -3.628379288860e-02 -3.628232081365e-02 -3.628278438339e-02 + -3.628500312769e-02 -3.628877565304e-02 -3.629388150699e-02 -3.630008326497e-02 + -3.630712882007e-02 -3.631475385407e-02 -3.632268446583e-02 -3.633063993139e-02 + -3.633833556817e-02 -3.634548567470e-02 -3.635180651579e-02 -3.635701932254e-02 + -3.636085327597e-02 -3.636304844278e-02 -3.636335863225e-02 -3.636155414319e-02 + -3.635742437122e-02 -3.635078024743e-02 -3.634145648089e-02 -3.632931357944e-02 + -3.631423962491e-02 -3.629615178133e-02 -3.627499751725e-02 -3.625075552585e-02 + -3.622343632967e-02 -3.619308255978e-02 -3.615976890231e-02 -3.612360170896e-02 + -3.608471827122e-02 -3.604328576164e-02 -3.599949984890e-02 -3.595358299696e-02 + -3.590578246183e-02 -3.585636800291e-02 -3.580562932886e-02 -3.575387330108e-02 + -3.570142092049e-02 -3.564860412604e-02 -3.559576243552e-02 -3.554323946132e-02 + -3.549137933548e-02 -3.544052307975e-02 -3.539100495732e-02 -3.534314884372e-02 + -3.529726465454e-02 -3.525364486754e-02 -3.521256117634e-02 -3.517426131198e-02 + -3.513896606734e-02 -3.510686655806e-02 -3.507812175117e-02 -3.505285629101e-02 + -3.503115864862e-02 -3.501307961858e-02 -3.499863118348e-02 -3.498778576314e-02 + -3.498047586180e-02 -3.497659412271e-02 -3.497599379551e-02 -3.497848961777e-02 + -3.498385910764e-02 -3.499184426055e-02 -3.500215363860e-02 -3.501446483699e-02 + -3.502842730804e-02 -3.504366551909e-02 -3.505978241704e-02 -3.507636316860e-02 + -3.509297914207e-02 -3.510919209349e-02 -3.512455851709e-02 -3.513863411803e-02 + -3.515097836299e-02 -3.516115906291e-02 -3.516875694095e-02 -3.517337013802e-02 + -3.517461860788e-02 -3.517214835436e-02 -3.516563546347e-02 -3.515478988462e-02 + -3.513935891673e-02 -3.511913035696e-02 -3.509393527246e-02 -3.506365035820e-02 + -3.502819984757e-02 -3.498755694597e-02 -3.494174476155e-02 -3.489083671188e-02 + -3.483495638979e-02 -3.477427687640e-02 -3.470901949472e-02 -3.463945200208e-02 + -3.456588622524e-02 -3.448867514713e-02 -3.440820945990e-02 -3.432491360390e-02 + -3.423924131782e-02 -3.415167072998e-02 -3.406269902599e-02 -3.397283673251e-02 + -3.388260166110e-02 -3.379251256059e-02 -3.370308252961e-02 -3.361481224466e-02 + -3.352818306160e-02 -3.344365005094e-02 -3.336163502922e-02 -3.328251965002e-02 + -3.320663861891e-02 -3.313427309693e-02 -3.306564435682e-02 -3.300090775525e-02 + -3.294014708272e-02 -3.288336935072e-02 -3.283050007279e-02 -3.278137909286e-02 + -3.273575700976e-02 -3.269329224209e-02 -3.265354877136e-02 -3.261599459433e-02 + -3.258000090676e-02 -3.254484203016e-02 -3.250969607965e-02 -3.247364635457e-02 + -3.243568341189e-02 -3.239470775492e-02 -3.234953303501e-02 -3.229888961901e-02 + -3.224142831970e-02 -3.217572401761e-02 -3.210027882131e-02 -3.201352431888e-02 + -3.191382237087e-02 -3.179946379081e-02 -3.166866416524e-02 -3.151955600053e-02 + -3.135017637188e-02 -3.115844932571e-02 -3.094216248758e-02 -3.069893769837e-02 + -3.042619608533e-02 -3.012111880721e-02 -2.978060581489e-02 -2.940123633176e-02 + -2.897923633283e-02 -2.851045998584e-02 -2.799039364692e-02 -2.741419234737e-02 + -2.677675947765e-02 -2.607288023845e-02 -2.529741804965e-02 -2.444558018545e-02 + -2.351325423971e-02 -2.249741058234e-02 -2.139655793813e-02 -2.021123007019e-02 + -1.894447204393e-02 -1.760228572357e-02 -1.619398725753e-02 -1.473242567619e-02 + -1.323401260692e-02 -1.171851948433e-02 -1.020861098886e-02 -8.729101618910e-03 + -7.305945344099e-03 -5.964994455209e-03 -4.730590562777e-03 -3.624075248882e-03 + -2.662327019785e-03 -1.856442040786e-03 -1.210676407889e-03 -7.217562050118e-04 + -3.786384033691e-04 -1.627723057406e-04 -4.887060377916e-05 -6.155165367928e-06 + 0.000000000000e+00 \ No newline at end of file diff --git a/examples/dpgen-example/autotest/INPUT b/examples/dpgen-example/autotest/INPUT new file mode 100644 index 0000000000..1aeffea701 --- /dev/null +++ b/examples/dpgen-example/autotest/INPUT @@ -0,0 +1,22 @@ +INPUT_PARAMETERS +# Created by Atomic Simulation Enviroment +ntype 1 +calculation cell-relax +pseudo_rcut 10.0 +pseudo_mesh 1 +ecutwfc 50 +basis_type lcao +ks_solver genelpa +smearing_method gaussian +smearing_sigma 0.01 +mixing_type pulay +mixing_beta 0.7 +scf_nmax 100 +scf_thr 1e-08 +kspacing 0.04 +relax_nmax 100 +cal_force 1 +force_thr 0.001 +cal_stress 1 +stress_thr 0.01 +out_stru 1 diff --git a/examples/dpgen-example/autotest/INPUT.rlx b/examples/dpgen-example/autotest/INPUT.rlx new file mode 100644 index 0000000000..00bbe53869 --- /dev/null +++ b/examples/dpgen-example/autotest/INPUT.rlx @@ -0,0 +1,23 @@ +INPUT_PARAMETERS +# Created by Atomic Simulation Enviroment +ntype 1 +calculation cell-relax +relax_nmax 100 +stress_thr 0.01 +force_thr_ev 0.001 +relax_method cg +pseudo_rcut 10.0 +pseudo_mesh 1 +ecutwfc 50 +basis_type lcao +ks_solver genelpa +smearing_method gaussian +smearing_sigma 0.01 +mixing_type pulay +mixing_beta 0.7 +scf_nmax 100 +scf_thr 1e-08 +cal_force 1 +cal_stress 1 +out_stru 1 +kspacing 0.04 diff --git a/examples/dpgen-example/autotest/confs/STRU b/examples/dpgen-example/autotest/confs/STRU new file mode 100644 index 0000000000..f1b4055d77 --- /dev/null +++ b/examples/dpgen-example/autotest/confs/STRU @@ -0,0 +1,25 @@ +ATOMIC_SPECIES +Al 26.9815385 pp_orb/Al.PD04.PBE.UPF + +NUMERICAL_ORBITAL +pp_orb/Al_gga_10au_100Ry_3s3p2d.orb + +LATTICE_CONSTANT +1.889726125 + +LATTICE_VECTORS + 4.0392185522 0.0000000000 0.0000000000 + 0.0000000000 4.0392185522 0.0000000000 + 0.0000000000 0.0000000000 4.0392185522 + +ATOMIC_POSITIONS +Direct + +Al +0.0000000000 +4 +0.0000000000 0.0000000000 0.0000000000 1 1 1 +0.0000000000 0.5000000000 0.5000000000 1 1 1 +0.5000000000 0.0000000000 0.5000000000 1 1 1 +0.5000000000 0.5000000000 0.0000000000 1 1 1 + diff --git a/examples/dpgen-example/autotest/machine.json b/examples/dpgen-example/autotest/machine.json new file mode 100644 index 0000000000..0d9c75af15 --- /dev/null +++ b/examples/dpgen-example/autotest/machine.json @@ -0,0 +1,108 @@ +{ + "api_version": "1.0", + "deepmd_version": "2.1.0", + "train" :[ + { + "command": "dp", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "00*/train.log", + "grouped":true, + "job_name": "Al-train-VASP", + "disk_size": 100, + "scass_type":"c8_m32_1 * NVIDIA V100", + "platform": "ali", + "image_name":"LBG_DeePMD-kit_2.1.0_v1", + "on_demand":0 + } + } + }, + "resources": { + "number_node":123473334635, + "local_root":"./", + "cpu_per_node": 4, + "gpu_per_node": 1, + "queue_name": "GPU", + "group_size": 1 + } + }], + "model_devi": + [{ + "command": "lmp -i input.lammps -v restart 0", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "*/model_devi.log", + "grouped":true, + "job_name": "Al-devia-ABACUS", + "disk_size": 200, + "scass_type":"c8_m32_1 * NVIDIA V100", + "platform": "ali", + "image_name":"LBG_DeePMD-kit_2.1.0_v1", + "on_demand":0 + } + } + }, + "resources": { + "number_node": 28348383, + "local_root":"./", + "cpu_per_node": 4, + "gpu_per_node": 1, + "queue_name": "GPU", + "group_size": 100 + } + }], + "fp": + [{ + "command": "OMP_NUM_THREADS=1 mpirun -np 16 abacus", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "task*/fp.log", + "grouped":true, + "job_name": "al-DFT-test", + "disk_size": 100, + "scass_type":"c32_m128_cpu", + "platform": "ali", + "image_name":"XXXXX", + "on_demand":0 + } + } + }, + "resources": { + "number_node": 712254638889, + "cpu_per_node": 32, + "gpu_per_node": 0, + "queue_name": "CPU", + "group_size": 2, + "local_root":"./", + "source_list": ["/opt/intel/oneapi/setvars.sh"] + } + } + ] +} diff --git a/examples/dpgen-example/autotest/property.json b/examples/dpgen-example/autotest/property.json new file mode 100644 index 0000000000..c90a77619e --- /dev/null +++ b/examples/dpgen-example/autotest/property.json @@ -0,0 +1,56 @@ +{ + "structures": ["confs/"], + "interaction": { + "type": "abacus", + "incar": "./INPUT", + "potcar_prefix":"./", + "potcars": {"Al": "Al.PD04.PBE.UPF"}, + "orb_files": {"Al":"Al_gga_10au_100Ry_3s3p2d.orb"} + }, + "_relaxation": { + "cal_type": "relaxation", + "cal_setting":{ + "input_prop": "./INPUT.rlx" + } + }, + "properties": [ + { + "type": "eos", + "vol_start": 0.85, + "vol_end": 1.15, + "vol_step": 0.01, + "cal_setting": { + "relax_pos": true, + "relax_shape": true, + "relax_vol": false, + "overwrite_interaction":{ + "type": "abacus", + "incar": "./INPUT", + "potcar_prefix":"./", + "orb_files": {"Al":"Al_gga_10au_100Ry_3s3p2d.orb"}, + "potcars": {"Al": "Al.PD04.PBE.UPF"} } + } + }, + { + "type": "elastic", + "skip": false, + "norm_deform": 1e-2, + "shear_deform": 1e-2 + }, + { + "type": "vacancy", + "skip": false, + "supercell": [2, 2, 2] + }, + { + "type": "surface", + "skip": true, + "min_slab_size": 15, + "min_vacuum_size":11, + "pert_xz": 0.01, + "max_miller": 3, + "cal_type": "static" + } + ] +} + diff --git a/examples/dpgen-example/init_and_run/machine.json b/examples/dpgen-example/init_and_run/machine.json new file mode 100644 index 0000000000..0d9c75af15 --- /dev/null +++ b/examples/dpgen-example/init_and_run/machine.json @@ -0,0 +1,108 @@ +{ + "api_version": "1.0", + "deepmd_version": "2.1.0", + "train" :[ + { + "command": "dp", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "00*/train.log", + "grouped":true, + "job_name": "Al-train-VASP", + "disk_size": 100, + "scass_type":"c8_m32_1 * NVIDIA V100", + "platform": "ali", + "image_name":"LBG_DeePMD-kit_2.1.0_v1", + "on_demand":0 + } + } + }, + "resources": { + "number_node":123473334635, + "local_root":"./", + "cpu_per_node": 4, + "gpu_per_node": 1, + "queue_name": "GPU", + "group_size": 1 + } + }], + "model_devi": + [{ + "command": "lmp -i input.lammps -v restart 0", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "*/model_devi.log", + "grouped":true, + "job_name": "Al-devia-ABACUS", + "disk_size": 200, + "scass_type":"c8_m32_1 * NVIDIA V100", + "platform": "ali", + "image_name":"LBG_DeePMD-kit_2.1.0_v1", + "on_demand":0 + } + } + }, + "resources": { + "number_node": 28348383, + "local_root":"./", + "cpu_per_node": 4, + "gpu_per_node": 1, + "queue_name": "GPU", + "group_size": 100 + } + }], + "fp": + [{ + "command": "OMP_NUM_THREADS=1 mpirun -np 16 abacus", + "machine": { + "batch_type": "DpCloudServer", + "context_type": "DpCloudServerContext", + "local_root" : "./", + "remote_profile":{ + "email": "xxx@xxx.xxx", + "password": "xxx", + "program_id": 000, + "input_data":{ + "api_version":2, + "job_type": "indicate", + "log_file": "task*/fp.log", + "grouped":true, + "job_name": "al-DFT-test", + "disk_size": 100, + "scass_type":"c32_m128_cpu", + "platform": "ali", + "image_name":"XXXXX", + "on_demand":0 + } + } + }, + "resources": { + "number_node": 712254638889, + "cpu_per_node": 32, + "gpu_per_node": 0, + "queue_name": "CPU", + "group_size": 2, + "local_root":"./", + "source_list": ["/opt/intel/oneapi/setvars.sh"] + } + } + ] +} diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index eab3ebda66..c573b98311 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -15,7 +15,7 @@ add_subdirectory(module_xc) add_subdirectory(module_esolver) add_subdirectory(module_gint) add_subdirectory(src_io) -add_subdirectory(src_ions) +add_subdirectory(module_relaxation) add_subdirectory(src_lcao) add_subdirectory(src_parallel) add_subdirectory(src_pdiag) @@ -26,9 +26,8 @@ add_library( driver OBJECT driver.cpp + driver_run.cpp input.cpp input_conv.cpp input_update.cpp - run_lcao.cpp - run_pw.cpp ) diff --git a/source/Makefile b/source/Makefile index 2872780da9..5043526890 100644 --- a/source/Makefile +++ b/source/Makefile @@ -27,7 +27,7 @@ VPATH=./src_global\ :./module_gint\ :./src_pw\ :./src_lcao\ -:./src_ions\ +:./module_relaxation\ :./src_io\ :./src_parallel\ :./src_pdiag\ diff --git a/source/Makefile.Objects b/source/Makefile.Objects index e20bdad230..36799e6333 100644 --- a/source/Makefile.Objects +++ b/source/Makefile.Objects @@ -16,8 +16,7 @@ OBJS_MAIN=driver.o\ input.o \ write_input.o\ input_conv.o\ -run_pw.o\ -run_lcao.o\ +driver_run.o OBJS_PW=xc_3.o \ vdwd2.o\ @@ -138,8 +137,6 @@ ORB_gen_tables.o\ local_orbital_wfc.o\ local_orbital_charge.o\ ELEC_evolve.o\ -LOOP_cell.o\ -LOOP_ions.o\ run_md_lcao.o\ DM_gamma.o\ DM_k.o\ @@ -245,6 +242,7 @@ OBJS_SURCHEM=H_correction_pw.o\ corrected_energy.o\ minimize_cg.o\ efield.o\ + sol_force.o\ OBJS_XC=xc_funct_corr_gga.o \ xc_funct_corr_lda.o \ @@ -339,9 +337,9 @@ write_dm.o\ write_wfc_realspace.o\ magnetism.o\ optical.o\ -Cell_PW.o\ run_md_pw.o\ -ions.o \ +ions.o\ +relaxation.o\ ions_move_methods.o\ ions_move_bfgs.o\ ions_move_cg.o\ diff --git a/source/driver.cpp b/source/driver.cpp index dd75a7014b..5af699ad23 100644 --- a/source/driver.cpp +++ b/source/driver.cpp @@ -2,10 +2,8 @@ #include "input.h" #include "input_conv.h" -#include "run_pw.h" #include "src_pw/global.h" #ifdef __LCAO -#include "run_lcao.h" #include "src_lcao/global_fp.h" #endif #include "module_base/memory.h" @@ -41,7 +39,6 @@ void Driver::init() Print_Info::print_time(time_start, time_finish); // (4) close all of the running logs - INPUT.close_log(); return; @@ -93,34 +90,11 @@ void Driver::atomic_world(void) // lcao_in_pw: LCAO expaned by plane wave basis set // lcao: linear combination of atomic orbitals //-------------------------------------------------- - string use_ensol; - ModuleESolver::ESolver *p_esolver = nullptr; - if (GlobalV::BASIS_TYPE == "pw" || GlobalV::BASIS_TYPE == "lcao_in_pw") - { - if (GlobalV::CALCULATION.substr(0, 3) == "sto") - use_ensol = "sdft_pw"; - else - use_ensol = "ksdft_pw"; - // We set it temporarily - // Finally, we have ksdft_pw, ksdft_lcao, sdft_pw, ofdft, lj, eam, etc. - ModuleESolver::init_esolver(p_esolver, use_ensol); - Run_pw::plane_wave_line(p_esolver); - ModuleESolver::clean_esolver(p_esolver); - } -#ifdef __LCAO - else if (GlobalV::BASIS_TYPE == "lcao") - { - use_ensol = "ksdft_lcao"; - if (INPUT.tddft == 1) - use_ensol = "ksdft_lcao_tddft"; - ModuleESolver::init_esolver(p_esolver, use_ensol); - Run_lcao::lcao_line(p_esolver); - ModuleESolver::clean_esolver(p_esolver); - } -#endif - ModuleBase::timer::finish(GlobalV::ofs_running); + // where the actual stuff is done + this->driver_run(); + ModuleBase::timer::finish(GlobalV::ofs_running); ModuleBase::Memory::print_all(GlobalV::ofs_running); return; diff --git a/source/driver.h b/source/driver.h index d3e7625972..c49996d83e 100644 --- a/source/driver.h +++ b/source/driver.h @@ -18,6 +18,8 @@ class Driver // do stuff, have fun! void atomic_world(); + // interface to the actual calculations + void driver_run(); }; diff --git a/source/driver_run.cpp b/source/driver_run.cpp new file mode 100644 index 0000000000..0ccd49941d --- /dev/null +++ b/source/driver_run.cpp @@ -0,0 +1,75 @@ +#include "driver.h" +#include "src_pw/global.h" +#include "input.h" +#include "src_io/winput.h" +#include "module_neighbor/sltk_atom_arrange.h" +#include "src_io/print_info.h" +#include "src_lcao/run_md_lcao.h" +#include "src_pw/run_md_pw.h" + +// This is the driver function which defines the workflow of ABACUS calculations +// It relies on the class Esolver, which is a class that organizes workflows of single point calculations. +// For calculations involving change of configuration (lattice parameter & ionic motion), +// this driver calls Esolver::Run and the configuration-changing subroutine +// in a alternating manner. +// Information is passed between the two subroutines by class UnitCell_Pseudo +// Esolver::Run takes in a configuration and provides force and stress, +// the configuration-changing subroutine takes force and stress and updates the configuration +void Driver::driver_run() +{ + ModuleBase::TITLE("Driver", "driver_line"); + ModuleBase::timer::tick("Driver", "driver_line"); + + // 1. Initialzie type of Esolver + ModuleESolver::ESolver *p_esolver = nullptr; + ModuleESolver::init_esolver(p_esolver); + + // 2. Setup cell and atom information +#ifdef __LCAO + GlobalC::ucell.setup_cell(GlobalC::ORB, GlobalV::global_pseudo_dir, GlobalV::stru_file, GlobalV::ofs_running); +#else + if(GlobalV::BASIS_TYPE == "lcao_in_pw" || GlobalV::BASIS_TYPE == "lcao") + { + ModuleBase::WARNING_QUIT("driver","to use LCAO basis, compile with __LCAO"); + } + GlobalC::ucell.setup_cell(GlobalV::global_pseudo_dir, GlobalV::stru_file, GlobalV::ofs_running); +#endif + + // 3. For these two types of calculations + // nothing else need to be initialized + if(GlobalV::CALCULATION == "test_neighbour" || GlobalV::CALCULATION == "test_memory") + { + p_esolver->Run(0, GlobalC::ucell); + ModuleBase::QUIT(); + } + + // 4. Initialize Esolver + p_esolver->Init(INPUT, GlobalC::ucell); + + //------------------------------------------------------------ + // This part onward needs to be refactored. + //---------------------------MD/Relax------------------ + if(GlobalV::CALCULATION == "md" && GlobalV::BASIS_TYPE=="lcao") + { + Run_MD_LCAO run_md_lcao; + run_md_lcao.opt_ions(p_esolver); + } + else if(GlobalV::CALCULATION == "md" || GlobalV::CALCULATION == "sto-md") + { + Run_MD_PW run_md_pw; + run_md_pw.md_ions_pw(p_esolver); + } + else // scf; cell relaxation; nscf; etc + { + Ions ions; + ions.opt_ions(p_esolver); + } + //---------------------------MD/Relax------------------ + + // 6. clean up esolver + p_esolver->postprocess(); + ModuleESolver::clean_esolver(p_esolver); + + ModuleBase::timer::tick("Driver", "driver_line"); + return; +} diff --git a/source/input.cpp b/source/input.cpp index 6661d6e14d..d2963224f0 100644 --- a/source/input.cpp +++ b/source/input.cpp @@ -144,7 +144,8 @@ void Input::Default(void) bndpar = 1; kpar = 1; initsto_freq = 1000; - method_sto = 1; + method_sto = 2; + npart_sto = 1; cal_cond = false; dos_nche = 100; cond_nche = 20; @@ -407,6 +408,7 @@ void Input::Default(void) // test only //========================================================== test_just_neighbor = false; + test_skip_ewald = false; //========================================================== // DFT+U Xin Qu added on 2020-10-29 @@ -595,6 +597,10 @@ bool Input::Read(const std::string &fn) { read_value(ifs, method_sto); } + else if (strcmp("npart_sto", word) == 0) + { + read_value(ifs, npart_sto); + } else if (strcmp("cal_cond", word) == 0) { read_value(ifs, cal_cond); @@ -1505,6 +1511,10 @@ bool Input::Read(const std::string &fn) { read_value(ifs, test_just_neighbor); } + else if (strcmp("test_skip_ewald", word) == 0) + { + read_value(ifs, test_skip_ewald); + } //-------------- //---------------------------------------------------------------------------------- // Xin Qu added on 2020-10-29 for DFT+U @@ -1940,6 +1950,10 @@ void Input::Default_2(void) // jiyy add 2019-08-04 } if(calculation.substr(0,3) != "sto") bndpar = 1; if(bndpar > GlobalV::NPROC) bndpar = GlobalV::NPROC; + if(method_sto != 1 && method_sto != 2) + { + method_sto = 2; + } } #ifdef __MPI void Input::Bcast() @@ -1974,6 +1988,7 @@ void Input::Bcast() Parallel_Common::bcast_double(emin_sto); Parallel_Common::bcast_int(initsto_freq); Parallel_Common::bcast_int(method_sto); + Parallel_Common::bcast_int(npart_sto); Parallel_Common::bcast_bool(cal_cond); Parallel_Common::bcast_int(cond_nche); Parallel_Common::bcast_double(cond_dw); @@ -2203,6 +2218,7 @@ void Input::Bcast() Parallel_Common::bcast_int(td_vextout); Parallel_Common::bcast_int(td_dipoleout); Parallel_Common::bcast_bool(test_just_neighbor); + Parallel_Common::bcast_bool(test_skip_ewald); Parallel_Common::bcast_int(GlobalV::ocp); Parallel_Common::bcast_string(GlobalV::ocp_set); Parallel_Common::bcast_int(out_mul); // qifeng add 2019/9/10 @@ -2498,10 +2514,22 @@ void Input::Check(void) if (!this->relax_nmax) this->relax_nmax = 50; } - else if (calculation == "test") + else if (calculation == "test_memory") + { + this->relax_nmax = 1; + } + else if(calculation == "test_neighbour") { this->relax_nmax = 1; } + else if(calculation == "gen_jle") + { + this->relax_nmax = 1; + if(basis_type != "pw") + { + ModuleBase::WARNING_QUIT("Input","to generate descriptors, please use pw basis"); + } + } else { ModuleBase::WARNING_QUIT("Input", "check 'calculation' !"); diff --git a/source/input.h b/source/input.h index 82cf9a8d6b..b4b99fcbf4 100644 --- a/source/input.h +++ b/source/input.h @@ -72,6 +72,7 @@ class Input int bndpar; //parallel for stochastic/deterministic bands int initsto_freq; //frequency to init stochastic orbitals when running md int method_sto; //different methods for sdft, 1: slow, less memory 2: fast, more memory + int npart_sto; //for method_sto = 2, reduce memory bool cal_cond; //calculate electronic conductivities int cond_nche; //orders of Chebyshev expansions for conductivities double cond_dw; //d\omega for conductivities @@ -421,7 +422,8 @@ class Input //========================================================== // variables for test only //========================================================== - bool test_just_neighbor; + bool test_just_neighbor = false; + bool test_skip_ewald = false; private: //========================================================== diff --git a/source/input_conv.cpp b/source/input_conv.cpp index 6c5210e84a..1ff0f0a621 100644 --- a/source/input_conv.cpp +++ b/source/input_conv.cpp @@ -12,7 +12,7 @@ #include "src_io/epsilon0_pwscf.h" #include "src_io/epsilon0_vasp.h" #include "src_io/optical.h" -#include "src_ions/ions_move_basic.h" +#include "module_relaxation/ions_move_basic.h" #include "src_pw/global.h" #include "src_pw/occupy.h" #ifdef __EXX @@ -89,6 +89,12 @@ void Input_Conv::Convert(void) Force_Stress_LCAO::force_invalid_threshold_ev = INPUT.force_thr_ev2; #endif + if((INPUT.calculation=="relax" || INPUT.calculation=="cell-relax") && INPUT.chg_extrap!="atomic") + { + std::cout << " For relaxation, charge extrapolation is set to atomic." << std::endl; + INPUT.chg_extrap="atomic"; + } + BFGS_Basic::relax_bfgs_w1 = INPUT.relax_bfgs_w1; BFGS_Basic::relax_bfgs_w2 = INPUT.relax_bfgs_w2; @@ -135,6 +141,7 @@ void Input_Conv::Convert(void) GlobalV::VION_IN_H = INPUT.vion_in_h; GlobalV::TEST_FORCE = INPUT.test_force; GlobalV::TEST_STRESS = INPUT.test_stress; + GlobalV::test_skip_ewald = INPUT.test_skip_ewald; //---------------------------------------------------------- // iteration (1/3) @@ -453,6 +460,10 @@ void Input_Conv::Convert(void) { elecstate::ElecStateLCAO::need_psi_grid = false; } + if(INPUT.calculation == "test_neighbour" && GlobalV::NPROC>1) + { + ModuleBase::WARNING_QUIT("Input_conv", "test_neighbour must be done with 1 processor"); + } #endif GlobalC::en.dos_emin_ev = INPUT.dos_emin_ev; diff --git a/source/input_update.cpp b/source/input_update.cpp index ebfae1fd67..077569b00f 100644 --- a/source/input_update.cpp +++ b/source/input_update.cpp @@ -7,7 +7,7 @@ #include "module_base/global_function.h" #include "module_base/global_variable.h" #include "input.h" -#include "src_ions/ions_move_basic.h" +#include "module_relaxation/ions_move_basic.h" #include "src_io/optical.h" #ifdef __LCAO #include "src_lcao/FORCE_STRESS.h" diff --git a/source/module_base/CMakeLists.txt b/source/module_base/CMakeLists.txt index e3c4a40121..1019e68acd 100644 --- a/source/module_base/CMakeLists.txt +++ b/source/module_base/CMakeLists.txt @@ -7,6 +7,7 @@ add_library( export.cpp integral.cpp inverse_matrix.cpp + gather_math_lib_info.cpp global_file.cpp global_function.cpp global_function_ddotreal.cpp @@ -16,7 +17,7 @@ add_library( math_polyint.cpp math_sphbes.cpp math_ylmreal.cpp - math_bspline.cpp + math_bspline.cpp math_chebyshev.cpp mathzone.cpp mathzone_add1.cpp diff --git a/source/module_base/blas_connector.h b/source/module_base/blas_connector.h index ab5bac84be..6b246d446e 100644 --- a/source/module_base/blas_connector.h +++ b/source/module_base/blas_connector.h @@ -18,13 +18,13 @@ extern "C" void daxpy_(const int *N, const double *alpha, const double *X, const int *incX, double *Y, const int *incY); void caxpy_(const int *N, const std::complex *alpha, const std::complex *X, const int *incX, std::complex *Y, const int *incY); void zaxpy_(const int *N, const std::complex *alpha, const std::complex *X, const int *incX, std::complex *Y, const int *incY); - + void dcopy_(long const *n, const double *a, int const *incx, double *b, int const *incy); - void zcopy_(long const *n, const std::complex *a, int const *incx, std::complex *b, int const *incy); + void zcopy_(long const *n, const std::complex *a, int const *incx, std::complex *b, int const *incy); //reason for passing results as argument instead of returning it: //see https://www.numbercrunch.de/blog/2014/07/lost-in-translation/ - void zdotc_(std::complex *result, const int *n, const std::complex *zx, + void zdotc_(std::complex *result, const int *n, const std::complex *zx, const int *incx, const std::complex *zy, const int *incy); // Peize Lin add ?dot 2017-10-27, to compute d=x*y float sdot_(const int *N, const float *X, const int *incX, const float *Y, const int *incY); @@ -44,29 +44,29 @@ extern "C" const std::complex *a, const int *lda, const std::complex *x, const int *incx, const std::complex *beta, std::complex *y, const int *incy); - void dsymv_(const char *uplo, const int *n, - const double *alpha, const double *a, const int *lda, - const double *x, const int *incx, - const double *beta, double *y, const int *incy); + void dsymv_(const char *uplo, const int *n, + const double *alpha, const double *a, const int *lda, + const double *x, const int *incx, + const double *beta, double *y, const int *incy); // A := alpha x * y.T + A void dger_(int *m, int *n, double *alpha, double *x, int *incx, double *y, int *incy, double *a, int *lda); void zgerc_(int *m, int *n, std::complex *alpha,std::complex *x, int *incx, std::complex *y, int *incy,std::complex *a, int *lda); // level 3: matrix-matrix operations, O(n^2) data and O(n^3) work. - + // Peize Lin add ?gemm 2017-10-27, to compute C = a * A.? * B.? + b * C // A is general void sgemm_(const char *transa, const char *transb, const int *m, const int *n, const int *k, - const float *alpha, const float *a, const int *lda, const float *b, const int *ldb, + const float *alpha, const float *a, const int *lda, const float *b, const int *ldb, const float *beta, float *c, const int *ldc); void dgemm_(const char *transa, const char *transb, const int *m, const int *n, const int *k, - const double *alpha, const double *a, const int *lda, const double *b, const int *ldb, + const double *alpha, const double *a, const int *lda, const double *b, const int *ldb, const double *beta, double *c, const int *ldc); void zgemm_(const char *transa, const char *transb, const int *m, const int *n, const int *k, - const std::complex *alpha, const std::complex *a, const int *lda, const std::complex *b, const int *ldb, + const std::complex *alpha, const std::complex *a, const int *lda, const std::complex *b, const int *ldb, const std::complex *beta, std::complex *c, const int *ldc); - + //a is symmetric void dsymm_(const char *side, const char *uplo, const int *m, const int *n, const double *alpha, const double *a, const int *lda, const double *b, const int *ldb, @@ -92,50 +92,50 @@ class BlasConnector // Peize Lin add 2016-08-04 // y=a*x+y - static inline + static inline void axpy( const int n, const float alpha, const float *X, const int incX, float *Y, const int incY) { saxpy_(&n, &alpha, X, &incX, Y, &incY); - } - static inline + } + static inline void axpy( const int n, const double alpha, const double *X, const int incX, double *Y, const int incY) { daxpy_(&n, &alpha, X, &incX, Y, &incY); - } - static inline + } + static inline void axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY) { caxpy_(&n, &alpha, X, &incX, Y, &incY); - } - static inline + } + static inline void axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY) { zaxpy_(&n, &alpha, X, &incX, Y, &incY); - } - + } + // Peize Lin add 2016-08-04 // x=a*x - static inline + static inline void scal( const int n, const float alpha, float *X, const int incX) { sscal_(&n, &alpha, X, &incX); - } - static inline + } + static inline void scal( const int n, const double alpha, double *X, const int incX) { dscal_(&n, &alpha, X, &incX); - } - static inline + } + static inline void scal( const int n, const std::complex alpha, std::complex *X, const int incX) { cscal_(&n, &alpha, X, &incX); - } - static inline + } + static inline void scal( const int n, const std::complex alpha, std::complex *X, const int incX) { zscal_(&n, &alpha, X, &incX); - } - + } + // Peize Lin add 2017-10-27 // d=x*y static inline @@ -150,32 +150,32 @@ class BlasConnector } // Peize Lin add 2017-10-27, fix bug trans 2019-01-17 - // C = a * A.? * B.? + b * C + // C = a * A.? * B.? + b * C static inline void gemm(const char transa, const char transb, const int m, const int n, const int k, - const float alpha, const float *a, const int lda, const float *b, const int ldb, + const float alpha, const float *a, const int lda, const float *b, const int ldb, const float beta, float *c, const int ldc) { sgemm_(&transb, &transa, &n, &m, &k, - &alpha, b, &ldb, a, &lda, + &alpha, b, &ldb, a, &lda, &beta, c, &ldc); } static inline void gemm(const char transa, const char transb, const int m, const int n, const int k, - const double alpha, const double *a, const int lda, const double *b, const int ldb, + const double alpha, const double *a, const int lda, const double *b, const int ldb, const double beta, double *c, const int ldc) { dgemm_(&transb, &transa, &n, &m, &k, - &alpha, b, &ldb, a, &lda, + &alpha, b, &ldb, a, &lda, &beta, c, &ldc); } static inline void gemm(const char transa, const char transb, const int m, const int n, const int k, - const std::complex alpha, const std::complex *a, const int lda, const std::complex *b, const int ldb, + const std::complex alpha, const std::complex *a, const int lda, const std::complex *b, const int ldb, const std::complex beta, std::complex *c, const int ldc) { zgemm_(&transb, &transa, &n, &m, &k, - &alpha, b, &ldb, a, &lda, + &alpha, b, &ldb, a, &lda, &beta, c, &ldc); } @@ -197,7 +197,7 @@ class BlasConnector return dznrm2_( &n, X, &incX ); } - // copies a into b + // copies a into b static inline void copy(const long n, const double *a, const int incx, double *b, const int incy) { @@ -207,8 +207,52 @@ class BlasConnector void copy(const long n, const std::complex *a, const int incx, std::complex *b, const int incy) { zcopy_(&n, a, &incx, b, &incy); - } - + } }; -#endif +// If GATHER_INFO is defined, the original function is replaced with a "i" suffix, +// preventing changes on the original code. +// The real function call is at gather_math_lib_info.cpp +#ifdef GATHER_INFO + +#define zgemm_ zgemm_i +void zgemm_i(const char *transa, + const char *transb, + const int *m, + const int *n, + const int *k, + const std::complex *alpha, + const std::complex *a, + const int *lda, + const std::complex *b, + const int *ldb, + const std::complex *beta, + std::complex *c, + const int *ldc); + +#define zaxpy_ zaxpy_i +void zaxpy_i(const int *N, + const std::complex *alpha, + const std::complex *X, + const int *incX, + std::complex *Y, + const int *incY); + +/* +#define zgemv_ zgemv_i + +void zgemv_i(const char *trans, + const int *m, + const int *n, + const std::complex *alpha, + const std::complex *a, + const int *lda, + const std::complex *x, + const int *incx, + const std::complex *beta, + std::complex *y, + const int *incy); +*/ + +#endif // GATHER_INFO +#endif // BLAS_CONNECTOR_H diff --git a/source/module_base/gather_math_lib_info.cpp b/source/module_base/gather_math_lib_info.cpp new file mode 100644 index 0000000000..b340e992e9 --- /dev/null +++ b/source/module_base/gather_math_lib_info.cpp @@ -0,0 +1,78 @@ +// This file defines the math lib wrapper for output information before executing computations. + +/* +When INFO is defined in cmake configure, a macro of GATHER_INFO will be defined. +This macro will be used to output information before executing computations. +Results will output to OUT/math_info.log, see ModuleBase::Global_File::make_dir_out . +*/ + +#include +#undef GATHER_INFO +#include "module_base/blas_connector.h" +#include "module_base/lapack_connector.h" + +#include + +void zgemm_i(const char *transa, + const char *transb, + const int *m, + const int *n, + const int *k, + const std::complex *alpha, + const std::complex *a, + const int *lda, + const std::complex *b, + const int *ldb, + const std::complex *beta, + std::complex *c, + const int *ldc) +{ + GlobalV::ofs_info << std::defaultfloat << "zgemm " << *transa << " " << *transb << " " << *m << " " << *n << " " + << *k << " " << *alpha << " " << *lda << " " << *ldb << " " << *beta << " " << *ldc << std::endl; + zgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc); +} + +void zaxpy_i(const int *N, + const std::complex *alpha, + const std::complex *X, + const int *incX, + std::complex *Y, + const int *incY) +{ + // std::cout << "zaxpy " << *N << std::endl; + // alpha is a coefficient + // incX, incY is always 1 + zaxpy_(N, alpha, X, incX, Y, incY); +} + +void zhegvx_i(const int *itype, + const char *jobz, + const char *range, + const char *uplo, + const int *n, + std::complex *a, + const int *lda, + std::complex *b, + const int *ldb, + const double *vl, + const double *vu, + const int *il, + const int *iu, + const double *abstol, + const int *m, + double *w, + std::complex *z, + const int *ldz, + std::complex *work, + const int *lwork, + double *rwork, + int *iwork, + int *ifail, + int *info) +{ + GlobalV::ofs_info << std::defaultfloat << "zhegvx " << *itype << " " << *jobz << " " << *range << " " << *uplo + << " " << *n << " " << *lda << " " << *ldb << " " << *vl << " " << *vu << " " << *il << " " << *iu + << " " << *abstol << " " << *m << " " << *lwork << " " << *info << std::endl; + zhegvx_(itype, jobz, range, uplo, n, a, lda, b, ldb, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, + iwork, ifail, info); +} diff --git a/source/module_base/global_file.cpp b/source/module_base/global_file.cpp index eaa64c603f..13de3e7193 100644 --- a/source/module_base/global_file.cpp +++ b/source/module_base/global_file.cpp @@ -64,7 +64,7 @@ void ModuleBase::Global_File::make_dir_out( } else { - std::cout << " PROC " << rank << " CAN NOT MAKE THE DIR !!! " << std::endl; + std::cout << " PROC " << rank << " CAN NOT MAKE THE DIR !!! " << std::endl; make_dir = 0; } } @@ -79,7 +79,7 @@ void ModuleBase::Global_File::make_dir_out( if(make_dir==0) { std::cout << " CAN NOT MAKE THE OUT DIR......." << std::endl; - ModuleBase::QUIT(); + ModuleBase::QUIT(); } MPI_Barrier(MPI_COMM_WORLD); #endif @@ -101,7 +101,7 @@ void ModuleBase::Global_File::make_dir_out( } else { - std::cout << " PROC " << rank << " CAN NOT MAKE THE STRU DIR !!! " << std::endl; + std::cout << " PROC " << rank << " CAN NOT MAKE THE STRU DIR !!! " << std::endl; make_dir_stru = 0; } } @@ -116,7 +116,7 @@ void ModuleBase::Global_File::make_dir_out( if(make_dir_stru==0) { std::cout << " CAN NOT MAKE THE STRU DIR......." << std::endl; - ModuleBase::QUIT(); + ModuleBase::QUIT(); } MPI_Barrier(MPI_COMM_WORLD); #endif @@ -141,8 +141,13 @@ void ModuleBase::Global_File::make_dir_out( if(rank==0) { - open_log(GlobalV::ofs_warning, "warning", calculation, restart); + open_log(GlobalV::ofs_warning, "warning", calculation, restart); } + +#ifdef GATHER_INFO + open_log(GlobalV::ofs_info, "math_info_" + std::to_string(rank), calculation, restart); +#endif + return; } @@ -220,8 +225,12 @@ void ModuleBase::Global_File::close_all_log(const int rank, const bool out_alllo if (rank==0) { - close_log(GlobalV::ofs_warning,"warning.log"); + close_log(GlobalV::ofs_warning, "warning.log"); } + +#ifdef GATHER_INFO + close_log(GlobalV::ofs_info, "math_info"); +#endif return; } } diff --git a/source/module_base/global_variable.cpp b/source/module_base/global_variable.cpp index fb14aca2be..d97f652d0d 100644 --- a/source/module_base/global_variable.cpp +++ b/source/module_base/global_variable.cpp @@ -129,7 +129,7 @@ std::string global_wannier_card; std::string global_pseudo_dir = ""; std::string global_orbital_dir = ""; // liuyu add 2021-08-14 -std::string global_pseudo_type = "auto"; +std::string global_pseudo_type = "auto"; std::string global_epm_pseudo_card; std::string global_out_dir; std::string global_readin_dir; // zhengdy modified @@ -137,6 +137,7 @@ std::string global_stru_dir; std::ofstream ofs_running; std::ofstream ofs_warning; +std::ofstream ofs_info; // output math lib info //---------------------------------------------------------- // EXPLAIN : test level for each class @@ -156,6 +157,8 @@ int test_wf = 0; int test_charge = 0; int test_potential = 0; int test_energy = 0; +// for test purpose, skip ewald calculation +bool test_skip_ewald = false; //---------------------------------------------------------- // src_lcao //---------------------------------------------------------- diff --git a/source/module_base/global_variable.h b/source/module_base/global_variable.h index aa97a4612e..25b4bc079f 100644 --- a/source/module_base/global_variable.h +++ b/source/module_base/global_variable.h @@ -160,6 +160,7 @@ extern std::string global_stru_dir; // liuyu add 2022-05-24 for MD STRU extern std::ofstream ofs_running; extern std::ofstream ofs_warning; +extern std::ofstream ofs_info; //========================================================== // EXPLAIN : test level for each class @@ -179,6 +180,7 @@ extern int test_wf; extern int test_charge; extern int test_potential; extern int test_energy; +extern bool test_skip_ewald; //========================================================== // src_onscaling //========================================================== diff --git a/source/module_base/lapack_connector.h b/source/module_base/lapack_connector.h index b812f1d508..96a7a78245 100644 --- a/source/module_base/lapack_connector.h +++ b/source/module_base/lapack_connector.h @@ -42,7 +42,7 @@ extern "C" void dsygvx_(const int* itype, const char* jobz, const char* range, const char* uplo, const int* n, double* A, const int* lda, double* B, const int* ldb, const double* vl, const double* vu, const int* il, const int* iu, - const double* abstol, int* m, double* w, double* Z, const int* ldz, + const double* abstol, int* m, double* w, double* Z, const int* ldz, double* work, int* lwork, int*iwork, int* ifail, int* info); // solve the eigenproblem Ax=ex, where A is Symmetric and real double void dsyev_(const char* jobz,const char* uplo,const int* n,double *a, @@ -70,8 +70,8 @@ extern "C" // if trans=='N': C = alpha * A * A.H + beta * C // if trans=='C': C = alpha * A.H * A + beta * C - void zherk_(const char *uplo, const char *trans, const int *n, const int *k, - const double *alpha, const std::complex *A, const int *lda, + void zherk_(const char *uplo, const char *trans, const int *n, const int *k, + const double *alpha, const std::complex *A, const int *lda, const double *beta, std::complex *C, const int *ldc); // computes all eigenvalues of a symmetric tridiagonal matrix @@ -110,6 +110,34 @@ extern "C" } +#ifdef GATHER_INFO +#define zhegvx_ zhegvx_i +void zhegvx_i(const int* itype, + const char* jobz, + const char* range, + const char* uplo, + const int* n, + std::complex* a, + const int* lda, + std::complex* b, + const int* ldb, + const double* vl, + const double* vu, + const int* il, + const int* iu, + const double* abstol, + const int* m, + double* w, + std::complex* z, + const int* ldz, + std::complex* work, + const int* lwork, + double* rwork, + int* iwork, + int* ifail, + int* info); +#endif // GATHER_INFO + // Class LapackConnector provide the connector to fortran lapack routine. // The entire function in this class are static and inline function. // Usage example: LapackConnector::functionname(parameter list). @@ -143,8 +171,8 @@ class LapackConnector } } } - - // Peize Lin add 2015-12-27 + + // Peize Lin add 2015-12-27 static inline char change_uplo(const char &uplo) { @@ -153,9 +181,9 @@ class LapackConnector case 'U': return 'L'; case 'L': return 'U'; default: throw std::invalid_argument("uplo must be 'U' or 'L'"); - } + } } - + // Peize Lin add 2019-04-14 static inline char change_trans_NC(const char &trans) @@ -167,7 +195,7 @@ class LapackConnector default: throw std::invalid_argument("trans must be 'N' or 'C'"); } } - + public: static inline @@ -224,7 +252,7 @@ class LapackConnector delete[] bux; delete[] zux; - } + } // calculate the eigenvalues and eigenfunctions of a real symmetric matrix. static inline @@ -252,7 +280,7 @@ class LapackConnector b(j,i)=bux[i*lda+j]; } } - + // free the memory. delete[] aux; delete[] bux; @@ -264,16 +292,16 @@ class LapackConnector { assert(a.nr==a.nc); const char uplo_changed = change_uplo(uplo); - + double work_tmp; constexpr int minus_one = -1; dsyev_(&jobz, &uplo_changed, &a.nr, a.c, &a.nr, w, &work_tmp, &minus_one, &info); // get best lwork - + const int lwork = work_tmp; std::vector work(std::max(1,lwork)); - dsyev_(&jobz, &uplo_changed, &a.nr, a.c, &a.nr, w, ModuleBase::GlobalFunc::VECTOR_TO_PTR(work), &lwork, &info); + dsyev_(&jobz, &uplo_changed, &a.nr, a.c, &a.nr, w, ModuleBase::GlobalFunc::VECTOR_TO_PTR(work), &lwork, &info); } - + // wrap function of fortran lapack routine zheev. static inline void zheev( const char jobz, @@ -349,14 +377,13 @@ class LapackConnector // if trans=='N': C = a * A * A.H + b * C // if trans=='C': C = a * A.H * A + b * C static inline - void zherk(const char uplo, const char trans, const int n, const int k, - const double alpha, const std::complex *A, const int lda, + void zherk(const char uplo, const char trans, const int n, const int k, + const double alpha, const std::complex *A, const int lda, const double beta, std::complex *C, const int ldc) { const char uplo_changed = change_uplo(uplo); const char trans_changed = change_trans_NC(trans); zherk_(&uplo_changed, &trans_changed, &n, &k, &alpha, A, &lda, &beta, C, &ldc); } - }; #endif // LAPACKCONNECTOR_HPP diff --git a/source/module_base/math_chebyshev_def.h b/source/module_base/math_chebyshev_def.h index 4df7d783eb..fd01a10f71 100644 --- a/source/module_base/math_chebyshev_def.h +++ b/source/module_base/math_chebyshev_def.h @@ -349,15 +349,19 @@ void Chebyshev::calpolyvec_complex(T *ptr, { assert(N>=0 && LDA >= N); - int ndmxt; - if(m == 1) ndmxt = N * m; - else ndmxt = LDA * m; + const int ndmxt = LDA * m; std::complex *arraynp1 = polywaveout + 2 * ndmxt; std::complex *arrayn = polywaveout + ndmxt; std::complex *arrayn_1 = polywaveout; - - ModuleBase::GlobalFunc::DCOPY(wavein, arrayn_1, ndmxt); + + std::complex *tmpin = wavein, *tmpout = arrayn_1; + for(int i = 0 ; i < m ; ++i) + { + ModuleBase::GlobalFunc::DCOPY(tmpin, tmpout, N); + tmpin += LDA; + tmpout += LDA; + } //1-st order (ptr->*funA)(arrayn_1, arrayn, m); diff --git a/source/module_base/test/CMakeLists.txt b/source/module_base/test/CMakeLists.txt index 494d9bf600..189109c5ba 100644 --- a/source/module_base/test/CMakeLists.txt +++ b/source/module_base/test/CMakeLists.txt @@ -26,7 +26,7 @@ ADDTest( ) AddTest( TARGET base_vector3 - SOURCES vector3_test.cpp + SOURCES vector3_test.cpp ) AddTest( TARGET base_matrix3 @@ -53,7 +53,7 @@ AddTest( AddTest( TARGET base_complexmatrix LIBS ${math_libs} - SOURCES complexmatrix_test.cpp ../complexmatrix.cpp ../matrix.cpp + SOURCES complexmatrix_test.cpp ../complexmatrix.cpp ../matrix.cpp ) AddTest( TARGET base_integral @@ -66,7 +66,7 @@ AddTest( AddTest( TARGET base_ylmreal LIBS ${math_libs} - SOURCES math_ylmreal_test.cpp ../math_ylmreal.cpp ../ylm.cpp ../realarray.cpp ../timer.cpp ../matrix.cpp ../vector3.h + SOURCES math_ylmreal_test.cpp ../math_ylmreal.cpp ../ylm.cpp ../realarray.cpp ../timer.cpp ../matrix.cpp ../vector3.h ) AddTest( TARGET base_math_sphbes diff --git a/source/module_base/tool_quit.cpp b/source/module_base/tool_quit.cpp index 8e382c657a..7f0646e867 100644 --- a/source/module_base/tool_quit.cpp +++ b/source/module_base/tool_quit.cpp @@ -128,4 +128,42 @@ void WARNING_QUIT(const std::string &file,const std::string &description) QUIT(); } + +//Check and print warning information for all cores. +//Maybe in the future warning.log should be replaced by error.log. +void CHECK_WARNING_QUIT(const bool error_in, const std::string &file,const std::string &description) +{ +#ifdef __NORMAL +// only for UT, do nothing here +#else + if(error_in) + { + //All cores will print inforamtion + std::cout.clear(); + if(!GlobalV::ofs_running.is_open()) + { + std::string logfile = GlobalV::global_out_dir + "running_" + GlobalV::CALCULATION + ".log"; + GlobalV::ofs_running.open( logfile.c_str(), std::ios::app ); + } + if(!GlobalV::ofs_warning.is_open()) + { + std::string warningfile = GlobalV::global_out_dir + "warning.log"; + GlobalV::ofs_warning.open( warningfile.c_str(), std::ios::app ); + } + + //print error information + std::cout << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; + std::cout << " ERROR! " << description << std::endl; + std::cout << " CHECK IN FILE : " << GlobalV::global_out_dir << "warning.log" << std::endl; + std::cout << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; + GlobalV::ofs_running << " ERROR! CHECK IN FILE : " << GlobalV::global_out_dir << "warning.log" << std::endl; + GlobalV::ofs_warning << std::endl; + GlobalV::ofs_warning << " ERROR! " << file << ", core " << GlobalV::MY_RANK+1 << ": " << description << std::endl; + GlobalV::ofs_warning << std::endl; + exit(0); + } +#endif + return; +} + } diff --git a/source/module_base/tool_quit.h b/source/module_base/tool_quit.h index dd001517e8..c2957c4a9b 100644 --- a/source/module_base/tool_quit.h +++ b/source/module_base/tool_quit.h @@ -43,6 +43,14 @@ void QUIT(void); */ void WARNING_QUIT(const std::string &file, const std::string &description); +/** + * @brief Check, if true, WARNING_QUIT + * + * @param file The file where warning happens + * @param description The warning information + */ +void CHECK_WARNING_QUIT(const bool error, const std::string &file,const std::string &description); + } // namespace ModuleBase #endif diff --git a/source/module_cell/atom_spec.h b/source/module_cell/atom_spec.h index 2406f3aac9..402d7fa4b3 100644 --- a/source/module_cell/atom_spec.h +++ b/source/module_cell/atom_spec.h @@ -34,14 +34,15 @@ class Atom: public Atom_pseudo ModuleBase::Vector3 *tau_original;// Cartesian coordinates of each atom in this type, but without periodic adjustment. ModuleBase::Vector3 *taud;// Direct coordinates of each atom in this type. ModuleBase::Vector3 *vel;// velocities of each atom in this type. + ModuleBase::Vector3 *force; // force acting on each atom in this type. double* mag; double* angle1;//spin angle, added by zhengdy-soc double* angle2; ModuleBase::Vector3 *m_loc_; - void print_Atom(std::ofstream &ofs); + void update_force(ModuleBase::matrix &fcs); #ifdef __MPI void bcast_atom(void); void bcast_atom2(void); diff --git a/source/module_cell/read_atoms.cpp b/source/module_cell/read_atoms.cpp index 51db012807..a21140f18a 100644 --- a/source/module_cell/read_atoms.cpp +++ b/source/module_cell/read_atoms.cpp @@ -567,6 +567,7 @@ bool UnitCell_pseudo::read_atom_positions(std::ifstream &ifpos, std::ofstream &o if (na > 0) { delete[] atoms[it].tau; + delete[] atoms[it].tau_original; delete[] atoms[it].taud; delete[] atoms[it].vel; delete[] atoms[it].mbl; diff --git a/source/module_cell/unitcell.h b/source/module_cell/unitcell.h index e8ffc535c8..9913d9165f 100644 --- a/source/module_cell/unitcell.h +++ b/source/module_cell/unitcell.h @@ -74,6 +74,13 @@ class UnitCell ModuleBase::Matrix3 GGT0; ModuleBase::Matrix3 invGGT0; + //I'm doing a bad thing here! Will change later + bool ionic_position_updated = false; //whether the ionic position has been updated + bool cell_parameter_updated = false; //whether the cell parameters are updated + +private: + ModuleBase::Matrix3 stress; //calculate stress on the cell + public: UnitCell(); ~UnitCell(); @@ -93,7 +100,8 @@ class UnitCell void save_cartesian_position_original(ModuleBase::Vector3* pos)const; bool judge_big_cell(void)const; - + void update_stress(ModuleBase::matrix &scs); //updates stress + void update_force(ModuleBase::matrix &fcs); //updates force in Atom double *atom_mass; std::string *atom_label; diff --git a/source/module_deepks/test/CMakeLists.txt b/source/module_deepks/test/CMakeLists.txt index 76ca8a8a13..0702aa30bc 100644 --- a/source/module_deepks/test/CMakeLists.txt +++ b/source/module_deepks/test/CMakeLists.txt @@ -6,8 +6,8 @@ add_executable( get_target_property(ABACUS_LINK_LIBRARIES ${ABACUS_BIN_NAME} LINK_LIBRARIES) target_link_libraries( test_deepks - base cell symmetry md surchem xc - neighbor orb io ions gint lcao parallel mrrr pdiag pw ri driver esolver hsolver psi elecstate hamilt planewave + base cell symmetry md surchem xc_ + neighbor orb io relax gint lcao parallel mrrr pdiag pw ri driver esolver hsolver psi elecstate hamilt planewave pthread deepks ${ABACUS_LINK_LIBRARIES} diff --git a/source/module_esolver/esolver.cpp b/source/module_esolver/esolver.cpp index 2c309e893a..97ca96c6b8 100644 --- a/source/module_esolver/esolver.cpp +++ b/source/module_esolver/esolver.cpp @@ -6,6 +6,7 @@ #include "esolver_of.h" #include "esolver_lj.h" #include "esolver_dp.h" +#include "module_md/MD_parameters.h" namespace ModuleESolver { @@ -14,35 +15,76 @@ namespace ModuleESolver std::cout << classname << std::endl; } + string determine_type() + { + string esolver_type; + if (GlobalV::BASIS_TYPE == "pw") + { + if (GlobalV::CALCULATION.substr(0, 3) == "sto") + esolver_type = "sdft_pw"; + else + esolver_type = "ksdft_pw"; + } +#ifdef __LCAO + else if (GlobalV::BASIS_TYPE == "lcao_in_pw") + { + if (GlobalV::CALCULATION.substr(0, 3) == "sto") + esolver_type = "sdft_pw"; + else + esolver_type = "ksdft_pw"; + } + else if (GlobalV::BASIS_TYPE == "lcao") + { + esolver_type = "ksdft_lcao"; + if (INPUT.tddft == 1) + esolver_type = "ksdft_lcao_tddft"; + } +#endif + if(INPUT.mdp.md_ensolver == "LJ") + { + esolver_type = "lj_pot"; + } + if(INPUT.mdp.md_ensolver == "DP") + { + esolver_type = "dp_pot"; + } + + GlobalV::ofs_running << " The esolver type has been set to : " << esolver_type << std::endl; + return esolver_type; + } //Some API to operate E_Solver - void init_esolver(ESolver*& p_esolver, const string use_esol) + void init_esolver(ESolver*& p_esolver) { - if (use_esol == "ksdft_pw") + //determine type of esolver based on INPUT information + string esolver_type = determine_type(); + + //initialize the corresponding Esolver child class + if (esolver_type == "ksdft_pw") { p_esolver = new ESolver_KS_PW(); } - else if (use_esol == "ksdft_lcao") + else if (esolver_type == "ksdft_lcao") { p_esolver = new ESolver_KS_LCAO(); } - else if (use_esol == "ksdft_lcao_tddft") + else if (esolver_type == "ksdft_lcao_tddft") { p_esolver = new ESolver_KS_LCAO_TDDFT(); } - else if (use_esol == "sdft_pw") + else if (esolver_type == "sdft_pw") { p_esolver = new ESolver_SDFT_PW(); } - // else if(use_esol == "ofdft") + // else if(esolver_type == "ofdft") // { // p_esolver = new OFDFT(); // } - else if (use_esol == "lj_pot") + else if (esolver_type == "lj_pot") { p_esolver = new ESolver_LJ(); } - else if (use_esol == "dp_pot") + else if (esolver_type == "dp_pot") { p_esolver = new ESolver_DP(); } diff --git a/source/module_esolver/esolver.h b/source/module_esolver/esolver.h index 28b206f1a1..073e6582f1 100644 --- a/source/module_esolver/esolver.h +++ b/source/module_esolver/esolver.h @@ -68,7 +68,8 @@ namespace ModuleESolver psi::Psi* psid = nullptr; }; - void init_esolver(ESolver*& p_esolver, const string use_esol); + string determine_type(); + void init_esolver(ESolver*& p_esolver); void clean_esolver(ESolver*& pesolver); } diff --git a/source/module_esolver/esolver_ks.cpp b/source/module_esolver/esolver_ks.cpp index 77942c68cc..8df0dc4b46 100644 --- a/source/module_esolver/esolver_ks.cpp +++ b/source/module_esolver/esolver_ks.cpp @@ -82,25 +82,29 @@ namespace ModuleESolver // mohan add 2021-01-30 Print_Info::setup_parameters(ucell, GlobalC::kv); - //new plane wave basis -#ifdef __MPI - this->pw_wfc->initmpi(GlobalV::NPROC_IN_POOL, GlobalV::RANK_IN_POOL, POOL_WORLD); -#endif - this->pw_wfc->initgrids(ucell.lat0, ucell.latvec, GlobalC::rhopw->nx, GlobalC::rhopw->ny, GlobalC::rhopw->nz); - this->pw_wfc->initparameters(false, inp.ecutwfc, GlobalC::kv.nks, GlobalC::kv.kvec_d.data()); -#ifdef __MPI - if(INPUT.pw_seed > 0) MPI_Allreduce(MPI_IN_PLACE, &this->pw_wfc->ggecut, 1, MPI_DOUBLE, MPI_MAX , MPI_COMM_WORLD); - //qianrui add 2021-8-13 to make different kpar parameters can get the same results -#endif - this->pw_wfc->setuptransform(); - for(int ik = 0 ; ik < GlobalC::kv.nks; ++ik) GlobalC::kv.ngk[ik] = this->pw_wfc->npwk[ik]; - this->pw_wfc->collect_local_pw(); - print_wfcfft(inp, GlobalV::ofs_running); - + if(GlobalV::BASIS_TYPE=="pw" || GlobalV::CALCULATION=="ienvelope") + { + //Envelope function is calculated as lcao_in_pw + //new plane wave basis + #ifdef __MPI + this->pw_wfc->initmpi(GlobalV::NPROC_IN_POOL, GlobalV::RANK_IN_POOL, POOL_WORLD); + #endif + this->pw_wfc->initgrids(ucell.lat0, ucell.latvec, GlobalC::rhopw->nx, GlobalC::rhopw->ny, GlobalC::rhopw->nz); + this->pw_wfc->initparameters(false, inp.ecutwfc, GlobalC::kv.nks, GlobalC::kv.kvec_d.data()); + #ifdef __MPI + if(INPUT.pw_seed > 0) MPI_Allreduce(MPI_IN_PLACE, &this->pw_wfc->ggecut, 1, MPI_DOUBLE, MPI_MAX , MPI_COMM_WORLD); + //qianrui add 2021-8-13 to make different kpar parameters can get the same results + #endif + this->pw_wfc->setuptransform(); + for(int ik = 0 ; ik < GlobalC::kv.nks; ++ik) GlobalC::kv.ngk[ik] = this->pw_wfc->npwk[ik]; + this->pw_wfc->collect_local_pw(); + this->print_wfcfft(inp, GlobalV::ofs_running); + } // initialize the real-space uniform grid for FFT and parallel // distribution of plane waves GlobalC::Pgrid.init(GlobalC::rhopw->nx, GlobalC::rhopw->ny, GlobalC::rhopw->nz, GlobalC::rhopw->nplane, GlobalC::rhopw->nrxx, GlobalC::bigpw->nbz, GlobalC::bigpw->bz); // mohan add 2010-07-22, update 2011-05-04 + // Calculate Structure factor GlobalC::sf.setup_structure_factor(&GlobalC::ucell, GlobalC::rhopw); @@ -109,6 +113,9 @@ namespace ModuleESolver ModuleBase::GlobalFunc::DONE(GlobalV::ofs_running, "INIT CHARGE"); // Initializee the potential. GlobalC::pot.allocate(GlobalC::rhopw->nrxx); + + // Initialize charge extrapolation + CE.Init_CE(); } void ESolver_KS::hamilt2density(const int istep, const int iter, const double ethr) @@ -160,7 +167,6 @@ namespace ModuleESolver ModuleBase::GlobalFunc::DONE(ofs, "INIT PLANEWAVE"); } - void ESolver_KS::Run(const int istep, UnitCell_pseudo& ucell) { if (!(GlobalV::CALCULATION == "scf" || GlobalV::CALCULATION == "md" @@ -197,37 +203,37 @@ namespace ModuleESolver //they do not occupy all processors, for example wavefunctions uses 20 processors while density uses 10. if(GlobalV::MY_STOGROUP == 0) { - // double drho = this->estate.caldr2(); - // EState should be used after it is constructed. - drho = GlobalC::CHR.get_drho(); - double hsolver_error = 0.0; - if (firstscf) - { - firstscf = false; - hsolver_error = this->phsol->cal_hsolerror(); - // The error of HSolver is larger than drho, so a more precise HSolver should be excuconv_elected. - if (hsolver_error > drho) + // double drho = this->estate.caldr2(); + // EState should be used after it is constructed. + drho = GlobalC::CHR.get_drho(); + double hsolver_error = 0.0; + if (firstscf) { - diag_ethr = this->phsol->reset_diagethr(GlobalV::ofs_running, hsolver_error, drho); - this->hamilt2density(istep, iter, diag_ethr); - drho = GlobalC::CHR.get_drho(); + firstscf = false; hsolver_error = this->phsol->cal_hsolerror(); + // The error of HSolver is larger than drho, so a more precise HSolver should be excuconv_elected. + if (hsolver_error > drho) + { + diag_ethr = this->phsol->reset_diagethr(GlobalV::ofs_running, hsolver_error, drho); + this->hamilt2density(istep, iter, diag_ethr); + drho = GlobalC::CHR.get_drho(); + hsolver_error = this->phsol->cal_hsolerror(); + } } - } - this->conv_elec = (drho < this->scf_thr); + this->conv_elec = (drho < this->scf_thr); - // If drho < hsolver_error in the first iter or drho < scf_thr, we do not change rho. - if (drho < hsolver_error || this->conv_elec) - { - if (drho < hsolver_error) GlobalV::ofs_warning << " drho < hsolver_error, keep charge density unchanged." << std::endl; - } - else - { - //charge mixing - //conv_elec = this->estate.mix_rho(); - GlobalC::CHR.mix_rho(iter); - } + // If drho < hsolver_error in the first iter or drho < scf_thr, we do not change rho. + if (drho < hsolver_error || this->conv_elec) + { + if (drho < hsolver_error) GlobalV::ofs_warning << " drho < hsolver_error, keep charge density unchanged." << std::endl; + } + else + { + //charge mixing + //conv_elec = this->estate.mix_rho(); + GlobalC::CHR.mix_rho(iter); + } } #ifdef __MPI MPI_Bcast(&drho, 1, MPI_DOUBLE , 0, PARAPW_WORLD); diff --git a/source/module_esolver/esolver_ks.h b/source/module_esolver/esolver_ks.h index 9ec81d6135..fe7fa37fbd 100644 --- a/source/module_esolver/esolver_ks.h +++ b/source/module_esolver/esolver_ks.h @@ -7,6 +7,8 @@ #include "module_hamilt/hamilt.h" #include "module_elecstate/elecstate.h" #include "module_pw/pw_basis_k.h" +#include "src_io/cal_test.h" +#include "../src_pw/charge_extra.h" // #include "estates.h" // #include "h2e.h" namespace ModuleESolver @@ -51,7 +53,6 @@ namespace ModuleESolver // choose strategy when charge density convergence achieved virtual bool do_after_converge(int& iter){return true;} - //TOOLS: protected: // Print the headline on the screen: @@ -69,10 +70,11 @@ namespace ModuleESolver elecstate::ElecState* pelec = nullptr; hamilt::Hamilt* phami = nullptr; ModulePW::PW_Basis_K* pw_wfc = nullptr; + Charge_Extra CE; protected: std::string basisname; //PW or LCAO - private: + protected: void print_wfcfft(Input& inp, ofstream &ofs); }; diff --git a/source/module_esolver/esolver_ks_lcao.cpp b/source/module_esolver/esolver_ks_lcao.cpp index 5ef2f2128e..a9081b67b8 100644 --- a/source/module_esolver/esolver_ks_lcao.cpp +++ b/source/module_esolver/esolver_ks_lcao.cpp @@ -63,20 +63,6 @@ void ESolver_KS_LCAO::Init(Input& inp, UnitCell_pseudo& ucell) else { ESolver_KS::Init(inp, ucell); -#ifdef __MPI - if (GlobalV::CALCULATION == "nscf") - { - switch (GlobalC::exx_global.info.hybrid_type) - { - case Exx_Global::Hybrid_Type::HF: - case Exx_Global::Hybrid_Type::PBE0: - case Exx_Global::Hybrid_Type::SCAN0: - case Exx_Global::Hybrid_Type::HSE: - XC_Functional::set_xc_type(ucell.atoms[0].xc_func); - break; - } - } -#endif #ifdef __DEEPKS // wenfei 2021-12-19 @@ -133,6 +119,19 @@ void ESolver_KS_LCAO::Init(Input& inp, UnitCell_pseudo& ucell) //------------------init Hamilt_lcao---------------------- #ifdef __MPI + if (GlobalV::CALCULATION == "nscf") + { + switch (GlobalC::exx_global.info.hybrid_type) + { + case Exx_Global::Hybrid_Type::HF: + case Exx_Global::Hybrid_Type::PBE0: + case Exx_Global::Hybrid_Type::SCAN0: + case Exx_Global::Hybrid_Type::HSE: + XC_Functional::set_xc_type(ucell.atoms[0].xc_func); + break; + } + } + // PLEASE simplify the Exx_Global interface // mohan add 2021-03-25 // Peize Lin 2016-12-03 @@ -273,6 +272,12 @@ void ESolver_KS_LCAO::cal_Stress(ModuleBase::matrix& stress) void ESolver_KS_LCAO::postprocess() { + + GlobalV::ofs_running << "\n\n --------------------------------------------" << std::endl; + GlobalV::ofs_running << std::setprecision(16); + GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; + GlobalV::ofs_running << " --------------------------------------------\n\n" << std::endl; + GlobalC::en.perform_dos(this->psid, this->psi, this->UHM); } @@ -687,14 +692,15 @@ void ESolver_KS_LCAO::afterscf() ssp << GlobalV::global_out_dir << "SPIN" << is + 1 << "_POT"; GlobalC::pot.write_potential(is, 0, ssp.str(), GlobalC::pot.vr_eff, precision); } + } - // LiuXh modify 20200701 - /* - //fuxiang add 2017-03-15 - std::stringstream sse; - sse << GlobalV::global_out_dir << "SPIN" << is + 1 << "_DIPOLE_ELEC"; - GlobalC::CHR.write_rho_dipole(GlobalC::CHR.rho_save, is, 0, sse.str()); - */ + if (GlobalC::pot.out_pot == 2) + { + std::stringstream ssp; + std::stringstream ssp_ave; + ssp << GlobalV::global_out_dir << "ElecStaticPot"; + ssp_ave << GlobalV::global_out_dir << "ElecStaticPot_AVE"; + GlobalC::pot.write_elecstat_pot(ssp.str(), ssp_ave.str(), GlobalC::rhopw); //output 'Hartree + local pseudopot' } if (this->conv_elec) @@ -971,6 +977,7 @@ bool ESolver_KS_LCAO::do_after_converge(int& iter) //update exx and redo scf XC_Functional::set_xc_type(GlobalC::ucell.atoms[0].xc_func); iter = 0; + std::cout << " Entering 2nd SCF, where EXX is updated" << std::endl; this->two_level_step++; return false; } @@ -988,6 +995,7 @@ bool ESolver_KS_LCAO::do_after_converge(int& iter) GlobalC::exx_lcao.cal_exx_elec(this->LOC, this->LOWF.wfc_k_grid); iter = 0; + std::cout << " Updating EXX and rerun SCF" << std::endl; this->two_level_step++; return false; } diff --git a/source/module_esolver/esolver_ks_lcao_elec.cpp b/source/module_esolver/esolver_ks_lcao_elec.cpp index d9ef3d2a65..59a111e319 100644 --- a/source/module_esolver/esolver_ks_lcao_elec.cpp +++ b/source/module_esolver/esolver_ks_lcao_elec.cpp @@ -231,6 +231,53 @@ namespace ModuleESolver { ModuleBase::TITLE("ESolver_KS_LCAO", "beforescf"); ModuleBase::timer::tick("ESolver_KS_LCAO", "beforescf"); + + if(GlobalV::CALCULATION=="relax" || GlobalV::CALCULATION=="cell-relax") + { + if(GlobalC::ucell.ionic_position_updated) + { + GlobalV::ofs_running << " Setup the extrapolated charge." << std::endl; + // charge extrapolation if istep>0. + CE.update_istep(istep); + CE.update_all_pos(GlobalC::ucell); + CE.extrapolate_charge(); + CE.save_pos_next(GlobalC::ucell); + + GlobalV::ofs_running << " Setup the Vl+Vh+Vxc according to new structure factor and new charge." << std::endl; + // calculate the new potential accordint to + // the new charge density. + GlobalC::pot.init_pot( istep-1, GlobalC::sf.strucFac ); + } + } + + //---------------------------------------------------------- + // about vdw, jiyy add vdwd3 and linpz add vdwd2 + //---------------------------------------------------------- + if (INPUT.vdw_method == "d2") + { + // setup vdwd2 parameters + GlobalC::vdwd2_para.initial_parameters(INPUT); + GlobalC::vdwd2_para.initset(GlobalC::ucell); + } + if (INPUT.vdw_method == "d3_0" || INPUT.vdw_method == "d3_bj") + { + GlobalC::vdwd3_para.initial_parameters(INPUT); + } + // Peize Lin add 2014.04.04, update 2021.03.09 + if (GlobalC::vdwd2_para.flag_vdwd2) + { + Vdwd2 vdwd2(GlobalC::ucell, GlobalC::vdwd2_para); + vdwd2.cal_energy(); + GlobalC::en.evdw = vdwd2.get_energy(); + } + // jiyy add 2019-05-18, update 2021.05.02 + else if (GlobalC::vdwd3_para.flag_vdwd3) + { + Vdwd3 vdwd3(GlobalC::ucell, GlobalC::vdwd3_para); + vdwd3.cal_energy(); + GlobalC::en.evdw = vdwd3.get_energy(); + } + this->beforesolver(istep); //Peize Lin add 2016-12-03 #ifdef __MPI @@ -256,7 +303,10 @@ namespace ModuleESolver #endif // 1. calculate ewald energy. // mohan update 2021-02-25 - H_Ewald_pw::compute_ewald(GlobalC::ucell, GlobalC::rhopw); + if(!GlobalV::test_skip_ewald) + { + H_Ewald_pw::compute_ewald(GlobalC::ucell, GlobalC::rhopw); + } //2. the electron charge density should be symmetrized, // here is the initialization @@ -282,8 +332,36 @@ namespace ModuleESolver if(GlobalV::CALCULATION == "get_S") { this->get_S(); + ModuleBase::QUIT(); + } + + if(GlobalV::CALCULATION == "test_memory") + { + Cal_Test::test_memory(); return; } + + if(GlobalV::CALCULATION == "test_neighbour") + { + //test_search_neighbor(); + GlobalV::SEARCH_RADIUS = atom_arrange::set_sr_NL( + GlobalV::ofs_running, + GlobalV::OUT_LEVEL, + GlobalC::ORB.get_rcutmax_Phi(), + GlobalC::ucell.infoNL.get_rcutmax_Beta(), + GlobalV::GAMMA_ONLY_LOCAL); + + atom_arrange::search( + GlobalV::SEARCH_PBC, + GlobalV::ofs_running, + GlobalC::GridD, + GlobalC::ucell, + GlobalV::SEARCH_RADIUS, + GlobalV::test_atom_input, + 1); + return; + } + this->beforesolver(istep); // self consistent calculations for electronic ground state if (GlobalV::CALCULATION == "nscf") @@ -369,7 +447,7 @@ namespace ModuleESolver #endif // mohan add 2021-02-09 - // in LOOP_ions, istep starts from 1, + // in ions, istep starts from 1, // then when the istep is a variable of scf or nscf, // istep becomes istep-1, this should be fixed in future int istep = 0; diff --git a/source/module_esolver/esolver_ks_pw.cpp b/source/module_esolver/esolver_ks_pw.cpp index cd02da527d..d13448ca07 100644 --- a/source/module_esolver/esolver_ks_pw.cpp +++ b/source/module_esolver/esolver_ks_pw.cpp @@ -122,25 +122,6 @@ namespace ModuleESolver GlobalC::wf.wfcinit(this->psi); } -#ifdef __LCAO -#ifdef __MPI - switch (GlobalC::exx_global.info.hybrid_type) // Peize Lin add 2019-03-09 - { - case Exx_Global::Hybrid_Type::HF: - case Exx_Global::Hybrid_Type::PBE0: - case Exx_Global::Hybrid_Type::SCAN0: - case Exx_Global::Hybrid_Type::HSE: - GlobalC::exx_lip.init(&GlobalC::kv, &GlobalC::wf, GlobalC::wfcpw, GlobalC::rhopw, &GlobalC::ucell); - break; - case Exx_Global::Hybrid_Type::No: - break; - case Exx_Global::Hybrid_Type::Generate_Matrix: - default: - throw std::invalid_argument(ModuleBase::GlobalFunc::TO_STRING(__FILE__) + ModuleBase::GlobalFunc::TO_STRING(__LINE__)); - } -#endif -#endif - ModuleBase::GlobalFunc::DONE(GlobalV::ofs_running, "INIT BASIS"); } @@ -165,6 +146,33 @@ namespace ModuleESolver void ESolver_KS_PW::beforescf(int istep) { + ModuleBase::TITLE("ESolver_KS_PW", "beforescf"); + + if(GlobalV::CALCULATION=="relax" || GlobalV::CALCULATION=="cell-relax") + { + if(GlobalC::ucell.ionic_position_updated) + { + GlobalV::ofs_running << " Setup the extrapolated charge." << std::endl; + // charge extrapolation if istep>0. + CE.update_istep(istep); + CE.update_all_pos(GlobalC::ucell); + CE.extrapolate_charge(); + CE.save_pos_next(GlobalC::ucell); + + GlobalV::ofs_running << " Setup the Vl+Vh+Vxc according to new structure factor and new charge." << std::endl; + // calculate the new potential accordint to + // the new charge density. + GlobalC::pot.init_pot( istep, GlobalC::sf.strucFac ); + } + } + if(GlobalC::ucell.cell_parameter_updated) + { + GlobalC::wfcpw->initgrids(GlobalC::ucell.lat0, GlobalC::ucell.latvec, GlobalC::wfcpw->nx, GlobalC::wfcpw->ny, GlobalC::wfcpw->nz); + GlobalC::wfcpw->initparameters(false, INPUT.ecutwfc, GlobalC::kv.nks, GlobalC::kv.kvec_d.data()); + GlobalC::wfcpw->collect_local_pw(); + GlobalC::wf.init_after_vc(GlobalC::kv.nks, this->psi); + GlobalC::wf.init_at_1(); + } //init Hamilt, this should be allocated before each scf loop //Operators in HamiltPW should be reallocated once cell changed //delete Hamilt if not first scf @@ -179,8 +187,37 @@ namespace ModuleESolver this->phami = new hamilt::HamiltPW(); } + //---------------------------------------------------------- + // about vdw, jiyy add vdwd3 and linpz add vdwd2 + //---------------------------------------------------------- + if(INPUT.vdw_method=="d2") + { + // setup vdwd2 parameters + GlobalC::vdwd2_para.initial_parameters(INPUT); + GlobalC::vdwd2_para.initset(GlobalC::ucell); + } + if(INPUT.vdw_method=="d3_0" || INPUT.vdw_method=="d3_bj") + { + GlobalC::vdwd3_para.initial_parameters(INPUT); + } + if(GlobalC::vdwd2_para.flag_vdwd2) //Peize Lin add 2014-04-03, update 2021-03-09 + { + Vdwd2 vdwd2(GlobalC::ucell,GlobalC::vdwd2_para); + vdwd2.cal_energy(); + GlobalC::en.evdw = vdwd2.get_energy(); + } + if(GlobalC::vdwd3_para.flag_vdwd3) //jiyy add 2019-05-18, update 2021-05-02 + { + Vdwd3 vdwd3(GlobalC::ucell,GlobalC::vdwd3_para); + vdwd3.cal_energy(); + GlobalC::en.evdw = vdwd3.get_energy(); + } + //calculate ewald energy - H_Ewald_pw::compute_ewald(GlobalC::ucell, GlobalC::rhopw); + if(!GlobalV::test_skip_ewald) + { + H_Ewald_pw::compute_ewald(GlobalC::ucell, GlobalC::rhopw); + } //Symmetry_rho should be moved to Init() Symmetry_rho srho; for (int is = 0; is < GlobalV::NSPIN; is++) @@ -189,6 +226,39 @@ namespace ModuleESolver } } + void ESolver_KS_PW::othercalculation(const int istep) + { + ModuleBase::TITLE("ESolver_KS_PW", "othercalculation"); + ModuleBase::timer::tick("ESolver_KS_PW", "othercalculation"); + if(GlobalV::CALCULATION == "test_memory") + { + Cal_Test::test_memory(); + return; + } + + if (GlobalV::CALCULATION == "gen_jle") + { + // caoyu add 2020-11-24, mohan updat 2021-01-03 + Numerical_Descriptor nc; + nc.output_descriptor(this->psi[0], INPUT.deepks_descriptor_lmax); + ModuleBase::GlobalFunc::DONE(GlobalV::ofs_running,"GENERATE DESCRIPTOR FOR DEEPKS"); + return; + } + + // self consistent calculations for electronic ground state + if (GlobalV::CALCULATION == "nscf") + { + this->nscf(); + } + else + { + ModuleBase::WARNING_QUIT("ESolver_KS_LCAO::othercalculation", "CALCULATION type not supported"); + } + + ModuleBase::timer::tick("ESolver_KS_PW", "othercalculation"); + return; + } + void ESolver_KS_PW::eachiterinit(const int istep, const int iter) { // mohan add 2010-07-16 @@ -406,8 +476,6 @@ namespace ModuleESolver } if (this->conv_elec) { - //GlobalV::ofs_running << " convergence is achieved" << std::endl; - //GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; GlobalV::ofs_running << "\n charge density convergence is achieved" << std::endl; GlobalV::ofs_running << " final etot is " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; } @@ -416,6 +484,15 @@ namespace ModuleESolver GlobalV::ofs_running << " convergence has NOT been achieved!" << std::endl; } + if(GlobalC::pot.out_pot == 2) + { + std::stringstream ssp; + std::stringstream ssp_ave; + ssp << GlobalV::global_out_dir << "ElecStaticPot"; + ssp_ave << GlobalV::global_out_dir << "ElecStaticPot_AVE"; + GlobalC::pot.write_elecstat_pot(ssp.str(), ssp_ave.str(), GlobalC::rhopw); //output 'Hartree + local pseudopot' + } + if (GlobalV::OUT_LEVEL != "m") { this->print_eigenvalue(GlobalV::ofs_running); @@ -542,23 +619,31 @@ namespace ModuleESolver { Stress_PW ss; ss.cal_stress(stress, this->psi); + + //external stress + double unit_transform = 0.0; + unit_transform = ModuleBase::RYDBERG_SI / pow(ModuleBase::BOHR_RADIUS_SI,3) * 1.0e-8; + double external_stress[3] = {GlobalV::PRESS1,GlobalV::PRESS2,GlobalV::PRESS3}; + for(int i=0;i<3;i++) + { + stress(i,i) -= external_stress[i]/unit_transform; + } + GlobalV::PRESSURE = (stress(0,0)+stress(1,1)+stress(2,2))/3; } void ESolver_KS_PW::postprocess() { + + GlobalV::ofs_running << "\n\n --------------------------------------------" << std::endl; + GlobalV::ofs_running << std::setprecision(16); + GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; + GlobalV::ofs_running << " --------------------------------------------\n\n" << std::endl; + //print occupation in istate.info GlobalC::en.print_occ(); // compute density of states GlobalC::en.perform_dos_pw(); - // caoyu add 2020-11-24, mohan updat 2021-01-03 - if(GlobalV::BASIS_TYPE=="pw" && GlobalV::deepks_out_labels) - { - Numerical_Descriptor nc; - nc.output_descriptor(this->psi[0], INPUT.deepks_descriptor_lmax); - ModuleBase::GlobalFunc::DONE(GlobalV::ofs_running,"GENERATE DESCRIPTOR FOR DEEPKS"); - } - if(GlobalV::BASIS_TYPE=="pw" && winput::out_spillage) //xiaohui add 2013-09-01 { //std::cout << "\n Output Spillage Information : " << std::endl; diff --git a/source/module_esolver/esolver_ks_pw.h b/source/module_esolver/esolver_ks_pw.h index b96846f8cb..43173a7eb0 100644 --- a/source/module_esolver/esolver_ks_pw.h +++ b/source/module_esolver/esolver_ks_pw.h @@ -33,6 +33,7 @@ namespace ModuleESolver virtual void updatepot(const int istep, const int iter) override; virtual void eachiterfinish(const int iter) override; virtual void afterscf() override; + virtual void othercalculation(const int istep)override; //temporary, this will be removed in the future; //Init Global class diff --git a/source/module_esolver/esolver_ks_pw_tool.cpp b/source/module_esolver/esolver_ks_pw_tool.cpp index 1e5fc79150..5d8790072c 100644 --- a/source/module_esolver/esolver_ks_pw_tool.cpp +++ b/source/module_esolver/esolver_ks_pw_tool.cpp @@ -158,7 +158,7 @@ void ESolver_KS_PW::calcondw(const int nt,const double dt,const double fwhmin,co double * cw11 = new double [nw]; double * cw12 = new double [nw]; double * cw22 = new double [nw]; - double * kappa = new double [(int)ceil(wcut/dw_in)]; + double * kappa = new double [nw]; ModuleBase::GlobalFunc::ZEROS(cw11,nw); ModuleBase::GlobalFunc::ZEROS(cw12,nw); ModuleBase::GlobalFunc::ZEROS(cw22,nw); diff --git a/source/module_esolver/esolver_lj.cpp b/source/module_esolver/esolver_lj.cpp index 1cd20fce8d..f5714347ec 100644 --- a/source/module_esolver/esolver_lj.cpp +++ b/source/module_esolver/esolver_lj.cpp @@ -22,8 +22,7 @@ namespace ModuleESolver grid_neigh, ucell, GlobalV::SEARCH_RADIUS, - GlobalV::test_atom_input, - inp.test_just_neighbor); + GlobalV::test_atom_input); } void ESolver_LJ::Run(const int istep, UnitCell_pseudo& ucell) diff --git a/source/module_esolver/esolver_sdft_pw.cpp b/source/module_esolver/esolver_sdft_pw.cpp index 00f442ce88..8b614d6ff0 100644 --- a/source/module_esolver/esolver_sdft_pw.cpp +++ b/source/module_esolver/esolver_sdft_pw.cpp @@ -87,8 +87,6 @@ void ESolver_SDFT_PW::afterscf() } if(this->conv_elec) { - //GlobalV::ofs_running << " convergence is achieved" << std::endl; - //GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; GlobalV::ofs_running << "\n charge density convergence is achieved" << std::endl; GlobalV::ofs_running << " final etot is " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; } @@ -142,9 +140,13 @@ void ESolver_SDFT_PW::cal_Stress(ModuleBase::matrix &stress) } void ESolver_SDFT_PW::postprocess() { + + GlobalV::ofs_running << "\n\n --------------------------------------------" << std::endl; + GlobalV::ofs_running << std::setprecision(16); + GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; + GlobalV::ofs_running << " --------------------------------------------\n\n" << std::endl; GlobalC::en.print_occ(); - ((hsolver::HSolverPW_SDFT*)phsol)->stoiter.cleanchiallorder();//release lots of memories if(this->maxniter == 0) { int iter = 1; @@ -153,6 +155,7 @@ void ESolver_SDFT_PW::postprocess() hsolver::DiagoIterAssist::PW_DIAG_THR = std::max(std::min(1e-5, 0.1 * GlobalV::SCF_THR / std::max(1.0, GlobalC::CHR.nelec)),1e-12); hsolver::DiagoIterAssist::need_subspace = false; this->phsol->solve(this->phami, this->psi[0], this->pelec,this->stowf,istep, iter, GlobalV::KS_SOLVER, true); + ((hsolver::HSolverPW_SDFT*)phsol)->stoiter.cleanchiallorder();//release lots of memories } int nche_test = 0; if(INPUT.cal_cond) nche_test = std::max(nche_test, INPUT.cond_nche); @@ -166,17 +169,21 @@ void ESolver_SDFT_PW::postprocess() if(INPUT.out_dos) { double emax, emin; - if(INPUT.dos_setemax) emax = INPUT.dos_emax_ev; - if(INPUT.dos_setemin) emin = INPUT.dos_emin_ev; + if(INPUT.dos_setemax) + emax = INPUT.dos_emax_ev; + else + emax = ((hsolver::HSolverPW_SDFT*)phsol)->stoiter.stohchi.Emax*ModuleBase::Ry_to_eV; + if(INPUT.dos_setemin) + emin = INPUT.dos_emin_ev; + else + emin = ((hsolver::HSolverPW_SDFT*)phsol)->stoiter.stohchi.Emin*ModuleBase::Ry_to_eV; if(!INPUT.dos_setemax && !INPUT.dos_setemin) { - emax = ((hsolver::HSolverPW_SDFT*)phsol)->stoiter.stohchi.Emax; - emin = ((hsolver::HSolverPW_SDFT*)phsol)->stoiter.stohchi.Emin; double delta=(emax-emin)*INPUT.dos_scale; emax=emax+delta/2.0; emin=emin-delta/2.0; } - this->caldos(INPUT.dos_nche, INPUT.b_coef, emin, emax, INPUT.dos_edelta_ev ); + this->caldos(INPUT.dos_nche, INPUT.b_coef, emin, emax, INPUT.dos_edelta_ev, INPUT.npart_sto ); } } diff --git a/source/module_esolver/esolver_sdft_pw.h b/source/module_esolver/esolver_sdft_pw.h index 729db1149a..2fbac693c3 100644 --- a/source/module_esolver/esolver_sdft_pw.h +++ b/source/module_esolver/esolver_sdft_pw.h @@ -33,7 +33,7 @@ class ESolver_SDFT_PW: public ESolver_KS_PW const double dw_in, const int times); //calculate DOS void caldos(const int nche_dos, const double sigmain, - const double emin, const double emax, const double de); + const double emin, const double emax, const double de, const int npart); private: int nche_sto; //norder of Chebyshev diff --git a/source/module_esolver/esolver_sdft_pw_tool.cpp b/source/module_esolver/esolver_sdft_pw_tool.cpp index 493be88140..d47f0bd1cc 100644 --- a/source/module_esolver/esolver_sdft_pw_tool.cpp +++ b/source/module_esolver/esolver_sdft_pw_tool.cpp @@ -56,7 +56,7 @@ void ESolver_SDFT_PW::check_che(const int nche_in) while(1) { bool converge; - converge= chetest.checkconverge(&stohchi, &Stochastic_hchi::hchi_reciprocal, + converge= chetest.checkconverge(&stohchi, &Stochastic_hchi::hchi_norm, pchi, npw, stohchi.Emax, stohchi.Emin, 5.0); if(!converge) @@ -94,6 +94,7 @@ void ESolver_SDFT_PW::check_che(const int nche_in) void ESolver_SDFT_PW::sKG(const int nche_KG, const double fwhmin, const double wcut, const double dw_in, const int times) { + ModuleBase::TITLE(this->classname,"sKG"); ModuleBase::timer::tick(this->classname,"sKG"); cout<<"Calculating conductivity...."<::ncos, &Sto_Func::nsin); chet2.calcoef_pair(&stoiter.stofunc, &Sto_Func::ncos, &Sto_Func::n_sin); - cout<<"Chebyshev precision: "<phami->hPsi(j1psi.get_pointer(), j2psi.get_pointer(), ndim*totbands_per*npwx); // this->phami->hPsi(j1sfpsi.get_pointer(), j2sfpsi.get_pointer(), ndim*totbands_per*npwx); psi::Range allbands(1,0,0,totbands_per-1); - hamilt::Operator::hpsi_info info_psi0(&psi0, allbands); - const std::complex* hpsi_out = std::get<0>(this->phami->ops->hPsi(info_psi0))->get_pointer(); - ModuleBase::GlobalFunc::COPYARRAY(hpsi_out, hpsi0.get_pointer(), totbands_per*npwx); + hamilt::Operator>::hpsi_info info_psi0(&psi0, allbands, hpsi0.get_pointer()); + this->phami->ops->hPsi(info_psi0); - hamilt::Operator::hpsi_info info_sfpsi0(&sfpsi0, allbands); - const std::complex* hsfpsi_out = std::get<0>(this->phami->ops->hPsi(info_sfpsi0))->get_pointer(); - ModuleBase::GlobalFunc::COPYARRAY(hsfpsi_out, hsfpsi0.get_pointer(), totbands_per*npwx); + hamilt::Operator>::hpsi_info info_sfpsi0(&sfpsi0, allbands, hsfpsi0.get_pointer()); + this->phami->ops->hPsi(info_sfpsi0); psi::Range allndimbands(1,0,0,ndim*totbands_per-1); - hamilt::Operator::hpsi_info info_j1psi(&j1psi, allndimbands); - const std::complex* hj1psi_out = std::get<0>(this->phami->ops->hPsi(info_j1psi))->get_pointer(); - ModuleBase::GlobalFunc::COPYARRAY(hj1psi_out, j2psi.get_pointer(), ndim*totbands_per*npwx); + hamilt::Operator>::hpsi_info info_j1psi(&j1psi, allndimbands, j2psi.get_pointer()); + this->phami->ops->hPsi(info_j1psi); - hamilt::Operator::hpsi_info info_j1sfpsi(&j1sfpsi, allndimbands); - const std::complex* hj1sfpsi_out = std::get<0>(this->phami->ops->hPsi(info_j1sfpsi))->get_pointer(); - ModuleBase::GlobalFunc::COPYARRAY(hj1sfpsi_out, j2sfpsi.get_pointer(), ndim*totbands_per*npwx); + hamilt::Operator>::hpsi_info info_j1sfpsi(&j1sfpsi, allndimbands, j2sfpsi.get_pointer()); + this->phami->ops->hPsi(info_j1sfpsi); /* - // stohchi.hchi_reciprocal(psi0.get_pointer(), hpsi0.get_pointer(), totbands_per); - // stohchi.hchi_reciprocal(sfpsi0.get_pointer(), hsfpsi0.get_pointer(), totbands_per); - // stohchi.hchi_reciprocal(j1psi.get_pointer(), j2psi.get_pointer(), ndim*totbands_per); - // stohchi.hchi_reciprocal(j1sfpsi.get_pointer(), j2sfpsi.get_pointer(), ndim*totbands_per); + // stohchi.hchi_norm(psi0.get_pointer(), hpsi0.get_pointer(), totbands_per); + // stohchi.hchi_norm(sfpsi0.get_pointer(), hsfpsi0.get_pointer(), totbands_per); + // stohchi.hchi_norm(j1psi.get_pointer(), j2psi.get_pointer(), ndim*totbands_per); + // stohchi.hchi_norm(j1sfpsi.get_pointer(), j2sfpsi.get_pointer(), ndim*totbands_per); // double Ebar = (stohchi.Emin + stohchi.Emax)/2; // double DeltaE = (stohchi.Emax - stohchi.Emin)/2; // for(int ib = 0 ; ib < totbands_per ; ++ib) @@ -307,8 +304,8 @@ void ESolver_SDFT_PW::sKG(const int nche_KG, const double fwhmin, const double w //(1-f) che.calcoef_real(&stoiter.stofunc,&Sto_Func::n_fd); - che.calfinalvec_real(&stohchi, &Stochastic_hchi::hchi_reciprocal, j1sfpsi.get_pointer(), j1sfpsi.get_pointer(), npw, npwx, totbands_per*ndim); - che.calfinalvec_real(&stohchi, &Stochastic_hchi::hchi_reciprocal, j2sfpsi.get_pointer(), j2sfpsi.get_pointer(), npw, npwx, totbands_per*ndim); + che.calfinalvec_real(&stohchi, &Stochastic_hchi::hchi_norm, j1sfpsi.get_pointer(), j1sfpsi.get_pointer(), npw, npwx, totbands_per*ndim); + che.calfinalvec_real(&stohchi, &Stochastic_hchi::hchi_norm, j2sfpsi.get_pointer(), j2sfpsi.get_pointer(), npw, npwx, totbands_per*ndim); psi::Psi> *p_j1psi = &j1psi; psi::Psi> *p_j2psi = &j2psi; @@ -361,9 +358,9 @@ void ESolver_SDFT_PW::sKG(const int nche_KG, const double fwhmin, const double w } //exp(iHdt)|chi> - chet.calfinalvec_complex(&stohchi, &Stochastic_hchi::hchi_reciprocal, &exppsi(ksbandper,0), &exppsi(ksbandper,0), npw, npwx, nchip); + chet.calfinalvec_complex(&stohchi, &Stochastic_hchi::hchi_norm, &exppsi(ksbandper,0), &exppsi(ksbandper,0), npw, npwx, nchip); //exp(-iHdt)|shchi> - chet2.calfinalvec_complex(&stohchi, &Stochastic_hchi::hchi_reciprocal, &expsfpsi(ksbandper,0), &expsfpsi(ksbandper,0), npw, npwx, nchip); + chet2.calfinalvec_complex(&stohchi, &Stochastic_hchi::hchi_norm, &expsfpsi(ksbandper,0), &expsfpsi(ksbandper,0), npw, npwx, nchip); psi::Psi> *p_exppsi = &exppsi; #ifdef __MPI psi::Psi> exppsi_tot; @@ -454,53 +451,114 @@ void ESolver_SDFT_PW::sKG(const int nche_KG, const double fwhmin, const double w ModuleBase::timer::tick(this->classname,"sKG"); } -void ESolver_SDFT_PW:: caldos( const int nche_dos, const double sigmain, const double emin, const double emax, const double de) +void ESolver_SDFT_PW:: caldos( const int nche_dos, const double sigmain, const double emin, const double emax, const double de, const int npart) { - cout<<"Calculating Dos...."<classname,"caldos"); + ModuleBase::timer::tick(this->classname,"caldos"); + cout<<"========================="< che(nche_dos); const int nk = GlobalC::kv.nks; Stochastic_Iter& stoiter = ((hsolver::HSolverPW_SDFT*)phsol)->stoiter; Stochastic_hchi& stohchi = stoiter.stohchi; const int npwx = GlobalC::wf.npwx; - double * spolyv = new double [nche_dos]; - ModuleBase::GlobalFunc::ZEROS(spolyv, nche_dos); + double * spolyv = nullptr; + std::complex *allorderchi = nullptr; + if(stoiter.method == 1) + { + spolyv = new double [nche_dos]; + ModuleBase::GlobalFunc::ZEROS(spolyv, nche_dos); + } + else + { + spolyv = new double [nche_dos*nche_dos]; + ModuleBase::GlobalFunc::ZEROS(spolyv, nche_dos*nche_dos); + int nchip_new = ceil((double)this->stowf.nchip_max / npart); + allorderchi = new std::complex [nchip_new * npwx * nche_dos]; + } + ModuleBase::timer::tick(this->classname,"Tracepoly"); + cout<<"1. TracepolyA:"< 1) { this->phami->updateHk(ik); } stohchi.current_ik = ik; const int npw = GlobalC::kv.ngk[ik]; - const int nchip = this->stowf.nchip[ik]; + const int nchipk = this->stowf.nchip[ik]; - complex * pchi; + std::complex * pchi; if(GlobalV::NBANDS > 0) pchi = stowf.chiortho[ik].c; else pchi = stowf.chi0[ik].c; - che.tracepolyA(&stohchi, &Stochastic_hchi::hchi_reciprocal, pchi, npw, npwx, nchip); - for(int i = 0 ; i < nche_dos ; ++i) + if(stoiter.method == 1) { - spolyv[i] += che.polytrace[i] * GlobalC::kv.wk[ik] / 2 ; + che.tracepolyA(&stohchi, &Stochastic_hchi::hchi_norm, pchi, npw, npwx, nchipk); + for(int i = 0 ; i < nche_dos ; ++i) + { + spolyv[i] += che.polytrace[i] * GlobalC::kv.wk[ik] / 2 ; + } + } + else + { + int N = nche_dos; + double kweight = GlobalC::kv.wk[ik] / 2; + char trans = 'T'; + char normal = 'N'; + double one = 1; + for(int ipart = 0 ; ipart < npart ; ++ipart) + { + int nchipk_new = nchipk / npart; + int start_nchipk = ipart * nchipk_new + nchipk % npart; + if(ipart < nchipk % npart) + { + nchipk_new++; + start_nchipk = ipart * nchipk_new; + } + ModuleBase::GlobalFunc::ZEROS(allorderchi, nchipk_new * npwx * nche_dos); + std::complex *tmpchi = pchi + start_nchipk * npwx; + che.calpolyvec_complex(&stohchi, &Stochastic_hchi::hchi_norm, tmpchi, allorderchi, npw, npwx, nchipk_new); + double* vec_all= (double *) allorderchi; + int LDA = npwx * nchipk_new * 2; + int M = npwx * nchipk_new * 2; + dgemm_(&trans,&normal, &N,&N,&M,&kweight,vec_all,&LDA,vec_all,&LDA,&one,spolyv,&N); + } } } - string dosfile = GlobalV::global_out_dir+"DOS1_smearing.dat"; - ofstream ofsdos(dosfile.c_str()); + if(stoiter.method == 2) delete[] allorderchi; + + ofstream ofsdos; int ndos = int((emax-emin) / de)+1; - double *dos = new double [ndos]; - ModuleBase::GlobalFunc::ZEROS(dos,ndos); stoiter.stofunc.sigma = sigmain / ModuleBase::Ry_to_eV; - double sum = 0; - double error = 0; - ofsdos<classname,"Tracepoly"); + + cout<<"2. Dos:"<classname,"DOS Loop"); + int n10 = ndos/10; + int percent = 10; + double *sto_dos = new double [ndos]; + double *ks_dos = new double [ndos]; + double *error = new double [ndos]; for(int ie = 0; ie < ndos; ++ie) { - stoiter.stofunc.targ_e = (emin + ie * de) / ModuleBase::Ry_to_eV; - che.calcoef_real(&stoiter.stofunc, &Sto_Func::ngauss); - double KS_dos = 0; - double sto_dos = BlasConnector::dot(nche_dos,che.coef_real,1,spolyv,1); + double tmpks = 0; + double tmpsto = 0; + stoiter.stofunc.targ_e = (emin + ie * de) / ModuleBase::Ry_to_eV; + if(stoiter.method == 1) + { + che.calcoef_real(&stoiter.stofunc, &Sto_Func::ngauss); + tmpsto = BlasConnector::dot(nche_dos,che.coef_real,1,spolyv,1); + } + else + { + che.calcoef_real(&stoiter.stofunc, &Sto_Func::nroot_gauss); + tmpsto = stoiter.vTMv(che.coef_real,spolyv,nche_dos); + } if(GlobalV::NBANDS > 0) { for(int ik = 0; ik < nk; ++ik) @@ -508,27 +566,66 @@ void ESolver_SDFT_PW:: caldos( const int nche_dos, const double sigmain, const d double *en=&(this->pelec->ekb(ik, 0)); for(int ib = 0; ib < GlobalV::NBANDS; ++ib) { - KS_dos += stoiter.stofunc.gauss(en[ib]) * GlobalC::kv.wk[ik] / 2 ; + tmpks += stoiter.stofunc.gauss(en[ib]) * GlobalC::kv.wk[ik] / 2 ; } } } - KS_dos /= GlobalV::NPROC_IN_POOL; -#ifdef __MPI - MPI_Allreduce(MPI_IN_PLACE, &KS_dos, 1, MPI_DOUBLE, MPI_SUM , STO_WORLD); - MPI_Allreduce(MPI_IN_PLACE, &sto_dos, 1, MPI_DOUBLE, MPI_SUM , MPI_COMM_WORLD); -#endif - double tmpre = che.coef_real[nche_dos-1] * spolyv[nche_dos-1]; + tmpks /= GlobalV::NPROC_IN_POOL; + + double tmperror = 0; + if(stoiter.method == 1) + { + tmperror = che.coef_real[nche_dos-1] * spolyv[nche_dos-1]; + } + else + { + const int norder = nche_dos; + double last_coef = che.coef_real[norder-1]; + double last_spolyv = spolyv[norder*norder - 1]; + tmperror = last_coef *(BlasConnector::dot(norder,che.coef_real,1,spolyv+norder*(norder-1),1) + + BlasConnector::dot(norder,che.coef_real,1,spolyv+norder-1,norder)-last_coef*last_spolyv); + } + + if(ie%n10 == n10 -1) + { + cout<classname,"DOS Loop"); + ModuleBase::timer::tick(this->classname,"caldos"); return; } diff --git a/source/module_gint/gint.h b/source/module_gint/gint.h index 3cedc9c868..c3bc1c8487 100644 --- a/source/module_gint/gint.h +++ b/source/module_gint/gint.h @@ -135,7 +135,7 @@ class Gint //------------------------------------------------------ // in gint_k_rho.cpp //------------------------------------------------------ - // calculate the charge density via grid integrals + // calculate the charge density & kinetic energy density (tau) via grid integrals void gint_kernel_rho( const int na_grid, const int grid_index, @@ -152,10 +152,6 @@ class Gint double** psir_DMR, double* rho); - //------------------------------------------------------ - // in gint_k_rho.cpp - //------------------------------------------------------ - // calculate the charge density via grid integrals void gint_kernel_tau( const int na_grid, const int grid_index, diff --git a/source/module_gint/gint_fvl.cpp b/source/module_gint/gint_fvl.cpp index 3fd82643fa..bd701721fb 100644 --- a/source/module_gint/gint_fvl.cpp +++ b/source/module_gint/gint_fvl.cpp @@ -119,6 +119,9 @@ void Gint::gint_kernel_force_meta( Gint_Tools::Array_Pool ddpsir_ylm_zz(GlobalC::bigpw->bxyz, LD_pool); /* + //this part is for doing finite difference check + //since analytical evaluation of ddpsir is still not working correctly + //this part is saved here in case used in the future ModuleBase::GlobalFunc::ZEROS(dpsir_ylm_x.ptr_1D, GlobalC::bigpw->bxyz*LD_pool); ModuleBase::GlobalFunc::ZEROS(dpsir_ylm_y.ptr_1D, GlobalC::bigpw->bxyz*LD_pool); ModuleBase::GlobalFunc::ZEROS(dpsir_ylm_z.ptr_1D, GlobalC::bigpw->bxyz*LD_pool); diff --git a/source/module_gint/gint_tau.cpp b/source/module_gint/gint_tau.cpp index 04c725b30e..69fef1190f 100644 --- a/source/module_gint/gint_tau.cpp +++ b/source/module_gint/gint_tau.cpp @@ -48,6 +48,7 @@ void Gint::gint_kernel_tau( ModuleBase::GlobalFunc::ZEROS(dpsiy_DM.ptr_1D, GlobalC::bigpw->bxyz*LD_pool); ModuleBase::GlobalFunc::ZEROS(dpsiz_DM.ptr_1D, GlobalC::bigpw->bxyz*LD_pool); + //calculating g_i,mu(r) = sum_nu rho_mu,nu d/dx_i psi_nu(r), x_i=x,y,z if(GlobalV::GAMMA_ONLY_LOCAL) { Gint_Tools::mult_psi_DM( @@ -74,7 +75,6 @@ void Gint::gint_kernel_tau( } else { - //calculating g_mu(r) = sum_nu rho_mu,nu psi_nu(r) Gint_Tools::mult_psi_DMR( grid_index, na_grid, block_index, block_size, @@ -98,7 +98,7 @@ void Gint::gint_kernel_tau( inout->DM_R[is], 1); } - //do sum_mu g_mu(r)psi_mu(r) to get electron density on grid + //do sum_i,mu g_i,mu(r) * d/dx_i psi_mu(r) to get kinetic energy density on grid if(inout->job==Gint_Tools::job_type::tau) { this->cal_meshball_tau( diff --git a/source/module_gint/gint_tools.h b/source/module_gint/gint_tools.h index a8598c3866..c396bfc5e9 100644 --- a/source/module_gint/gint_tools.h +++ b/source/module_gint/gint_tools.h @@ -242,7 +242,7 @@ namespace Gint_Tools const double*const vldr3, // vldr3[GlobalC::bigpw->bxyz] const double*const*const psir_ylm); // psir_ylm[GlobalC::bigpw->bxyz][LD_pool] - // sum_mu,nu rho_mu,nu psi_nu, for gamma point + // sum_nu rho_mu,nu psi_nu, for gamma point void mult_psi_DM( const int na_grid, // how many atoms on this (i,j,k) grid const int LD_pool, @@ -255,7 +255,7 @@ namespace Gint_Tools const double*const*const DM, const int job); - // sum_mu,nu,R rho_mu,nu(R) psi_nu, for multi-k + // sum_nu,R rho_mu,nu(R) psi_nu, for multi-k void mult_psi_DMR( const int &grid_index, const int &na_grid, diff --git a/source/module_gint/gint_vl.cpp b/source/module_gint/gint_vl.cpp index 51e76cecab..8009af6dcf 100644 --- a/source/module_gint/gint_vl.cpp +++ b/source/module_gint/gint_vl.cpp @@ -42,6 +42,8 @@ void Gint::gint_kernel_vlocal( const Gint_Tools::Array_Pool psir_vlbr3 = Gint_Tools::get_psir_vlbr3( na_grid, LD_pool, block_index, cal_flag, vldr3, psir_ylm.ptr_2D); + //integrate (psi_mu*v(r)*dv) * psi_nu on grid + //and accumulates to the corresponding element in Hamiltonian if(GlobalV::GAMMA_ONLY_LOCAL) { this->cal_meshball_vlocal_gamma( @@ -103,7 +105,6 @@ void Gint::gint_kernel_vlocal_meta( na_grid, LD_pool, block_index, cal_flag, vldr3, psir_ylm.ptr_2D); //calculating df_mu(r) = vofk(r) * dpsi_mu(r) * dv - const Gint_Tools::Array_Pool dpsix_vlbr3 = Gint_Tools::get_psir_vlbr3( na_grid, LD_pool, block_index, cal_flag, vkdr3, dpsir_ylm_x.ptr_2D); const Gint_Tools::Array_Pool dpsiy_vlbr3 = Gint_Tools::get_psir_vlbr3( @@ -113,9 +114,13 @@ void Gint::gint_kernel_vlocal_meta( if(GlobalV::GAMMA_ONLY_LOCAL) { + //integrate (psi_mu*v(r)*dv) * psi_nu on grid + //and accumulates to the corresponding element in Hamiltonian this->cal_meshball_vlocal_gamma( na_grid, LD_pool, block_iw, block_size, block_index, cal_flag, psir_ylm.ptr_2D, psir_vlbr3.ptr_2D, pvpR_in); + //integrate (d/dx_i psi_mu*vk(r)*dv) * (d/dx_i psi_nu) on grid (x_i=x,y,z) + //and accumulates to the corresponding element in Hamiltonian this->cal_meshball_vlocal_gamma( na_grid, LD_pool, block_iw, block_size, block_index, cal_flag, dpsir_ylm_x.ptr_2D, dpsix_vlbr3.ptr_2D, pvpR_in); diff --git a/source/module_gint/grid_technique.cpp b/source/module_gint/grid_technique.cpp index 58c2337c48..2febd9dfcb 100644 --- a/source/module_gint/grid_technique.cpp +++ b/source/module_gint/grid_technique.cpp @@ -57,7 +57,7 @@ Grid_Technique::~Grid_Technique() } -// This function is called in LOOP_ions.cpp +// This function is called in esolver_ks_lcao_elec.cpp // after the orbital information has been read, // this function control the routinue to generate // grid technique parameters. diff --git a/source/module_hamilt/hamilt.h b/source/module_hamilt/hamilt.h index 487ced4528..3ff6d03a2c 100644 --- a/source/module_hamilt/hamilt.h +++ b/source/module_hamilt/hamilt.h @@ -34,7 +34,7 @@ class Hamilt int non_first_scf=0; // first node operator, add operations from each operators - Operator* ops = nullptr; + Operator>* ops = nullptr; }; } // namespace hamilt diff --git a/source/module_hamilt/hamilt_pw.cpp b/source/module_hamilt/hamilt_pw.cpp index 30d055397a..d2876c8c95 100644 --- a/source/module_hamilt/hamilt_pw.cpp +++ b/source/module_hamilt/hamilt_pw.cpp @@ -25,7 +25,7 @@ HamiltPW::HamiltPW() if (GlobalV::T_IN_H) { - Operator* ekinetic = new Ekinetic( + Operator>* ekinetic = new Ekinetic( tpiba2, gk2, GlobalC::wfcpw->npwk_max @@ -41,7 +41,7 @@ HamiltPW::HamiltPW() } if (GlobalV::VL_IN_H) { - Operator* veff = new Veff( + Operator>* veff = new Veff( isk, &(GlobalC::pot.vr_eff), GlobalC::wfcpw @@ -57,7 +57,7 @@ HamiltPW::HamiltPW() } if (GlobalV::VNL_IN_H) { - Operator* nonlocal = new Nonlocal( + Operator>* nonlocal = new Nonlocal( isk, &GlobalC::ppcell, &GlobalC::ucell @@ -71,7 +71,7 @@ HamiltPW::HamiltPW() this->ops->add(nonlocal); } } - Operator* meta = new Meta( + Operator>* meta = new Meta( tpiba, isk, &GlobalC::pot.vofk, diff --git a/source/module_hamilt/ks_pw/ekinetic_pw.cpp b/source/module_hamilt/ks_pw/ekinetic_pw.cpp index 062ed1a722..ac43a61129 100644 --- a/source/module_hamilt/ks_pw/ekinetic_pw.cpp +++ b/source/module_hamilt/ks_pw/ekinetic_pw.cpp @@ -6,9 +6,6 @@ namespace hamilt { -template class Ekinetic; - -template<> Ekinetic::Ekinetic( double tpiba2_in, const double* gk2_in, @@ -26,7 +23,6 @@ Ekinetic::Ekinetic( } } -template<> void Ekinetic::act ( const psi::Psi> *psi_in, diff --git a/source/module_hamilt/ks_pw/ekinetic_pw.h b/source/module_hamilt/ks_pw/ekinetic_pw.h index d92b056096..e6846fb62e 100644 --- a/source/module_hamilt/ks_pw/ekinetic_pw.h +++ b/source/module_hamilt/ks_pw/ekinetic_pw.h @@ -6,8 +6,16 @@ namespace hamilt { -template -class Ekinetic : public T +#ifndef __EKINETICTEMPLATE +#define __EKINETICTEMPLATE + +template class Ekinetic : public T +{}; + +#endif + +template<> +class Ekinetic : public OperatorPW { public: Ekinetic( diff --git a/source/module_hamilt/ks_pw/meta_pw.cpp b/source/module_hamilt/ks_pw/meta_pw.cpp index c0274ca7bb..4362f3eeb2 100644 --- a/source/module_hamilt/ks_pw/meta_pw.cpp +++ b/source/module_hamilt/ks_pw/meta_pw.cpp @@ -10,9 +10,6 @@ namespace hamilt { -template class Meta; - -template<> Meta::Meta( double tpiba_in, const int* isk_in, @@ -31,7 +28,6 @@ Meta::Meta( } } -template<> void Meta::act ( const psi::Psi> *psi_in, @@ -65,11 +61,13 @@ void Meta::act } wfcpw->recip2real(porter, porter, ik); - - const double* pvk = &(this->vk[0](current_spin, 0)); - for (int ir = 0; ir < this->vk->nc; ir++) + if(this->vk->nc != 0) { - porter[ir] *= pvk[ir]; + const double* pvk = &(this->vk[0](current_spin, 0)); + for (int ir = 0; ir < this->vk->nc; ir++) + { + porter[ir] *= pvk[ir]; + } } wfcpw->real2recip(porter, porter, ik); diff --git a/source/module_hamilt/ks_pw/meta_pw.h b/source/module_hamilt/ks_pw/meta_pw.h index 5a25d17c8e..030b61b769 100644 --- a/source/module_hamilt/ks_pw/meta_pw.h +++ b/source/module_hamilt/ks_pw/meta_pw.h @@ -8,8 +8,16 @@ namespace hamilt { -template -class Meta : public T +#ifndef __METATEMPLATE +#define __METATEMPLATE + +template class Meta : public T +{}; + +#endif + +template<> +class Meta : public OperatorPW { public: Meta( diff --git a/source/module_hamilt/ks_pw/nonlocal_pw.cpp b/source/module_hamilt/ks_pw/nonlocal_pw.cpp index b065fed057..0858668c27 100644 --- a/source/module_hamilt/ks_pw/nonlocal_pw.cpp +++ b/source/module_hamilt/ks_pw/nonlocal_pw.cpp @@ -10,9 +10,6 @@ namespace hamilt { -template class Nonlocal; - -template<> Nonlocal::Nonlocal ( const int* isk_in, @@ -30,7 +27,6 @@ Nonlocal::Nonlocal } } -template<> void Nonlocal::init(const int ik_in) { this->ik = ik_in; @@ -49,7 +45,6 @@ void Nonlocal::init(const int ik_in) //-------------------------------------------------------------------------- // this function sum up each non-local pseudopotential located on each atom, //-------------------------------------------------------------------------- -template<> void Nonlocal::add_nonlocal_pp(std::complex *hpsi_in, const std::complex *becp, const int m) const { ModuleBase::timer::tick("Nonlocal", "add_nonlocal_pp"); @@ -170,7 +165,6 @@ void Nonlocal::add_nonlocal_pp(std::complex *hpsi_in, const return; } -template<> void Nonlocal::act ( const psi::Psi> *psi_in, diff --git a/source/module_hamilt/ks_pw/nonlocal_pw.h b/source/module_hamilt/ks_pw/nonlocal_pw.h index 2b57f611cc..c76978adf6 100644 --- a/source/module_hamilt/ks_pw/nonlocal_pw.h +++ b/source/module_hamilt/ks_pw/nonlocal_pw.h @@ -10,8 +10,16 @@ namespace hamilt { -template -class Nonlocal : public T +#ifndef __NONLOCALTEMPLATE +#define __NONLOCALTEMPLATE + +template class Nonlocal : public T +{}; + +#endif + +template<> +class Nonlocal : public OperatorPW { public: Nonlocal( diff --git a/source/module_hamilt/ks_pw/operator_pw.h b/source/module_hamilt/ks_pw/operator_pw.h index 1ecc0c8cc8..9ecaeea7ac 100644 --- a/source/module_hamilt/ks_pw/operator_pw.h +++ b/source/module_hamilt/ks_pw/operator_pw.h @@ -6,17 +6,18 @@ namespace hamilt { -class OperatorPW : public Operator +class OperatorPW : public Operator> { public: virtual ~OperatorPW(){}; //in PW code, different operators donate hPsi independently //run this->act function for the first operator and run all act() for other nodes in chain table - virtual hpsi_info hPsi(const hpsi_info& input)const + virtual hpsi_info hPsi(hpsi_info& input)const { ModuleBase::timer::tick("OperatorPW", "hPsi"); - std::tuple*, int> psi_info = std::get<0>(input)->to_range(std::get<1>(input)); + auto psi_input = std::get<0>(input); + std::tuple*, int> psi_info = psi_input->to_range(std::get<1>(input)); int n_npwx = std::get<1>(psi_info); std::complex *tmhpsi = this->get_hpsi(input); @@ -27,20 +28,25 @@ class OperatorPW : public Operator ModuleBase::WARNING_QUIT("OperatorPW", "please choose correct range of psi for hPsi()!"); } - this->act(std::get<0>(input), n_npwx, tmpsi_in, tmhpsi); + this->act(psi_input, n_npwx, tmpsi_in, tmhpsi); OperatorPW* node((OperatorPW*)this->next_op); while(node != nullptr) { - node->act(std::get<0>(input), n_npwx, tmpsi_in, tmhpsi); + node->act(psi_input, n_npwx, tmpsi_in, tmhpsi); node = (OperatorPW*)(node->next_op); } - //during recursive call of hPsi, delete the input psi - if(this->recursive) delete std::get<0>(input); - ModuleBase::timer::tick("OperatorPW", "hPsi"); - return hpsi_info(this->hpsi, psi::Range(1, 0, 0, n_npwx/std::get<0>(input)->npol)); + //if in_place, copy temporary hpsi to target hpsi_pointer, then delete hpsi and new a wrapper for return + std::complex* hpsi_pointer = std::get<2>(input); + if(this->in_place) + { + ModuleBase::GlobalFunc::COPYARRAY(this->hpsi->get_pointer(), hpsi_pointer, this->hpsi->size()); + delete this->hpsi; + this->hpsi = new psi::Psi>(hpsi_pointer, *psi_input, 1, n_npwx/psi_input->npol); + } + return hpsi_info(this->hpsi, psi::Range(1, 0, 0, n_npwx/psi_input->npol), hpsi_pointer); } //main function which should be modified in Operator for PW base diff --git a/source/module_hamilt/ks_pw/veff_pw.cpp b/source/module_hamilt/ks_pw/veff_pw.cpp index ade8ddeaa1..6eca8d5b11 100644 --- a/source/module_hamilt/ks_pw/veff_pw.cpp +++ b/source/module_hamilt/ks_pw/veff_pw.cpp @@ -7,9 +7,6 @@ namespace hamilt { -template class Veff; - -template<> Veff::Veff( const int* isk_in, const ModuleBase::matrix* veff_in, @@ -26,7 +23,6 @@ Veff::Veff( } } -template<> void Veff::act ( const psi::Psi> *psi_in, @@ -46,38 +42,47 @@ void Veff::act { if (this->npol == 1) { - const double* current_veff = &(this->veff[0](current_spin, 0)); wfcpw->recip2real(tmpsi_in, porter, ik); - for (int ir = 0; ir < this->veff->nc; ++ir) + // NOTICE: when MPI threads are larger than number of Z grids + // veff would contain nothing, and nothing should be done in real space + // but the 3DFFT can not be skipped, it will cause hanging + if(this->veff->nc != 0) { - porter[ir] *= current_veff[ir]; + const double* current_veff = &(this->veff[0](current_spin, 0)); + for (int ir = 0; ir < this->veff->nc; ++ir) + { + porter[ir] *= current_veff[ir]; + } } wfcpw->real2recip(porter, tmhpsi, ik, true); } else { - const double* current_veff[4]; - for(int is=0;is<4;is++) - { - current_veff[is] = &(this->veff[0](is, 0)); - } std::complex *porter1 = new std::complex[wfcpw->nmaxgr]; // fft to real space and doing things. wfcpw->recip2real(tmpsi_in, porter, ik); wfcpw->recip2real(tmpsi_in + this->max_npw, porter1, ik); std::complex sup, sdown; - for (int ir = 0; ir < this->veff->nc; ir++) + if(this->veff->nc != 0) { - sup = porter[ir] * (current_veff[0][ir] + current_veff[3][ir]) - + porter1[ir] - * (current_veff[1][ir] - - std::complex(0.0, 1.0) * current_veff[2][ir]); - sdown = porter1[ir] * (current_veff[0][ir] - current_veff[3][ir]) - + porter[ir] - * (current_veff[1][ir] - + std::complex(0.0, 1.0) * current_veff[2][ir]); - porter[ir] = sup; - porter1[ir] = sdown; + const double* current_veff[4]; + for(int is=0;is<4;is++) + { + current_veff[is] = &(this->veff[0](is, 0)); + } + for (int ir = 0; ir < this->veff->nc; ir++) + { + sup = porter[ir] * (current_veff[0][ir] + current_veff[3][ir]) + + porter1[ir] + * (current_veff[1][ir] + - std::complex(0.0, 1.0) * current_veff[2][ir]); + sdown = porter1[ir] * (current_veff[0][ir] - current_veff[3][ir]) + + porter[ir] + * (current_veff[1][ir] + + std::complex(0.0, 1.0) * current_veff[2][ir]); + porter[ir] = sup; + porter1[ir] = sdown; + } } // (3) fft back to G space. wfcpw->real2recip(porter, tmhpsi, this->ik, true); diff --git a/source/module_hamilt/ks_pw/veff_pw.h b/source/module_hamilt/ks_pw/veff_pw.h index 978689f4d5..5008eaef4e 100644 --- a/source/module_hamilt/ks_pw/veff_pw.h +++ b/source/module_hamilt/ks_pw/veff_pw.h @@ -8,8 +8,16 @@ namespace hamilt { -template -class Veff : public T +#ifndef __VEFFTEMPLATE +#define __VEFFTEMPLATE + +template class Veff : public T +{}; + +#endif + +template<> +class Veff : public OperatorPW { public: Veff( diff --git a/source/module_hamilt/operator.h b/source/module_hamilt/operator.h index a5d4aa1967..044fc8489b 100644 --- a/source/module_hamilt/operator.h +++ b/source/module_hamilt/operator.h @@ -4,10 +4,16 @@ #include #include "module_psi/psi.h" #include "module_base/global_function.h" +#include "module_base/tool_quit.h" namespace hamilt { +// Basic class for operator module, +// it is designed for "O|psi>" and "" +// Operator "O" might have several different types, which should be calculated one by one. +// In basic class , function add() is designed for combine all operators together with a chain. +template class Operator { public: @@ -25,11 +31,15 @@ class Operator } } - typedef std::tuple>*, const psi::Range> hpsi_info; - virtual hpsi_info hPsi(const hpsi_info& input)const {return hpsi_info(nullptr, 0);} - - virtual void act(std::complex *hk_matrix)const {return;} - virtual void act(double *hk_matrix)const {return;} + //this is the core function for Operator + // do H|psi> from input |psi> , + // output of hpsi would be first member of the returned tuple + typedef std::tuple*, const psi::Range, T*> hpsi_info; + virtual hpsi_info hPsi(hpsi_info& input)const + { + ModuleBase::WARNING_QUIT("Operator::hPsi", "hPsi error!"); + return hpsi_info(nullptr, 0, nullptr); + } virtual void init(const int ik_in) { @@ -60,39 +70,48 @@ class Operator protected: int ik = 0; - mutable bool recursive = false; + mutable bool in_place = false; //calculation type, only different type can be in main chain table int cal_type = 0; Operator* next_op = nullptr; //if this Operator is first node in chain table, hpsi would not be empty - mutable psi::Psi>* hpsi = nullptr; + mutable psi::Psi* hpsi = nullptr; - std::complex* get_hpsi(const hpsi_info& info)const + /*This function would analyze hpsi_info and choose how to arrange hpsi storage + In hpsi_info, if the third parameter hpsi_pointer is set, which indicates memory of hpsi is arranged by developer; + if hpsi_pointer is not set(nullptr), which indicates memory of hpsi is arranged by Operator, this case is rare. + two cases would occurred: + 1. hpsi_pointer != nullptr && psi_pointer == hpsi_pointer , psi would be replaced by hpsi, hpsi need a temporary memory + 2. hpsi_pointer != nullptr && psi_pointer != hpsi_pointer , this is the commonly case + */ + T* get_hpsi(const hpsi_info& info)const { const int nbands_range = (std::get<1>(info).range_2 - std::get<1>(info).range_1 + 1); - //recursive call of hPsi, hpsi inputs as new psi, + //in_place call of hPsi, hpsi inputs as new psi, //create a new hpsi and delete old hpsi later - if(this->hpsi != std::get<0>(info) ) + T* hpsi_pointer = std::get<2>(info); + const T* psi_pointer = std::get<0>(info)->get_pointer(); + if(!hpsi_pointer) { - this->recursive = false; - if(this->hpsi != nullptr) - { - delete this->hpsi; - } + ModuleBase::WARNING_QUIT("Operator::hPsi", "hpsi_pointer can not be nullptr"); + } + else if(hpsi_pointer == psi_pointer) + { + this->in_place = true; + this->hpsi = new psi::Psi(std::get<0>(info)[0], 1, nbands_range); } else { - this->recursive = true; + this->in_place = false; + this->hpsi = new psi::Psi(hpsi_pointer, std::get<0>(info)[0], 1, nbands_range); } - //create a new hpsi - this->hpsi = new psi::Psi>(std::get<0>(info)[0], 1, nbands_range); - std::complex* pointer_hpsi = this->hpsi->get_pointer(); + hpsi_pointer = this->hpsi->get_pointer(); size_t total_hpsi_size = nbands_range * this->hpsi->get_nbasis(); - ModuleBase::GlobalFunc::ZEROS(pointer_hpsi, total_hpsi_size); - return pointer_hpsi; + ModuleBase::GlobalFunc::ZEROS(hpsi_pointer, total_hpsi_size); + return hpsi_pointer; } }; diff --git a/source/module_hsolver/diago_cg.cpp b/source/module_hsolver/diago_cg.cpp index 7388c38da5..9235cca5ef 100644 --- a/source/module_hsolver/diago_cg.cpp +++ b/source/module_hsolver/diago_cg.cpp @@ -10,7 +10,7 @@ namespace hsolver { -typedef hamilt::Operator::hpsi_info hp_info; +typedef hamilt::Operator>::hpsi_info hp_info; DiagoCG::DiagoCG(const double *precondition_in) { @@ -48,18 +48,18 @@ void DiagoCG::diag_mock(hamilt::Hamilt *phm_in, psi::Psi> & // Works for generalized eigenvalue problem (US pseudopotentials) as well //------------------------------------------------------------------- this->phi_m = new psi::Psi>(phi, 1, 1); - this->hphi.resize(this->dim, ModuleBase::ZERO); - this->sphi.resize(this->dim, ModuleBase::ZERO); + this->hphi.resize(this->dmx, ModuleBase::ZERO); + this->sphi.resize(this->dmx, ModuleBase::ZERO); this->cg = new psi::Psi>(phi, 1, 1); - this->scg.resize(this->dim, ModuleBase::ZERO); - this->pphi.resize(this->dim, ModuleBase::ZERO); + this->scg.resize(this->dmx, ModuleBase::ZERO); + this->pphi.resize(this->dmx, ModuleBase::ZERO); //in band_by_band CG method, only the first band in phi_m would be calculated psi::Range cg_hpsi_range(0); - this->gradient.resize(this->dim, ModuleBase::ZERO); - this->g0.resize(this->dim, ModuleBase::ZERO); + this->gradient.resize(this->dmx, ModuleBase::ZERO); + this->g0.resize(this->dmx, ModuleBase::ZERO); this->lagrange.resize(this->n_band, ModuleBase::ZERO); for (int m = 0; m < this->n_band; m++) @@ -79,9 +79,8 @@ void DiagoCG::diag_mock(hamilt::Hamilt *phm_in, psi::Psi> & //do hPsi, actually the result of hpsi stored in Operator, //the necessary of copying operation should be checked later - hp_info cg_hpsi_in(this->phi_m, cg_hpsi_range); - const std::complex* hpsi_out = std::get<0>(phm_in->ops->hPsi(cg_hpsi_in))->get_pointer(); - ModuleBase::GlobalFunc::COPYARRAY(hpsi_out, this->hphi.data(), this->dim); + hp_info cg_hpsi_in(this->phi_m, cg_hpsi_range, this->hphi.data()); + phm_in->ops->hPsi(cg_hpsi_in); this->eigenvalue[m] = ModuleBase::GlobalFunc::ddot_real(this->dim, this->phi_m->get_pointer(), this->hphi.data()); @@ -96,9 +95,9 @@ void DiagoCG::diag_mock(hamilt::Hamilt *phm_in, psi::Psi> & this->orthogonal_gradient(phm_in, phi, m); this->calculate_gamma_cg(iter, gg_last, cg_norm, theta); - hp_info cg_hpsi_in(this->cg, cg_hpsi_range); - const std::complex* cg_hpsi = std::get<0>(phm_in->ops->hPsi(cg_hpsi_in))->get_pointer(); - ModuleBase::GlobalFunc::COPYARRAY(cg_hpsi, this->pphi.data(), this->dim); + hp_info cg_hpsi_in(this->cg, cg_hpsi_range, this->pphi.data()); + phm_in->ops->hPsi(cg_hpsi_in); + phm_in->sPsi(this->cg->get_pointer(), this->scg.data(), (size_t)this->dim); converged = this->update_psi(cg_norm, theta, this->eigenvalue[m]); diff --git a/source/module_hsolver/diago_david.cpp b/source/module_hsolver/diago_david.cpp index be59f37dde..b36b370f62 100644 --- a/source/module_hsolver/diago_david.cpp +++ b/source/module_hsolver/diago_david.cpp @@ -2,13 +2,14 @@ #include "diago_iter_assist.h" #include "module_base/constants.h" +#include "module_base/blas_connector.h" #include "module_base/lapack_connector.h" #include "module_base/timer.h" #include "src_parallel/parallel_reduce.h" namespace hsolver { -typedef hamilt::Operator::hpsi_info hp_info; +typedef hamilt::Operator>::hpsi_info hp_info; int DiagoDavid::PW_DIAG_NDIM = 4; @@ -80,13 +81,13 @@ void DiagoDavid::diag_mock(hamilt::Hamilt* phm_in, psi::Psi //phm_in->sPsi(psi_m.data(), spsi.data(), (size_t)dim); this->SchmitOrth( - dim, - nband, - m, - basis, + dim, + nband, + m, + basis, sp, - &lagrange_matrix(m, 0), - pre_matrix_mm_m[m], + &lagrange_matrix(m, 0), + pre_matrix_mm_m[m], pre_matrix_mv_m[m] ); phm_in->sPsi(&basis(m, 0), &sp(m, 0), (size_t)dim); @@ -104,9 +105,8 @@ void DiagoDavid::diag_mock(hamilt::Hamilt* phm_in, psi::Psi }*/ } //end of SchmitOrth and calculate H|psi> - hp_info dav_hpsi_in(&basis, psi::Range(1, 0, 0, nband-1)); - auto hp_psi = std::get<0>(phm_in->ops->hPsi(dav_hpsi_in)); - ModuleBase::GlobalFunc::COPYARRAY(hp_psi->get_pointer(), &hp(0, 0), hp_psi->get_nbasis() * nband); + hp_info dav_hpsi_in(&basis, psi::Range(1, 0, 0, nband-1), &hp(0, 0)); + phm_in->ops->hPsi(dav_hpsi_in); hc.zero_out(); sc.zero_out(); @@ -343,7 +343,7 @@ void DiagoDavid::cal_grad(hamilt::Hamilt* phm_in, { phm_in->sPsi(&basis(nbase + m, 0), &sp(nbase + m, 0), (size_t)npw); } - //first nbase bands psi* dot notconv bands spsi to prepare lagrange_matrix + //first nbase bands psi* dot notconv bands spsi to prepare lagrange_matrix trans = 'C'; transb = 'N'; //calculate the square matrix for future lagranges @@ -367,22 +367,22 @@ void DiagoDavid::cal_grad(hamilt::Hamilt* phm_in, spsi = &sp(nbase + m, 0); this->SchmitOrth( - npw, - nbase + notconv, - nbase + m, - basis, - sp, + npw, + nbase + notconv, + nbase + m, + basis, + sp, &lagrange_matrix(m, 0), - pre_matrix_mm_m[m], + pre_matrix_mm_m[m], pre_matrix_mv_m[m] ); phm_in->sPsi(ppsi, spsi, (size_t)npw); } - hp_info dav_hpsi_in(&basis, psi::Range(1, 0, nbase, nbase + notconv-1)); - auto hp_psi = std::get<0>(phm_in->ops->hPsi(dav_hpsi_in)); - ModuleBase::GlobalFunc::COPYARRAY(hp_psi->get_pointer(), &hp(nbase, 0), hp_psi->get_nbasis()*notconv); - + //calculate H|psi> for not convergence bands + hp_info dav_hpsi_in(&basis, psi::Range(1, 0, nbase, nbase + notconv-1), &hp(nbase, 0)); + phm_in->ops->hPsi(dav_hpsi_in); + ModuleBase::timer::tick("DiagoDavid", "cal_grad"); return; } @@ -598,7 +598,7 @@ void DiagoDavid::refresh(const int &npw, &ModuleBase::ZERO, // belta &basis(nband, 0), // C &basis.get_nbasis()); // LDC: if(N) max(1, m) - + /*for (int m = 0; m < nband; m++) { for (int j = 0; j < nbase; j++) @@ -835,10 +835,10 @@ void DiagoDavid::planSchmitOrth( for(int i=divide_times-1; i>=0; i--) { divide_points[i*2] = divide_points[i] - matrix_size; - divide_points[i*2+1] = divide_points[i*2] + last_matrix_size; + divide_points[i*2+1] = divide_points[i*2] + last_matrix_size; pre_matrix_mm_m[ divide_points[i*2] ] = matrix_size; pre_matrix_mm_m[ divide_points[i*2+1]] = matrix_size; - if(res_nband == matrix_size) + if(res_nband == matrix_size) { pre_matrix_mv_m[divide_points[i*2]] = 1; pre_matrix_mv_m[divide_points[i*2+1]] = 1; @@ -847,7 +847,7 @@ void DiagoDavid::planSchmitOrth( { pre_matrix_mv_m[divide_points[i*2]] = 2; pre_matrix_mv_m[divide_points[i*2+1]] = 2; - } + } } divide_times *= 2; } @@ -885,4 +885,4 @@ void DiagoDavid::diag(hamilt::Hamilt *phm_in, psi::Psi> &ps return; } -} // namespace hsolver \ No newline at end of file +} // namespace hsolver diff --git a/source/module_hsolver/diago_iter_assist.cpp b/source/module_hsolver/diago_iter_assist.cpp index 696a7b3a84..e16e2c9eca 100644 --- a/source/module_hsolver/diago_iter_assist.cpp +++ b/source/module_hsolver/diago_iter_assist.cpp @@ -50,9 +50,14 @@ void DiagoIterAssist::diagH_subspace(hamilt::Hamilt* pHamilt, //const std::complex *paux = aux; const std::complex *ppsi = psi.get_pointer(); + //allocated hpsi + std::vector> hpsi(psi.get_nbands() * psi.get_nbasis()); + //do hPsi for all bands psi::Range all_bands_range(1, psi.get_current_k(), 0, psi.get_nbands()-1); - hamilt::Operator::hpsi_info hpsi_in(&psi, all_bands_range); - const std::complex *aux = std::get<0>(pHamilt->ops->hPsi(hpsi_in))->get_pointer(); + hamilt::Operator>::hpsi_info hpsi_in(&psi, all_bands_range, hpsi.data()); + pHamilt->ops->hPsi(hpsi_in); + //use aux as a data pointer for hpsi + const std::complex *aux = hpsi.data(); char trans1 = 'C'; char trans2 = 'N'; @@ -187,9 +192,14 @@ void DiagoIterAssist::diagH_subspace_init(hamilt::Hamilt* pHamilt, ModuleBase::GlobalFunc::COPYARRAY(psi.c, psi_temp.get_pointer(), psi_temp.size()); const std::complex *ppsi = psi_temp.get_pointer(); - psi::Range all_bands_range(1, 0, 0, nstart-1); - hamilt::Operator::hpsi_info hpsi_in(&psi_temp, all_bands_range); - const std::complex *aux = std::get<0>(pHamilt->ops->hPsi(hpsi_in))->get_pointer(); + //allocated hpsi + std::vector> hpsi(psi_temp.get_nbands() * psi_temp.get_nbasis()); + //do hPsi for all bands + psi::Range all_bands_range(1, psi_temp.get_current_k(), 0, psi_temp.get_nbands()-1); + hamilt::Operator>::hpsi_info hpsi_in(&psi_temp, all_bands_range, hpsi.data()); + pHamilt->ops->hPsi(hpsi_in); + //use aux as a data pointer for hpsi + const std::complex *aux = hpsi.data(); char trans1 = 'C'; char trans2 = 'N'; diff --git a/source/module_hsolver/hsolver_pw_sdft.cpp b/source/module_hsolver/hsolver_pw_sdft.cpp index fa54151872..47f3fea54b 100644 --- a/source/module_hsolver/hsolver_pw_sdft.cpp +++ b/source/module_hsolver/hsolver_pw_sdft.cpp @@ -100,7 +100,7 @@ namespace hsolver } } // calculate stochastic rho - stoiter.sum_stoband(stowf,pes); + stoiter.sum_stoband(stowf,pes,pHamilt); //(6) calculate the delta_harris energy diff --git a/source/module_md/MD_func.cpp b/source/module_md/MD_func.cpp index c8bc9bdc0b..568c9f3206 100644 --- a/source/module_md/MD_func.cpp +++ b/source/module_md/MD_func.cpp @@ -263,8 +263,7 @@ void MD_func::force_virial( grid_neigh, unit_in, GlobalV::SEARCH_RADIUS, - GlobalV::test_atom_input, - INPUT.test_just_neighbor); + GlobalV::test_atom_input); potential = LJ_potential::Lennard_Jones( unit_in, diff --git a/source/module_neighbor/sltk_atom_arrange.cpp b/source/module_neighbor/sltk_atom_arrange.cpp index 8d6ae36f53..7be247c237 100644 --- a/source/module_neighbor/sltk_atom_arrange.cpp +++ b/source/module_neighbor/sltk_atom_arrange.cpp @@ -158,7 +158,6 @@ void atom_arrange::search( } } ofs_in << "search neighboring atoms done." << std::endl; - exit(0);//just test neighboring searching! } ModuleBase::timer::tick("atom_arrange","search"); diff --git a/source/module_psi/psi.h b/source/module_psi/psi.h index 088756c245..84d4ab55d1 100644 --- a/source/module_psi/psi.h +++ b/source/module_psi/psi.h @@ -97,6 +97,23 @@ class Psi else for(size_t index=0; indexsize();++index) psi[index] = tmp[index]; } } + + //Constructor 5: a wrapper of a data pointer, used for Operator::hPsi() + //in this case, fix_k can not be used + Psi(T* psi_pointer, const Psi& psi_in, const int nk_in, int nband_in=0) + { + assert(nk_in<=psi_in.get_nk()); + if(nband_in == 0) + { + nband_in = psi_in.get_nbands(); + } + this->ngk = psi_in.ngk; + this->npol = psi_in.npol; + this->nk = nk_in; + this->nbands = nband_in; + this->nbasis = psi_in.nbasis; + this->psi_current = psi_pointer; + } // initialize the wavefunction coefficient // only resize and construct function now is used diff --git a/source/module_pw/pw_basis.cpp b/source/module_pw/pw_basis.cpp index f6699da978..59b87476c0 100644 --- a/source/module_pw/pw_basis.cpp +++ b/source/module_pw/pw_basis.cpp @@ -94,9 +94,10 @@ void PW_Basis::getstartgr() /// void PW_Basis::collect_local_pw() { - delete[] this->gg; this->gg = new double[this->npw]; - delete[] this->gdirect; this->gdirect = new ModuleBase::Vector3[this->npw]; - delete[] this->gcar; this->gcar = new ModuleBase::Vector3[this->npw]; + if(this->npw <= 0) return; + delete[] this->gg; this->gg = new double[this->npw]; + delete[] this->gdirect; this->gdirect = new ModuleBase::Vector3[this->npw]; + delete[] this->gcar; this->gcar = new ModuleBase::Vector3[this->npw]; ModuleBase::Vector3 f; for(int ig = 0 ; ig < this-> npw ; ++ig) @@ -128,6 +129,7 @@ void PW_Basis::collect_local_pw() /// void PW_Basis::collect_uniqgg() { + if(this->npw <= 0) return; delete[] this->ig2igg; this->ig2igg = new int [this->npw]; int *sortindex = new int [this->npw]; double *tmpgg = new double [this->npw]; diff --git a/source/module_pw/pw_basis_k.cpp b/source/module_pw/pw_basis_k.cpp index 4b81c9b258..6358fbf3a9 100644 --- a/source/module_pw/pw_basis_k.cpp +++ b/source/module_pw/pw_basis_k.cpp @@ -81,17 +81,16 @@ void PW_Basis_K::setupIndGk() } } this->npwk[ik] = ng; - if(ng == 0) - { - std::cout<<"Some proc has no plane waves. You can reduce the number of proc to avoid waste!"<npwk_max < ng) { this->npwk_max = ng; } } + //get igl2isz_k and igl2ig_k + if(this->npwk_max <= 0) return; delete[] igl2isz_k; this->igl2isz_k = new int [this->nks * this->npwk_max]; delete[] igl2ig_k; this->igl2ig_k = new int [this->nks * this->npwk_max]; for (int ik = 0; ik < this->nks; ik++) @@ -133,6 +132,7 @@ void PW_Basis_K::setuptransform() void PW_Basis_K::collect_local_pw() { + if(this->npwk_max <= 0) return; delete[] gk2; delete[] gcar; this->gk2 = new double[this->npwk_max * this->nks]; diff --git a/source/module_pw/pw_distributeg.cpp b/source/module_pw/pw_distributeg.cpp index e3686f5fff..8fef054cd6 100644 --- a/source/module_pw/pw_distributeg.cpp +++ b/source/module_pw/pw_distributeg.cpp @@ -25,6 +25,7 @@ void PW_Basis::distribute_g() { ModuleBase::WARNING_QUIT("divide", "No such division type."); } + ModuleBase::CHECK_WARNING_QUIT((this->npw == 0), "pw_distributeg.cpp", "Current core has no plane waves! Please reduce the cores."); ModuleBase::timer::tick(this->classname, "distributeg"); return; } diff --git a/source/src_ions/CMakeLists.txt b/source/module_relaxation/CMakeLists.txt similarity index 90% rename from source/src_ions/CMakeLists.txt rename to source/module_relaxation/CMakeLists.txt index 175f670bc5..835d3e68fa 100644 --- a/source/src_ions/CMakeLists.txt +++ b/source/module_relaxation/CMakeLists.txt @@ -1,7 +1,6 @@ add_library( - ions + relax OBJECT - Cell_PW.cpp bfgs_basic.cpp ions.cpp ions_move_basic.cpp @@ -13,4 +12,5 @@ add_library( lattice_change_cg.cpp lattice_change_methods.cpp variable_cell.cpp + relaxation.cpp ) diff --git a/source/src_ions/bfgs_basic.cpp b/source/module_relaxation/bfgs_basic.cpp similarity index 100% rename from source/src_ions/bfgs_basic.cpp rename to source/module_relaxation/bfgs_basic.cpp diff --git a/source/src_ions/bfgs_basic.h b/source/module_relaxation/bfgs_basic.h similarity index 100% rename from source/src_ions/bfgs_basic.h rename to source/module_relaxation/bfgs_basic.h diff --git a/source/module_relaxation/ions.cpp b/source/module_relaxation/ions.cpp new file mode 100644 index 0000000000..faba21f59d --- /dev/null +++ b/source/module_relaxation/ions.cpp @@ -0,0 +1,114 @@ +#include "ions.h" +#include "../src_pw/global.h" // use chr. +#include "../src_io/print_info.h" +#include "variable_cell.h" // mohan add 2021-02-01 +#include "src_io/write_wfc_realspace.h" + +void Ions::opt_ions(ModuleESolver::ESolver *p_esolver) +{ + ModuleBase::TITLE("Ions","opt_ions"); + ModuleBase::timer::tick("Ions","opt_ions"); + + if(GlobalV::OUT_LEVEL=="i") + { + std::cout << std::setprecision(12); + std::cout<< " " << std::setw(7)<< "ISTEP" + <istep = 1; + int force_step = 1; // pengfei Li 2018-05-14 + int stress_step = 1; + bool stop= false; + + while(istep <= GlobalV::RELAX_NMAX && !stop) + { + time_t estart = time(NULL); + + if(GlobalV::OUT_LEVEL=="ie") + { + Print_Info::print_screen(stress_step, force_step, istep); + } + + // mohan added eiter to count for the electron iteration number, 2021-01-28 + p_esolver->Run(istep-1,GlobalC::ucell); + + time_t eend = time(NULL); + time_t fstart = time(NULL); + + if (GlobalV::CALCULATION=="scf" || GlobalV::CALCULATION=="relax" || GlobalV::CALCULATION=="cell-relax" || GlobalV::CALCULATION.substr(0,3)=="sto") + { + //I'm considering putting force and stress + //as part of ucell and use ucell to pass information + //back and forth between esolver and relaxation + //but I'll use force and stress explicitly here for now + + //calculate and gather all parts of total ionic forces + ModuleBase::matrix force; + if(GlobalV::CAL_FORCE) + { + p_esolver->cal_Force(force); + } + //calculate and gather all parts of stress + ModuleBase::matrix stress; + if(GlobalV::CAL_STRESS) + { + p_esolver->cal_Stress(stress); + } + stop = this->relaxation(force, stress, istep, force_step, stress_step); // pengfei Li 2018-05-14 + } + time_t fend = time(NULL); + + if(GlobalV::OUT_LEVEL=="i") + { + double etime_min = difftime(eend, estart)/60.0; + double ftime_min = difftime(fend, fstart)/60.0; + std::stringstream ss; + ss << GlobalV::RELAX_METHOD << istep; + + std::cout << " " << std::setw(7) << ss.str() + << std::setw(5) << p_esolver->getniter() + << std::setw(15) << std::setprecision(6) << GlobalC::en.etot * ModuleBase::Ry_to_eV + << std::setw(15) << IMM.get_ediff() * ModuleBase::Ry_to_eV + << std::setprecision(3) + << std::setw(15) << IMM.get_largest_grad() * ModuleBase::Ry_to_eV / 0.529177 + << std::setw(15) << IMM.get_trust_radius() + << std::setw(8) << IMM.get_update_iter() + << std::setprecision(2) << std::setw(11) << etime_min + << std::setw(11) << ftime_min << std::endl; + } + + ++istep; + + } + + if(GlobalV::OUT_LEVEL=="i") + { + std::cout << " ION DYNAMICS FINISHED :)" << std::endl; + } + + ModuleBase::timer::tick("Ions","opt_ions_pw"); + return; +} \ No newline at end of file diff --git a/source/src_ions/ions.h b/source/module_relaxation/ions.h similarity index 64% rename from source/src_ions/ions.h rename to source/module_relaxation/ions.h index 4dcec29320..6bc1b0591a 100644 --- a/source/src_ions/ions.h +++ b/source/module_relaxation/ions.h @@ -10,6 +10,12 @@ #include "lattice_change_methods.h" #include "module_esolver/esolver.h" + +//The workflow opt_ions should be moved outside module_relaxation +//since the latter is intended to perform the sole task of +//creating the next step structure based on force and stress +//according to some relaxation algorithm +//However, it will remain this way until the ucell class and MD module are sorted out class Ions { @@ -18,7 +24,7 @@ class Ions Ions(){}; ~Ions(){}; - void opt_ions_pw(ModuleESolver::ESolver *p_esolver); + void opt_ions(ModuleESolver::ESolver *p_esolver); private: @@ -33,20 +39,16 @@ class Ions //MD md; //mohan add 2011-11-07 - Charge_Extra CE; - Lattice_Change_Methods LCM; //seperate force_stress function first - bool after_scf(ModuleESolver::ESolver *p_esolver,const int &istep, int &force_step, int &stress_step); - void gather_force_pw(ModuleESolver::ESolver *p_esolver, ModuleBase::matrix &force); - void gather_stress_pw(ModuleESolver::ESolver *p_esolver, ModuleBase::matrix& stress); + bool relaxation(ModuleBase::matrix force,ModuleBase::matrix stress,const int &istep, int &force_step, int &stress_step); bool if_do_relax(); bool if_do_cellrelax(); bool do_relax(const int& istep, int& jstep, const ModuleBase::matrix& ionic_force, const double& total_energy); bool do_cellrelax(const int& istep, const ModuleBase::matrix& stress, const double& total_energy); void reset_after_relax(const int& istep); - void reset_after_cellrelax(int& force_step, int& stress_step, ModuleESolver::ESolver *p_esolver); + void reset_after_cellrelax(int& force_step, int& stress_step); void update_pot(void); diff --git a/source/src_ions/ions_move_basic.cpp b/source/module_relaxation/ions_move_basic.cpp similarity index 100% rename from source/src_ions/ions_move_basic.cpp rename to source/module_relaxation/ions_move_basic.cpp diff --git a/source/src_ions/ions_move_basic.h b/source/module_relaxation/ions_move_basic.h similarity index 100% rename from source/src_ions/ions_move_basic.h rename to source/module_relaxation/ions_move_basic.h diff --git a/source/src_ions/ions_move_bfgs.cpp b/source/module_relaxation/ions_move_bfgs.cpp similarity index 100% rename from source/src_ions/ions_move_bfgs.cpp rename to source/module_relaxation/ions_move_bfgs.cpp diff --git a/source/src_ions/ions_move_bfgs.h b/source/module_relaxation/ions_move_bfgs.h similarity index 100% rename from source/src_ions/ions_move_bfgs.h rename to source/module_relaxation/ions_move_bfgs.h diff --git a/source/src_ions/ions_move_cg.cpp b/source/module_relaxation/ions_move_cg.cpp similarity index 100% rename from source/src_ions/ions_move_cg.cpp rename to source/module_relaxation/ions_move_cg.cpp diff --git a/source/src_ions/ions_move_cg.h b/source/module_relaxation/ions_move_cg.h similarity index 100% rename from source/src_ions/ions_move_cg.h rename to source/module_relaxation/ions_move_cg.h diff --git a/source/src_ions/ions_move_methods.cpp b/source/module_relaxation/ions_move_methods.cpp similarity index 100% rename from source/src_ions/ions_move_methods.cpp rename to source/module_relaxation/ions_move_methods.cpp diff --git a/source/src_ions/ions_move_methods.h b/source/module_relaxation/ions_move_methods.h similarity index 100% rename from source/src_ions/ions_move_methods.h rename to source/module_relaxation/ions_move_methods.h diff --git a/source/src_ions/ions_move_sd.cpp b/source/module_relaxation/ions_move_sd.cpp similarity index 100% rename from source/src_ions/ions_move_sd.cpp rename to source/module_relaxation/ions_move_sd.cpp diff --git a/source/src_ions/ions_move_sd.h b/source/module_relaxation/ions_move_sd.h similarity index 100% rename from source/src_ions/ions_move_sd.h rename to source/module_relaxation/ions_move_sd.h diff --git a/source/src_ions/lattice_change_basic.cpp b/source/module_relaxation/lattice_change_basic.cpp similarity index 100% rename from source/src_ions/lattice_change_basic.cpp rename to source/module_relaxation/lattice_change_basic.cpp diff --git a/source/src_ions/lattice_change_basic.h b/source/module_relaxation/lattice_change_basic.h similarity index 100% rename from source/src_ions/lattice_change_basic.h rename to source/module_relaxation/lattice_change_basic.h diff --git a/source/src_ions/lattice_change_cg.cpp b/source/module_relaxation/lattice_change_cg.cpp similarity index 100% rename from source/src_ions/lattice_change_cg.cpp rename to source/module_relaxation/lattice_change_cg.cpp diff --git a/source/src_ions/lattice_change_cg.h b/source/module_relaxation/lattice_change_cg.h similarity index 100% rename from source/src_ions/lattice_change_cg.h rename to source/module_relaxation/lattice_change_cg.h diff --git a/source/src_ions/lattice_change_methods.cpp b/source/module_relaxation/lattice_change_methods.cpp similarity index 100% rename from source/src_ions/lattice_change_methods.cpp rename to source/module_relaxation/lattice_change_methods.cpp diff --git a/source/src_ions/lattice_change_methods.h b/source/module_relaxation/lattice_change_methods.h similarity index 100% rename from source/src_ions/lattice_change_methods.h rename to source/module_relaxation/lattice_change_methods.h diff --git a/source/module_relaxation/relaxation.cpp b/source/module_relaxation/relaxation.cpp new file mode 100644 index 0000000000..1a26c9c4a6 --- /dev/null +++ b/source/module_relaxation/relaxation.cpp @@ -0,0 +1,124 @@ +#include "ions.h" +#include "../src_pw/global.h" // use chr. +#include "../src_io/print_info.h" +#include "variable_cell.h" // mohan add 2021-02-01 + +// The interface for relaxation +bool Ions::relaxation(ModuleBase::matrix force, ModuleBase::matrix stress, const int &istep, int &force_step, int &stress_step) +{ + ModuleBase::TITLE("Ions","after_scf"); + + // should not do it this way, will change after the refactor of ucell class + GlobalC::ucell.ionic_position_updated = false; + GlobalC::ucell.cell_parameter_updated = false; + + //stop in last step + if(istep==GlobalV::RELAX_NMAX) + { + return 1; + } + //choose what to do next + if(GlobalV::CALCULATION!="cell-relax") force_step = istep; + if(this->if_do_relax()) + { + //do relax calculation and generate next structure + bool converged = 0; + converged = this->do_relax(istep, force_step, force, GlobalC::en.etot); + if(!converged) + { + this->reset_after_relax(istep); + GlobalC::ucell.ionic_position_updated = true; + return converged; + } + else if(GlobalV::CALCULATION!="cell-relax") + { + return converged; + } + } + if(this->if_do_cellrelax()) + { + //do cell relax calculation and generate next structure + bool converged = 0; + converged = this->do_cellrelax(stress_step, stress, GlobalC::en.etot); + if(!converged) + { + GlobalC::ucell.cell_parameter_updated = true; + this->reset_after_cellrelax(force_step, stress_step); + } + return converged; + } + + return 1; +} + +bool Ions::if_do_relax() +{ + ModuleBase::TITLE("Ions","if_do_relax"); + if(GlobalV::CALCULATION=="relax"||GlobalV::CALCULATION=="cell-relax") + { + if(!GlobalC::ucell.if_atoms_can_move()) + { + ModuleBase::WARNING("Ions","No atom is allowed to move!"); + return 0; + } +// if(!IMM.get_converged()) return 1; + else + { + assert(GlobalV::CAL_FORCE==1); + return 1; + } + } + else return 0; +} +bool Ions::if_do_cellrelax() +{ + ModuleBase::TITLE("Ions","if_do_cellrelax"); + if(GlobalV::CALCULATION=="cell-relax") + { + if(!GlobalC::ucell.if_cell_can_change()) + { + ModuleBase::WARNING("Ions", "Lattice vectors are not allowed to change!"); + return 0; + } + else if(GlobalC::ucell.if_atoms_can_move()&&!IMM.get_converged()) + { + GlobalV::ofs_running<<"Note: Need to wait for atomic relaxation first!"; + return 0; + } + else + { + assert(GlobalV::CAL_STRESS==1); + return 1; + } + } + else return 0; +} +bool Ions::do_relax(const int& istep, int& jstep, const ModuleBase::matrix& ionic_force, const double& total_energy) +{ + ModuleBase::TITLE("Ions","do_relax"); + IMM.cal_movement(istep, jstep, ionic_force, total_energy); + ++jstep; + return IMM.get_converged(); +} +bool Ions::do_cellrelax(const int& istep, const ModuleBase::matrix& stress, const double& total_energy) +{ + ModuleBase::TITLE("Ions","do_cellrelax"); + LCM.cal_lattice_change(istep, stress, total_energy); + return LCM.get_converged(); +} +void Ions::reset_after_relax(const int& istep) +{ + ModuleBase::TITLE("Ions","reset_after_relax"); + GlobalV::ofs_running << " Setup the structure factor in plane wave basis." << std::endl; + GlobalC::sf.setup_structure_factor(&GlobalC::ucell,GlobalC::rhopw); +} + +void Ions::reset_after_cellrelax(int& f_step, int& s_step) +{ + ModuleBase::TITLE("Ions","reset_after_cellrelax"); + Variable_Cell::init_after_vc(); + GlobalC::pot.init_pot(s_step, GlobalC::sf.strucFac); //LiuXh add 20180619 + + f_step = 1; + ++s_step; +} diff --git a/source/src_ions/variable_cell.cpp b/source/module_relaxation/variable_cell.cpp similarity index 78% rename from source/src_ions/variable_cell.cpp rename to source/module_relaxation/variable_cell.cpp index 8466b862b3..190d48d94b 100644 --- a/source/src_ions/variable_cell.cpp +++ b/source/module_relaxation/variable_cell.cpp @@ -5,7 +5,7 @@ Variable_Cell::Variable_Cell(){} Variable_Cell::~Variable_Cell(){} -void Variable_Cell::init_after_vc(ModuleESolver::ESolver *p_esolver) +void Variable_Cell::init_after_vc() { ModuleBase::TITLE("Variable_Cell","init_after_vc"); @@ -18,8 +18,6 @@ void Variable_Cell::init_after_vc(ModuleESolver::ESolver *p_esolver) ModuleBase::GlobalFunc::DONE(GlobalV::ofs_running, "SYMMETRY"); } - - GlobalC::kv.set_after_vc(GlobalC::symm, GlobalV::global_kpoint_card, GlobalV::NSPIN, GlobalC::ucell.G, GlobalC::ucell.latvec); ModuleBase::GlobalFunc::DONE(GlobalV::ofs_running, "INIT K-POINTS"); @@ -29,18 +27,8 @@ void Variable_Cell::init_after_vc(ModuleESolver::ESolver *p_esolver) GlobalC::rhopw->initgrids(GlobalC::ucell.lat0, GlobalC::ucell.latvec, GlobalC::rhopw->nx, GlobalC::rhopw->ny, GlobalC::rhopw->nz); GlobalC::rhopw->collect_local_pw(); GlobalC::rhopw->collect_uniqgg(); - GlobalC::wfcpw->initgrids(GlobalC::ucell.lat0, GlobalC::ucell.latvec, GlobalC::wfcpw->nx, GlobalC::wfcpw->ny, GlobalC::wfcpw->nz); - GlobalC::wfcpw->initparameters(false, INPUT.ecutwfc, GlobalC::kv.nks, GlobalC::kv.kvec_d.data()); - GlobalC::wfcpw->collect_local_pw(); - GlobalC::sf.setup_structure_factor(&GlobalC::ucell,GlobalC::rhopw); - if(GlobalV::BASIS_TYPE=="pw") - { - GlobalC::wf.init_after_vc(GlobalC::kv.nks, p_esolver->psi); - GlobalC::wf.init_at_1(); - } - GlobalV::ofs_running << " Setup the Vl+Vh+Vxc according to new structure factor and new charge." << std::endl; //================================= // initalize local pseudopotential diff --git a/source/src_ions/variable_cell.h b/source/module_relaxation/variable_cell.h similarity index 83% rename from source/src_ions/variable_cell.h rename to source/module_relaxation/variable_cell.h index 8297728002..909263b794 100644 --- a/source/src_ions/variable_cell.h +++ b/source/module_relaxation/variable_cell.h @@ -18,8 +18,7 @@ class Variable_Cell Variable_Cell(); ~Variable_Cell(); - - static void init_after_vc(ModuleESolver::ESolver *p_esolver); //LiuXh add 20180515 + static void init_after_vc(); //LiuXh add 20180515 }; diff --git a/source/module_surchem/CMakeLists.txt b/source/module_surchem/CMakeLists.txt index 7fffa0fd44..62230dac5b 100644 --- a/source/module_surchem/CMakeLists.txt +++ b/source/module_surchem/CMakeLists.txt @@ -11,4 +11,5 @@ add_library( corrected_energy.cpp minimize_cg.cpp efield.cpp + sol_force.cpp ) \ No newline at end of file diff --git a/source/module_surchem/H_correction_pw.cpp b/source/module_surchem/H_correction_pw.cpp index 57cd8b5eff..6ad2b036bc 100644 --- a/source/module_surchem/H_correction_pw.cpp +++ b/source/module_surchem/H_correction_pw.cpp @@ -26,7 +26,7 @@ ModuleBase::matrix surchem::v_correction(const UnitCell &cell, complex *Porter_g = new complex[rho_basis->npw]; ModuleBase::GlobalFunc::ZEROS(Porter_g, rho_basis->npw); - GlobalC::UFFT.ToReciSpace(Porter, Porter_g, rho_basis); + rho_basis->real2recip(Porter, Porter_g); complex *N = new complex[rho_basis->npw]; complex *TOTN = new complex[rho_basis->npw]; @@ -149,7 +149,7 @@ ModuleBase::matrix surchem::v_compensating(const UnitCell &cell, ModulePW::PW_Ba // std::cout << " ecomp=" << ecomp << std::endl; comp_chg_energy = ecomp; - GlobalC::UFFT.ToRealSpace(phi_comp_G, phi_comp_R, rho_basis); + rho_basis->recip2real(phi_comp_G, phi_comp_R); ModuleBase::matrix v_comp(GlobalV::NSPIN, rho_basis->nrxx); if (GlobalV::NSPIN == 4) @@ -205,7 +205,7 @@ void surchem::test_V_to_N(ModuleBase::matrix &v, phi_comp_R[ir] = v(0, ir); } - GlobalC::UFFT.ToReciSpace(phi_comp_R, phi_comp_G, rho_basis); + rho_basis->real2recip(phi_comp_R, phi_comp_G); for (int ig = 0; ig < rho_basis->npw; ig++) { if (rho_basis->gg[ig] >= 1.0e-12) // LiuXh 20180410 @@ -214,7 +214,7 @@ void surchem::test_V_to_N(ModuleBase::matrix &v, comp_reci[ig] = phi_comp_G[ig] / fac; } } - GlobalC::UFFT.ToRealSpace(comp_reci, N_real, rho_basis); + rho_basis->recip2real(comp_reci, N_real); complex *vloc_g = new complex[rho_basis->npw]; complex *ng = new complex[rho_basis->npw]; @@ -225,8 +225,7 @@ void surchem::test_V_to_N(ModuleBase::matrix &v, for (int ir = 0; ir < rho_basis->nrxx; ir++) Porter[ir] = rho[0][ir]; - GlobalC::UFFT.ToReciSpace(GlobalC::pot.vltot, - vloc_g, rho_basis); // now n is vloc in Recispace + rho_basis->real2recip(GlobalC::pot.vltot,vloc_g);// now n is vloc in Recispace for (int ig = 0; ig < rho_basis->npw; ig++) { if (rho_basis->gg[ig] >= 1.0e-12) // LiuXh 20180410 { @@ -237,7 +236,7 @@ void surchem::test_V_to_N(ModuleBase::matrix &v, } } double *nr = new double[rho_basis->nrxx]; - GlobalC::UFFT.ToRealSpace(ng, nr, rho_basis); + rho_basis->recip2real(ng, nr); double *diff = new double[rho_basis->nrxx]; double *diff2 = new double[rho_basis->nrxx]; diff --git a/source/module_surchem/cal_totn.cpp b/source/module_surchem/cal_totn.cpp index 2785d082d5..e2a183fab3 100644 --- a/source/module_surchem/cal_totn.cpp +++ b/source/module_surchem/cal_totn.cpp @@ -7,8 +7,7 @@ void surchem::cal_totn(const UnitCell &cell, ModulePW::PW_Basis* rho_basis, complex *vloc_g = new complex[rho_basis->npw]; ModuleBase::GlobalFunc::ZEROS(vloc_g, rho_basis->npw); - GlobalC::UFFT.ToReciSpace(GlobalC::pot.vltot, - vloc_g, rho_basis); // now n is vloc in Recispace + rho_basis->real2recip(GlobalC::pot.vltot, vloc_g); // now n is vloc in Recispace for (int ig = 0; ig < rho_basis->npw; ig++) { if(ig==rho_basis->ig_gge0) { diff --git a/source/module_surchem/cal_vcav.cpp b/source/module_surchem/cal_vcav.cpp index 7c4330678a..477b1b1a7f 100644 --- a/source/module_surchem/cal_vcav.cpp +++ b/source/module_surchem/cal_vcav.cpp @@ -36,7 +36,7 @@ void shape_gradn(const complex *PS_TOTN, ModulePW::PW_Basis* rho_basis, double *PS_TOTN_real = new double[rho_basis->nrxx]; ModuleBase::GlobalFunc::ZEROS(PS_TOTN_real, rho_basis->nrxx); - GlobalC::UFFT.ToRealSpace(PS_TOTN, PS_TOTN_real,rho_basis); + rho_basis->recip2real(PS_TOTN, PS_TOTN_real); double epr_c = 1.0 / sqrt(ModuleBase::TWO_PI) / GlobalV::sigma_k; double epr_z = 0; @@ -119,8 +119,8 @@ void surchem::createcavity(const UnitCell &ucell, ModulePW::PW_Basis* rho_basis, // packs the real array into a complex one // to G space complex *inv_gn = new complex[rho_basis->npw]; - GlobalC::UFFT.ToReciSpace(sqrt_nablan_2, inv_gn,rho_basis); - + rho_basis->real2recip(sqrt_nablan_2, inv_gn); + // \nabla(1 / |\nabla n|), ggn in real space ModuleBase::Vector3 *ggn = new ModuleBase::Vector3[rho_basis->nrxx]; XC_Functional::grad_rho(inv_gn, ggn, rho_basis); diff --git a/source/module_surchem/cal_vel.cpp b/source/module_surchem/cal_vel.cpp index ce64c63964..fe6b246cc1 100644 --- a/source/module_surchem/cal_vel.cpp +++ b/source/module_surchem/cal_vel.cpp @@ -58,7 +58,7 @@ ModuleBase::matrix surchem::cal_vel(const UnitCell &cell, ModuleBase::timer::tick("surchem", "cal_vel"); // double *TOTN_real = new double[pwb.nrxx]; - GlobalC::UFFT.ToRealSpace(TOTN, TOTN_real,rho_basis); + rho_basis->recip2real(TOTN, TOTN_real); // -4pi * TOTN(G) complex *B = new complex[rho_basis->npw]; @@ -69,7 +69,7 @@ ModuleBase::matrix surchem::cal_vel(const UnitCell &cell, // Build a nrxx vector to DO FFT . double *PS_TOTN_real = new double[rho_basis->nrxx]; - GlobalC::UFFT.ToRealSpace(PS_TOTN, PS_TOTN_real,rho_basis); + rho_basis->recip2real(PS_TOTN, PS_TOTN_real); // build epsilon in real space (nrxx) double *epsilon = new double[rho_basis->nrxx]; @@ -95,8 +95,8 @@ ModuleBase::matrix surchem::cal_vel(const UnitCell &cell, double *phi_tilda_R0 = new double[rho_basis->nrxx]; // double *delta_phi_R = new double[pwb.nrxx]; - GlobalC::UFFT.ToRealSpace(Sol_phi, phi_tilda_R,rho_basis); - GlobalC::UFFT.ToRealSpace(Sol_phi0, phi_tilda_R0,rho_basis); + rho_basis->recip2real(Sol_phi, phi_tilda_R); + rho_basis->recip2real(Sol_phi0, phi_tilda_R0); // the 1st item of tmp_Vel for (int i = 0; i < rho_basis->nrxx; i++) diff --git a/source/module_surchem/minimize_cg.cpp b/source/module_surchem/minimize_cg.cpp index 55541fd397..95657e987d 100644 --- a/source/module_surchem/minimize_cg.cpp +++ b/source/module_surchem/minimize_cg.cpp @@ -202,7 +202,7 @@ void surchem::Leps2(const UnitCell &ucell, { grad_grad_phi[ir] = grad_phi[ir].x; } - GlobalC::UFFT.ToReciSpace(grad_grad_phi, grad_grad_phi_G, rho_basis); + rho_basis->real2recip(grad_grad_phi, grad_grad_phi_G); XC_Functional::grad_rho(grad_grad_phi_G, tmp_vector3, rho_basis); for (int ir = 0; ir < rho_basis->nrxx; ir++) { @@ -217,7 +217,7 @@ void surchem::Leps2(const UnitCell &ucell, { grad_grad_phi[ir] = grad_phi[ir].y; } - GlobalC::UFFT.ToReciSpace(grad_grad_phi, grad_grad_phi_G, rho_basis); + rho_basis->real2recip(grad_grad_phi, grad_grad_phi_G); XC_Functional::grad_rho(grad_grad_phi_G, tmp_vector3, rho_basis); for (int ir = 0; ir < rho_basis->nrxx; ir++) { @@ -232,7 +232,7 @@ void surchem::Leps2(const UnitCell &ucell, { grad_grad_phi[ir] = grad_phi[ir].z; } - GlobalC::UFFT.ToReciSpace(grad_grad_phi, grad_grad_phi_G, rho_basis); + rho_basis->real2recip(grad_grad_phi, grad_grad_phi_G); XC_Functional::grad_rho(grad_grad_phi_G, tmp_vector3, rho_basis); for (int ir = 0; ir < rho_basis->nrxx; ir++) { @@ -243,7 +243,7 @@ void surchem::Leps2(const UnitCell &ucell, // cout << lp_real << [i] << endl; // } - GlobalC::UFFT.ToReciSpace(lp_real, lp, rho_basis); + rho_basis->real2recip(lp_real, lp); // cout<<"lp: "< *N = new std::complex[rho_basis->npw]; + std::complex *vloc_at = new std::complex[rho_basis->npw]; + std::complex *delta_phi_g = new complex[rho_basis->npw]; + //ModuleBase::GlobalFunc::ZEROS(delta_phi_g, rho_basis->npw); + + rho_basis->real2recip(GlobalC::solvent_model.delta_phi, delta_phi_g); + //GlobalC::UFFT.ToReciSpace(GlobalC::solvent_model.delta_phi, delta_phi_g,rho_basis); + double Ael=0;double Ael1 = 0; + //ModuleBase::GlobalFunc::ZEROS(vg, ngmc); + int iat = 0; + + for (int it = 0;it < cell.ntype;it++) + { + for (int ia = 0;ia < cell.atoms[it].na ; ia++) + { + for (int ig = 0; ig < rho_basis->npw; ig++) + { + complex phase = exp( ModuleBase::NEG_IMAG_UNIT *ModuleBase::TWO_PI * ( rho_basis->gcar[ig] * cell.atoms[it].tau[ia])); + //vloc for each atom + vloc_at[ig] = GlobalC::ppcell.vloc(it, rho_basis->ig2igg[ig]) * phase; + if(rho_basis->ig_gge0 == ig) + { + N[ig] = GlobalC::ucell.atoms[it].zv / GlobalC::ucell.omega; + } + else + { + const double fac = ModuleBase::e2 * ModuleBase::FOUR_PI / + (cell.tpiba2 * rho_basis->gg[ig]); + + N[ig] = -vloc_at[ig] / fac; + } + + //force for each atom + forcesol(iat, 0) += rho_basis->gcar[ig][0] * imag(conj(delta_phi_g[ig]) * N[ig]); + forcesol(iat, 1) += rho_basis->gcar[ig][1] * imag(conj(delta_phi_g[ig]) * N[ig]); + forcesol(iat, 2) += rho_basis->gcar[ig][2] * imag(conj(delta_phi_g[ig]) * N[ig]); + } + + forcesol(iat, 0) *= (GlobalC::ucell.tpiba * GlobalC::ucell.omega); + forcesol(iat, 1) *= (GlobalC::ucell.tpiba * GlobalC::ucell.omega); + forcesol(iat, 2) *= (GlobalC::ucell.tpiba * GlobalC::ucell.omega); + //unit Ry/Bohr + forcesol(iat, 0) *= 2 ; + forcesol(iat, 1) *= 2 ; + forcesol(iat, 2) *= 2 ; + + //cout<<"Force1"< *n_pseudo = new complex[rho_basis->npw]; + ModuleBase::GlobalFunc::ZEROS(n_pseudo,rho_basis->npw); + + //GlobalC::solvent_model.gauss_charge(cell, pwb, n_pseudo); + + double *Vcav_sum = new double[rho_basis->nrxx]; + ModuleBase::GlobalFunc::ZEROS(Vcav_sum, rho_basis->nrxx); + std::complex *Vcav_g = new complex[rho_basis->npw]; + std::complex *Vel_g = new complex[rho_basis->npw]; + ModuleBase::GlobalFunc::ZEROS(Vcav_g, rho_basis->npw); + ModuleBase::GlobalFunc::ZEROS(Vel_g, rho_basis->npw); + for(int is=0; isnrxx; ir++) + { + Vcav_sum[ir] += GlobalC::solvent_model.Vcav(is, ir); + } + } + + rho_basis->real2recip(Vcav_sum, Vcav_g); + rho_basis->real2recip(GlobalC::solvent_model.epspot, Vel_g); + + int iat = 0; + double Ael1 = 0; + for (int it = 0;it < cell.ntype;it++) + { + double RCS = GlobalC::solvent_model.GetAtom.atom_RCS[cell.atoms[it].psd]; + double sigma_rc_k = RCS / 2.5; + for (int ia = 0;ia < cell.atoms[it].na;ia++) + { + //cell.atoms[0].tau[0].z = 3.302; + //cout<npw); + for (int ig = 0; ig < rho_basis->npw; ig++) + { + // G^2 + double gg = rho_basis->gg[ig]; + gg = gg * cell.tpiba2; + complex phase = exp( ModuleBase::NEG_IMAG_UNIT *ModuleBase::TWO_PI * ( rho_basis->gcar[ig] * cell.atoms[it].tau[ia])); + + n_pseudo[ig].real((GlobalC::solvent_model.GetAtom.atom_Z[cell.atoms[it].psd] - cell.atoms[it].zv) * phase.real() + * exp(-0.5 * gg * (sigma_rc_k * sigma_rc_k))); + n_pseudo[ig].imag((GlobalC::solvent_model.GetAtom.atom_Z[cell.atoms[it].psd] - cell.atoms[it].zv) * phase.imag() + * exp(-0.5 * gg * (sigma_rc_k * sigma_rc_k))); + } + + for (int ig = 0; ig < rho_basis->npw; ig++) + { + n_pseudo[ig] /= cell.omega; + } + for (int ig = 0; ig < rho_basis->npw; ig++) + { + forcesol(iat, 0) -= rho_basis->gcar[ig][0] * imag(conj(Vcav_g[ig]+Vel_g[ig]) * n_pseudo[ig]); + forcesol(iat, 1) -= rho_basis->gcar[ig][1] * imag(conj(Vcav_g[ig]+Vel_g[ig]) * n_pseudo[ig]); + forcesol(iat, 2) -= rho_basis->gcar[ig][2] * imag(conj(Vcav_g[ig]+Vel_g[ig]) * n_pseudo[ig]); + } + + forcesol(iat, 0) *= (GlobalC::ucell.tpiba * GlobalC::ucell.omega); + forcesol(iat, 1) *= (GlobalC::ucell.tpiba * GlobalC::ucell.omega); + forcesol(iat, 2) *= (GlobalC::ucell.tpiba * GlobalC::ucell.omega); + //eV/Ang + forcesol(iat, 0) *= 2 ; + forcesol(iat, 1) *= 2 ; + forcesol(iat, 2) *= 2 ; + + //cout<<"Force2"< func_id; // libxc id of functional - static int func_type; //0:none, 1:lda, 2:gga, 3:mgga, 4:hybrid + static int func_type; //0:none, 1:lda, 2:gga, 3:mgga, 4:hybrid lda/gga, 5:hybrid mgga static bool use_libxc; //exx_hybrid_alpha for mixing exx in hybrid functional: diff --git a/source/run_lcao.cpp b/source/run_lcao.cpp deleted file mode 100644 index 165b200a9d..0000000000 --- a/source/run_lcao.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "run_lcao.h" -#include "src_pw/global.h" -#include "input.h" -#include "src_io/optical.h" -#include "src_io/cal_test.h" -#include "src_io/winput.h" -#include "module_neighbor/sltk_atom_arrange.h" -#include "src_lcao/LOOP_cell.h" -#include "src_io/print_info.h" -#include "src_lcao/run_md_lcao.h" - -Run_lcao::Run_lcao() {} -Run_lcao::~Run_lcao() {} - - -void Run_lcao::lcao_line(ModuleESolver::ESolver* p_esolver) -{ - ModuleBase::TITLE("Run_lcao", "lcao_line"); - ModuleBase::timer::tick("Run_lcao", "lcao_line"); - - //-----------------------init Cell-------------------------- - // Setup the unitcell. - // improvement: a) separating the first reading of the atom_card and subsequent - // cell relaxation. b) put GlobalV::NLOCAL and GlobalV::NBANDS as input parameters -#ifdef __LCAO - GlobalC::ucell.setup_cell(GlobalC::ORB, GlobalV::global_pseudo_dir, GlobalV::stru_file, GlobalV::ofs_running); -#else - GlobalC::ucell.setup_cell(GlobalV::global_pseudo_dir, GlobalV::stru_file, GlobalV::ofs_running); -#endif - if (INPUT.test_just_neighbor) - { - //test_search_neighbor(); - GlobalV::SEARCH_RADIUS = atom_arrange::set_sr_NL( - GlobalV::ofs_running, - GlobalV::OUT_LEVEL, - GlobalC::ORB.get_rcutmax_Phi(), - GlobalC::ucell.infoNL.get_rcutmax_Beta(), - GlobalV::GAMMA_ONLY_LOCAL); - - atom_arrange::search( - GlobalV::SEARCH_PBC, - GlobalV::ofs_running, - GlobalC::GridD, - GlobalC::ucell, - GlobalV::SEARCH_RADIUS, - GlobalV::test_atom_input, - INPUT.test_just_neighbor); - } - - - // the symmetry of a variety of systems. - if (GlobalV::CALCULATION == "test") - { - Cal_Test::test_memory(); - ModuleBase::QUIT(); - } - //-----------------------init Cell-------------------------- - - - //------------------------------------------------------------ - //---------------------Init ESolver------------------------- - p_esolver->Init(INPUT, GlobalC::ucell); - if(GlobalV::CALCULATION=="get_S") - { - p_esolver->Run(0, GlobalC::ucell); - ModuleBase::timer::tick("Run_lcao", "lcao_line"); - return; - } - //------------------------------------------------------------ - - - //---------------------------MD/Relax------------------ - if (GlobalV::CALCULATION == "md") - { - Run_MD_LCAO run_md_lcao; - run_md_lcao.opt_cell(p_esolver); - } - else // cell relaxations - { - LOOP_cell lc; - //keep wfc_gamma or wfc_k remaining - lc.opt_cell(p_esolver); - } - //---------------------------MD/Relax------------------ - - ModuleBase::timer::tick("Run_lcao", "lcao_line"); - return; -} diff --git a/source/run_lcao.h b/source/run_lcao.h deleted file mode 100644 index 2a9d980544..0000000000 --- a/source/run_lcao.h +++ /dev/null @@ -1,27 +0,0 @@ -//========================================================== -// AUTHOR : mohan -// DATE : 2021-01-20 -//========================================================== -#ifndef RUN_LCAO_H -#define RUN_LCAO_H - -#include "module_base/global_function.h" -#include "module_base/global_variable.h" -#include "module_orbital/ORB_control.h" -#include "input.h" -#include "module_esolver/esolver.h" - -class Run_lcao -{ - -public: - - Run_lcao(); - ~Run_lcao(); - - // perform Linear Combination of Atomic Orbitals (LCAO) calculations - static void lcao_line(ModuleESolver::ESolver* p_esolver); - -}; - -#endif diff --git a/source/run_pw.cpp b/source/run_pw.cpp deleted file mode 100644 index 95557a3933..0000000000 --- a/source/run_pw.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include "run_pw.h" -#include "src_pw/global.h" -#include "src_io/cal_test.h" -#include "src_io/winput.h" -#include "src_io/optical.h" -#include "src_io/numerical_basis.h" -#include "src_io/numerical_descriptor.h" -#include "src_io/print_info.h" -#include "src_ions/Cell_PW.h" -#include "src_pw/run_md_pw.h" - -Run_pw::Run_pw(){} -Run_pw::~Run_pw(){} - -void Run_pw::plane_wave_line(ModuleESolver::ESolver *p_esolver) -{ - ModuleBase::TITLE("Run_pw","plane_wave_line"); - ModuleBase::timer::tick("Run_pw","plane_wave_line"); - - // Setup the unitcell. - // improvement: a) separating the first reading of the atom_card and subsequent - // cell relaxation. b) put GlobalV::NLOCAL and GlobalV::NBANDS as input parameters -#ifdef __LCAO - GlobalC::ucell.setup_cell( GlobalC::ORB, GlobalV::global_pseudo_dir, GlobalV::stru_file, GlobalV::ofs_running); -#else - GlobalC::ucell.setup_cell( GlobalV::global_pseudo_dir, GlobalV::stru_file, GlobalV::ofs_running); -#endif - - // mohan add 2010-10-10, just to test the symmetry of a variety - // of systems. - if(GlobalV::CALCULATION == "test") - { - Cal_Test::test_memory(); - ModuleBase::QUIT(); - } - - //------------------------------------------------------------ - //---------------------Init ESolver------------------------- - //------------------------------------------------------------ - p_esolver->Init(INPUT, GlobalC::ucell); - - - - if(GlobalV::CALCULATION == "md" || GlobalV::CALCULATION == "sto-md") - { - Run_MD_PW run_md_pw; - run_md_pw.md_cells_pw(p_esolver); - } - else - { - Cell_PW cpws; - cpws.opt_cells_pw(p_esolver); - } - - // cout<<"cpws SUCCESS"<postprocess(); - - ModuleBase::timer::tick("Run_pw","plane_wave_line"); - return; -} diff --git a/source/run_pw.h b/source/run_pw.h deleted file mode 100644 index cdacaeb166..0000000000 --- a/source/run_pw.h +++ /dev/null @@ -1,26 +0,0 @@ -//========================================================== -// AUTHOR : mohan -// DATE : 2021-02-01 -//========================================================== -#ifndef RUN_PW_H -#define RUN_PW_H - -#include "module_base/global_function.h" -#include "module_base/global_variable.h" -#include "input.h" -#include "module_esolver/esolver.h" - -class Run_pw -{ - - public: - - Run_pw(); - ~Run_pw(); - - // perform plane wave basis calculations - static void plane_wave_line(ModuleESolver::ESolver *p_esolver); - -}; - -#endif diff --git a/source/src_io/istate_charge.cpp b/source/src_io/istate_charge.cpp index 246b682127..ba61394d54 100644 --- a/source/src_io/istate_charge.cpp +++ b/source/src_io/istate_charge.cpp @@ -117,24 +117,20 @@ void IState_Charge::begin(Gint_Gamma &gg) if(bands_picked[ib]) { std::cout << " Perform band decomposed charge density for band " << ib+1 << std::endl; - // (1) - // This has been done once in LOOP_ions. - // but here we need to done for each band. - //this->loc->allocate_gamma(GridT); - // (2) calculate the density matrix for a partuclar + // (1) calculate the density matrix for a partuclar // band, whenever it is occupied or not. #ifdef __MPI this->idmatrix(ib); #endif - // (3) zero out of charge density array. + // (2) zero out of charge density array. for(int is=0; isnrxx ); } - // (4) calculate charge density for a particular + // (3) calculate charge density for a particular // band. Gint_inout inout(this->loc->DM, (Charge*)(&GlobalC::CHR), Gint_Tools::job_type::rho); gg.cal_gint(&inout); diff --git a/source/src_io/numerical_descriptor.cpp b/source/src_io/numerical_descriptor.cpp index ac85788e2b..5baf2980bd 100644 --- a/source/src_io/numerical_descriptor.cpp +++ b/source/src_io/numerical_descriptor.cpp @@ -48,6 +48,10 @@ void Numerical_Descriptor::output_descriptor(const psi::Psi assert(nmax>0); + // Currently we are not considering doing DeePKS in PW basis + // hence this subroutine is used only for generating projectors and save to jle.orb + // As a result, I will return here and the rest of the code is saved for future use + return; //----------------------------------- // 2. Open the file diff --git a/source/src_io/optical.h b/source/src_io/optical.h index 0bdd6bcf07..a74ac04d92 100644 --- a/source/src_io/optical.h +++ b/source/src_io/optical.h @@ -1,6 +1,9 @@ #ifndef OPTICAL_H #define OPTICAL_H +//This seems to be calculating epsilon for optical excitations +//But is not currently in use + class Optical { public: diff --git a/source/src_io/write_HS_R.cpp b/source/src_io/write_HS_R.cpp index 3642af9040..56d3400576 100644 --- a/source/src_io/write_HS_R.cpp +++ b/source/src_io/write_HS_R.cpp @@ -16,8 +16,8 @@ void ESolver_KS_LCAO::output_HS_R( const bool &binary, const double &sparse_threshold) { - ModuleBase::TITLE("LOOP_ions","output_HS_R"); - ModuleBase::timer::tick("LOOP_ions","output_HS_R"); + ModuleBase::TITLE("ESolver_KS_LCAO","output_HS_R"); + ModuleBase::timer::tick("ESolver_KS_LCAO","output_HS_R"); // add by jingan for out r_R matrix 2019.8.14 if(INPUT.out_mat_r) @@ -72,21 +72,21 @@ void ESolver_KS_LCAO::output_HS_R( this->UHM.GK.destroy_pvpR(); } //LiuXh 20181011 - ModuleBase::timer::tick("LOOP_ions","output_HS_R"); + ModuleBase::timer::tick("ESolver_KS_LCAO","output_HS_R"); return; } void ESolver_KS_LCAO::output_SR(const std::string &SR_filename, const bool &binary, const double &sparse_threshold) { - ModuleBase::TITLE("LOOP_ions","output_SR"); - ModuleBase::timer::tick("LOOP_ions","output_SR"); + ModuleBase::TITLE("ESolver_KS_LCAO","output_SR"); + ModuleBase::timer::tick("ESolver_KS_LCAO","output_SR"); this->UHM.calculate_SR_sparse(sparse_threshold); HS_Matrix::save_SR_sparse(*this->UHM.LM, sparse_threshold, binary, SR_filename); this->UHM.destroy_all_HSR_sparse(); - ModuleBase::timer::tick("LOOP_ions","output_SR"); + ModuleBase::timer::tick("ESolver_KS_LCAO","output_SR"); return; } } \ No newline at end of file diff --git a/source/src_io/write_input.cpp b/source/src_io/write_input.cpp index 054f96696b..a177fc1156 100644 --- a/source/src_io/write_input.cpp +++ b/source/src_io/write_input.cpp @@ -111,6 +111,7 @@ void Input::Print(const std::string &fn) const ofs << "\n#Parameters (3.Stochastic DFT)" << std::endl; ModuleBase::GlobalFunc::OUTP(ofs, "method_sto", method_sto, "1: slow and save memory, 2: fast and waste memory"); + ModuleBase::GlobalFunc::OUTP(ofs, "npart_sto", npart_sto, "Reduce memory when calculating Stochastic DOS"); ModuleBase::GlobalFunc::OUTP(ofs, "nbands_sto", nbands_sto, "number of stochstic orbitals"); ModuleBase::GlobalFunc::OUTP(ofs, "nche_sto", nche_sto, "Chebyshev expansion orders"); ModuleBase::GlobalFunc::OUTP(ofs, "emin_sto", emin_sto, "trial energy to guess the lower bound of eigen energies of the Hamitonian operator"); diff --git a/source/src_ions/Cell_PW.cpp b/source/src_ions/Cell_PW.cpp deleted file mode 100644 index 9a17ba6943..0000000000 --- a/source/src_ions/Cell_PW.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "Cell_PW.h" -#include "ions.h" -#include "../module_base/timer.h" - -void Cell_PW::opt_cells_pw(ModuleESolver::ESolver *p_esolver) -{ - ModuleBase::TITLE("Cell_PW", "opt_cells_pw"); - ModuleBase::timer::tick("Cell_PW", "opt_cells_pw"); - - - // ion optimization begins - // electron density optimization is included in ion optimization - - Ions ions; - ions.opt_ions_pw(p_esolver); - - ModuleBase::timer::tick("Cell_PW", "opt_cells_pw"); -} diff --git a/source/src_ions/Cell_PW.h b/source/src_ions/Cell_PW.h deleted file mode 100644 index 005689ec0b..0000000000 --- a/source/src_ions/Cell_PW.h +++ /dev/null @@ -1,19 +0,0 @@ -//================================ -// AUTHOR : zhengdy -// DATE : 2021-06-22 -//================================ -#ifndef CELL_PW_H -#define CELL_PW_H - -#include "module_esolver/esolver.h" - -class Cell_PW -{ -public: - Cell_PW(){}; - ~Cell_PW(){}; - - void opt_cells_pw(ModuleESolver::ESolver *p_esolver); -}; - -#endif \ No newline at end of file diff --git a/source/src_ions/ions.cpp b/source/src_ions/ions.cpp deleted file mode 100644 index 40067a42e6..0000000000 --- a/source/src_ions/ions.cpp +++ /dev/null @@ -1,353 +0,0 @@ -#include "ions.h" -#include "../src_pw/global.h" // use chr. -#include "../src_io/print_info.h" -#include "variable_cell.h" // mohan add 2021-02-01 -#include "src_io/write_wfc_realspace.h" - -void Ions::opt_ions_pw(ModuleESolver::ESolver *p_esolver) -{ - ModuleBase::TITLE("Ions","opt_ions_pw"); - ModuleBase::timer::tick("Ions","opt_ions_pw"); - - if(GlobalV::OUT_LEVEL=="i") - { - std::cout << std::setprecision(12); - std::cout<< " " << std::setw(7)<< "ISTEP" - <istep = 1; - int force_step = 1; // pengfei Li 2018-05-14 - int stress_step = 1; - bool stop= false; - - while(istep <= GlobalV::RELAX_NMAX && !stop) - { - time_t estart = time(NULL); - - if(GlobalV::OUT_LEVEL=="ie") - { - Print_Info::print_screen(stress_step, force_step, istep); - } - - //---------------------------------------------------------- - // about vdw, jiyy add vdwd3 and linpz add vdwd2 - //---------------------------------------------------------- - if(INPUT.vdw_method=="d2") - { - // setup vdwd2 parameters - GlobalC::vdwd2_para.initial_parameters(INPUT); - GlobalC::vdwd2_para.initset(GlobalC::ucell); - } - if(INPUT.vdw_method=="d3_0" || INPUT.vdw_method=="d3_bj") - { - GlobalC::vdwd3_para.initial_parameters(INPUT); - } - if(GlobalC::vdwd2_para.flag_vdwd2) //Peize Lin add 2014-04-03, update 2021-03-09 - { - Vdwd2 vdwd2(GlobalC::ucell,GlobalC::vdwd2_para); - vdwd2.cal_energy(); - GlobalC::en.evdw = vdwd2.get_energy(); - } - if(GlobalC::vdwd3_para.flag_vdwd3) //jiyy add 2019-05-18, update 2021-05-02 - { - Vdwd3 vdwd3(GlobalC::ucell,GlobalC::vdwd3_para); - vdwd3.cal_energy(); - GlobalC::en.evdw = vdwd3.get_energy(); - } - - - // mohan added eiter to count for the electron iteration number, 2021-01-28 - int eiter=0; - if (GlobalV::CALCULATION=="scf" || GlobalV::CALCULATION=="md" || GlobalV::CALCULATION=="relax" || GlobalV::CALCULATION=="cell-relax" || GlobalV::CALCULATION.substr(0,3)=="sto") // pengfei 2014-10-13 - { -#ifdef __LCAO -#ifdef __MPI - if( Exx_Global::Hybrid_Type::No==GlobalC::exx_global.info.hybrid_type ) - { -#endif -#endif - p_esolver->Run(istep-1,GlobalC::ucell); - eiter = p_esolver->getniter(); -#ifdef __LCAO -#ifdef __MPI - } - else if( Exx_Global::Hybrid_Type::Generate_Matrix == GlobalC::exx_global.info.hybrid_type ) - { - throw std::invalid_argument(ModuleBase::GlobalFunc::TO_STRING(__FILE__)+ModuleBase::GlobalFunc::TO_STRING(__LINE__)); - } - else // Peize Lin add 2019-03-09 - { - if( GlobalC::exx_global.info.separate_loop ) - { - for( size_t hybrid_step=0; hybrid_step!=GlobalC::exx_global.info.hybrid_step; ++hybrid_step ) - { - p_esolver->Run(istep-1,GlobalC::ucell); - eiter += p_esolver->getniter(); - if( elec.iter==1 || hybrid_step==GlobalC::exx_global.info.hybrid_step-1 ) // exx converge - break; - XC_Functional::set_xc_type(GlobalC::ucell.atoms[0].xc_func); - GlobalC::exx_lip.cal_exx(); - } - } - else - { - p_esolver->Run(istep-1,GlobalC::ucell); - eiter += p_esolver->getniter(); - XC_Functional::set_xc_type(GlobalC::ucell.atoms[0].xc_func); - p_esolver->Run(istep-1,GlobalC::ucell); - eiter += p_esolver->getniter(); - } - } -#endif //__MPI -#endif //__LCAO - } - else if(GlobalV::CALCULATION=="nscf") - { - p_esolver->nscf(); - //elec.non_self_consistent(istep-1); - eiter = p_esolver->getniter(); - } - - if(GlobalC::pot.out_pot == 2) - { - std::stringstream ssp; - std::stringstream ssp_ave; - ssp << GlobalV::global_out_dir << "ElecStaticPot"; - ssp_ave << GlobalV::global_out_dir << "ElecStaticPot_AVE"; - GlobalC::pot.write_elecstat_pot(ssp.str(), ssp_ave.str(), GlobalC::rhopw); //output 'Hartree + local pseudopot' - } - - time_t eend = time(NULL); - time_t fstart = time(NULL); - - - if (GlobalV::CALCULATION=="scf" || GlobalV::CALCULATION=="relax" || GlobalV::CALCULATION=="cell-relax" || GlobalV::CALCULATION.substr(0,3)=="sto") - { - stop = this->after_scf(p_esolver, istep, force_step, stress_step); // pengfei Li 2018-05-14 - } - time_t fend = time(NULL); - - - if(GlobalV::OUT_LEVEL=="i") - { - double etime_min = difftime(eend, estart)/60.0; - double ftime_min = difftime(fend, fstart)/60.0; - std::stringstream ss; - ss << GlobalV::RELAX_METHOD << istep; - - std::cout << " " << std::setw(7) << ss.str() - << std::setw(5) << eiter - << std::setw(15) << std::setprecision(6) << GlobalC::en.etot * ModuleBase::Ry_to_eV - << std::setw(15) << IMM.get_ediff() * ModuleBase::Ry_to_eV - << std::setprecision(3) - << std::setw(15) << IMM.get_largest_grad() * ModuleBase::Ry_to_eV / 0.529177 - << std::setw(15) << IMM.get_trust_radius() - << std::setw(8) << IMM.get_update_iter() - << std::setprecision(2) << std::setw(11) << etime_min - << std::setw(11) << ftime_min << std::endl; - } - - ++istep; - - } - - if(GlobalV::CALCULATION=="scf" || GlobalV::CALCULATION=="relax" || GlobalV::CALCULATION=="cell-relax" || GlobalV::CALCULATION.substr(0,3)=="sto") - { - GlobalV::ofs_running << "\n\n --------------------------------------------" << std::endl; - GlobalV::ofs_running << std::setprecision(16); - GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; - GlobalV::ofs_running << " --------------------------------------------\n\n" << std::endl; - } - - - if(GlobalV::OUT_LEVEL=="i") - { - std::cout << " ION DYNAMICS FINISHED :)" << std::endl; - } - - ModuleBase::timer::tick("Ions","opt_ions_pw"); - return; -} - -bool Ions::after_scf(ModuleESolver::ESolver *p_esolver, const int &istep, int &force_step, int &stress_step) -{ - ModuleBase::TITLE("Ions","after_scf"); - //calculate and gather all parts of total ionic forces - ModuleBase::matrix force; - if(GlobalV::CAL_FORCE) - { - this->gather_force_pw(p_esolver, force); - } - //calculate and gather all parts of stress - ModuleBase::matrix stress; - if(GlobalV::CAL_STRESS) - { - this->gather_stress_pw(p_esolver, stress); - } - //stop in last step - if(istep==GlobalV::RELAX_NMAX) - { - return 1; - } - //choose what to do next - if(GlobalV::CALCULATION!="cell-relax") force_step = istep; - if(this->if_do_relax()) - { - //do relax calculation and generate next structure - bool converged = 0; - converged = this->do_relax(istep, force_step, force, GlobalC::en.etot); - if(!converged) - { - this->reset_after_relax(istep); - return converged; - } - else if(GlobalV::CALCULATION!="cell-relax") - { - return converged; - } - } - if(this->if_do_cellrelax()) - { - //do cell relax calculation and generate next structure - bool converged = 0; - converged = this->do_cellrelax(stress_step, stress, GlobalC::en.etot); - if(!converged) this->reset_after_cellrelax(force_step, stress_step, p_esolver); - return converged; - } - - return 1; -} -void Ions::gather_force_pw(ModuleESolver::ESolver *p_esolver, ModuleBase::matrix &force) -{ - ModuleBase::TITLE("Ions","gather_force_pw"); - // Forces fcs; - // fcs.init(force); - p_esolver->cal_Force(force); -} - -void Ions::gather_stress_pw(ModuleESolver::ESolver *p_esolver, ModuleBase::matrix& stress) -{ - ModuleBase::TITLE("Ions","gather_stress_pw"); - //basic stress - // Stress_PW ss; - // ss.cal_stress(stress); - p_esolver->cal_Stress(stress); - //external stress - double unit_transform = 0.0; - unit_transform = ModuleBase::RYDBERG_SI / pow(ModuleBase::BOHR_RADIUS_SI,3) * 1.0e-8; - double external_stress[3] = {GlobalV::PRESS1,GlobalV::PRESS2,GlobalV::PRESS3}; - for(int i=0;i<3;i++) - { - stress(i,i) -= external_stress[i]/unit_transform; - } - GlobalV::PRESSURE = (stress(0,0)+stress(1,1)+stress(2,2))/3; -} - -bool Ions::if_do_relax() -{ - ModuleBase::TITLE("Ions","if_do_relax"); - if(GlobalV::CALCULATION=="relax"||GlobalV::CALCULATION=="cell-relax") - { - if(!GlobalC::ucell.if_atoms_can_move()) - { - ModuleBase::WARNING("Ions","No atom is allowed to move!"); - return 0; - } -// if(!IMM.get_converged()) return 1; - else - { - assert(GlobalV::CAL_FORCE==1); - return 1; - } - } - else return 0; -} -bool Ions::if_do_cellrelax() -{ - ModuleBase::TITLE("Ions","if_do_cellrelax"); - if(GlobalV::CALCULATION=="cell-relax") - { - if(!GlobalC::ucell.if_cell_can_change()) - { - ModuleBase::WARNING("Ions", "Lattice vectors are not allowed to change!"); - return 0; - } - else if(GlobalC::ucell.if_atoms_can_move()&&!IMM.get_converged()) - { - GlobalV::ofs_running<<"Note: Need to wait for atomic relaxation first!"; - return 0; - } - else - { - assert(GlobalV::CAL_STRESS==1); - return 1; - } - } - else return 0; -} -bool Ions::do_relax(const int& istep, int& jstep, const ModuleBase::matrix& ionic_force, const double& total_energy) -{ - ModuleBase::TITLE("Ions","do_relax"); - CE.update_istep(jstep); - CE.update_all_pos(GlobalC::ucell); - IMM.cal_movement(istep, jstep, ionic_force, total_energy); - ++jstep; - return IMM.get_converged(); -} -bool Ions::do_cellrelax(const int& istep, const ModuleBase::matrix& stress, const double& total_energy) -{ - ModuleBase::TITLE("Ions","do_cellrelax"); - LCM.cal_lattice_change(istep, stress, total_energy); - return LCM.get_converged(); -} -void Ions::reset_after_relax(const int& istep) -{ - ModuleBase::TITLE("Ions","reset_after_relax"); - GlobalV::ofs_running << " Setup the structure factor in plane wave basis." << std::endl; - GlobalC::sf.setup_structure_factor(&GlobalC::ucell,GlobalC::rhopw); - - GlobalV::ofs_running << " Setup the extrapolated charge." << std::endl; - // charge extrapolation if istep>0. - CE.extrapolate_charge(); - CE.save_pos_next(GlobalC::ucell); - - GlobalV::ofs_running << " Setup the Vl+Vh+Vxc according to new structure factor and new charge." << std::endl; - // calculate the new potential accordint to - // the new charge density. - GlobalC::pot.init_pot( istep, GlobalC::sf.strucFac ); - - GlobalV::ofs_running << " Setup the new wave functions?" << std::endl; - //GlobalC::wf.wfcinit(); -} -void Ions::reset_after_cellrelax(int& f_step, int& s_step, ModuleESolver::ESolver *p_esolver) -{ - ModuleBase::TITLE("Ions","reset_after_cellrelax"); - Variable_Cell::init_after_vc(p_esolver); - GlobalC::pot.init_pot(s_step, GlobalC::sf.strucFac); //LiuXh add 20180619 - - //GlobalV::ofs_running << " Setup the new wave functions?" << std::endl; //LiuXh add 20180619 - //GlobalC::wf.wfcinit(p_esolver->psi); //LiuXh add 20180619 - f_step = 1; - ++s_step; -} diff --git a/source/src_lcao/CMakeLists.txt b/source/src_lcao/CMakeLists.txt index b852d1d0b6..63b8d53b7f 100644 --- a/source/src_lcao/CMakeLists.txt +++ b/source/src_lcao/CMakeLists.txt @@ -15,8 +15,6 @@ list(APPEND objects LCAO_hamilt.cpp LCAO_matrix.cpp LCAO_nnr.cpp - LOOP_cell.cpp - LOOP_ions.cpp build_st_pw.cpp center2_orb-orb11.cpp center2_orb-orb21.cpp diff --git a/source/src_lcao/FORCE_STRESS.cpp b/source/src_lcao/FORCE_STRESS.cpp index fed8fc51fa..213a18ff66 100644 --- a/source/src_lcao/FORCE_STRESS.cpp +++ b/source/src_lcao/FORCE_STRESS.cpp @@ -6,6 +6,7 @@ #include "../src_pw/vdwd3.h" #include "../module_base/timer.h" #include "../module_surchem/efield.h" // liuyu add 2022-05-18 +#include "../module_surchem/surchem.h" //sunml add 2022-08-10 #ifdef __DEEPKS #include "../module_deepks/LCAO_deepks.h" //caoyu add for deepks 2021-06-03 #endif @@ -183,6 +184,13 @@ void Force_Stress_LCAO::getForceStress( { fefield.create(nat, 3); Efield::compute_force(GlobalC::ucell, fefield); + } + //Force from implicit solvation model + ModuleBase::matrix fsol; + if(GlobalV::imp_sol&&isforce) + { + fsol.create(nat, 3); + GlobalC::solvent_model.cal_force_sol(GlobalC::ucell,GlobalC::rhopw,fsol); } //Force contribution from DFT+U ModuleBase::matrix force_dftu; @@ -255,6 +263,11 @@ void Force_Stress_LCAO::getForceStress( { fcs(iat, i) += fefield(iat, i); } + //implicit solvation model + if(GlobalV::imp_sol) + { + fcs(iat, i) += fsol(iat, i); + } #ifdef __DEEPKS // mohan add 2021-08-04 if (GlobalV::deepks_scf) @@ -379,6 +392,11 @@ void Force_Stress_LCAO::getForceStress( f_pw.print("EFIELD FORCE", fefield,0); //this->print_force("EFIELD FORCE",fefield,1,ry); } + if(GlobalV::imp_sol) + { + f_pw.print("IMP_SOL FORCE", fsol,0); + //this->print_force("IMP_SOL FORCE",fsol,1,ry); + } if(GlobalC::vdwd2_para.flag_vdwd2||GlobalC::vdwd3_para.flag_vdwd3) { f_pw.print("VDW FORCE", force_vdw,0); diff --git a/source/src_lcao/FORCE_STRESS.h b/source/src_lcao/FORCE_STRESS.h index 1efa0d355a..2ce6974aea 100644 --- a/source/src_lcao/FORCE_STRESS.h +++ b/source/src_lcao/FORCE_STRESS.h @@ -18,7 +18,7 @@ class Force_Stress_LCAO friend class Run_MD_LCAO; friend void Input_Conv::Convert(); friend class Update_input; - friend class LOOP_ions; + friend class ions; friend class MD_func; public : diff --git a/source/src_lcao/FORCE_k.cpp b/source/src_lcao/FORCE_k.cpp index 28bb75c98b..3f13dc4192 100644 --- a/source/src_lcao/FORCE_k.cpp +++ b/source/src_lcao/FORCE_k.cpp @@ -820,8 +820,8 @@ void Force_LCAO_k::cal_fvnl_dbeta_k_new(double** dm2d, ModuleBase::timer::tick("Force_LCAO_k", "cal_fvnl_dbeta_k_new"); const Parallel_Orbitals* pv = this->ParaV; - // Step 1 : generate - // type of atom; distance; atomic basis; projectors + // Data structure for storing , for a detailed description + // check out the same data structure in build_Nonlocal_mu_new std::vector>>>> nlm_tot; nlm_tot.resize(GlobalC::ucell.nat); @@ -871,10 +871,6 @@ void Force_LCAO_k::cal_fvnl_dbeta_k_new(double** dm2d, continue; const int iw1_0 = iw1 / GlobalV::NPOL; std::vector> nlm; - // 2D, but first dimension is only 1 here - // for force, the right hand side is the gradient - // and the first dimension is then 3 - // inner loop : all projectors (L0,M0) GlobalC::UOT.snap_psibeta_half(GlobalC::ORB, GlobalC::ucell.infoNL, nlm, diff --git a/source/src_lcao/LCAO_gen_fixedH.cpp b/source/src_lcao/LCAO_gen_fixedH.cpp index 021a4ea6be..eb0522a0b1 100644 --- a/source/src_lcao/LCAO_gen_fixedH.cpp +++ b/source/src_lcao/LCAO_gen_fixedH.cpp @@ -463,7 +463,16 @@ void LCAO_gen_fixedH::build_Nonlocal_mu_new(double* NLloc, const bool &calc_deri //Step 1 : generate - //type of atom; distance; atomic basis; projectors + + //This is the data structure for storing + //It is a 4 layer data structure + //The outmost layer is std::vector with size being number of atoms in unit cell + //The second layer is a map, the key being a combination of 4 number (iat, dRx, dRy, dRz) + //which identifies a unique adjacent atom of the first atom + //The third layer is an unordered map, with key being the index of atomic basis |psi> + //The inner layer is a vector, each element representing a projector |beta> + //It then either stores the number (nlm_tot) + //or a vector of 4, storing additionally (nlm_tot1) x_i=x,y,z std::vector>>> nlm_tot; std::vector>>>> nlm_tot1; @@ -530,9 +539,9 @@ void LCAO_gen_fixedH::build_Nonlocal_mu_new(double* NLloc, const bool &calc_deri if(iw1_local < 0 && iw2_local < 0)continue; const int iw1_0 = iw1/GlobalV::NPOL; std::vector> nlm; - //2D, but first dimension is only 1 here - //for force, the right hand side is the gradient - //and the first dimension is then 3 + //nlm is a vector of vectors, but size of outer vector is only 1 here + //If we are calculating force, we need also to store the gradient + //and size of outer vector is then 4 //inner loop : all projectors (L0,M0) GlobalC::UOT.snap_psibeta_half( GlobalC::ORB, diff --git a/source/src_lcao/LOOP_cell.cpp b/source/src_lcao/LOOP_cell.cpp deleted file mode 100644 index 815a26b67e..0000000000 --- a/source/src_lcao/LOOP_cell.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "LOOP_cell.h" -#include "LOOP_ions.h" - -#include "dftu.h" //Quxin add for DFT+U on 20201029 -#include "dmft.h" - -// delete in near future -#include "../src_pw/global.h" - -LOOP_cell::LOOP_cell(){} -LOOP_cell::~LOOP_cell() {} - -void LOOP_cell::opt_cell(ModuleESolver::ESolver *p_esolver) -{ - ModuleBase::TITLE("LOOP_cell","opt_cell"); - - LOOP_ions ions; - ions.opt_ions(p_esolver); - - return; -} - diff --git a/source/src_lcao/LOOP_cell.h b/source/src_lcao/LOOP_cell.h deleted file mode 100644 index 47bfd341e9..0000000000 --- a/source/src_lcao/LOOP_cell.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef LOOP_CELL_H -#define LOOP_CELL_H -#include -#include "module_base/matrix.h" -#include "module_base/complexmatrix.h" -#include "module_esolver/esolver.h" - -class LOOP_cell -{ - public: - - LOOP_cell(); - ~LOOP_cell(); - - void opt_cell(ModuleESolver::ESolver *p_esolver); - -}; - -#endif diff --git a/source/src_lcao/LOOP_ions.cpp b/source/src_lcao/LOOP_ions.cpp deleted file mode 100644 index ea039fcdda..0000000000 --- a/source/src_lcao/LOOP_ions.cpp +++ /dev/null @@ -1,400 +0,0 @@ -#include "LOOP_ions.h" -#include "../src_pw/global.h" -#include "../module_orbital/parallel_orbitals.h" -#include "../src_pdiag/pdiag_double.h" -#include "../module_base/global_function.h" -#include "../src_io/write_HS.h" -#include "../src_io/print_info.h" -#include "../src_io/cal_r_overlap_R.h" -#include "../src_ions/variable_cell.h" // mohan add 2021-02-01 -#include "../src_ri/exx_abfs.h" -#include "../src_ri/exx_opt_orb.h" -#include "../module_neighbor/sltk_atom_arrange.h" -#include "../src_pw/vdwd2.h" -#include "../src_pw/vdwd3.h" -#include "../src_pw/vdwd2_parameters.h" -#include "../src_pw/vdwd3_parameters.h" -#include "dmft.h" -#include "src_lcao/LCAO_matrix.h" -#ifdef __DEEPKS -#include "../module_deepks/LCAO_deepks.h" //caoyu add 2021-07-26 -#endif - -LOOP_ions::LOOP_ions() -{} - -LOOP_ions::~LOOP_ions() -{} - -void LOOP_ions::opt_ions(ModuleESolver::ESolver* p_esolver) -{ - ModuleBase::TITLE("LOOP_ions", "opt_ions"); - ModuleBase::timer::tick("LOOP_ions", "opt_ions"); - - if (GlobalV::OUT_LEVEL == "i") - { - std::cout << std::setprecision(12); - std::cout << " " << std::setw(7) << "ISTEP" - << std::setw(5) << "NE" - << std::setw(18) << "ETOT(eV)" - << std::setw(10) << "dE(meV)" - << std::setw(10) << "F(eV/A)" - << std::setw(10) << "T(MIN)" - << std::endl; - } - - // Geometry optimization algorithm setup. - if (GlobalV::CAL_FORCE) - { - //Ions_Move_Methods - IMM.allocate(); - //Charge_Extrapolation - // CE.allocate_ions(); - } - - // pengfei Li 2018-05-14 - if (GlobalV::CAL_STRESS) - { - // allocate arrays related to changes of lattice vectors - LCM.allocate(); - } - - this->istep = 1; - int force_step = 1; - int stress_step = 1; - bool stop = false; - while (istep <= GlobalV::RELAX_NMAX && !stop) - { - time_t estart = time(NULL); - - // xiaohui add "m" option, 2015-09-16 - if (GlobalV::OUT_LEVEL == "ie" || GlobalV::OUT_LEVEL == "m") - { - Print_Info::print_screen(stress_step, force_step, istep); - } - - //---------------------------------------------------------- - // about vdw, jiyy add vdwd3 and linpz add vdwd2 - //---------------------------------------------------------- - if (INPUT.vdw_method == "d2") - { - // setup vdwd2 parameters - GlobalC::vdwd2_para.initial_parameters(INPUT); - GlobalC::vdwd2_para.initset(GlobalC::ucell); - } - if (INPUT.vdw_method == "d3_0" || INPUT.vdw_method == "d3_bj") - { - GlobalC::vdwd3_para.initial_parameters(INPUT); - } - // Peize Lin add 2014.04.04, update 2021.03.09 - if (GlobalC::vdwd2_para.flag_vdwd2) - { - Vdwd2 vdwd2(GlobalC::ucell, GlobalC::vdwd2_para); - vdwd2.cal_energy(); - GlobalC::en.evdw = vdwd2.get_energy(); - } - // jiyy add 2019-05-18, update 2021.05.02 - else if (GlobalC::vdwd3_para.flag_vdwd3) - { - Vdwd3 vdwd3(GlobalC::ucell, GlobalC::vdwd3_para); - vdwd3.cal_energy(); - GlobalC::en.evdw = vdwd3.get_energy(); - } - - // solve electronic structures in terms of LCAO - p_esolver->Run(this->istep - 1, GlobalC::ucell); - - time_t eend = time(NULL); - - //for second-order extrapolation - if (GlobalV::CALCULATION == "relax" || GlobalV::CALCULATION == "cell-relax") - { - CE.update_all_pos(GlobalC::ucell); - } - - // PLEASE design a proper interface to output potentials, - // not only electrostatic potential but also others - // mohan add 2021-03-25 - // we need to have a proper - if (GlobalC::pot.out_pot == 2) - { - std::stringstream ssp; - std::stringstream ssp_ave; - ssp << GlobalV::global_out_dir << "ElecStaticPot"; - ssp_ave << GlobalV::global_out_dir << "ElecStaticPot_AVE"; - GlobalC::pot.write_elecstat_pot(ssp.str(), ssp_ave.str(), GlobalC::rhopw); //output 'Hartree + local pseudopot' - } - - time_t fstart = time(NULL); - if (GlobalV::CALCULATION == "scf" || GlobalV::CALCULATION == "relax" || GlobalV::CALCULATION == "cell-relax") - { - stop = this->force_stress(istep, force_step, stress_step, p_esolver); - } - time_t fend = time(NULL); - - // PLEASE move the details of CE to other places - // mohan add 2021-03-25 - //xiaohui add 2014-07-07, for second-order extrapolation - if (GlobalV::CAL_FORCE) - { - CE.save_pos_next(GlobalC::ucell); - } - - if (GlobalV::OUT_LEVEL == "i") - { - double etime_min = difftime(eend, estart) / 60.0; - double ftime_min = difftime(fend, fstart) / 60.0; - std::stringstream ss; - ss << GlobalV::RELAX_METHOD << istep; - - std::cout << std::setiosflags(ios::scientific) - << " " << std::setw(7) << ss.str() - << std::setw(5) << p_esolver->getniter() - << std::setw(18) << std::setprecision(6) << GlobalC::en.etot * ModuleBase::Ry_to_eV; - - std::cout << std::setprecision(2) << std::setiosflags(ios::scientific) - << std::setw(10) << IMM.get_ediff() * ModuleBase::Ry_to_eV * 1000 - << std::setw(10) << IMM.get_largest_grad() * ModuleBase::Ry_to_eV / ModuleBase::BOHR_TO_A; - //<< std::setw(12) << IMM.get_trust_radius(); - - std::cout << std::resetiosflags(ios::scientific) - // << std::setw(8) << IMM.get_update_iter() - << std::setprecision(2) << std::setw(10) << etime_min + ftime_min; - std::cout << std::endl; - } - - //#ifdef __MPI - // MPI_Barrier(MPI_COMM_WORLD); - // for (int i=0;ipostprocess(); - - ModuleBase::timer::tick("LOOP_ions", "opt_ions"); - return; -} - - -bool LOOP_ions::force_stress( - const int& istep, - int& force_step, - int& stress_step, - ModuleESolver::ESolver* p_esolver) -{ - ModuleBase::TITLE("LOOP_ions", "force_stress"); - - if (!GlobalV::CAL_FORCE && !GlobalV::CAL_STRESS) - { - return 1; - } - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - - // set force matrix - ModuleBase::matrix fcs; - // set stress matrix - ModuleBase::matrix scs; - - p_esolver->cal_Force(fcs); - p_esolver->cal_Stress(scs); - - //-------------------------------------------------- - // only forces are needed, no stresses are needed - //-------------------------------------------------- - if (GlobalV::CAL_FORCE && !GlobalV::CAL_STRESS) - { - -#ifdef __MPI - atom_arrange::delete_vector( - GlobalV::ofs_running, - GlobalV::SEARCH_PBC, - GlobalC::GridD, - GlobalC::ucell, - GlobalV::SEARCH_RADIUS, - GlobalV::test_atom_input); -#endif - - if (GlobalV::CALCULATION == "relax") - { - IMM.cal_movement(istep, istep, fcs, GlobalC::en.etot); - - if (IMM.get_converged() || (istep == GlobalV::RELAX_NMAX)) - { - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 1; // 1 means converged - } - else // ions are not converged - { - CE.update_istep(istep); - CE.extrapolate_charge(); - - if (GlobalC::pot.chg_extrap == "dm") - { - } - else - { - GlobalC::pot.init_pot(istep, GlobalC::sf.strucFac); - } - } - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 0; - } - else - { - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 1; - } - - // mohan update 2013-04-11 - // setup the structure factor - // and do the density extraploation. - // for both ionic iteration and - // force calculations. - - //xiaohui modify 2014-08-09 - //GlobalC::sf.setup_structure_factor(); - - // charge extrapolation if istep>0. - //xiaohui modify 2014-08-09 - //CE.extrapolate_charge(); - -/*xiaohui modify 2014-08-09 - if(GlobalC::pot.chg_extrap==4) - { - // done after grid technique. - } - else - { - GlobalC::pot.init_pot( istep ); - } -xiaohui modify 2014-08-09*/ - } - - // static bool converged_force = false; - static bool converged_stress = false; - - if (!GlobalV::CAL_FORCE && GlobalV::CAL_STRESS) - { - -#ifdef __MPI - atom_arrange::delete_vector( - GlobalV::ofs_running, - GlobalV::SEARCH_PBC, - GlobalC::GridD, - GlobalC::ucell, - GlobalV::SEARCH_RADIUS, - GlobalV::test_atom_input); -#endif - if (GlobalV::CALCULATION == "cell-relax") - { - LCM.cal_lattice_change(stress_step, scs, GlobalC::en.etot); - converged_stress = LCM.get_converged(); - if (converged_stress) - { - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 1; - } - else - { - Variable_Cell::init_after_vc(p_esolver); - GlobalC::pot.init_pot(stress_step, GlobalC::sf.strucFac); - - ++stress_step; - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 0; - } - } - else - { - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 1; - } - } - - if (GlobalV::CAL_FORCE && GlobalV::CAL_STRESS) - { - atom_arrange::delete_vector( - GlobalV::ofs_running, - GlobalV::SEARCH_PBC, - GlobalC::GridD, - GlobalC::ucell, - GlobalV::SEARCH_RADIUS, - GlobalV::test_atom_input); - - if (GlobalV::CALCULATION == "relax" || GlobalV::CALCULATION == "cell-relax") - { - IMM.cal_movement(istep, force_step, fcs, GlobalC::en.etot); - - if (IMM.get_converged()) - { - force_step = 1; - - - if (GlobalV::CALCULATION == "cell-relax") - { - LCM.cal_lattice_change(stress_step, scs, GlobalC::en.etot); - converged_stress = LCM.get_converged(); - if (converged_stress) - { - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 1; - } - else - { - Variable_Cell::init_after_vc(p_esolver); - GlobalC::pot.init_pot(stress_step, GlobalC::sf.strucFac); - - ++stress_step; - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 0; - } - } - else - { - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 1; - } - - } - else - { - CE.update_istep(force_step); - CE.extrapolate_charge(); - - if (GlobalC::pot.chg_extrap == "dm") - { - } - else - { - GlobalC::pot.init_pot(istep, GlobalC::sf.strucFac); - } - ++force_step; - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 0; - } - } - else - { - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 1; - } - } - ModuleBase::timer::tick("LOOP_ions", "force_stress"); - return 0; -} - - diff --git a/source/src_lcao/LOOP_ions.h b/source/src_lcao/LOOP_ions.h deleted file mode 100644 index edf8259f0d..0000000000 --- a/source/src_lcao/LOOP_ions.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef LOOP_IONS_H -#define LOOP_IONS_H - -#include "../src_ions/ions_move_methods.h" -#include "../src_pw/charge_extra.h" -#include "../src_ions/lattice_change_methods.h" -#include "src_lcao/local_orbital_wfc.h" -#include "module_orbital/ORB_control.h" -#include "src_lcao/LCAO_hamilt.h" -#include "module_esolver/esolver.h" - -#include - -class LOOP_ions -{ - -public: - - LOOP_ions(); - ~LOOP_ions(); - - void opt_ions(ModuleESolver::ESolver* p_esolver); //output for dos - -private: - - Ions_Move_Methods IMM; - - Lattice_Change_Methods LCM; - - // PLEASE move 'force_stress()' function to other places, such as FORCE_STRESS.cpp or - // you might think to create a new file, it is because 'force_stress' do not - // belong to 'LOOP_ions', 'GlobalC::pot.init_pot' also do not belong to force_stress() - // the renew of structure factors, etc. should be ran in other places - // the 'IMM' and 'LCM' objects should be passed to force_stress() via parameters list - // mohan note 2021-03-23 - bool force_stress(const int& istep, int& force_step, int& stress_step, ModuleESolver::ESolver* p_esolver); - - int istep; - - // electron charge density extropolation method - Charge_Extra CE; - -}; - -#endif diff --git a/source/src_lcao/dftu.cpp b/source/src_lcao/dftu.cpp index e78f4c001c..89c98a8af2 100644 --- a/source/src_lcao/dftu.cpp +++ b/source/src_lcao/dftu.cpp @@ -19,7 +19,6 @@ #include "global_fp.h" #include "../module_base/global_function.h" #include "../module_base/inverse_matrix.h" -#include "LOOP_ions.h" #include "LCAO_matrix.h" #include "../src_pw/magnetism.h" #include "../module_orbital/ORB_gen_tables.h" diff --git a/source/src_lcao/dftu_relax.cpp b/source/src_lcao/dftu_relax.cpp index 0dedf18cf0..644a1caf04 100644 --- a/source/src_lcao/dftu_relax.cpp +++ b/source/src_lcao/dftu_relax.cpp @@ -17,7 +17,6 @@ #include "global_fp.h" #include "../module_base/global_function.h" #include "../module_base/inverse_matrix.h" -#include "LOOP_ions.h" #include "LCAO_matrix.h" #include "../src_pw/magnetism.h" #include "../module_orbital/ORB_gen_tables.h" diff --git a/source/src_lcao/dftu_yukawa.cpp b/source/src_lcao/dftu_yukawa.cpp index c6ec3256ba..8200dc55f1 100644 --- a/source/src_lcao/dftu_yukawa.cpp +++ b/source/src_lcao/dftu_yukawa.cpp @@ -17,7 +17,6 @@ #include "../src_pw/global.h" #include "global_fp.h" #include "../module_base/global_function.h" -#include "LOOP_ions.h" #include "LCAO_matrix.h" namespace ModuleDFTU{ diff --git a/source/src_lcao/local_orbital_charge.h b/source/src_lcao/local_orbital_charge.h index bdb631f924..0b42f0f06d 100644 --- a/source/src_lcao/local_orbital_charge.h +++ b/source/src_lcao/local_orbital_charge.h @@ -109,7 +109,7 @@ class Local_Orbital_Charge int lgd_last;// sub-FFT-mesh orbitals number in previous step. int lgd_now;// sub-FFT-mesh orbitals number in this step. - int nnrg_last;// sub-FFT-mesh orbtials number in previous step, with k. + int nnrg_last = 0;// sub-FFT-mesh orbtials number in previous step, with k. int nnrg_now; // sub-FFT-mesh orbitals number in this step, with k. // add by yshen on 9/22/2014 diff --git a/source/src_lcao/run_md_lcao.cpp b/source/src_lcao/run_md_lcao.cpp index e5db61f098..9f51933fd0 100644 --- a/source/src_lcao/run_md_lcao.cpp +++ b/source/src_lcao/run_md_lcao.cpp @@ -9,7 +9,7 @@ #include "../src_io/write_HS.h" #include "../src_io/cal_r_overlap_R.h" #include "../src_io/print_info.h" -#include "../src_ions/variable_cell.h" // mohan add 2021-02-01 +#include "../module_relaxation/variable_cell.h" // mohan add 2021-02-01 #include "../src_ri/exx_abfs.h" #include "../src_ri/exx_opt_orb.h" #include "../module_neighbor/sltk_atom_arrange.h" @@ -24,21 +24,13 @@ Run_MD_LCAO::Run_MD_LCAO() { cellchange = false; + CE.Init_CE(); } Run_MD_LCAO::~Run_MD_LCAO() { } -void Run_MD_LCAO::opt_cell(ModuleESolver::ESolver* p_esolver) -{ - ModuleBase::TITLE("Run_MD_LCAO", "opt_cell"); - - opt_ions(p_esolver); - - return; -} - void Run_MD_LCAO::opt_ions(ModuleESolver::ESolver* p_esolver) { ModuleBase::TITLE("Run_MD_LCAO", "opt_ions"); @@ -110,7 +102,7 @@ void Run_MD_LCAO::opt_ions(ModuleESolver::ESolver* p_esolver) if (cellchange) { - Variable_Cell::init_after_vc(p_esolver); + Variable_Cell::init_after_vc(); } // reset local potential @@ -165,11 +157,6 @@ void Run_MD_LCAO::opt_ions(ModuleESolver::ESolver* p_esolver) GlobalC::pot.write_elecstat_pot(ssp.str(), ssp_ave.str(), GlobalC::rhopw); // output 'Hartree + local pseudopot' } - GlobalV::ofs_running << "\n\n --------------------------------------------" << std::endl; - GlobalV::ofs_running << std::setprecision(16); - GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; - GlobalV::ofs_running << " --------------------------------------------\n\n" << std::endl; - // mohan update 2021-02-10 delete verlet; ModuleBase::timer::tick("Run_MD_LCAO","opt_ions"); diff --git a/source/src_lcao/run_md_lcao.h b/source/src_lcao/run_md_lcao.h index ce550e501c..5cfe9bb39b 100644 --- a/source/src_lcao/run_md_lcao.h +++ b/source/src_lcao/run_md_lcao.h @@ -14,7 +14,6 @@ class Run_MD_LCAO Run_MD_LCAO(); ~Run_MD_LCAO(); - void opt_cell(ModuleESolver::ESolver *p_esolver); void opt_ions(ModuleESolver::ESolver *p_esolver); void md_force_virial(ModuleESolver::ESolver *p_esolver, const int &istep, diff --git a/source/src_lcao/test/gamma_rho_mock.h b/source/src_lcao/test/gamma_rho_mock.h index dd95556360..20e3f72177 100644 --- a/source/src_lcao/test/gamma_rho_mock.h +++ b/source/src_lcao/test/gamma_rho_mock.h @@ -40,7 +40,7 @@ #include "module_orbital/ORB_table_beta.h" #include "module_orbital/ORB_table_phi.h" #include "module_orbital/parallel_orbitals.h" -#include "run_lcao.h" +#include "driver.h" #include "src_io/wf_local.h" #include "module_gint/gint_gamma.h" #include "module_gint/gint_tools.h" diff --git a/source/src_pw/Makefile b/source/src_pw/Makefile index 119d21dd09..5354849dfd 100644 --- a/source/src_pw/Makefile +++ b/source/src_pw/Makefile @@ -72,7 +72,7 @@ VPATH=../src_global\ :../module_symmetry\ :../src_parallel\ :../src_io\ -:../src_ions\ +:../module_relaxation\ :../module_md\ :../module_symmetry\ :../\ diff --git a/source/src_pw/Makefile.Objects b/source/src_pw/Makefile.Objects index 8f2cd4f07b..a9035ba7ca 100644 --- a/source/src_pw/Makefile.Objects +++ b/source/src_pw/Makefile.Objects @@ -50,14 +50,14 @@ OBJS_IONS=MD_basic.o\ MD_thermo.o\ MD_fire.o\ MD_func.o\ -ions.o \ +ions.o\ +relaxation.o\ ions_move_methods.o\ ions_move_bfgs.o\ ions_move_cg.o\ ions_move_sd.o\ ions_move_basic.o\ bfgs_basic.o\ -Cell_PW.o\ run_md_pw.o\ lattice_change_methods.o \ lattice_change_cg.o \ diff --git a/source/src_pw/Makefile.parallel b/source/src_pw/Makefile.parallel index 551acf9176..f7c6ae8113 100644 --- a/source/src_pw/Makefile.parallel +++ b/source/src_pw/Makefile.parallel @@ -58,7 +58,7 @@ VPATH=../src_global\ :../module_symmetry\ :../src_parallel\ :../src_io\ -:../src_ions\ +:../module_relaxation\ :../module_md\ :../module_symmetry\ :../\ diff --git a/source/src_pw/Makefile.serial b/source/src_pw/Makefile.serial index 682fed75ca..1bd6369b4b 100644 --- a/source/src_pw/Makefile.serial +++ b/source/src_pw/Makefile.serial @@ -69,7 +69,7 @@ VPATH=../src_global\ :../module_cell\ :../src_parallel\ :../src_io\ -:../src_ions\ +:../module_relaxation\ :../module_md\ :../module_symmetry\ :../\ diff --git a/source/src_pw/charge_extra.cpp b/source/src_pw/charge_extra.cpp index b75121a6ce..2d1510e41d 100644 --- a/source/src_pw/charge_extra.cpp +++ b/source/src_pw/charge_extra.cpp @@ -7,6 +7,38 @@ // #endif Charge_Extra::Charge_Extra() +{ +} + +Charge_Extra::~Charge_Extra() +{ + if(pot_order > 1) + { + for(int is=0; is 2) + // { + // for(int is=0; is 1) - { - for(int is=0; is 2) - // { - // for(int is=0; isistep = step; + //This is because md and relaxation are not unified yet + //will update later + if(GlobalV::CALCULATION=="relax" || GlobalV::CALCULATION=="cell-relax") + { + this->istep++; + } + else + { + this->istep = step; + } return; } @@ -507,7 +519,12 @@ void Charge_Extra::update_all_pos(const UnitCell_pseudo& ucell) { this->pos_old2[i] = this->pos_old1[i]; this->pos_old1[i] = this->pos_now[i]; + if(GlobalV::CALCULATION=="relax"||GlobalV::CALCULATION=="cell-relax") + { + this->pos_now[i] = this->pos_next[i]; + } } - ucell.save_cartesian_position_original(this->pos_now); + if(GlobalV::CALCULATION=="md"||GlobalV::CALCULATION=="sto-md") + ucell.save_cartesian_position_original(this->pos_now); return; } diff --git a/source/src_pw/charge_extra.h b/source/src_pw/charge_extra.h index 83c7e19808..b7321b4fb2 100644 --- a/source/src_pw/charge_extra.h +++ b/source/src_pw/charge_extra.h @@ -16,13 +16,19 @@ class Charge_Extra Charge_Extra(); ~Charge_Extra(); + //When Esolver is initialized, ucell.natom is not determined + //As a result, data structures in Charge_Extra cannot be allocated + //This is a temporary solution by delaying the allocation + //But after ucell and Esolver are fully decoupled + //Init_CE will be removed and everything put back in the constructor + void Init_CE(); void extrapolate_charge(void); void save_pos_next(const UnitCell_pseudo& ucell); void update_istep(const int &step); void update_all_pos(const UnitCell_pseudo& ucell); private: - int istep; + int istep = 0; int natom; int pot_order; int rho_extr; diff --git a/source/src_pw/forces.cpp b/source/src_pw/forces.cpp index 65192897bb..3a38806b18 100644 --- a/source/src_pw/forces.cpp +++ b/source/src_pw/forces.cpp @@ -9,6 +9,7 @@ #include "../src_parallel/parallel_reduce.h" #include "../module_base/timer.h" #include "../module_surchem/efield.h" +#include "../module_surchem/surchem.h" double Forces::output_acc = 1.0e-8; // (Ryd/angstrom). @@ -81,6 +82,17 @@ void Forces::init(ModuleBase::matrix& force, const psi::Psi } } + ModuleBase::matrix forcesol; + if (GlobalV::imp_sol) + { + forcesol.create(GlobalC::ucell.nat, 3); + GlobalC::solvent_model.cal_force_sol(GlobalC::ucell, GlobalC::rhopw, forcesol); + if(GlobalV::TEST_FORCE) + { + Forces::print("IMP_SOL FORCE (Ry/Bohr)", forcesol); + } + } + //impose total force = 0 int iat = 0; for (int ipol = 0; ipol < 3; ipol++) @@ -109,6 +121,11 @@ void Forces::init(ModuleBase::matrix& force, const psi::Psi force(iat,ipol) = force(iat, ipol) + force_e(iat, ipol); } + if(GlobalV::imp_sol) + { + force(iat,ipol) = force(iat, ipol) + forcesol(iat, ipol); + } + sum += force(iat, ipol); iat++; @@ -213,6 +230,7 @@ void Forces::init(ModuleBase::matrix& force, const psi::Psi Forces::print("ION FORCE (eV/Angstrom)", forceion,0); Forces::print("SCC FORCE (eV/Angstrom)", forcescc,0); if(GlobalV::EFIELD_FLAG) Forces::print("EFIELD FORCE (eV/Angstrom)", force_e,0); + if(GlobalV::imp_sol) Forces::print("IMP_SOL FORCE (eV/Angstrom)", forcesol,0); } Forces::print(" TOTAL-FORCE (eV/Angstrom)", force,0); diff --git a/source/src_pw/global.h b/source/src_pw/global.h index 819c8de95d..85b864ce4e 100644 --- a/source/src_pw/global.h +++ b/source/src_pw/global.h @@ -3,9 +3,8 @@ #include "../module_base/global_function.h" #include "../module_base/global_variable.h" -#include "../run_pw.h" #include "../src_io/restart.h" -#include "../src_ions/ions.h" +#include "../module_relaxation/ions.h" #include "../src_lcao/exx_lip.h" #include "VNL_in_pw.h" #include "charge_broyden.h" diff --git a/source/src_pw/potential.cpp b/source/src_pw/potential.cpp index ea69b27ffd..cde1ad785f 100644 --- a/source/src_pw/potential.cpp +++ b/source/src_pw/potential.cpp @@ -229,10 +229,6 @@ void Potential::init_pot(const int &istep, // number of ionic steps GlobalC::restart.info_load.load_charge_finish = true; } } - else - { - // the extrapolation part moves to ions.cpp. - } // renormalize the charge density GlobalC::CHR.renormalize_rho(); diff --git a/source/src_pw/run_md_pw.cpp b/source/src_pw/run_md_pw.cpp index 9b4380afaf..bf91c4b9aa 100644 --- a/source/src_pw/run_md_pw.cpp +++ b/source/src_pw/run_md_pw.cpp @@ -1,6 +1,6 @@ #include "run_md_pw.h" #include "global.h" // use chr. -#include "../src_ions/variable_cell.h" // mohan add 2021-02-01 +#include "../module_relaxation/variable_cell.h" // mohan add 2021-02-01 #include "../module_md/MD_func.h" #include "../module_md/FIRE.h" #include "../module_md/NVE.h" @@ -13,6 +13,7 @@ Run_MD_PW::Run_MD_PW() { cellchange = false; + CE.Init_CE(); } Run_MD_PW::~Run_MD_PW(){} @@ -96,7 +97,8 @@ void Run_MD_PW::md_ions_pw(ModuleESolver::ESolver *p_esolver) if(cellchange) { - Variable_Cell::init_after_vc(p_esolver); + GlobalC::ucell.cell_parameter_updated = true; + Variable_Cell::init_after_vc(); } // reset local potential and initial wave function @@ -153,23 +155,6 @@ void Run_MD_PW::md_ions_pw(ModuleESolver::ESolver *p_esolver) return; } -void Run_MD_PW::md_cells_pw(ModuleESolver::ESolver *p_esolver) -{ - ModuleBase::TITLE("Run_MD_PW", "md_cells_pw"); - ModuleBase::timer::tick("Run_MD_PW", "md_cells_pw"); - - // ion optimization begins - // electron density optimization is included in ion optimization - this->md_ions_pw(p_esolver); - - GlobalV::ofs_running << "\n\n --------------------------------------------" << std::endl; - GlobalV::ofs_running << std::setprecision(16); - GlobalV::ofs_running << " !FINAL_ETOT_IS " << GlobalC::en.etot * ModuleBase::Ry_to_eV << " eV" << std::endl; - GlobalV::ofs_running << " --------------------------------------------\n\n" << std::endl; - - ModuleBase::timer::tick("Run_MD_PW", "md_cells_pw"); -} - void Run_MD_PW::md_force_virial( ModuleESolver::ESolver *p_esolver, const int &istep, diff --git a/source/src_pw/run_md_pw.h b/source/src_pw/run_md_pw.h index 047ba9a070..7d2fef9b76 100644 --- a/source/src_pw/run_md_pw.h +++ b/source/src_pw/run_md_pw.h @@ -12,7 +12,6 @@ class Run_MD_PW ~Run_MD_PW(); void md_ions_pw(ModuleESolver::ESolver *p_esolver); - void md_cells_pw(ModuleESolver::ESolver *p_esolver); void md_force_virial( ModuleESolver::ESolver *p_esolver, const int &istep, diff --git a/source/src_pw/sto_func.cpp b/source/src_pw/sto_func.cpp index e36ccef788..71b83f78f1 100644 --- a/source/src_pw/sto_func.cpp +++ b/source/src_pw/sto_func.cpp @@ -59,7 +59,7 @@ REAL Sto_Func:: nxfd(REAL rawe) REAL DeltaE = (Emax - Emin)/2; REAL e = rawe * DeltaE + Ebar; REAL ne_mu = (e - mu) / this->tem ; - if(ne_mu > 40) + if(ne_mu > 36) return 0; else return e / (1 + exp(ne_mu)); @@ -97,6 +97,23 @@ REAL Sto_Func:: nfdlnfd(REAL rawe) } } +template +REAL Sto_Func:: n_root_fdlnfd(REAL rawe) +{ + REAL Ebar = (Emin + Emax)/2; + REAL DeltaE = (Emax - Emin)/2; + REAL ne_mu = (rawe * DeltaE + Ebar - mu) / this->tem ; + if(ne_mu > 72) + return 0; + else if(ne_mu < -72) + return 0; + else + { + REAL f = 1 / (1 + exp(ne_mu)); + return sqrt(-f * log(f) - (1-f) * log(1-f)); + } +} + template REAL Sto_Func::n_fd(REAL rawe) { @@ -153,12 +170,25 @@ REAL Sto_Func::ngauss(REAL rawe) REAL DeltaE = (Emax - Emin)/2; REAL e = rawe * DeltaE + Ebar; REAL a = pow((targ_e-e),2)/2.0/pow(sigma,2); - if(a > 72) + if(a > 32) return 0; else return exp(-a) /sqrt(TWOPI) / sigma ; } +template +REAL Sto_Func::nroot_gauss(REAL rawe) +{ + REAL Ebar = (Emin + Emax)/2; + REAL DeltaE = (Emax - Emin)/2; + REAL e = rawe * DeltaE + Ebar; + REAL a = pow((targ_e-e),2)/4.0/pow(sigma,2); + if(a > 32) + return 0; + else + return exp(-a) /sqrt(sqrt(TWOPI) * sigma) ; +} + //we only have two examples: double and float. template class Sto_Func; #ifdef __MIX_PRECISION diff --git a/source/src_pw/sto_func.h b/source/src_pw/sto_func.h index b3c9baf299..b4b0fc8d21 100644 --- a/source/src_pw/sto_func.h +++ b/source/src_pw/sto_func.h @@ -19,6 +19,7 @@ class Sto_Func REAL nxfd(REAL e); REAL fdlnfd(REAL e); REAL nfdlnfd(REAL e); + REAL n_root_fdlnfd(REAL e); REAL n_fd(REAL e); public: @@ -32,6 +33,7 @@ class Sto_Func REAL targ_e; REAL gauss(REAL e); REAL ngauss(REAL e); + REAL nroot_gauss(REAL e); }; diff --git a/source/src_pw/sto_hchi.cpp b/source/src_pw/sto_hchi.cpp index 1b7f712f1e..4c33f8ca92 100644 --- a/source/src_pw/sto_hchi.cpp +++ b/source/src_pw/sto_hchi.cpp @@ -21,9 +21,9 @@ void Stochastic_hchi:: init() } -void Stochastic_hchi:: hchi_reciprocal(complex *chig, complex *hchig, const int m) +void Stochastic_hchi:: hchi(complex *chig, complex *hchig, const int m) { - ModuleBase::timer::tick("Stochastic_hchi","hchi_reciprocal"); + //--------------------------------------------------- @@ -150,10 +150,19 @@ void Stochastic_hchi:: hchi_reciprocal(complex *chig, complex *h } ModuleBase::timer::tick("Stochastic_hchi","vnl"); + return; +} +void Stochastic_hchi:: hchi_norm(complex *chig, complex *hchig, const int m) +{ + ModuleBase::timer::tick("Stochastic_hchi","hchi_norm"); + this->hchi(chig,hchig,m); - double Ebar = (Emin + Emax)/2; - double DeltaE = (Emax - Emin)/2; + const int ik = this->current_ik; + const int npwx = GlobalC::wf.npwx; + const int npw = GlobalC::kv.ngk[ik]; + const double Ebar = (Emin + Emax)/2; + const double DeltaE = (Emax - Emin)/2; for(int ib = 0 ; ib < m ; ++ib) { for(int ig = 0; ig < npw; ++ig) @@ -161,9 +170,5 @@ void Stochastic_hchi:: hchi_reciprocal(complex *chig, complex *h hchig[ib*npwx+ig] = (hchig[ib*npwx+ig] - Ebar * chig[ib*npwx+ig]) / DeltaE; } } - - ModuleBase::timer::tick("Stochastic_hchi","hchi_reciprocal"); - - - return; -} + ModuleBase::timer::tick("Stochastic_hchi","hchi_norm"); +} \ No newline at end of file diff --git a/source/src_pw/sto_hchi.h b/source/src_pw/sto_hchi.h index d816465230..d11fa89ca3 100644 --- a/source/src_pw/sto_hchi.h +++ b/source/src_pw/sto_hchi.h @@ -27,17 +27,16 @@ class Stochastic_hchi double Emin; double Emax; - void hchi_real( - complex *wfin, - complex *wfout, - const int m = 1); //wfin & wfout are wavefunctions in real space - void orthogonal_to_psi_reciprocal( complex* wfin, complex *wfout, const int& ikk); //wfin & wfout are wavefunctions in reciprocal space + void hchi( + complex *wfin, + complex *wfout, + const int m = 1); //wfin & wfout are wavefunctions in reciprocal space - void hchi_reciprocal( + void hchi_norm( complex *wfin, complex *wfout, const int m = 1); //wfin & wfout are wavefunctions in reciprocal space diff --git a/source/src_pw/sto_iter.cpp b/source/src_pw/sto_iter.cpp index bc74b10eed..63c8eeda43 100644 --- a/source/src_pw/sto_iter.cpp +++ b/source/src_pw/sto_iter.cpp @@ -1,19 +1,33 @@ #include "sto_iter.h" - #include "../module_base/blas_connector.h" #include "../module_base/timer.h" #include "../module_base/tool_quit.h" #include "../module_base/tool_title.h" #include "../src_parallel/parallel_reduce.h" +#include "../module_base/blas_connector.h" #include "diago_cg.h" #include "global.h" #include "occupy.h" +double Stochastic_Iter::vTMv(const double *v, const double * M, const int n) +{ + const char normal = 'N'; + const double one = 1; + const int inc = 1; + const double zero = 0; + double *y = new double [n]; + dgemv_(&normal,&n,&n,&one,M,&n,v,&inc,&zero,y,&inc); + double result = BlasConnector::dot(n,y,1,v,1); + delete[] y; + return result; +} + + Stochastic_Iter::Stochastic_Iter() { change = false; mu0 = 0; - method = 1; + method = 2; } Stochastic_Iter::~Stochastic_Iter() @@ -31,11 +45,13 @@ void Stochastic_Iter::init(const int dim, int* nchip_in, const int method_in, St stohchi.init(); delete[] spolyv; const int norder = p_che->norder; - spolyv = new double[norder]; + this->method = method_in; + if(method == 1) spolyv = new double [norder]; + else spolyv = new double [norder*norder]; stofunc.Emin = INPUT.emin_sto; stofunc.Emax = INPUT.emax_sto; - this->method = method_in; - if (this->method == 2) + + if(this->method == 2) { double tot = 0; for (int ik = 0; ik < GlobalC::kv.nks; ++ik) @@ -45,14 +61,14 @@ void Stochastic_Iter::init(const int dim, int* nchip_in, const int method_in, St #ifdef __MPI MPI_Allreduce(MPI_IN_PLACE, &tot, 1, MPI_DOUBLE, MPI_SUM, POOL_WORLD); #endif - tot /= double(1073741824); // convert B to GB - assert(tot < 64); + tot /= double(1073741824); //convert B to GB + if(tot > 64) cout<<" WARNING: POOL 0 uses memories of over "<chiallorder = new ModuleBase::ComplexMatrix[stowf.nks]; for (int ik = 0; ik < GlobalC::kv.nks; ++ik) { const int nchip = stowf.chi0[ik].nr; const int npwx = stowf.chi0[ik].nc; - chiallorder[ik].create(nchip * npwx, norder, false); + chiallorder[ik].create(nchip * npwx, norder,true); } } } @@ -126,7 +142,7 @@ void Stochastic_Iter::checkemm(const int& ik, const int istep, const int iter, S { bool converge; converge = p_che->checkconverge( - &stohchi, &Stochastic_hchi::hchi_reciprocal, + &stohchi, &Stochastic_hchi::hchi_norm, pchi, GlobalC::kv.ngk[ik], stohchi.Emax, stohchi.Emin, @@ -162,7 +178,46 @@ void Stochastic_Iter::checkemm(const int& ik, const int istep, const int iter, S } } -void Stochastic_Iter::itermu(const int iter, elecstate::ElecState* pes) +void Stochastic_Iter::check_precision(const double ref, const double thr, const string info) +{ + //============================== + //precision check + //============================== + double error = 0; + if(this->method == 1) + { + error = p_che->coef_real[p_che->norder-1] * spolyv[p_che->norder-1]; + } + else + { + const int norder = p_che->norder; + double last_coef = p_che->coef_real[norder-1]; + double last_spolyv = spolyv[norder*norder - 1]; + error = last_coef *(BlasConnector::dot(norder,p_che->coef_real,1,spolyv+norder*(norder-1),1) + + BlasConnector::dot(norder,p_che->coef_real,1,spolyv+norder-1,norder)-last_coef*last_spolyv); + } + +#ifdef __MPI + MPI_Allreduce(MPI_IN_PLACE, &error, 1, MPI_DOUBLE, MPI_SUM , MPI_COMM_WORLD); +#endif + double relative_error = abs(error/ref); + GlobalV::ofs_running< thr) + { + stringstream ss; + ss<>fractxt; + ss.clear(); + ss<>tartxt; + string warningtxt = "( "+info+" relative Chebyshev error = "+fractxt+" > threshold = "+tartxt+" ) Maybe you should increase the parameter \"nche_sto\" for more accuracy."; + ModuleBase::WARNING("Stochastic_Chebychev", warningtxt); + } + //=============================== +} + +void Stochastic_Iter::itermu(const int iter, elecstate::ElecState* pes) { ModuleBase::TITLE("Stochastic_Iter", "itermu"); ModuleBase::timer::tick("Stochastic_Iter", "itermu"); @@ -176,7 +231,8 @@ void Stochastic_Iter::itermu(const int iter, elecstate::ElecState* pes) else { dmu = 0.1; - th_ne = GlobalV::SCF_THR * 1e-2 * GlobalC::CHR.nelec; + th_ne = 1e-2 * GlobalV::SCF_THR * GlobalC::CHR.nelec; + th_ne = std::min(th_ne, 1e-5); } this->stofunc.mu = mu0 - dmu; double ne1 = calne(pes); @@ -191,7 +247,6 @@ void Stochastic_Iter::itermu(const int iter, elecstate::ElecState* pes) while (ne1 > targetne) { - ne2 = ne1; mu2 = mu1; mu1 -= dmu; this->stofunc.mu = mu1; @@ -201,7 +256,6 @@ void Stochastic_Iter::itermu(const int iter, elecstate::ElecState* pes) } while (ne2 < targetne) { - ne1 = ne2; mu1 = mu2; mu2 += dmu; this->stofunc.mu = mu2; @@ -217,12 +271,10 @@ void Stochastic_Iter::itermu(const int iter, elecstate::ElecState* pes) ne3 = calne(pes); if (ne3 < targetne) { - ne1 = ne3; mu1 = mu3; } else if (ne3 > targetne) { - ne2 = ne3; mu2 = mu3; } Dne = abs(targetne - ne3); @@ -237,36 +289,12 @@ void Stochastic_Iter::itermu(const int iter, elecstate::ElecState* pes) "Cannot converge feimi energy. Please retry with different random number"); } } - GlobalV::ofs_running << "Converge fermi energy = " << this->stofunc.mu << " Ry in " << count << " steps." - << std::endl; - // precision check - double tmpre; - tmpre = p_che->coef_real[p_che->norder - 1] * spolyv[p_che->norder - 1]; -#ifdef __MPI - MPI_Allreduce(MPI_IN_PLACE, &tmpre, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -#endif - GlobalV::ofs_running << "Chebyshev Precision: " << abs(tmpre / targetne) * 1e9 << "E-09" << std::endl; - if (tmpre / targetne > GlobalV::SCF_THR * 1e2) - { - stringstream ss; - ss << tmpre / targetne; - string fractxt, tartxt, itertxt; - ss >> fractxt; - ss.clear(); - ss << GlobalV::SCF_THR * 1e2; - ss >> tartxt; - ss.clear(); - ss << iter + 1; - ss >> itertxt; - string warningtxt = "Iter " + itertxt + ": (Chebyshev error = " + fractxt + " > threshold = " + tartxt - + " ) Please add more expansion terms for Chebychev expansion."; - ModuleBase::WARNING("Stochastic_Chebychev", warningtxt); - } - pes->ef = this->stofunc.mu = mu0 = mu3; - - // Set wf.wg - if (GlobalV::NBANDS > 0) + GlobalV::ofs_running<<"Converge fermi energy = "<check_precision(targetne,GlobalV::SCF_THR,"Ne"); + + //Set wf.wg + if(GlobalV::NBANDS > 0) { for (int ikk = 0; ikk < GlobalC::kv.nks; ++ikk) { @@ -287,54 +315,62 @@ void Stochastic_Iter::calPn(const int& ik, Stochastic_WF& stowf) ModuleBase::timer::tick("Stochastic_Iter", "calPn"); const int norder = p_che->norder; - if (ik == 0) - ModuleBase::GlobalFunc::ZEROS(spolyv, norder); - std::complex* pchi; - if (GlobalV::NBANDS > 0) - pchi = stowf.chiortho[ik].c; - else - pchi = stowf.chi0[ik].c; - - if (this->method == 2) + const int nchip_ik = nchip[ik]; + if(ik==0) { - p_che->calpolyvec_complex(&stohchi, &Stochastic_hchi::hchi_reciprocal, pchi, this->chiallorder[ik].c, GlobalC::kv.ngk[ik], GlobalC::wf.npwx, nchip[ik]); - double* vec_all= (double *) this->chiallorder[ik].c; - double* vec= (double *) pchi; - char transa = 'T'; - double one = 1; - int inc = 1; - // double zero = 0; - int LDA = GlobalC::wf.npwx * nchip[ik] * 2; - int M = GlobalC::kv.ngk[ik] * nchip[ik] * 2; - int N = norder; - dgemv_(&transa, &M, &N, &one, vec_all, &LDA, vec, &inc, &one, spolyv, &inc); - for (int i = 0; i < norder; ++i) - { - spolyv[i] *= GlobalC::kv.wk[ik]; - } + if(this->method == 1) + ModuleBase::GlobalFunc::ZEROS(spolyv, norder); + else + ModuleBase::GlobalFunc::ZEROS(spolyv, norder*norder); } - else + std::complex * pchi; + if(GlobalV::NBANDS > 0) pchi = stowf.chiortho[ik].c; + else pchi = stowf.chi0[ik].c; + + if(this->method == 1) { - p_che->tracepolyA(&stohchi, &Stochastic_hchi::hchi_reciprocal, pchi, GlobalC::kv.ngk[ik], GlobalC::wf.npwx, nchip[ik]); + p_che->tracepolyA(&stohchi, &Stochastic_hchi::hchi_norm, pchi, GlobalC::kv.ngk[ik], GlobalC::wf.npwx, nchip_ik); for(int i = 0 ; i < norder ; ++i) { spolyv[i] += p_che->polytrace[i] * GlobalC::kv.wk[ik]; } } + else + { + p_che->calpolyvec_complex(&stohchi, &Stochastic_hchi::hchi_norm, pchi, this->chiallorder[ik].c, GlobalC::kv.ngk[ik], GlobalC::wf.npwx, nchip_ik); + double* vec_all= (double *) this->chiallorder[ik].c; + char trans = 'T'; + char normal = 'N'; + double one = 1; + int LDA = GlobalC::wf.npwx * nchip_ik * 2; + int M = GlobalC::wf.npwx * nchip_ik * 2; //Do not use kv.ngk[ik] + int N = norder; + double kweight = GlobalC::kv.wk[ik]; + dgemm_(&trans,&normal, &N,&N,&M,&kweight,vec_all,&LDA,vec_all,&LDA,&one,spolyv,&N); + } ModuleBase::timer::tick("Stochastic_Iter", "calPn"); return; } double Stochastic_Iter::calne(elecstate::ElecState* pes) -{ - ModuleBase::timer::tick("Stochastic_Iter", "calne"); - - p_che->calcoef_real(&stofunc, &Sto_Func::nfd); - const int norder = p_che->norder; +{ + ModuleBase::timer::tick("Stochastic_Iter","calne"); double totne = 0; KS_ne = 0; - double sto_ne = BlasConnector::dot(norder, p_che->coef_real, 1, spolyv, 1); - if (GlobalV::NBANDS > 0) + const int norder = p_che->norder; + double sto_ne; + if(this->method == 1) + { + //Note: spolyv contains kv.wk[ik] + p_che->calcoef_real(&stofunc,&Sto_Func::nfd); + sto_ne = BlasConnector::dot(norder,p_che->coef_real,1,spolyv,1); + } + else + { + p_che->calcoef_real(&stofunc,&Sto_Func::nroot_fd); + sto_ne = vTMv(p_che->coef_real,spolyv,norder); + } + if(GlobalV::NBANDS > 0) { for (int ikk = 0; ikk < GlobalC::kv.nks; ++ikk) { @@ -369,17 +405,26 @@ void Stochastic_Iter::calHsqrtchi(Stochastic_WF& stowf) } } -void Stochastic_Iter::sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pes) -{ - ModuleBase::TITLE("Stochastic_Iter", "sum_stoband"); - ModuleBase::timer::tick("Stochastic_Iter", "sum_stoband"); +void Stochastic_Iter::sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pes,hamilt::Hamilt* pHamilt) +{ + ModuleBase::TITLE("Stochastic_Iter","sum_stoband"); + ModuleBase::timer::tick("Stochastic_Iter","sum_stoband"); int nrxx = GlobalC::wfcpw->nrxx; int npwx = GlobalC::wf.npwx; const int norder = p_che->norder; //---------------cal demet----------------------- - p_che->calcoef_real(&stofunc,&Sto_Func::nfdlnfd); - double stodemet = BlasConnector::dot(norder,p_che->coef_real,1,spolyv,1); + double stodemet; + if(this->method == 1) + { + p_che->calcoef_real(&stofunc,&Sto_Func::nfdlnfd); + stodemet = BlasConnector::dot(norder,p_che->coef_real,1,spolyv,1); + } + else + { + p_che->calcoef_real(&stofunc,&Sto_Func::n_root_fdlnfd); + stodemet = -vTMv(p_che->coef_real,spolyv,norder); + } if (GlobalV::NBANDS > 0) { @@ -396,14 +441,50 @@ void Stochastic_Iter::sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pe pes->demet /= GlobalV::NPROC_IN_POOL; #ifdef __MPI MPI_Allreduce(MPI_IN_PLACE, &pes->demet, 1, MPI_DOUBLE, MPI_SUM , STO_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &stodemet,1,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); #endif - //--------------------cal eband------------------------ - p_che->calcoef_real(&stofunc,&Sto_Func::nxfd); - double sto_eband = BlasConnector::dot(norder,p_che->coef_real,1,spolyv,1); + pes->demet += stodemet; + this->check_precision(pes->demet, 1e-4, "TS"); + pes->demet *= Occupy::gaussian_parameter; + //--------------------cal eband------------------------ + double sto_eband = 0; + if(this->method == 1) + { + p_che->calcoef_real(&stofunc,&Sto_Func::nxfd); + sto_eband = BlasConnector::dot(norder,p_che->coef_real,1,spolyv,1); + } + else + { + for(int ik = 0; ik < GlobalC::kv.nks; ++ik) + { + const int nchip_ik = nchip[ik]; + if(GlobalC::kv.nks > 1) + { + pHamilt->updateHk(ik); + } + stohchi.current_ik = ik; + const int npw = GlobalC::kv.ngk[ik]; + const double kweight = GlobalC::kv.wk[ik]; + std::complex *hshchi = new std::complex [nchip_ik * npwx]; + std::complex* tmpin = stowf.shchi[ik].c; + std::complex *tmpout = hshchi; + stohchi.hchi(tmpin,tmpout,nchip_ik); + for(int ichi = 0; ichi < nchip_ik ; ++ichi) + { + sto_eband += kweight * ModuleBase::GlobalFunc::ddot_real(npw,tmpin,tmpout,false); + tmpin+=npwx; + tmpout+=npwx; + } + delete[] hshchi; + } + } +#ifdef __MPI + MPI_Allreduce(MPI_IN_PLACE, &sto_eband,1,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); +#endif + pes->eband += sto_eband; //---------------------cal rho------------------------- double *sto_rho = new double [nrxx]; - //int npwall = npwx * nchip; double dr3 = GlobalC::ucell.omega / GlobalC::wfcpw->nxyz; double tmprho, tmpne; @@ -424,8 +505,9 @@ void Stochastic_Iter::sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pe for (int ik = 0; ik < GlobalC::kv.nks; ++ik) { + const int nchip_ik = nchip[ik]; std::complex *tmpout = stowf.shchi[ik].c; - for(int ichi = 0; ichi < nchip[ik] ; ++ichi) + for(int ichi = 0; ichi < nchip_ik ; ++ichi) { GlobalC::wfcpw->recip2real(tmpout, porter, ik); for (int ir = 0; ir < nrxx; ++ir) @@ -437,6 +519,7 @@ void Stochastic_Iter::sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pe } delete[] porter; #ifdef __MPI + //temporary, rho_mpi should be rewrite as a tool function! Now it only treats pes->charge->rho pes->charge->rho_mpi(); #endif for (int ir = 0; ir < nrxx; ++ir) @@ -448,25 +531,19 @@ void Stochastic_Iter::sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pe sto_ne *= dr3; #ifdef __MPI - MPI_Allreduce(MPI_IN_PLACE, &stodemet, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MPI_IN_PLACE, &sto_eband, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MPI_IN_PLACE, &sto_ne, 1, MPI_DOUBLE, MPI_SUM, POOL_WORLD); - MPI_Allreduce(MPI_IN_PLACE, &sto_ne, 1, MPI_DOUBLE, MPI_SUM, PARAPW_WORLD); - MPI_Allreduce(MPI_IN_PLACE, sto_rho, nrxx, MPI_DOUBLE, MPI_SUM, PARAPW_WORLD); + MPI_Allreduce(MPI_IN_PLACE,&sto_ne,1,MPI_DOUBLE,MPI_SUM,POOL_WORLD); + MPI_Allreduce(MPI_IN_PLACE,&sto_ne,1,MPI_DOUBLE,MPI_SUM,PARAPW_WORLD); + MPI_Allreduce(MPI_IN_PLACE,sto_rho,nrxx,MPI_DOUBLE,MPI_SUM,PARAPW_WORLD); #endif - pes->eband += sto_eband; - pes->demet += stodemet; - pes->demet *= Occupy::gaussian_parameter; - - GlobalV::ofs_running << "Renormalize rho from ne = " << sto_ne + KS_ne << " to targetne = " << targetne << endl; - - double factor; - if (abs(sto_ne) > 1e-20) - factor = (targetne - KS_ne) / sto_ne; + double factor = targetne/(KS_ne+sto_ne); + if(abs(factor-1) > 1e-10) + { + GlobalV::ofs_running<<"Renormalize rho from ne = "<method == 2) + if(this->method==2) { char transa = 'N'; std::complex one = 1; int inc = 1; std::complex zero = 0; int LDA = GlobalC::wf.npwx * nchip[ik]; - int M = GlobalC::kv.ngk[ik] * nchip[ik]; + int M = GlobalC::wf.npwx * nchip[ik]; int N = p_che->norder; std::complex* coef_real = new std::complex[p_che->norder]; for (int i = 0; i < p_che->norder; ++i) @@ -517,19 +597,13 @@ void Stochastic_Iter::calTnchi_ik(const int& ik, Stochastic_WF& stowf) } else { - p_che->calfinalvec_real(&stohchi, - &Stochastic_hchi::hchi_reciprocal, - pchi, - out, - npw, - GlobalC::wf.npwx, - nchip[ik]); + p_che->calfinalvec_real(&stohchi, &Stochastic_hchi::hchi_norm, pchi, out, npw, GlobalC::wf.npwx, nchip[ik]); } } void Stochastic_Iter::cleanchiallorder() { - if(this->method==2) + if(this->method == 2) { delete[] chiallorder; chiallorder = nullptr; diff --git a/source/src_pw/sto_iter.h b/source/src_pw/sto_iter.h index e8ad57b119..65f79a4e48 100644 --- a/source/src_pw/sto_iter.h +++ b/source/src_pw/sto_iter.h @@ -6,6 +6,7 @@ #include "sto_func.h" #include "module_psi/psi.h" #include "module_elecstate/elecstate.h" +#include "module_hamilt/hamilt.h" //---------------------------------------------- // Solve for the new electron density and iterate @@ -26,7 +27,7 @@ class Stochastic_Iter void init(const int, int* nchip_in, const int method_in, Stochastic_WF& stowf); - void sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pes); + void sum_stoband(Stochastic_WF& stowf, elecstate::ElecState* pes,hamilt::Hamilt* pHamilt); double calne(elecstate::ElecState* pes); @@ -36,6 +37,8 @@ class Stochastic_Iter void checkemm(const int &ik, const int istep, const int iter, Stochastic_WF& stowf); + void check_precision(const double ref,const double thr, const string info); + ModuleBase::Chebyshev* p_che = nullptr; Stochastic_hchi stohchi; @@ -63,6 +66,8 @@ class Stochastic_Iter void calPn(const int& ik, Stochastic_WF& stowf); //cal Tnchi = \sum_n C_n*T_n(\hat{h})|\chi> void calTnchi_ik(const int& ik, Stochastic_WF& stowf); + //cal v^T*M*v + double vTMv(const double *v, const double * M, const int n); }; diff --git a/source/src_pw/sto_wf.cpp b/source/src_pw/sto_wf.cpp index f288418f9f..02ce3e9645 100644 --- a/source/src_pw/sto_wf.cpp +++ b/source/src_pw/sto_wf.cpp @@ -18,14 +18,10 @@ Stochastic_WF::Stochastic_WF() Stochastic_WF::~Stochastic_WF() { - if (chi0 != nullptr) - delete[] chi0; - if (shchi != nullptr) - delete[] shchi; - if (chiortho != nullptr) - delete[] chiortho; - if (nchip != nullptr) - delete[] nchip; + delete[] chi0; + delete[] shchi; + delete[] chiortho; + delete[] nchip; } void Stochastic_WF::init(const int nks_in) @@ -83,6 +79,7 @@ void Init_Sto_Orbitals(Stochastic_WF& stowf, const int seed_in) stowf.chi0[ik].c[i] = 1.0 / sqrt(double(nchi)); } } + stowf.nchip_max = tmpnchip; } void Update_Sto_Orbitals(Stochastic_WF& stowf, const int seed_in) @@ -153,6 +150,7 @@ void Init_Com_Orbitals(Stochastic_WF& stowf, K_Vectors& kv) ++tmpnchip; stowf.nchip[ik] = tmpnchip; stowf.chi0[ik].create(tmpnchip, ndim, true); + stowf.nchip_max = std::max(tmpnchip,stowf.nchip_max); const int re = totnpw[ik] % ngroup; int ip = 0, ig0 = 0; @@ -195,7 +193,9 @@ void Init_Com_Orbitals(Stochastic_WF& stowf, K_Vectors& kv) const int ndim = GlobalC::wf.npwx; for (int ik = 0; ik < kv.nks; ++ik) { + stowf.nchip[ik] = ndim; stowf.chi0[ik].create(stowf.nchip[ik], ndim, true); + stowf.nchip_max = ndim; for (int ichi = 0; ichi < kv.ngk[ik]; ++ichi) { stowf.chi0[ik](ichi, ichi) = 1; diff --git a/source/src_pw/sto_wf.h b/source/src_pw/sto_wf.h index 5c5b87216e..b428cd872a 100644 --- a/source/src_pw/sto_wf.h +++ b/source/src_pw/sto_wf.h @@ -23,7 +23,8 @@ class Stochastic_WF ModuleBase::ComplexMatrix* chiortho; // stochastic wavefunctions after in reciprocal space orthogonalized with KS wavefunctions ModuleBase::ComplexMatrix* shchi; // sqrt(f(H))|chi> int nchi; // Total number of stochatic obitals - int *nchip; // The number of stochatic obitals in current process of each k point. + int *nchip; // The number of stochatic orbitals in current process of each k point. + int nchip_max = 0; // Max number of stochastic orbitals among all k points. int nks; //number of k-points int nbands_diag; // number of bands obtained from diagonalization diff --git a/tests/deepks/CASES b/tests/deepks/CASES index 1c897cc739..4b299999a7 100644 --- a/tests/deepks/CASES +++ b/tests/deepks/CASES @@ -1,6 +1,6 @@ -601_PW_deepks_s_H2O -601_PW_deepks_p_H2O -601_PW_deepks_d_H2O +#601_PW_deepks_s_H2O +#601_PW_deepks_p_H2O +#601_PW_deepks_d_H2O 602_NO_deepks_d_H2O_scf_lda2pbe 603_NO_deepks_H2O_multik 603_NO_deepks_CH4 diff --git a/tests/integrate/101_PW_15_lowz/INPUT b/tests/integrate/101_PW_15_lowz/INPUT new file mode 100644 index 0000000000..366f0c663c --- /dev/null +++ b/tests/integrate/101_PW_15_lowz/INPUT @@ -0,0 +1,34 @@ +INPUT_PARAMETERS +#Parameters (1.General) +suffix autotest +calculation scf +ntype 1 +nbands 6 +symmetry 1 +pseudo_dir ../tools/PP_ORB/ +pseudo_type upf201 +dft_functional scan + +#Parameters (2.Iteration) +ecutwfc 20 +scf_thr 1e-9 +scf_nmax 2 + + +#Parameters (3.Basis) +basis_type pw + +#Parameters (4.Smearing) +smearing_method gauss +smearing_sigma 0.002 + +#Parameters (5.Mixing) +mixing_type pulay +mixing_beta 0.7 + +nx 24 +ny 24 +nz 3 +pw_seed 1 + +test_skip_ewald 1 diff --git a/tests/integrate/185_PW_SDFT_5D10S_METHD2/KPT b/tests/integrate/101_PW_15_lowz/KPT similarity index 100% rename from tests/integrate/185_PW_SDFT_5D10S_METHD2/KPT rename to tests/integrate/101_PW_15_lowz/KPT diff --git a/tests/integrate/101_PW_15_lowz/STRU b/tests/integrate/101_PW_15_lowz/STRU new file mode 100644 index 0000000000..0dabfb85ad --- /dev/null +++ b/tests/integrate/101_PW_15_lowz/STRU @@ -0,0 +1,19 @@ +ATOMIC_SPECIES +Si 14 Si_ONCV_PBE-1.0.upf + +LATTICE_CONSTANT +10.2 // add lattice constant + +LATTICE_VECTORS +0.5 0.5 0.0 +0.5 0.0 0.5 +0.0 0.5 0.5 + +ATOMIC_POSITIONS +Direct + +Si // Element type +0.0 // magnetism +2 +0.00 0.00 0.00 1 1 1 +0.25 0.25 0.25 1 1 1 diff --git a/tests/integrate/101_PW_15_lowz/jd b/tests/integrate/101_PW_15_lowz/jd new file mode 100644 index 0000000000..63b443a549 --- /dev/null +++ b/tests/integrate/101_PW_15_lowz/jd @@ -0,0 +1 @@ +test SG15 pseudopotential, symmetry=on, nz is 3 which less than default MPI_threads 4, ewald calculation is skipped in this case diff --git a/tests/integrate/101_PW_15_lowz/result.ref b/tests/integrate/101_PW_15_lowz/result.ref new file mode 100644 index 0000000000..bd7d81bd3f --- /dev/null +++ b/tests/integrate/101_PW_15_lowz/result.ref @@ -0,0 +1,3 @@ +etotref -0.03063241935806423 +etotperatomref -0.0153162097 +totaltimeref diff --git a/tests/integrate/115_PW_sol_H2O/INPUT b/tests/integrate/115_PW_sol_H2O/INPUT index 27965a4fc9..bfde82119a 100644 --- a/tests/integrate/115_PW_sol_H2O/INPUT +++ b/tests/integrate/115_PW_sol_H2O/INPUT @@ -6,6 +6,7 @@ ntype 2 nbands 20 calculation scf basis_type pw +cal_force 1 #Parameters (Accuracy) ecutwfc 20 diff --git a/tests/integrate/115_PW_sol_H2O/result.ref b/tests/integrate/115_PW_sol_H2O/result.ref index bfb309dd09..ee7466b218 100644 --- a/tests/integrate/115_PW_sol_H2O/result.ref +++ b/tests/integrate/115_PW_sol_H2O/result.ref @@ -1,5 +1,6 @@ -etotref -443.1237068197200 +etotref -443.1237068197164604 etotperatomref -147.7079022732 -esolelref -1.02249508527 -esolcavref +0.0325034001929 -totaltimeref 10.112 +totalforceref 16.865518 +esolelref -1.02249508526 +esolcavref +0.0325034001928 +totaltimeref 44.58741 diff --git a/tests/integrate/170_PW_MD_2O/result.ref b/tests/integrate/170_PW_MD_2O/result.ref index 803dfee9c6..f91c08a25e 100644 --- a/tests/integrate/170_PW_MD_2O/result.ref +++ b/tests/integrate/170_PW_MD_2O/result.ref @@ -1,5 +1,5 @@ -etotref -211.7989767495471 -etotperatomref -105.8994883748 -totalforceref 0.673488 -totalstressref 387.295738 +etotref -211.7989767457971 +etotperatomref -105.8994883729 +totalforceref 0.673564 +totalstressref 387.288753 totaltimeref +0.40399 diff --git a/tests/integrate/181_PW_SDFT_5D10S/result.ref b/tests/integrate/181_PW_SDFT_5D10S/result.ref index f2d61f0a2a..8c977b27d6 100644 --- a/tests/integrate/181_PW_SDFT_5D10S/result.ref +++ b/tests/integrate/181_PW_SDFT_5D10S/result.ref @@ -1,5 +1,5 @@ -etotref -321.3205422051483993 -etotperatomref -160.6602711026 -totalforceref 4.120026 -totalstressref 2048.414311 -totaltimeref +0.57339 +etotref -321.3205436122449896 +etotperatomref -160.6602718061 +totalforceref 4.120030 +totalstressref 2048.414648 +totaltimeref +0.88273 diff --git a/tests/integrate/183_PW_MD_SDFT_5D10S/result.ref b/tests/integrate/183_PW_MD_SDFT_5D10S/result.ref index 09d28106f9..2f687b8bea 100644 --- a/tests/integrate/183_PW_MD_SDFT_5D10S/result.ref +++ b/tests/integrate/183_PW_MD_SDFT_5D10S/result.ref @@ -1,5 +1,5 @@ -etotref -321.3172254412079 -etotperatomref -160.6586127206 -totalforceref 4.252396 -totalstressref 2050.525310 -totaltimeref +0.97192 +etotref -321.3172326953681 +etotperatomref -160.6586163477 +totalforceref 4.252426 +totalstressref 2050.529180 +totaltimeref +1.5481 diff --git a/tests/integrate/184_PW_BNDKPAR_SDFT_MALL/result.ref b/tests/integrate/184_PW_BNDKPAR_SDFT_MALL/result.ref index 4ca0a2e32c..ff2099decf 100644 --- a/tests/integrate/184_PW_BNDKPAR_SDFT_MALL/result.ref +++ b/tests/integrate/184_PW_BNDKPAR_SDFT_MALL/result.ref @@ -1,5 +1,5 @@ -etotref -103.9856590797226943 -etotperatomref -51.9928295399 -totalforceref 197.979934 -totalstressref 257668.767204 -totaltimeref +4.74845 +etotref -103.9856591181504513 +etotperatomref -51.9928295591 +totalforceref 197.979930 +totalstressref 257668.766684 +totaltimeref +5.34573 diff --git a/tests/integrate/184_PW_BNDPAR_SDFT_5D10S/result.ref b/tests/integrate/184_PW_BNDPAR_SDFT_5D10S/result.ref index f91c9edf11..334f98129d 100644 --- a/tests/integrate/184_PW_BNDPAR_SDFT_5D10S/result.ref +++ b/tests/integrate/184_PW_BNDPAR_SDFT_5D10S/result.ref @@ -1,5 +1,5 @@ -etotref -323.3085526932184166 -etotperatomref -161.6542763466 -totalforceref 5.008278 -totalstressref 1832.775736 -totaltimeref +0.40613 +etotref -323.3085579669327672 +etotperatomref -161.6542789835 +totalforceref 5.008270 +totalstressref 1832.776628 +totaltimeref +0.76110 diff --git a/tests/integrate/185_PW_SDFT_5D10S_METHD2/INPUT b/tests/integrate/185_PW_SDFT_10D10S_METHD2/INPUT similarity index 90% rename from tests/integrate/185_PW_SDFT_5D10S_METHD2/INPUT rename to tests/integrate/185_PW_SDFT_10D10S_METHD2/INPUT index 74f9228260..29efc352a8 100644 --- a/tests/integrate/185_PW_SDFT_5D10S_METHD2/INPUT +++ b/tests/integrate/185_PW_SDFT_10D10S_METHD2/INPUT @@ -7,12 +7,13 @@ ntype 1 symmetry 0 pseudo_dir ../tools/PP_ORB/ -nbands 5 +nbands 10 nbands_sto 10 nche_sto 120 seed_sto 20000 -kpar 1 +kpar 2 +bndpar 2 cal_force 1 cal_stress 1 diff --git a/tests/integrate/185_PW_SDFT_10D10S_METHD2/KPT b/tests/integrate/185_PW_SDFT_10D10S_METHD2/KPT new file mode 100644 index 0000000000..4fd38968a0 --- /dev/null +++ b/tests/integrate/185_PW_SDFT_10D10S_METHD2/KPT @@ -0,0 +1,4 @@ +K_POINTS +0 +Gamma +2 2 1 0 0 0 diff --git a/tests/integrate/185_PW_SDFT_5D10S_METHD2/README b/tests/integrate/185_PW_SDFT_10D10S_METHD2/README similarity index 72% rename from tests/integrate/185_PW_SDFT_5D10S_METHD2/README rename to tests/integrate/185_PW_SDFT_10D10S_METHD2/README index 6ab27d84c9..b203b51c21 100644 --- a/tests/integrate/185_PW_SDFT_5D10S_METHD2/README +++ b/tests/integrate/185_PW_SDFT_10D10S_METHD2/README @@ -2,7 +2,7 @@ This test for: *SDFT *Si *kpoints 1*1*1 -*10 stochastic orbitals + 5 KS orbitals +*10 stochastic orbitals + 10 KS orbitals *mixing_type broyden *mixing_beta 0.4 *seed_sto > 0 diff --git a/tests/integrate/185_PW_SDFT_5D10S_METHD2/STRU b/tests/integrate/185_PW_SDFT_10D10S_METHD2/STRU similarity index 100% rename from tests/integrate/185_PW_SDFT_5D10S_METHD2/STRU rename to tests/integrate/185_PW_SDFT_10D10S_METHD2/STRU diff --git a/tests/integrate/185_PW_SDFT_10D10S_METHD2/jd b/tests/integrate/185_PW_SDFT_10D10S_METHD2/jd new file mode 100644 index 0000000000..040f7576ef --- /dev/null +++ b/tests/integrate/185_PW_SDFT_10D10S_METHD2/jd @@ -0,0 +1 @@ +test method_sto = 2 SDFT with 10 KS orbitals and 10 stochastic orbitals, 1*1*1 kpoint, 20000 seed_sto(must use 4 cores) diff --git a/tests/integrate/185_PW_SDFT_10D10S_METHD2/result.ref b/tests/integrate/185_PW_SDFT_10D10S_METHD2/result.ref new file mode 100644 index 0000000000..2956d2316f --- /dev/null +++ b/tests/integrate/185_PW_SDFT_10D10S_METHD2/result.ref @@ -0,0 +1,5 @@ +etotref -323.9139593248294204 +etotperatomref -161.9569796624 +totalforceref 1.020878 +totalstressref 1751.314860 +totaltimeref +1.57183 diff --git a/tests/integrate/185_PW_SDFT_10S_METHD2/INPUT b/tests/integrate/185_PW_SDFT_10S_METHD2/INPUT index 4640995a26..f69d26efe1 100644 --- a/tests/integrate/185_PW_SDFT_10S_METHD2/INPUT +++ b/tests/integrate/185_PW_SDFT_10S_METHD2/INPUT @@ -12,7 +12,7 @@ nbands_sto 10 nche_sto 120 seed_sto 20000 -kpar 1 +bndpar 2 cal_force 1 cal_stress 1 diff --git a/tests/integrate/185_PW_SDFT_10S_METHD2/KPT b/tests/integrate/185_PW_SDFT_10S_METHD2/KPT index c289c0158a..e769af7638 100644 --- a/tests/integrate/185_PW_SDFT_10S_METHD2/KPT +++ b/tests/integrate/185_PW_SDFT_10S_METHD2/KPT @@ -1,4 +1,4 @@ K_POINTS 0 Gamma -1 1 1 0 0 0 +2 1 1 0 0 0 diff --git a/tests/integrate/185_PW_SDFT_10S_METHD2/result.ref b/tests/integrate/185_PW_SDFT_10S_METHD2/result.ref index 8d148a1613..dd4588b102 100644 --- a/tests/integrate/185_PW_SDFT_10S_METHD2/result.ref +++ b/tests/integrate/185_PW_SDFT_10S_METHD2/result.ref @@ -1,5 +1,5 @@ -etotref -325.9369010598427394 -etotperatomref -162.9684505299 -totalforceref 5.962426 -totalstressref 2116.954952 -totaltimeref +0.36878 +etotref -323.8395527709268436 +etotperatomref -161.9197763855 +totalforceref 8.695216 +totalstressref 2001.303703 +totaltimeref +0.78645 diff --git a/tests/integrate/185_PW_SDFT_5D10S_METHD2/jd b/tests/integrate/185_PW_SDFT_5D10S_METHD2/jd deleted file mode 100644 index bb3a3e9dc9..0000000000 --- a/tests/integrate/185_PW_SDFT_5D10S_METHD2/jd +++ /dev/null @@ -1 +0,0 @@ -test method_sto = 2 SDFT with 5 KS orbitals and 10 stochastic orbitals, 1*1*1 kpoint, 20000 seed_sto(must use 4 cores) diff --git a/tests/integrate/185_PW_SDFT_5D10S_METHD2/result.ref b/tests/integrate/185_PW_SDFT_5D10S_METHD2/result.ref deleted file mode 100644 index dad57f1876..0000000000 --- a/tests/integrate/185_PW_SDFT_5D10S_METHD2/result.ref +++ /dev/null @@ -1,5 +0,0 @@ -etotref -321.3205422051494793 -etotperatomref -160.6602711026 -totalforceref 4.120026 -totalstressref 2048.414311 -totaltimeref +0.33989 diff --git a/tests/integrate/186_PW_SDOS_10D10S/INPUT b/tests/integrate/186_PW_SDOS_10D10S/INPUT index 097b60d214..0556037a4c 100644 --- a/tests/integrate/186_PW_SDOS_10D10S/INPUT +++ b/tests/integrate/186_PW_SDOS_10D10S/INPUT @@ -2,6 +2,7 @@ INPUT_PARAMETERS #Parameters (1.General) suffix autotest calculation sto-scf +method_sto 2 ntype 1 nbands 10 nbands_sto 10 @@ -38,4 +39,4 @@ dos_emax_ev 100 dos_edelta_ev 0.1 dos_sigma 4 dos_nche 240 - +npart_sto 2 diff --git a/tests/integrate/186_PW_SDOS_MALL/INPUT b/tests/integrate/186_PW_SDOS_MALL/INPUT index 73aedfef25..e4164233e2 100644 --- a/tests/integrate/186_PW_SDOS_MALL/INPUT +++ b/tests/integrate/186_PW_SDOS_MALL/INPUT @@ -2,6 +2,7 @@ INPUT_PARAMETERS #Parameters (1.General) suffix autotest calculation sto-scf +method_sto 1 ntype 1 nbands 10 nbands_sto 0 diff --git a/tests/integrate/186_PW_SKG_10D10S/INPUT b/tests/integrate/186_PW_SKG_10D10S/INPUT index 287cc88a14..8bfc714e17 100644 --- a/tests/integrate/186_PW_SKG_10D10S/INPUT +++ b/tests/integrate/186_PW_SKG_10D10S/INPUT @@ -2,6 +2,7 @@ INPUT_PARAMETERS #Parameters (1.General) suffix autotest calculation sto-scf +method_sto 2 ntype 1 nbands 10 nbands_sto 10 diff --git a/tests/integrate/186_PW_SKG_ALL/INPUT b/tests/integrate/186_PW_SKG_ALL/INPUT index 923dce8f59..4ce0c7ddb2 100644 --- a/tests/integrate/186_PW_SKG_ALL/INPUT +++ b/tests/integrate/186_PW_SKG_ALL/INPUT @@ -2,6 +2,7 @@ INPUT_PARAMETERS #Parameters (1.General) suffix autotest calculation sto-scf +method_sto 1 ntype 1 nbands 0 nbands_sto 0 diff --git a/tests/integrate/215_NO_sol_H2O/INPUT b/tests/integrate/215_NO_sol_H2O/INPUT index 04e6d72a2d..69f3abb73d 100644 --- a/tests/integrate/215_NO_sol_H2O/INPUT +++ b/tests/integrate/215_NO_sol_H2O/INPUT @@ -7,6 +7,7 @@ ntype 2 nbands 20 calculation scf basis_type pw +cal_force 1 #Parameters (Accuracy) ecutwfc 20 diff --git a/tests/integrate/215_NO_sol_H2O/result.ref b/tests/integrate/215_NO_sol_H2O/result.ref index f0485e42a3..bf90f1d7fb 100644 --- a/tests/integrate/215_NO_sol_H2O/result.ref +++ b/tests/integrate/215_NO_sol_H2O/result.ref @@ -1,5 +1,6 @@ -etotref -443.1237068197200 +etotref -443.1237068197164604 etotperatomref -147.7079022732 -esolelref -1.02249508527 -esolcavref +0.0325034001929 -totaltimeref 10.042 +totalforceref 16.865518 +esolelref -1.02249508526 +esolcavref +0.0325034001928 +totaltimeref 43.79188 diff --git a/tests/integrate/270_NO_MD_2O/result.ref b/tests/integrate/270_NO_MD_2O/result.ref index 362736b507..4b8bc71414 100644 --- a/tests/integrate/270_NO_MD_2O/result.ref +++ b/tests/integrate/270_NO_MD_2O/result.ref @@ -1,5 +1,5 @@ -etotref -211.5879950287044 -etotperatomref -105.7939975144 -totalforceref 1.954326 -totalstressref 595.789229 +etotref -211.5879950293724 +etotperatomref -105.7939975147 +totalforceref 1.954342 +totalstressref 595.789919 totaltimeref +5.996 diff --git a/tests/integrate/501_NO_neighboring_GaAs512/INPUT b/tests/integrate/501_NO_neighboring_GaAs512/INPUT index 40c9baad2f..79321556fb 100644 --- a/tests/integrate/501_NO_neighboring_GaAs512/INPUT +++ b/tests/integrate/501_NO_neighboring_GaAs512/INPUT @@ -7,7 +7,7 @@ ntype 2 pseudo_type upf201 gamma_only 0 -calculation scf +calculation test_neighbour symmetry 0 #test_force 1 @@ -25,13 +25,10 @@ scf_nmax 100 #Parameters (LCAO) basis_type lcao -ks_solver genelpa chg_extrap second-order out_dm 0 -pw_diag_thr 0.00001 mixing_type pulay mixing_beta 0.4 mixing_ndim 5 -test_just_neighbor 1 diff --git a/tests/integrate/CASES b/tests/integrate/CASES index 6b833e243c..8c78e47153 100644 --- a/tests/integrate/CASES +++ b/tests/integrate/CASES @@ -6,6 +6,7 @@ 101_PW_upf201_Al_pseudopots 101_PW_upf201_pseudopots 101_PW_VW_pseudopots +101_PW_15_lowz 102_PW_DA_davidson 103_PW_15_CS_CF 103_PW_15_CS_CF_bspline @@ -87,7 +88,7 @@ 184_PW_KPAR_SDFT_ALL 184_PW_BNDKPAR_SDFT_MALL 185_PW_SDFT_10S_METHD2 -185_PW_SDFT_5D10S_METHD2 +185_PW_SDFT_10D10S_METHD2 186_PW_SKG_ALL 186_PW_SKG_10D10S 186_PW_KG_100 diff --git a/tests/integrate/tools/catch_properties.sh b/tests/integrate/tools/catch_properties.sh index 5971afd3c4..9d11bc46dd 100755 --- a/tests/integrate/tools/catch_properties.sh +++ b/tests/integrate/tools/catch_properties.sh @@ -46,11 +46,7 @@ gamma_only=`grep gamma_only INPUT | awk '{print $2}' | sed s/[[:space:]]//g` imp_sol=`grep imp_sol INPUT | awk '{print $2}' | sed s/[[:space:]]//g` #echo $running_path base=`grep -En '(^|[[:space:]])basis_type($|[[:space:]])' INPUT | awk '{print $2}' | sed s/[[:space:]]//g` -if [ $base == "pw" ]; then word="plane_wave_line" -else -word="lcao_line" -fi -#echo $word +word="driver_line" test -e $1 && rm $1 #-------------------------------------------- # if NOT non-self-consistent calculations @@ -66,7 +62,7 @@ fi #echo $etot #echo "hasforce:"$has_force -if ! test -z "$has_force" && [ $has_force -eq 1 ]; then +if ! test -z "$has_force" && [ $has_force == 1 ]; then nn3=`echo "$natom + 4" |bc` #nn1=`echo "$natom + 1" |bc` #nn5=`echo "$natom + 6" |bc` @@ -79,7 +75,7 @@ fi #echo $total_force #echo "has_stress:"$has_stress -if ! test -z "$has_stress" && [ $has_stress -eq 1 ]; then +if ! test -z "$has_stress" && [ $has_stress == 1 ]; then #grep -A6 "TOTAL-STRESS" $running_path|sed '1,4d'|sed '4,8d' >stress.txt grep -A6 "TOTAL-STRESS" $running_path| awk 'NF==3' | tail -3> stress.txt total_stress=`sum_file stress.txt` @@ -89,14 +85,14 @@ fi #echo $total_stress -#if ! test -z "$has_charge" && [ $has_charge -eq 1 ]; then +#if ! test -z "$has_charge" && [ $has_charge == 1 ]; then # total_charge=`sum_file OUT.autotest/SPIN1_CHG` # echo "totalchargeref $total_charge" >>$1 #fi #echo $total_charge -if ! test -z "$has_dos" && [ $has_dos -eq 1 ]; then +if ! test -z "$has_dos" && [ $has_dos == 1 ]; then total_dos=`cat OUT.autotest/DOS1_smearing.dat | awk 'END {print}' | awk '{print $3}'` echo "totaldosref $total_dos" >> $1 fi @@ -104,7 +100,7 @@ fi # echo "totaldossmearing $smearing_dos" >> $1 #echo Onsager coefficiency -if ! test -z "$has_cond" && [ $has_cond -eq 1 ]; then +if ! test -z "$has_cond" && [ $has_cond == 1 ]; then onref=refOnsager.txt oncal=Onsager.txt python3 ../tools/CompareFile.py $onref $oncal 2 @@ -114,13 +110,13 @@ fi #echo total_dos #echo $has_band -if ! test -z "$has_band" && [ $has_band -eq 1 ]; then +if ! test -z "$has_band" && [ $has_band == 1 ]; then total_band=`sum_file OUT.autotest/BANDS_1.dat` echo "totalbandref $total_band" >>$1 fi #echo $has_hs -if ! test -z "$has_hs" && [ $has_hs -eq 1 ]; then - if ! test -z "$gamma_only" && [ $gamma_only -eq 1 ]; then +if ! test -z "$has_hs" && [ $has_hs == 1 ]; then + if ! test -z "$gamma_only" && [ $gamma_only == 1 ]; then href=data-0-H.ref hcal=OUT.autotest/data-0-H sref=data-0-H.ref @@ -139,7 +135,7 @@ if ! test -z "$has_hs" && [ $has_hs -eq 1 ]; then fi #echo $has_hs2 -if ! test -z "$has_hs2" && [ $has_hs2 -eq 1 ]; then +if ! test -z "$has_hs2" && [ $has_hs2 == 1 ]; then python3 ../tools/CompareFile.py data-HR-sparse_SPIN0.csr.ref OUT.autotest/data-HR-sparse_SPIN0.csr 8 echo "CompareHR_pass $?" >>$1 python3 ../tools/CompareFile.py data-SR-sparse_SPIN0.csr.ref OUT.autotest/data-SR-sparse_SPIN0.csr 8 @@ -147,7 +143,7 @@ if ! test -z "$has_hs2" && [ $has_hs2 -eq 1 ]; then fi # echo "$has_wfc_r" ## test out_wfc_r > 0 -if ! test -z "$has_wfc_r" && [ $has_wfc_r -eq 1 ]; then +if ! test -z "$has_wfc_r" && [ $has_wfc_r == 1 ]; then if [[ ! -f OUT.autotest/running_scf.log ]];then echo "Can't find file OUT.autotest/running_scf.log" exit 1 @@ -168,7 +164,7 @@ if ! test -z "$has_wfc_r" && [ $has_wfc_r -eq 1 ]; then fi # echo "$has_wfc_pw" ## test out_wfc_pw > 0 -if ! test -z "$has_wfc_pw" && [ $has_wfc_pw -eq 1 ]; then +if ! test -z "$has_wfc_pw" && [ $has_wfc_pw == 1 ]; then if [[ ! -f OUT.autotest/WAVEFUNC1.txt ]];then echo "Can't find file OUT.autotest/WAVEFUNC1.txt" exit 1 @@ -189,8 +185,8 @@ if ! test -z "$has_wfc_pw" && [ $has_wfc_pw -eq 1 ]; then fi # echo "$has_lowf" ## test out_wfc_lcao > 0 -if ! test -z "$has_lowf" && [ $has_lowf -eq 1 ]; then - if ! test -z "$gamma_only" && [ $gamma_only -eq 1 ]; then +if ! test -z "$has_lowf" && [ $has_lowf == 1 ]; then + if ! test -z "$gamma_only" && [ $gamma_only == 1 ]; then wfc_cal=OUT.autotest/LOWF_GAMMA_S1.dat wfc_ref=LOWF_GAMMA_S1.dat.ref else @@ -214,7 +210,7 @@ if ! test -z "$has_lowf" && [ $has_lowf -eq 1 ]; then echo "Compare_wfc_lcao_pass $?" >>$1 fi -if ! test -z "$out_dm" && [ $out_dm -eq 1 ]; then +if ! test -z "$out_dm" && [ $out_dm == 1 ]; then dmfile=`ls OUT.autotest/ | grep "^SPIN1_DM"` if test -z "$dmfile"; then echo "Can't find DM files" @@ -241,7 +237,7 @@ if ! test -z "$out_dm" && [ $out_dm -eq 1 ]; then fi fi -if ! test -z "$out_mul" && [ $out_mul -eq 1 ]; then +if ! test -z "$out_mul" && [ $out_mul == 1 ]; then python3 ../tools/CompareFile.py mulliken.txt.ref OUT.autotest/mulliken.txt 8 echo "Compare_mulliken_pass $?" >>$1 fi @@ -287,7 +283,7 @@ if [ $calculation == "istate" ]; then fi fi -if ! test -z "$imp_sol" && [ $imp_sol -eq 1 ]; then +if ! test -z "$imp_sol" && [ $imp_sol == 1 ]; then esol_el=`grep E_sol_el $running_path | awk '{print $3}'` esol_cav=`grep E_sol_cav $running_path | awk '{print $3}'` echo "esolelref $esol_el" >>$1 @@ -298,14 +294,14 @@ fi ttot=`grep $word $running_path | awk '{print $3}'` echo "totaltimeref $ttot" >>$1 -if ! test -z "$deepks_out_labels" && [ $deepks_out_labels -eq 1 ]; then +if ! test -z "$deepks_out_labels" && [ $deepks_out_labels == 1 ]; then sed '/n_des/d' descriptor.dat > des_tmp.txt total_des=`sum_file des_tmp.txt 5` rm des_tmp.txt echo "totaldes $total_des" >>$1 fi -if ! test -z "$deepks_bandgap" && [ $deepks_bandgap -eq 1 ]; then +if ! test -z "$deepks_bandgap" && [ $deepks_bandgap == 1 ]; then odelta=`python3 get_odelta.py` echo "odelta $odelta" >>$1 oprec=`python3 get_oprec.py`