diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 18b0b1a7a8..099524ba6a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -294,14 +294,14 @@ jobs: OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 10_others - -# - name: 17_DS_DFTU Test -# env: -# GTEST_COLOR: 'yes' -# OMP_NUM_THREADS: '2' -# run: | -# ctest --test-dir build -V --timeout 1700 -R 17_DS_DFTU - + + - name: 17_DS_DFTU Test + env: + GTEST_COLOR: 'yes' + OMP_NUM_THREADS: '2' + run: | + ctest --test-dir build -V --timeout 1700 -R 17_DS_DFTU + - name: Other Unittests env: GTEST_COLOR: 'yes' diff --git a/AGENTS.md b/AGENTS.md index e95e177691..dbdbaeb7f4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,106 +1,245 @@ -# ABACUS Agent Instructions - -This file is the entry point for AI agents, automated review tools, and human -contributors who want the short operational version of the ABACUS development -rules. Read the complete governance document before making or reviewing changes: - -- `docs/developers_guide/agent_governance.md` - -## Required Baseline - -- Follow the seven ABACUS coding rules summarized from the project governance: - 1. Do not increase cross-layer control through `GlobalV`, `GlobalC`, or - `PARAM`; pass dependencies explicitly where practical. Migration-neutral - moves must keep the PR-level global dependency budget non-increasing and - explain the remaining global usage. - 2. Do not hide workflow switches in mutable member variables that can be - changed from multiple places. - 3. Keep header dependencies minimal. - 4. Avoid adding `.hpp` implementation headers or propagating them through - other headers unless there is a narrow reason. - 5. Do not add default arguments to existing interfaces; update call sites or - design a clearer extension. - 6. Add focused tests for key features, bug fixes, INPUT behavior changes, - heterogeneous kernels, and core-module refactors. - 7. Keep code compatible with the repository C++11 baseline. -- Use LF line endings for text files. Only `.bat` and `.cmd` files may use CRLF. -- Keep source file additions deterministic: update the relevant `CMakeLists.txt` - or explain why the file is generated or included indirectly. -- INPUT parameter behavior changes must update `docs/parameters.yaml` and - `docs/advanced/input_files/input-main.md`, or the PR must state why no update - is required. -- Report the exact verification performed. Do not claim completion without - fresh test or check output. - -## Repository Map - -- Core C++ implementation lives under `source/`; source additions must be wired - through the relevant `CMakeLists.txt`. -- INPUT parsing and help metadata live under `source/source_io/`; user-facing - INPUT docs live in `docs/parameters.yaml` and - `docs/advanced/input_files/input-main.md`. -- Unit tests are colocated under module `test/` directories such as - `source/source_md/test/`; integration and workflow tests are selected through - CTest labels and patterns. -- Developer and user build/install references live in `docs/quick_start/`, - `docs/advanced/`, `toolchain/`, `Dockerfile.gnu`, `Dockerfile.intel`, and - `Dockerfile.cuda`. - -## Build And Test Entry Points - -- Prefer the repository CMake/CTest flow already used by CI. For focused local - checks, use commands such as `ctest --test-dir build -V -R MODULE_MD` after a - usable build exists. -- For INPUT-related changes, verify both documentation and CLI behavior when an - executable is available: `./build/abacus -h ` and - `./build/abacus --check-input` from a valid case directory. -- For executable identity, record `./build/abacus --version` or the equivalent - installed `abacus --version` command used during verification. -- Reuse existing Docker and toolchain assets. Do not add a new container, - compiler setup, or calculation-task skill unless the PR explicitly requires - and justifies it. - -## Local Runtime Testing - -- Set `OMP_NUM_THREADS=1` for ABACUS runtime, integration, and MPI tests unless - a test explicitly requires another value. -- Run MPI/runtime tests outside restricted sandboxes when process visibility, - sockets, or MPI launch behavior matters. -- Treat OpenMPI `opal_ifinit: socket() failed errno=1` warnings from sandboxed - MPI-linked builds or runs as expected sandbox artifacts; rerun outside the - sandbox before treating them as ABACUS failures. -- Do not relax existing tests or references merely to make a failure pass. - Update references only when the intended behavior changed and the PR explains - why. - -## Review And Exception Flow - -- Mechanical blockers are enforced by hook and CI only for new files, changed - files, or diff-added lines. Historical untouched code is not a default blocker. -- Warnings from CI or AI review require reviewer attention but do not block by - themselves. -- Semantic questions such as module ownership, member-variable workflow state, - test sufficiency, and exception approval require human review. -- Exceptions must be recorded in the PR with reason, scope, risk, and a follow-up - cleanup plan. - -## Local Commands +# AGENTS.md + +This file provides guidance to agentic coding agents working with the ABACUS codebase. + +## Build System + +ABACUS uses CMake as its build system. The main build configuration is in `CMakeLists.txt` at the root. + +### Basic Build Commands ```bash -python3 tools/03_code_analysis/agent_governance_check.py --staged -python3 tools/03_code_analysis/agent_governance_check.py --base upstream/develop --head HEAD --format text -pre-commit run abacus-agent-governance --all-files +# Configure with default options (LCAO enabled, MPI enabled) +cmake -B build + +# Build with specific number of processors +cmake --build build -j${number_of_processors} + +# Install (required before running tests) +cmake --install build ``` -The repository text files have been normalized to LF once. Day-to-day line -ending enforcement should rely on staged/changed-file hooks and CI; rerun the -full mixed-line-ending hook only for intentional repository-wide normalization. +### Common Build Options + +- `-DBUILD_TESTING=ON` - Enable unit tests (required for testing) +- `-DENABLE_LCAO=ON/OFF` - Enable/disable LCAO calculations (default: ON) +- `-DUSE_CUDA=ON` - Enable CUDA support +- `-DUSE_ROCM=ON` - Enable ROCm/HIP support +- `-DUSE_OPENMP=ON/OFF` - Enable OpenMP (default: ON) +- `-DENABLE_COVERAGE=ON` - Enable code coverage (sets Debug build) +- `-DENABLE_ASAN=ON` - Enable AddressSanitizer (sets RelWithDebInfo build) +- `-DCMAKE_BUILD_TYPE=Debug/Release/RelWithDebInfo` - Build type +- `-DENABLE_DEEPKS=ON` - Enable DeePKS functionality +- `-DENABLE_LIBXC=ON` - Enable LibXC functionality +- `-DUSE_ELPA=ON/OFF` - Enable ELPA diagonalization (default: ON) +- `-DENABLE_LIBRI=ON` - Enable EXX with LibRI +- `-DENABLE_PAW=ON` - Enable PAW calculations +- `-DMKLROOT=$MKLROOT` - Use Intel MKL for math libraries + +### Build Variants + +The executable name depends on build configuration: +- `abacus` - LCAO enabled, MPI enabled (default) +- `abacus_pw` - LCAO disabled, MPI enabled +- `abacus_serial` - LCAO enabled, MPI disabled +- `abacus_pw_serial` - LCAO disabled, MPI disabled + +## Testing + +### Unit Tests + +Unit tests use GoogleTest framework and are located in `source/*/test` directories. + +```bash +# Build with unit tests enabled +cmake -B build -DBUILD_TESTING=ON +cmake --build build -j${nproc} +cmake --install build # REQUIRED before running tests + +# Run all tests +cd build +ctest -V + +# Run specific test by name +ctest -R + +# Run tests matching pattern +ctest -R + +# Build specific unit test +cmake --build build -j${nproc} --target ${unit_test_name} +``` + +Unit test executables are located in `build/source/${module_name}/test` (or `test_parallel`, `test_pw` for specialized tests). + +### Integration Tests + +Integration tests are in `tests/integrate/` directory. Each test case is a subdirectory with input files (INPUT, STRU, KPT) and reference results (result.ref). + +```bash +# Run all integration tests +cd tests/integrate +bash Autotest.sh + +# Run specific test case +cd tests/integrate/ +bash ../Single_job.sh + +# Run with custom parameters +bash Autotest.sh -a /path/to/abacus -n 4 -t 0.0000001 + +# Generate reference results for new test +bash Autotest.sh -g -r +``` + +Key Autotest.sh options: +- `-a ` - ABACUS executable path (default: abacus) +- `-n ` - Number of MPI processes (default: 4) +- `-t ` - Energy threshold in eV (default: 0.0000001) +- `-c ` - Check accuracy (default: 8) +- `-g` - Generate reference results +- `-r ` - Test case name regex filter +- `-f ` - Test cases file (default: CASES_CPU.txt) + +## Code Style and Formatting + +### Formatting + +- Use `clang-format` with the `.clang-format` file in root directory +- Based on Microsoft style with customizations +- 4-space indentation, no tabs +- Left-aligned pointers (`int* ptr` not `int *ptr`) +- Sort includes and using declarations + +### Documentation + +- Doxygen comments for documentation (Javadoc style preferred) +- Comment only in `.h` files for Doxygen visibility +- Use `@param` for parameters, `\f$...\f$` for inline formulas + +### Code Conventions + +**Naming:** +- Classes: PascalCase (e.g., `HSolver`, `Matrix`) +- Functions: snake_case (e.g., `solve_hamiltonian`, `calculate_energy`) +- Variables: snake_case (e.g., `num_bands`, `ecutwfc`) +- Constants: UPPER_SNAKE_CASE (e.g., `MAX_ITERATIONS`) +- Private members: trailing underscore (e.g., `num_bands_`) + +**Imports and Includes:** +- System headers first, then project headers +- Use angle brackets for system headers, quotes for project headers +- Group includes: C standard library, C++ standard library, external libraries, internal headers +- Sort includes alphabetically within groups + +**Types:** +- Use `double` for floating-point by default, `float` only when memory is critical +- Use `std::complex` for complex numbers +- Prefer `std::vector` over C-style arrays +- Use `size_t` for sizes and indices +- Use `const` and references where appropriate + +**Error Handling:** +- Use assertions (`assert()`) for internal invariants +- Return error codes or use exceptions for recoverable errors +- Log errors using the existing logging infrastructure +- Validate input parameters at function boundaries + +**Templates:** +- Use templates for generic algorithms and data structures +- Provide explicit instantiations for common types +- Use `template <>` for specializations + +**Memory Management:** +- Use RAII principles with smart pointers (`std::unique_ptr`, `std::shared_ptr`) +- Avoid raw `new`/`delete` when possible +- Follow the Rule of Three/Five for classes managing resources + +**Parallelization:** +- Use MPI for distributed memory parallelization +- Use OpenMP for shared memory parallelization +- Follow existing patterns for communicator splitting +- Be careful with global variables in parallel contexts + +### Module Structure + +The source code is organized into modules under `source/`: + +**Core Infrastructure:** +- `module_base/` - Mathematical library interfaces, data structures, parallelization, utilities +- `module_container/` - Container module for data storage and operations +- `module_parameter/` - Input parameters and global variables + +**Basis Sets:** +- `module_basis/module_pw/` - Plane wave basis +- `module_basis/module_nao/` - Numerical atomic orbital basis +- `module_basis/module_ao/` - Legacy atomic orbital basis + +**Cell and Structure:** +- `module_cell/` - Unit cell definition and operations +- `module_cell/module_neighbor/` - Neighbor finding +- `module_cell/module_symmetry/` - Symmetry operations + +**Electronic Structure:** +- `module_elecstate/` - Electronic state definition and operations +- `module_elecstate/module_charge/` - Charge density calculation and mixing +- `module_elecstate/potentials/` - Potential calculations +- `module_psi/` - Wave function definition and operations + +**Hamiltonians:** +- `module_hamilt_general/` - General Hamiltonian components +- `module_hamilt_pw/` - PW-specific Hamiltonians +- `module_hamilt_lcao/` - LCAO-specific Hamiltonians + +**Solvers and Drivers:** +- `module_hsolver/` - Hamiltonian diagonalization methods +- `module_esolver/` - Task-specific workflow drivers +- `module_md/` - Molecular dynamics +- `module_relax/` - Structural optimization + +**I/O:** +- `module_io/` - INPUT file reading and property output + +## Development Workflow + +### Adding New Features + +1. Read relevant source files first before proposing changes +2. Follow existing code patterns in the module +3. Add unit tests in `source/${module}/test/` using GoogleTest +4. Add integration tests in `tests/integrate/` if needed +5. Update CMakeLists.txt if adding new source files or tests +6. Ensure code follows clang-format style + +### Important Notes + +- Always run `cmake --install build` after building and before running tests +- For PW calculations, set `pw_seed 1` in INPUT file for reproducible tests +- Integration tests should run in < 20 seconds (reduce atoms, k-points, ecutwfc, steps) +- Pseudopotential and orbital files go in `tests/PP_ORB/` +- Use relative paths in INPUT for `pseudo_dir` and `orb_dir` +- The main development branch is `develop`, not `main` or `master` + +### Commit Message Format + +Follow Conventional Commits specification: + +``` +[optional scope]: + +[optional body] + +[optional footer] +``` + +Types: `Feature`, `Fix`, `Docs`, `Style`, `Refactor`, `Perf`, `Test`, `Build`, `CI`, `Revert` + +Example: +``` +Fix(lcao): use correct scalapack interface -## PR Self-Check +`pzgemv_` and `pzgemm_` used `double*` for alpha and beta parameters +but not `complex*`, this would cause error in GNU compiler. -- Confirm the PR body states exact commands run, whether they passed or failed, - and why any expected check could not be run. -- Keep warning rationales concrete. For example, a header include warning can be - acceptable when the header owns a value member that requires the complete type. -- Keep historical-debt notes separate from new deterministic errors introduced - by the PR. +Fix #753. +``` \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 27a8848f4f..3bd31d69f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,9 @@ cmake_minimum_required(VERSION 3.16) +if(POLICY CMP0177) + cmake_policy(SET CMP0177 OLD) +endif() + # Require out-of-source builds file(TO_CMAKE_PATH "${CMAKE_BINARY_DIR}/CMakeLists.txt" LOC_PATH) if(EXISTS "${LOC_PATH}") diff --git a/docs/advanced/input_files/input-main.md b/docs/advanced/input_files/input-main.md index ccfa7048a8..94aa78b935 100644 --- a/docs/advanced/input_files/input-main.md +++ b/docs/advanced/input_files/input-main.md @@ -408,9 +408,6 @@ - [sc\_scf\_thr](#sc_scf_thr) - [sc\_direction\_only](#sc_direction_only) - [sc\_lambda\_strategy](#sc_lambda_strategy) - - [sc\_scan\_lambda\_start](#sc_scan_lambda_start) - - [sc\_scan\_lambda\_end](#sc_scan_lambda_end) - - [sc\_scan\_steps](#sc_scan_steps) - [vdW correction](#vdw-correction) - [vdw\_method](#vdw_method) - [vdw\_d4\_xc](#vdw_d4_xc) @@ -3679,8 +3676,8 @@ - **Type**: Integer - **Description**: Determines whether to calculate the plus U correction, which is especially important for correlated electrons. - - 1: Calculate plus U correction with radius-adjustable localized projections (with parameter onsite_radius). - - 2: Calculate plus U correction using first zeta of NAOs as projections (this is old method for testing). + - 1: Calculate plus U correction with radius-adjustable localized projections (with parameter onsite_radius). Supported for both PW and LCAO basis sets. + - 2: Calculate plus U correction using first zeta of NAOs as projections (this is old method for testing). Only available for LCAO basis. - 0: Do not calculate plus U correction. - **Default**: 0 @@ -3824,46 +3821,20 @@ - **Type**: Boolean - **Availability**: *sc_mag_switch is true* -- **Description**: When true, only the direction of the magnetic moment is constrained to the target direction, while the magnitude is allowed to vary freely. This is useful for studying magnetic anisotropy or when the magnitude of the moment is determined by the electronic structure rather than an external constraint. - - When false (default), both the direction and magnitude of the magnetic moment are constrained to the target values. +- **Description**: When true, only the direction of the magnetic moment is constrained to the target direction, while the magnitude is allowed to vary freely. This is useful for studying magnetic anisotropy or when the magnitude of the moment is determined by the electronic structure rather than an external constraint. When false (default), both the direction and magnitude of the magnetic moment are constrained to the target values. - **Default**: False ### sc_lambda_strategy - **Type**: String - **Availability**: *sc_mag_switch is true* -- **Description**: Lambda update strategy for spin-constrained DFT: - - bfgs: BFGS quasi-Newton method - - linear_response: linear response (Scheme B) - - augmented_lagrangian: augmented Lagrangian (Scheme C) +- **Description**: Lambda update strategy for spin-constrained DFT. Available options are: + - bfgs: BFGS quasi-Newton method (default, robust and well-tested) + - linear_response: linear response method (Scheme B) + - augmented_lagrangian: augmented Lagrangian method (Scheme C) - hybrid_delayed: hybrid delayed update (Scheme D) - - linear_scan: linear sweep of lambda for testing magnetic moment response - **Default**: bfgs -### sc_scan_lambda_start - -- **Type**: Float -- **Availability**: *sc_lambda_strategy is linear_scan* -- **Description**: Starting lambda value for linear_scan strategy. Only used when sc_lambda_strategy=linear_scan. -- **Default**: 0.0 -- **Unit**: eV/uB - -### sc_scan_lambda_end - -- **Type**: Float -- **Availability**: *sc_lambda_strategy is linear_scan* -- **Description**: Ending lambda value for linear_scan strategy. Only used when sc_lambda_strategy=linear_scan. -- **Default**: 1.0 -- **Unit**: eV/uB - -### sc_scan_steps - -- **Type**: Integer -- **Availability**: *sc_lambda_strategy is linear_scan* -- **Description**: Number of lambda values to scan. Only used when sc_lambda_strategy=linear_scan. -- **Default**: 20 - [back to top](#full-list-of-input-keywords) ## vdW correction diff --git a/docs/advanced/scf/construct_H.md b/docs/advanced/scf/construct_H.md index 69a22ad80e..3100b93487 100644 --- a/docs/advanced/scf/construct_H.md +++ b/docs/advanced/scf/construct_H.md @@ -77,6 +77,6 @@ Here, we use a simple [example calculation](https://github.com/deepmodeling/abac Conventional functionals, e.g., L(S)DA and GGAs, encounter failures in strongly correlated systems, usually characterized by partially filled *d*/*f* shells. These include transition metals (TM) and their oxides, rare-earth compounds, and actinides, to name a few, where L(S)DA/GGAs typically yield quantitatively or even qualitatively wrong results. To address this failure, an efficient and successful method named DFT+*U*, which inherits the efficiency of L(S)DA/GGA but gains the strength of the Hubbard model in describing the physics of strongly correlatedsystems, has been developed. -Now the DFT+*U* method is accessible in ABACUS. The details of the DFT+*U* method could be found in this [paper](https://doi.org/10.1063/5.0090122). It should be noted that the DFT+*U* works only within the NAO scheme, which means that the value of the keyword `basis_type` must be lcao when DFT+*U* is called. To turn on DFT+*U*, users need to set the value of the `dft_plus_u` keyword in the `INPUT` file to be 1. All relevant parmeters used in DFT+*U* calculations are listed in the [DFT+*U* correction](../input_files/input-main.md#dftu-correction) part of the [list of keywords](../input_files/input-main.md). +Now the DFT+*U* method is accessible in ABACUS. The details of the DFT+*U* method could be found in this [paper](https://doi.org/10.1063/5.0090122). DFT+*U* is supported for both LCAO (`basis_type = lcao`) and plane-wave (`basis_type = pw`) basis sets. For the PW basis, `dft_plus_u = 1` (radius-adjustable localized projections) is supported with `nspin = 1`, `2`, or `4`. For the LCAO basis, both `dft_plus_u = 1` and `dft_plus_u = 2` are available. To turn on DFT+*U*, users need to set the value of the `dft_plus_u` keyword in the `INPUT` file to be 1. All relevant parameters used in DFT+*U* calculations are listed in the [DFT+*U* correction](../input_files/input-main.md#dftu-correction) part of the [list of keywords](../input_files/input-main.md). Examples of DFT+*U* calculations are provided in this [directory](https://github.com/deepmodeling/abacus-develop/tree/develop/examples/dft_plus_u). diff --git a/docs/advanced/scf/spin.md b/docs/advanced/scf/spin.md index 1749db156d..10c783d868 100644 --- a/docs/advanced/scf/spin.md +++ b/docs/advanced/scf/spin.md @@ -28,6 +28,224 @@ If **"ocp=1"** and **"ocp_set"** is set in INPUT file, the occupations of states 2. **"nupdown"** If **"nupdown"** is set to non-zero, number of spin-up and spin-down electrons will be fixed, and Fermi energy level will split to E_Fermi_up and E_Fermi_down. By the way, total magnetization will also be fixed, and will be the value of **"nupdown"**. +## DeltaSpin (Spin-Constrained DFT) + +DeltaSpin is a spin-constrained DFT method that allows users to constrain the magnetic moments on individual atoms to target values during self-consistent field (SCF) calculations. This is useful for studying magnetic excitations, non-collinear magnetic structures, and systems where the magnetic ground state is not known a priori. + +The theoretical foundation and implementation details can be found in: + +- Cai Z, Wang K, Xu Y, et al., "A self-adaptive first-principles approach for magnetic excited states," *Quantum Frontiers* 2.1 (2023): 21. [DOI: 10.1007/s44214-023-00050-z](https://doi.org/10.1007/s44214-023-00050-z) +- Zheng D, Peng X, Huang Y, et al., "Integrating deep-learning-based magnetic model and non-collinear spin-constrained method: methodology, implementation and application," *npj Computational Materials* (2026). + +### Enabling DeltaSpin + +Set `sc_mag_switch 1` in the INPUT file. DeltaSpin is supported for both PW (`basis_type = pw`) and LCAO (`basis_type = lcao`) basis sets, with `nspin = 2` (collinear) or `nspin = 4` (non-collinear). + +### Specifying Target Magnetic Moments in STRU + +Target magnetic moments and constraint flags are specified per atom in the `ATOMIC_POSITIONS` section of the STRU file, using the `mag` (or `magmom`), `sc`, `lambda`, `angle1`, and `angle2` keywords after the atomic coordinates. + +#### Collinear (nspin=2) + +For collinear spin, only the z-component of the magnetic moment is constrained: + +``` +ATOMIC_POSITIONS +Direct + +Fe +0.0 +2 +0.00 0.00 0.00 mag 2.0 sc 1 +0.51 0.51 0.51 mag -2.0 sc 1 +``` + +- `mag 2.0`: target magnetic moment of 2.0 $\mu_B$ along z-axis +- `sc 1`: constrain the z-component (1 = constrained, 0 = unconstrained) + +#### Non-collinear (nspin=4), vector form + +For non-collinear spin, specify the magnetic moment as a vector (mx, my, mz): + +``` +ATOMIC_POSITIONS +Direct + +Fe +0.0 +2 +0.00 0.00 0.00 mag 2.0 0.0 0.0 sc 1 1 1 +0.51 0.51 0.51 mag 0.0 0.0 -2.0 sc 1 1 1 +``` + +- `mag 2.0 0.0 0.0`: target moment vector in Cartesian coordinates ($\mu_B$) +- `sc 1 1 1`: constrain x, y, z components respectively + +#### Non-collinear (nspin=4), angle form + +Alternatively, use `angle1` (polar angle $\theta$) and `angle2` (azimuthal angle $\phi$) in degrees to specify the direction: + +``` +0.00 0.00 0.00 mag 2.0 angle1 0 angle2 0 sc 1 1 1 +0.51 0.51 0.51 mag 2.0 angle1 180 angle2 0 sc 1 1 1 +``` + +The Cartesian components are computed as: +- $m_z = |\mathbf{m}| \cos\theta$ +- $m_x = |\mathbf{m}| \sin\theta \cos\phi$ +- $m_y = |\mathbf{m}| \sin\theta \sin\phi$ + +#### Providing initial Lagrange multipliers + +Initial lambda values (in eV/$\mu_B$) can be provided via the `lambda` keyword to accelerate convergence: + +``` +0.00 0.00 0.00 mag 2.0 lambda 0.01 0.0 0.0 sc 1 1 1 +``` + +A single value sets $\lambda_z$; three values set $\lambda_x$, $\lambda_y$, $\lambda_z$. + +#### Partial constraints + +Set `sc 0` for unconstrained components. For example, to constrain only the direction but not the magnitude (use with `sc_direction_only`): + +``` +0.00 0.00 0.00 mag 2.0 0.0 0.0 sc 1 1 0 +``` + +### DeltaSpin INPUT Parameters + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| `sc_mag_switch` | Boolean | False | Enable DeltaSpin | +| `sc_thr` | Real | 1.0e-6 | Convergence criterion for lambda loop (RMS, in $\mu_B$) | +| `nsc` | Integer | 100 | Maximum number of lambda iterations | +| `nsc_min` | Integer | 2 | Minimum number of lambda iterations | +| `sc_scf_nmin` | Integer | 2 | Minimum outer SCF iterations before starting lambda loop | +| `alpha_trial` | Real | 0.01 | Initial trial step size for lambda (eV/$\mu_B^2$) | +| `sccut` | Real | 3.0 | Maximum step size for lambda (eV/$\mu_B$) | +| `sc_drop_thr` | Real | 1.0e-2 | Convergence ratio threshold for adaptive lambda loop | +| `sc_scf_thr` | Real | 1.0e-4 | Density error threshold for entering lambda loop | +| `sc_direction_only` | Boolean | False | Constrain only the direction, not the magnitude | +| `sc_lambda_strategy` | String | bfgs | Lambda update strategy (see below) | +| `decay_grad_switch` | Boolean | False | Enable gradient-based early exit | + +For full parameter details, see the [Spin-Constrained DFT](../input_files/input-main.md#spin-constrained-dft) section of the input keyword list. + +### Lambda Update Strategies + +The `sc_lambda_strategy` parameter controls how the Lagrange multipliers $\lambda$ are updated during the lambda loop: + +- **`bfgs`** (default): BFGS quasi-Newton method with line search. Robust and well-tested for both PW and LCAO. Uses `alpha_trial` and `sccut` to control step size. + +- **`linear_response`**: Linear response method (Scheme B). Estimates the magnetic susceptibility $\chi$ from the history of $(\lambda, M)$ pairs and performs a one-step Newton-like update: $\Delta\lambda = \beta (M_{\text{target}} - M) / \chi$, where $\beta$ is a mixing parameter. + +- **`augmented_lagrangian`**: Augmented Lagrangian method (Scheme C). Uses a penalty parameter $\mu$ that grows over iterations: $\lambda_{\text{new}} = \lambda + \mu (M - M_{\text{target}})$. The penalty increases until convergence is achieved. + +- **`hybrid_delayed`**: Hybrid delayed update (Scheme D). Two-phase approach: in the early phase (SCF not yet converged), lambda updates are gentle; in the late phase (SCF nearly converged), augmented Lagrangian updates are applied. + +### Direction-Only Mode + +When `sc_direction_only 1` is set, only the **direction** of the magnetic moment is constrained to match the target, while the magnitude is allowed to vary freely. This is useful for: + +- Studying magnetic anisotropy energy surfaces +- Cases where the moment magnitude is determined by the electronic structure +- Converging to the easy-axis direction without fixing the moment size + +In this mode, the lambda vector is projected to be perpendicular to the target moment direction at each iteration, ensuring it can only rotate the magnetization, not stretch it. + +### Combining DeltaSpin with DFT+U + +DeltaSpin can be combined with DFT+U for strongly correlated systems. When both `sc_mag_switch` and `dft_plus_u` are enabled: + +1. DFT+U occupation update runs first in each SCF iteration +2. DeltaSpin lambda loop runs after, constraining the magnetic moments +3. The DFT+U-corrected Hamiltonian is used by the lambda loop + +Example INPUT for PW DFT+U + DeltaSpin: + +``` +INPUT_PARAMETERS +calculation scf +basis_type pw +ecutwfc 50 +nspin 2 +dft_plus_u 1 +orbital_corr -1 2 +hubbard_u 0.0 4.0 +sc_mag_switch 1 +sc_thr 1.0e-6 +sc_scf_thr 1.0e-4 +sc_lambda_strategy bfgs +``` + +### Example: Collinear antiferromagnetic Fe + +INPUT file: + +``` +INPUT_PARAMETERS +calculation scf +basis_type pw +ecutwfc 50 +nspin 2 +sc_mag_switch 1 +sc_thr 1.0e-6 +``` + +STRU file: + +``` +ATOMIC_SPECIES +Fe 55.845 Fe.upf + +LATTICE_CONSTANT +8.190 + +LATTICE_VECTORS + 1.00 0.50 0.50 + 0.50 1.00 0.50 + 0.50 0.50 1.00 + +ATOMIC_POSITIONS +Direct + +Fe +0.0 +2 +0.00 0.00 0.00 mag 2.0 sc 1 +0.51 0.51 0.51 mag -2.0 sc 1 +``` + +### Example: Non-collinear constrained moments + +INPUT file: + +``` +INPUT_PARAMETERS +calculation scf +basis_type pw +ecutwfc 50 +nspin 4 +noncolin 1 +sc_mag_switch 1 +sc_direction_only 1 +sc_lambda_strategy bfgs +``` + +STRU file: + +``` +ATOMIC_POSITIONS +Direct + +Fe +0.0 +2 +0.00 0.00 0.00 mag 2.0 0.0 0.0 sc 1 1 0 +0.51 0.51 0.51 mag 0.0 0.0 2.0 sc 1 1 0 +``` + ## Noncollinear Spin Polarized Calculations The spin non-collinear polarization calculation corresponds to setting **"noncolin 1"**, in which case the coupling between spin up and spin down will be taken into account. In this case, nspin is automatically set to 4, which is usually not required to be specified manually. @@ -48,6 +266,53 @@ Note: different settings for "noncolin" and "lspinorb" correspond to different c **Special case**: `noncolin=0, lspinorb=1` is commonly used for non-magnetic materials with SOC effects (e.g., topological insulators, semiconductors with spin-orbit splitting). In this case, the magnetization is NOT automatically set, implying no magnetic moments in the system. +### Choosing gga_grad for Noncollinear Calculations + +When performing noncollinear spin calculations (`nspin=4`), the `gga_grad` parameter controls how the gradient of the magnetization is computed in GGA exchange-correlation functionals. This is critical for obtaining correct magnetic anisotropy energies and spin-orbit coupling effects. + +#### Available Options + +| gga_grad | Gradient Method | Description | When to Use | +|----------|----------------|-------------|-------------| +| 0 | Standard | Conventional GGA gradient (collinear approximation) | Collinear calculations only (`nspin<4`) | +| 1 | $\nabla\|\mathbf{m}\|$ | Gradient of magnetization magnitude | Noncollinear with SOC, when only magnitude variation matters | +| 2 | $\nabla\hat{\mathbf{m}}$ | Gradient of magnetization direction (default for `nspin=4`) | **Recommended** for most noncollinear calculations with SOC | +| 3 | Built-in SF | Special functional for noncollinear SOC (requires `v_xc_ncgga_sf_builtin`) | Advanced noncollinear SOC calculations | + +#### Recommendations + +**For noncollinear calculations with SOC (`lspinorb=1`)**: +- **Use `gga_grad=2`** (default when `nspin=4`): This computes the gradient of the magnetization direction unit vector $\hat{\mathbf{m}}$, which is physically correct for spin-orbit coupling effects. +- This is automatically set when you specify `nspin=4` or `lspinorb=1`, but you can explicitly set it to be clear. + +**For noncollinear calculations without SOC (`noncolin=1`, `lspinorb=0`)**: +- **Use `gga_grad=2`** for spin spiral calculations or frustrated magnetic systems +- The gradient of the magnetization direction is still important even without SOC + +**For collinear calculations (`nspin=1` or `nspin=2`)**: +- **Use `gga_grad=0`** (default): Standard collinear GGA gradient +- Do NOT use `gga_grad=1`, `2`, or `3` for collinear calculations + +#### Example INPUT for Noncollinear SOC + +``` +INPUT_PARAMETERS +calculation scf +basis_type pw +ecutwfc 50 +nspin 4 +noncolin 1 +lspinorb 1 +gga_grad 2 +``` + +#### Important Notes + +1. **Automatic setting**: When `nspin=4`, ABACUS automatically sets `gga_grad=2` if not explicitly specified +2. **Physical correctness**: Using the wrong `gga_grad` value can lead to incorrect magnetic anisotropy energies and spin textures +3. **Compatibility**: `gga_grad=3` requires the built-in special functional and may not be available for all XC functionals +4. **Performance**: `gga_grad=2` has similar computational cost to `gga_grad=0` for most systems + ## For the continuation job - Continuation job for "nspin 1" need file "SPIN1_CHG.cube" which is generated by setting "out_chg=1" in task before. By setting "init_chg file" in new job's INPUT file, charge density will start from file but not atomic. - Continuation job for "nspin 2" need files "SPIN1_CHG.cube" and "SPIN2_CHG.cube" which are generated by "out_chg 1" with "nspin 2", and refer to spin-up and spin-down charge densities respectively. It should be note that reading "SPIN1_CHG.cube" only for the continuation target magnetic moment job is not supported now. diff --git a/docs/parameters.yaml b/docs/parameters.yaml index 1e540b12cb..31f216e9dc 100644 --- a/docs/parameters.yaml +++ b/docs/parameters.yaml @@ -4473,8 +4473,45 @@ parameters: category: Spin-Constrained DFT type: Real description: | - Density error threshold for inner loop of spin-constrained SCF - default_value: "1.0e-4" + When the charge density error drho falls below sc_scf_thr, the DeltaSpin lambda optimization loop is activated. Should be 10-100x larger than scf_thr. Only used when sc_scf_thr_mode="threshold". For other activation modes, use sc_scf_thr_mode="immediate" or sc_scf_thr_mode="off". + default_value: "1.0e-3" + unit: "" + availability: sc_mag_switch is true + - name: sc_scf_thr_mode + category: Spin-Constrained DFT + type: String + description: | + Controls when the DeltaSpin lambda loop is activated. + * threshold (default): activate when drho < sc_scf_thr. The lambda loop starts once the charge density is reasonably stable. + * immediate: activate from the first iteration with valid wavefunctions (iter>=2). Used for PW basis where the first iteration cannot compute initial magnetic moments. Replaces the old convention of setting sc_scf_thr=10.0. + * off: never activate the lambda loop. Lambda values are loaded from the STRU file and used as constant constraints without optimization. Replaces the old convention of setting sc_scf_thr=1e-10. + default_value: "threshold" + unit: "" + availability: sc_mag_switch is true + - name: sc_direction_only + category: Spin-Constrained DFT + type: Boolean + description: | + When true, only the direction of the magnetic moment is constrained to the target direction, while the magnitude is allowed to vary freely. This is useful for studying magnetic anisotropy or when the magnitude of the moment is determined by the electronic structure rather than an external constraint. When false (default), both the direction and magnitude of the magnetic moment are constrained to the target values. + default_value: "False" + unit: "" + availability: sc_mag_switch is true + - name: sc_dir_phase1_steps + category: Spin-Constrained DFT + type: Integer + description: | + Number of SCF iterations for Phase 1 (magnitude constraint) in the direction_only two-phase strategy for collinear (nspin=2) calculations. During Phase 1, direction_only projection is temporarily disabled so BFGS can constrain the magnetic moment magnitude. After Phase 1, lambda decays and the system relaxes naturally. Minimum: 2. + default_value: "5" + unit: "" + availability: sc_mag_switch is true and sc_direction_only is true and nspin=2 + - name: sc_lambda_strategy + category: Spin-Constrained DFT + type: String + description: | + Lambda update strategy for spin-constrained DFT. Available options are: + * bfgs: BFGS quasi-Newton method (default, robust and well-tested) + * linear_scan: linear sweep of lambda for testing magnetic moment response + default_value: "bfgs" unit: "" availability: sc_mag_switch is true - name: sc_direction_only diff --git a/python/pyabacus/src/hsolver/CMakeLists.txt b/python/pyabacus/src/hsolver/CMakeLists.txt index 764305098b..18bc1ba0cd 100644 --- a/python/pyabacus/src/hsolver/CMakeLists.txt +++ b/python/pyabacus/src/hsolver/CMakeLists.txt @@ -20,6 +20,7 @@ list(APPEND _diago ${BASE_PATH}/module_device/memory_op.cpp ${PSI_PATH}/psi.cpp + ${PSI_PATH}/psi_paging.cpp ) add_library(diagopack SHARED ${_diago} diff --git a/source/source_base/main.cpp b/source/source_base/main.cpp index 9a32f11d28..ec5db9d326 100644 --- a/source/source_base/main.cpp +++ b/source/source_base/main.cpp @@ -36,7 +36,7 @@ void calculate() /* time_t time_start = std::time(NULL); -// ModuleBase::timer::start(); +// ModuleBase::timer::tick(); //---------------------------------------------------------- // main program for doing electronic structure calculations diff --git a/source/source_base/module_container/base/macros/cuda.h b/source/source_base/module_container/base/macros/cuda.h index 521861664a..dd66f617a8 100644 --- a/source/source_base/module_container/base/macros/cuda.h +++ b/source/source_base/module_container/base/macros/cuda.h @@ -10,6 +10,44 @@ #define THREADS_PER_BLOCK 256 +template +class unique_cuda_ptr { + T* ptr_; +public: + unique_cuda_ptr() : ptr_(nullptr) {} + explicit unique_cuda_ptr(T* ptr) : ptr_(ptr) {} + ~unique_cuda_ptr() { if (ptr_) cudaFree(ptr_); } + unique_cuda_ptr(const unique_cuda_ptr&) = delete; + unique_cuda_ptr& operator=(const unique_cuda_ptr&) = delete; + unique_cuda_ptr(unique_cuda_ptr&& other) noexcept : ptr_(other.ptr_) { other.ptr_ = nullptr; } + unique_cuda_ptr& operator=(unique_cuda_ptr&& other) noexcept { + if (this != &other) { if (ptr_) cudaFree(ptr_); ptr_ = other.ptr_; other.ptr_ = nullptr; } + return *this; + } + T* get() const { return ptr_; } + operator T*() const { return ptr_; } + void reset(T* ptr = nullptr) { if (ptr_) cudaFree(ptr_); ptr_ = ptr; } +}; + +template +class unique_host_ptr { + T* ptr_; +public: + unique_host_ptr() : ptr_(nullptr) {} + explicit unique_host_ptr(T* ptr) : ptr_(ptr) {} + ~unique_host_ptr() { if (ptr_) free(ptr_); } + unique_host_ptr(const unique_host_ptr&) = delete; + unique_host_ptr& operator=(const unique_host_ptr&) = delete; + unique_host_ptr(unique_host_ptr&& other) noexcept : ptr_(other.ptr_) { other.ptr_ = nullptr; } + unique_host_ptr& operator=(unique_host_ptr&& other) noexcept { + if (this != &other) { if (ptr_) free(ptr_); ptr_ = other.ptr_; other.ptr_ = nullptr; } + return *this; + } + T* get() const { return ptr_; } + operator T*() const { return ptr_; } + void reset(T* ptr = nullptr) { if (ptr_) free(ptr_); ptr_ = ptr; } +}; + template struct GetTypeThrust { diff --git a/source/source_base/module_container/base/third_party/cusolver.h b/source/source_base/module_container/base/third_party/cusolver.h index ac370679b0..f97f8ba335 100644 --- a/source/source_base/module_container/base/third_party/cusolver.h +++ b/source/source_base/module_container/base/third_party/cusolver.h @@ -20,24 +20,6 @@ namespace container { namespace cuSolverConnector { -struct CudaDeleter { - void operator()(void* ptr) const noexcept { - if (ptr) cudaFree(ptr); - } -}; - -template -using unique_cuda_ptr = std::unique_ptr; - -struct HostDeleter { - void operator()(void* ptr) const noexcept { - if (ptr) free(ptr); - } -}; - -template -using unique_host_ptr = std::unique_ptr; - #if CUDA_VERSION >= 11000 // Generic API (CUDA 11.0+) template @@ -59,17 +41,65 @@ void trtri (cusolverDnHandle_t& cusolver_handle, const char& uplo, const char& d h_work.reset(raw_h_work); } int h_info = 0; - int* raw_d_info = nullptr; - CHECK_CUDA(cudaMalloc((void**)&raw_d_info, sizeof(int))); - unique_cuda_ptr d_info(raw_d_info); - CHECK_CUSOLVER(cusolverDnXtrtri(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, GetTypeCuda::cuda_data_type, reinterpret_cast(A), n, d_work.get(), d_lwork, h_work.get(), h_lwork, d_info.get())); - CHECK_CUDA(cudaMemcpy(&h_info, d_info.get(), sizeof(int), cudaMemcpyDeviceToHost)); + int* d_info = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_info, sizeof(int))); + // Perform triangular matrix inversion + CHECK_CUSOLVER(cusolverDnXtrtri(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, GetTypeCuda::cuda_data_type, reinterpret_cast(A), n, d_work, d_lwork, h_work, h_lwork, d_info)); + CHECK_CUDA(cudaMemcpy(&h_info, d_info, sizeof(int), cudaMemcpyDeviceToHost)); if (h_info != 0) { throw std::runtime_error("trtri: failed to invert matrix"); } } #else -#error "CUDA version < 11.0 is not supported. cusolverDnXtrtri (CUDA 11.0+) is required." +// Legacy API fallback (CUDA < 11.0) +static inline void trtri(cusolverDnHandle_t& cusolver_handle, const char& uplo, const char& diag, const int& n, float* A, const int& lda) +{ + int lwork = 0; + CHECK_CUSOLVER(cusolverDnStrtri_bufferSize(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, A, lda, &lwork)); + float* d_work = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_work, lwork * sizeof(float))); + int* d_info = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_info, sizeof(int))); + CHECK_CUSOLVER(cusolverDnStrtri(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, A, lda, d_work, lwork, d_info)); + CHECK_CUDA(cudaFree(d_work)); + CHECK_CUDA(cudaFree(d_info)); +} +static inline void trtri(cusolverDnHandle_t& cusolver_handle, const char& uplo, const char& diag, const int& n, double* A, const int& lda) +{ + int lwork = 0; + CHECK_CUSOLVER(cusolverDnDtrtri_bufferSize(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, A, lda, &lwork)); + double* d_work = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_work, lwork * sizeof(double))); + int* d_info = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_info, sizeof(int))); + CHECK_CUSOLVER(cusolverDnDtrtri(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, A, lda, d_work, lwork, d_info)); + CHECK_CUDA(cudaFree(d_work)); + CHECK_CUDA(cudaFree(d_info)); +} +static inline void trtri(cusolverDnHandle_t& cusolver_handle, const char& uplo, const char& diag, const int& n, std::complex* A, const int& lda) +{ + int lwork = 0; + CHECK_CUSOLVER(cusolverDnCtrtri_bufferSize(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, reinterpret_cast(A), lda, &lwork)); + cuComplex* d_work = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_work, lwork * sizeof(cuComplex))); + int* d_info = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_info, sizeof(int))); + CHECK_CUSOLVER(cusolverDnCtrtri(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, reinterpret_cast(A), lda, d_work, lwork, d_info)); + CHECK_CUDA(cudaFree(d_work)); + CHECK_CUDA(cudaFree(d_info)); +} +static inline void trtri(cusolverDnHandle_t& cusolver_handle, const char& uplo, const char& diag, const int& n, std::complex* A, const int& lda) +{ + int lwork = 0; + CHECK_CUSOLVER(cusolverDnZtrtri_bufferSize(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, reinterpret_cast(A), lda, &lwork)); + cuDoubleComplex* d_work = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_work, lwork * sizeof(cuDoubleComplex))); + int* d_info = nullptr; + CHECK_CUDA(cudaMalloc((void**)&d_info, sizeof(int))); + CHECK_CUSOLVER(cusolverDnZtrtri(cusolver_handle, cublas_fill_mode(uplo), cublas_diag_type(diag), n, reinterpret_cast(A), lda, d_work, lwork, d_info)); + CHECK_CUDA(cudaFree(d_work)); + CHECK_CUDA(cudaFree(d_info)); +} #endif static inline @@ -1247,7 +1277,7 @@ static inline void geqrf( cusolver_handle, m, n, reinterpret_cast(d_A), lda, - &lwork + &lwork // ← correct: pass address of lwork )); unique_cuda_ptr d_work; @@ -1264,8 +1294,8 @@ static inline void geqrf( cusolver_handle, m, n, reinterpret_cast(d_A), lda, - reinterpret_cast(d_tau), - d_work.get(), lwork, d_info.get())); + reinterpret_cast(d_tau), // ← correct: d_tau + d_work, lwork, d_info)); int h_info = 0; CHECK_CUDA(cudaMemcpy(&h_info, d_info.get(), sizeof(int), cudaMemcpyDeviceToHost)); diff --git a/source/source_base/module_external/scalapack_connector.h b/source/source_base/module_external/scalapack_connector.h index aa99babca0..384031f487 100644 --- a/source/source_base/module_external/scalapack_connector.h +++ b/source/source_base/module_external/scalapack_connector.h @@ -78,6 +78,22 @@ extern "C" const std::complex *B, const int *IB, const int *JB, const int *DESCB, const std::complex *beta, std::complex *C, const int *IC, const int *JC, const int *DESCC); + void pcgemm_( + 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 *IA, const int *JA, const int *DESCA, + const std::complex *B, const int *IB, const int *JB, const int *DESCB, + const std::complex *beta, + std::complex *C, const int *IC, const int *JC, const int *DESCC); + void psgemm_( + const char *transa, const char *transb, + const int *M, const int *N, const int *K, + const float *alpha, + const float *A, const int *IA, const int *JA, const int *DESCA, + const float *B, const int *IB, const int *JB, const int *DESCB, + const float *beta, + float *C, const int *IC, const int *JC, const int *DESCC); void pdsymm_(char *side , char *uplo , int *m , int *n , double *alpha , double *a , int *ia , int *ja , int *desca , double *b , int *ib , int *jb , int *descb , @@ -285,6 +301,34 @@ class ScalapackConnector B, &IB, &JB, DESCB, &beta, C, &IC, &JC, DESCC); } + 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 IA, const int JA, const int *DESCA, + const std::complex *B, const int IB, const int JB, const int *DESCB, + const std::complex beta, + std::complex *C, const int IC, const int JC, const int *DESCC) + { + pcgemm_(&transa, &transb, &M, &N, &K, &alpha, A, &IA, &JA, DESCA, + B, &IB, &JB, DESCB, &beta, C, &IC, &JC, DESCC); + } + + 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 IA, const int JA, const int* DESCA, + const float* B, const int IB, const int JB, const int* DESCB, + const float beta, + float* C, const int IC, const int JC, const int* DESCC) + { + psgemm_(&transa, &transb, &M, &N, &K, &alpha, A, &IA, &JA, DESCA, + B, &IB, &JB, DESCB, &beta, C, &IC, &JC, DESCC); + } + static inline void gemm(char transa, char transb, int M, int N, int K, double alpha, @@ -348,6 +392,37 @@ class ScalapackConnector DESC); } + static inline + void gemm(char transa, char transb, int M, int N, int K, + std::complex alpha, + std::complex* A, + std::complex* B, + std::complex beta, + std::complex* C, + int* DESC) + { + int isrc = 1; + pcgemm_(&transa, + &transb, + &M, + &N, + &K, + &alpha, + A, + &isrc, + &isrc, + DESC, + B, + &isrc, + &isrc, + DESC, + &beta, + C, + &isrc, + &isrc, + DESC); + } + static inline void symm(char side, char uplo, diff --git a/source/source_cell/read_atoms_helper.cpp b/source/source_cell/read_atoms_helper.cpp index 896311ae70..9f96a51418 100644 --- a/source/source_cell/read_atoms_helper.cpp +++ b/source/source_cell/read_atoms_helper.cpp @@ -456,6 +456,9 @@ bool parse_atom_properties(std::ifstream& ifpos, atom.lambda[ia].x /= ModuleBase::Ry_to_eV; atom.lambda[ia].y /= ModuleBase::Ry_to_eV; atom.lambda[ia].z /= ModuleBase::Ry_to_eV; + std::cout << "[DS-DIAG] STRU parse: lambda[" << ia << "]=(" + << atom.lambda[ia].x << ", " << atom.lambda[ia].y << ", " + << atom.lambda[ia].z << ") Ry/uB (converted from eV/uB)" << std::endl; } else if ( tmpid == "sc") { diff --git a/source/source_cell/test/read_sep_test.cpp b/source/source_cell/test/read_sep_test.cpp index 00f0fe2b3e..b25f12edb8 100644 --- a/source/source_cell/test/read_sep_test.cpp +++ b/source/source_cell/test/read_sep_test.cpp @@ -67,7 +67,7 @@ TEST_F(ReadSepTest, PrintSep) if (GlobalV::MY_RANK == 0) { #endif - // 设置测试数据 + // Set up test data read_sep->label = "F"; read_sep->xc_type = "pbe"; read_sep->orbital = "p"; @@ -76,13 +76,13 @@ TEST_F(ReadSepTest, PrintSep) read_sep->r = new double[2]{0.1, 0.2}; read_sep->rv = new double[2]{1.0, 2.0}; - // 测试打印功能 + // Test print functionality std::ofstream ofs("test_sep.out"); read_sep->print_sep_info(ofs); read_sep->print_sep_vsep(ofs); ofs.close(); - // 验证输出文件 + // Verify output file std::ifstream ifs("test_sep.out"); std::string line; std::vector lines; diff --git a/source/source_esolver/esolver_ks_lcao.cpp b/source/source_esolver/esolver_ks_lcao.cpp index 88d2c7b235..f80a7cee84 100644 --- a/source/source_esolver/esolver_ks_lcao.cpp +++ b/source/source_esolver/esolver_ks_lcao.cpp @@ -333,6 +333,16 @@ void ESolver_KS_LCAO::iter_init(UnitCell& ucell, const int istep, const std::cout << " >> NOTICE: Gint grid-integration starts with fp32 (mixed-precision mode)" << std::endl; } else if (PARAM.inp.gint_precision == "single") + { + std::cout << " >> NOTICE: Gint grid-integration runs in fp32 (single-precision mode)" << std::endl; + } + + if (PARAM.inp.sc_mag_switch) + { + spinconstrain::SpinConstrain& sc = spinconstrain::SpinConstrain::getScInstance(); + sc.set_subspace_exec_precision(this->gint_precision_controller_.current_precision()); + } + else if (PARAM.inp.gint_precision == "single") { GlobalV::ofs_running << "\n >> Gint single-precision mode: using fp32 throughout SCF" << std::endl; std::cout << " >> NOTICE: Gint grid-integration uses fp32 throughout SCF (single-precision mode)" << std::endl; @@ -403,51 +413,232 @@ void ESolver_KS_LCAO::hamilt2rho_single(UnitCell& ucell, int istep, int { ModuleBase::TITLE("ESolver_KS_LCAO", "hamilt2rho_single"); + const int nspin = PARAM.inp.nspin; + const bool ds_mag_switch = PARAM.inp.sc_mag_switch; + const bool ds_dir_only = PARAM.inp.sc_direction_only; + const std::string& ds_scf_mode = PARAM.inp.sc_scf_thr_mode; + const double ds_scf_thr = PARAM.inp.sc_scf_thr; + const int ds_phase1_steps = PARAM.inp.sc_dir_phase1_steps; + const std::string& ds_accel_mode = PARAM.inp.sc_acceleration_mode; + const std::string& ds_lambda_strat = PARAM.inp.sc_lambda_strategy; + const int scf_nmax = PARAM.inp.scf_nmax; + const std::string& calc_type = PARAM.inp.calculation; + const std::string& basis = PARAM.inp.basis_type; + const std::string& ks_solver = PARAM.inp.ks_solver; + // 1) reset energy this->pelec->f_en.eband = 0.0; this->pelec->f_en.demet = 0.0; - bool skip_charge = PARAM.inp.calculation == "nscf" ? true : false; - - // 2) run the inner lambda loop to contrain atomic moments with the DeltaSpin method + bool skip_charge = calc_type == "nscf" ? true : false; + + // ===================================================================== + // 2) DeltaSpin: inner lambda loop to constrain atomic magnetic moments + // ===================================================================== + // The DeltaSpin method implements constrained LSDA via Lagrange multipliers: + // E'[rho] = E[rho] - sum_i lambda_i . (M_i - M_target_i) + // + // The constrained energy functional adds a penalty term that drives each + // atom's magnetic moment M_i toward its target value M_target_i. + // The Lagrange multiplier lambda_i acts as a "magnetic force" (eV/uB). + // + // Code paths by spin type: + // --------------------------------------------------------------- + // nspin=2 (collinear): + // - Only z-component of magnetization is constrained (M_z per atom) + // - H_delta = lambda_z * sigma_z (diagonal, opposite sign per spin channel) + // - DMR: uses switch_dmr(2) -> spin-difference density (rho_up - rho_dn) + // - cal_coeff_lambda: coefficients[spin] = +/- lambda_z + // + // nspin=4 (non-collinear): + // - Full 3D magnetization vector constrained (Mx, My, Mz per atom) + // - H_delta = lambda . sigma (full 2x2 Pauli matrix with spin-flip terms) + // - DMR: spinor density matrix (2x2 blocks interleaved) + // - cal_coeff_lambda: 4 coeffs for 2x2 spinor block + // + // direction_only mode: + // - Designed for non-collinear: removes parallel lambda component so + // only transverse (directional) constraint remains + // - CRITICAL: for nspin=2, direction_only projects lambda to ZERO because + // the only constrained direction (z) IS the parallel direction. + // Therefore direction_only MUST be disabled during Phase 1 BFGS. + // + // sc_scf_thr_mode parameter: + // - "threshold" (default): lambda loop activates when drho < sc_scf_thr + // - "immediate": lambda loop activates from iter>=2 (for PW basis) + // - "off": lambda loop never activates (lambda used as constant constraint) + // - For "threshold" mode, sc_scf_thr should be 10-100x larger than scf_thr + // - mixing_restart is auto-set based on sc_scf_thr_mode + // ===================================================================== bool skip_solve = false; - if (PARAM.inp.sc_mag_switch) + if (ds_mag_switch) { spinconstrain::SpinConstrain& sc = spinconstrain::SpinConstrain::getScInstance(); - if (PARAM.inp.sc_lambda_strategy == "linear_scan") + + if (ds_lambda_strat == "linear_scan") { + sc.set_drho(this->drho); sc.run_lambda_linear_scan(iter - 1); + skip_solve = true; } - else if (!sc.mag_converged() && this->drho > 0 && this->drho < PARAM.inp.sc_scf_thr) + else if (ds_scf_mode == "off") { - sc.run_lambda_loop(iter - 1); - sc.set_mag_converged(true); - skip_solve = true; + // "off" mode: never activate the lambda loop. + // Lambda values are loaded from STRU and used as constant constraints. + // Replaces the old convention of setting sc_scf_thr=1e-10. } - else if (sc.mag_converged()) + else if (ds_dir_only && nspin == 2) { - sc.run_lambda_loop(iter - 1); - skip_solve = true; + // ================================================================ + // Collinear direction_only: two-phase strategy + // ================================================================ + // For nspin=2, direction_only projection zeroes lambda entirely + // (see lambda_loop.cpp). The two-phase strategy works around this: + // + // Phase 1 (iter 1..sc_dir_phase1_steps): BFGS with direction_only + // temporarily disabled, constraining moment MAGNITUDE to target. + // skip_solve=true: BFGS inner loop handles diagonalization. + // + // Phase 2 (iter > sc_dir_phase1_steps): Lambda decays gradually, + // normal SCF runs, system relaxes to magnetic ground state. + // ================================================================ + if (iter <= ds_phase1_steps) + { + sc.set_drho(this->drho); + sc.set_direction_only(false); + sc.run_lambda_loop(iter - 1); + sc.set_direction_only(true); + skip_solve = true; + } + else + { + if (iter == ds_phase1_steps + 1) + { + // Reset mixing at Phase 1->2 transition. + // Phase 1 BFGS updates DM directly without charge mixing, + // so Broyden history is incompatible with Phase 2 SCF. + // Also reset mixing_restart_count and mixing_restart_step + // to avoid polluting mixing_dmr logic. + this->p_chgmix->mix_reset(); + this->p_chgmix->mixing_restart_count = 0; + this->p_chgmix->mixing_restart_step = scf_nmax + 1; + } + + // Gradual lambda decay: factor = 0.5^(1/3) per step + // (~halves every 3 steps). Gradual decay avoids discontinuous + // Hamiltonian change that would cause charge density oscillations. + int nat = sc.get_nat(); + auto lambda = sc.get_sc_lambda(); + const double DECAY = std::pow(0.5, 1.0 / 3.0); + for (int ia = 0; ia < nat; ++ia) + for (int ic = 0; ic < 3; ++ic) + lambda[ia][ic] *= DECAY; + sc.set_lambda(lambda); + } + } + else if (ds_dir_only && nspin == 4) + { + // Non-collinear direction_only: direction_only projection works + // correctly for nspin=4 (only removes parallel component, leaving + // transverse constraint). Use standard sc_scf_thr_mode gate. + if (ds_scf_mode == "immediate") + { + if (iter > 1) + { + sc.set_drho(this->drho); + sc.run_lambda_loop(iter - 1); + if (!sc.mag_converged()) { sc.set_mag_converged(true); } + skip_solve = true; + } + } + else // "threshold" + { + if (!sc.mag_converged() && this->drho > 0 && this->drho < ds_scf_thr) + { + sc.set_drho(this->drho); + sc.run_lambda_loop(iter - 1); + sc.set_mag_converged(true); + skip_solve = true; + } + else if (sc.mag_converged()) + { + sc.set_drho(this->drho); + sc.run_lambda_loop(iter - 1); + skip_solve = true; + } + } + } + else + { + // Standard DeltaSpin (no direction_only) + if (ds_scf_mode == "immediate") + { + // "immediate" mode: activate lambda loop from iter>=2. + // iter=1 is skipped because initial wavefunctions are not + // available to compute initial magnetic moments. + if (iter > 1) + { + sc.set_drho(this->drho); + sc.run_lambda_loop(iter - 1); + if (!sc.mag_converged()) { sc.set_mag_converged(true); } + skip_solve = true; + } + } + else // "threshold" + { + // "threshold" mode: activate when drho < sc_scf_thr. + // drho > 0 excludes iter=1 where drho has not been computed yet. + if (!sc.mag_converged() && this->drho > 0 && this->drho < ds_scf_thr) + { + sc.set_drho(this->drho); + sc.run_lambda_loop(iter - 1); + sc.set_mag_converged(true); + skip_solve = true; + } + else if (sc.mag_converged()) + { + sc.set_drho(this->drho); + sc.run_lambda_loop(iter - 1); + skip_solve = true; + } + } + } + + // Run trace vs DMR diagnostic once near SCF convergence + if (nspin == 2 && basis == "lcao" + && this->drho > 0 && this->drho < 1e-3 + && ds_accel_mode != "off" + && !sc.local_diag_run_) + { + double lambda_ref_ry = 0.0; + for (int ia = 0; ia < sc.get_nat(); ia++) { + if (sc.get_constrain()[ia].z != 0) { + lambda_ref_ry = sc.get_sc_lambda()[ia].z; + break; + } + } + sc.run_trace_vs_dmr_diagnostic(iter - 1, lambda_ref_ry); + sc.local_diag_run_ = true; } } // 3) run Hsolver if (!skip_solve) { - hsolver::HSolverLCAO hsolver_lcao_obj(&(this->pv), PARAM.inp.ks_solver); + hsolver::HSolverLCAO hsolver_lcao_obj(&(this->pv), ks_solver); hsolver_lcao_obj.solve(static_cast*>(this->p_hamilt), this->psi[0], this->pelec, *this->dmat.dm, - this->chr, PARAM.inp.nspin, skip_charge); + this->chr, nspin, skip_charge); } else { // Lambda loop updated the density matrix (DM) but not the real-space charge density. // HSolver was skipped, so we need to sync rho from DM manually. - LCAO_domain::dm2rho(this->dmat.dm->get_DMR_vector(), PARAM.inp.nspin, &this->chr); + LCAO_domain::dm2rho(this->dmat.dm->get_DMR_vector(), nspin, &this->chr); } // 4) EXX #ifdef __EXX - if (PARAM.inp.calculation != "nscf") + if (calc_type != "nscf") { if (GlobalC::exx_info.info_ri.real_number) { @@ -461,7 +652,7 @@ void ESolver_KS_LCAO::hamilt2rho_single(UnitCell& ucell, int istep, int #endif // 5) symmetrize the charge density - Symmetry_rho::symmetrize_rho(PARAM.inp.nspin, this->chr, this->pw_rho, ucell.symm); + Symmetry_rho::symmetrize_rho(nspin, this->chr, this->pw_rho, ucell.symm); // 6) calculate delta energy this->pelec->f_en.deband = this->pelec->cal_delta_eband(ucell); @@ -491,6 +682,30 @@ void ESolver_KS_LCAO::iter_finish(UnitCell& ucell, const int istep, int& // 3) for delta spin cal_mi_lcao_wrapper(iter, PARAM.inp); + // 3b) direction_only: report magnetic moment status + if (PARAM.inp.sc_direction_only && PARAM.inp.sc_mag_switch) + { + spinconstrain::SpinConstrain& sc = spinconstrain::SpinConstrain::getScInstance(); + const int nat = sc.get_nat(); + const auto& Mi = sc.get_Mi(); + const auto& target = sc.get_target_mag(); + const auto& constrain = sc.get_constrain(); + auto lambda = sc.get_sc_lambda(); + + double lambda_abs = 0; + for (int ia = 0; ia < nat; ++ia) + for (int ic = 0; ic < 3; ++ic) + if (constrain[ia][ic] != 0) + lambda_abs += std::abs(lambda[ia][ic] * ModuleBase::Ry_to_eV); + + GlobalV::ofs_running << " [DS-dir] iter " << iter << " |lambda|=" << lambda_abs << " eV/uB" << std::endl; + for (int ia = 0; ia < nat; ++ia) + for (int ic = 0; ic < 3; ++ic) + if (constrain[ia][ic] != 0) + GlobalV::ofs_running << " Atom " << ia << " comp " << ic << ": Mi=" << Mi[ia][ic] + << " T=" << target[ia][ic] << std::endl; + } + // call iter_finish() of ESolver_KS, where band gap is printed, // eig and occ are printed, magnetization is calculated, // charge mixing is performed, potential is updated, @@ -505,6 +720,12 @@ void ESolver_KS_LCAO::iter_finish(UnitCell& ucell, const int istep, int& std::cout << " >> NOTICE: Gint grid-integration precision switched from fp32 to fp64" << std::endl; } + if (PARAM.inp.sc_mag_switch) + { + spinconstrain::SpinConstrain& sc = spinconstrain::SpinConstrain::getScInstance(); + sc.set_subspace_exec_precision(this->gint_precision_controller_.current_precision()); + } + // mix density matrix if mixing_restart + mixing_dmr + not first // mixing_restart at every iter except the last iter if(iter != PARAM.inp.scf_nmax && !conv_esolver) diff --git a/source/source_esolver/esolver_sdft_pw.cpp b/source/source_esolver/esolver_sdft_pw.cpp index 654f45a19c..5801dcc9b5 100644 --- a/source/source_esolver/esolver_sdft_pw.cpp +++ b/source/source_esolver/esolver_sdft_pw.cpp @@ -157,8 +157,8 @@ void ESolver_SDFT_PW::hamilt2rho_single(UnitCell& ucell, int istep, i this->p_hamilt_sto, PARAM.inp.calculation, PARAM.inp.basis_type, - PARAM.inp.ks_solver, - PARAM.globalv.use_uspp, + PARAM.inp.ks_solver, + PARAM.globalv.use_uspp, PARAM.inp.nspin, hsolver::DiagoIterAssist::SCF_ITER, hsolver::DiagoIterAssist::PW_DIAG_NMAX, diff --git a/source/source_esolver/lcao_others.cpp b/source/source_esolver/lcao_others.cpp index d14c800b7e..6ca92acd35 100644 --- a/source/source_esolver/lcao_others.cpp +++ b/source/source_esolver/lcao_others.cpp @@ -145,6 +145,42 @@ void ESolver_KS_LCAO::others(UnitCell& ucell, const int istep) if (PARAM.inp.sc_mag_switch) { + // ================================================================ + // Derive acceleration parameters from sc_strategy + // ================================================================ + std::string accel_mode = PARAM.inp.sc_acceleration_mode; + double accel_rms_thr = PARAM.inp.sc_acceleration_rms_thr; + + // Only apply strategy defaults if user hasn't explicitly overridden + // (explicit acceleration_mode != "off" or explicit rms_thr > 0 takes precedence) + bool user_overrode_accel_mode = (PARAM.inp.sc_acceleration_mode != "off"); + bool user_overrode_rms_thr = (PARAM.inp.sc_acceleration_rms_thr > 0.0); + + if (!user_overrode_accel_mode || !user_overrode_rms_thr) + { + if (PARAM.inp.sc_strategy == "fast") + { + // fast: subspace from step 0 (huge threshold ensures immediate activation) + accel_mode = "subspace"; + accel_rms_thr = 1e10; + } + else if (PARAM.inp.sc_strategy == "accuracy") + { + // accuracy: always full diagonalization + accel_mode = "off"; + accel_rms_thr = -1.0; + } + else // normal + { + // normal: threshold-triggered subspace acceleration + accel_mode = "subspace"; + if (!user_overrode_rms_thr) + { + accel_rms_thr = 1e-2; // default threshold for normal strategy + } + } + } + spinconstrain::SpinConstrain& sc = spinconstrain::SpinConstrain::getScInstance(); sc.init_sc(PARAM.inp.sc_thr, PARAM.inp.nsc, @@ -152,6 +188,8 @@ void ESolver_KS_LCAO::others(UnitCell& ucell, const int istep) PARAM.inp.alpha_trial, PARAM.inp.sccut, PARAM.inp.sc_drop_thr, + accel_mode, + accel_rms_thr, ucell, PARAM.inp.sc_direction_only, &(this->pv), diff --git a/source/source_estate/elecstate_lcao.h b/source/source_estate/elecstate_lcao.h index fa28c5bb80..00eece57b4 100644 --- a/source/source_estate/elecstate_lcao.h +++ b/source/source_estate/elecstate_lcao.h @@ -3,6 +3,8 @@ #include "elecstate.h" #include "source_estate/module_dm/density_matrix.h" +#include "source_basis/module_ao/parallel_orbitals.h" +#include "source_cell/klist.h" #include @@ -24,8 +26,23 @@ class ElecStateLCAO : public ElecState this->classname = "ElecStateLCAO"; } - virtual ~ElecStateLCAO() = default; + virtual ~ElecStateLCAO() + { + if (this->DM != nullptr) + { + delete this->DM; + } + } + + // update charge density for next scf step + // void getNewRho() override; + // initial density matrix + void init_DM(const K_Vectors* kv, const Parallel_Orbitals* paraV, const int nspin); + DensityMatrix* get_DM() const + { + return const_cast*>(this->DM); + } static int out_wfc_lcao; static bool need_psi_grid; @@ -39,15 +56,12 @@ class ElecStateLCAO : public ElecState * @param pexsi_EDM: pointers of energy-weighed density matrix (EDMK) calculated by pexsi, needed by MD, will be * stored in DensityMatrix::pexsi_EDM */ - void dm2rho(std::vector pexsi_DM, - std::vector pexsi_EDM, - DensityMatrix* dm); + void dm2rho(std::vector pexsi_DM, + std::vector pexsi_EDM, + DensityMatrix* dm); /** - * @brief calculate electronic charge density from the density matrix (DMR) - * - * Thin wrapper over LCAO_domain::dm2rho so that HSolverLCAO delegates the - * charge-density calculation through the ElecState interface, mirroring the + * @brief Convert density matrix to charge density, used by the LCAO * plane-wave path (ElecStatePW::psiToRho) and the pexsi branch above. This * keeps the source_lcao dependency out of source_hsolver. */ @@ -56,6 +70,9 @@ class ElecStateLCAO : public ElecState Charge* chr, bool skip_charge = false); + private: + DensityMatrix* DM = nullptr; + }; template @@ -64,6 +81,17 @@ int ElecStateLCAO::out_wfc_lcao = 0; template bool ElecStateLCAO::need_psi_grid = true; +// init_DM implementation +template +void ElecStateLCAO::init_DM(const K_Vectors* kv, const Parallel_Orbitals* paraV, const int nspin) +{ + if (this->DM != nullptr) + { + delete this->DM; + } + this->DM = new DensityMatrix(paraV, nspin); +} + } // namespace elecstate #endif diff --git a/source/source_estate/elecstate_pw.cpp b/source/source_estate/elecstate_pw.cpp index 7edb7b6bcf..1c61269df7 100644 --- a/source/source_estate/elecstate_pw.cpp +++ b/source/source_estate/elecstate_pw.cpp @@ -1,5 +1,7 @@ #include "elecstate_pw.h" +#include + #include "source_base/constants.h" #include "source_base/libm/libm.h" #include "source_base/math_ylmreal.h" @@ -8,6 +10,7 @@ #include "source_base/timer.h" #include "source_hamilt/module_xc/xc_functional.h" #include "source_io/module_parameter/parameter.h" +#include "source_lcao/module_deltaspin/spin_constrain.h" #include "source_pw/module_pwdft/vnl_pw.h" namespace elecstate { @@ -54,6 +57,18 @@ ElecStatePW::~ElecStatePW() } delmem_complex_op()(this->wfcr); delmem_complex_op()(this->wfcr_another_spin); + if (this->becp_h != nullptr) + { + delmem_complex_h_op()(this->becp_h); + } +} + +template +double ElecStatePW::get_spin_constrain_energy() +{ + spinconstrain::SpinConstrain>& sc + = spinconstrain::SpinConstrain>::getScInstance(); + return sc.cal_escon(); } template @@ -136,6 +151,7 @@ void ElecStatePW::psiToRho(const psi::Psi& psi) for (int ik = 0; ik < psi.get_nk(); ++ik) { + const_cast&>(psi).ensure_k_on_gpu(ik); psi.fix_k(ik); this->updateRhoK(psi); } @@ -312,41 +328,55 @@ void ElecStatePW::cal_becsum(const psi::Psi& psi) char transb = 'N'; if (this->ppcell->nkb > 0) { - if (nbands == 1) - { - int inc = 1; - gemv_op()(transa, - npw, - this->ppcell->nkb, - &one, - this->vkb, - this->ppcell->vkbnc, - psi_now, - inc, - &zero, - becp, - inc); - } - else + int inc = 1; + gemv_op()(transa, + npw, + this->ppcell->nkb, + &one, + this->vkb, + this->ppcell->vkbnc, + psi_now, + inc, + &zero, + becp, + inc); + } + else + { + gemm_op()(transa, + transb, + this->ppcell->nkb, + nbands, + npw, + &one, + this->vkb, + this->ppcell->vkbnc, + psi_now, + npwx, + &zero, + becp, + this->ppcell->nkb); + } + // Copy becp from GPU to CPU for MPI reduction (only needed for GPU) + if constexpr (std::is_same::value) + { + if (this->becp_h_size < this->ppcell->nkb * nbands) { - gemm_op()(transa, - transb, - this->ppcell->nkb, - nbands, - npw, - &one, - this->vkb, - this->ppcell->vkbnc, - psi_now, - npwx, - &zero, - becp, - this->ppcell->nkb); + if (this->becp_h != nullptr) + { + delmem_complex_h_op()(this->becp_h); + } + resmem_complex_h_op()(this->becp_h, this->ppcell->nkb * nbands, "ElecStatePW::becp_h"); + this->becp_h_size = this->ppcell->nkb * nbands; } - // D2H: device becp → host becp_host - syncmem_complex_d2h_op()(becp_host.data(), becp, nbands * nkb); + syncmem_complex_d2h_op()(this->becp_h, becp, this->ppcell->nkb * nbands); + Parallel_Reduce::reduce_pool(this->becp_h, this->ppcell->nkb * nbands); + syncmem_complex_h2d_op()(becp, this->becp_h, this->ppcell->nkb * nbands); + } + else + { + Parallel_Reduce::reduce_pool(becp, this->ppcell->nkb * nbands); } - Parallel_Reduce::reduce_pool(becp_host.data(), this->ppcell->nkb * nbands); // sum over bands: \sum_i w_i for (int it = 0; it < ucell->ntype; it++) diff --git a/source/source_estate/elecstate_pw.h b/source/source_estate/elecstate_pw.h index 623704e178..58b6d63f41 100644 --- a/source/source_estate/elecstate_pw.h +++ b/source/source_estate/elecstate_pw.h @@ -36,6 +36,8 @@ class ElecStatePW : public ElecState virtual void cal_tau(const psi::Psi& psi); + double get_spin_constrain_energy() override; + //! calculate becsum for uspp void cal_becsum(const psi::Psi& psi); @@ -98,7 +100,6 @@ class ElecStatePW : public ElecState using setmem_complex_op = base_device::memory::set_memory_op; using resmem_complex_op = base_device::memory::resize_memory_op; using delmem_complex_op = base_device::memory::delete_memory_op; - using resmem_complex_h_op = base_device::memory::resize_memory_op; using delmem_complex_h_op = base_device::memory::delete_memory_op; using syncmem_complex_d2h_op = base_device::memory::synchronize_memory_op; @@ -112,6 +113,9 @@ class ElecStatePW : public ElecState using gemv_op = ModuleBase::gemv_op; using gemm_op = ModuleBase::gemm_op; + + T* becp_h = nullptr; + size_t becp_h_size = 0; }; } // namespace elecstate diff --git a/source/source_estate/module_charge/charge_mixing.cpp b/source/source_estate/module_charge/charge_mixing.cpp index 1324975ec5..d10406aad2 100644 --- a/source/source_estate/module_charge/charge_mixing.cpp +++ b/source/source_estate/module_charge/charge_mixing.cpp @@ -263,11 +263,13 @@ void Charge_Mixing::allocate_mixing_uom(int uom_size) { ModuleBase::TITLE("Charge_Mixing", "allocate_mixing_uom"); ModuleBase::timer::start("Charge_Mixing", "allocate_mixing_uom"); + ModuleBase::timer::end("Charge_Mixing", "allocate_mixing_uom"); // For nspin=2, uom_size already includes both spin channels // (eff_pot_pw.size() = pot_index * 2 for nspin=2) // So uom_fold should always be 1 this->mixing->init_mixing_data(this->uom_mdata, uom_size, sizeof(double)); this->uom_mdata.reset(); + ModuleBase::timer::start("Charge_Mixing", "allocate_mixing_uom"); ModuleBase::timer::end("Charge_Mixing", "allocate_mixing_uom"); return; } @@ -276,17 +278,14 @@ void Charge_Mixing::mix_uom(std::vector& uom_in, std::vector& uo { ModuleBase::TITLE("Charge_Mixing", "mix_uom"); ModuleBase::timer::start("Charge_Mixing", "mix_uom"); + ModuleBase::timer::end("Charge_Mixing", "mix_uom"); double* uom_value_out = uom_in.data(); double* uom_value_in = uom_save_in.data(); // For all nspin cases, uom_array layout is already fully sized // and mixing operates on the entire array this->mixing->push_data(this->uom_mdata, uom_value_in, uom_value_out, nullptr, false); this->mixing->mix_data(this->uom_mdata, uom_value_out); + ModuleBase::timer::start("Charge_Mixing", "mix_uom"); ModuleBase::timer::end("Charge_Mixing", "mix_uom"); -#ifdef __MPI - // Synchronize mixed uom across all ranks to prevent divergence - // after multiple Pulay steps (same pattern as mix_dmr) - Parallel_Common::bcast_double(uom_in.data(), uom_in.size()); -#endif return; } diff --git a/source/source_estate/module_charge/charge_mixing.h b/source/source_estate/module_charge/charge_mixing.h index c24a866df9..c5eea82df3 100644 --- a/source/source_estate/module_charge/charge_mixing.h +++ b/source/source_estate/module_charge/charge_mixing.h @@ -51,6 +51,7 @@ class Charge_Mixing void close_kerker_gg0() { mixing_gg0 = 0.0; mixing_gg0_mag = 0.0; } void conserve_setting() { mixing_beta = 0.01; mixing_beta_mag = 0.04; } + void set_mixing_beta(double beta) { mixing_beta = beta; } /** * @brief initialize mixing, including constructing mixing and allocating memory for mixing data * @brief this function should be called at eachiterinit() diff --git a/source/source_estate/module_dm/cal_dm_psi.cpp b/source/source_estate/module_dm/cal_dm_psi.cpp index 5ad2144c5b..007b8c4c48 100644 --- a/source/source_estate/module_dm/cal_dm_psi.cpp +++ b/source/source_estate/module_dm/cal_dm_psi.cpp @@ -9,7 +9,28 @@ namespace elecstate { -// for Gamma-Only case where DMK is double +static void cast_down_to_float(const std::complex* src, std::complex* dst, std::size_t n) +{ +#ifdef _OPENMP +#pragma omp parallel for schedule(static, 4096) +#endif + for (std::size_t i = 0; i < n; ++i) + { + dst[i] = static_cast>(src[i]); + } +} + +static void cast_up_to_double(const std::complex* src, std::complex* dst, std::size_t n) +{ +#ifdef _OPENMP +#pragma omp parallel for schedule(static, 4096) +#endif + for (std::size_t i = 0; i < n; ++i) + { + dst[i] = static_cast>(src[i]); + } +} + void cal_dm_psi(const Parallel_Orbitals* ParaV, const ModuleBase::matrix& wg, const psi::Psi& wfc, @@ -18,20 +39,13 @@ void cal_dm_psi(const Parallel_Orbitals* ParaV, ModuleBase::TITLE("elecstate", "cal_dm_psi"); ModuleBase::timer::start("elecstate", "cal_dm_psi"); - // dm.resize(wfc.get_nk(), ParaV->ncol, ParaV->nrow); const int nbands_local = wfc.get_nbands(); const int nbasis_local = wfc.get_nbasis(); - // dm = wfc.T * wg * wfc.conj() - // dm[is](iw1,iw2) = \sum_{ib} wfc[is](ib,iw1).T * wg(is,ib) * wfc[is](ib,iw2).conj() - for (int ik = 0; ik < wfc.get_nk(); ++ik) { double* dmk_pointer = DM.get_DMK_pointer(ik); wfc.fix_k(ik); - // dm.fix_k(ik); - // dm[ik].create(ParaV->ncol, ParaV->nrow); - // wg_wfc(ib,iw) = wg[ib] * wfc(ib,iw); psi::Psi wg_wfc(1, wfc.get_nbands(), wfc.get_nbasis(), wfc.get_nbasis(), true); @@ -59,7 +73,6 @@ void cal_dm_psi(const Parallel_Orbitals* ParaV, BlasConnector::scal(nbasis_local, wg_local, wg_wfc_pointer, 1); } - // C++: dm(iw1,iw2) = wfc(ib,iw1).T * wg_wfc(ib,iw2) #ifdef __MPI psiMulPsiMpi(wg_wfc, wfc, dmk_pointer, ParaV->desc_wfc, ParaV->desc); #else @@ -79,19 +92,13 @@ void cal_dm_psi(const Parallel_Orbitals* ParaV, ModuleBase::TITLE("elecstate", "cal_dm_psi"); ModuleBase::timer::start("elecstate", "cal_dm_psi"); - // dm.resize(wfc.get_nk(), ParaV->ncol, ParaV->nrow); const int nbands_local = wfc.get_nbands(); const int nbasis_local = wfc.get_nbasis(); - // dm = wfc.T * wg * wfc.conj() - // dm[is](iw1,iw2) = \sum_{ib} wfc[is](ib,iw1).T * wg(is,ib) * wfc[is](ib,iw2).conj() for (int ik = 0; ik < wfc.get_nk(); ++ik) { wfc.fix_k(ik); std::complex* dmk_pointer = DM.get_DMK_pointer(ik); - // dm.fix_k(ik); - //dm[ik].create(ParaV->ncol, ParaV->nrow); - // wg_wfc(ib,iw) = wg[ib] * wfc(ib,iw); psi::Psi> wg_wfc(1, wfc.get_nbands(), wfc.get_nbasis(), @@ -118,7 +125,6 @@ void cal_dm_psi(const Parallel_Orbitals* ParaV, if (ib_global >= wg.nc) { break; - ModuleBase::WARNING_QUIT("ElecStateLCAO::cal_dm", "please check global2local_col!"); } } if (ib_global >= wg.nc) @@ -130,9 +136,7 @@ void cal_dm_psi(const Parallel_Orbitals* ParaV, BlasConnector::scal(nbasis_local, wg_local, wg_wfc_pointer, 1); } - // C++: dm(iw1,iw2) = wfc(ib,iw1).T * wg_wfc(ib,iw2) #ifdef __MPI - if (PARAM.inp.ks_solver == "cg_in_lcao") { psiMulPsi(wg_wfc, wfc, dmk_pointer); @@ -150,6 +154,76 @@ void cal_dm_psi(const Parallel_Orbitals* ParaV, return; } +void cal_dm_psi_mixed(const Parallel_Orbitals* ParaV, + const ModuleBase::matrix& wg, + const psi::Psi>& wfc, + elecstate::DensityMatrix, double>& DM) +{ + ModuleBase::TITLE("elecstate", "cal_dm_psi_mixed"); + ModuleBase::timer::start("elecstate", "cal_dm_psi_mixed"); + + const int nbands_local = wfc.get_nbands(); + const int nbasis_local = wfc.get_nbasis(); + + for (int ik = 0; ik < wfc.get_nk(); ++ik) + { + wfc.fix_k(ik); + std::complex* dmk_pointer = DM.get_DMK_pointer(ik); + psi::Psi> wg_wfc(1, + wfc.get_nbands(), + wfc.get_nbasis(), + wfc.get_nbasis(), + true); + + const std::complex* pwfc = wfc.get_pointer(); + std::complex* pwg_wfc = wg_wfc.get_pointer(); + +#ifdef _OPENMP +#pragma omp parallel for schedule(static, 1024) +#endif + for (int i = 0; i < wg_wfc.size(); ++i) + { + pwg_wfc[i] = conj(pwfc[i]); + } + + int ib_global = 0; + for (int ib_local = 0; ib_local < nbands_local; ++ib_local) + { + while (ib_local != ParaV->global2local_col(ib_global)) + { + ++ib_global; + if (ib_global >= wg.nc) + { + break; + } + } + if (ib_global >= wg.nc) + { + continue; + } + const double wg_local = wg(ik, ib_global); + std::complex* wg_wfc_pointer = &(wg_wfc(0, ib_local, 0)); + BlasConnector::scal(nbasis_local, wg_local, wg_wfc_pointer, 1); + } + +#ifdef __MPI + if (PARAM.inp.ks_solver == "cg_in_lcao") + { + psiMulPsiMixed(wg_wfc, wfc, dmk_pointer); + } + else + { + psiMulPsiMpiMixed(wg_wfc, wfc, dmk_pointer, ParaV->desc_wfc, ParaV->desc, ParaV->nloc); + } +#else + psiMulPsiMixed(wg_wfc, wfc, dmk_pointer); +#endif + } + + ModuleBase::timer::end("elecstate", "cal_dm_psi_mixed"); + return; +} + #ifdef __MPI void psiMulPsiMpi(const psi::Psi& psi1, const psi::Psi& psi2, @@ -192,7 +266,7 @@ void psiMulPsiMpi(const psi::Psi>& psi1, const int* desc_psi, const int* desc_dm) { - ModuleBase::timer::start("psiMulPsiMpi", "pdgemm"); + ModuleBase::timer::start("psiMulPsiMpi", "pzgemm"); const std::complex one_complex = {1.0, 0.0}, zero_complex = {0.0, 0.0}; const int one_int = 1; const char N_char = 'N', T_char = 'T'; @@ -217,7 +291,52 @@ void psiMulPsiMpi(const psi::Psi>& psi1, one_int, one_int, desc_dm); - ModuleBase::timer::end("psiMulPsiMpi", "pdgemm"); + ModuleBase::timer::end("psiMulPsiMpi", "pzgemm"); +} + +void psiMulPsiMpiMixed(const psi::Psi>& psi1, + const psi::Psi>& psi2, + std::complex* dm_out, + const int* desc_psi, + const int* desc_dm, + int nloc_dm) +{ + ModuleBase::timer::start("psiMulPsiMpiMixed", "pcgemm"); + const std::complex one_f = {1.0f, 0.0f}, zero_f = {0.0f, 0.0f}; + const int one_int = 1; + const char N_char = 'N', T_char = 'T'; + const int nlocal = desc_dm[2]; + const int nbands = desc_psi[3]; + + std::size_t nloc_psi = psi1.size(); + std::vector> psi1_f(nloc_psi); + cast_down_to_float(psi1.get_pointer(), psi1_f.data(), nloc_psi); + std::vector> psi2_f(psi2.size()); + cast_down_to_float(psi2.get_pointer(), psi2_f.data(), psi2.size()); + + std::vector> dm_f(nloc_dm, zero_f); + + ScalapackConnector::gemm(N_char, + T_char, + nlocal, + nlocal, + nbands, + one_f, + psi1_f.data(), + one_int, + one_int, + desc_psi, + psi2_f.data(), + one_int, + one_int, + desc_psi, + zero_f, + dm_f.data(), + one_int, + one_int, + desc_dm); + cast_up_to_double(dm_f.data(), dm_out, nloc_dm); + ModuleBase::timer::end("psiMulPsiMpiMixed", "pcgemm"); } #endif @@ -268,14 +387,45 @@ void psiMulPsi(const psi::Psi>& psi1, dm_out, nlocal); } -template -void cal_dm_psi(const Parallel_Orbitals* ParaV, - const ModuleBase::matrix& wg, - const psi::Psi>& wfc, - elecstate::DensityMatrix, std::complex>& DM); -template -void cal_dm_psi(const Parallel_Orbitals* ParaV, - const ModuleBase::matrix& wg, - const psi::Psi>& wfc, - elecstate::DensityMatrix, double>& DM); + +void psiMulPsiMixed(const psi::Psi>& psi1, + const psi::Psi>& psi2, + std::complex* dm_out) +{ + const char N_char = 'N', T_char = 'T'; + const int nlocal = psi1.get_nbasis(); + const int nbands = psi1.get_nbands(); + const std::complex one_f = {1.0f, 0.0f}; + const std::complex zero_f = {0.0f, 0.0f}; + + std::size_t sz = psi1.size(); + std::vector> psi1_f(sz); + cast_down_to_float(psi1.get_pointer(), psi1_f.data(), sz); + std::vector> psi2_f(psi2.size()); + cast_down_to_float(psi2.get_pointer(), psi2_f.data(), psi2.size()); + + std::vector> dm_f(nlocal * nlocal, zero_f); + BlasConnector::gemm_cm(N_char, + T_char, + nlocal, + nlocal, + nbands, + one_f, + psi1_f.data(), + nlocal, + psi2_f.data(), + nlocal, + zero_f, + dm_f.data(), + nlocal); + cast_up_to_double(dm_f.data(), dm_out, static_cast(nlocal) * nlocal); +} + } // namespace elecstate + +// Explicit template instantiations +namespace elecstate +{ +template void cal_dm_psi(const Parallel_Orbitals*, const ModuleBase::matrix&, const psi::Psi>&, DensityMatrix, double>&); +template void cal_dm_psi>(const Parallel_Orbitals*, const ModuleBase::matrix&, const psi::Psi>&, DensityMatrix, std::complex>&); +} diff --git a/source/source_estate/module_dm/cal_dm_psi.h b/source/source_estate/module_dm/cal_dm_psi.h index a32bc8c22c..3e58c01a9e 100644 --- a/source/source_estate/module_dm/cal_dm_psi.h +++ b/source/source_estate/module_dm/cal_dm_psi.h @@ -4,6 +4,7 @@ #include "source_base/matrix.h" #include "source_psi/psi.h" #include "density_matrix.h" +#include "source_lcao/module_gint/gint_helper.h" namespace elecstate { @@ -14,6 +15,9 @@ namespace elecstate template void cal_dm_psi(const Parallel_Orbitals* ParaV, const ModuleBase::matrix& wg, const psi::Psi>& wfc, elecstate::DensityMatrix, TR>& DM); + // for Multi-k case with mixed precision (fp32 GEMM internally) + void cal_dm_psi_mixed(const Parallel_Orbitals* ParaV, const ModuleBase::matrix& wg, const psi::Psi>& wfc, elecstate::DensityMatrix, double>& DM); + // for Gamma-Only case with MPI void psiMulPsiMpi(const psi::Psi& psi1, const psi::Psi& psi2, @@ -28,6 +32,14 @@ namespace elecstate const int* desc_psi, const int* desc_dm); + // for multi-k case with MPI and fp32 GEMM + void psiMulPsiMpiMixed(const psi::Psi>& psi1, + const psi::Psi>& psi2, + std::complex* dm_out, + const int* desc_psi, + const int* desc_dm, + int nloc_dm); + // for Gamma-Only case without MPI void psiMulPsi(const psi::Psi& psi1, const psi::Psi& psi2, double* dm_out); @@ -35,5 +47,10 @@ namespace elecstate void psiMulPsi(const psi::Psi>& psi1, const psi::Psi>& psi2, std::complex* dm_out); + + // for multi-k case without MPI with fp32 GEMM + void psiMulPsiMixed(const psi::Psi>& psi1, + const psi::Psi>& psi2, + std::complex* dm_out); }; #endif diff --git a/source/source_estate/module_dm/density_matrix.cpp b/source/source_estate/module_dm/density_matrix.cpp index 586010844b..7c59593df8 100644 --- a/source/source_estate/module_dm/density_matrix.cpp +++ b/source/source_estate/module_dm/density_matrix.cpp @@ -639,6 +639,20 @@ void DensityMatrix_Tools::func_exp_mul_dmk(const std::complex kp } } +template <> +void DensityMatrix_Tools::func_exp_mul_dmk(const std::complex kphase, const std::vector> &DMK_mat_trans, float* target_DMR_mat) +{ + const std::size_t mat_size = DMK_mat_trans.size(); + const float kr = static_cast(kphase.real()); + const float ki = static_cast(kphase.imag()); + for(std::size_t i = 0; i < mat_size; i++) + { + target_DMR_mat[i] + += kr * static_cast(DMK_mat_trans[i].real()) + - ki * static_cast(DMK_mat_trans[i].imag()); + } +} + template <> void DensityMatrix_Tools::func_exp_mul_dmk>(const std::complex kphase, const std::vector> &DMK_mat_trans, std::complex* target_DMR_mat) { @@ -655,7 +669,7 @@ void DensityMatrix_Tools::func_xyz_to_updown(const std::complex { target_DMR_mat[icol + step_trace[0]] = tmp[0].real() + tmp[3].real(); // rho_0 = (rho_upup + rho_downdown).real() target_DMR_mat[icol + step_trace[1]] = tmp[1].real() + tmp[2].real(); // rho_x = (rho_updown + rho_downup).real() - target_DMR_mat[icol + step_trace[2]] = -tmp[1].imag() + tmp[2].imag(); // rho_y = -Im(rho_updown) + Im(rho_downup) + target_DMR_mat[icol + step_trace[2]] = tmp[1].imag() - tmp[2].imag(); // rho_y = Im(rho_updown - rho_downup) target_DMR_mat[icol + step_trace[3]] = tmp[0].real() - tmp[3].real(); // rho_z = (rho_upup - rho_downdown).real() } @@ -664,7 +678,7 @@ void DensityMatrix_Tools::func_xyz_to_updown>(const std::co { target_DMR_mat[icol + step_trace[0]] = tmp[0] + tmp[3]; // rho_0 = (rho_upup + rho_downdown) target_DMR_mat[icol + step_trace[1]] = tmp[1] + tmp[2]; // rho_x = (rho_updown + rho_downup) - target_DMR_mat[icol + step_trace[2]] = ModuleBase::IMAG_UNIT * (tmp[1] - tmp[2]); // rho_y = i*(rho_updown - rho_downup) + target_DMR_mat[icol + step_trace[2]] = -ModuleBase::IMAG_UNIT * (tmp[1] - tmp[2]); // rho_y = -i*(rho_updown - rho_downup) target_DMR_mat[icol + step_trace[3]] = tmp[0] - tmp[3]; // rho_z = (rho_upup - rho_downdown) } diff --git a/source/source_estate/module_dm/density_matrix.h b/source/source_estate/module_dm/density_matrix.h index 90c51e9c06..20633db494 100644 --- a/source/source_estate/module_dm/density_matrix.h +++ b/source/source_estate/module_dm/density_matrix.h @@ -60,6 +60,9 @@ namespace DensityMatrix_Tools template extern void func_exp_mul_dmk(const std::complex kphase, const std::vector> &DMK_mat_trans, TR* target_DMR_mat); + template <> + void func_exp_mul_dmk(const std::complex kphase, const std::vector> &DMK_mat_trans, float* target_DMR_mat); + template extern void func_xyz_to_updown(const std::complex tmp[4], const int icol, const int step_trace[4], TR* target_DMR_mat); } diff --git a/source/source_estate/test/CMakeLists.txt b/source/source_estate/test/CMakeLists.txt index b9118b01a5..27c6d62888 100644 --- a/source/source_estate/test/CMakeLists.txt +++ b/source/source_estate/test/CMakeLists.txt @@ -52,6 +52,9 @@ AddTest( ../occupy.cpp ../module_charge/charge_mpi.cpp ../../source_psi/psi.cpp + ../../source_psi/psi_paging.cpp + ../../source_lcao/module_deltaspin/spin_constrain.cpp + ../../source_hamilt/module_xc/xc_functional_gga_noncol_sf_builtin.cpp ../../source_base/module_device/memory_op.cpp ) diff --git a/source/source_hamilt/module_xc/CMakeLists.txt b/source/source_hamilt/module_xc/CMakeLists.txt index 5f310d09d5..4a016ed04d 100644 --- a/source/source_hamilt/module_xc/CMakeLists.txt +++ b/source/source_hamilt/module_xc/CMakeLists.txt @@ -2,6 +2,7 @@ add_library( xc_ OBJECT xc_functional.cpp + xc_functional_gga_noncol_sf_builtin.cpp xc_pot.cpp xc_grad.cpp xc_lda_wrap.cpp diff --git a/source/source_hamilt/module_xc/libxc_abacus.h b/source/source_hamilt/module_xc/libxc_abacus.h index bc584b7518..23198d8cc5 100644 --- a/source/source_hamilt/module_xc/libxc_abacus.h +++ b/source/source_hamilt/module_xc/libxc_abacus.h @@ -24,30 +24,14 @@ namespace XC_Functional_Libxc //------------------- // sets functional type, which allows combination of LIBXC keyword connected by "+" - // for example, "XC_LDA_X+XC_LDA_C_PZ" + // for example: "XC_LDA_X+XC_LDA_C_PZ" extern std::pair> set_xc_type_libxc(const std::string& xc_func_in); - /** - * @brief instantiate the XC functional by its ID, and set the external parameters if provided. - * - * @param func_id libxc ID of functional, see https://libxc.gitlab.io/functionals/ for details - * @param xc_polarized 0: unpolarized, 1: spin-polarized - * @return std::vector - * - * @note the functionality of this method is extended by supporting the user-defined - * external parameters of xc. However, there are several functionals' external - * parameters are pre-defined in the code, which herein we call those are - * "in-built" parameters. If the same functional ID is found in both in-built - * and external parameters, the external parameters will overwrite the in-built ones. - * The external parameters can be passed here by keywords xc_exch_ext and - * xc_corr_ext in the input file. The expected format would be an XC ID - * followed by a list of parameters. - */ extern std::vector init_func( const std::vector &func_id, const int xc_polarized, - const double hybrid_alpha, - const double hse_omega); + const double hybrid_alpha = 0.0, + const double hse_omega = 0.0); extern void finish_func(std::vector &funcs); @@ -65,9 +49,9 @@ namespace XC_Functional_Libxc const int nspin, const bool domag, const bool domag_z, - const std::map* scaling_factor, - const double hybrid_alpha, - const double hse_omega); + const std::map* scaling_factor = nullptr, + const double hybrid_alpha = 0.0, + const double hse_omega = 0.0); // for mGGA functional extern std::tuple v_xc_meta( @@ -77,8 +61,8 @@ namespace XC_Functional_Libxc const double tpiba, const Charge* const chr, const int nspin, - const double hybrid_alpha, - const double hse_omega); + const double hybrid_alpha = 0.0, + const double hse_omega = 0.0); //------------------- @@ -157,6 +141,34 @@ namespace XC_Functional_Libxc const std::vector &amag, const ModuleBase::matrix &v); + extern std::vector compute_mag_part_nspin4( + const std::size_t nrxx, + const Charge* const chr); + + extern std::vector>> cal_gdr_sf( + const int nspin, + const std::size_t nrxx, + const std::vector &rho, + const std::vector &mag_part, + const double tpiba, + const Charge* const chr); + + extern std::vector> cal_dh_sf( + const int nspin, + const std::size_t nrxx, + const std::vector &sgn, + const std::vector>> &gdr, + const std::vector &vsigma, + const std::vector &mag_part, + const double tpiba, + const Charge* const chr); + + extern ModuleBase::matrix convert_v_nspin4_sf( + const std::size_t nrxx, + const Charge* const chr, + const std::vector &mag_part, + const ModuleBase::matrix &v); + //------------------- // libxc_lda_wrap.cpp @@ -169,8 +181,8 @@ namespace XC_Functional_Libxc double &exc, double &vxcup, double &vxcdw, - const double hybrid_alpha, - const double hse_omega); + const double hybrid_alpha = 0.0, + const double hse_omega = 0.0); //------------------- @@ -185,8 +197,8 @@ namespace XC_Functional_Libxc double &sxc, double &v1xc, double &v2xc, - const double hybrid_alpha, - const double hse_omega); + const double hybrid_alpha = 0.0, + const double hse_omega = 0.0); // the entire GGA functional, for nspin=2 case extern void gcxc_spin_libxc( @@ -201,8 +213,8 @@ namespace XC_Functional_Libxc double &v2xcup, double &v2xcdw, double &v2xcud, - const double hybrid_alpha, - const double hse_omega); + const double hybrid_alpha = 0.0, + const double hse_omega = 0.0); //------------------- @@ -219,8 +231,8 @@ namespace XC_Functional_Libxc double &v1xc, double &v2xc, double &v3xc, - const double &hybrid_alpha, - const double &hse_omega); + const double &hybrid_alpha = 0.0, + const double &hse_omega = 0.0); extern void tau_xc_spin( const std::vector &func_id, @@ -238,8 +250,8 @@ namespace XC_Functional_Libxc double &v2xcud, double &v3xcup, double &v3xcdw, - const double &hybrid_alpha, - const double &hse_omega); + const double &hybrid_alpha = 0.0, + const double &hse_omega = 0.0); } // namespace XC_Functional_Libxc diff --git a/source/source_hamilt/module_xc/libxc_pot.cpp b/source/source_hamilt/module_xc/libxc_pot.cpp index 6f605bbd48..7812e9ebcd 100644 --- a/source/source_hamilt/module_xc/libxc_pot.cpp +++ b/source/source_hamilt/module_xc/libxc_pot.cpp @@ -66,7 +66,8 @@ std::tuple XC_Functional_Libxc::v_xc_libxc( / // converting rho std::vector rho; std::vector amag; - if(1==nspin || 2==nspin_in) + std::vector mag_part; + if(1==nspin || 2==PARAM.inp.nspin) { rho = XC_Functional_Libxc::convert_rho(nspin, nrxx, chr); } @@ -75,13 +76,24 @@ std::tuple XC_Functional_Libxc::v_xc_libxc( / std::tuple,std::vector> rho_amag = XC_Functional_Libxc::convert_rho_amag_nspin4(nspin, nrxx, chr); rho = std::get<0>(std::move(rho_amag)); amag = std::get<1>(std::move(rho_amag)); + if(PARAM.inp.gga_grad == 2 && (PARAM.globalv.domag || PARAM.globalv.domag_z)) + { + mag_part = XC_Functional_Libxc::compute_mag_part_nspin4(nrxx, chr); + } } std::vector>> gdr; std::vector sigma; if(is_gga) { - gdr = XC_Functional_Libxc::cal_gdr(nspin, nrxx, rho, tpiba, chr); + if(PARAM.inp.nspin==4 && PARAM.inp.gga_grad == 2 && (PARAM.globalv.domag || PARAM.globalv.domag_z)) + { + gdr = XC_Functional_Libxc::cal_gdr_sf(nspin, nrxx, rho, mag_part, tpiba, chr); + } + else + { + gdr = XC_Functional_Libxc::cal_gdr(nspin, nrxx, rho, tpiba, chr); + } sigma = XC_Functional_Libxc::convert_sigma(gdr); } @@ -179,7 +191,14 @@ std::tuple XC_Functional_Libxc::v_xc_libxc( / if(4==nspin_in) { - v = XC_Functional_Libxc::convert_v_nspin4(nrxx, chr, amag, v); + if(PARAM.inp.gga_grad == 2 && (PARAM.globalv.domag || PARAM.globalv.domag_z)) + { + v = XC_Functional_Libxc::convert_v_nspin4_sf(nrxx, chr, mag_part, v); + } + else + { + v = XC_Functional_Libxc::convert_v_nspin4(nrxx, chr, amag, v); + } } //------------------------------------------------- diff --git a/source/source_hamilt/module_xc/libxc_tools.cpp b/source/source_hamilt/module_xc/libxc_tools.cpp index 916732fa8d..4ba9614841 100644 --- a/source/source_hamilt/module_xc/libxc_tools.cpp +++ b/source/source_hamilt/module_xc/libxc_tools.cpp @@ -51,6 +51,28 @@ XC_Functional_Libxc::convert_rho_amag_nspin4( return std::make_tuple(std::move(rho), std::move(amag)); } +std::vector XC_Functional_Libxc::compute_mag_part_nspin4( + const std::size_t nrxx, + const Charge* const chr) +{ + std::vector mag_part(3 * nrxx, 0.0); + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + double mx = chr->rho[1][ir], my = chr->rho[2][ir], mz = chr->rho[3][ir]; + double amag = std::sqrt(mx * mx + my * my + mz * mz); + if (amag > 1e-12) + { + mag_part[ir] = mx / amag; + mag_part[ir + nrxx] = my / amag; + mag_part[ir + 2 * nrxx] = mz / amag; + } + } + return mag_part; +} + // calculating grho std::vector>> XC_Functional_Libxc::cal_gdr( @@ -213,22 +235,48 @@ std::pair XC_Functional_Libxc::convert_vtxc_v( if(func.info->family == XC_FAMILY_GGA || func.info->family == XC_FAMILY_HYB_GGA) { - const std::vector> dh = XC_Functional_Libxc::cal_dh(nspin, nrxx, sgn, gdr, vsigma, tpiba, chr); - - double rvtxc = 0.0; - #ifdef _OPENMP - #pragma omp parallel for collapse(2) reduction(+:rvtxc) schedule(static, 256) - #endif - for( int is=0; is mag_part_tmp = XC_Functional_Libxc::compute_mag_part_nspin4(nrxx, chr); + const std::vector> dh = XC_Functional_Libxc::cal_dh_sf(nspin, nrxx, sgn, gdr, vsigma, mag_part_tmp, tpiba, chr); + + constexpr int nspin4 = 4; + double rvtxc = 0.0; + #ifdef _OPENMP + #pragma omp parallel for collapse(2) reduction(+:rvtxc) schedule(static, 256) + #endif + for (int is = 0; is < nspin4; ++is) { - rvtxc += dh[is][ir] * rho[ir*nspin+is]; - v(is,ir) -= dh[is][ir]; + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + double rho_ir = 0.0; + if (is == 0) { rho_ir = rho[ir * nspin + 0]; } + else { rho_ir = rho[ir * nspin + 0] * mag_part_tmp[ir + (is - 1) * nrxx]; } + rvtxc += dh[is][ir] * rho_ir; + v(is, ir) -= dh[is][ir]; + } } + vtxc -= rvtxc; } + else + { + const std::vector> dh = XC_Functional_Libxc::cal_dh(nspin, nrxx, sgn, gdr, vsigma, tpiba, chr); + + double rvtxc = 0.0; + #ifdef _OPENMP + #pragma omp parallel for collapse(2) reduction(+:rvtxc) schedule(static, 256) + #endif + for( int is=0; isfamily == XC_FAMILY_GGA || func.info->family == XC_FAMILY_HYB_GGA)) return std::make_pair(vtxc, std::move(v)); @@ -317,4 +365,159 @@ ModuleBase::matrix XC_Functional_Libxc::convert_v_nspin4( return v_nspin4; } +std::vector>> XC_Functional_Libxc::cal_gdr_sf( + const int nspin, + const std::size_t nrxx, + const std::vector &rho, + const std::vector &mag_part, + const double tpiba, + const Charge* const chr) +{ + std::vector>> gdr(nspin); + std::vector rhor(nrxx); + std::vector> rhog(chr->rhopw->npw); + std::vector> gdr_tmp(nrxx); + + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + rhor[ir] = rho[ir * nspin + 0]; + } + chr->rhopw->real2recip(rhor.data(), rhog.data()); + gdr[0].resize(nrxx); + XC_Functional::grad_rho(rhog.data(), gdr[0].data(), chr->rhopw, tpiba); + + gdr[1].resize(nrxx); + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + gdr_tmp[ir] = gdr[0][ir]; + gdr[0][ir] = 0.5 * gdr_tmp[ir]; + gdr[1][ir] = 0.5 * gdr_tmp[ir]; + } + + for (int is = 1; is <= 3; ++is) + { + chr->rhopw->real2recip(chr->rho[is], rhog.data()); + XC_Functional::grad_rho(rhog.data(), gdr_tmp.data(), chr->rhopw, tpiba); + const double* mp = mag_part.data() + (is - 1) * nrxx; + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + const ModuleBase::Vector3 g = 0.5 * gdr_tmp[ir] * mp[ir]; + gdr[0][ir] += g; + gdr[1][ir] -= g; + } + } + + return gdr; +} + +std::vector> XC_Functional_Libxc::cal_dh_sf( + const int nspin, + const std::size_t nrxx, + const std::vector &sgn, + const std::vector>> &gdr, + const std::vector &vsigma, + const std::vector &mag_part, + const double tpiba, + const Charge* const chr) +{ + std::vector> h1(nrxx), h2(nrxx); + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + h1[ir] = 2.0 * (gdr[0][ir] * vsigma[ir*3 ] * sgn[ir*2 ] * 2.0 + + gdr[1][ir] * vsigma[ir*3+1] * sgn[ir*2] * sgn[ir*2+1]); + h2[ir] = 2.0 * (gdr[1][ir] * vsigma[ir*3+2] * sgn[ir*2+1] * 2.0 + + gdr[0][ir] * vsigma[ir*3+1] * sgn[ir*2] * sgn[ir*2+1]); + } + + std::vector> tmp_h(nrxx); + std::vector dh0(nrxx), dh_mu(nrxx); + + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + tmp_h[ir] = 0.5 * (h1[ir] + h2[ir]); + } + XC_Functional::grad_dot(tmp_h.data(), dh0.data(), chr->rhopw, tpiba); + + std::vector> dh_total(4, std::vector(nrxx, 0.0)); +#ifdef _OPENMP +#pragma omp parallel for schedule(static, 1024) +#endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + dh_total[0][ir] = dh0[ir]; + } + + for (int mu = 1; mu < 4; ++mu) + { + const double* mp_mu = mag_part.data() + (mu - 1) * nrxx; + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + tmp_h[ir] = 0.5 * (h1[ir] - h2[ir]) * mp_mu[ir]; + } + XC_Functional::grad_dot(tmp_h.data(), dh_mu.data(), chr->rhopw, tpiba); + #ifdef _OPENMP + #pragma omp parallel for schedule(static, 1024) + #endif + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + dh_total[mu][ir] = dh_mu[ir]; + } + } + + return dh_total; +} + +ModuleBase::matrix XC_Functional_Libxc::convert_v_nspin4_sf( + const std::size_t nrxx, + const Charge* const chr, + const std::vector &mag_part, + const ModuleBase::matrix &v) +{ + assert(PARAM.inp.nspin==4); + constexpr double vanishing_charge = 1.0e-10; + ModuleBase::matrix v_nspin4(PARAM.inp.nspin, nrxx); + + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + v_nspin4(0, ir) = 0.5 * (v(0, ir) + v(1, ir)); + } + + if (PARAM.globalv.domag || PARAM.globalv.domag_z) + { + for (std::size_t ir = 0; ir < nrxx; ++ir) + { + double amag = std::sqrt(std::pow(chr->rho[1][ir], 2) + + std::pow(chr->rho[2][ir], 2) + + std::pow(chr->rho[3][ir], 2)); + if (amag > vanishing_charge) + { + const double vs = 0.5 * (v(0, ir) - v(1, ir)); + for (int ipol = 1; ipol < PARAM.inp.nspin; ++ipol) + { + v_nspin4(ipol, ir) = vs * mag_part[ir + (ipol - 1) * nrxx]; + } + } + } + } + return v_nspin4; +} + #endif diff --git a/source/source_hamilt/module_xc/test/CMakeLists.txt b/source/source_hamilt/module_xc/test/CMakeLists.txt index 34634eae02..e014d905cc 100644 --- a/source/source_hamilt/module_xc/test/CMakeLists.txt +++ b/source/source_hamilt/module_xc/test/CMakeLists.txt @@ -71,6 +71,7 @@ AddTest( ../xc_gga_corr.cpp ../xc_lda_corr.cpp ../xc_gga_exch.cpp ../xc_lda_exch.cpp ../xc_hcth.cpp ../xc_pot.cpp + ../xc_functional_gga_noncol_sf_builtin.cpp ../libxc_pot.cpp ../libxc_tools.cpp ../../../source_base/module_external/blas_connector_base.cpp ../../../source_base/module_external/blas_connector_vector.cpp ../../../source_base/module_external/blas_connector_matrix.cpp diff --git a/source/source_hamilt/module_xc/xc_functional.h b/source/source_hamilt/module_xc/xc_functional.h index 540469b81e..5808ea2646 100644 --- a/source/source_hamilt/module_xc/xc_functional.h +++ b/source/source_hamilt/module_xc/xc_functional.h @@ -249,15 +249,13 @@ class XC_Functional double* dh, const ModulePW::PW_Basis* rho_basis, const double tpiba); - - static void noncolin_rho( - double* rhoout1, - double* rhoout2, - double* seg, - const double* const* const rho, - const int nrxx, - const double* ux_, - const bool lsign_); + static void noncolin_rho(double* rhoout1, + double* rhoout2, + double* neg, + const double* const* const rho, + const int nrxx, + const double* ux_, + const bool lsign_); //------------------- // xc_lda_exch.cpp diff --git a/source/source_hamilt/module_xc/xc_functional_gga_noncol_sf_builtin.cpp b/source/source_hamilt/module_xc/xc_functional_gga_noncol_sf_builtin.cpp new file mode 100644 index 0000000000..eeaa792c77 --- /dev/null +++ b/source/source_hamilt/module_xc/xc_functional_gga_noncol_sf_builtin.cpp @@ -0,0 +1,308 @@ +#include "xc_functional_gga_noncol_sf_builtin.h" + +#include "source_base/parallel_reduce.h" +#include "source_base/timer.h" +#include "source_base/vector3.h" +#include "source_basis/module_pw/pw_basis.h" +#include "source_cell/unitcell.h" +#include "source_io/module_parameter/parameter.h" +#include "xc_functional.h" + +#include +#include + +namespace ModuleXC +{ +namespace NCGGA_SF_Builtin +{ + +std::tuple v_xc_ncgga_sf_builtin( + const int& nrxx, const double& omega, const double tpiba, const Charge* const chr) +{ + ModuleBase::TITLE("XC_Functional", "v_xc_ncgga_sf_builtin"); + ModuleBase::timer::start("XC_Functional", "v_xc_ncgga_sf_builtin"); + + if (PARAM.inp.nspin != 4 || (!PARAM.globalv.domag && !PARAM.globalv.domag_z)) + throw std::domain_error("v_xc_ncgga_sf_builtin requires NSPIN==4."); + + ModulePW::PW_Basis* rhopw = chr->rhopw; + const int npw = rhopw->npw; + const double e2 = ModuleBase::e2; + constexpr double vanishing = 1e-10; + constexpr double epsr = 1e-6; + const double fac = 0.5; + const bool is_gga = (XC_Functional::get_func_type() == 2 || XC_Functional::get_func_type() == 4); + + std::vector rhotmp1(nrxx), rhotmp2(nrxx), amag(nrxx); + std::vector mag_part(3 * nrxx, 0.0); + + for (int ir = 0; ir < nrxx; ++ir) + { + const double mx = chr->rho[1][ir], my = chr->rho[2][ir], mz = chr->rho[3][ir]; + amag[ir] = std::sqrt(mx * mx + my * my + mz * mz); + rhotmp1[ir] = 0.5 * (chr->rho[0][ir] + amag[ir]); + rhotmp2[ir] = 0.5 * (chr->rho[0][ir] - amag[ir]); + if (amag[ir] > 1e-12) + { + mag_part[ir] = mx / amag[ir]; + mag_part[ir + nrxx] = my / amag[ir]; + mag_part[ir + 2 * nrxx] = mz / amag[ir]; + } + } + for (int ir = 0; ir < nrxx; ++ir) + { + rhotmp1[ir] += fac * chr->rho_core[ir]; + rhotmp2[ir] += fac * chr->rho_core[ir]; + } + + std::vector> rhogsum1(npw), tmp_recip(npw); + rhopw->real2recip(chr->rho[0], rhogsum1.data()); + for (int ig = 0; ig < npw; ++ig) + rhogsum1[ig] += chr->rhog_core[ig]; + + std::vector> gdr1(nrxx), gdr2(nrxx); + std::vector> gdr_mag(nrxx); + XC_Functional::grad_rho(rhogsum1.data(), gdr1.data(), rhopw, tpiba); + + for (int ir = 0; ir < nrxx; ++ir) + { + gdr_mag[ir] = gdr1[ir]; + gdr1[ir] = 0.5 * gdr_mag[ir]; + gdr2[ir] = 0.5 * gdr_mag[ir]; + } + for (int is = 1; is <= 3; ++is) + { + rhopw->real2recip(chr->rho[is], tmp_recip.data()); + XC_Functional::grad_rho(tmp_recip.data(), gdr_mag.data(), rhopw, tpiba); + const double* mp = mag_part.data() + (is - 1) * nrxx; + for (int ir = 0; ir < nrxx; ++ir) + { + const ModuleBase::Vector3 g = 0.5 * gdr_mag[ir] * mp[ir]; + gdr1[ir] += g; + gdr2[ir] -= g; + } + } + + double etxc = 0, vtxc = 0; + ModuleBase::matrix v(PARAM.inp.nspin, nrxx); + + for (int ir = 0; ir < nrxx; ++ir) + { + const double arho = std::abs(chr->rho[0][ir] + chr->rho_core[ir]); + if (arho <= vanishing) + continue; + + double zeta = amag[ir] / arho; + if (std::abs(zeta) > 1.0) + zeta = (zeta > 0) ? 1.0 : -1.0; + double exc = 0, vxc[2] = {0, 0}; + XC_Functional::xc_spin(arho, zeta, exc, vxc[0], vxc[1]); + + v(0, ir) = e2 * 0.5 * (vxc[0] + vxc[1]); + vtxc += v(0, ir) * chr->rho[0][ir]; + + if (amag[ir] > vanishing) + { + const double vs = e2 * 0.5 * (vxc[0] - vxc[1]); + const double inv_a = 1.0 / amag[ir]; + for (int mu = 1; mu < 4; ++mu) + { + v(mu, ir) = vs * chr->rho[mu][ir] * inv_a; + vtxc += v(mu, ir) * chr->rho[mu][ir]; + } + } + etxc += e2 * exc * arho; + } + + if (is_gga) + { + double etxcgc = 0, vtxcgc = 0; + std::vector vup_gga(nrxx, 0), vdw_gga(nrxx, 0); + std::vector> h1(nrxx), h2(nrxx); + + for (int ir = 0; ir < nrxx; ++ir) + { + double sx = 0, v1xup = 0, v1xdw = 0, v2xup = 0, v2xdw = 0; + double sc = 0, v1cup = 0, v1cdw = 0, v2c = 0; + const double grho2a = gdr1[ir] * gdr1[ir]; + const double grho2b = gdr2[ir] * gdr2[ir]; + const double rh = rhotmp1[ir] + rhotmp2[ir]; + + XC_Functional::gcx_spin(rhotmp1[ir], rhotmp2[ir], grho2a, grho2b, + sx, v1xup, v1xdw, v2xup, v2xdw); + + if (rh > epsr) + { + double zeta = (rhotmp1[ir] - rhotmp2[ir]) / rh; + zeta = std::fabs(zeta); + const double grh2 = (gdr1[ir] + gdr2[ir]) * (gdr1[ir] + gdr2[ir]); + XC_Functional::gcc_spin(rh, zeta, grh2, sc, v1cup, v1cdw, v2c); + } + + vup_gga[ir] = e2 * (v1xup + v1cup); + vdw_gga[ir] = e2 * (v1xdw + v1cdw); + + const double v2cup = v2c, v2cdw = v2c, v2cud = v2c; + h1[ir] = e2 * ((v2xup + v2cup) * gdr1[ir] + v2cud * gdr2[ir]); + h2[ir] = e2 * ((v2xdw + v2cdw) * gdr2[ir] + v2cud * gdr1[ir]); + + vtxcgc += vup_gga[ir] * (rhotmp1[ir] - chr->rho_core[ir] * fac); + vtxcgc += vdw_gga[ir] * (rhotmp2[ir] - chr->rho_core[ir] * fac); + etxcgc += e2 * (sx + sc); + } + + for (int ir = 0; ir < nrxx; ++ir) + { + v(0, ir) += 0.5 * (vup_gga[ir] + vdw_gga[ir]); + const double vdiff = 0.5 * (vup_gga[ir] - vdw_gga[ir]); + for (int mu = 1; mu < 4; ++mu) + { + v(mu, ir) += vdiff * mag_part[ir + (mu - 1) * nrxx]; + } + } + + std::vector dh(nrxx); + std::vector> tmp_h(nrxx); + + for (int ir = 0; ir < nrxx; ++ir) + tmp_h[ir] = 0.5 * (h1[ir] + h2[ir]); + XC_Functional::grad_dot(tmp_h.data(), dh.data(), rhopw, tpiba); + for (int ir = 0; ir < nrxx; ++ir) + v(0, ir) -= dh[ir]; + double sum = 0; + for (int ir = 0; ir < nrxx; ++ir) + sum += dh[ir] * chr->rho[0][ir]; + vtxcgc -= sum; + + for (int mu = 1; mu < 4; ++mu) + { + const double* mp = mag_part.data() + (mu - 1) * nrxx; + for (int ir = 0; ir < nrxx; ++ir) + tmp_h[ir] = 0.5 * (h1[ir] - h2[ir]) * mp[ir]; + XC_Functional::grad_dot(tmp_h.data(), dh.data(), rhopw, tpiba); + for (int ir = 0; ir < nrxx; ++ir) + v(mu, ir) -= dh[ir]; + double sum_mu = 0; + for (int ir = 0; ir < nrxx; ++ir) + sum_mu += dh[ir] * chr->rho[mu][ir]; + vtxcgc -= sum_mu; + } + + etxc += etxcgc; + vtxc += vtxcgc; + } + +#ifdef __MPI + Parallel_Reduce::reduce_pool(etxc); + Parallel_Reduce::reduce_pool(vtxc); +#endif + etxc *= omega / rhopw->nxyz; + vtxc *= omega / rhopw->nxyz; + + ModuleBase::timer::end("XC_Functional", "v_xc_ncgga_sf_builtin"); + return std::make_tuple(etxc, vtxc, std::move(v)); +} + +void gradcorr_ncgga_sf_builtin(const Charge* const chr, ModulePW::PW_Basis* rhopw, + const UnitCell* ucell, std::vector& stress_gga) +{ + stress_gga.assign(9, 0.0); + + const int nrxx = rhopw->nrxx; + const int npw = rhopw->npw; + const double e2 = ModuleBase::e2; + constexpr double epsr = 1.0e-6; + constexpr double small = 1.0e-10; + const double fac = 0.5; + + std::vector rhotmp1(nrxx), rhotmp2(nrxx), amag_arr(nrxx); + std::vector mag_part(3 * nrxx, 0.0); + + for (int ir = 0; ir < nrxx; ++ir) + { + const double mx = chr->rho[1][ir], my = chr->rho[2][ir], mz = chr->rho[3][ir]; + double amag = std::sqrt(mx * mx + my * my + mz * mz); + amag_arr[ir] = amag; + rhotmp1[ir] = 0.5 * (chr->rho[0][ir] + amag); + rhotmp2[ir] = 0.5 * (chr->rho[0][ir] - amag); + if (amag > 1e-12) + { + mag_part[ir] = mx / amag; + mag_part[ir + nrxx] = my / amag; + mag_part[ir + 2 * nrxx] = mz / amag; + } + } + for (int ir = 0; ir < nrxx; ++ir) + { + rhotmp1[ir] += fac * chr->rho_core[ir]; + rhotmp2[ir] += fac * chr->rho_core[ir]; + } + + std::vector> rhogsum1(npw), tmp_recip(npw); + rhopw->real2recip(chr->rho[0], rhogsum1.data()); + for (int ig = 0; ig < npw; ++ig) + rhogsum1[ig] += chr->rhog_core[ig]; + + std::vector> gdr1(nrxx), gdr2(nrxx); + std::vector> gdr_mag(nrxx); + XC_Functional::grad_rho(rhogsum1.data(), gdr1.data(), rhopw, ucell->tpiba); + + for (int ir = 0; ir < nrxx; ++ir) + { + gdr_mag[ir] = gdr1[ir]; + gdr1[ir] = 0.5 * gdr_mag[ir]; + gdr2[ir] = 0.5 * gdr_mag[ir]; + } + for (int is = 1; is <= 3; ++is) + { + rhopw->real2recip(chr->rho[is], tmp_recip.data()); + XC_Functional::grad_rho(tmp_recip.data(), gdr_mag.data(), rhopw, ucell->tpiba); + const double* mp = mag_part.data() + (is - 1) * nrxx; + for (int ir = 0; ir < nrxx; ++ir) + { + const ModuleBase::Vector3 g = 0.5 * gdr_mag[ir] * mp[ir]; + gdr1[ir] += g; + gdr2[ir] -= g; + } + } + + for (int ir = 0; ir < nrxx; ++ir) + { + double sx = 0, v1xup = 0, v1xdw = 0, v2xup = 0, v2xdw = 0; + double sc = 0, v1cup = 0, v1cdw = 0, v2c = 0; + double v2cup = 0, v2cdw = 0, v2cud = 0; + const double grho2a = gdr1[ir] * gdr1[ir]; + const double grho2b = gdr2[ir] * gdr2[ir]; + const double rh = rhotmp1[ir] + rhotmp2[ir]; + + XC_Functional::gcx_spin(rhotmp1[ir], rhotmp2[ir], grho2a, grho2b, + sx, v1xup, v1xdw, v2xup, v2xdw); + + if (rh > epsr) + { + double zeta = (rhotmp1[ir] - rhotmp2[ir]) / rh; + zeta = std::fabs(zeta); + const double grh2 = (gdr1[ir] + gdr2[ir]) * (gdr1[ir] + gdr2[ir]); + XC_Functional::gcc_spin(rh, zeta, grh2, sc, v1cup, v1cdw, v2c); + v2cup = v2c; + v2cdw = v2c; + v2cud = v2c; + } + + double tt1[3] = {gdr1[ir].x, gdr1[ir].y, gdr1[ir].z}; + double tt2[3] = {gdr2[ir].x, gdr2[ir].y, gdr2[ir].z}; + for (int l = 0; l < 3; l++) + { + for (int m = 0; m < l + 1; m++) + { + int ind = l * 3 + m; + stress_gga[ind] += e2 * (tt1[l] * tt1[m] * v2xup + tt2[l] * tt2[m] * v2xdw); + stress_gga[ind] += e2 * (tt1[l] * tt1[m] * v2cup + tt2[l] * tt2[m] * v2cdw + + (tt1[l] * tt2[m] + tt2[l] * tt1[m]) * v2cud); + } + } + } +} + +} // namespace NCGGA_SF_Builtin +} // namespace ModuleXC diff --git a/source/source_hamilt/module_xc/xc_functional_gga_noncol_sf_builtin.h b/source/source_hamilt/module_xc/xc_functional_gga_noncol_sf_builtin.h new file mode 100644 index 0000000000..fa615224ee --- /dev/null +++ b/source/source_hamilt/module_xc/xc_functional_gga_noncol_sf_builtin.h @@ -0,0 +1,30 @@ +#ifndef XC_FUNCTIONAL_GGA_NONCOL_SF_BUILTIN_H +#define XC_FUNCTIONAL_GGA_NONCOL_SF_BUILTIN_H + +#include "source_base/matrix.h" +#include "source_estate/module_charge/charge.h" + +#include +#include + +namespace ModulePW +{ +class PW_Basis; +} +struct UnitCell; + +namespace ModuleXC +{ +namespace NCGGA_SF_Builtin +{ + +std::tuple v_xc_ncgga_sf_builtin( + const int& nrxx, const double& omega, const double tpiba, const Charge* const chr); + +void gradcorr_ncgga_sf_builtin(const Charge* const chr, ModulePW::PW_Basis* rhopw, + const UnitCell* ucell, std::vector& stress_gga); + +} // namespace NCGGA_SF_Builtin +} // namespace ModuleXC + +#endif diff --git a/source/source_hamilt/module_xc/xc_pot.cpp b/source/source_hamilt/module_xc/xc_pot.cpp index 1f8a3dcd32..6627b22698 100644 --- a/source/source_hamilt/module_xc/xc_pot.cpp +++ b/source/source_hamilt/module_xc/xc_pot.cpp @@ -9,6 +9,8 @@ #include "source_io/module_parameter/parameter.h" #include "xc_functional.h" +#include "xc_functional_gga_noncol_sf_builtin.h" + #ifdef __LIBXC #include "libxc_abacus.h" #ifdef __EXX @@ -16,6 +18,8 @@ #endif #endif + + // [etxc, vtxc, v] = XC_Functional::v_xc(...) std::tuple XC_Functional::v_xc( const int& nrxx, @@ -48,6 +52,11 @@ std::tuple XC_Functional::v_xc( #endif } + if (PARAM.inp.nspin == 4 && (PARAM.globalv.domag || PARAM.globalv.domag_z) && PARAM.inp.gga_grad == 3) + { + return ModuleXC::NCGGA_SF_Builtin::v_xc_ncgga_sf_builtin(nrxx, ucell->omega, ucell->tpiba, chr); + } + ModuleBase::timer::start("XC_Functional", "v_xc"); //Exchange-Correlation potential Vxc(r) from n(r) diff --git a/source/source_hsolver/diago_dav_subspace.cpp b/source/source_hsolver/diago_dav_subspace.cpp index 96501fd6c0..a5c76ba155 100644 --- a/source/source_hsolver/diago_dav_subspace.cpp +++ b/source/source_hsolver/diago_dav_subspace.cpp @@ -1,5 +1,7 @@ #include "diago_dav_subspace.h" +#include + #include "diago_iter_assist.h" #include "source_base/module_device/device.h" @@ -103,6 +105,8 @@ Diago_DavSubspace::~Diago_DavSubspace() delmem_real_op()(this->d_precondition); delmem_complex_op()(this->d_scc); delmem_real_op()(this->d_eigenvalue); + delmem_complex_h_op()(this->hcc_h); + delmem_complex_h_op()(this->scc_h); } #endif } @@ -275,17 +279,21 @@ int Diago_DavSubspace::diag_once(const HPsiFunc& hpsi_func, template void Diago_DavSubspace::cal_grad(const HPsiFunc& hpsi_func, - const HPsiFunc& spsi_func, - const int& dim, - const int& nbase, - const int& notconv, - T* psi_iter, - T* hpsi, - T* spsi, - T* vcc, - const int* unconv, - std::vector* eigenvalue_iter) + const HPsiFunc& spsi_func, + const int& dim, + const int& nbase, + const int& notconv_ref, + T* psi_iter, + T* hpsi, + T* spsi, + T* vcc, + const int* unconv, + std::vector* eigenvalue_iter) { + // Local copy: notconv_ref is a reference to this->notconv which may be + // modified to 0 inside this function (all_zero path). We need the original + // value for the remainder of the function. + const int notconv = notconv_ref; ModuleBase::timer::start("Diago_DavSubspace", "cal_grad"); for (size_t i = 0; i < notconv; i++) @@ -436,13 +444,23 @@ void Diago_DavSubspace::cal_grad(const HPsiFunc& hpsi_func, { if (psi_norm_host[i] <= 1.0e-12) { - std::cout << "Diago_DavSubspace::cal_grad: psi_norm <= 0 for band " << i << std::endl; - std::cout << "This may be due to npwx < nbands: the number of plane waves is less than" << std::endl; - std::cout << "the number of bands, leading to a rank-deficient problem." << std::endl; - std::cout << "Please increase ecutwfc or reduce nbands." << std::endl; - delmem_real_h_op()(psi_norm_host); - delmem_real_op()(psi_norm); - ModuleBase::WARNING_QUIT("cal_grad", "psi_norm <= 0"); + std::cout << "Diago_DavSubspace::cal_grad: norm of new direction for band " << i + << " is too small, treating as converged." << std::endl; + } + } + { + bool all_zero = true; + for (int i = 0; i < notconv; i++) + { + if (psi_norm_host[i] > 1.0e-12) + { + all_zero = false; + break; + } + } + if (all_zero && notconv > 0) + { + this->notconv = 0; } } delmem_real_h_op()(psi_norm_host); @@ -466,12 +484,23 @@ void Diago_DavSubspace::cal_grad(const HPsiFunc& hpsi_func, { if (psi_norm[i] <= 1.0e-12) { - std::cout << "Diago_DavSubspace::cal_grad: psi_norm <= 0 for band " << i << std::endl; - std::cout << "This may be due to npwx < nbands: the number of plane waves is less than" << std::endl; - std::cout << "the number of bands, leading to a rank-deficient problem." << std::endl; - std::cout << "Please increase ecutwfc or reduce nbands." << std::endl; - delmem_real_h_op()(psi_norm); - ModuleBase::WARNING_QUIT("cal_grad", "psi_norm <= 0"); + std::cout << "Diago_DavSubspace::cal_grad: norm of new direction for band " << i + << " is too small, treating as converged." << std::endl; + } + } + { + bool all_zero = true; + for (int i = 0; i < notconv; i++) + { + if (psi_norm[i] > 1.0e-12) + { + all_zero = false; + break; + } + } + if (all_zero && notconv > 0) + { + this->notconv = 0; } } delmem_real_h_op()(psi_norm); @@ -585,8 +614,30 @@ void Diago_DavSubspace::cal_elem(const int& dim, mtfunc::dsp_dav_subspace_reduce(hcc, scc, nbase, this->nbase_x, this->notconv, this->diag_comm.comm); #else assert(this->diag_comm.comm == POOL_WORLD); - Parallel_Reduce::reduce_pool(hcc + nbase * this->nbase_x, notconv * this->nbase_x); - Parallel_Reduce::reduce_pool(scc + nbase * this->nbase_x, notconv * this->nbase_x); + // For GPU, need to copy to CPU before MPI reduction + if constexpr (std::is_same::value) + { + // Allocate CPU buffers if needed + if (this->hcc_h == nullptr) + { + resmem_complex_h_op()(this->hcc_h, this->nbase_x * this->nbase_x, "DAV::hcc_h"); + resmem_complex_h_op()(this->scc_h, this->nbase_x * this->nbase_x, "DAV::scc_h"); + } + // Copy from GPU to CPU + syncmem_d2h_op()(this->hcc_h, hcc + nbase * this->nbase_x, notconv * this->nbase_x); + syncmem_d2h_op()(this->scc_h, scc + nbase * this->nbase_x, notconv * this->nbase_x); + // Reduce on CPU + Parallel_Reduce::reduce_pool(this->hcc_h, notconv * this->nbase_x); + Parallel_Reduce::reduce_pool(this->scc_h, notconv * this->nbase_x); + // Copy back to GPU + syncmem_h2d_op()(hcc + nbase * this->nbase_x, this->hcc_h, notconv * this->nbase_x); + syncmem_h2d_op()(scc + nbase * this->nbase_x, this->scc_h, notconv * this->nbase_x); + } + else + { + Parallel_Reduce::reduce_pool(hcc + nbase * this->nbase_x, notconv * this->nbase_x); + Parallel_Reduce::reduce_pool(scc + nbase * this->nbase_x, notconv * this->nbase_x); + } #endif } #endif @@ -615,9 +666,24 @@ void Diago_DavSubspace::diag_zhegvx(const int& nbase, #if defined(__CUDA) || defined(__ROCM) if (this->diag_comm.rank == 0) { - syncmem_complex_op()(this->d_scc, scc, nbase * this->nbase_x); - ct::kernels::lapack_hegvd()(nbase, this->nbase_x, this->hcc, this->d_scc, this->d_eigenvalue, this->vcc); - syncmem_var_d2h_op()((*eigenvalue_iter).data(), this->d_eigenvalue, this->nbase_x); + // Copy hcc and scc from GPU to CPU for robust eigensolving + std::vector hcc_h(nbase * this->nbase_x, *this->zero); + std::vector scc_h(nbase * this->nbase_x, *this->zero); + syncmem_d2h_op()(hcc_h.data(), this->hcc, nbase * this->nbase_x); + syncmem_d2h_op()(scc_h.data(), scc, nbase * this->nbase_x); + + // Solve on CPU using hegvx (more robust than hegvd for ill-conditioned overlap) + std::vector vcc_h(nbase * this->nbase_x, *this->zero); + hegvx_op()(this->cpu_ctx, + nbase, + this->nbase_x, + hcc_h.data(), + scc_h.data(), + nband, + (*eigenvalue_iter).data(), + vcc_h.data()); + // Copy eigenvectors back to GPU + syncmem_h2d_op()(this->vcc, vcc_h.data(), nbase * this->nbase_x); } #endif } @@ -715,9 +781,25 @@ void Diago_DavSubspace::diag_zhegvx(const int& nbase, if (this->diag_comm.nproc > 1) { // vcc: nbase * nband - for (int i = 0; i < nband; i++) + if constexpr (std::is_same::value) { - MPI_Bcast(&vcc[i * this->nbase_x], nbase, MPI_DOUBLE_COMPLEX, 0, this->diag_comm.comm); + // Copy vcc from GPU to CPU for MPI broadcast + T* vcc_h = nullptr; + resmem_complex_h_op()(vcc_h, nband * this->nbase_x, "DAV::vcc_h"); + syncmem_d2h_op()(vcc_h, vcc, nband * this->nbase_x); + for (int i = 0; i < nband; i++) + { + MPI_Bcast(&vcc_h[i * this->nbase_x], nbase, MPI_DOUBLE_COMPLEX, 0, this->diag_comm.comm); + } + syncmem_h2d_op()(vcc, vcc_h, nband * this->nbase_x); + delmem_complex_h_op()(vcc_h); + } + else + { + for (int i = 0; i < nband; i++) + { + MPI_Bcast(&vcc[i * this->nbase_x], nbase, MPI_DOUBLE_COMPLEX, 0, this->diag_comm.comm); + } } MPI_Bcast((*eigenvalue_iter).data(), nband, MPI_DOUBLE, 0, this->diag_comm.comm); } @@ -795,6 +877,14 @@ void Diago_DavSubspace::refresh(const int& dim, if (this->device == base_device::GpuDevice) { +#if defined(__CUDA) || defined(__ROCM) + // this->d_eigenvalue was last synced inside cal_grad, i.e. BEFORE the + // latest diag_zhegvx. eigenvalue_in_hsolver holds the up-to-date + // eigenvalues, so refresh the device copy here; otherwise the restarted + // subspace Hamiltonian gets a stale diagonal and the Davidson + // iteration diverges on GPU. + syncmem_var_h2d_op()(this->d_eigenvalue, eigenvalue_in_hsolver, nband); +#endif refresh_hcc_scc_vcc_op()(nbase, hcc, scc, vcc, this->nbase_x, this->d_eigenvalue, this->one_); } else diff --git a/source/source_hsolver/diago_dav_subspace.h b/source/source_hsolver/diago_dav_subspace.h index 43e0304729..46881b17fb 100644 --- a/source/source_hsolver/diago_dav_subspace.h +++ b/source/source_hsolver/diago_dav_subspace.h @@ -190,12 +190,18 @@ class Diago_DavSubspace using syncmem_h2d_op = base_device::memory::synchronize_memory_op; using syncmem_d2h_op = base_device::memory::synchronize_memory_op; + using resmem_complex_h_op = base_device::memory::resize_memory_op; + using delmem_complex_h_op = base_device::memory::delete_memory_op; + // Note that ct_Device is different from base_device! using ct_Device = typename ct::PsiToContainer::type; // using hegvd_op = container::kernels::lapack_hegvd; const T *one = nullptr, *zero = nullptr, *neg_one = nullptr; const T one_ = static_cast(1.0), zero_ = static_cast(0.0), neg_one_ = static_cast(-1.0); + + T* hcc_h = nullptr; + T* scc_h = nullptr; }; } // namespace hsolver diff --git a/source/source_hsolver/hsolver_lcao.cpp b/source/source_hsolver/hsolver_lcao.cpp index 99a8a4d3a5..e9e7073ada 100644 --- a/source/source_hsolver/hsolver_lcao.cpp +++ b/source/source_hsolver/hsolver_lcao.cpp @@ -161,7 +161,6 @@ void HSolverLCAO::hamiltSolvePsiK(hamilt::Hamilt* hm, psi::Psi& #ifdef __CUDA else if (this->method == "cusolver") { - // Note: This branch will only be executed in the single-process case DiagoCusolver cu; hamilt::MatrixBlock hk, sk; hm->matrix(hk, sk); diff --git a/source/source_hsolver/hsolver_pw.cpp b/source/source_hsolver/hsolver_pw.cpp index b88bc3b90d..246f2b9728 100644 --- a/source/source_hsolver/hsolver_pw.cpp +++ b/source/source_hsolver/hsolver_pw.cpp @@ -110,13 +110,15 @@ void HSolverPW::solve(hamilt::Hamilt* pHamilt, // update H(k) for each k point pHamilt->updateHk(ik); - + psi.load_k_to_gpu(ik); // update psi pointer for each k point psi.fix_k(ik); // If using k-point continuity and not first k-point, propagate from parent - if (ik > 0 && count == 0 && k_parent.find(ik) != k_parent.end()) { + // Skip in PAGED_GPU mode: only one k-point resides on GPU at a time + if (ik > 0 && count == 0 && k_parent.find(ik) != k_parent.end() + && psi.get_storage_mode() != psi::PsiStorageMode::PAGED_GPU) { propagate_psi(psi, k_parent[ik], ik); } @@ -137,6 +139,8 @@ void HSolverPW::solve(hamilt::Hamilt* pHamilt, // solve eigenvector and eigenvalue for H(k) this->hamiltSolvePsiK(pHamilt, psi, precondition, eigenvalues.data() + ik * psi.get_nbands(), this->wfc_basis->nks); + psi.store_k_from_gpu(ik); + if (skip_charge) { GlobalV::ofs_running << " Average iterative diagonalization steps for k-points " << ik @@ -153,7 +157,7 @@ void HSolverPW::solve(hamilt::Hamilt* pHamilt, // update H(k) for each k point pHamilt->updateHk(ik); - + psi.load_k_to_gpu(ik); // update psi pointer for each k point psi.fix_k(ik); @@ -175,6 +179,8 @@ void HSolverPW::solve(hamilt::Hamilt* pHamilt, // solve eigenvector and eigenvalue for H(k) this->hamiltSolvePsiK(pHamilt, psi, precondition, eigenvalues.data() + ik * psi.get_nbands(), this->wfc_basis->nks); + psi.store_k_from_gpu(ik); + // output iteration information and reset avg_iter if (skip_charge) { diff --git a/source/source_hsolver/kernels/cuda/diag_cusolvermp.cu b/source/source_hsolver/kernels/cuda/diag_cusolvermp.cu index c53139897f..345d415ac0 100644 --- a/source/source_hsolver/kernels/cuda/diag_cusolvermp.cu +++ b/source/source_hsolver/kernels/cuda/diag_cusolvermp.cu @@ -58,18 +58,18 @@ Diag_CusolverMP_gvd::Diag_CusolverMP_gvd(const MPI_Comm mpi_comm, const int nacols, const int* desc) { - // 构造函数的实现 + // Constructor implementation this->cblacs_ctxt = desc[1]; this->nFull = desc[2]; // 20240529 zhanghaochong - // set mb and nb is not nessary, but I keep it here for the code consistency. - // Because in ABACUS, mb always equals to nb + // Setting mb and nb is not necessary, but kept for code consistency. + // In ABACUS, mb always equals nb. const int mb = desc[4]; const int nb = desc[5]; // 20240529 zhanghaochong - // so far, cusolverMpSygvd only support rsrc == 0 and csrc == 0 + // So far, cusolverMpSygvd only supports rsrc == 0 and csrc == 0 const int rsrc = desc[6]; const int csrc = desc[7]; @@ -106,7 +106,7 @@ Diag_CusolverMP_gvd::Diag_CusolverMP_gvd(const MPI_Comm mpi_comm, CHECK_CUSOLVER(cusolverMpCreate(&cusolverMpHandle, local_device_id, this->localStream)); // 20240529 zhanghaochong - // so far, cusolvermp only support = 1 + // So far, cusolverMp only supports matrix_i = 1 this->matrix_i = 1; this->matrix_j = 1; this->m_local = narows; @@ -125,11 +125,11 @@ Diag_CusolverMP_gvd::Diag_CusolverMP_gvd(const MPI_Comm mpi_comm, } // 20240529 zhanghaochong - // the cpu mpi process blacs grid and multi gpu process blacs grid is the SAME - // Setting them the same is not a natural result, but a result that I forced and artificially specified. - // This is because the current implementation of the cusolvermp library is ONE process ONE GPU. - // So, when we use cusolvermp, we must ensure that the number of processes is equal to the number of GPUs. - // In a sense, the MPI usage strategy of ABACUS must be subject to the cusolvermp. + // The CPU MPI process BLACS grid and multi-GPU process BLACS grid are the SAME. + // Setting them the same is not a natural result, but artificially enforced. + // This is because the current cusolverMp library implementation uses one process per GPU. + // Therefore, when using cusolverMp, the number of processes must equal the number of GPUs. + // The MPI usage strategy in ABACUS must conform to cusolverMp requirements. // Use ROW_MAJOR to match BLACS grid initialization (order='R' in parallel_2d.cpp) CHECK_CUSOLVER(cusolverMpCreateDeviceGrid(cusolverMpHandle, &this->grid, @@ -143,9 +143,9 @@ Diag_CusolverMP_gvd::Diag_CusolverMP_gvd(const MPI_Comm mpi_comm, CUSOLVERMP_GRID_MAPPING_ROW_MAJOR)); // 20240529 zhanghaochong - // Actually, there should be three matrix descriptors, A matrix, B matrix, and output eigenvector matrix. - // But in ABACUS the three matrices descriptors are the same. - // So, I only create one matrix descriptor and use it for the three matrices. + // There should be three matrix descriptors: A matrix, B matrix, and output eigenvector matrix. + // However, in ABACUS all three matrix descriptors are identical. + // Therefore, only one matrix descriptor is created and reused for all three matrices. CHECK_CUSOLVER(cusolverMpCreateMatrixDesc(&this->desc_for_cusolvermp, this->grid, this->datatype, @@ -282,12 +282,11 @@ int Diag_CusolverMP_gvd::generalized_eigenvector(inputT* A, inputT* B, o this->n_local * this->m_local * sizeof(inputT), cudaMemcpyDeviceToHost)); // 20240529 zhanghaochong - // I move the free operations from destructor to here. - // Because I think it is more reasonable to free the memory in the function where it is allocated. - // Destructor is used to release resources that allocated in the constructor. - // And currently, we construct and destruct the object in every SCF iteration. Maybe one day we - // will construct the object only once during the whole program life cycle. - // In that case, allocate and free memory in compute function is more reasonable. + // Memory deallocation moved from destructor to here for better resource management. + // The destructor should release resources allocated in the constructor. + // Currently, the object is constructed and destructed every SCF iteration. + // In the future, the object may be constructed once during the entire program lifecycle. + // Allocating and freeing memory in the compute function is more appropriate in that case. CHECK_CUDA(cudaFree(d_A)); CHECK_CUDA(cudaFree(d_B)); CHECK_CUDA(cudaFree(d_D)); diff --git a/source/source_hsolver/module_genelpa/elpa_new.cpp b/source/source_hsolver/module_genelpa/elpa_new.cpp index dc590c7132..0a736c470b 100644 --- a/source/source_hsolver/module_genelpa/elpa_new.cpp +++ b/source/source_hsolver/module_genelpa/elpa_new.cpp @@ -94,9 +94,6 @@ ELPA_Solver::ELPA_Solver(const bool isReal, elpa_set_integer(NEW_ELPA_HANDLE_POOL[handle_id], "mpi_comm_parent", MPI_Comm_c2f(comm), &error); elpa_set_integer(NEW_ELPA_HANDLE_POOL[handle_id], "process_row", myprow, &error); elpa_set_integer(NEW_ELPA_HANDLE_POOL[handle_id], "process_col", mypcol, &error); - // blacs_context is required by ELPA for internal MPI operations - // (e.g. MPI_Bcast in complex Cholesky/invert_triangular); - // previously missing in this constructor but present in the otherParameter one elpa_set_integer(NEW_ELPA_HANDLE_POOL[handle_id], "blacs_context", cblacs_ctxt, &error); error = elpa_setup(NEW_ELPA_HANDLE_POOL[handle_id]); diff --git a/source/source_io/module_output/print_info.cpp b/source/source_io/module_output/print_info.cpp index afc49757bf..fc4ec2de50 100644 --- a/source/source_io/module_output/print_info.cpp +++ b/source/source_io/module_output/print_info.cpp @@ -85,7 +85,7 @@ void print_parameters( const bool orbinfo = (inp.basis_type=="lcao" || inp.basis_type=="lcao_in_pw" || (inp.basis_type=="pw" && inp.init_wfc.substr(0, 3) == "nao")); - + if (orbinfo) { std::cout << std::setw(12) << "NBASE"; } std::cout << std::endl; std::cout << " " << std::setw(8) << inp.nspin; @@ -105,8 +105,13 @@ void print_parameters( << std::setw(14) << PARAM.globalv.nthread_per_proc << std::setw(14) << PARAM.globalv.nthread_per_proc*GlobalV::NPROC; + if (orbinfo) { std::cout << std::setw(12) << PARAM.globalv.nlocal; } + std::cout << std::endl; + + + std::cout << " ----------------------------------------------------------------" << std::endl; if(inp.basis_type == "lcao") { @@ -122,13 +127,11 @@ void print_parameters( } std::cout << " ----------------------------------------------------------------" << std::endl; + + //---------------------------------- // second part //---------------------------------- - if (orbinfo) - { - std::cout << " TOTAL NBASE" << " " << PARAM.globalv.nlocal << std::endl; - } std::cout << " " << std::setw(8) << "ELEMENT"; @@ -139,6 +142,7 @@ void print_parameters( } std::cout << std::setw(12) << "NATOM"; + std::cout << std::setw(12) << "XC"; std::cout << std::endl; diff --git a/source/source_io/module_parameter/input_parameter.h b/source/source_io/module_parameter/input_parameter.h index 3045d66336..4909186718 100644 --- a/source/source_io/module_parameter/input_parameter.h +++ b/source/source_io/module_parameter/input_parameter.h @@ -87,6 +87,8 @@ struct Input_para bool pseudo_mesh = false; ///< 0: use msh to normalize radial wave functions; 1: ///< use mesh, which is used in QE. int nspin = 1; ///< LDA ; LSDA ; non-linear spin + int gga_grad = 3; ///< GGA gradient method for noncollinear spin (nspin=4): 1=collinear approx, 2=projected div(h), 3=Scalmani-Frisch transform (default, most accurate) + std::string device_memory_mode = ""; ///< GPU memory mode: "" (auto), "full_gpu" (all on GPU), "paged" (CPU storage + k-point paging) int pw_diag_nmax = 50; double pw_diag_thr = 0.01; ///< used in cg method bool diago_smooth_ethr = false; ///< smooth ethr for iter methods @@ -614,18 +616,23 @@ struct Input_para bool decay_grad_switch = false; ///< the switch to use the local approximation of gradient ///< decay, 0: no local approximation; 1: apply the method double sc_thr = 1e-06; ///< threshold for spin-constrained DFT in uB - int nsc = 100; ///< maximum number of inner lambda loop + int nsc = 5; ///< maximum number of inner lambda loop int nsc_min = 2; ///< minimum number of inner lambda loop double alpha_trial = 0.01; ///< initial trial step size for lambda in eV/uB^2 double sccut = 3.0; ///< restriction of step size in eV/uB - double sc_scf_thr = 1e-3; ///< minimum number of outer scf loop before initial lambda loop + double sc_scf_thr = 10; ///< density error threshold for activating the lambda loop in spin-constrained DFT + std::string sc_scf_thr_mode = "immediate"; ///< controls when the lambda loop activates: "threshold" (drho=2), or "off" (never activate) + int sc_dir_phase1_steps = 5; ///< number of Phase 1 iterations in direction_only two-phase strategy for collinear (nspin=2) double sc_drop_thr = 1e-3; ///< threshold for lambda-loop threshold cutoff in spin-constrained DFT - std::string sc_lambda_strategy = "bfgs"; ///< lambda update strategy: bfgs, bfgs2, linear_response, augmented_lagrangian, hybrid_delayed, linear_scan + std::string sc_lambda_strategy = "bfgs"; ///< lambda update strategy: bfgs or linear_scan bool sc_direction_only = false; ///< only optimize the direction of magnetization // linear_scan parameters double sc_scan_lambda_start = 0.0; ///< start value for lambda scan (eV/uB) double sc_scan_lambda_end = 1.0; ///< end value for lambda scan (eV/uB) int sc_scan_steps = 20; ///< number of steps in lambda scan + std::string sc_strategy = "normal"; ///< DeltaSpin execution strategy: "fast" (subspace), "accuracy" (full), "normal" (threshold-triggered) + std::string sc_acceleration_mode = "off"; ///< acceleration mode: "off", "first_order", "subspace" + double sc_acceleration_rms_thr = -1.0; ///< RMS threshold (uB) to activate acceleration, <0 disables // ============== #Parameters (18.Quasiatomic Orbital analysis) ========= ///<========================================================== diff --git a/source/source_io/module_parameter/read_input_item_elec_stru.cpp b/source/source_io/module_parameter/read_input_item_elec_stru.cpp index fd7d4cf2c7..87f290f21f 100644 --- a/source/source_io/module_parameter/read_input_item_elec_stru.cpp +++ b/source/source_io/module_parameter/read_input_item_elec_stru.cpp @@ -340,6 +340,28 @@ The other way is only available when compiling with LIBXC, and it allows for sup read_sync_string(input.dft_functional); this->add_item(item); } + { + Input_Item item("gga_grad"); + item.annotation = "1: collinear approximation (grad|m|); 2: projected div(h); 3: Scalmani-Frisch transform (default, most accurate)"; + item.category = "Electronic structure"; + item.type = "Integer"; + item.description = R"(Method for computing GGA gradients in noncollinear spin (nspin=4) calculations. +* 1: Collinear approximation. Treats nspin=4 as nspin=2 with |m|, computes grad(rho +/- |m|). Fastest but least accurate. +* 2: Improved gradient. Computes grad(m_mu)*m_hat_mu and projects div(h) via m_hat. Intermediate accuracy. +* 3: Scalmani-Frisch transform. Applies SF rotation to decompose gradients per spin channel and retains all cross-terms in div(h). Most accurate. +Only relevant when nspin=4 and a GGA or hybrid functional is used.)"; + item.default_value = "3"; + item.unit = ""; + item.availability = "Only relevant for nspin=4 with GGA/hybrid functionals"; + read_sync_int(input.gga_grad); + item.check_value = [](const Input_Item&, const Parameter& para) { + if (para.input.gga_grad < 1 || para.input.gga_grad > 3) + { + ModuleBase::WARNING_QUIT("ReadInput", "gga_grad must be 1, 2, or 3."); + } + }; + this->add_item(item); + } { Input_Item item("xc_temperature"); item.annotation = "temperature for finite temperature functionals"; @@ -665,16 +687,24 @@ For systems that are difficult to converge, one could try increasing the value o item.availability = ""; read_sync_double(input.mixing_restart); item.reset_value = [](const Input_Item& item, Parameter& para) { - if (para.input.sc_mag_switch == 1) - {// for DeltaSpin calculation, the mixing_restart should be same as sc_scf_thr - if(para.input.sc_scf_thr != 10.0) + if (para.input.sc_mag_switch) + { + if (para.input.sc_direction_only) + { + para.input.mixing_restart = 0.0; + } + else if (para.input.sc_scf_thr_mode == "threshold") { para.input.mixing_restart = para.input.sc_scf_thr; } - else - {// no mixing_restart until oscillation happen in PW base + else if (para.input.sc_scf_thr_mode == "immediate") + { para.input.mixing_restart = para.input.scf_thr / 10.0; } + else // "off" + { + para.input.mixing_restart = 0.0; + } } }; this->add_item(item); diff --git a/source/source_io/module_parameter/read_input_item_other.cpp b/source/source_io/module_parameter/read_input_item_other.cpp index 99aeda824b..bcba697ef5 100644 --- a/source/source_io/module_parameter/read_input_item_other.cpp +++ b/source/source_io/module_parameter/read_input_item_other.cpp @@ -72,7 +72,7 @@ void ReadInput::item_others() item.category = "Spin-Constrained DFT"; item.type = "Integer"; item.description = "Maximal number of spin-constrained iteration"; - item.default_value = "100"; + item.default_value = "5"; item.unit = ""; item.availability = "sc_mag_switch is true"; read_sync_int(input.nsc); @@ -155,8 +155,8 @@ void ReadInput::item_others() item.annotation = "Density error threshold for inner loop of spin-constrained SCF"; item.category = "Spin-Constrained DFT"; item.type = "Real"; - item.description = "Density error threshold for inner loop of spin-constrained SCF"; - item.default_value = "1.0e-4"; + item.description = "When the charge density error drho falls below sc_scf_thr, the DeltaSpin lambda optimization loop is activated. Should be 10-100x larger than scf_thr. Only used when sc_scf_thr_mode=\"threshold\". For other activation modes, use sc_scf_thr_mode=\"immediate\" or sc_scf_thr_mode=\"off\" instead."; + item.default_value = "1.0e-3"; item.unit = ""; item.availability = "sc_mag_switch is true"; read_sync_double(input.sc_scf_thr); @@ -168,6 +168,27 @@ void ReadInput::item_others() }; this->add_item(item); } + { + Input_Item item("sc_scf_thr_mode"); + item.annotation = "controls when the DeltaSpin lambda loop is activated"; + item.category = "Spin-Constrained DFT"; + item.type = "String"; + item.description = R"(Controls when the DeltaSpin lambda loop is activated. +* threshold (default): activate when drho < sc_scf_thr. The lambda loop starts once the charge density is reasonably stable. +* immediate: activate from the first iteration with valid wavefunctions (iter>=2). Used for PW basis where the first iteration cannot compute initial magnetic moments. Replaces the old convention of setting sc_scf_thr=10.0. +* off: never activate the lambda loop. Lambda values are loaded from the STRU file and used as constant constraints without optimization. Replaces the old convention of setting sc_scf_thr=1e-10.)"; + item.default_value = "threshold"; + item.unit = ""; + item.availability = "sc_mag_switch is true"; + read_sync_string(input.sc_scf_thr_mode); + item.check_value = [](const Input_Item& item, const Parameter& para) { + if (para.input.sc_scf_thr_mode != "threshold" && para.input.sc_scf_thr_mode != "immediate" && para.input.sc_scf_thr_mode != "off") + { + ModuleBase::WARNING_QUIT("ReadInput", "sc_scf_thr_mode must be threshold, immediate, or off"); + } + }; + this->add_item(item); + } { Input_Item item("sc_direction_only"); item.annotation = "only optimize the direction of magnetization"; @@ -189,19 +210,33 @@ When false (default), both the direction and magnitude of the magnetic moment ar item.type = "String"; item.description = R"(Lambda update strategy for spin-constrained DFT: * bfgs: BFGS quasi-Newton method -* linear_response: linear response (Scheme B) -* augmented_lagrangian: augmented Lagrangian (Scheme C) -* hybrid_delayed: hybrid delayed update (Scheme D) * linear_scan: linear sweep of lambda for testing magnetic moment response)"; item.default_value = "bfgs"; item.unit = ""; item.availability = "sc_mag_switch is true"; read_sync_string(input.sc_lambda_strategy); item.check_value = [](const Input_Item& item, const Parameter& para) { - const std::vector valid = {"bfgs", "bfgs2", "linear_response", "augmented_lagrangian", "hybrid_delayed", "linear_scan"}; - if (std::find(valid.begin(), valid.end(), para.input.sc_lambda_strategy) == valid.end()) + if (para.input.sc_lambda_strategy != "bfgs" && para.input.sc_lambda_strategy != "linear_scan") + { + ModuleBase::WARNING_QUIT("ReadInput", "sc_lambda_strategy must be bfgs or linear_scan"); + } + }; + this->add_item(item); + } + { + Input_Item item("sc_dir_phase1_steps"); + item.annotation = "Phase 1 iterations for direction_only collinear strategy"; + item.category = "Spin-Constrained DFT"; + item.type = "Integer"; + item.description = R"(Number of SCF iterations for Phase 1 (magnitude constraint) in the direction_only two-phase strategy for collinear (nspin=2) calculations. During Phase 1, direction_only projection is temporarily disabled so BFGS can constrain the magnetic moment magnitude. After Phase 1, lambda decays and the system relaxes naturally. Minimum: 2.)"; + item.default_value = "5"; + item.unit = ""; + item.availability = "sc_mag_switch is true and sc_direction_only is true and nspin=2"; + read_sync_int(input.sc_dir_phase1_steps); + item.check_value = [](const Input_Item& item, const Parameter& para) { + if (para.input.sc_dir_phase1_steps < 2) { - ModuleBase::WARNING_QUIT("ReadInput", "sc_lambda_strategy must be bfgs, bfgs2, linear_response, augmented_lagrangian, hybrid_delayed, or linear_scan"); + ModuleBase::WARNING_QUIT("ReadInput", "sc_dir_phase1_steps must >= 2"); } }; this->add_item(item); @@ -242,6 +277,65 @@ When false (default), both the direction and magnitude of the magnetic moment ar read_sync_int(input.sc_scan_steps); this->add_item(item); } + { + Input_Item item("sc_strategy"); + item.annotation = "DeltaSpin execution strategy for LCAO basis"; + item.category = "Spin-Constrained DFT"; + item.type = "String"; + item.description = R"(Execution strategy controlling how DeltaSpin solves the lambda loop: +* normal (default): use full diagonalization initially, switch to subspace acceleration once RMS < sc_acceleration_rms_thr (default threshold: 1e-2 uB) +* fast: use subspace diagonalization from the first lambda step (skips full diagonalization after initialization) +* accuracy: always use full HSolverLCAO diagonalization (no acceleration) + +This parameter automatically sets sc_acceleration_mode and sc_acceleration_rms_thr. If you need fine-grained control, set sc_strategy=normal and override sc_acceleration_mode/sc_acceleration_rms_thr manually.)"; + item.default_value = "normal"; + item.unit = ""; + item.availability = "sc_mag_switch is true"; + read_sync_string(input.sc_strategy); + item.check_value = [](const Input_Item& item, const Parameter& para) { + const std::string& strategy = para.input.sc_strategy; + if (strategy != "normal" && strategy != "fast" && strategy != "accuracy") { + ModuleBase::WARNING_QUIT("ReadInput", "sc_strategy must be normal, fast, or accuracy"); + } + }; + this->add_item(item); + } + { + Input_Item item("sc_acceleration_mode"); + item.annotation = "acceleration mode for spin-constrained DFT"; + item.category = "Spin-Constrained DFT"; + item.type = "String"; + item.description = R"(Acceleration mode for converged lambda loop (usually set automatically by sc_strategy): +* off: no acceleration, always use full HSolverLCAO diagonalization +* first_order: use first-order eigenvalue response (fastest, requires RMS < sc_acceleration_rms_thr) +* subspace: use subspace diagonalization with wavefunction rotation (faster, requires RMS < sc_acceleration_rms_thr) + +When sc_strategy=normal, this is auto-set to subspace. When sc_strategy=fast, this is auto-set to subspace with a large threshold. When sc_strategy=accuracy, this is auto-set to off. +Manual override is allowed: if sc_acceleration_mode is explicitly set, it takes precedence over sc_strategy.)"; + item.default_value = "off"; + item.unit = ""; + item.availability = "sc_mag_switch is true and basis_type=lcao"; + read_sync_string(input.sc_acceleration_mode); + item.check_value = [](const Input_Item& item, const Parameter& para) { + const std::string& mode = para.input.sc_acceleration_mode; + if (mode != "off" && mode != "first_order" && mode != "subspace") { + ModuleBase::WARNING_QUIT("ReadInput", "sc_acceleration_mode must be off, first_order, or subspace"); + } + }; + this->add_item(item); + } + { + Input_Item item("sc_acceleration_rms_thr"); + item.annotation = "RMS threshold for acceleration activation"; + item.category = "Spin-Constrained DFT"; + item.type = "Real"; + item.description = "RMS threshold (uB) to activate acceleration mode. Must be > 0 to enable. The acceleration activates once RMS < sc_acceleration_rms_thr. Default: 1e-2 uB for sc_strategy=normal, 1e10 for sc_strategy=fast. If explicitly set, overrides the sc_strategy default."; + item.default_value = "-1.0"; + item.unit = "uB"; + item.availability = "sc_mag_switch is true and sc_acceleration_mode is not off"; + read_sync_double(input.sc_acceleration_rms_thr); + this->add_item(item); + } // Quasiatomic Orbital analysis { diff --git a/source/source_io/module_parameter/read_input_item_system.cpp b/source/source_io/module_parameter/read_input_item_system.cpp index d4ce16c963..1728e98606 100644 --- a/source/source_io/module_parameter/read_input_item_system.cpp +++ b/source/source_io/module_parameter/read_input_item_system.cpp @@ -739,6 +739,30 @@ Available options are: }; this->add_item(item); } + { + Input_Item item("device_memory_mode"); + item.annotation = "GPU memory strategy for wavefunction storage"; + item.category = "System variables"; + item.type = "String"; + item.description = R"(Controls GPU memory strategy for wavefunction storage. +* "" (empty/auto): Automatic selection based on system size. +* "full_gpu": All wavefunction data resides on GPU (default behavior). +* "paged": CPU storage with single k-point paging to GPU, reduces GPU memory at the cost of transfer overhead. + +Only relevant when device=gpu and basis_type=pw.)"; + item.default_value = ""; + item.unit = ""; + item.availability = "Only relevant when device=gpu with PW basis"; + read_sync_string(input.device_memory_mode); + item.check_value = [](const Input_Item& item, const Parameter& para) { + const std::vector avail_list = {"", "full_gpu", "paged"}; + if (std::find(avail_list.begin(), avail_list.end(), para.input.device_memory_mode) == avail_list.end()) + { + ModuleBase::WARNING_QUIT("ReadInput", "device_memory_mode must be empty, full_gpu, or paged."); + } + }; + this->add_item(item); + } { Input_Item item("precision"); item.annotation = "the computing precision for ABACUS"; @@ -801,12 +825,6 @@ Available options are: "ReadInput", "gint_precision = single or mix is currently supported only for LCAO calculations.\n"); } - if (para.inp.gint_precision != "double" && para.inp.nspin == 4) - { - ModuleBase::WARNING_QUIT( - "ReadInput", - "gint_precision = single or mix is not supported for nspin = 4 (noncollinear/SOC) calculations.\n"); - } }; this->add_item(item); } diff --git a/source/source_io/module_unk/berryphase.cpp b/source/source_io/module_unk/berryphase.cpp index a41ef3f6bd..8ca67fb044 100644 --- a/source/source_io/module_unk/berryphase.cpp +++ b/source/source_io/module_unk/berryphase.cpp @@ -113,7 +113,7 @@ void berryphase::set_kpoints(const K_Vectors& kv, const int direction) nppstr = mp_x + 1; } - else if (direction == 2) // 计算y方向 + else if (direction == 2) // y-direction calculation { const int num_string = mp_x * mp_z; @@ -163,7 +163,7 @@ void berryphase::set_kpoints(const K_Vectors& kv, const int direction) nppstr = mp_y + 1; } - else if (direction == 3) // 计算z方向 + else if (direction == 3) // z-direction calculation { const int num_string = mp_x * mp_y; diff --git a/source/source_io/test/read_input_ptest.cpp b/source/source_io/test/read_input_ptest.cpp index 05f5b1e75f..cd73a877ab 100644 --- a/source/source_io/test/read_input_ptest.cpp +++ b/source/source_io/test/read_input_ptest.cpp @@ -435,6 +435,8 @@ TEST_F(InputParaTest, ParaRead) EXPECT_DOUBLE_EQ(param.inp.alpha_trial, 0.02); EXPECT_DOUBLE_EQ(param.inp.sccut, 4.0); EXPECT_EQ(param.inp.sc_scf_thr, 1e-3); + EXPECT_EQ(param.inp.sc_scf_thr_mode, "threshold"); + EXPECT_EQ(param.inp.sc_dir_phase1_steps, 5); EXPECT_EQ(param.inp.sc_drop_thr, 1e-3); EXPECT_EQ(param.inp.lr_nstates, 1); EXPECT_EQ(param.inp.nocc, param.inp.nbands); diff --git a/source/source_io/test_serial/read_input_item_test.cpp b/source/source_io/test_serial/read_input_item_test.cpp index 6d9cb980fe..4ee189a5ef 100644 --- a/source/source_io/test_serial/read_input_item_test.cpp +++ b/source/source_io/test_serial/read_input_item_test.cpp @@ -1731,6 +1731,16 @@ TEST_F(InputTest, Item_test2) output = testing::internal::GetCapturedStdout(); EXPECT_THAT(output, testing::HasSubstr("NOTICE")); } + { // sc_scf_thr_mode + auto it = find_label("sc_scf_thr_mode", readinput.input_lists); + ASSERT_NE(it, readinput.input_lists.end()); + EXPECT_EQ(param.input.sc_scf_thr_mode, "threshold"); + } + { // sc_dir_phase1_steps + auto it = find_label("sc_dir_phase1_steps", readinput.input_lists); + ASSERT_NE(it, readinput.input_lists.end()); + EXPECT_EQ(param.input.sc_dir_phase1_steps, 5); + } { // qo_thr auto it = find_label("qo_thr", readinput.input_lists); param.input.qo_thr = 1e-5; diff --git a/source/source_lcao/module_deepks/test/CMakeLists.txt b/source/source_lcao/module_deepks/test/CMakeLists.txt deleted file mode 100644 index 99389de9bd..0000000000 --- a/source/source_lcao/module_deepks/test/CMakeLists.txt +++ /dev/null @@ -1,356 +0,0 @@ -file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/support DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -set(DEEPKS_UT_PP_ORB_DIR "${PROJECT_SOURCE_DIR}/tests/PP_ORB") -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/support/NO_GO_deepks_UT/STRU - ${CMAKE_CURRENT_BINARY_DIR}/support/NO_GO_deepks_UT/STRU - @ONLY -) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/support/NO_KP_deepks_UT/STRU - ${CMAKE_CURRENT_BINARY_DIR}/support/NO_KP_deepks_UT/STRU - @ONLY -) - -set(DEEPKS_UNIT_COMMON_SOURCES - deepks_test_prep.cpp - deepks_test.cpp - ../../../source_cell/unitcell.cpp - ../../../source_cell/update_cell.cpp - ../../../source_cell/bcast_cell.cpp - ../../../source_cell/atom_spec.cpp - ../../../source_cell/atom_pseudo.cpp - ../../../source_cell/read_atoms.cpp - ../../../source_cell/read_atoms_helper.cpp - ../../../source_cell/read_stru.cpp - ../../../source_cell/print_cell.cpp - ../../../source_cell/read_atom_species.cpp - ../../../source_cell/klist.cpp - ../../../source_cell/parallel_kpoints.cpp - ../../../source_cell/k_vector_utils.cpp - ../../setup_nonlocal.cpp - ../../../source_cell/pseudo.cpp - ../../../source_cell/read_pp.cpp - ../../../source_cell/read_pp_complete.cpp - ../../../source_cell/read_pp_upf100.cpp - ../../../source_cell/read_pp_upf201.cpp - ../../../source_cell/read_pp_vwr.cpp - ../../../source_cell/read_pp_blps.cpp - ../../../source_cell/sep.cpp - ../../../source_cell/sep_cell.cpp - ../../../source_pw/module_pwdft/soc.cpp - ../../../source_io/module_output/sparse_matrix.cpp - ../../../source_cell/read_pseudo.cpp - ../../../source_estate/param_update.cpp - ../../../source_cell/cal_wfc.cpp - ../../../source_cell/read_orb.cpp - ../../../source_cell/cal_nelec_nband.cpp - ../../../source_estate/module_dm/density_matrix.cpp - ../../../source_estate/module_dm/density_matrix_io.cpp - ../../center2_orb.cpp - ../../center2_orb-orb11.cpp - ../../center2_orb-orb21.cpp - ../../module_hcontainer/base_matrix.cpp - ../../module_hcontainer/hcontainer.cpp - ../../module_hcontainer/atom_pair.cpp - ../../module_hcontainer/func_transfer.cpp - ../../module_hcontainer/func_folding.cpp - ../../module_hcontainer/transfer.cpp - ../../module_hcontainer/output_hcontainer.cpp - ../../module_operator_lcao/deepks_lcao.cpp - ../../module_operator_lcao/operator_lcao.cpp - ../../../source_hamilt/operator.cpp - ../../../source_io/module_hs/cal_r_overlap_R.cpp - ../../../source_io/module_hs/single_R_io.cpp - ../../../source_io/module_hs/rr_sparse_writer.cpp - ../../module_rt/td_folding.cpp - mock_berryphase.cpp - mock_tdinfo.cpp -) - -add_library(deepks_unit_support OBJECT ${DEEPKS_UNIT_COMMON_SOURCES}) -target_link_libraries(deepks_unit_support PRIVATE GTest::gtest) - -if(ENABLE_COVERAGE) - add_coverage(deepks_unit_support) -endif() - -set(DEEPKS_UNIT_LIBS - deepks_unit_support - base - device - parameter - deepks - psi - planewave - neighbor - container - orb - gint - numerical_atomic_orbitals - symmetry - ${TORCH_LIBRARIES} -) - -set(DEEPKS_UNIT_PHIALPHA_SOURCES - deepks_test_phialpha.cpp -) -set(DEEPKS_UNIT_PDM_SOURCES - ${DEEPKS_UNIT_PHIALPHA_SOURCES} - deepks_test_pdm.cpp -) -set(DEEPKS_UNIT_DESCRIPTOR_SOURCES - ${DEEPKS_UNIT_PDM_SOURCES} - deepks_test_descriptor.cpp -) -set(DEEPKS_UNIT_GDMX_SOURCES - ${DEEPKS_UNIT_PDM_SOURCES} - deepks_test_gdmx.cpp -) -set(DEEPKS_UNIT_GVX_SOURCES - ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} - deepks_test_gdmx.cpp - deepks_test_gvx.cpp -) -set(DEEPKS_UNIT_GDMEPSL_SOURCES - ${DEEPKS_UNIT_PDM_SOURCES} - deepks_test_gdmepsl.cpp -) -set(DEEPKS_UNIT_GVEPSL_SOURCES - ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} - deepks_test_gdmepsl.cpp - deepks_test_gvepsl.cpp -) -set(DEEPKS_UNIT_ORBPRE_SOURCES - ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} - deepks_test_orbpre.cpp -) -set(DEEPKS_UNIT_VDPRE_SOURCES - ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} - deepks_test_vdpre.cpp -) -set(DEEPKS_UNIT_VDRPRE_SOURCES - ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} - deepks_test_vdrpre.cpp -) -set(DEEPKS_UNIT_EDELTA_SOURCES - ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} - deepks_test_edelta.cpp -) -set(DEEPKS_UNIT_E_DELTABANDS_SOURCES - ${DEEPKS_UNIT_EDELTA_SOURCES} - deepks_test_e_deltabands.cpp -) -set(DEEPKS_UNIT_FORCE_STRESS_DELTA_SOURCES - ${DEEPKS_UNIT_EDELTA_SOURCES} - deepks_test_force_stress_delta.cpp -) -set(DEEPKS_UNIT_O_DELTA_SOURCES - ${DEEPKS_UNIT_E_DELTABANDS_SOURCES} - deepks_test_o_delta.cpp -) - -function(configure_deepks_unit_target TARGET_NAME CHECK_NAME CASE_DIR) - target_compile_definitions( - ${TARGET_NAME} - PRIVATE - DEEPKS_UT_CHECK_NAME="${CHECK_NAME}" - DEEPKS_UT_CASE_DIR="${CASE_DIR}" - DEEPKS_UT_RUNNER=run_deepks_unit_${CHECK_NAME} - ) -endfunction() - -AddTest( - TARGET MODULE_LCAO_DEEPKS_phialpha_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_PHIALPHA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_phialpha_gamma phialpha NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_pdm_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_PDM_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_pdm_gamma pdm NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_descriptor_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_descriptor_gamma descriptor NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gdmx_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMX_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmx_gamma gdmx NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gvx_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVX_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvx_gamma gvx NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gdmepsl_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMEPSL_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmepsl_gamma gdmepsl NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gvepsl_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVEPSL_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvepsl_gamma gvepsl NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_orbpre_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_ORBPRE_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_orbpre_gamma orbpre NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_vdpre_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDPRE_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdpre_gamma vdpre NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_vdrpre_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDRPRE_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdrpre_gamma vdrpre NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_edelta_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_EDELTA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_edelta_gamma edelta NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_e_deltabands_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_E_DELTABANDS_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_e_deltabands_gamma e_deltabands NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_force_stress_delta_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_FORCE_STRESS_DELTA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_force_stress_delta_gamma force_stress_delta NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_o_delta_gamma - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_O_DELTA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_o_delta_gamma o_delta NO_GO_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_phialpha_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_PHIALPHA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_phialpha_multik phialpha NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_pdm_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_PDM_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_pdm_multik pdm NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_descriptor_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_DESCRIPTOR_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_descriptor_multik descriptor NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gdmx_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMX_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmx_multik gdmx NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gvx_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVX_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvx_multik gvx NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gdmepsl_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMEPSL_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmepsl_multik gdmepsl NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_gvepsl_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVEPSL_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvepsl_multik gvepsl NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_orbpre_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_ORBPRE_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_orbpre_multik orbpre NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_vdpre_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDPRE_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdpre_multik vdpre NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_vdrpre_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDRPRE_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdrpre_multik vdrpre NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_edelta_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_EDELTA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_edelta_multik edelta NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_e_deltabands_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_E_DELTABANDS_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_e_deltabands_multik e_deltabands NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_force_stress_delta_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_FORCE_STRESS_DELTA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_force_stress_delta_multik force_stress_delta NO_KP_deepks_UT) - -AddTest( - TARGET MODULE_LCAO_DEEPKS_o_delta_multik - LIBS ${DEEPKS_UNIT_LIBS} - SOURCES main_deepks.cpp ${DEEPKS_UNIT_O_DELTA_SOURCES} -) -configure_deepks_unit_target(MODULE_LCAO_DEEPKS_o_delta_multik o_delta NO_KP_deepks_UT) diff --git a/source/source_lcao/module_deepks/test/deepks_test.cpp b/source/source_lcao/module_deepks/test/deepks_test.cpp deleted file mode 100644 index 76258bc967..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include "deepks_test.h" - -#include -#include -#include -#include -#include - -namespace -{ -bool parse_double_token(const std::string& token, double* value) -{ - char* end = nullptr; - errno = 0; - const double parsed = std::strtod(token.c_str(), &end); - if (end == token.c_str() || *end != '\0' || errno == ERANGE) - { - return false; - } - *value = parsed; - return true; -} - -bool parse_complex_token(const std::string& token, double* real, double* imag) -{ - if (token.size() < 5 || token[0] != '(' || token[token.size() - 1] != ')') - { - return false; - } - - const std::string value = token.substr(1, token.size() - 2); - const std::string::size_type comma = value.find(','); - if (comma == std::string::npos || comma == 0 || comma == value.size() - 1) - { - return false; - } - - return parse_double_token(value.substr(0, comma), real) && parse_double_token(value.substr(comma + 1), imag); -} -} // namespace - -namespace Test_Deepks -{ -Grid_Driver GridD(false, false); -} - -template -test_deepks::test_deepks() -{ -} - -template -test_deepks::~test_deepks() -{ - delete this->p_elec_DM; -} - -template -void test_deepks::check_dstable() -{ - // OGT.talpha.print_Table_DSR(ORB); - // this->assert_file_matches_reference("S_I_mu_alpha.dat", "S_I_mu_alpha_ref.dat"); -} - -template -void test_deepks::assert_file_matches_reference(const std::string& actual_file, const std::string& reference_file) -{ - SCOPED_TRACE("Comparing " + actual_file + " with " + reference_file); - std::ifstream actual(actual_file.c_str()); - std::ifstream reference(reference_file.c_str()); - const double test_thr = 1e-8; - - ASSERT_TRUE(actual.is_open()) << "Cannot open actual file " << actual_file; - ASSERT_TRUE(reference.is_open()) << "Cannot open reference file " << reference_file; - - std::string actual_word; - std::string reference_word; - int entry = 0; - while (actual >> actual_word) - { - ASSERT_TRUE(reference >> reference_word) - << reference_file << " has fewer entries than " << actual_file << " at entry " << entry; - - double actual_num = 0.0; - double reference_num = 0.0; - const bool actual_is_number = parse_double_token(actual_word, &actual_num); - const bool reference_is_number = parse_double_token(reference_word, &reference_num); - double actual_real = 0.0; - double actual_imag = 0.0; - double reference_real = 0.0; - double reference_imag = 0.0; - const bool actual_is_complex = parse_complex_token(actual_word, &actual_real, &actual_imag); - const bool reference_is_complex = parse_complex_token(reference_word, &reference_real, &reference_imag); - - if (actual_is_number || reference_is_number) - { - ASSERT_TRUE(actual_is_number) << "Cannot parse actual numeric entry " << entry << ": " << actual_word; - ASSERT_TRUE(reference_is_number) - << "Cannot parse reference numeric entry " << entry << ": " << reference_word; - EXPECT_NEAR(actual_num, reference_num, test_thr) << "numeric mismatch at entry " << entry; - } - else if (actual_is_complex || reference_is_complex) - { - ASSERT_TRUE(actual_is_complex) << "Cannot parse actual complex entry " << entry << ": " << actual_word; - ASSERT_TRUE(reference_is_complex) - << "Cannot parse reference complex entry " << entry << ": " << reference_word; - EXPECT_NEAR(actual_real, reference_real, test_thr) << "complex real mismatch at entry " << entry; - EXPECT_NEAR(actual_imag, reference_imag, test_thr) << "complex imag mismatch at entry " << entry; - } - else - { - EXPECT_EQ(actual_word, reference_word) << "text mismatch at entry " << entry; - } - ++entry; - } - EXPECT_FALSE(reference >> reference_word) - << reference_file << " has more entries than " << actual_file << " starting with " << reference_word; -} - -template class test_deepks; -template class test_deepks>; diff --git a/source/source_lcao/module_deepks/test/deepks_test.h b/source/source_lcao/module_deepks/test/deepks_test.h deleted file mode 100644 index 7fcd69e065..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test.h +++ /dev/null @@ -1,123 +0,0 @@ -#include "../LCAO_deepks.h" -#include "source_base/global_function.h" -#include "source_base/global_variable.h" -#include "source_basis/module_ao/ORB_read.h" -#include "source_cell/klist.h" -#include "source_cell/module_neighbor/sltk_atom_arrange.h" -#include "source_cell/module_neighbor/sltk_grid_driver.h" -#include "source_cell/unitcell.h" -#include "source_estate/module_dm/density_matrix.h" - -#include -#include -#include -#include -#include -#include - -namespace Test_Deepks -{ -extern Grid_Driver GridD; -} - -template -class test_deepks -{ - - public: - test_deepks(); - ~test_deepks(); - - LCAO_Orbitals ORB; - - RadialCollection orb_; - RadialCollection alpha_; - TwoCenterIntegrator overlap_orb_alpha_; - - UnitCell ucell; - - Parallel_Orbitals ParaO; - K_Vectors kv; - LCAO_Deepks ld; - - int my_rank = 0; - - double lcao_ecut = 0; // (Ry) - double lcao_dk = 0.01; - double lcao_dr = 0.01; - double lcao_rmax = 30; // (a.u.) - - int out_mat_r = 0; - - int lmax = 2; - int ntype = 0; - int nlocal = 0; - int nbands = 0; - int npol = 1; - int nspin = 1; - bool gamma_only_local = false; - bool cal_force = true; - bool deepks_setorb = true; - bool test_atom_input = false; - bool search_pbc = true; - bool out_element_info = false; - std::string orbital_dir = ""; - std::string out_level = "ie"; - - using TH = std::conditional_t::value, ModuleBase::matrix, ModuleBase::ComplexMatrix>; - - std::vector dm; - std::vector> dm_new; - elecstate::DensityMatrix* p_elec_DM = nullptr; - - // preparation - void preparation(); - void set_parameters(); // set some global variables - void setup_cell(); - - void count_ntype(); // from STRU, count types of elements - void set_ekcut(); // from LCAO files, read and set ekcut - - void prep_neighbour(); - void setup_kpt(); - void set_orbs(); - - // tranfer Matrix into vector - void set_dm_new(); - - // tranfer vector into DensityMatrix - void set_p_elec_DM(); - - // checking - void check_dstable(); - void check_phialpha(); - - void read_dm(const int nks); - - void check_pdm(); - void check_descriptor(std::vector& descriptor); - - void check_gdmx(torch::Tensor& gdmx); - void check_gdmepsl(torch::Tensor& gdmepsl); - - void check_gvx(torch::Tensor& gdmx); - void check_gvepsl(torch::Tensor& gdmepsl); - - void check_orbpre(); - - void check_vdpre(); - - void check_vdrpre(); - - void check_edelta(std::vector& descriptor); - - // calculate V_delta - void cal_V_delta(); - - void check_e_deltabands(); - void check_f_delta_and_stress_delta(); - void check_o_delta(); - - // compares numbers stored in two files - void assert_file_matches_reference(const std::string& actual_file, const std::string& reference_file); -}; diff --git a/source/source_lcao/module_deepks/test/deepks_test_descriptor.cpp b/source/source_lcao/module_deepks/test/deepks_test_descriptor.cpp deleted file mode 100644 index 93790998e5..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_descriptor.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_descriptor.h" - -#include - -template -void test_deepks::check_descriptor(std::vector& descriptor) -{ - DeePKS_domain::cal_descriptor(ucell.nat, this->ld.deepks_param, this->ld.pdm, descriptor); - DeePKS_domain::check_descriptor(this->ld.deepks_param, ucell, "./", descriptor, 0); - this->assert_file_matches_reference("deepks_desc.dat", "descriptor_ref.dat"); -} - -template void test_deepks::check_descriptor(std::vector& descriptor); -template void test_deepks>::check_descriptor(std::vector& descriptor); - -template -void run_deepks_unit_descriptor(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_descriptor(test, descriptor); -} - -template void run_deepks_unit_descriptor(test_deepks& test); -template void run_deepks_unit_descriptor>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_e_deltabands.cpp b/source/source_lcao/module_deepks/test/deepks_test_e_deltabands.cpp deleted file mode 100644 index bf6906b91b..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_e_deltabands.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/hs_matrix_k.hpp" -#include "source_lcao/module_operator_lcao/deepks_lcao.h" - -#include -#include - -template -void test_deepks::cal_V_delta() -{ - hamilt::HS_Matrix_K hsk(&ParaO); - hamilt::HContainer hR(ucell, &ParaO); - hamilt::DeePKS> op_deepks(&hsk, - kv.kvec_d, - &hR, - &ucell, - &Test_Deepks::GridD, - &overlap_orb_alpha_, - &ORB, - kv.get_nkstot(), - p_elec_DM, - &this->ld); - for (int ik = 0; ik < kv.get_nkstot(); ++ik) - { - op_deepks.init(ik); - } -} - -template -void test_deepks::check_e_deltabands() -{ - this->cal_V_delta(); - this->ld.dpks_cal_e_delta_band(dm_new, kv.get_nkstot()); - - std::ofstream ofs("E_delta_bands.dat"); - ofs << std::setprecision(10) << this->ld.e_delta_band << std::endl; - ofs.close(); - this->assert_file_matches_reference("E_delta_bands.dat", "E_delta_bands_ref.dat"); -} - -template void test_deepks::cal_V_delta(); -template void test_deepks>::cal_V_delta(); -template void test_deepks::check_e_deltabands(); -template void test_deepks>::check_e_deltabands(); - -template -void run_deepks_unit_e_deltabands(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_edelta(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_e_deltabands(); -} - -template void run_deepks_unit_e_deltabands(test_deepks& test); -template void run_deepks_unit_e_deltabands>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_edelta.cpp b/source/source_lcao/module_deepks/test/deepks_test_edelta.cpp deleted file mode 100644 index 67a152136a..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_edelta.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_io/module_parameter/parameter.h" -#include "source_lcao/module_deepks/deepks_basic.h" - -#include -#include - -template -void test_deepks::check_edelta(std::vector& descriptor) -{ - DeePKS_domain::load_model("model.ptg", ld.model_deepks); - ld.allocate_V_delta(ucell.nat, kv.get_nkstot()); - if (PARAM.inp.deepks_equiv) - { - DeePKS_domain::cal_edelta_gedm_equiv(ucell.nat, - this->ld.deepks_param, - descriptor, - this->ld.model_deepks, - this->ld.gedm, - this->ld.E_delta, - 0); - } - else - { - DeePKS_domain::cal_edelta_gedm(ucell.nat, - this->ld.deepks_param, - this->ld.model_deepks, - this->ld.E_delta, - descriptor, - this->ld.pdm, - this->ld.gedm); - } - - std::ofstream ofs("E_delta.dat"); - ofs << std::setprecision(10) << this->ld.E_delta << std::endl; - ofs.close(); - this->assert_file_matches_reference("E_delta.dat", "E_delta_ref.dat"); -} - -template void test_deepks::check_edelta(std::vector& descriptor); -template void test_deepks>::check_edelta(std::vector& descriptor); - -template -void run_deepks_unit_edelta(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_edelta(test, descriptor); -} - -template void run_deepks_unit_edelta(test_deepks& test); -template void run_deepks_unit_edelta>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_force_stress_delta.cpp b/source/source_lcao/module_deepks/test/deepks_test_force_stress_delta.cpp deleted file mode 100644 index 1387ff029b..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_force_stress_delta.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_force.h" - -#include -#include - -template -void test_deepks::check_f_delta_and_stress_delta() -{ - ModuleBase::matrix fvnl_dalpha; - fvnl_dalpha.create(ucell.nat, 3); - - ModuleBase::matrix svnl_dalpha; - svnl_dalpha.create(3, 3); - const int cal_stress = 1; - const int nks = kv.get_nkstot(); - DeePKS_domain::cal_f_delta(ucell, - ORB, - Test_Deepks::GridD, - ParaO, - nks, - this->ld.deepks_param, - kv.kvec_d, - this->ld.phialpha, - fvnl_dalpha, - cal_stress, - svnl_dalpha, - this->ld.dm_r, - this->ld.gedm); - std::ofstream ofs_f("F_delta.dat"); - std::ofstream ofs_s("stress_delta.dat"); - ofs_f << std::setprecision(10); - ofs_s << std::setprecision(10); - fvnl_dalpha.print(ofs_f); - ofs_f.close(); - svnl_dalpha.print(ofs_s); - ofs_s.close(); - - this->assert_file_matches_reference("F_delta.dat", "F_delta_ref.dat"); - this->assert_file_matches_reference("stress_delta.dat", "stress_delta_ref.dat"); -} - -template void test_deepks::check_f_delta_and_stress_delta(); -template void test_deepks>::check_f_delta_and_stress_delta(); - -template -void run_deepks_unit_force_stress_delta(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_edelta(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_f_delta_and_stress_delta(); -} - -template void run_deepks_unit_force_stress_delta(test_deepks& test); -template void run_deepks_unit_force_stress_delta>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_gdmepsl.cpp b/source/source_lcao/module_deepks/test/deepks_test_gdmepsl.cpp deleted file mode 100644 index 9025c097e3..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_gdmepsl.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_spre.h" - -#include - -template -void test_deepks::check_gdmepsl(torch::Tensor& gdmepsl) -{ - DeePKS_domain::cal_gdmepsl(kv.get_nkstot(), - this->ld.deepks_param, - kv.kvec_d, - this->ld.phialpha, - this->ld.dm_r, - ucell, - ORB, - ParaO, - Test_Deepks::GridD, - gdmepsl); - DeePKS_domain::check_tensor(gdmepsl, "gdmepsl.dat", 0); - this->assert_file_matches_reference("gdmepsl.dat", "gdmepsl_ref.dat"); -} - -template void test_deepks::check_gdmepsl(torch::Tensor& gdmepsl); -template void test_deepks>::check_gdmepsl(torch::Tensor& gdmepsl); - -template -void run_deepks_unit_gdmepsl(test_deepks& test) -{ - DeepksTestRunner::build_pdm(test); - if (testing::Test::HasFatalFailure()) - { - return; - } - torch::Tensor gdmepsl; - test.check_gdmepsl(gdmepsl); -} - -template void run_deepks_unit_gdmepsl(test_deepks& test); -template void run_deepks_unit_gdmepsl>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_gdmx.cpp b/source/source_lcao/module_deepks/test/deepks_test_gdmx.cpp deleted file mode 100644 index 117360334e..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_gdmx.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_fpre.h" - -#include - -template -void test_deepks::check_gdmx(torch::Tensor& gdmx) -{ - DeePKS_domain::cal_gdmx(kv.get_nkstot(), - this->ld.deepks_param, - kv.kvec_d, - this->ld.phialpha, - this->ld.dm_r, - ucell, - ORB, - ParaO, - Test_Deepks::GridD, - gdmx); - DeePKS_domain::check_tensor(gdmx, "gdmx.dat", 0); - this->assert_file_matches_reference("gdmx.dat", "gdmx_ref.dat"); -} - -template void test_deepks::check_gdmx(torch::Tensor& gdmx); -template void test_deepks>::check_gdmx(torch::Tensor& gdmx); - -template -void run_deepks_unit_gdmx(test_deepks& test) -{ - DeepksTestRunner::build_pdm(test); - if (testing::Test::HasFatalFailure()) - { - return; - } - torch::Tensor gdmx; - test.check_gdmx(gdmx); -} - -template void run_deepks_unit_gdmx(test_deepks& test); -template void run_deepks_unit_gdmx>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_gvepsl.cpp b/source/source_lcao/module_deepks/test/deepks_test_gvepsl.cpp deleted file mode 100644 index 6589a6767c..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_gvepsl.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_basic.h" -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_spre.h" - -#include - -template -void test_deepks::check_gvepsl(torch::Tensor& gdmepsl) -{ - std::vector gevdm; - DeePKS_domain::cal_gevdm(ucell.nat, this->ld.deepks_param, this->ld.pdm, gevdm); - torch::Tensor gvepsl; - DeePKS_domain::cal_gvepsl(ucell.nat, this->ld.deepks_param, gevdm, gdmepsl, gvepsl, 0); - DeePKS_domain::check_tensor(gvepsl, "gvepsl.dat", 0); - this->assert_file_matches_reference("gvepsl.dat", "gvepsl_ref.dat"); -} - -template void test_deepks::check_gvepsl(torch::Tensor& gdmepsl); -template void test_deepks>::check_gvepsl(torch::Tensor& gdmepsl); - -template -void run_deepks_unit_gvepsl(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_descriptor(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - torch::Tensor gdmepsl; - test.check_gdmepsl(gdmepsl); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_gvepsl(gdmepsl); -} - -template void run_deepks_unit_gvepsl(test_deepks& test); -template void run_deepks_unit_gvepsl>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_gvx.cpp b/source/source_lcao/module_deepks/test/deepks_test_gvx.cpp deleted file mode 100644 index 9cb07b9a85..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_gvx.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_basic.h" -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_fpre.h" - -#include - -template -void test_deepks::check_gvx(torch::Tensor& gdmx) -{ - std::vector gevdm; - DeePKS_domain::cal_gevdm(ucell.nat, this->ld.deepks_param, this->ld.pdm, gevdm); - torch::Tensor gvx; - DeePKS_domain::cal_gvx(ucell.nat, this->ld.deepks_param, gevdm, gdmx, gvx, 0); - DeePKS_domain::check_tensor(gvx, "gvx.dat", 0); - this->assert_file_matches_reference("gvx.dat", "gvx_ref.dat"); -} - -template void test_deepks::check_gvx(torch::Tensor& gdmx); -template void test_deepks>::check_gvx(torch::Tensor& gdmx); - -template -void run_deepks_unit_gvx(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_descriptor(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - torch::Tensor gdmx; - test.check_gdmx(gdmx); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_gvx(gdmx); -} - -template void run_deepks_unit_gvx(test_deepks& test); -template void run_deepks_unit_gvx>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_o_delta.cpp b/source/source_lcao/module_deepks/test/deepks_test_o_delta.cpp deleted file mode 100644 index d6e7d522c4..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_o_delta.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_orbital.h" - -#include -#include - -template -void test_deepks::check_o_delta() -{ - const int nks = kv.get_nkstot(); - ModuleBase::matrix o_delta; - o_delta.create(nks, 1); - DeePKS_domain::cal_o_delta(dm, ld.V_delta, o_delta, ParaO, nks, this->nspin); - std::ofstream ofs("o_delta.dat"); - ofs << std::setprecision(10); - o_delta.print(ofs); - ofs.close(); - this->assert_file_matches_reference("o_delta.dat", "o_delta_ref.dat"); -} - -template void test_deepks::check_o_delta(); -template void test_deepks>::check_o_delta(); - -template -void run_deepks_unit_o_delta(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_edelta(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_e_deltabands(); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_o_delta(); -} - -template void run_deepks_unit_o_delta(test_deepks& test); -template void run_deepks_unit_o_delta>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_orbpre.cpp b/source/source_lcao/module_deepks/test/deepks_test_orbpre.cpp deleted file mode 100644 index d50f05013d..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_orbpre.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_basic.h" -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_orbpre.h" - -#include - -template -void test_deepks::check_orbpre() -{ - using TH = std::conditional_t::value, ModuleBase::matrix, ModuleBase::ComplexMatrix>; - std::vector gevdm; - torch::Tensor orbpre; - DeePKS_domain::cal_gevdm(ucell.nat, this->ld.deepks_param, this->ld.pdm, gevdm); - DeePKS_domain::cal_orbital_precalc(dm, - ucell.nat, - kv.get_nkstot(), - this->ld.deepks_param, - kv.kvec_d, - this->ld.phialpha, - gevdm, - ucell, - ORB, - ParaO, - Test_Deepks::GridD, - orbpre); - DeePKS_domain::check_tensor(orbpre, "orbital_precalc.dat", 0); - this->assert_file_matches_reference("orbital_precalc.dat", "orbpre_ref.dat"); -} - -template void test_deepks::check_orbpre(); -template void test_deepks>::check_orbpre(); - -template -void run_deepks_unit_orbpre(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_descriptor(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_orbpre(); -} - -template void run_deepks_unit_orbpre(test_deepks& test); -template void run_deepks_unit_orbpre>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_pdm.cpp b/source/source_lcao/module_deepks/test/deepks_test_pdm.cpp deleted file mode 100644 index c5d1524a81..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_pdm.cpp +++ /dev/null @@ -1,119 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_pdm.h" - -#include -#include - -template -void test_deepks::read_dm(const int nks) -{ - dm.resize(nks); - std::stringstream ss; - for (int ik = 0; ik < nks; ik++) - { - ss.str(""); - if (nks == 1) - { - ss << "dm"; - } - else - { - ss << "dm_" << ik; - } - std::ifstream ifs(ss.str().c_str()); - ASSERT_TRUE(ifs.is_open()) << "Cannot open density matrix file " << ss.str(); - dm[ik].create(this->nlocal, this->nlocal); - - for (int mu = 0; mu < this->nlocal; mu++) - { - for (int nu = 0; nu < this->nlocal; nu++) - { - T c; - ASSERT_TRUE(ifs >> c) << "Failed to read " << ss.str() << " at (" << mu << ", " << nu << ")"; - dm[ik](mu, nu) = c; - } - } - } -} - -template -void test_deepks::set_dm_new() -{ - dm_new.resize(dm.size()); - for (int i = 0; i < dm.size(); i++) - { - dm_new[i].resize(dm[i].nr * dm[i].nc); - dm_new[i].assign(dm[i].c, dm[i].c + dm[i].nr * dm[i].nc); - } -} - -template -void test_deepks::set_p_elec_DM() -{ - int nk = 1; - if (this->gamma_only_local) - { - nk = this->nspin; - this->p_elec_DM = new elecstate::DensityMatrix(&ParaO, this->nspin); - } - else - { - nk = kv.get_nkstot(); - this->p_elec_DM - = new elecstate::DensityMatrix(&ParaO, this->nspin, kv.kvec_d, kv.get_nkstot() / this->nspin); - } - p_elec_DM->init_DMR(&Test_Deepks::GridD, &ucell); - - for (int ik = 0; ik < nk; ik++) - { - p_elec_DM->set_DMK_pointer(ik, dm_new[ik].data()); - } - p_elec_DM->cal_DMR(); -} - -template -void test_deepks::check_pdm() -{ - this->read_dm(kv.get_nkstot()); - this->set_dm_new(); - this->set_p_elec_DM(); - this->ld.init_DMR(ucell, ORB, ParaO, Test_Deepks::GridD); - DeePKS_domain::update_dmr(kv.kvec_d, - p_elec_DM->get_DMK_vector(), - ucell, - ORB, - ParaO, - Test_Deepks::GridD, - this->ld.dm_r); - DeePKS_domain::cal_pdm(this->ld.init_pdm, - this->ld.deepks_param, - kv.kvec_d, - this->ld.dm_r, - this->ld.phialpha, - ucell, - ORB, - Test_Deepks::GridD, - ParaO, - this->ld.pdm); - DeePKS_domain::check_pdm(this->ld.deepks_param, this->ld.pdm); - this->assert_file_matches_reference("deepks_projdm.dat", "pdm_ref.dat"); -} - -template void test_deepks::read_dm(const int nks); -template void test_deepks>::read_dm(const int nks); -template void test_deepks::set_dm_new(); -template void test_deepks>::set_dm_new(); -template void test_deepks::set_p_elec_DM(); -template void test_deepks>::set_p_elec_DM(); -template void test_deepks::check_pdm(); -template void test_deepks>::check_pdm(); - -template -void run_deepks_unit_pdm(test_deepks& test) -{ - DeepksTestRunner::build_pdm(test); -} - -template void run_deepks_unit_pdm(test_deepks& test); -template void run_deepks_unit_pdm>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_phialpha.cpp b/source/source_lcao/module_deepks/test/deepks_test_phialpha.cpp deleted file mode 100644 index 59b4820434..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_phialpha.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_phialpha.h" - -#include - -template -void test_deepks::check_phialpha() -{ - std::vector na; - na.resize(ucell.ntype); - for (int it = 0; it < ucell.ntype; it++) - { - na[it] = ucell.atoms[it].na; - } - this->ld.init(ORB, ucell.nat, ucell.ntype, kv.get_nkstot(), ParaO, na, GlobalV::ofs_running); - - DeePKS_domain::allocate_phialpha(this->cal_force, ucell, ORB, Test_Deepks::GridD, &ParaO, this->ld.phialpha); - DeePKS_domain::build_phialpha(this->cal_force, - ucell, - ORB, - Test_Deepks::GridD, - &ParaO, - overlap_orb_alpha_, - this->ld.phialpha); - DeePKS_domain::check_phialpha(this->cal_force, - ucell, - ORB, - Test_Deepks::GridD, - &ParaO, - this->ld.phialpha, - 0); - - this->assert_file_matches_reference("phialpha.dat", "phialpha_ref.dat"); - this->assert_file_matches_reference("dphialpha_x.dat", "dphialpha_x_ref.dat"); - this->assert_file_matches_reference("dphialpha_y.dat", "dphialpha_y_ref.dat"); - this->assert_file_matches_reference("dphialpha_z.dat", "dphialpha_z_ref.dat"); -} - -template void test_deepks::check_phialpha(); -template void test_deepks>::check_phialpha(); - -template -void run_deepks_unit_phialpha(test_deepks& test) -{ - test.check_phialpha(); -} - -template void run_deepks_unit_phialpha(test_deepks& test); -template void run_deepks_unit_phialpha>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_prep.cpp b/source/source_lcao/module_deepks/test/deepks_test_prep.cpp deleted file mode 100644 index de060a8ece..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_prep.cpp +++ /dev/null @@ -1,313 +0,0 @@ -#include "deepks_test.h" -#include "source_base/global_variable.h" -#include "source_cell/read_pseudo.h" -#include "source_hamilt/module_xc/exx_info.h" -#include "../../LCAO_nonlocal_info.h" -#include "source_io/module_parameter/parameter.h" -#include "source_estate/param_update.h" - -#include - -Magnetism::Magnetism() -{ - this->tot_mag = 0.0; - this->abs_mag = 0.0; -} -Magnetism::~Magnetism() -{ -} -namespace GlobalC -{ -Exx_Info exx_info; -} - -class TestParameters -{ -public: - static void init(int npol, bool gamma_only_local, int nlocal, int nspin) - { - PARAM.sys.npol = npol; - PARAM.sys.gamma_only_local = gamma_only_local; - PARAM.sys.nlocal = nlocal; - PARAM.sys.global_out_dir = ""; - PARAM.sys.global_readin_dir = ""; - PARAM.input.ks_solver = "cg"; - PARAM.input.nspin = nspin; - PARAM.input.deepks_equiv = false; - } -}; - -template -void test_deepks::preparation() -{ - this->count_ntype(); - this->set_parameters(); - if (testing::Test::HasFatalFailure()) - { - return; - } - - this->setup_cell(); - - this->setup_kpt(); - - this->set_ekcut(); - this->set_orbs(); - this->prep_neighbour(); - - this->ParaO.set_serial(this->nlocal, this->nlocal); - this->ParaO.nrow_bands = this->nlocal; - this->ParaO.ncol_bands = this->nbands; - - this->ParaO.set_atomic_trace(ucell.get_iat2iwt(), ucell.nat, this->nlocal); -} - -template -void test_deepks::set_parameters() -{ - std::ifstream ifs("INPUT"); - ASSERT_TRUE(ifs.is_open()) << "Cannot open DeePKS unit-test INPUT"; - char word[80]; - ASSERT_TRUE(ifs >> word); - ASSERT_STREQ(word, "gamma_only_local"); - ASSERT_TRUE(ifs >> this->gamma_only_local); - ifs.close(); - - GlobalV::ofs_warning.open("warning.log"); - GlobalV::ofs_running.open("running.log"); - GlobalV::KPAR = 1; - GlobalV::MY_POOL = 0; - GlobalV::RANK_IN_POOL = 0; - GlobalV::NPROC_IN_POOL = 1; - - ucell.latName = "user_defined_lattice"; - ucell.ntype = ntype; - - return; -} - -template -void test_deepks::count_ntype() -{ - GlobalV::ofs_running << "count number of atom types" << std::endl; - std::ifstream ifs("STRU", std::ios::in); - - if (!ifs) - { - GlobalV::ofs_running << "ERROR : file STRU does not exist" << std::endl; - exit(1); - } - - ModuleBase::GlobalFunc::SCAN_BEGIN(ifs, "ATOMIC_SPECIES"); - - ntype = 0; - - std::string x; - ifs.rdstate(); - while (ifs.good()) - { - std::getline(ifs, x); - - const char* typeOfWhitespaces = " \t\n\r\f\v"; - x.erase(x.find_last_not_of(typeOfWhitespaces) + 1); - x.erase(0, x.find_first_not_of(typeOfWhitespaces)); - - if (x == "LATTICE_CONSTANT" || x == "NUMERICAL_ORBITAL" || x == "LATTICE_VECTORS" || x == "ATOMIC_POSITIONS" - || x == "NUMERICAL_DESCRIPTOR") - { - break; - } - - std::string tmpid = x.substr(0, 1); - if (!x.empty() && tmpid != "#") - { - ntype++; - } - } - - GlobalV::ofs_running << "ntype : " << ntype << std::endl; - ifs.close(); - - return; -} - -template -void test_deepks::set_ekcut() -{ - GlobalV::ofs_running << "set lcao_ecut from LCAO files" << std::endl; - - lcao_ecut = 0.0; - std::ifstream in_ao; - - for (int it = 0; it < ntype; it++) - { - double ek_current; - - in_ao.open(ucell.orbital_fn[it].c_str()); - if (!in_ao) - { - GlobalV::ofs_running << "error : cannot find LCAO file : " << ucell.orbital_fn[it] << std::endl; - } - - std::string word; - while (in_ao.good()) - { - in_ao >> word; - if (word == "Cutoff(Ry)") - { - break; - } - } - in_ao >> ek_current; - lcao_ecut = std::max(lcao_ecut, ek_current); - - in_ao.close(); - } - - ORB.ecutwfc = lcao_ecut; - GlobalV::ofs_running << "lcao_ecut : " << lcao_ecut << std::endl; - - return; -} - -template -void test_deepks::setup_cell() -{ - const std::string basis_type = "lcao"; - const std::string orbital_dir = this->orbital_dir; - const std::string init_wfc = "atomic"; - const double onsite_radius = 0.0; - const bool deepks_setorb = this->deepks_setorb; - const bool rpa = false; - const bool fixed_atoms = false; - const bool noncolin = false; - const std::string calculation = "scf"; - const std::string esolver_type = "cg"; - const double symmetry_prec = 1e-5; - const int dfthalf_type = 0; - const std::string pseudo_dir = ""; - const int nspin = this->nspin; - - ucell.setup_cell("STRU", GlobalV::ofs_running, symmetry_prec, dfthalf_type, pseudo_dir, nspin, - basis_type, orbital_dir, init_wfc, - onsite_radius, deepks_setorb, rpa, - fixed_atoms, noncolin, calculation, esolver_type); - - const std::string global_out_dir = "./"; - const bool out_element_info = this->out_element_info; - const std::string dft_functional = "default"; - const bool lspinorb = false; - const double pseudo_rcut = 15.0; - const double soc_lambda = 0.0; - const int npol = this->npol; - const int nbands = this->nbands; - const bool two_fermi = false; - const double nelec_delta = 0.0; - const std::string smearing_method = "gaussian"; - const std::string ks_solver = "cg"; - const int bndpar = 1; - const double nelec = 0.0; - const double nupdown = 0.0; - - auto atoms_info = unitcell::read_pseudo(GlobalV::ofs_running, ucell, pseudo_dir, global_out_dir, out_element_info, dft_functional, lspinorb, pseudo_rcut, soc_lambda, nspin, npol, basis_type, esolver_type, init_wfc, nbands, two_fermi, nelec_delta, smearing_method, ks_solver, bndpar, nelec, nupdown); - - this->nlocal = atoms_info.nlocal; - this->nbands = atoms_info.nbands; - - TestParameters::init(this->npol, this->gamma_only_local, this->nlocal, this->nspin); - - return; -} - -template -void test_deepks::prep_neighbour() -{ - double search_radius = atom_arrange::set_sr_NL(GlobalV::ofs_running, - this->out_level, - ORB.get_rcutmax_Phi(), - ucell.infoNL->get_rcutmax_Beta(), - this->gamma_only_local); - - atom_arrange::search(this->search_pbc, - GlobalV::ofs_running, - Test_Deepks::GridD, - ucell, - search_radius, - this->test_atom_input); -} - -template -void test_deepks::set_orbs() -{ - ORB.init(GlobalV::ofs_running, - ucell.ntype, - this->orbital_dir, - ucell.orbital_fn.data(), - ucell.descriptor_file, - ucell.lmax, - lcao_ecut, - lcao_dk, - lcao_dr, - lcao_rmax, - this->deepks_setorb, - out_mat_r, - this->out_element_info, - this->cal_force, - my_rank); - - const std::string basis_type = "lcao"; - const bool out_element_info = this->out_element_info; - const bool lspinorb = false; - const int nspin = this->nspin; - - auto* lcao_nl = new LCAONonlocalInfo(); - lcao_nl->setupNonlocal(ucell.ntype, ucell.atoms, GlobalV::ofs_running, ORB, - basis_type, out_element_info, lspinorb, nspin); - ucell.infoNL.reset(lcao_nl); - - orb_.build(ntype, ucell.orbital_fn.data()); - - std::string file_alpha = this->orbital_dir + ucell.descriptor_file; - alpha_.build(1, &file_alpha); - - double rmax = std::max(orb_.rcut_max(), alpha_.rcut_max()); - double cutoff = 2.0 * rmax; - int nr = static_cast(rmax / lcao_dr) + 1; - - orb_.set_uniform_grid(true, nr, cutoff, 'i', true); - alpha_.set_uniform_grid(true, nr, cutoff, 'i', true); - - overlap_orb_alpha_.tabulate(orb_, alpha_, 'S', nr, cutoff); - - return; -} - -template -void test_deepks::setup_kpt() -{ - ModuleSymmetry::Symmetry::symm_flag = -1; - const bool use_ibz = false; - const std::string global_out_dir = "./"; - const bool gamma_only_local = this->gamma_only_local; - const double kspacing[3] = {0.0, 0.0, 0.0}; - const std::string kmesh_type = "gamma"; - const double koffset[3] = {0.0, 0.0, 0.0}; - const std::string kpoint_file = "KPT"; - - this->kv.set(ucell, - ucell.symm, - kpoint_file, - this->nspin, - ucell.G, - ucell.latvec, - GlobalV::ofs_running, - use_ibz, - global_out_dir, - gamma_only_local, - kspacing, - kmesh_type, - koffset); -} - -template class test_deepks; -template class test_deepks>; diff --git a/source/source_lcao/module_deepks/test/deepks_test_runner.h b/source/source_lcao/module_deepks/test/deepks_test_runner.h deleted file mode 100644 index 37e185f381..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_runner.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef DEEPKS_TEST_RUNNER_H_ -#define DEEPKS_TEST_RUNNER_H_ - -#include "deepks_test.h" - -#include -#include -#include - -namespace DeepksTestRunner -{ -template -void build_phialpha(test_deepks& test) -{ - test.check_phialpha(); -} - -template -void build_pdm(test_deepks& test) -{ - build_phialpha(test); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_pdm(); -} - -template -void build_descriptor(test_deepks& test, std::vector& descriptor) -{ - build_pdm(test); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_descriptor(descriptor); -} - -template -void build_edelta(test_deepks& test, std::vector& descriptor) -{ - build_descriptor(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_edelta(descriptor); -} -} // namespace DeepksTestRunner - -#endif diff --git a/source/source_lcao/module_deepks/test/deepks_test_vdpre.cpp b/source/source_lcao/module_deepks/test/deepks_test_vdpre.cpp deleted file mode 100644 index 634332c598..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_vdpre.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_basic.h" -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_vdpre.h" - -#include - -template -void test_deepks::check_vdpre() -{ - std::vector gevdm; - torch::Tensor vdpre; - DeePKS_domain::cal_gevdm(ucell.nat, this->ld.deepks_param, this->ld.pdm, gevdm); - DeePKS_domain::cal_v_delta_precalc(this->nlocal, - ucell.nat, - kv.get_nkstot(), - this->ld.deepks_param, - kv.kvec_d, - this->ld.phialpha, - gevdm, - ucell, - ORB, - ParaO, - Test_Deepks::GridD, - vdpre); - DeePKS_domain::check_tensor(vdpre, "v_delta_precalc.dat", 0); - this->assert_file_matches_reference("v_delta_precalc.dat", "vdpre_ref.dat"); -} - -template void test_deepks::check_vdpre(); -template void test_deepks>::check_vdpre(); - -template -void run_deepks_unit_vdpre(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_descriptor(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_vdpre(); -} - -template void run_deepks_unit_vdpre(test_deepks& test); -template void run_deepks_unit_vdpre>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/deepks_test_vdrpre.cpp b/source/source_lcao/module_deepks/test/deepks_test_vdrpre.cpp deleted file mode 100644 index af0883bafb..0000000000 --- a/source/source_lcao/module_deepks/test/deepks_test_vdrpre.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "deepks_test_runner.h" - -#include "source_lcao/module_deepks/deepks_basic.h" -#include "source_lcao/module_deepks/deepks_check.h" -#include "source_lcao/module_deepks/deepks_vdrpre.h" - -#include - -template -void test_deepks::check_vdrpre() -{ - std::vector gevdm; - torch::Tensor vdrpre; - torch::Tensor overlap_out; - torch::Tensor iRmat; - DeePKS_domain::cal_gevdm(ucell.nat, this->ld.deepks_param, this->ld.pdm, gevdm); - const int R_size = 3; - DeePKS_domain::cal_vdr_precalc(this->nlocal, - ucell.nat, - kv.get_nkstot(), - R_size, - this->ld.deepks_param, - kv.kvec_d, - this->ld.phialpha, - gevdm, - ucell, - ORB, - ParaO, - Test_Deepks::GridD, - vdrpre); - DeePKS_domain::prepare_phialpha_iRmat(this->nlocal, - R_size, - this->ld.deepks_param, - this->ld.phialpha, - ucell, - ORB, - ParaO, - Test_Deepks::GridD, - overlap_out, - iRmat); - torch::Tensor vdrpre_sliced = vdrpre.slice(0, 0, 2, 1).slice(1, 0, 1, 1).slice(2, 0, 1, 1); - DeePKS_domain::check_tensor(vdrpre_sliced, "vdr_precalc.dat", 0); - DeePKS_domain::check_tensor(overlap_out, "phialpha_r.dat", 0); - DeePKS_domain::check_tensor(iRmat, "iRmat.dat", 0); - this->assert_file_matches_reference("vdr_precalc.dat", "vdrpre_ref.dat"); - this->assert_file_matches_reference("phialpha_r.dat", "phialpha_r_ref.dat"); - this->assert_file_matches_reference("iRmat.dat", "iRmat_ref.dat"); -} - -template void test_deepks::check_vdrpre(); -template void test_deepks>::check_vdrpre(); - -template -void run_deepks_unit_vdrpre(test_deepks& test) -{ - std::vector descriptor; - DeepksTestRunner::build_descriptor(test, descriptor); - if (testing::Test::HasFatalFailure()) - { - return; - } - test.check_vdrpre(); -} - -template void run_deepks_unit_vdrpre(test_deepks& test); -template void run_deepks_unit_vdrpre>(test_deepks>& test); diff --git a/source/source_lcao/module_deepks/test/main_deepks.cpp b/source/source_lcao/module_deepks/test/main_deepks.cpp deleted file mode 100644 index 77188ca075..0000000000 --- a/source/source_lcao/module_deepks/test/main_deepks.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include "deepks_test_runner.h" - -#include - -#ifdef __MPI -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef DEEPKS_UT_CHECK_NAME -#error "DEEPKS_UT_CHECK_NAME must be defined by CMake." -#endif - -#ifndef DEEPKS_UT_CASE_DIR -#error "DEEPKS_UT_CASE_DIR must be defined by CMake." -#endif - -#ifndef DEEPKS_UT_RUNNER -#error "DEEPKS_UT_RUNNER must be defined by CMake." -#endif - -template -void DEEPKS_UT_RUNNER(test_deepks& test); - -namespace -{ -std::string shell_quote(const std::string& value) -{ - std::string quoted = "'"; - for (std::string::const_iterator it = value.begin(); it != value.end(); ++it) - { - if (*it == '\'') - { - quoted += "'\\''"; - } - else - { - quoted += *it; - } - } - quoted += "'"; - return quoted; -} - -void prepare_workdir() -{ - const std::string case_dir = DEEPKS_UT_CASE_DIR; - const std::string check_name = DEEPKS_UT_CHECK_NAME; - const std::string run_root = "deepks_unit_run_" + case_dir + "_" + check_name; - - std::ostringstream command; - command << "rm -rf " << shell_quote(run_root) << " && " - << "mkdir -p " << shell_quote(run_root) << " && " - << "cp -R " << shell_quote("support/" + case_dir) << " " << shell_quote(run_root + "/" + case_dir); - - ASSERT_EQ(std::system(command.str().c_str()), 0) << "Failed to prepare DeePKS unit-test work directory"; - - const std::string workdir = run_root + "/" + case_dir; - ASSERT_EQ(chdir(workdir.c_str()), 0) << "Failed to chdir to " << workdir << ": " << std::strerror(errno); -} - -template -void run_typed_check() -{ - test_deepks test; - test.preparation(); - if (testing::Test::HasFatalFailure()) - { - return; - } - DEEPKS_UT_RUNNER(test); -} - -void gamma_only_case(bool* gamma_only_local) -{ - std::ifstream ifs("INPUT"); - std::string key; - ASSERT_TRUE(ifs.is_open()) << "Cannot open DeePKS unit-test INPUT"; - ASSERT_TRUE(ifs >> key) << "Cannot read gamma_only_local key from DeePKS unit-test INPUT"; - ASSERT_EQ(key, "gamma_only_local") << "Unexpected first entry in DeePKS unit-test INPUT"; - ASSERT_TRUE(ifs >> *gamma_only_local) << "Cannot read gamma_only_local value from DeePKS unit-test INPUT"; -} -} // namespace - -TEST(DeePKSUnitTest, ConfiguredCheck) -{ - prepare_workdir(); - - bool gamma_only_local = false; - ASSERT_NO_FATAL_FAILURE(gamma_only_case(&gamma_only_local)); - - if (gamma_only_local) - { - run_typed_check(); - } - else - { - run_typed_check>(); - } -} - -int main(int argc, char** argv) -{ -#ifdef __MPI - MPI_Init(&argc, &argv); -#endif - testing::InitGoogleTest(&argc, argv); - const int result = RUN_ALL_TESTS(); -#ifdef __MPI - MPI_Finalize(); -#endif - return result; -} diff --git a/source/source_lcao/module_deepks/test/mock_berryphase.cpp b/source/source_lcao/module_deepks/test/mock_berryphase.cpp deleted file mode 100644 index 1209083060..0000000000 --- a/source/source_lcao/module_deepks/test/mock_berryphase.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "source_io/module_unk/berryphase.h" - -bool berryphase::berry_phase_flag = false; diff --git a/source/source_lcao/module_deepks/test/mock_tdinfo.cpp b/source/source_lcao/module_deepks/test/mock_tdinfo.cpp deleted file mode 100644 index d61e33157a..0000000000 --- a/source/source_lcao/module_deepks/test/mock_tdinfo.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "source_base/vector3.h" -#include "source_cell/unitcell.h" -// mock of TD_info -class TD_info -{ - public: - TD_info() - { - } - ~TD_info() - { - } - const UnitCell* get_ucell() - { - return nullptr; - } - static ModuleBase::Vector3 cart_At; - static TD_info* td_vel_op; -}; -TD_info td_info; -TD_info* TD_info::td_vel_op = &td_info; -ModuleBase::Vector3 TD_info::cart_At(0.0, 0.0, 0.0); diff --git a/source/source_lcao/module_deepks/test/support/.gitignore b/source/source_lcao/module_deepks/test/support/.gitignore deleted file mode 100644 index cd5483d009..0000000000 --- a/source/source_lcao/module_deepks/test/support/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!**/*.dat diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_bands_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_bands_ref.dat deleted file mode 100644 index 5c078474ed..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_bands_ref.dat +++ /dev/null @@ -1 +0,0 @@ --0.08076909443 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_ref.dat deleted file mode 100644 index 1c7f94acf4..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_ref.dat +++ /dev/null @@ -1 +0,0 @@ --0.313773958 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/F_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/F_delta_ref.dat deleted file mode 100644 index 2b35b7e709..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/F_delta_ref.dat +++ /dev/null @@ -1,5 +0,0 @@ --0.00197050246 0.0003857169325 -0.000286430865 -0.000147912611 0.0001343902978 -0.01086809874 --0.009542180958 -0.000151654385 0.002945191164 -0.005671544221 0.009179414195 0.003918275884 -0.005693226587 -0.00954786704 0.004291062558 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/INPUT b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/INPUT deleted file mode 100644 index 48df2b805f..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/INPUT +++ /dev/null @@ -1 +0,0 @@ -gamma_only_local 1 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/KPT b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/KPT deleted file mode 100644 index c289c0158a..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/KPT +++ /dev/null @@ -1,4 +0,0 @@ -K_POINTS -0 -Gamma -1 1 1 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/STRU b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/STRU deleted file mode 100644 index 4b87bef0cb..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/STRU +++ /dev/null @@ -1,33 +0,0 @@ -ATOMIC_SPECIES -C 12.000 @DEEPKS_UT_PP_ORB_DIR@/C_ONCV_PBE-1.0.upf #Element, Mass, Pseudopotential -H 1.008 @DEEPKS_UT_PP_ORB_DIR@/H_ONCV_PBE-1.0.upf - -NUMERICAL_ORBITAL -@DEEPKS_UT_PP_ORB_DIR@/C_gga_8au_100Ry_1s1p.orb -@DEEPKS_UT_PP_ORB_DIR@/H_gga_6au_60Ry_1s.orb - -NUMERICAL_DESCRIPTOR -jle.orb - -LATTICE_CONSTANT -47.24314972 #Lattice constant - -LATTICE_VECTORS -1 0 0 -0 1 0 -0 0 1 - -ATOMIC_POSITIONS -Cartesian #Cartesian(Unit is LATTICE_CONSTANT) -C #Name of element -0.0 #Magnetic for this element. -1 #Number of atoms -0.999619 0.000169648 0.00131031 - -H -0.0 -4 -0.998911 6.75673e-05 0.0374835 -0.0418908 0.000157703 0.987531 -0.980183 0.965348 0.9869 -0.98072 0.0340401 0.987153 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/S_I_mu_alpha_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/S_I_mu_alpha_ref.dat deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/descriptor_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/descriptor_ref.dat deleted file mode 100644 index dd3bd38ffa..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/descriptor_ref.dat +++ /dev/null @@ -1,24 +0,0 @@ -C atom_index 1 n_descriptor 18 -1.060477274 0.1291064478 0.8779490569 0.907103037 0.9755199532 0.008327259964 0.009537615065 0.0110756114 -2.369759238e-18 2.268498869e-07 0.01520748138 0.01733066746 0.02327866008 -1.030185253e-18 6.154522243e-08 0.004575102944 -0.00493019975 0.005326462858 - -H atom_index 1 n_descriptor 18 -1.403639879 0.04233702521 0.1036347145 0.1051171034 0.1300373994 0.01706864894 0.02315803338 0.02355187044 --5.352897961e-16 2.266531708e-07 0.0159707875 0.0778590809 0.07918226508 -4.924966793e-16 4.975654769e-10 0.004119993294 -0.01770276112 0.0181031737 - -H atom_index 2 n_descriptor 18 -1.184831216 0.04679103742 0.04277350838 0.04423740147 0.1253672028 0.01215294916 0.01257986411 0.02104749686 -7.492518529e-16 9.704436675e-09 0.03075646343 0.03405832655 0.03561666627 4.179742779e-16 2.279841565e-09 0.004466947552 -0.0105746405 0.01107366326 - -H atom_index 3 n_descriptor 18 -1.239742588 0.04687423276 0.05317003237 0.0555070447 0.1316145116 0.01440691829 0.01502840736 0.0193624203 --5.378502639e-16 1.204639901e-07 0.02912076931 0.04214107586 0.0444475427 -1.633806844e-16 2.992227555e-08 0.003309087288 -0.0123611807 0.01311323646 - -H atom_index 4 n_descriptor 18 -1.269742593 0.04647160497 0.05990708252 0.06249145763 0.1337141738 0.01578436253 0.01626321051 0.01851494911 --1.26080752e-15 1.151949305e-07 0.02755614603 0.04721333381 0.04982783769 -4.575941525e-16 2.599457635e-08 0.002786657168 -0.01336929136 0.01420300195 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dm b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dm deleted file mode 100644 index 32578caab5..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dm +++ /dev/null @@ -1,8 +0,0 @@ - 8.6556984363e-01 -7.6774573961e-03 -2.1032039292e-03 8.5547044432e-04 1.7528695845e-01 1.8705265442e-01 1.8817795517e-01 1.8807666381e-01 - -7.6774573961e-03 7.8941642410e-01 1.1208235330e-03 -1.0437150100e-03 5.7056027171e-01 -1.9545917916e-01 -2.1533359552e-01 -2.1430797815e-01 - -2.1032039292e-03 1.1208235330e-03 7.9719039757e-01 3.0220307177e-04 6.2888151449e-03 -5.5888426593e-01 2.6320366092e-01 2.6308062750e-01 - 8.5547044432e-04 -1.0437150100e-03 3.0220307177e-04 7.9185020367e-01 1.9271439173e-03 2.4951433024e-03 4.7427369691e-01 -4.6981040880e-01 - 1.7528695845e-01 5.7056027171e-01 6.2888151449e-03 1.9271439173e-03 4.5021487947e-01 -1.0671993894e-01 -1.1329878934e-01 -1.1556126281e-01 - 1.8705265442e-01 -1.9545917916e-01 -5.5888426593e-01 2.4951433024e-03 -1.0671993894e-01 4.7881364107e-01 -9.0332132322e-02 -9.3224638735e-02 - 1.8817795517e-01 -2.1533359552e-01 2.6320366092e-01 4.7427369691e-01 -1.1329878934e-01 -9.0332132322e-02 4.6953150962e-01 -9.5586365110e-02 - 1.8807666381e-01 -2.1430797815e-01 2.6308062750e-01 -4.6981040880e-01 -1.1556126281e-01 -9.3224638735e-02 -9.5586365110e-02 4.6488197352e-01 \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_x_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_x_ref.dat deleted file mode 100644 index 3aef3bdf17..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_x_ref.dat +++ /dev/null @@ -1,229 +0,0 @@ -iat : 0 -ad : 0 2.003222249 -iw : 6 --0.1352040297 0.0465667125 0.05294072918 0.05509629935 -0.1279280901 -0.02107910725 --0.03688957141 0.05093639574 0.006617495857 -0.01019832773 0.06033068483 0.1093568706 -0.024643646 0.0007436849652 0.009065066289 -0.0261699582 -0.05369626677 -0.02190518784 - -ad : 1 1.950638213 -iw : 7 --0.1399115628 0.04524556172 0.05509095083 0.0621490916 0.1318015503 -0.02070275232 --0.04124120389 -0.04953000103 0.005125950637 -0.01241787389 -0.06272848642 0.1149759459 --0.02970896318 0.002329188191 0.01079888591 0.02558256291 -0.05454580151 0.02583563875 - -ad : 2 1.709269535 -iw : 4 --0.006832961729 0.001356174181 -0.007600605646 0.1847352904 -2.144890015e-05 0.00180072925 --0.08403426206 5.081655816e-06 -0.008067770444 0.1845532712 -2.9234991e-05 0.003614195675 -0.0005208091132 0.002406163242 -0.08479818626 7.075918322e-06 -0.001660203317 -0.0002393003814 - -ad : 3 2.100474535 -iw : 5 -0.2611709738 -0.09878463576 -0.0935763331 -0.1761644982 8.111939317e-05 0.04052627178 -0.0654916027 -3.513138916e-05 -0.02364423883 0.08793447647 -3.476411269e-05 0.08105558805 --7.622858402e-05 0.006038009395 -0.03871603405 1.64566039e-05 -0.02944185467 3.356213141e-05 - -ad : 4 0 -iw : 0 -0 0 0 0.3104002474 0 0 --0.2677794247 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0 0 0 0 0 0 -0 0 0 0.6082479851 0 0 -0 0 0.1341373008 0 0 0 - -iw : 2 --0.7216821834 -0.5232054796 0 0 0 0 -0 0 -0.351172138 0 0 0.6082479851 -0 -0.0774442067 0 0 0.1341373008 0 - -iw : 3 -0 0 0 0 0 0 -0 0 0 0 0 0 -0.6082479851 0 0 0 0 0.1341373008 - -iat : 1 -ad : 0 3.03052076 -iw : 6 --0.03371746071 0.01794007725 0.0293820449 0.01952903539 -0.02016728548 -0.01678224488 --0.01204794322 0.01151901866 -0.0167164702 -0.01246894972 0.02005411267 0.01350138158 -0.008558453629 0.01021156421 0.00811833871 -0.01209744203 -0.008365446495 -0.005572275687 - -ad : 1 2.994710688 -iw : 7 --0.03437338356 0.01818242843 0.03024528452 0.02102319398 0.02041523366 -0.01718741906 --0.01293088069 -0.01160131841 -0.01756151928 -0.01372723525 -0.02051616592 0.01387081325 --0.009265732479 0.01068959757 0.008897215027 0.01233033149 -0.008570307856 0.006005522068 - -ad : 2 1.709269535 -iw : 0 -0.00610083858 -0.0005734787976 -0.004280963473 0.168820896 -1.208087386e-05 0.0008569049089 --0.0635188249 2.41818464e-06 0.001862937214 -0.1030836862 3.411427011e-06 -0.00201784249 --0.0002909020407 -0.000936385783 0.03895265717 -2.424958941e-06 0.0007625691533 0.0001099243525 - -iw : 1 -0.01038676359 0.003748452842 -0.007930497069 0.3320458983 -4.073554359e-05 -0.004706356663 --0.07858480201 -8.944240332e-06 0.008891770155 -0.2513371991 4.347451568e-05 -0.008007716265 --0.001153906611 0.003420602177 0.02879231284 1.672156839e-05 0.001956868567 0.0002822566897 - -iw : 2 --0.3362015005 0.06622720214 0.3320458983 0.01950797048 0.0009370331327 -0.07858480201 --0.004611875696 -0.0002217662184 -0.3269071914 -0.02402735357 -0.001153906611 0.1573262062 --6.780516339e-05 0.09883665342 0.005869891459 0.0002822566897 -0.07117077153 1.656482676e-05 - -iw : 3 -2.931143458e-05 1.057812949e-05 -4.073554359e-05 0.0009370331327 0.00650438466 -8.944240332e-06 --0.0002217662184 -0.001536911997 6.425450728e-05 -0.001153906611 -0.008011921043 1.239215602e-08 -0.1575564595 9.171002473e-08 0.0002822566897 0.001956154324 2.104797856e-09 -0.071227021 - -ad : 3 3.113220902 -iw : 5 -0.06921034996 -0.03728291761 -0.05758148562 -0.0224210234 -0.0001039016566 0.03324749405 -0.01223146072 5.999271594e-05 0.02969518429 0.02713301362 9.848065037e-05 0.00314346072 -4.895957501e-05 -0.01829993124 -0.0160175981 -5.989260178e-05 -0.001495492823 -2.890260575e-05 - -ad : 4 0 -iw : 4 -0 0 0 0.5492639522 0 0 -0.08078158604 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 0 3.347258395 -iw : 6 --0.07257652953 0.04019531088 0.0006942734493 -0.04820973248 -0.03830024175 -0.0004110402306 -0.02816973878 0.02267541732 0.01812782885 0.0005727671831 0.0004163830329 -0.008435710432 --0.03159723535 -0.01107806391 -0.0003526585891 -0.0002588155807 0.00491465845 0.01945473967 - -ad : 1 3.303653192 -iw : 7 --0.07626469715 0.04205101799 0.0004446704375 -0.05107086178 0.03985846633 -0.0002621555439 -0.02968572835 -0.02349856667 0.0191244623 0.0003700376402 -0.0002642119812 -0.009444590566 -0.03316868309 -0.0116275499 -0.0002268148923 0.0001635703958 0.005479540802 -0.02033077305 - -ad : 2 2.100474535 -iw : 0 --0.2666707138 0.05837620583 -0.07486113553 -0.1101259251 6.489557439e-05 0.01737580137 --0.0008227533723 -1.506272383e-05 -0.0150186134 -0.02506295948 1.563412256e-05 0.007978069193 -2.172656265e-05 0.01754397313 -0.0048915666 -2.336877931e-06 -0.02769131887 4.240398198e-06 - -iw : 1 -0.1535805329 -0.01301605617 -0.1531555456 0.1388786392 -5.969395428e-05 0.07683222187 --0.01418797593 1.240432386e-05 -0.1266184443 -0.1021139274 4.457051428e-05 0.08080012596 --7.027520356e-05 0.0435737193 0.05643800189 -2.523492528e-05 -0.007399288365 1.519160858e-05 - -iw : 2 -0.2452252715 0.03992653631 0.1388786392 -0.01798438831 -0.000120391028 -0.01418797593 -0.1387573347 1.229926371e-05 0.08658191095 0.07450575042 -7.027520356e-05 -0.06889745284 --6.458749837e-05 -0.07421937321 0.0241639389 1.519160858e-05 0.1110272604 -2.094722025e-05 - -iw : 3 --0.0001331357964 1.128335064e-05 -5.969395428e-05 -0.000120391028 -0.2220162328 1.240432386e-05 -1.229926371e-05 0.09114138056 -2.100769804e-05 -7.027520356e-05 -0.08709450151 -0.000145544413 --0.1831807433 2.07282563e-05 1.519160858e-05 0.03896251562 4.019009809e-05 0.07396246677 - -ad : 3 3.113220902 -iw : 4 --0.06921034996 0.03728291761 -0.05758148562 -0.0224210234 -0.0001039016566 0.03324749405 -0.01223146072 5.999271594e-05 -0.02969518429 -0.02713301362 -9.848065037e-05 -0.00314346072 --4.895957501e-05 0.01829993124 0.0160175981 5.989260178e-05 0.001495492823 2.890260575e-05 - -ad : 4 0 -iw : 5 -0 0 0 0.5492639522 0 0 -0.08078158604 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 3 -ad : 0 3.245352337 -iw : 7 -0.000723917537 -0.0003965950525 2.8917606e-06 0.02261386118 -0.00078514272 -1.694827483e-06 --0.01375212304 0.0004601630786 -0.0001823503307 7.933933173e-05 -3.567326159e-06 -0.0006527125354 --0.0215414439 0.0001101108627 -5.06248093e-05 2.196576754e-06 0.0004056674631 0.01374515597 - -ad : 1 2.003222249 -iw : 0 -0.1333318541 -0.02400068698 0.03890373539 0.07901374171 -0.0940085383 -0.007746919205 --0.04624633566 0.01871996464 0.01241797875 0.02257839162 -0.02139869316 -0.06436176339 --0.0545593263 -0.009386838656 -0.01279654488 0.002394724585 0.02105417599 0.03092208158 - -iw : 1 --0.08324284577 -0.0001116629112 0.07747291263 -0.03265276279 0.0986239137 -0.03943347099 -0.02608133898 -0.0125556499 0.0672667745 0.02370036514 -0.06689155777 0.09750726128 -0.01555049886 -0.01936943493 -0.0143633156 0.03953913498 -0.0298724254 -0.02272844 - -iw : 2 --0.1386984423 0.08107091289 -0.03265276279 0.2806139458 0.07890343874 0.02608133898 --0.1244362976 -0.06302398806 0.03273283646 0.1104386967 0.01555049886 -0.025553383 --0.2668684729 -0.01787714886 -0.05438780868 -0.02272844 -0.01455202476 0.1314248708 - -iw : 3 -0.2011513336 0.0002698267137 0.0986239137 0.07890343874 -0.120032122 -0.0125556499 --0.06302398806 -0.01428942657 0.05040486394 0.01555049886 -0.08457582583 -0.1126731298 --0.007441187667 -0.04046394416 -0.02272844 0.005357042121 0.02180012864 0.03115283927 - -ad : 2 3.03052076 -iw : 4 -0.03371746071 -0.01794007725 0.0293820449 0.01952903539 -0.02016728548 -0.01678224488 --0.01204794322 0.01151901866 0.0167164702 0.01246894972 -0.02005411267 -0.01350138158 --0.008558453629 -0.01021156421 -0.00811833871 0.01209744203 0.008365446495 0.005572275687 - -ad : 3 3.347258395 -iw : 5 -0.07257652953 -0.04019531088 0.0006942734493 -0.04820973248 -0.03830024175 -0.0004110402306 -0.02816973878 0.02267541732 -0.01812782885 -0.0005727671831 -0.0004163830329 0.008435710432 -0.03159723535 0.01107806391 0.0003526585891 0.0002588155807 -0.00491465845 -0.01945473967 - -ad : 4 0 -iw : 6 -0 0 0 0.5492639522 0 0 -0.08078158604 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 4 -ad : 0 3.245352337 -iw : 6 --0.000723917537 0.0003965950525 2.8917606e-06 0.02261386118 -0.00078514272 -1.694827483e-06 --0.01375212304 0.0004601630786 0.0001823503307 -7.933933173e-05 3.567326159e-06 0.0006527125354 -0.0215414439 -0.0001101108627 5.06248093e-05 -2.196576754e-06 -0.0004056674631 -0.01374515597 - -ad : 1 1.950638213 -iw : 0 -0.1354022387 -0.02172348068 0.0386130266 0.08653548225 0.09237917826 -0.007181978002 --0.04837542165 -0.01718241963 0.01447335345 0.02461970352 0.01921369165 -0.06300508544 -0.05890105439 -0.009435637285 -0.0128765185 -0.002085327718 0.02046038158 -0.03080624086 - -iw : 1 --0.08455511946 -0.004602702157 0.08261836286 -0.03746667099 -0.09974061159 -0.04113511718 -0.0289327207 0.007684750132 0.06902546984 0.02728477507 0.07175801032 0.1008925332 --0.02030653698 -0.01737318345 -0.01659853235 -0.04168483481 -0.02745151057 0.02649541124 - -iw : 2 --0.1523754304 0.08666985758 -0.03746667099 0.2986320313 -0.08963659633 0.0289327207 --0.1273175409 0.0692196701 0.03434695253 0.1190475846 -0.02030653698 -0.01939639485 -0.2848136759 -0.01765499702 -0.05638193047 0.02649541124 -0.02173455211 -0.1348901359 - -iw : 3 --0.2022926753 -0.01101166835 -0.09974061159 -0.08963659633 -0.1143146354 0.007684750132 -0.0692196701 -0.02596195091 -0.05804086699 -0.02030653698 -0.08273748176 0.112525935 --0.01280949694 0.04462321081 0.02649541124 -0.001478909323 -0.01591563276 0.03571537161 - -ad : 2 2.994710688 -iw : 4 -0.03437338356 -0.01818242843 0.03024528452 0.02102319398 0.02041523366 -0.01718741906 --0.01293088069 -0.01160131841 0.01756151928 0.01372723525 0.02051616592 -0.01387081325 -0.009265732479 -0.01068959757 -0.008897215027 -0.01233033149 0.008570307856 -0.006005522068 - -ad : 3 3.303653192 -iw : 5 -0.07626469715 -0.04205101799 0.0004446704375 -0.05107086178 0.03985846633 -0.0002621555439 -0.02968572835 -0.02349856667 -0.0191244623 -0.0003700376402 0.0002642119812 0.009444590566 --0.03316868309 0.0116275499 0.0002268148923 -0.0001635703958 -0.005479540802 0.02033077305 - -ad : 4 0 -iw : 7 -0 0 0 0.5492639522 0 0 -0.08078158604 0 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_y_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_y_ref.dat deleted file mode 100644 index 50e381b5a8..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_y_ref.dat +++ /dev/null @@ -1,229 +0,0 @@ -iat : 0 -ad : 0 2.003222249 -iw : 6 --0.2422323076 0.08342918663 0.09484891111 -0.1279280901 -0.1026962383 -0.03776544828 -0.05093639574 0.02593778054 0.01185594317 0.06033068483 0.06421638329 -0.01610571404 --0.08661226759 0.001332390208 -0.0261699582 -0.02321419397 0.01820164423 0.03131029617 - -ad : 1 1.950638213 -iw : 7 -0.2507470169 -0.08108829178 -0.09873302321 0.1318015503 -0.1005208114 0.03710310486 --0.04953000103 0.01988888482 -0.009186637653 -0.06272848642 0.06500182851 0.02083619765 --0.08677280904 -0.00417432969 0.02558256291 -0.02077519663 -0.02221705818 0.02773340706 - -ad : 2 1.709269535 -iw : 4 --0.0009851885776 0.0001955356061 -0.001095868843 -2.144890015e-05 0.1848809608 0.0002596323467 -5.081655816e-06 -0.08406877416 -0.001163225495 -2.9234991e-05 0.1847518209 -0.0005216614687 -0.003616056231 0.0003469248967 7.075918322e-06 -0.08484624241 0.0002395066821 -0.001660653638 - -ad : 3 2.100474535 -iw : 5 --7.380067063e-05 2.791417538e-05 2.644243362e-05 8.111939317e-05 0.1109064598 -1.145175512e-05 --3.513138916e-05 -0.05883380394 6.681296381e-06 -3.476411269e-05 -0.03509118661 -8.374403942e-05 --0.1076518071 -1.706197041e-06 1.64566039e-05 0.01952174193 4.21655629e-05 0.05988827963 - -ad : 4 0 -iw : 0 -0 0 0 0 0.3104002474 0 -0 -0.2677794247 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0 0 0 0 0 0 -0 0 0 0 0.6082479851 0 -0 0 0 0.1341373008 0 0 - -iw : 2 -0 0 0 0 0 0 -0 0 0 0 0 0 -0.6082479851 0 0 0 0 0.1341373008 - -iw : 3 --0.7216821834 -0.5232054796 0 0 0 0 -0 0 -0.351172138 0 0 -0.6082479851 -0 -0.0774442067 0 0 -0.1341373008 0 - -iat : 1 -ad : 0 3.03052076 -iw : 6 --0.06250831089 0.03325884876 0.05447094645 -0.02016728548 -0.006980414422 -0.03111236012 -0.01151901866 0.003093551519 -0.03099042141 0.02005411267 0.01389173692 -0.006936533535 --0.005143267056 0.01893107064 -0.01209744203 -0.007783480723 0.004593868682 0.002881750511 - -ad : 1 2.994710688 -iw : 7 -0.06419388143 -0.03395652489 -0.05648446581 0.02041523366 -0.006171616137 0.03209829894 --0.01160131841 0.002523052217 0.03279694838 -0.02051616592 0.01360202515 0.007457434888 --0.004916192754 -0.01996331718 0.01233033149 -0.007527824685 -0.004918725012 0.002720788763 - -ad : 2 1.709269535 -iw : 0 -0.0008796297595 -8.268519323e-05 -0.0006172369291 -1.208087386e-05 0.1689029433 0.0001235500742 -2.41818464e-06 -0.06353524802 0.0002686016016 3.411427011e-06 -0.1031068549 0.0002910015019 --0.002018059598 -0.000135009768 -2.424958941e-06 0.0389691263 -0.0001099950529 0.0007627234811 - -iw : 1 -0.001497582052 0.000540458599 -0.001143433175 -4.073554359e-05 0.3323225541 -0.0006785708761 --8.944240332e-06 -0.07852405714 0.001282031239 4.347451568e-05 -0.2516324566 0.00115583333 --0.008011921987 0.0004931885069 1.672156839e-05 0.02867874819 -0.0002819301095 0.001956155695 - -iw : 2 -2.931143458e-05 1.057812949e-05 -4.073554359e-05 0.0009370330291 0.006504385379 -8.944240332e-06 --0.0002217661278 -0.001536912626 6.425450728e-05 -0.001153906475 -0.008011921987 1.239748294e-08 -0.1575564595 9.171002473e-08 0.0002822564921 0.001956155695 2.097061031e-09 -0.07122702097 - -iw : 3 --0.3364005693 0.0661553607 0.3323225541 0.006504385379 0.00281347461 -0.07852405714 --0.001536912626 -0.0006647770202 -0.3273435763 -0.008011921987 -0.003465573136 -0.1577867897 --6.782995302e-05 0.09883603057 0.001956155695 0.0008461167111 0.07128325741 1.65606249e-05 - -ad : 3 3.113220902 -iw : 5 -0.0001451454713 -7.818840174e-05 -0.0001207578328 -0.0001039016566 0.0271226401 6.972545575e-05 -5.999271594e-05 -0.01637500262 6.227567873e-05 9.848065037e-05 -0.01982573913 7.81413444e-05 --0.01705833147 -3.837796146e-05 -5.989260178e-05 0.01254112758 -4.839587597e-05 0.01079055413 - -ad : 4 0 -iw : 4 -0 0 0 0 0.5492639522 0 -0 0.08078158604 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 0 3.347258395 -iw : 6 --0.04094081198 0.02267439179 0.0003916433996 -0.03830024175 -0.00191956339 -0.0002318700123 -0.02267541732 0.0007639352103 0.01022600608 0.0004163830329 6.952124721e-05 -0.02300340119 --0.006798737263 -0.006249195635 -0.0002588155807 -3.985072032e-05 0.0144839522 0.003897147823 - -ad : 1 3.303653192 -iw : 7 -0.04224287971 -0.02329198385 -0.0002463021621 0.03985846633 -0.001188484187 0.0001452074881 --0.02349856667 0.0002775628243 -0.01059300555 -0.0002642119812 3.93796138e-05 0.02440751132 --0.006372704962 0.006440479146 0.0001635703958 -2.210856516e-05 -0.01531394248 0.003577774115 - -ad : 2 2.100474535 -iw : 0 -7.53547656e-05 -1.649571955e-05 2.11539664e-05 6.489557439e-05 0.1195310531 -4.90998588e-06 --1.506272383e-05 -0.0541277695 4.243900937e-06 1.563412256e-05 0.03026416226 5.021635226e-05 -0.09284359046 -4.957507198e-06 -2.336877931e-06 -0.01316147297 -1.499391567e-05 -0.04037641603 - -iw : 1 --4.339818532e-05 3.67802616e-06 4.327809409e-05 -5.969395428e-05 -0.07237048345 -2.171094826e-05 -1.240432386e-05 0.02970930924 3.577934395e-05 4.457051428e-05 0.0556153126 -7.205384279e-05 --0.08709449886 -1.23128909e-05 -2.523492528e-05 -0.03286510913 2.411062722e-05 0.03896253519 - -iw : 2 --0.0001331357964 1.128335064e-05 -5.969395428e-05 -0.0001203910302 -0.2220162405 1.240432386e-05 -1.229927687e-05 0.09114142713 -2.100769804e-05 -7.027520281e-05 -0.08709449886 -0.0001455444084 --0.1831807352 2.07282563e-05 1.519161411e-05 0.03896253519 4.019013202e-05 0.07396252681 - -iw : 3 --0.2259249567 0.07985684336 -0.07237048345 -0.2220162405 0.0001882094655 0.02970930924 -0.09114142713 -7.72631552e-05 0.01223840608 -0.08709449886 7.383248277e-05 -0.2175985066 -0.000226501323 -0.0008647762291 0.03896253519 -3.302964033e-05 0.1053297996 -0.0001013274504 - -ad : 3 3.113220902 -iw : 4 --0.0001451454713 7.818840174e-05 -0.0001207578328 -0.0001039016566 0.0271226401 6.972545575e-05 -5.999271594e-05 -0.01637500262 -6.227567873e-05 -9.848065037e-05 0.01982573913 -7.81413444e-05 -0.01705833147 3.837796146e-05 5.989260178e-05 -0.01254112758 4.839587597e-05 -0.01079055413 - -ad : 4 0 -iw : 5 -0 0 0 0 0.5492639522 0 -0 0.08078158604 0 0 0 0 -0 0 0 0 0 0 - -iat : 3 -ad : 0 3.245352337 -iw : 7 -0.09260226416 -0.0507317449 0.000369908954 -0.00078514272 -0.07781408337 -0.0002167993649 -0.0004601630786 0.04510753516 -0.02332593511 -3.567326159e-06 -0.0003769588986 -0.04039581369 -0.0008001064363 0.01408518881 2.196576754e-06 0.0002303402724 0.02439263524 -0.000488904056 - -ad : 1 2.003222249 -iw : 0 -0.2388781071 -0.04299976711 0.0697001533 -0.0940085383 -0.03694082157 -0.01387942445 -0.01871996464 -0.0231562487 0.02224812127 -0.02139869316 -0.00381576539 0.05153100685 -0.005146538563 -0.01681751345 0.002394724585 -0.009842778672 -0.03058318279 0.0132755122 - -iw : 1 --0.1491383553 -0.000200055906 0.1388009103 0.0986239137 0.0889946221 -0.07064923062 --0.0125556499 0.01059460845 0.1205155353 -0.06689155777 -0.05880683589 -0.007617551144 --0.08457581645 -0.03470238965 0.03953913498 0.03440611759 0.0211935746 0.005356978122 - -iw : 2 -0.2011513336 0.0002698267137 0.0986239137 0.07890336248 -0.1200320795 -0.0125556499 --0.06302377132 -0.01428954754 0.05040486394 0.01555048207 -0.08457581645 -0.1126730845 --0.007441159729 -0.04046394416 -0.02272832534 0.005356978122 0.02179981934 0.03115264852 - -iw : 3 -0.1094110961 0.08140372988 0.0889946221 -0.1200320795 0.208795945 0.01059460845 --0.01428954754 -0.185518024 0.09490457203 -0.08457581645 0.03078558436 0.2157452168 --0.04152225855 -0.0677872853 0.005356978122 -0.06511547453 -0.1206644913 0.08782492279 - -ad : 2 3.03052076 -iw : 4 -0.06250831089 -0.03325884876 0.05447094645 -0.02016728548 -0.006980414422 -0.03111236012 -0.01151901866 0.003093551519 0.03099042141 -0.02005411267 -0.01389173692 0.006936533535 -0.005143267056 -0.01893107064 0.01209744203 0.007783480723 -0.004593868682 -0.002881750511 - -ad : 3 3.347258395 -iw : 5 -0.04094081198 -0.02267439179 0.0003916433996 -0.03830024175 -0.00191956339 -0.0002318700123 -0.02267541732 0.0007639352103 -0.01022600608 -0.0004163830329 -6.952124721e-05 0.02300340119 -0.006798737263 0.006249195635 0.0002588155807 3.985072032e-05 -0.0144839522 -0.003897147823 - -ad : 4 0 -iw : 6 -0 0 0 0 0.5492639522 0 -0 0.08078158604 0 0 0 0 -0 0 0 0 0 0 - -iat : 4 -ad : 0 3.245352337 -iw : 6 --0.09260226416 0.0507317449 0.000369908954 -0.00078514272 -0.07781408337 -0.0002167993649 -0.0004601630786 0.04510753516 0.02332593511 3.567326159e-06 0.0003769588986 0.04039581369 --0.0008001064363 -0.01408518881 -2.196576754e-06 -0.0002303402724 -0.02439263524 0.000488904056 - -ad : 1 1.950638213 -iw : 0 --0.2426654863 0.03893243609 -0.0692015802 0.09237917826 -0.02747920066 0.01287141337 --0.01718241963 -0.02716882334 -0.02593888688 0.01921369165 0.0009061026625 -0.05618333249 --0.001209582486 0.01691038149 -0.002085327718 -0.01030280023 0.0305112772 0.01375350413 - -iw : 1 -0.1515381827 0.008248881025 -0.1480671619 -0.09974061159 0.08563351693 0.07372162612 -0.007684750132 0.01944817704 -0.1237062206 0.07175801032 -0.06127919516 0.01223062057 --0.08273748346 0.03113591069 -0.04168483481 0.03484902664 -0.02535315441 -0.001478898808 - -iw : 2 --0.2022926753 -0.01101166835 -0.09974061159 -0.08963660979 -0.1143146429 0.007684750132 -0.06921970673 -0.02596193047 -0.05804086699 -0.02030654003 -0.08273748346 0.1125259431 --0.01280950196 0.04462321081 0.02649543009 -0.001478898808 -0.01591568308 0.03571540266 - -iw : 3 -0.09729484885 0.1002604946 0.08563351693 -0.1143146429 -0.2406937523 0.01944817704 --0.02596193047 0.2054850749 0.1059811797 -0.08273748346 -0.04476778118 0.2320344812 -0.05976179773 -0.07272910925 -0.001478898808 0.07720173891 -0.1251041364 -0.1030588201 - -ad : 2 2.994710688 -iw : 4 --0.06419388143 0.03395652489 -0.05648446581 0.02041523366 -0.006171616137 0.03209829894 --0.01160131841 0.002523052217 -0.03279694838 0.02051616592 -0.01360202515 -0.007457434888 -0.004916192754 0.01996331718 -0.01233033149 0.007527824685 0.004918725012 -0.002720788763 - -ad : 3 3.303653192 -iw : 5 --0.04224287971 0.02329198385 -0.0002463021621 0.03985846633 -0.001188484187 0.0001452074881 --0.02349856667 0.0002775628243 0.01059300555 0.0002642119812 -3.93796138e-05 -0.02440751132 -0.006372704962 -0.006440479146 -0.0001635703958 2.210856516e-05 0.01531394248 -0.003577774115 - -ad : 4 0 -iw : 7 -0 0 0 0 0.5492639522 0 -0 0.08078158604 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_z_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_z_ref.dat deleted file mode 100644 index 0c8f549504..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dphialpha_z_ref.dat +++ /dev/null @@ -1,229 +0,0 @@ -iat : 0 -ad : 0 2.003222249 -iw : 6 --0.1002434648 0.0345256618 -0.08724894611 -0.05294072918 -0.09484891111 0.04969160682 -0.02107910725 0.03776544828 0.08089561858 -0.0342064421 -0.06128445597 0.03720735551 --0.06033068483 -0.04044981081 0.02109787045 0.03779906454 -0.01613963013 0.0261699582 - -ad : 1 1.950638213 -iw : 7 --0.1048082632 0.03389361571 -0.09442275249 -0.05509095083 0.09873302321 0.0533693955 -0.02070275232 -0.03710310486 0.08597207269 -0.03708154384 0.066456884 0.0387098512 -0.06272848642 -0.04168363063 0.02277812216 -0.04082254582 -0.01578704127 -0.02558256291 - -ad : 2 1.709269535 -iw : 4 -0.349110202 -0.06928975476 0.2034466703 0.007600605646 0.001095868843 -0.007933489409 --0.00180072925 -0.0002596323467 0.09219230173 0.006743536407 0.0009722950756 9.927482844e-05 -2.9234991e-05 0.0240238938 -0.0008467400309 -0.000122084484 -2.402807572e-05 -7.075918322e-06 - -ad : 3 2.100474535 -iw : 5 --0.08513372534 0.03220076077 -0.08040346879 0.0935763331 -2.644243362e-05 0.04562349252 --0.04052627178 1.145175512e-05 0.06848703164 0.06754924204 -1.908780019e-05 -0.06151283154 -3.476411269e-05 -0.03578086275 -0.04090456402 1.155865145e-05 0.02911888799 -1.64566039e-05 - -ad : 4 0 -iw : 0 -0 0 -0.3104002474 0 0 0.2677794247 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0.7216821834 0.5232054796 0 0 0 0 -0 0 -0.7023442759 0 0 0 -0 -0.1548884134 0 0 0 0 - -iw : 2 -0 0 0 0 0 0 -0 0 0 -0.6082479851 0 0 -0 0 -0.1341373008 0 0 0 - -iw : 3 -0 0 0 0 0 0 -0 0 0 0 -0.6082479851 0 -0 0 0 -0.1341373008 0 0 - -iat : 1 -ad : 0 3.03052076 -iw : 6 --0.09106937067 0.0484553555 0.04895218089 -0.0293820449 -0.05447094645 -0.0270667115 -0.01678224488 0.03111236012 -0.004817407136 0.02059566119 0.03818199727 0.01318034332 --0.02005411267 0.002217192722 -0.01220325206 -0.02262343182 -0.007950909717 0.01209744203 - -ad : 1 2.994710688 -iw : 7 --0.09510359966 0.05030678433 0.05172728101 -0.03024528452 0.05648446581 -0.02841086631 -0.01718741906 -0.03209829894 -0.005784932046 0.02146282316 -0.04008281357 0.0136646302 -0.02051616592 0.002729605672 -0.01266540701 0.02365323257 -0.008212519856 -0.01233033149 - -ad : 2 1.709269535 -iw : 0 --0.3117045102 0.02930022248 0.04981862722 0.004280963473 0.0006172369291 0.01975454569 --0.0008569049089 -0.0001235500742 0.08340583303 0.0008092001815 0.0001166719217 -1.158436585e-05 --3.411427011e-06 -0.01965521838 9.657511728e-05 1.392437221e-05 8.234563261e-06 2.424958941e-06 - -iw : 1 --0.1942765224 -0.2576700741 -0.2594712934 0.00793049635 0.001143433072 0.3975030688 -0.004706357292 0.0006785709667 0.3089048979 0.0006186415166 8.91968344e-05 -0.0001476287378 --4.347451302e-05 -0.3232705578 -0.009837682396 -0.001418414549 -5.678234061e-05 -1.672157225e-05 - -iw : 2 --0.01038676359 -0.003748452842 0.00793049635 -0.3320458616 4.073554359e-05 0.004706357292 -0.07858476989 8.944240332e-06 -0.008891768521 0.2513371509 -4.347451302e-05 0.008007715321 -0.001153906475 -0.003420604551 -0.02879224283 -1.672157225e-05 -0.001956867197 -0.0002822564921 - -iw : 3 --0.001497582052 -0.000540458599 0.001143433072 4.073554359e-05 -0.3323225174 0.0006785709667 -8.944240332e-06 0.07852402502 -0.001282031003 -4.347451302e-05 0.2516324084 -0.001155833194 -0.008011921043 -0.0004931888493 -1.672157225e-05 -0.02867867815 0.0002819299119 -0.001956154324 - -ad : 3 3.113220902 -iw : 5 --0.08043848521 0.04333140084 0.03980018865 0.05758148562 0.0001207578328 -0.02226617391 --0.03324749405 -6.972545575e-05 -0.0001731489936 -0.03751869719 -7.868287024e-05 -0.02347937638 --9.848065037e-05 -0.0004533215694 0.02240134937 4.697930892e-05 0.01427936284 5.989260178e-05 - -ad : 4 0 -iw : 4 -0 0 -0.5492639522 0 0 -0.08078158604 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 0 3.347258395 -iw : 6 --0.0007421394085 0.0004110216407 -0.0196787103 -0.0006942734493 -0.0003916433996 0.01202318694 -0.0004110402306 0.0002318700123 0.0004717846824 -0.0161638729 -0.009118127933 -0.0002516229679 --0.0004163830329 -0.0002971346537 0.01037596326 0.005853136873 0.0001564039344 0.0002588155807 - -ad : 1 3.303653192 -iw : 7 --0.0004712715147 0.0002598508574 -0.02088630141 -0.0004446704375 0.0002463021621 0.01273663137 -0.0002621555439 -0.0001452074881 0.0003034502245 -0.01730724485 0.009586452048 -0.0001653290132 -0.0002642119812 -0.0001904844863 0.01108219227 -0.00613840653 0.0001023531636 -0.0001635703958 - -ad : 2 2.100474535 -iw : 0 -0.08692647184 -0.01902885225 -0.09512863779 0.07486113553 -2.11539664e-05 0.04846379556 --0.01737580137 4.90998588e-06 -0.04752346711 -0.07480865819 2.113913756e-05 0.02766356087 --1.563412256e-05 0.017077544 0.03768068206 -1.064765952e-05 -0.004134953184 2.336877931e-06 - -iw : 1 -0.1758624521 -0.07561401154 0.1946650101 0.1531555534 -4.327809627e-05 -0.08446357278 --0.07683226845 2.171096142e-05 -0.06729324059 0.2256039489 -6.375028007e-05 0.07886461592 --4.457051198e-05 0.04358512578 -0.1070351621 3.024557679e-05 -0.04465158553 2.523494224e-05 - -iw : 2 --0.1535805329 0.01301605617 0.1531555534 -0.1388786418 5.969395428e-05 -0.07683226845 -0.01418799111 -1.240432386e-05 0.1266184397 0.1021139201 -4.457051198e-05 -0.08080012331 -7.027520281e-05 -0.0435737532 -0.05643805555 2.523494224e-05 0.007399307935 -1.519161411e-05 - -iw : 3 -4.339818532e-05 -3.67802616e-06 -4.327809627e-05 5.969395428e-05 0.07237048093 2.171096142e-05 --1.240432386e-05 -0.02970929405 -3.577934265e-05 -4.457051198e-05 -0.05561531174 7.205384354e-05 -0.08709450151 1.231290048e-05 2.523494224e-05 0.03286511551 -2.411062169e-05 -0.03896251562 - -ad : 3 3.113220902 -iw : 4 -0.08043848521 -0.04333140084 0.03980018865 0.05758148562 0.0001207578328 -0.02226617391 --0.03324749405 -6.972545575e-05 0.0001731489936 0.03751869719 7.868287024e-05 0.02347937638 -9.848065037e-05 0.0004533215694 -0.02240134937 -4.697930892e-05 -0.01427936284 -5.989260178e-05 - -ad : 4 0 -iw : 5 -0 0 -0.5492639522 0 0 -0.08078158604 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 3 -ad : 0 3.245352337 -iw : 7 -0.0003410635699 -0.0001868501832 -0.02261863661 -2.8917606e-06 -0.000369908954 0.01375492187 -1.694827483e-06 0.0002167993649 -0.0002233798509 0.0001684461367 0.02154733496 -0.0002281491152 -3.567326159e-06 0.000139591669 -0.0001074810157 -0.01374878338 0.0001404825408 -2.196576754e-06 - -ad : 1 2.003222249 -iw : 0 -0.09885538949 -0.01779467686 -0.1026412603 -0.03890373539 -0.0697001533 0.05095129459 -0.007746919205 0.01387942445 -0.05058731625 0.0377066547 0.06755545674 -0.0131970785 -0.02139869316 0.01751976314 -0.01807120672 -0.03237647661 0.001476883103 -0.002394724585 - -iw : 1 -0.1892545615 -0.08100309633 0.2328413332 -0.0774729552 -0.1388009866 -0.09541567211 -0.03943359197 0.07064944736 -0.06044400228 -0.1294409253 -0.231907097 -0.04125361448 -0.06689158042 0.04403370061 0.0580643567 0.1040284313 0.02438481197 -0.03953928963 - -iw : 2 -0.08324284577 0.0001116629112 -0.0774729552 0.03265273124 -0.0986239137 0.03943359197 --0.02608124929 0.0125556499 -0.06726679074 -0.02370035945 0.06689158042 -0.09750725191 --0.01555048207 0.01936954578 0.01436327673 -0.03953928963 0.0298723614 0.02272832534 - -iw : 3 -0.1491383553 0.000200055906 -0.1388009866 -0.0986239137 -0.08899465366 0.07064944736 -0.0125556499 -0.01059451875 -0.1205155644 0.06689158042 0.05880686952 0.00761753435 -0.08457582583 0.03470258825 -0.03953928963 -0.03440634722 -0.02119345994 -0.005357042121 - -ad : 2 3.03052076 -iw : 4 -0.09106937067 -0.0484553555 0.04895218089 -0.0293820449 -0.05447094645 -0.0270667115 -0.01678224488 0.03111236012 0.004817407136 -0.02059566119 -0.03818199727 -0.01318034332 -0.02005411267 -0.002217192722 0.01220325206 0.02262343182 0.007950909717 -0.01209744203 - -ad : 3 3.347258395 -iw : 5 -0.0007421394085 -0.0004110216407 -0.0196787103 -0.0006942734493 -0.0003916433996 0.01202318694 -0.0004110402306 0.0002318700123 -0.0004717846824 0.0161638729 0.009118127933 0.0002516229679 -0.0004163830329 0.0002971346537 -0.01037596326 -0.005853136873 -0.0001564039344 -0.0002588155807 - -ad : 4 0 -iw : 6 -0 0 -0.5492639522 0 0 -0.08078158604 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 4 -ad : 0 3.245352337 -iw : 6 --0.0003410635699 0.0001868501832 -0.02261863661 -2.8917606e-06 -0.000369908954 0.01375492187 -1.694827483e-06 0.0002167993649 0.0002233798509 -0.0001684461367 -0.02154733496 0.0002281491152 --3.567326159e-06 -0.000139591669 0.0001074810157 0.01374878338 -0.0001404825408 2.196576754e-06 - -ad : 1 1.950638213 -iw : 0 -0.101430312 -0.0162731388 -0.1091559618 -0.0386130266 0.0692015802 0.05258280452 -0.007181978002 -0.01287141337 -0.05036956789 0.0391460844 -0.07015691691 -0.01185680043 --0.01921369165 0.01724987453 -0.01787088253 0.03202787814 0.001286859133 0.002085327718 - -iw : 1 -0.2019099403 -0.08397347921 0.2481293876 -0.08261835535 0.1480671485 -0.09725576604 -0.04113509675 -0.07372158949 -0.06686313459 -0.1377106688 0.2468026138 -0.0442819826 --0.07175800625 0.04877759212 0.05902163529 -0.1057775261 0.02572376397 0.04168480965 - -iw : 2 -0.08455511946 0.004602702157 -0.08261835535 0.03746667662 0.09974061159 0.04113509675 --0.02893273601 -0.007684750132 -0.06902546689 -0.02728477607 -0.07175800625 -0.1008925349 -0.02030654003 0.01737316524 0.01659853851 0.04168480965 0.02745152109 -0.02649543009 - -iw : 3 --0.1515381827 -0.008248881025 0.1480671485 0.09974061159 -0.0856335113 -0.07372158949 --0.007684750132 -0.01944819235 0.1237062153 -0.07175800625 0.06127918913 -0.01223062362 -0.08273748176 -0.03113587805 0.04168480965 -0.03484898943 0.02535317325 0.001478909323 - -ad : 2 2.994710688 -iw : 4 -0.09510359966 -0.05030678433 0.05172728101 -0.03024528452 0.05648446581 -0.02841086631 -0.01718741906 -0.03209829894 0.005784932046 -0.02146282316 0.04008281357 -0.0136646302 --0.02051616592 -0.002729605672 0.01266540701 -0.02365323257 0.008212519856 0.01233033149 - -ad : 3 3.303653192 -iw : 5 -0.0004712715147 -0.0002598508574 -0.02088630141 -0.0004446704375 0.0002463021621 0.01273663137 -0.0002621555439 -0.0001452074881 -0.0003034502245 0.01730724485 -0.009586452048 0.0001653290132 --0.0002642119812 0.0001904844863 -0.01108219227 0.00613840653 -0.0001023531636 0.0001635703958 - -ad : 4 0 -iw : 7 -0 0 -0.5492639522 0 0 -0.08078158604 -0 0 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gdmepsl_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gdmepsl_ref.dat deleted file mode 100644 index 4b06ee53f2..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gdmepsl_ref.dat +++ /dev/null @@ -1,900 +0,0 @@ -0.2963239283 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03864884051 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.1259475335 0.164109569 -0.0007962376691 0 0 -0.19152848 0.3523580258 0.002390304314 0 0 -0.0004724016383 -0.0009634343004 0.2375507733 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005407695228 0.007053210216 -0.0001428795173 0 0 -0.008834999885 0.0108651855 0.0002233926855 0 0 --4.86460313e-05 5.095282087e-05 0.009430940445 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003980007454 -0.003343005672 0.0001781680653 -0.005227806313 -0.0002150383158 --0.01449444571 0.01323713275 -6.843418598e-05 0.02065675506 -4.298352132e-06 --0.0001437608908 -0.0001645569618 0.00928182905 -0.0002064417147 -0.01245358113 -0.003187049281 0.02224055835 -0.0005689404162 0.03356155286 0.0006533140168 --0.0003112555405 -0.0002458019937 0.004098536711 -0.0003432641486 -0.005498594131 -0.0003258505521 -0.0006076015306 6.913479617e-05 -0.0009332196831 -8.929536755e-05 --0.003515390941 0.003018523662 1.980799376e-05 0.004715117416 -4.670449485e-05 -3.324240184e-05 9.345532677e-06 0.002085252397 2.132614903e-05 -0.002798069336 -0.001302928361 0.005007199868 -2.098877663e-05 0.007532576593 4.229904577e-06 --0.0001059294945 -9.104861728e-05 0.001921764986 -0.000125832101 -0.00257834697 --0.04020154362 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004743986645 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005307994051 0.04313829094 -0.000352586529 0 0 --0.004079146762 0.01150297677 9.52216866e-05 0 0 --5.672281363e-06 0.000148301283 0.01229740702 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.006036628294 0.01085655333 -9.425628814e-05 0 0 -0.002625334051 0.002770184888 3.750594052e-05 0 0 --7.18693296e-07 4.161048187e-05 0.003296096854 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001921539585 0.02125674151 -7.748466451e-05 0.001585654726 5.860288988e-05 --0.001419421342 0.01545868192 8.604748485e-05 0.001149016655 3.590284903e-05 --2.65879043e-05 9.356772531e-05 0.01068494274 -2.296019797e-05 -0.000395414912 --0.0003806197489 0.003571952645 2.441761351e-05 0.0002768205157 9.613148241e-06 --3.161053231e-06 -3.356296524e-05 0.001996116109 -8.327730398e-06 -7.403317293e-05 -0.00196234485 0.005497482239 -1.708023824e-05 0.0005030077206 1.532783787e-05 -0.001654611466 0.004256651543 3.494867277e-05 0.0003883453239 9.174849627e-06 --1.676825268e-06 2.621195712e-05 0.003050717243 -5.86957158e-06 -0.0001672219673 --0.0005159570137 0.001097309778 8.238709135e-06 0.0001067001951 2.552152551e-06 -1.227640611e-05 -9.730272137e-06 0.0008683510405 -3.375548007e-06 -4.764568205e-05 -1.381165995 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02526082079 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.2092234276 0.09066252729 0.0001275739764 0 0 --0.08257946924 0.1665375277 -0.001312484693 0 0 -0.000362575075 -0.001178565991 0.2129956931 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04092517054 -0.004306295073 1.945012588e-05 0 0 --0.0380335677 -0.01704603097 -0.0004070143371 0 0 -0.0001027576913 -0.000330844779 0.05139377762 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.05872801225 0.1136556652 0.000105924427 -0.01072941718 0.0005966509262 -0.04039293667 0.08943849808 -1.539174719e-05 -0.0006336965627 7.659594269e-05 -0.0001283815292 7.206620905e-06 0.01488912845 -0.0001255965756 0.05475393363 --0.03041138361 -0.06746451986 -8.962924186e-05 0.000411387431 -0.0004650767336 -0.0005398411793 0.0003182212691 0.04118594343 -0.0004167386198 0.1514601057 -0.01430727692 0.03198941954 3.471006914e-05 0.0003869897858 0.0001964007255 -0.01399549737 0.01424848114 -3.759300951e-06 -0.009948750675 -6.303903161e-06 -3.970070133e-05 1.032864256e-05 0.003600160283 -3.688866831e-05 0.01364107963 --0.002522124991 -0.02308685556 -3.183622352e-05 -0.0106409317 -0.0001819410094 -0.0001641559984 9.45327754e-05 0.01011395406 -0.0001338301758 0.03832228209 -0.2893404183 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001581971838 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.05358753427 -0.03453343429 -0.001486725492 0 0 -0.07611569202 0.0531494627 -0.1378053791 0 0 -0.00844680412 0.1100787294 0.04073169747 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00932767814 -0.004075389105 0.004664695887 0 0 -0.01624384117 0.0159480475 -0.02505790436 0 0 -0.007264208761 0.01848278368 -0.004047523433 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01998498591 -0.01359986255 -0.03256170186 -0.008808035897 -0.009603099512 -0.005704406778 -0.003264232512 -0.02417111051 -0.02830924039 -0.00911348159 --0.0157609976 0.02047197169 0.02563846855 -0.01528583477 -0.009405797457 -0.02064882197 0.007523762816 0.01014747605 0.01352412303 -0.03185235363 --0.001817438154 -0.005877454537 0.04855187779 0.09168067175 0.0295030079 -0.005101214503 -0.003263357454 -0.007770459994 -0.001973739906 -0.002535743061 -0.002959669959 -0.001419992706 -0.006536977301 -0.005685923949 -0.003077212265 --0.004857591585 0.003892474875 0.004586828581 -0.004689982578 -4.815589457e-05 -0.002323889916 0.0004008494265 -0.0007592886274 -0.0006613129387 -0.003489110869 --0.001850021891 -0.002399705616 0.01039091176 0.02191319152 0.01017036072 -0.275860234 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0003681029368 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.05633678863 -0.03526028233 -0.002405769865 0 0 -0.08289615811 0.06037652419 0.1462023165 0 0 --0.0138557352 -0.1140656272 0.03428071738 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.009429950534 -0.004011030436 -0.004897341785 0 0 -0.01636884183 0.01810903627 0.0234253871 0 0 --0.00777691429 -0.01913909199 -0.004388086115 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02193902119 -0.01491012509 0.03531886689 -0.009039703875 0.01015380188 -0.007452230191 -0.003788373106 0.02688222349 -0.03016790191 0.0108049275 -0.01800654504 -0.02116624872 0.02587587003 0.01773010991 -0.008168850625 -0.02028109862 0.006688239594 -0.007897812053 0.01150466625 0.03065118204 -0.003133373627 0.007256419913 0.05187461496 -0.09859161742 0.03389774456 -0.00550300712 -0.003185917349 0.007591408404 -0.001606524081 0.002968357293 -0.003703936834 -0.001538586075 0.006800078512 -0.005341083175 0.003694702191 -0.004851902377 -0.003929482048 0.004645265152 0.004625306202 -0.0001442888244 -0.002073354626 0.0003318139068 0.001137589466 -0.001298686386 0.003211709161 -0.002645421292 0.003045383382 0.009790703737 -0.0217808285 0.01184075745 --0.003091061983 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003891444001 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0008076767691 0.001018448584 -0.1770363769 0 0 -0.0004724016383 -0.0009634343004 0.2375507733 0 0 --0.1891538196 -0.1566047476 0.006260024317 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.64391641e-05 -2.707321022e-05 -0.007027683646 0 0 --4.86460313e-05 5.095282087e-05 0.009430940445 0 0 --0.007535073486 -0.01098487541 0.0007100618761 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001753915241 9.964112653e-05 0.00158803902 0.0001500290677 -0.002131008088 --0.0001437608908 -0.0001645569618 0.00928182905 -0.0002064417147 -0.01245358113 -0.01165299518 -0.0004712941674 7.460302726e-05 -0.001185341621 -8.223080384e-05 -0.0003120705229 0.0001976286063 -0.002784912715 0.0002754780913 0.00373624708 -0.003560104644 -0.02446612835 0.000242713851 -0.03721154287 -0.0001931157685 -8.657590053e-05 6.268834093e-05 -0.000220670216 9.058216557e-05 0.0002958857434 -3.324240184e-05 9.345532677e-06 0.002085252397 2.132614903e-05 -0.002798069336 -0.002416609929 -0.0007962965577 0.0001379997307 -0.001300893241 -0.0001792743747 -0.0001156967177 8.584023859e-05 -0.001626655966 0.0001187541815 0.0021823975 -0.002271489199 -0.006655324676 -0.0001037976075 -0.01017289727 0.0001755619382 -0.0001614866912 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.236767712e-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 -5.406209726e-06 0.0001926732571 -0.02685955777 0 0 --5.672281289e-06 0.000148301281 0.01229740703 0 0 --0.008816345221 -0.01996387693 0.0004613400139 0 0 -0 0 0 0 0 -0 0 0 0 0 --1.253529435e-05 4.108582196e-05 -0.008254442299 0 0 --7.186932651e-07 4.161048104e-05 0.00329609686 0 0 --0.002653749032 -0.005877695724 0.0001307002227 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.501900713e-05 0.000186413944 -0.01110619527 4.560262332e-05 0.0004118162401 --2.658790423e-05 9.356772303e-05 0.01068494276 -2.296019819e-05 -0.0003954149125 --0.002020457834 -0.009906827714 0.0003301987257 -0.0007326269941 -3.84063887e-05 -2.679598285e-06 0.0001027909695 -0.001101397183 1.094946998e-05 4.107959098e-05 -0.0003251832341 -0.01604182201 -3.141398038e-05 -0.001209909193 -4.242155464e-05 --1.234301594e-05 5.092411089e-05 -0.00404114319 1.592538362e-05 0.0002217417445 --1.676825221e-06 2.621195554e-05 0.003050717254 -5.869571758e-06 -0.0001672219679 --0.001420136322 -0.003154222698 9.15482347e-05 -0.0002868344763 -1.326916225e-05 --4.378541499e-06 3.008088295e-05 -0.0006116166006 4.530756405e-06 3.362032364e-05 --0.0004691266511 -0.004570192259 -1.224892423e-05 -0.0004262007458 -1.146284347e-05 -0.001400314095 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0002466588598 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.265537226e-05 -0.0002670664894 0.05279716409 0 0 -0.0003625750716 -0.001178566013 0.2129956988 0 0 --0.1102305127 -0.2922134878 0.0002284561046 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.939511552e-05 -6.43794922e-05 0.0115146034 0 0 -0.00010275768 -0.0003308448616 0.05139379587 0 0 --0.01975663501 -0.04604828773 9.90731599e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --8.270242991e-05 -7.113455865e-05 -0.005210778856 5.359056242e-05 -0.0191626362 -0.0001283815265 7.206621902e-06 0.01488912799 -0.0001255965727 0.05475393195 --0.01856252676 -0.07195368662 -1.858023837e-05 -0.01816026362 -0.0001778046737 -0.0005547801786 0.0002616258883 0.04452198037 -0.000461137818 0.1637280102 -0.05029346038 -0.06296926443 3.956368347e-05 -0.1050549648 6.257771622e-05 --2.208419778e-05 -1.600296526e-05 -0.001106104557 1.669341942e-05 -0.004191130876 -3.970071427e-05 1.032863797e-05 0.003600162109 -3.688868342e-05 0.01364108654 --0.008332830626 -0.018764122 -7.668839649e-06 -0.0003068558814 -5.800129177e-05 -0.0001828553539 8.498085806e-05 0.01223267109 -0.0001588147146 0.04635008728 -0.007456877685 -0.00874523657 1.819231463e-05 -0.01520282266 5.059932017e-05 -0.5645689466 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001122549842 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.09698384962 -0.002157815016 -0.03646822413 0 0 -0.008446804024 0.1100787007 0.04073171384 0 0 -0.0497809092 -0.06628748487 0.03953366771 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01698005982 0.004507211817 0.001707238439 0 0 -0.007264208627 0.01848274129 -0.004047499184 0 0 -0.01502082949 -0.02045063868 -0.005404562367 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03115461137 -0.02593031952 -0.05034657622 -0.002306383531 -0.006588141732 --0.0157609976 0.02047197004 0.02563846949 -0.01528582947 -0.00940579426 --0.01411111815 0.001060317431 0.01999986111 0.02079251624 0.02056918998 --0.008171230888 -0.03312045442 -0.009009192278 0.0550729618 0.06327496239 --0.01932796952 0.01255627469 0.02258302859 -0.00472603597 0.007152447175 -0.007417167438 -0.005760172286 -0.01193782226 -0.001560741416 -0.002109470329 --0.004857591568 0.003892468952 0.00458683194 -0.004689962934 -4.814405977e-05 --0.003170162183 -0.00112049891 0.001884675495 0.003712483695 0.006098422494 --0.002332965927 -0.006553880575 -0.0004195903835 0.01318401587 0.01406048095 --0.002831598949 0.004070851311 0.006485538574 -0.0005883909011 -0.001815585564 --0.5460744777 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003185445985 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.1019317668 -0.002178629841 -0.03238461279 0 0 --0.01385573521 -0.1140656324 0.03428071442 0 0 -0.05822808268 -0.07749341366 -0.03194285399 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01716558096 -0.004844251989 0.002053193102 0 0 --0.007776914307 -0.0191390993 -0.00438809025 0 0 -0.01473934321 -0.02010075045 0.004734450117 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.03391195751 0.02783496245 -0.05463868449 0.003281123278 -0.007435079984 -0.01800654504 -0.02116624903 0.02587586986 0.01773011089 -0.008168851225 --0.01526674683 -0.0006935864552 -0.01868345428 0.0216436062 -0.02410937963 -0.008930483035 0.03514136882 -0.008612621689 -0.05905945569 0.06729174799 --0.01955459977 0.01507336607 -0.02610443035 -0.004708065623 -0.004111292908 --0.007883572822 0.005405241188 -0.01159540899 0.001545652434 -0.003017516675 -0.004851902373 -0.00392948304 0.004645264594 0.004625309459 -0.0001442907998 --0.002446858394 -0.001253265164 -0.001705145933 0.004181336133 -0.005439522641 -0.002241778069 0.00599213825 0.0005940082846 -0.01353326652 0.01325402191 --0.003154362926 0.003911723671 -0.005766284146 -0.001602895718 0.001475793322 -0.005479151196 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0002077991584 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01889388499 0.2793894884 -0.005203671995 0 0 --0.1259475335 -0.164109569 0.0007962376691 0 0 -0.0008076767691 -0.001018448584 0.1770363769 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0008771186693 0.01549112604 -0.0003654319282 0 0 --0.005407695228 -0.007053210216 0.0001428795173 0 0 --1.64391641e-05 2.707321022e-05 0.007027683646 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0006756622784 0.01784032142 -0.000511274568 0.02700200136 0.000592830211 --0.01364072905 0.00801582567 1.763042391e-05 0.01270481615 -8.774095985e-05 -0.0003195390324 0.0002708471064 -0.009634013694 0.0003588842721 0.01292585549 -0.01307372045 -0.00685421346 7.151860662e-05 -0.01092104834 -3.896622586e-05 -0.0001437608908 0.0001645569618 -0.00928182905 0.0002064417147 0.01245358113 -0.0001500639206 0.005006405547 -5.430228919e-05 0.007576957751 4.789692197e-05 --0.004138807272 0.00270052153 5.041404611e-06 0.004256704578 -2.512772926e-05 -7.167235379e-05 6.830946434e-05 -0.003166208926 8.769336943e-05 0.004248255329 -0.002966000435 -0.00190741011 5.909586845e-05 -0.003008005328 -6.628493992e-05 --3.324240184e-05 -9.345532677e-06 -0.002085252397 -2.132614903e-05 0.002798069336 --0.02481912091 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0009520672012 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003618427565 -0.04896256367 0.000494715078 0 0 --0.005307994073 -0.04313829023 0.0003525865285 0 0 --5.406209024e-06 -0.0001926732575 0.02685955848 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.31530681e-05 -0.0129229956 9.705997154e-05 0 0 --0.006036628303 -0.01085655304 9.425628788e-05 0 0 -1.25352946e-05 -4.108582219e-05 0.008254442593 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001936744741 -0.001344544574 0.0002449597241 -0.000104377051 -1.187253977e-05 --0.0002773839369 -0.02434788614 0.0001412037418 -0.001813345811 -6.869477409e-05 --2.017303339e-05 -0.0001865244881 0.01613898201 -5.970886249e-05 -0.0005981739171 --0.0003005182461 -0.01268275481 0.0001220756193 -0.0009408218241 -3.71546188e-05 -2.658790421e-05 -9.356772305e-05 -0.01068494274 2.296019815e-05 0.000395414912 --0.000634531462 -0.0001834821287 5.032730725e-05 -1.269706633e-05 -3.005419955e-06 --0.002413797341 -0.006049035517 3.35940548e-05 -0.0005517343257 -1.763790151e-05 -4.72378218e-06 -4.839199294e-05 0.005519498244 -1.967727073e-05 -0.0003028019927 --0.001537373894 -0.003705437115 2.829978017e-05 -0.0003375898996 -1.122200588e-05 -1.676825202e-06 -2.621195555e-05 -0.003050717243 5.869571727e-06 0.0001672219673 --0.4487476824 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00949170371 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.05264944363 0.291077835 -0.000680876836 0 0 --0.2092234334 -0.0906625256 -0.0001275739804 0 0 --3.265537171e-05 0.0002670664818 -0.05279716224 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01795282605 0.05500276763 -0.0002078362713 0 0 --0.04092518931 0.004306300476 -1.945014223e-05 0 0 --1.93951139e-05 6.437946374e-05 -0.01151459745 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01377184172 0.08896013444 -3.288131198e-05 0.03474900844 1.919464117e-05 --0.1216019768 -0.06642360089 -0.0001334009307 0.1232274726 -0.000630930698 -0.0001581838168 6.661328576e-05 0.01236137192 -0.0001372207829 0.04545856863 --0.02947773016 -0.08069609006 -1.594246001e-06 -0.008763284239 -0.0001272003057 --0.00012838153 -7.206622202e-06 -0.01488912845 0.000125596576 -0.05475393363 -0.008761117581 0.02018648355 -8.415549552e-06 0.000600046026 1.115966436e-07 --0.02971568746 -0.02357521397 -4.647569566e-05 0.02517347026 -0.0002088343607 -5.695027391e-05 1.816604588e-05 0.004034541318 -5.389834851e-05 0.01528703785 --0.01116417046 -0.01650631101 -1.954768597e-06 0.004820950257 -2.584870676e-05 --3.970069768e-05 -1.032863723e-05 -0.003600160283 3.688866669e-05 -0.01364107963 -0.2270931245 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00149427243 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03510077058 0.08704452932 0.1263095525 0 0 --0.05358755089 0.03453342267 0.001486726011 0 0 --0.09698387932 0.002157815435 0.03646821293 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01101791824 0.01627853428 0.01974530697 0 0 --0.009327702824 0.004075371964 -0.004664695023 0 0 --0.01698010394 -0.004507211094 -0.00170725487 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.009523621396 0.02127741295 0.03812995458 0.007578465887 -0.01311360745 --0.03593586544 0.003475620149 0.02366801767 0.006457867012 0.04133295679 --0.0603151661 0.01766963132 0.02964176313 -0.03261293117 0.04518295586 --0.009907765457 0.00216227756 0.02208548882 0.02455087532 0.0148413356 -0.01576100245 -0.02047197349 -0.0256384748 0.01528583193 0.009405793115 --0.005060536514 0.004315408293 0.007731445731 -0.0005288444762 0.0005925117465 --0.008327861213 0.001180617305 0.00773258298 0.004668278574 0.009696710219 --0.01332986833 0.00582273755 0.009866431669 -0.006025872404 0.007543848971 --0.003064927274 0.0001497564023 0.004210837601 0.004699192788 0.004587816566 -0.004857609726 -0.003892481682 -0.004586851627 0.004689971937 4.814002367e-05 -0.2224089968 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0002473337801 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04062276344 0.09212606534 -0.1314932275 0 0 --0.0563367856 0.03526028447 0.002405769958 0 0 -0.1019317614 0.00217862992 0.03238461484 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01226095366 0.01602848048 -0.01820802425 0 0 --0.009429946286 0.004011033422 0.004897341929 0 0 -0.01716557336 0.004844252115 -0.002053190263 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01246485466 0.02207390404 -0.0396706703 0.006410352073 0.0109179666 --0.03872599784 0.004063487654 -0.02717182946 0.008860627905 -0.04412679097 -0.06453434212 -0.02032662023 0.03414973997 0.03384909048 0.04627193876 --0.01135948795 0.001547392844 -0.02278283833 0.02590575461 -0.0174571536 --0.01800654414 0.02116624839 -0.02587586888 -0.01773011044 0.008168851437 --0.005719427737 0.004376469964 -0.007875698179 -0.0008335309949 -0.001173770603 --0.008450478374 0.001274630305 -0.008520010128 0.005684170488 -0.009828851752 -0.01325110318 -0.006415397254 0.01088713889 0.005570416671 0.006639753509 --0.003075395754 0.0001426588875 -0.004252610384 0.004761211479 -0.004567112558 --0.004851899357 0.003929480947 -0.004645261362 -0.004625307974 0.0001442914642 -0.3214919613 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03815950844 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.1493649119 -0.1749706724 0.001638538811 0 0 --0.2004045538 0.2347696766 -5.301258458e-06 0 0 --0.004342990219 0.003657155095 0.3331673846 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.006184275548 -0.006748221118 -0.0001999313883 0 0 --0.008298286834 0.009055349145 0.0003553448981 0 0 --0.0005368832702 0.0005388061858 0.007714118298 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002377092324 0.001532781928 0.0003717784172 0.002225984941 -0.0005028791121 -0.01389471819 0.008979849854 -0.0002598482769 0.01303262787 0.0003249595342 --0.000263498944 -0.0001810810529 0.01746556356 -0.0001929382322 -0.02343502293 --0.004170572136 -0.00269931767 0.0006201034313 -0.003915668564 -0.000824908188 -7.548065215e-06 0.0001733214696 -0.0234354293 0.0001689794219 0.0314443588 --0.0003009328422 -0.0002164089506 0.0002011103275 -0.0003149302324 -0.0002690978457 -0.002842734959 0.002031782256 8.048961656e-05 0.002964082171 -0.0001151007867 -0.0001164849798 9.10734272e-05 0.003177465342 0.0001464820805 -0.004264081061 --0.002217922276 -0.001587160928 0.0002601329578 -0.002314235718 -0.0003435073321 --0.0002266474924 -0.0001343819184 -0.004265082695 -0.0002118597258 0.005723450126 --0.0428517718 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005165018247 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.008024428658 -0.03471454324 0.001113171452 0 0 --0.002934234752 0.01270103361 0.0002218219363 0 0 --0.00105828133 0.0002238277731 0.007350120177 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.007093040197 -0.009253449671 0.0001290103711 0 0 --0.002594373007 0.003385291771 6.617767996e-05 0 0 --0.0001219227177 7.649248012e-05 0.001486271074 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00189679255 -0.01727710539 0.001207608831 -0.001348553637 -9.634103607e-05 --0.001208119311 0.01099266989 8.611717036e-05 0.0008556215611 2.96561737e-05 --0.0002891830101 0.0001117550395 0.01331463397 -2.858979254e-05 -0.0004928476538 -0.0004280725215 -0.003898412453 0.0005298185882 -0.0003050105961 -3.126714289e-05 -3.151140364e-05 -0.0004879149311 -0.004869676541 -2.351113742e-05 0.0001789552311 -0.002719737869 -0.004948118318 0.0002338338838 -0.0004846331155 -2.642826336e-05 --0.001708373245 0.003108405019 2.300355113e-05 0.0003039803383 7.285488782e-06 --3.628576015e-05 4.108227022e-05 0.003541965124 -5.582538685e-06 -0.0001941206186 -0.0006649547883 -0.001210144164 0.0001282365196 -0.0001187179242 -1.035950161e-05 -1.778542023e-05 -0.0001151461386 -0.001295739668 -7.401364647e-06 7.074438074e-05 --0.02348801568 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0009134887098 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001295141077 -5.308676148e-05 -7.049333315e-05 0 0 --0.01579289302 0.006518479703 -0.0001470849859 0 0 --0.0001586847931 0.0001501267089 0.001110904136 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.790351731e-05 -2.572174206e-05 -2.089286269e-05 0 0 --0.004619208262 0.003152074591 -2.518285762e-05 0 0 --5.560652146e-05 4.751416055e-05 0.0001991495465 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002184685201 0.003284264025 3.572707547e-07 -0.0009652422422 1.307846284e-05 -7.158559361e-05 0.000107833711 -1.793082442e-05 -3.154838809e-05 -6.555363988e-05 --3.609825828e-06 7.826304486e-06 -9.145662792e-06 9.484764096e-06 -3.359768416e-05 --0.004974630561 -0.007477719579 -5.742554452e-05 0.002198162207 -0.0002379660874 --8.09069993e-05 -9.540798672e-05 0.001098754303 5.451710453e-05 0.004040273841 -0.0008138832516 0.001022444393 -1.38275447e-06 -0.0004614058691 -1.250952667e-06 -2.715123789e-05 3.418392812e-05 -5.664779892e-06 -1.536200223e-05 -2.133071911e-05 --5.933645118e-07 3.508151672e-07 -2.82103047e-06 9.920897797e-07 -1.067864319e-05 --0.001910954844 -0.002400381536 -1.668187298e-05 0.00108346347 -7.257155322e-05 --3.001023967e-05 -3.793990771e-05 0.0003379812534 1.776530747e-05 0.001280484438 -0.9819722714 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003476862327 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.1746061286 -0.003194529002 -0.06544865785 0 0 --0.002952097958 0.1627412061 0.08332327061 0 0 -0.1239369082 -0.1643972735 0.1143041931 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03068740396 0.008264125593 0.002993892372 0 0 -0.007970194694 0.02176879429 -0.005354569403 0 0 -0.03651144092 -0.04890065431 0.005834598426 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.05942093503 -0.05490006376 -0.0909108411 0.0163926255 -0.001277407521 --0.02851520324 0.03676594138 0.04629875532 -0.0271781197 -0.01657405532 --0.02531794074 0.001840648597 0.03591452825 0.03749786159 0.03702323326 -0.002082077793 -0.07235549733 -0.03428226249 0.1100198155 0.1113999262 --0.03297829633 0.02296955214 0.03767811201 -0.01297542446 0.009208825093 -0.0145668356 -0.01294582891 -0.02149666384 0.00407579651 -0.00049256267 --0.008796743392 0.00700255193 0.008336992891 -0.008332453256 7.366701769e-06 --0.005683903048 -0.002024552005 0.003405875163 0.006738357203 0.01097191145 -0.001983344603 -0.01551992907 -0.006033200431 0.02779249971 0.02336717548 --0.004509921634 0.007473578158 0.01084111892 -0.002410719132 -0.00447008287 -0.9483966335 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00408239825 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.1840656634 0.00406253963 0.05763090301 0 0 -0.003949820173 0.1672181181 -0.07146067307 0 0 --0.142823949 0.1879905588 0.1047318698 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03118030765 0.008717483014 -0.0037807579 0 0 -0.008290596119 0.02213465758 0.006450334994 0 0 --0.03678535874 0.04881662878 0.008512445529 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.06475634472 -0.05917789061 0.09868712267 0.01650166085 0.001850292939 --0.03256020025 0.03805295603 -0.0467307705 -0.03165940829 0.01441076465 -0.02762224612 0.001017645974 0.03374318995 -0.03852626353 0.04319099045 -0.002749686737 -0.0771707476 0.03545666477 0.11796873 -0.1178954692 -0.03291939048 -0.02692165914 0.04367749213 0.01183876854 0.004155428652 -0.01553056767 -0.01250766259 0.02088530747 0.004596976919 0.001918528533 --0.008788696143 0.007082087582 -0.008442073446 -0.008248255936 0.0001874732555 -0.004468334483 0.002177501793 0.003132776266 -0.007406685564 0.009743082753 -0.002850314958 -0.0146958304 0.004506996309 0.02876934519 -0.02144001948 -0.004933567022 -0.007022811386 0.009514233091 0.003795498469 -0.003733627409 --0.003697550589 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001663386815 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002877247939 -0.00509410691 0.2976211978 0 0 -0.0008076767691 -0.001018448584 0.1770363769 0 0 --0.1493649119 0.1749706724 -0.001638538811 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003341205926 -0.000357684591 0.01732940873 0 0 --1.64391641e-05 2.707321022e-05 0.007027683646 0 0 --0.006184275548 0.006748221118 0.0001999313883 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0006553505952 -0.0005286710991 0.02255209078 -0.0006837036101 -0.03025861156 -0.0003195390324 0.0002708471064 -0.009634013694 0.0003588842721 0.01292585549 --0.01442423701 -0.009323984481 0.0006324353266 -0.01353074983 -0.0008239800004 --0.0001707547806 -0.0001754876976 0.01026045173 -0.0002179944723 -0.01376666876 --0.01389471819 -0.008979849854 0.0002598482769 -0.01303262787 -0.0003249595342 --1.691620199e-05 -5.519778504e-05 0.005928401407 -5.882979621e-05 -0.007954625863 -7.167235379e-05 6.830946434e-05 -0.003166208926 8.769336943e-05 0.004248255329 --0.004316812588 -0.003086955778 0.0001604106743 -0.004502367938 -0.0002044588674 -3.408964403e-05 1.210889021e-05 0.002305073621 2.637461219e-05 -0.003093045766 --0.002842734959 -0.002031782256 -8.048961656e-05 -0.002964082171 0.0001151007867 --0.002251032885 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --5.456392098e-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.0001293065189 0.0005542362423 -0.05616249067 0 0 -2.893109521e-05 -0.001118089218 0.03327390085 0 0 --0.008024428657 0.03471454324 -0.00111317135 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0002109422372 0.00010960302 -0.01464892211 0 0 -1.638386929e-05 -0.0001444904373 0.008971744999 0 0 --0.007093040197 0.009253449671 -0.0001290103288 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0002405461489 0.000282979369 -0.005118272975 3.650333256e-05 0.0001905474333 --3.229251399e-06 -0.0007930449728 0.02035097309 -0.0001175874619 -0.0007558251471 --0.002327256133 0.0211988099 -0.0009669064447 0.001653215223 9.914644328e-05 --2.156687605e-05 -0.000121993397 0.01299235151 -4.585713346e-05 -0.0004814623243 -0.001208119311 -0.01099266989 -8.611716808e-05 -0.0008556215611 -2.965617378e-05 --0.0001541755785 6.067799116e-05 -0.001142548524 9.940353859e-06 6.286024918e-05 -5.710609356e-06 -8.136372697e-05 0.005748816466 -2.341003818e-05 -0.0003154652635 --0.003236466706 0.005887358975 -0.0001298484339 0.0005762226482 2.330870903e-05 -2.945994402e-06 -2.872852747e-05 0.003736878241 -1.29419435e-05 -0.00020499632 -0.001708373245 -0.003108405019 -2.300354955e-05 -0.0003039803383 -7.285488868e-06 -0.000122477942 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.595725096e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -8.953340048e-05 -0.0001906689477 0.0144376773 0 0 --6.430522216e-05 6.306405084e-05 0.0004067495518 0 0 --0.0001295141077 5.308676148e-05 7.049333263e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -2.451913066e-05 -6.408601111e-05 0.004697673248 0 0 --2.659760728e-05 1.168788232e-05 0.0001281512566 0 0 --3.790351731e-05 2.572174207e-05 2.089286101e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.434963827e-05 3.089634725e-06 -6.488077173e-05 -1.758102735e-05 -0.000238533834 -0.0001020564218 8.749672282e-05 0.002788824665 -7.661393236e-05 0.01025614123 --0.001962718976 -0.002950401482 -1.4046438e-05 0.0008672401812 -6.222369858e-05 --1.543931589e-05 -1.253791344e-05 3.486394139e-05 1.32927628e-05 0.0001281759932 --7.158559361e-05 -0.000107833711 1.793082455e-05 3.154838809e-05 6.555364035e-05 -4.766832452e-06 3.718815412e-06 -2.211592788e-05 -4.137514819e-06 -8.377079928e-05 -3.522026265e-05 2.586976449e-05 0.000968950108 -2.852602262e-05 0.003671495875 --0.000769066443 -0.0009660727978 -4.260019439e-06 0.0004360261479 -1.99097273e-05 --5.135369492e-06 -7.359066485e-06 1.17252616e-05 2.391319757e-06 4.44099971e-05 --2.71512379e-05 -3.418392812e-05 5.664779376e-06 1.536200223e-05 2.133071716e-05 -0.4061173073 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002727100999 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.06471302561 0.1258225776 0.2441017061 0 0 --0.09678500583 0.06119041871 0.002741307343 0 0 --0.1746061818 0.003194529751 0.06544863777 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02027787927 0.01960871956 0.04104189255 0 0 --0.01694364303 0.007088412752 -0.008339778481 0 0 --0.03068748302 -0.008264124298 -0.002993921809 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01709012795 0.03800404082 0.06842399203 0.01400463085 -0.02322214854 --0.06028302277 0.006932088361 0.03574279474 0.001856230834 0.06600253133 --0.1115577362 0.03949465147 0.05399129198 -0.07721436755 0.07142333809 --0.01773426476 0.003872677302 0.03953809551 0.04395078093 0.02656299724 -0.02851521193 -0.03676594756 -0.04629876483 0.0271781241 0.01657405327 --0.009082847642 0.007693050207 0.01388835354 -0.0008061549146 0.001161614306 --0.01332047487 0.002450951906 0.01177894316 0.005156398733 0.01428095568 --0.02518725331 0.0130009128 0.01785663999 -0.01743197328 0.01038652338 --0.005478556594 0.0002723706765 0.007541967251 0.008414646539 0.008197917457 -0.008796775924 -0.007002574738 -0.008337028161 0.008332469385 -7.373932876e-06 --0.3978353526 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.000386325218 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.07464622244 -0.1315816669 0.2551559548 0 0 -0.1017641135 -0.06268899509 -0.004325176421 0 0 --0.1840656537 -0.004062539772 -0.05763090669 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02252016312 -0.0182278919 0.03870214135 0 0 -0.01713840099 -0.007039940533 -0.008774166071 0 0 --0.03118029402 -0.00871748324 0.003780752811 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02243107923 -0.03959566206 0.07121608113 -0.01154020842 -0.01948710716 -0.06456898867 -0.007999118796 0.04110786971 -0.005206217855 0.06999358635 --0.1194932829 0.0450677966 -0.06211214359 -0.08123971296 -0.07247571832 -0.02051834389 -0.002951157882 0.04096558232 -0.0461380478 0.03119823015 -0.03256019862 -0.03805295489 0.04673076875 0.03165940748 -0.01441076503 -0.01029284832 -0.007852784565 0.01414982244 0.00148540263 0.002145257998 -0.01326844366 -0.002654263953 0.01300363203 -0.006776277634 0.01412777626 --0.02516445269 0.01426136864 -0.01967268255 -0.01713182874 -0.008547048395 -0.005561382907 -0.0003143540519 0.007668107889 -0.008440835988 0.008150521113 -0.008788690737 -0.007082083831 0.008442067654 0.008248253273 -0.0001874744461 -0.34340378 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02690643379 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.3618719711 0.01012376654 -0.0008844848233 0 0 -0.007643150812 0.1119849358 -0.00106165358 0 0 -0.003315394224 -0.001183438416 0.1319557969 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002979574316 0.0004990720721 -0.0001943618375 0 0 -0.0001139053215 0.004549098517 1.071495023e-05 0 0 -6.094529074e-05 2.743592668e-06 0.005237700757 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04192224693 0.002956483683 -0.0002964847659 0.002573127243 0.0005461993576 -0.001892439351 -0.005615135779 0.0002197353408 -0.008597192566 -0.0002556959477 -0.0005988133482 0.0002411892406 -0.007181917324 0.000310280776 0.009637306973 -0.0008964037956 0.005548064416 -0.0001420899757 0.008367769569 0.0001634803563 -0.0001519332934 0.0001363432316 -0.006917882027 0.0001727156045 0.009281868054 --0.001158118554 0.0001191813393 -8.373387279e-06 0.0002509139294 -3.141885812e-06 -4.294121926e-05 -0.001904077592 5.793795785e-05 -0.00288661288 -6.760216107e-05 -8.156847723e-05 5.954967694e-05 -0.002360032127 7.719025022e-05 0.003166621242 -8.531338466e-05 0.001371236758 5.277927802e-06 0.002073716067 -1.392520002e-05 --1.633463502e-05 -4.1358763e-06 -0.00155387088 -1.195300039e-05 0.002085040719 -1.088547728 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01905843402 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.08089405253 -0.02380333679 -0.0006528926706 0 0 --0.007650180561 0.4081387244 -0.0009524535935 0 0 -0.001255602475 -0.0009965257145 0.4186462147 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04385690594 -0.003196204148 0.0002471632162 0 0 --0.001147149977 0.05863051273 -0.0001914516277 0 0 -0.0003712114621 -0.0002037448358 0.0611698457 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.08980980633 -0.02036633389 -0.001581616113 -0.001614865737 -6.248172402e-05 --0.01217806915 0.2604559965 -0.0008939627382 0.01978175842 0.0007544601302 --0.0006391969406 -0.0009393555311 0.2707956489 -0.0008334110344 -0.01003051961 --0.001590586875 0.03660829724 -0.001333134199 0.002786591515 0.0001512004332 --5.190499077e-06 0.001232588109 -0.02199424573 0.0001556508506 0.000817907852 -0.04388794114 -0.001212629951 0.0002789038962 -0.0004340448865 -3.267497489e-05 -0.0001527914186 0.02497961183 -0.0001723578196 0.002346590812 7.589141224e-05 -0.0002888732417 -0.0001895487135 0.02743182837 -9.491730369e-05 -0.001504859119 --0.0005979364362 0.009384967494 -0.0002071842912 0.0008867308377 3.650309209e-05 --1.236410055e-05 0.0001806857766 -0.007498263187 3.757627336e-05 0.000411665994 -0.1199550576 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004359069103 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02916043816 -0.09703292252 0.0001646895151 0 0 -0.09250991856 0.02357212054 0.0002216660697 0 0 -4.348921515e-05 -9.277025179e-05 0.01734672226 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.009609400774 -0.01757481265 4.940788624e-05 0 0 -0.02112119308 -0.002356024894 6.306303544e-05 0 0 -1.728410806e-05 -1.957451642e-05 0.003796403013 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.004403331066 -0.02887120823 1.839839712e-06 -0.0113662336 -3.860184234e-05 -0.04559495273 0.0301456089 2.805774459e-05 -0.04306548754 0.0001468416213 --1.089706216e-05 2.697417011e-05 -0.003097522511 2.198225527e-05 -0.0113909568 -0.01462416312 0.03355535539 1.579690456e-05 0.0004744623833 0.0001032697822 -5.324302816e-05 1.784890059e-05 0.004887475273 -4.68263374e-05 0.01797338619 --0.002889449666 -0.006638641052 -4.455192514e-07 -0.0001864426205 -1.207428112e-05 -0.01144867735 0.01070440355 1.027502859e-05 -0.00871525868 4.792485461e-05 --4.27253835e-06 9.646305247e-06 -0.0009913536589 8.885514542e-06 -0.003756251758 -0.005276994414 0.007951553212 5.911184272e-06 -0.002187960083 2.985984087e-05 -1.612736636e-05 9.379309963e-06 0.001185002868 -1.257886829e-05 0.004489987168 -0.1367795204 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00303115002 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04402905494 0.0574147883 0.1021794266 0 0 --0.05407890355 0.02328387877 -0.002091632966 0 0 --0.09825312475 -0.002227361424 0.02097771038 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01372060304 0.009003986923 0.01593188811 0 0 --0.01140496229 0.002609080574 -0.003904539829 0 0 --0.02084168301 -0.003950128418 -0.002117198144 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.005870468977 0.01498473825 0.02696931873 0.006091892066 -0.01009954625 --0.02948412388 0.006240885063 0.01951971175 -0.002223628965 0.02804315726 --0.05328882761 0.01946167549 0.03091550693 -0.02979964326 0.03489455849 --0.01076897316 0.003746756272 0.02019874962 0.01727367997 0.01234367301 -0.01702083958 -0.01842371429 -0.02503006399 0.01246437687 0.004696744504 --0.003477482845 0.002986258258 0.005389868543 -0.0002836177566 0.0003989938463 --0.006847840404 0.002190477736 0.006538457745 0.001277970905 0.005857041419 --0.0124096199 0.006534429421 0.01045817123 -0.006077139145 0.005505579846 --0.003344194945 0.0008614575781 0.004462295038 0.003259523621 0.003707560975 -0.005279832264 -0.004019671389 -0.005501366195 0.003728659351 -0.000518334206 -0.132550538 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002076836222 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.05049014178 0.06091296216 -0.107973092 0 0 --0.0577458126 0.0239611968 0.005305228651 0 0 -0.1052097583 0.005880586864 0.01762371198 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01531274409 0.0084898347 -0.01486515908 0 0 --0.01186963125 0.002627856798 0.004078242342 0 0 -0.02178597071 0.004224407686 -0.002317272997 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.007776863575 0.01554522314 -0.02800146373 0.005292839195 0.008742869654 --0.03198981855 0.007079776347 -0.02234551376 -0.001205977092 -0.02997408096 -0.05787048701 -0.02227445327 0.0354585627 0.03157563485 0.03616582496 --0.01229199235 0.003486944887 -0.02126952095 0.01845084198 -0.01458579553 --0.01925671406 0.01933897018 -0.02583225065 -0.01452472204 0.003690277039 --0.003918108346 0.003007080973 -0.00543447525 -0.0005269250347 -0.0008031160297 --0.006967542281 0.002403427859 -0.007249005265 0.001905560845 -0.005773723351 -0.01263874732 -0.007246265082 0.01162149716 0.005865649723 0.00477572632 --0.003455241043 0.0009147465927 -0.004645163938 0.003360601885 -0.003739915139 --0.005396352353 0.00415057327 -0.00571126571 -0.003714913931 -0.0004308404842 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gdmx_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gdmx_ref.dat deleted file mode 100644 index 98a930c0dc..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gdmx_ref.dat +++ /dev/null @@ -1,2250 +0,0 @@ --0.01548149084 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -7.519190766e-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.02144315712 0.2117069841 -0.00256895198 0 0 -0.2117069841 0.2730393336 -0.002065019949 0 0 --0.00256895198 -0.002065019949 -0.2623818292 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0006318341952 0.008560433211 -2.811810296e-05 0 0 -0.008560433211 0.01171588882 -0.0002216914797 0 0 --2.811810296e-05 -0.0002216914797 -0.01041364266 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0008114951394 0.01476303953 0.0001002089887 -0.01207396432 0.0003134151698 -0.01476303953 0.009896239867 -6.947592992e-05 0.004980768672 0.0004625516516 -0.0001002089887 -6.947592992e-05 -0.01025420202 0.0004365285213 0.004612772159 --0.01207396432 0.004980768672 0.0004365285213 -0.004466789646 -0.0001729034251 -0.0003134151698 0.0004625516516 0.004612772159 -0.0001729034251 0.006081299389 -8.617114125e-05 0.003527258677 -3.929086093e-05 -0.002415088373 0.0001279472692 -0.003527258677 0.002584490192 -5.158227951e-05 0.00114052117 0.0001393334601 --3.929086093e-05 -5.158227951e-05 -0.002302512472 1.882506614e-05 0.0004823910026 --0.002415088373 0.00114052117 1.882506614e-05 -0.001778164127 5.24567296e-05 -0.0001279472692 0.0001393334601 0.0004823910026 5.24567296e-05 0.002850764783 --0.01434068327 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0006242342946 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002869851694 0.007005910589 7.810144479e-05 0 0 -0.007005910589 -0.003165632082 1.907243422e-05 0 0 -7.810144479e-05 1.907243422e-05 -0.003752595425 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001089343639 -0.005438535241 9.655794674e-06 0 0 --0.005438535241 -0.0005949397125 -1.767104324e-05 0 0 -9.655794674e-06 -1.767104324e-05 -0.000419629124 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005971109867 -0.05585819085 0.0001147431703 -0.007270822068 -0.0002293714789 --0.05585819085 -0.007538377672 -0.0002800409548 0.03881914538 -4.245302092e-05 -0.0001147431703 -0.0002800409548 -0.004008129993 -5.213334507e-05 0.03949071918 --0.007270822068 0.03881914538 -5.213334507e-05 0.005939261447 -4.162442677e-06 --0.0002293714789 -4.245302092e-05 0.03949071918 -4.162442677e-06 -0.002919416883 -0.0004572821937 -0.01125778873 1.665600145e-05 -0.001444985443 -4.5272685e-05 --0.01125778873 -0.00122055406 -5.513742339e-05 0.008355370571 -1.195122251e-05 -1.665600145e-05 -5.513742339e-05 -0.0004674928763 -1.377663004e-05 0.008525590832 --0.001444985443 0.008355370571 -1.377663004e-05 0.001586549177 -1.168595599e-06 --4.5272685e-05 -1.195122251e-05 0.008525590832 -1.168595599e-06 -0.0009336949915 -0.7427120453 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01053584908 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.08992099544 0.01000962932 9.058753034e-06 0 0 -0.01000962932 0.0773791197 -0.0001889967741 0 0 -9.058753034e-06 -0.0001889967741 0.08172918789 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01574918393 -0.008555692185 1.91071868e-06 0 0 --0.008555692185 -0.0118588158 -5.372026861e-05 0 0 -1.91071868e-06 -5.372026861e-05 0.01788501383 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02208712768 0.03138774198 1.597983272e-05 -0.007981756125 8.451216831e-05 -0.03138774198 0.0396072437 -1.802802957e-05 -0.01523099978 2.035302994e-05 -1.597983272e-05 -1.802802957e-05 0.007506445971 -1.637704004e-05 0.02169614935 --0.007981756125 -0.01523099978 -1.637704004e-05 -0.0003451420304 -5.39336206e-05 -8.451216831e-05 2.035302994e-05 0.02169614935 -5.39336206e-05 0.05805885856 -0.004595060478 0.009132519056 5.158016632e-06 0.0003209716784 2.564607576e-05 -0.009132519056 0.005357614636 -3.72310466e-06 -0.007758705558 1.515658046e-06 -5.158016632e-06 -3.72310466e-06 0.001819853388 -5.379495186e-06 0.005175026567 -0.0003209716784 -0.007758705558 -5.379495186e-06 -0.005628023313 -2.181506561e-05 -2.564607576e-05 1.515658046e-06 0.005175026567 -2.181506561e-05 0.01308960064 --0.3625229869 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0005067161444 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.05078671962 -0.009676704825 0.00255610086 0 0 --0.009676704825 -0.01909167272 0.02478199121 0 0 -0.00255610086 0.02478199121 -0.05447534575 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.007774941697 -0.002981822409 -0.004958684508 0 0 --0.002981822409 -0.00485710638 0.007608769983 0 0 --0.004958684508 0.007608769983 0.002679950418 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01502926642 0.004793000487 0.02010089355 -0.01289556361 -0.002642825867 -0.004793000487 0.002447893219 0.001794347365 0.011870932 0.007548510013 -0.02010089355 0.001794347365 -0.02479178593 0.005034482812 -0.01415433713 --0.01289556361 0.011870932 0.005034482812 -0.01077310053 -0.02210136474 --0.002642825867 0.007548510013 -0.01415433713 -0.02210136474 -0.01756210215 --0.003198180204 0.0003649359838 0.004931311062 -0.002285432487 -0.0007888012752 -0.0003649359838 0.001130620815 0.001341150223 0.003045137643 0.002742756254 -0.004931311062 0.001341150223 -0.003893279685 0.003698760396 -0.00347660817 --0.002285432487 0.003045137643 0.003698760396 0.001934717804 -0.006672975052 --0.0007888012752 0.002742756254 -0.00347660817 -0.006672975052 -0.005782058585 --0.3608017582 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003305397449 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.05474698437 -0.01158737197 0.00185692694 0 0 --0.01158737197 -0.02327552887 -0.02921576518 0 0 -0.00185692694 -0.02921576518 -0.04930801699 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.007968876997 -0.002794405859 0.005414769469 0 0 --0.002794405859 -0.006152234205 -0.007098918052 0 0 -0.005414769469 -0.007098918052 0.003313569826 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01684512076 0.004779533503 -0.02289538039 -0.01364993081 0.002811993914 -0.004779533503 0.002959793595 -0.002914212394 0.01378880524 -0.009504474388 --0.02289538039 -0.002914212394 -0.02554904743 -0.008180949914 -0.01630736704 --0.01364993081 0.01378880524 -0.008180949914 -0.008086466831 0.02625676983 -0.002811993914 -0.009504474388 -0.01630736704 0.02625676983 -0.02143599278 --0.003496948601 -5.14210877e-05 -0.004854390989 -0.002593122363 0.0004907097401 --5.14210877e-05 0.001244993518 -0.001481286781 0.002985907871 -0.003530012929 --0.004854390989 -0.001481286781 -0.004006800931 -0.004076081102 -0.003038363532 --0.002593122363 0.002985907871 -0.004076081102 0.002886447061 0.00671972374 -0.0004907097401 -0.003530012929 -0.003038363532 0.00671972374 -0.007299342799 -0.003057334428 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0002000105157 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.009669675558 -0.1174789562 4.010859578e-05 0 0 --0.1174789562 -0.001624127176 -0.0006431389364 0 0 -4.010859578e-05 -0.0006431389364 1.493666437e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0002439915128 -0.005693551895 1.608979125e-06 0 0 --0.005693551895 3.742579301e-05 -5.902096482e-05 0 0 -1.608979125e-06 -5.902096482e-05 7.1380047e-09 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001591321681 -0.01816263557 1.366245737e-06 -0.000335622925 -4.579181351e-05 --0.01816263557 -0.001757021877 3.484046348e-05 -0.0004933966554 -0.0001299292897 -1.366245737e-06 3.484046348e-05 -1.099403069e-08 7.550056577e-07 1.181163363e-07 --0.000335622925 -0.0004933966554 7.550056577e-07 -1.865100877e-05 -3.839731645e-06 --4.579181351e-05 -0.0001299292897 1.181163363e-07 -3.839731645e-06 -7.193282486e-07 -0.000224478104 -0.003950323359 2.364352527e-07 -7.474799267e-05 -1.057147018e-05 --0.003950323359 -0.0003674880469 3.315098949e-06 -9.856254414e-05 -2.134838639e-05 -2.364352527e-07 3.315098949e-06 -5.506928811e-10 7.252807319e-08 1.105006882e-08 --7.474799267e-05 -9.856254414e-05 7.252807319e-08 -3.718510152e-06 -6.758045614e-07 --1.057147018e-05 -2.134838639e-05 1.105006882e-08 -6.758045614e-07 -1.175636861e-07 -0.01460208305 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007232396623 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.004006635049 0.009654754492 -0.0002552518069 0 0 -0.009654754492 0.01995680542 -0.0002211268458 0 0 --0.0002552518069 -0.0002211268458 -0.01020581659 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0004925212914 0.009624766748 -5.528300646e-05 0 0 -0.009624766748 0.005171077976 -4.223555732e-05 0 0 --5.528300646e-05 -4.223555732e-05 -0.003344050119 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00667664603 0.06357019232 -0.0002429614577 0.008125500073 0.0002559246901 -0.06357019232 0.02127901124 0.0001424392718 -0.04003953289 0.0001397327315 --0.0002429614577 0.0001424392718 -0.008092323244 0.0001098175244 -0.04192431722 -0.008125500073 -0.04003953289 0.0001098175244 -0.006213889324 1.041109124e-05 -0.0002559246901 0.0001397327315 -0.04192431722 1.041109124e-05 0.003116675615 --0.0007710583446 0.01348087664 -5.853388142e-05 0.002054419489 4.500918861e-05 -0.01348087664 0.005204123295 1.232365031e-05 -0.008707674967 4.114261845e-05 --5.853388142e-05 1.232365031e-05 -0.003013299017 3.127284578e-05 -0.00925493311 -0.002054419489 -0.008707674967 3.127284578e-05 -0.001693613816 3.310012722e-06 -4.500918861e-05 4.114261845e-05 -0.00925493311 3.310012722e-06 0.00102426937 --0.01323428271 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0006370249438 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01439751745 0.001025181198 4.942591876e-05 0 0 -0.001025181198 -0.001384526363 1.097949294e-05 0 0 -4.942591876e-05 1.097949294e-05 1.314932862e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004606041581 0.000558766197 1.559040358e-05 0 0 -0.000558766197 -0.000212269475 3.686182235e-06 0 0 -1.559040358e-05 3.686182235e-06 4.126643544e-08 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003755038167 0.004430526504 1.020065009e-05 -0.000692673163 1.985745608e-05 -0.004430526504 0.004961494451 1.263518024e-05 -0.0005271049378 1.979199151e-05 -1.020065009e-05 1.263518024e-05 2.635912061e-08 -2.535614852e-06 6.214117768e-08 --0.000692673163 -0.0005271049378 -2.535614852e-06 -0.0001887277459 3.046538654e-07 -1.985745608e-05 1.979199151e-05 6.214117768e-08 3.046538654e-07 5.527202222e-08 -0.0012436142 0.001519185072 3.436285406e-06 -0.0001839459178 6.857145809e-06 -0.001519185072 0.001706674642 4.417235803e-06 -0.000125809475 6.682131759e-06 -3.436285406e-06 4.417235803e-06 9.17188401e-09 -6.538235086e-07 2.144118665e-08 --0.0001839459178 -0.000125809475 -6.538235086e-07 -3.836987386e-05 1.093410392e-07 -6.857145809e-06 6.682131759e-06 2.144118665e-08 1.093410392e-07 1.855798769e-08 -0.00680660732 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0004134016384 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0081627104 -0.003275940897 0.001849157004 0 0 --0.003275940897 -0.000748714439 -0.0002463019688 0 0 -0.001849157004 -0.0002463019688 0.001307156567 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002557875956 -0.001002177424 0.0007437606002 0 0 --0.001002177424 -0.0001206502055 -3.857796799e-05 0 0 -0.0007437606002 -3.857796799e-05 0.0001840579189 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002533316511 -0.00016265176 0.002941601325 0.0007158350144 0.001166061186 --0.00016265176 0.001166837142 0.0001223846668 -0.0008608732698 -1.439475104e-05 -0.002941601325 0.0001223846668 -0.003411933636 -0.0007799944578 -0.001348950137 -0.0007158350144 -0.0008608732698 -0.0007799944578 0.0004962419502 -0.0002607355339 -0.001166061186 -1.439475104e-05 -0.001348950137 -0.0002607355339 -0.0005299588717 --0.0008050342024 -4.30081546e-05 0.0009804284038 0.0002571170042 0.0003433150815 --4.30081546e-05 0.0004404357491 7.219370725e-05 -0.0002846629971 -5.283529491e-05 -0.0009804284038 7.219370725e-05 -0.001193149178 -0.0003264909003 -0.000421299364 -0.0002571170042 -0.0002846629971 -0.0003264909003 0.000118999297 -6.167767579e-05 -0.0003433150815 -5.283529491e-05 -0.000421299364 -6.167767579e-05 -0.0001349674484 -0.007137274024 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0004735994669 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.008886547946 -0.003722991527 -0.001968607601 0 0 --0.003722991527 -0.0008820918959 0.0002880357632 0 0 --0.001968607601 0.0002880357632 0.001391224305 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002750501482 -0.00111960573 -0.0008070786101 0 0 --0.00111960573 -0.0001278111336 3.384990821e-05 0 0 --0.0008070786101 3.384990821e-05 0.0001636179768 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002824693085 -0.0002427740889 -0.003223993217 0.0007844493366 -0.00132386968 --0.0002427740889 0.001346354247 -0.0002242586646 -0.0009390121931 2.042316493e-06 --0.003223993217 -0.0002242586646 -0.003677696939 0.0008564474583 -0.00150653673 -0.0007844493366 -0.0009390121931 0.0008564474583 0.0005230017823 0.000282392909 --0.00132386968 2.042316493e-06 -0.00150653673 0.000282392909 -0.0006106555362 --0.0008723051495 -6.053613546e-05 -0.001055748102 0.0002795494877 -0.0003719699147 --6.053613546e-05 0.0005035303853 -0.0001110726429 -0.0003008878443 6.428755089e-05 --0.001055748102 -0.0001110726429 -0.001274953462 0.0003621866543 -0.0004569029887 -0.0002795494877 -0.0003008878443 0.0003621866543 0.0001124567704 6.236802963e-05 --0.0003719699147 6.428755089e-05 -0.0004569029887 6.236802963e-05 -0.0001426267623 --0.09819328459 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01339859222 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.03961238412 -0.09201733356 0.0003367693347 0 0 --0.09201733356 -0.2060692755 0.0006491155235 0 0 -0.0003367693347 0.0006491155235 -5.541088724e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001739337388 -0.003697514772 2.064192567e-05 0 0 --0.003697514772 -0.007408214898 3.41265951e-05 0 0 -2.064192567e-05 3.41265951e-05 -3.448104226e-08 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001595737208 0.003924472733 -1.67452498e-05 0.004218004119 1.20514652e-05 -0.003924472733 -0.007119385156 5.932111858e-05 -0.008795874897 -5.130096886e-05 --1.67452498e-05 5.932111858e-05 -4.579143124e-08 5.556354282e-05 -2.870296656e-08 -0.004218004119 -0.008795874897 5.556354282e-05 -0.01016650236 -4.535171915e-05 -1.20514652e-05 -5.130096886e-05 -2.870296656e-08 -4.535171915e-05 9.429357816e-08 --0.0002063531475 0.0007969132278 -1.920297268e-06 0.0007122392755 8.234917187e-07 -0.0007969132278 -0.001735609358 1.087879554e-05 -0.002000953271 -8.205331485e-06 --1.920297268e-06 1.087879554e-05 -8.934681136e-09 8.562356313e-06 -5.303323736e-09 -0.0007122392755 -0.002000953271 8.562356313e-06 -0.002039583031 -5.649366707e-06 -8.234917187e-07 -8.205331485e-06 -5.303323736e-09 -5.649366707e-06 1.553034072e-08 -0.01393800064 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001611980637 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001520419628 -0.01181452653 6.527574966e-05 0 0 --0.01181452653 -0.008970137923 5.166800384e-06 0 0 -6.527574966e-05 5.166800384e-06 2.405212345e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001965924526 -0.003517539205 1.438125695e-05 0 0 --0.003517539205 -0.002322067517 2.486371378e-07 0 0 -1.438125695e-05 2.486371378e-07 5.830086512e-08 0 0 -0 0 0 0 0 -0 0 0 0 0 -7.699926229e-05 -0.005090250426 3.11641982e-05 -0.0003805177686 -1.477076114e-05 --0.005090250426 -0.009366388321 1.136072351e-05 -0.0008939751248 -2.200479155e-05 -3.11641982e-05 1.136072351e-05 2.058580616e-07 2.009992041e-06 1.975049531e-09 --0.0003805177686 -0.0008939751248 2.009992041e-06 -8.142423047e-05 -2.204410062e-06 --1.477076114e-05 -2.200479155e-05 1.975049531e-09 -2.204410062e-06 -4.891553654e-08 --0.0005871489364 -0.001770200264 6.81314572e-06 -0.0001641786778 -4.887590222e-06 --0.001770200264 -0.002649022829 1.851831303e-06 -0.0002463673175 -6.262165897e-06 -6.81314572e-06 1.851831303e-06 5.088576817e-08 1.764881487e-07 -2.200687545e-09 --0.0001641786778 -0.0002463673175 1.764881487e-07 -2.29125745e-05 -5.829381203e-07 --4.887590222e-06 -6.262165897e-06 -2.200687545e-09 -5.829381203e-07 -1.397414212e-08 --0.7035671608 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01218150889 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.1044604087 -0.004822423933 -0.0001239288777 0 0 --0.004822423933 -0.08110099005 0.0005411570886 0 0 --0.0001239288777 0.0005411570886 -0.09888010613 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02039674928 0.009794933237 -3.272586031e-05 0 0 -0.009794933237 0.009635691949 0.0001617896376 0 0 --3.272586031e-05 0.0001617896376 -0.02328624435 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02825216474 -0.03765995106 -5.249730812e-05 0.009785392382 -0.0002526381927 --0.03765995106 -0.04466043673 3.276707475e-06 0.01664086438 -9.445836907e-05 --5.249730812e-05 3.276707475e-06 -0.007471471033 4.491038941e-05 -0.02329549537 -0.009785392382 0.01664086438 4.491038941e-05 2.249084074e-05 0.0001800626498 --0.0002526381927 -9.445836907e-05 -0.02329549537 0.0001800626498 -0.07029516341 --0.006736453651 -0.01122697093 -1.680447334e-05 0.0003230249902 -8.0842052e-05 --0.01122697093 -0.007093076164 -1.28672107e-06 0.008149092255 -2.213001258e-05 --1.680447334e-05 -1.28672107e-06 -0.001808091083 1.432489433e-05 -0.005706595336 -0.0003230249902 0.008149092255 1.432489433e-05 0.005433278507 6.551250813e-05 --8.0842052e-05 -2.213001258e-05 -0.005706595336 6.551250813e-05 -0.01728679854 -0.01286638133 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0005767292686 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -9.187722477e-05 -0.003103845361 -0.002559539422 0 0 --0.003103845361 -0.0119561841 -0.002992969669 0 0 --0.002559539422 -0.002992969669 0.002790631018 0 0 -0 0 0 0 0 -0 0 0 0 0 -2.556895036e-05 -0.0008477445697 -0.0007096982612 0 0 --0.0008477445697 -0.003894217215 -0.001263684484 0 0 --0.0007096982612 -0.001263684484 0.0004888557041 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00135255591 -0.0001062369264 0.00106390328 0.001814004748 0.002444945148 --0.0001062369264 -5.363059649e-06 3.215652149e-05 8.68655076e-05 0.0001879352298 -0.00106390328 3.215652149e-05 4.958775934e-05 -0.0004678736424 -0.001852400933 -0.001814004748 8.68655076e-05 -0.0004678736424 -0.001395387629 -0.00320252829 -0.002444945148 0.0001879352298 -0.001852400933 -0.00320252829 -0.004413951802 --0.0004981293611 -4.984114108e-05 0.0003150704126 0.0005818894926 0.0008993952089 --4.984114108e-05 -2.668476653e-06 9.235979639e-06 3.360033618e-05 8.831179799e-05 -0.0003150704126 9.235979639e-06 1.49938016e-05 -0.0001313457779 -0.0005527359869 -0.0005818894926 3.360033618e-05 -0.0001313457779 -0.0004182579562 -0.001032801037 -0.0008993952089 8.831179799e-05 -0.0005527359869 -0.001032801037 -0.001622683539 -0.01389105993 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007529390612 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -6.265761075e-05 -0.003539478397 0.002824694877 0 0 --0.003539478397 -0.01347603566 0.003362868575 0 0 -0.002824694877 0.003362868575 0.002959240909 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.689746935e-05 -0.0009375562844 0.0007598010716 0 0 --0.0009375562844 -0.004337832022 0.001434844807 0 0 -0.0007598010716 0.001434844807 0.0004464834805 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001547090319 -0.0001142463125 -0.001193724245 0.002039398868 -0.002765786433 --0.0001142463125 -3.84188431e-06 -2.193247115e-05 8.10974267e-05 -0.0001997418836 --0.001193724245 -2.193247115e-05 3.327882706e-05 0.0005718994054 -0.002069205549 -0.002039398868 8.10974267e-05 0.0005718994054 -0.00163699442 0.003577830021 --0.002765786433 -0.0001997418836 -0.002069205549 0.003577830021 -0.004940083738 --0.0005643645565 -5.57749126e-05 -0.0003391358425 0.0006374038024 -0.001009137596 --5.57749126e-05 -1.961220047e-06 -5.985668719e-06 3.352984831e-05 -9.795834216e-05 --0.0003391358425 -5.985668719e-06 9.65326191e-06 0.0001545941689 -0.0005926647275 -0.0006374038024 3.352984831e-05 0.0001545941689 -0.0004754246432 0.001125031357 --0.001009137596 -9.795834216e-05 -0.0005926647275 0.001125031357 -0.001803549369 -0.05360288538 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.006592778901 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02508079405 -0.001623874661 -0.05707242383 0 0 --0.001623874661 -0.03054477383 0.007601687935 0 0 --0.05707242383 0.007601687935 0.1293728484 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001053867756 0.0003461347612 -0.002358419441 0 0 -0.0003461347612 -0.002016159495 -0.0005070735856 0 0 --0.002358419441 -0.0005070735856 0.005244232265 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0004542648879 -0.0002051247347 0.002343636138 0.003964756561 0.0004792876783 --0.0002051247347 -0.0004466544358 0.000900568454 0.002069106752 0.001104563109 -0.002343636138 0.000900568454 0.004976062031 0.00643624123 -0.002325539153 -0.003964756561 0.002069106752 0.00643624123 0.006983590544 -0.005270623104 -0.0004792876783 0.001104563109 -0.002325539153 -0.005270623104 -0.002730124288 --2.504576353e-05 -0.0001615029421 0.0004241910108 0.0008912082016 0.0003910099915 --0.0001615029421 -0.000215914297 0.0001107332386 0.0004812445187 0.0005308596212 -0.0004241910108 0.0001107332386 0.001160121623 0.001646985223 -0.0002938963475 -0.0008912082016 0.0004812445187 0.001646985223 0.001874550144 -0.001216894645 -0.0003910099915 0.0005308596212 -0.0002938963475 -0.001216894645 -0.001304817909 --0.006981603273 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0008402200379 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001307507566 -0.002393830518 -0.005523137472 0 0 --0.002393830518 -0.003759780534 -0.001431424402 0 0 --0.005523137472 -0.001431424402 0.006965964304 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001154513778 -0.0003412873663 -0.001766531289 0 0 --0.0003412873663 -0.001085029949 -0.0004650475268 0 0 --0.001766531289 -0.0004650475268 0.00188111433 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003176611519 -0.001273930733 -0.00269329326 -0.0002296626821 7.199915208e-06 --0.001273930733 -0.00207721032 -0.0001964078401 0.00104898168 0.0007789051021 --0.00269329326 -0.0001964078401 0.006004908358 0.002143016651 0.001175160221 --0.0002296626821 0.00104898168 0.002143016651 0.0001637631863 -1.958862731e-05 -7.199915208e-06 0.0007789051021 0.001175160221 -1.958862731e-05 -9.063797459e-05 -0.0004406213248 -0.0002241773225 -0.0009902396961 -0.0002175520553 -8.132843574e-05 --0.0002241773225 -0.0006349419682 -0.0001066822387 0.000297662511 0.000248825291 --0.0009902396961 -0.0001066822387 0.001727837531 0.0006413214186 0.0003518610383 --0.0002175520553 0.000297662511 0.0006413214186 6.073758366e-05 -1.16314354e-05 --8.132843574e-05 0.000248825291 0.0003518610383 -1.16314354e-05 -4.244465355e-05 --0.01253465386 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0004665820366 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -8.654999374e-05 -0.003022468587 -0.002463697951 0 0 --0.003022468587 0.002429145397 0.006269540045 0 0 --0.002463697951 0.006269540045 0.008428518671 0 0 -0 0 0 0 0 -0 0 0 0 0 -2.537226572e-05 -0.0008779342261 -0.000723946783 0 0 --0.0008779342261 0.001167523885 0.002121848054 0 0 --0.000723946783 0.002121848054 0.002659488117 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001165967758 0.0009005883692 -0.0004542864541 -0.0005267444334 -0.002732853984 -0.0009005883692 5.574601506e-05 5.486030356e-06 -0.0004185847986 -0.001591881291 --0.0004542864541 5.486030356e-06 -2.14844083e-05 0.000211764021 0.0007757410588 --0.0005267444334 -0.0004185847986 0.000211764021 0.0002377501308 0.001244123549 --0.002732853984 -0.001591881291 0.0007757410588 0.001244123549 0.005984495017 -0.0004353679994 0.0002823393221 -0.0001497626028 -0.0002192157384 -0.0009679351305 -0.0002823393221 1.753475238e-05 1.504928731e-06 -0.0001260865638 -0.000502304014 --0.0001497626028 1.504928731e-06 -7.235408782e-06 6.583143255e-05 0.0002582544005 --0.0002192157384 -0.0001260865638 6.583143255e-05 0.0001088180914 0.0004751956957 --0.0009679351305 -0.000502304014 0.0002582544005 0.0004751956957 0.002056976215 -0.3427161388 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.000489736811 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.05885713742 0.01443259929 -0.001789578522 0 0 -0.01443259929 0.03578533488 -0.02356465582 0 0 --0.001789578522 -0.02356465582 0.05051315129 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01030713367 0.004365130412 0.00494014721 0 0 -0.004365130412 0.01000404526 -0.007062019008 0 0 -0.00494014721 -0.007062019008 -0.003303570869 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0189299826 -0.004537041123 -0.02411208851 0.01040989144 -8.467489406e-05 --0.004537041123 -0.003600926399 -0.001946539311 -0.01113930349 -0.008870880064 --0.02411208851 -0.001946539311 0.02815390348 -0.003807158393 0.01666645375 -0.01040989144 -0.01113930349 -0.003807158393 0.01179825262 0.02766805596 --8.467489406e-05 -0.008870880064 0.01666645375 0.02766805596 0.02409908569 -0.004506722344 -0.000276254963 -0.00622834602 0.001462385478 -0.00011643732 --0.000276254963 -0.001565692187 -0.001421907472 -0.002807658729 -0.003145027576 --0.00622834602 -0.001421907472 0.005071371632 -0.003246660054 0.004252225121 -0.001462385478 -0.002807658729 -0.003246660054 -0.001590868255 0.008529397545 --0.00011643732 -0.003145027576 0.004252225121 0.008529397545 0.007980953383 --0.0001352661939 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -7.273342516e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.425269619e-07 0.001730032 -6.034180489e-05 0 0 -0.001730032 -0.004236343958 -0.00201048378 0 0 --6.034180489e-05 -0.00201048378 0.0001447128036 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.194311617e-07 0.0004844703474 -1.631033731e-05 0 0 -0.0004844703474 -0.001171586312 -0.0007670144802 0 0 --1.631033731e-05 -0.0007670144802 5.264228189e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.592817893e-05 -1.378802861e-05 6.283125694e-06 4.719328161e-05 0.0009337253936 --1.378802861e-05 8.982849361e-06 -2.867902514e-06 -4.508053107e-05 -0.001216383177 -6.283125694e-06 -2.867902514e-06 2.397381219e-07 2.229796444e-05 0.0007236954923 -4.719328161e-05 -4.508053107e-05 2.229796444e-05 0.0001337729377 0.002182073256 -0.0009337253936 -0.001216383177 0.0007236954923 0.002182073256 -0.00167509913 -5.73692709e-06 -4.345397359e-06 1.637838595e-06 1.692324494e-05 0.0003563180297 --4.345397359e-06 2.783019806e-06 -7.87084253e-07 -1.407240743e-05 -0.0003770034055 -1.637838595e-06 -7.87084253e-07 6.306271438e-08 5.950044727e-06 0.0001972736074 -1.692324494e-05 -1.407240743e-05 5.950044727e-06 4.682826327e-05 0.0007868793988 -0.0003563180297 -0.0003770034055 0.0001972736074 0.0007868793988 -0.0004375838944 -0.05701455562 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.006530610892 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02630507163 -0.0005868196389 0.05926449788 0 0 --0.0005868196389 -0.03480115701 -0.005542644573 0 0 -0.05926449788 -0.005542644573 0.1330093855 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001073312314 0.0004844986948 0.002364286639 0 0 -0.0004844986948 -0.002328940219 0.000753659435 0 0 -0.002364286639 0.000753659435 0.00516943774 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003616457792 -0.0003197519551 -0.002428466122 0.004226826561 -0.0007589624998 --0.0003197519551 -0.0005731783987 -0.0009252541062 0.002239396129 -0.001385884502 --0.002428466122 -0.0009252541062 0.005278196779 -0.0069290883 -0.00228732242 -0.004226826561 0.002239396129 -0.0069290883 0.007668352469 0.00549271798 --0.0007589624998 -0.001385884502 -0.00228732242 0.00549271798 -0.003350550067 --7.925033427e-05 -0.0002123456038 -0.0003832162879 0.0008863888883 -0.0005092092822 --0.0002123456038 -0.0002654784893 -7.334485354e-05 0.0004777501256 -0.0006406393635 --0.0003832162879 -7.334485354e-05 0.001142400334 -0.001674445174 -0.0001885004019 -0.0008863888883 0.0004777501256 -0.001674445174 0.001946915525 0.001170763087 --0.0005092092822 -0.0006406393635 -0.0001885004019 0.001170763087 -0.001545844841 --0.007217797151 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0008707659668 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001349695418 -0.002452308034 0.005635012084 0 0 --0.002452308034 -0.004061254882 0.001628312013 0 0 -0.005635012084 0.001628312013 0.006992207193 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001194997675 -0.0003274049354 0.001797777244 0 0 --0.0003274049354 -0.001169040798 0.0005247054902 0 0 -0.001797777244 0.0005247054902 0.001882506613 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003108757489 -0.00134782031 0.002790347349 -0.0002444975548 -1.898236528e-05 --0.00134782031 -0.002297034925 0.0003226487996 0.001065380951 -0.0008541800212 -0.002790347349 0.0003226487996 0.006095339021 -0.002202710822 0.001258435849 --0.0002444975548 0.001065380951 -0.002202710822 0.0001922889212 1.55443888e-05 --1.898236528e-05 -0.0008541800212 0.001258435849 1.55443888e-05 -0.0001065718418 -0.0004603037625 -0.0002287103199 0.00102530443 -0.0002277033128 8.647952235e-05 --0.0002287103199 -0.0006996044382 0.0001476441805 0.0003010092033 -0.000271754521 -0.00102530443 0.0001476441805 0.001752903476 -0.0006589941225 0.0003774834411 --0.0002277033128 0.0003010092033 -0.0006589941225 6.923962997e-05 1.00729564e-05 -8.647952235e-05 -0.000271754521 0.0003774834411 1.00729564e-05 -4.811575096e-05 --0.01337594793 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0005420528317 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.534582373e-05 -0.003189918001 0.002529142157 0 0 --0.003189918001 0.00267725132 -0.006632679853 0 0 -0.002529142157 -0.006632679853 0.008722268071 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.615150666e-05 -0.0009200730235 0.000739171521 0 0 --0.0009200730235 0.001267869442 -0.002233603606 0 0 -0.000739171521 -0.002233603606 0.002741701138 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001244031138 0.0009410942055 0.0004806032794 -0.0005842186606 0.002881122553 -0.0009410942055 3.595256685e-05 -3.369888499e-06 -0.000464174873 0.001646194638 -0.0004806032794 -3.369888499e-06 -1.351688944e-05 -0.0002377617556 0.0008235428212 --0.0005842186606 -0.000464174873 -0.0002377617556 0.0002736288048 -0.001370557232 -0.002881122553 0.001646194638 0.0008235428212 -0.001370557232 0.006251754558 -0.0004624109733 0.0002929274839 0.0001579727741 -0.0002408350124 0.001016273961 -0.0002929274839 1.125213299e-05 -9.123388043e-07 -0.0001384906589 0.0005162362368 -0.0001579727741 -9.123388043e-07 -4.536068021e-06 -7.412300818e-05 0.0002732929272 --0.0002408350124 -0.0001384906589 -7.412300818e-05 0.0001242965881 -0.0005190024792 -0.001016273961 0.0005162362368 0.0002732929272 -0.0005190024792 0.002140203126 -0.0001338594695 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --6.322048427e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.153774319e-07 0.00162389179 -5.613991905e-05 0 0 -0.00162389179 -0.003988763621 0.002021936249 0 0 --5.613991905e-05 0.002021936249 -0.000135593129 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.150292856e-07 0.0004666139906 -1.552504068e-05 0 0 -0.0004666139906 -0.001132071461 0.0007555114769 0 0 --1.552504068e-05 0.0007555114769 -4.929317154e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --1.484375798e-05 1.292932192e-05 5.690355992e-06 -4.4167591e-05 -0.0008835055734 -1.292932192e-05 -8.440902213e-06 -2.349242796e-06 4.237924966e-05 0.001148829572 -5.690355992e-06 -2.349242796e-06 2.28322173e-07 2.054368092e-05 0.0006892344488 --4.4167591e-05 4.237924966e-05 2.054368092e-05 -0.000126006411 -0.002103427401 --0.0008835055734 0.001148829572 0.0006892344488 -0.002103427401 -0.00159307287 --5.378577322e-06 4.168274842e-06 1.536141393e-06 -1.595948706e-05 -0.0003374716951 -4.168274842e-06 -2.695899764e-06 -6.724383817e-07 1.358374641e-05 0.0003667948181 -1.536141393e-06 -6.724383817e-07 6.342870029e-08 5.736335497e-06 0.0001984183998 --1.595948706e-05 1.358374641e-05 5.736335497e-06 -4.459089002e-05 -0.0007619437802 --0.0003374716951 0.0003667948181 0.0001984183998 -0.0007619437802 -0.000441243811 -0.3399086904 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002086132263 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.06357043218 0.01711980989 -0.002652672411 0 0 -0.01711980989 0.04187000038 0.02757534462 0 0 --0.002652672411 0.02757534462 0.04481283897 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01070236158 0.004367097526 -0.005351181593 0 0 -0.004367097526 0.01178946367 0.006397237818 0 0 --0.005351181593 0.006397237818 -0.003976313565 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02120097598 -0.004408725073 0.02730681472 0.01077888932 0.0003439368054 --0.004408725073 -0.004311288807 0.003163271432 -0.01288580995 0.01091855713 -0.02730681472 0.003163271432 0.02919322581 0.006730305086 0.01915941383 -0.01077888932 -0.01288580995 0.006730305086 0.009066686531 -0.03229906602 -0.0003439368054 0.01091855713 0.01915941383 -0.03229906602 0.02866183118 -0.00492788138 0.0001720775331 0.006247637095 0.001659245828 0.0005340797404 -0.0001720775331 -0.001749345703 0.001599132177 -0.002704477468 0.003940687125 -0.006247637095 0.001599132177 0.005272038069 0.003553350234 0.003890657641 -0.001659245828 -0.002704477468 0.003553350234 -0.002570307451 -0.008694002526 -0.0005340797404 0.003940687125 0.003890657641 -0.008694002526 0.009683102825 -0.005676680638 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0001402393174 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0008032043701 -0.002566378256 0.2402308559 0 0 --0.002566378256 0.002786933102 -0.251855659 0 0 -0.2402308559 -0.251855659 -0.0003689929758 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.148249135e-07 -2.791288734e-05 0.009477046289 0 0 --2.791288734e-05 9.173399088e-06 -0.009823469393 0 0 -0.009477046289 -0.009823469393 -0.0004188303789 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0003956189217 8.749005058e-05 0.01403243953 -0.0003056351161 0.01119705105 -8.749005058e-05 0.0002500063346 -0.00857457706 2.915835474e-05 0.006437650086 -0.01403243953 -0.00857457706 0.0001496752032 -0.004401111711 -1.104797508e-05 --0.0003056351161 2.915835474e-05 -0.004401111711 -0.0003743518384 -0.00315011592 -0.01119705105 0.006437650086 -1.104797508e-05 -0.00315011592 6.272728736e-05 --0.0001295828716 -4.16584838e-05 0.003669772573 -0.0001334911836 0.001935220172 --4.16584838e-05 4.8267731e-06 -0.001936808796 -5.860464218e-05 0.000919775742 -0.003669772573 -0.001936808796 -9.737088957e-05 -0.0004576195167 0.0001771571136 --0.0001334911836 -5.860464218e-05 -0.0004576195167 -0.0001610319356 -0.002237885987 -0.001935220172 0.000919775742 0.0001771571136 -0.002237885987 -0.0002325493219 --0.002635465696 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --4.186992382e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0006128028529 6.827865831e-05 0.006533101684 0 0 -6.827865831e-05 -0.0005365916869 0.0002799513066 0 0 -0.006533101684 0.0002799513066 -0.0005131714682 0 0 -0 0 0 0 0 -0 0 0 0 0 --9.935461029e-05 8.996821237e-06 -0.005509310156 0 0 -8.996821237e-06 -5.982908935e-05 -8.992442744e-05 0 0 --0.005509310156 -8.992442744e-05 -9.727824667e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00020193805 0.0001026403732 -0.05671473077 0.0002378284879 0.001924974285 -0.0001026403732 -0.0005693585596 -0.001796053825 1.400134035e-05 0.03923821451 --0.05671473077 -0.001796053825 -0.001155861981 -0.03945973828 -1.626314555e-05 -0.0002378284879 1.400134035e-05 -0.03945973828 0.0002261865346 0.004435815913 -0.001924974285 0.03923821451 -1.626314555e-05 0.004435815913 0.0002216650453 --3.575434608e-05 1.557520049e-05 -0.01140333103 4.71160314e-05 0.000301693702 -1.557520049e-05 -6.610296547e-05 -0.0003815203467 7.5535362e-06 0.008434122526 --0.01140333103 -0.0003815203467 -0.0001802370748 -0.008535226958 -8.306610673e-06 -4.71160314e-05 7.5535362e-06 -0.008535226958 4.829849156e-05 0.001261117007 -0.000301693702 0.008434122526 -8.306610673e-06 0.001261117007 4.654531842e-05 -0.000330051135 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --7.461243293e-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 --4.125780102e-05 -8.4958621e-05 -0.01054837915 0 0 --8.4958621e-05 -0.000377137704 -0.03326370981 0 0 --0.01054837915 -0.03326370981 -9.100397842e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --8.05690554e-06 -1.736540348e-05 -0.0008313958444 0 0 --1.736540348e-05 -8.420644906e-05 -0.002762704774 0 0 --0.0008313958444 -0.002762704774 -2.286887528e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --1.242594897e-05 1.33331148e-05 -0.003905489286 6.866212887e-05 0.01236815207 -1.33331148e-05 -3.671207221e-05 -0.01242644183 -4.885880904e-05 0.0005533893144 --0.003905489286 -0.01242644183 -1.587321907e-06 0.00422748915 -3.682635627e-05 -6.866212887e-05 -4.885880904e-05 0.00422748915 -0.0001492690173 0.007387152456 -0.01236815207 0.0005533893144 -3.682635627e-05 0.007387152456 -9.065235272e-05 --1.584763788e-06 3.452407092e-06 -0.001674989006 1.890000843e-05 0.00237797105 -3.452407092e-06 -8.359568528e-06 -0.003110946933 -1.234235496e-05 0.002112531389 --0.001674989006 -0.003110946933 -1.148302154e-06 0.002220462558 -1.137429865e-05 -1.890000843e-05 -1.234235496e-05 0.002220462558 -4.372664526e-05 0.005251668578 -0.00237797105 0.002112531389 -1.137429865e-05 0.005251668578 -2.411087956e-05 --0.650528614 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0005712112495 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.09120636182 0.002776556931 -0.005880434281 0 0 -0.002776556931 -0.09047452646 0.009295226947 0 0 --0.005880434281 0.009295226947 -0.04356350261 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01396933816 -0.004916718708 -0.008971294331 0 0 --0.004916718708 -0.01028877224 0.01257743653 0 0 --0.008971294331 0.01257743653 0.005919509537 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02692915671 0.02000792022 0.02959957787 0.001458429589 0.01051310896 -0.02000792022 -0.02047467102 -0.01234647904 0.02518034573 -0.001541360118 -0.02959957787 -0.01234647904 -0.01953073101 -0.002935082941 -0.02223396413 -0.001458429589 0.02518034573 -0.002935082941 -0.04743609481 -0.0250720646 -0.01051310896 -0.001541360118 -0.02223396413 -0.0250720646 -0.005082639066 --0.00572855579 0.004910601225 0.006454275876 0.0005841880132 0.001479411 -0.004910601225 -0.003600539399 -0.001132740242 0.005692774372 -0.002205369865 -0.006454275876 -0.001132740242 -0.001320343142 -0.000747465256 -0.006545064833 -0.0005841880132 0.005692774372 -0.000747465256 -0.01030766547 -0.004915499121 -0.001479411 -0.002205369865 -0.006545064833 -0.004915499121 0.002941623019 -0.6488517676 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.005742513049 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.09830434015 0.001738709004 -0.01336220474 0 0 -0.001738709004 0.0945414626 0.01933273659 0 0 --0.01336220474 0.01933273659 0.03687429208 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01431211311 0.00539114968 -0.009392457746 0 0 -0.00539114968 0.01043345726 0.01302155184 0 0 --0.009392457746 0.01302155184 -0.005104691462 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03018839562 -0.02278534385 0.03313366346 -0.001726159279 0.01104032103 --0.02278534385 0.02176071946 -0.01174400788 -0.02846476843 -0.003617372023 -0.03313366346 -0.01174400788 0.01859551553 -0.003183751192 0.02682200748 --0.001726159279 -0.02846476843 -0.003183751192 0.05241902003 -0.02757083777 -0.01104032103 -0.003617372023 0.02682200748 -0.02757083777 0.001846224964 -0.006270698847 -0.004830039638 0.00596719849 -0.0002918190083 0.002122567794 --0.004830039638 0.003724800745 -0.001096399822 -0.005515773833 -0.00211612465 -0.00596719849 -0.001096399822 0.001164977804 -0.001496685547 0.005985827957 --0.0002918190083 -0.005515773833 -0.001496685547 0.01087468446 -0.00387464462 -0.002122567794 -0.00211612465 0.005985827957 -0.00387464462 -0.002617555036 -0.0004408119167 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.883787196e-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.001394191024 1.846115167e-05 -0.1176012141 0 0 -1.846115167e-05 1.885711256e-07 -0.000812629246 0 0 --0.1176012141 -0.000812629246 -0.001287480869 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.517913036e-05 2.864564951e-07 -0.005695306683 0 0 -2.864564951e-07 -2.263184016e-09 1.872415072e-05 0 0 --0.005695306683 1.872415072e-05 -0.0001180881443 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0002294395908 8.420406451e-06 -0.0182208399 5.444877876e-05 -0.0003558199195 -8.420406451e-06 2.78328953e-07 -0.000879461572 2.558647606e-06 -1.719297051e-05 --0.0182208399 -0.000879461572 6.947726405e-05 -0.000476802746 -0.0001269073266 -5.444877876e-05 2.558647606e-06 -0.000476802746 2.69202708e-06 -8.970052322e-06 --0.0003558199195 -1.719297051e-05 -0.0001269073266 -8.970052322e-06 -4.994404532e-06 -3.236565237e-05 1.081797124e-06 -0.003957792278 1.156066411e-05 -7.737843243e-05 -1.081797124e-06 3.066475262e-08 -0.0001838484287 5.2689673e-07 -3.596631062e-06 --0.003957792278 -0.0001838484287 6.60327318e-06 -9.502828858e-05 -2.07770442e-05 -1.156066411e-05 5.2689673e-07 -9.502828858e-05 5.364451568e-07 -1.80092687e-06 --7.737843243e-05 -3.596631062e-06 -2.07770442e-05 -1.80092687e-06 -8.158472708e-07 -0.002069758812 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -7.609151248e-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.0007126406607 -0.0002619240227 0.0124820269 0 0 --0.0002619240227 0.000639311534 -0.01395279016 0 0 -0.0124820269 -0.01395279016 0.000278634092 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001948544963 -5.766578976e-05 0.01036391291 0 0 --5.766578976e-05 8.266218809e-05 -0.003599614196 0 0 -0.01036391291 -0.003599614196 1.740589363e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.000210432108 -0.0002457330786 0.06650454134 -0.0002764066136 -0.002347921129 --0.0002457330786 0.0006955815807 -0.009971279853 -2.481509978e-05 -0.04111854575 -0.06650454134 -0.009971279853 0.00107878119 0.04117067661 5.926364749e-05 --0.0002764066136 -2.481509978e-05 0.04117067661 -0.0002434079693 -0.004671054312 --0.002347921129 -0.04111854575 5.926364749e-05 -0.004671054312 -0.0002366329428 -7.976275386e-05 -6.048963714e-05 0.01430307101 -5.11714009e-05 -0.0007476153878 --6.048963714e-05 9.941392555e-05 -0.002996253744 -1.094037659e-05 -0.009011258943 -0.01430307101 -0.002996253744 0.0001493734221 0.009058160938 2.174560983e-05 --5.11714009e-05 -1.094037659e-05 0.009058160938 -5.394153227e-05 -0.001359514869 --0.0007476153878 -0.009011258943 2.174560983e-05 -0.001359514869 -5.191433391e-05 --2.775446449e-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 -1.335945935e-06 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.01939588e-05 9.261169323e-06 -0.003390759025 0 0 -9.261169323e-06 -6.416057829e-06 0.0008374942971 0 0 --0.003390759025 0.0008374942971 -3.432519937e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -9.659625712e-06 3.550614474e-06 -0.001134256138 0 0 -3.550614474e-06 -1.041136673e-06 0.0001421096809 0 0 --0.001134256138 0.0001421096809 -1.126366723e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -7.87493178e-06 1.192038502e-05 -0.001253501433 3.071134488e-06 -0.001078501439 -1.192038502e-05 1.800799598e-05 -0.001812636459 4.18809255e-06 -0.001559572436 --0.001253501433 -0.001812636459 -5.306515004e-06 0.0005951613741 -1.347385219e-05 -3.071134488e-06 4.18809255e-06 0.0005951613741 -4.691466224e-06 0.0005121199274 --0.001078501439 -0.001559572436 -1.347385219e-05 0.0005121199274 -1.925769322e-05 -2.608063235e-06 4.079655593e-06 -0.0004261277433 1.152095041e-06 -0.0003666362247 -4.079655593e-06 6.381555094e-06 -0.0006681238159 1.809957103e-06 -0.0005748473968 --0.0004261277433 -0.0006681238159 -1.920533824e-06 0.0001608876216 -4.852474064e-06 -1.152095041e-06 1.809957103e-06 0.0001608876216 -1.241693459e-06 0.0001384422132 --0.0003666362247 -0.0005748473968 -4.852474064e-06 0.0001384422132 -6.928474633e-06 -0.01261867049 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007663992955 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0151327303 0.001757197882 -0.0007956615434 0 0 -0.001757197882 0.0007731840072 0.0007873876846 0 0 --0.0007956615434 0.0007873876846 0.000452440392 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.004742009099 0.0007220567805 -1.281339207e-05 0 0 -0.0007220567805 0.0001153534627 0.0001075186418 0 0 --1.281339207e-05 0.0001075186418 4.94306565e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.004696478701 0.002969594573 0.003688918217 -0.00109512738 0.0005697774812 -0.002969594573 -0.001876652326 -0.002355957192 0.0006931018767 -0.000380246098 -0.003688918217 -0.002355957192 -0.002363489488 0.0008453729779 7.42441685e-06 --0.00109512738 0.0006931018767 0.0008453729779 -0.0002549516069 0.0001202428122 -0.0005697774812 -0.000380246098 7.42441685e-06 0.0001202428122 0.0003184827685 --0.00149244122 0.0009903780007 0.001240376365 -0.0003157282328 0.0001156748574 -0.0009903780007 -0.0006563098845 -0.000807709113 0.000210656829 -6.833724687e-05 -0.001240376365 -0.000807709113 -0.0007676708516 0.0002819029347 4.784816971e-05 --0.0003157282328 0.000210656829 0.0002819029347 -6.534823262e-05 3.513801503e-05 -0.0001156748574 -6.833724687e-05 4.784816971e-05 3.513801503e-05 6.979958197e-05 --0.01332918889 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0008844688788 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01659603874 -0.001814172374 -0.001017946259 0 0 --0.001814172374 -0.0008565830756 0.0008250865938 0 0 --0.001017946259 0.0008250865938 -0.0004205733091 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005136688557 -0.0007696464318 -2.446555974e-05 0 0 --0.0007696464318 -0.0001146695026 9.427813771e-05 0 0 --2.446555974e-05 9.427813771e-05 -3.558360219e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005275244803 -0.003258314332 0.004033478674 0.001218055533 0.0006853629222 --0.003258314332 0.002012206144 -0.002505885348 -0.000752492145 -0.0004349683531 -0.004033478674 -0.002505885348 0.002438278498 0.0009248377979 7.584205882e-06 -0.001218055533 -0.000752492145 0.0009248377979 0.000281184071 0.0001530570772 -0.0006853629222 -0.0004349683531 7.584205882e-06 0.0001530570772 -0.0003240003237 -0.001629070156 -0.001068000682 0.001339248435 0.0003316678523 0.0001260445934 --0.001068000682 0.0006978247178 -0.0008504921777 -0.0002200828321 -6.94278096e-05 -0.001339248435 -0.0008504921777 0.0007783753547 0.0003036863459 -5.12742999e-05 -0.0003316678523 -0.0002200828321 0.0003036863459 6.45418973e-05 4.055741389e-05 -0.0001260445934 -6.94278096e-05 -5.12742999e-05 4.055741389e-05 -6.46167457e-05 -2.774707368e-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 -3.786121699e-06 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.119351232e-05 3.263516183e-05 0.02347416402 0 0 -3.263516183e-05 9.488980328e-05 0.06486640733 0 0 -0.02347416402 0.06486640733 -0.0007575778239 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.914951453e-07 1.401592058e-06 0.001262531376 0 0 -1.401592058e-06 3.973958032e-06 0.003327535032 0 0 -0.001262531376 0.003327535032 -5.774468156e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.50917169e-07 -1.443572669e-06 -0.001184138438 -3.244925663e-06 -0.003632685976 --1.443572669e-06 2.814585562e-06 0.001420510228 5.570225666e-06 0.004357895162 --0.001184138438 0.001420510228 -4.622225435e-05 0.002200623664 -4.919607279e-05 --3.244925663e-06 5.570225666e-06 0.002200623664 1.050370486e-05 0.006751235627 --0.003632685976 0.004357895162 -4.919607279e-05 0.006751235627 0.0001331636186 -5.831046402e-08 -3.194516463e-07 -0.0003335840534 -7.796169967e-07 -0.001023362085 --3.194516463e-07 7.377366106e-07 0.0004375677015 1.515139724e-06 0.001342376046 --0.0003335840534 0.0004375677015 -1.059881737e-05 0.0006761724085 -1.174069747e-05 --7.796169967e-07 1.515139724e-06 0.0006761724085 2.921017292e-06 0.002074388566 --0.001023362085 0.001342376046 -1.174069747e-05 0.002074388566 2.77123457e-05 -2.923027658e-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 --3.380588155e-06 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.188569681e-06 -2.552796554e-05 0.0003582218342 0 0 --2.552796554e-05 -4.156867301e-05 0.005425693799 0 0 -0.0003582218342 0.005425693799 -6.278601413e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --4.122866622e-06 -8.39215909e-06 0.0004841608819 0 0 --8.39215909e-06 -1.138924779e-05 0.00155437587 0 0 -0.0004841608819 0.00155437587 -1.59132122e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.614800997e-07 -1.062118521e-05 -2.563886507e-05 -7.052454143e-07 -2.214713588e-05 --1.062118521e-05 -3.39957819e-05 0.003422051813 -1.476275885e-05 0.002944241453 --2.563886507e-05 0.003422051813 -4.144253934e-05 0.0002568521058 -7.924904863e-06 --7.052454143e-07 -1.476275885e-05 0.0002568521058 -2.024074548e-06 0.0002208896855 --2.214713588e-05 0.002944241453 -7.924904863e-06 0.0002208896855 1.704298773e-05 --1.231347756e-06 -4.134332449e-06 0.0002012058495 -1.070381107e-06 0.0001730969023 --4.134332449e-06 -9.905159839e-06 0.001037063988 -4.460713873e-06 0.0008922673746 -0.0002012058495 0.001037063988 -1.065515426e-05 9.609240755e-05 -1.552159209e-06 --1.070381107e-06 -4.460713873e-06 9.609240755e-05 -7.414773891e-07 8.26498057e-05 -0.0001730969023 0.0008922673746 -1.552159209e-06 8.26498057e-05 5.217132959e-06 --0.0006403444835 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001103171387 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --7.1035233e-06 -1.407432807e-05 0.01420279203 0 0 --1.407432807e-05 0.0005431901247 0.02377131006 0 0 -0.01420279203 0.02377131006 -3.702115147e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --6.969061466e-06 -8.516700619e-06 0.002019848567 0 0 --8.516700619e-06 0.0001490589595 -0.0001017578928 0 0 -0.002019848567 -0.0001017578928 -2.308094727e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.58889407e-05 -1.30827257e-05 0.005690258514 -0.0001351441772 -0.008897032686 --1.30827257e-05 3.849173046e-06 0.01425128272 -1.956425767e-05 0.001710949933 -0.005690258514 0.01425128272 8.466341715e-06 -0.006038896831 4.078446039e-05 --0.0001351441772 -1.956425767e-05 -0.006038896831 0.0002127726387 -0.01256601722 --0.008897032686 0.001710949933 4.078446039e-05 -0.01256601722 2.338451524e-05 -9.511875762e-06 -4.971438619e-06 0.002276547229 -4.38128869e-05 -0.001194254515 --4.971438619e-06 -2.776097187e-06 0.003783417371 -8.231959151e-06 -0.001329760368 -0.002276547229 0.003783417371 3.569790838e-06 -0.002795453853 1.230449112e-05 --4.38128869e-05 -8.231959151e-06 -0.002795453853 7.164917141e-05 -0.007045580754 --0.001194254515 -0.001329760368 1.230449112e-05 -0.007045580754 -4.38218408e-06 -0.007257995143 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0003253360929 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.182843833e-05 -0.002485681883 -0.0001412814226 0 0 --0.002485681883 -0.00949859536 0.001157286256 0 0 --0.0001412814226 0.001157286256 0.0001398631678 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.442358289e-05 -0.0006892404967 -2.625989836e-05 0 0 --0.0006892404967 -0.003134675872 0.0001916242093 0 0 --2.625989836e-05 0.0001916242093 1.646955731e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.000762984088 -6.340880685e-05 0.0006063226122 0.00170393049 0.0009678912098 --6.340880685e-05 -3.898769183e-06 2.446840135e-05 0.0001421331185 6.091287177e-05 -0.0006063226122 2.446840135e-05 8.279402865e-06 -0.001364007063 -0.0003999806985 -0.00170393049 0.0001421331185 -0.001364007063 -0.003805092851 -0.002169025713 -0.0009678912098 6.091287177e-05 -0.0003999806985 -0.002169025713 -0.0009497444402 --0.0002809974609 -2.946189695e-05 0.000180119425 0.000591554534 0.0003482352421 --2.946189695e-05 -1.958390795e-06 7.346130736e-06 6.581130999e-05 2.553801894e-05 -0.000180119425 7.346130736e-06 2.308646923e-06 -0.0004178491528 -0.0001112235799 -0.000591554534 6.581130999e-05 -0.0004178491528 -0.001232644812 -0.0007698714913 -0.0003482352421 2.553801894e-05 -0.0001112235799 -0.0007698714913 -0.0003250538289 --0.007694233315 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0004170516028 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.470593882e-05 0.002775692085 -9.287664458e-05 0 0 -0.002775692085 0.01051742804 0.001322818173 0 0 --9.287664458e-05 0.001322818173 -8.823749009e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --9.35947813e-06 0.0007467012999 -1.032478391e-05 0 0 -0.0007467012999 0.003433731986 0.0002029622832 0 0 --1.032478391e-05 0.0002029622832 -5.273820213e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0008569305676 6.567732049e-05 0.0006655283224 -0.001905256002 0.001046614362 -6.567732049e-05 2.743158411e-06 1.643498578e-05 -0.0001496018759 5.275766106e-05 -0.0006655283224 1.643498578e-05 -4.960060293e-06 -0.001533711607 0.0003984045464 --0.001905256002 -0.0001496018759 -0.001533711607 0.004230459706 -0.002369883495 -0.001046614362 5.275766106e-05 0.0003984045464 -0.002369883495 0.0009491391643 -0.0003126005211 3.181432073e-05 0.0001895089499 -0.0006510447589 0.0003724954099 -3.181432073e-05 1.414358362e-06 4.731046929e-06 -7.330417641e-05 2.272331626e-05 -0.0001895089499 4.731046929e-06 -1.304757923e-06 -0.0004509243041 0.0001045922359 --0.0006510447589 -7.330417641e-05 -0.0004509243041 0.001328692659 -0.0008344626305 -0.0003724954099 2.272331626e-05 0.0001045922359 -0.0008344626305 0.0003173854842 -0.09603523391 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01181166013 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04493489308 -0.05659470489 -0.07228633586 0 0 --0.05659470489 0.07092190629 0.09315324874 0 0 --0.07228633586 0.09315324874 0.1038560402 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001888115458 -0.002305318843 -0.002592489519 0 0 --0.002305318843 0.002783873436 0.003330916757 0 0 --0.002592489519 0.003330916757 0.002670462714 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0008138635534 0.002330357683 0.002693038054 -0.0001742331879 -0.003629519641 -0.002330357683 0.002642292806 0.003894268058 0.001573685916 -0.00523851191 -0.002693038054 0.003894268058 0.005296553612 0.001386249034 -0.007128957992 --0.0001742331879 0.001573685916 0.001386249034 -0.001028519851 -0.00187342521 --0.003629519641 -0.00523851191 -0.007128957992 -0.00187342521 0.009595262624 --4.487213221e-05 0.0004248072706 0.0003613702789 -0.0003297538068 -0.0004875498532 -0.0004248072706 0.0006233234207 0.0008565219103 0.0002400339638 -0.001152306641 -0.0003613702789 0.0008565219103 0.001029091762 1.764658189e-06 -0.001385392614 --0.0003297538068 0.0002400339638 1.764658189e-06 -0.0006354239664 -4.419972615e-06 --0.0004875498532 -0.001152306641 -0.001385392614 -4.419972615e-06 0.001865048383 --0.01294309294 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00155767173 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002423969293 -0.005692168287 -0.009562695804 0 0 --0.005692168287 0.003882658098 0.004154925895 0 0 --0.009562695804 0.004154925895 0.002411098793 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002140336332 -0.001797197803 -0.002646811843 0 0 --0.001797197803 0.001037395346 0.001079858786 0 0 --0.002646811843 0.001079858786 0.000505192696 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0005889073976 -0.002771900068 -0.004771803919 -0.0001220399951 0.0002129698889 --0.002771900068 0.003340827472 0.004159570854 -0.0004561589549 -0.0005346012315 --0.004771803919 0.004159570854 0.004159675801 -0.0009542723727 -0.0008435976969 --0.0001220399951 -0.0004561589549 -0.0009542723727 -8.413574769e-05 5.538264117e-06 -0.0002129698889 -0.0005346012315 -0.0008435976969 5.538264117e-06 5.44695723e-05 -0.0008168614768 -0.001001305094 -0.001519856696 3.038617866e-05 0.000134272737 --0.001001305094 0.0009461509213 0.00116829499 -0.0001357282033 -0.0001587658339 --0.001519856696 0.00116829499 0.001111688743 -0.0002998074141 -0.0002354392611 -3.038617866e-05 -0.0001357282033 -0.0002998074141 -3.335392601e-05 7.03448895e-06 -0.000134272737 -0.0001587658339 -0.0002354392611 7.03448895e-06 2.195061927e-05 --0.007070865887 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0002632014448 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.882331856e-05 -0.0023971724 -0.0001627423446 0 0 --0.0023971724 0.001929835557 0.004262619888 0 0 --0.0001627423446 0.004262619888 0.0004224275132 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.431263202e-05 -0.0007046473859 -3.717514719e-05 0 0 --0.0007046473859 0.0009398060639 0.0013455751 0 0 --3.717514719e-05 0.0013455751 8.959820167e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0006577287049 0.000511026671 -0.0002615834391 -0.0008838840838 -0.001187044049 -0.000511026671 4.052553203e-05 -7.359038519e-06 -0.001125299729 -0.0003702834842 --0.0002615834391 -7.359038519e-06 -3.587136704e-06 0.0005924816521 0.0001688159763 --0.0008838840838 -0.001125299729 0.0005924816521 0.0006483225907 0.002274221345 --0.001187044049 -0.0003702834842 0.0001688159763 0.002274221345 0.001287676242 -0.000245593438 0.0001604457573 -8.65677118e-05 -0.000353793116 -0.0004069469679 -0.0001604457573 1.286872703e-05 -2.62698343e-06 -0.0003629479892 -0.0001105686921 --8.65677118e-05 -2.62698343e-06 -1.114060641e-06 0.0002020143979 5.236729862e-05 --0.000353793116 -0.0003629479892 0.0002020143979 0.000320696962 0.0008088484519 --0.0004069469679 -0.0001105686921 5.236729862e-05 0.0008088484519 0.0004120507657 -0.6135288793 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001329229507 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.1062341293 -0.001959059969 0.01237410977 0 0 --0.001959059969 0.09906144979 -0.01803475335 0 0 -0.01237410977 -0.01803475335 0.05640959029 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01868220933 0.004908441677 0.01052949782 0 0 -0.004908441677 0.01327021413 -0.01470855351 0 0 -0.01052949782 -0.01470855351 -0.001153441321 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03428740704 -0.02415478254 -0.03462594942 0.001828466233 -0.01122082151 --0.02415478254 0.02235484259 0.01465780136 -0.02816408934 0.001903386868 --0.03462594942 0.01465780136 0.02186181432 0.002197361722 0.02266606409 -0.001828466233 -0.02816408934 0.002197361722 0.05929456695 0.02853733019 --0.01122082151 0.001903386868 0.02266606409 0.02853733019 0.005654729781 -0.008190012667 -0.006246499733 -0.008072509036 0.0005098589589 -0.001729182097 --0.006246499733 0.004258690701 0.001926938407 -0.006618606699 0.002261222042 --0.008072509036 0.001926938407 0.002079054005 0.0005438881429 0.006619196244 -0.0005098589589 -0.006618606699 0.0005438881429 0.01428689232 0.006014885838 --0.001729182097 0.002261222042 0.006619196244 0.006014885838 -0.002702063457 --0.01730301474 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0009303932431 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.660727435e-05 -9.47235618e-05 -0.005988045556 0 0 --9.47235618e-05 0.0001470838877 0.007360966236 0 0 --0.005988045556 0.007360966236 0.01434222578 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.527742515e-05 -2.544830137e-05 -0.001601720509 0 0 --2.544830137e-05 3.920272983e-05 0.00194774704 0 0 --0.001601720509 0.00194774704 0.005160265331 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002037504767 -0.001320332768 0.0008002601038 0.004154589929 -0.0009418764732 --0.001320332768 -4.038949259e-07 -2.12198935e-05 -0.002286454238 4.515557794e-05 -0.0008002601038 -2.12198935e-05 2.533309666e-05 0.001396006217 -4.154160522e-05 -0.004154589929 -0.002286454238 0.001396006217 0.008279091294 -0.001652614018 --0.0009418764732 4.515557794e-05 -4.154160522e-05 -0.001652614018 6.221763042e-05 -0.0007338576712 -0.0003870984032 0.0002081901878 0.001448407463 -0.0002369407909 --0.0003870984032 -1.207533756e-07 -6.299766963e-06 -0.0006703467272 1.34034038e-05 -0.0002081901878 -6.299766963e-06 6.612963913e-06 0.0003634453789 -1.068460468e-05 -0.001448407463 -0.0006703467272 0.0003634453789 0.002815766234 -0.0004164941969 --0.0002369407909 1.34034038e-05 -1.068460468e-05 -0.0004164941969 1.556450442e-05 --0.1021804735 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0117040448 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.04714348199 0.05910998683 -0.07381747001 0 0 -0.05910998683 -0.07380391777 0.09464863219 0 0 --0.07381747001 0.09464863219 -0.1014419885 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001923571259 0.002331543682 -0.002451781463 0 0 -0.002331543682 -0.00279701853 0.003146293454 0 0 --0.002451781463 0.003146293454 -0.002075799509 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0006481351397 -0.002424824567 0.00267950076 0.0004286644509 -0.003579025509 --0.002424824567 -0.002895392055 0.004139260346 -0.001610973144 -0.005539840366 -0.00267950076 0.004139260346 -0.005469483825 0.001291041758 0.007316109367 -0.0004286644509 -0.001610973144 0.001291041758 0.001389675957 -0.001718724444 --0.003579025509 -0.005539840366 0.007316109367 -0.001718724444 -0.009786159126 -0.0001420310409 -0.0003839111323 0.0002602334792 0.0004524639433 -0.0003469298015 --0.0003839111323 -0.0006289185952 0.0008265676125 -0.000183471358 -0.001106248516 -0.0002602334792 0.0008265676125 -0.0009277253278 -0.0001252892614 0.001240753242 -0.0004524639433 -0.000183471358 -0.0001252892614 0.0007929984395 0.0001697183208 --0.0003469298015 -0.001106248516 0.001240753242 0.0001697183208 -0.001659395559 -0.01347956955 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001626195662 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002520618532 0.005911341617 -0.009810654617 0 0 -0.005911341617 -0.003943809272 0.004092219158 0 0 --0.009810654617 0.004092219158 -0.002113775403 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002231713351 0.001854258931 -0.002691951795 0 0 -0.001854258931 -0.001048839197 0.001055303967 0 0 --0.002691951795 0.001055303967 -0.0004094071308 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0005805748197 0.002925613958 -0.004992367788 0.0001613233662 0.0002321240903 -0.002925613958 -0.003433054711 0.004185711011 0.0004817354731 -0.0005293089882 --0.004992367788 0.004185711011 -0.004041152471 -0.001013518054 0.0008085220998 -0.0001613233662 0.0004817354731 -0.001013518054 0.000103381257 8.810449682e-06 -0.0002321240903 -0.0005293089882 0.0008085220998 8.810449682e-06 -5.654466259e-05 --0.0008596385369 0.001050353863 -0.001581089129 -2.526042805e-05 0.0001385520466 -0.001050353863 -0.0009695567216 0.001172415112 0.0001435757576 -0.000156365124 --0.001581089129 0.001172415112 -0.001070169936 -0.000319218974 0.0002235524212 --2.526042805e-05 0.0001435757576 -0.000319218974 3.973844411e-05 8.713566861e-06 -0.0001385520466 -0.000156365124 0.0002235524212 8.713566861e-06 -2.179873674e-05 -0.0074089137 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0003002420965 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.065595304e-05 0.00248694418 -0.0001009115065 0 0 -0.00248694418 -0.002089471919 0.004392285564 0 0 --0.0001009115065 0.004392285564 -0.000260077184 0 0 -0 0 0 0 0 -0 0 0 0 0 --8.946290726e-06 0.0007269788755 -1.702143763e-05 0 0 -0.0007269788755 -0.001003617438 0.001376777886 0 0 --1.702143763e-05 0.001376777886 -3.238471189e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0006890666284 -0.0005231974452 -0.0002696843562 0.0009472949976 -0.001205573899 --0.0005231974452 -2.567062884e-05 -4.845398527e-06 0.001189534703 -0.0003344833272 --0.0002696843562 -4.845398527e-06 2.0146319e-06 0.0006237646552 -0.0001593002282 -0.0009472949976 0.001189534703 0.0006237646552 -0.0007071347459 0.002392523495 --0.001205573899 -0.0003344833272 -0.0001593002282 0.002392523495 -0.001201150711 --0.0002561286132 -0.0001630063813 -8.886276765e-05 0.0003775538994 -0.0004101333424 --0.0001630063813 -8.11461641e-06 -1.719638548e-06 0.0003817123462 -9.735493175e-05 --8.886276765e-05 -1.719638548e-06 6.131057818e-07 0.0002120892749 -4.844501703e-05 -0.0003775538994 0.0003817123462 0.0002120892749 -0.0003473777947 0.0008466215114 --0.0004101333424 -9.735493175e-05 -4.844501703e-05 0.0008466215114 -0.0003766292274 -0.01712306903 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0008087053684 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.3134354e-05 -8.901296103e-05 -0.005556732526 0 0 --8.901296103e-05 0.0001384880138 0.006794852465 0 0 --0.005556732526 0.006794852465 -0.01343839123 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.471434486e-05 -2.453925235e-05 -0.001519130203 0 0 --2.453925235e-05 3.788051393e-05 0.001831974136 0 0 --0.001519130203 0.001831974136 -0.00483196843 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001898787538 0.001240676558 0.0007311307197 -0.003895698932 -0.0008299561401 -0.001240676558 3.795274124e-07 2.016646763e-05 0.002148508608 -4.26935238e-05 -0.0007311307197 2.016646763e-05 2.41267748e-05 0.001256355304 -3.954367966e-05 --0.003895698932 0.002148508608 0.001256355304 -0.007798427677 -0.001416482692 --0.0008299561401 -4.26935238e-05 -3.954367966e-05 -0.001416482692 5.91709573e-05 --0.0006880181962 0.0003749824036 0.0001977373707 -0.001369873273 -0.0002141390027 -0.0003749824036 1.16973295e-07 6.16481682e-06 0.0006493641879 -1.305294879e-05 -0.0001977373707 6.16481682e-06 6.651342401e-06 0.0003395233312 -1.075600072e-05 --0.001369873273 0.0006493641879 0.0003395233312 -0.002681233804 -0.000364653241 --0.0002141390027 -1.305294879e-05 -1.075600072e-05 -0.000364653241 1.569468468e-05 --0.6105253306 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003510599324 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.1149222802 -0.002605505153 0.0204610732 0 0 --0.002605505153 -0.1043493914 -0.02884160759 0 0 -0.0204610732 -0.02884160759 -0.05070770707 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01945471961 -0.005342756247 0.0110289686 0 0 --0.005342756247 -0.01379172248 -0.01526653931 0 0 -0.0110289686 -0.01526653931 -1.471644729e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.03835807575 0.02729831363 -0.03863293056 -0.001741230181 -0.01183042185 -0.02729831363 -0.02377526487 0.01425467814 0.03165331668 0.003954427137 --0.03863293056 0.01425467814 -0.02105416707 0.002396618785 -0.02718645463 --0.001741230181 0.03165331668 0.002396618785 -0.0652097551 0.03144027821 --0.01183042185 0.003954427137 -0.02718645463 0.03144027821 -0.002533581435 --0.008946227195 0.006253324402 -0.007704146063 -0.0008372115482 -0.002384167006 -0.006253324402 -0.004423919068 0.001948460719 0.006479507569 0.00214942574 --0.007704146063 0.001948460719 -0.001948661365 0.001280478127 -0.006028461288 --0.0008372115482 0.006479507569 0.001280478127 -0.01508368525 0.005085044034 --0.002384167006 0.00214942574 -0.006028461288 0.005085044034 0.002349221793 -0.04174530663 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.003928724166 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.3792856905 0.008020548943 0.003559049803 0 0 -0.008020548943 -0.1695931604 0.002746745622 0 0 -0.003559049803 0.002746745622 -0.1955504552 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.008284313165 2.970990676e-05 0.0002103306421 0 0 -2.970990676e-05 -0.006906178026 3.261218541e-05 0 0 -0.0002103306421 3.261218541e-05 -0.007760289067 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001943591066 0.0003234622187 7.410039905e-05 -0.001474140602 -0.0004012933747 -0.0003234622187 0.008742875377 -0.000383026901 0.002384630769 0.0001176789955 -7.410039905e-05 -0.000383026901 0.01064630572 -0.0001233803538 -0.002014384882 --0.001474140602 0.002384630769 -0.0001233803538 -0.01267266107 -0.0003230316241 --0.0004012933747 0.0001176789955 -0.002014384882 -0.0003230316241 -0.01375805971 --0.006244641832 -0.0001608329281 -2.675554247e-05 -0.000279164364 -3.443687416e-05 --0.0001608329281 0.00289987851 -0.0001037115289 0.001153658547 6.034518117e-05 --2.675554247e-05 -0.0001037115289 0.003498588275 -6.636525798e-05 -0.001195781963 --0.000279164364 0.001153658547 -6.636525798e-05 -0.003144084653 2.476633965e-06 --3.443687416e-05 6.034518117e-05 -0.001195781963 2.476633965e-06 -0.003089547103 -0.7134989741 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02026496905 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.05504510091 -0.005852470133 -0.0003240191915 0 0 --0.005852470133 0.1909741935 -0.0001420030571 0 0 --0.0003240191915 -0.0001420030571 0.1917478301 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01849293639 -0.0004170238322 2.020715051e-05 0 0 --0.0004170238322 0.0213165366 -1.869262156e-05 0 0 -2.020715051e-05 -1.869262156e-05 0.02144241404 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.05282294945 -0.00772341292 -0.0008227962647 -0.0004588620999 -2.2915542e-05 --0.00772341292 0.1247282494 -0.0001580155298 0.00672366863 0.0004603045717 --0.0008227962647 -0.0001580155298 0.1259019862 -0.0004737728539 -0.0003272640025 --0.0004588620999 0.00672366863 -0.0004737728539 0.0003036236577 3.228754033e-05 --2.2915542e-05 0.0004603045717 -0.0003272640025 3.228754033e-05 -0.0001468428035 -0.02540421229 0.0002635562033 9.022296189e-05 -0.0001009843469 -6.539297166e-06 -0.0002635562033 0.006780713818 -7.369376521e-06 0.0005477059546 4.217482888e-05 -9.022296189e-05 -7.369376521e-06 0.006854974385 -4.418865184e-05 4.576482883e-05 --0.0001009843469 0.0005477059546 -4.418865184e-05 4.372517575e-05 4.953285138e-06 --6.539297166e-06 4.217482888e-05 4.576482883e-05 4.953285138e-06 -2.545954329e-05 --0.2400371546 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00401189604 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00890236249 0.02515096878 2.189888051e-05 0 0 -0.02515096878 -0.04909823986 2.200835327e-05 0 0 -2.189888051e-05 2.200835327e-05 -0.02664119169 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.003634356558 0.004942636827 5.745550209e-06 0 0 -0.004942636827 0.001528602649 6.676605989e-06 0 0 -5.745550209e-06 6.676605989e-06 -0.005829961313 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.006845482991 -0.004225940499 1.985596061e-05 0.002859519539 1.004233988e-05 --0.004225940499 -0.02155542659 1.420397666e-06 0.01102023366 7.697115155e-06 -1.985596061e-05 1.420397666e-06 0.004793334628 -2.393296815e-05 0.005060373812 -0.002859519539 0.01102023366 -2.393296815e-05 -0.005838661503 -5.196814408e-06 -1.004233988e-05 7.697115155e-06 0.005060373812 -5.196814408e-06 -0.02760444044 -0.004327692052 -0.001037562278 7.248571357e-06 -0.002130335749 3.148870133e-06 --0.001037562278 -0.007829466518 -7.019027313e-08 0.002311048989 2.559094834e-06 -7.248571357e-06 -7.019027313e-08 0.001535057105 -8.467489148e-06 0.001998244481 --0.002130335749 0.002311048989 -8.467489148e-06 0.002033115267 8.716464943e-07 -3.148870133e-06 2.559094834e-06 0.001998244481 8.716464943e-07 -0.006895429836 --0.2654535485 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0005326498008 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01676501634 -0.01340874653 -0.02387007404 0 0 --0.01340874653 -0.03814796113 -0.003835237102 0 0 --0.02387007404 -0.003835237102 -0.0432070941 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.005623785876 -0.002223251435 -0.003950037207 0 0 --0.002223251435 -0.004419884307 0.004751677397 0 0 --0.003950037207 0.004751677397 0.001365061067 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01118758162 0.004353053022 0.007704317447 0.0002385164148 -0.0002748215371 -0.004353053022 -0.002408084174 -0.01614793598 -0.0002244933613 -0.008071072594 -0.007704317447 -0.01614793598 -0.02253660117 0.008521020938 -0.009068607366 -0.0002385164148 -0.0002244933613 0.008521020938 -0.02707095922 -0.01549154687 --0.0002748215371 -0.008071072594 -0.009068607366 -0.01549154687 -0.01125542571 -0.005722293244 0.0009262074233 0.001629428538 0.001619132221 -0.002591917989 -0.0009262074233 -0.0008969489068 -0.005316041966 -0.00109975104 -0.001963692919 -0.001629428538 -0.005316041966 -0.007507627122 0.001995313622 -0.001128319354 -0.001619132221 -0.00109975104 0.001995313622 -0.00518402746 -0.004820636734 --0.002591917989 -0.001963692919 -0.001128319354 -0.004820636734 -0.0002662328894 --0.2683876848 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001553430629 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02144153726 -0.01419368623 0.02535706789 0 0 --0.01419368623 -0.04033360633 -0.0004855059884 0 0 -0.02535706789 -0.0004855059884 -0.04003339072 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.006726492854 -0.001827804949 0.003261704795 0 0 --0.001827804949 -0.004531926398 -0.005212009633 0 0 -0.003261704795 -0.005212009633 0.001855634486 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01493640765 0.005129453651 -0.009031534702 0.001712910031 0.002672454147 -0.005129453651 -0.003106025879 0.01952341511 -0.0007218979625 0.008978654943 --0.009031534702 0.01952341511 -0.02746500496 -0.009433938253 -0.009532195116 -0.001712910031 -0.0007218979625 -0.009433938253 -0.02941657937 0.01878513158 -0.002672454147 0.008978654943 -0.009532195116 0.01878513158 -0.01032328643 -0.006650354399 0.0008416811017 -0.001455242497 0.001849273664 0.002961488173 -0.0008416811017 -0.001047656697 0.006127540637 -0.001564969624 0.001906079872 --0.001455242497 0.006127540637 -0.008678269059 -0.001891477221 -0.0005570685604 -0.001849273664 -0.001564969624 -0.001891477221 -0.005407130154 0.004938343341 -0.002961488173 0.001906079872 -0.0005570685604 0.004938343341 -0.0003965060324 --0.1562055639 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01021895253 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.2588298074 -0.005729153276 -0.001405480234 0 0 --0.005729153276 -6.68218301e-05 -3.128193445e-05 0 0 --0.001405480234 -3.128193445e-05 -7.631451959e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00107495565 -0.0001202291131 -2.316149751e-05 0 0 --0.0001202291131 8.019790801e-07 -1.206891859e-06 0 0 --2.316149751e-05 -1.206891859e-06 -3.646954808e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01818440542 -0.00110391606 -7.855503528e-05 -0.0002476692709 -6.655004411e-05 --0.00110391606 -6.42011974e-05 -3.360343504e-06 -1.787253331e-05 -4.796164623e-06 --7.855503528e-05 -3.360343504e-06 3.656386248e-07 -2.490091401e-06 -6.659575503e-07 --0.0002476692709 -1.787253331e-05 -2.490091401e-06 -5.123064335e-07 -1.439913204e-07 --6.655004411e-05 -4.796164623e-06 -6.659575503e-07 -1.439913204e-07 -4.037862307e-08 -0.002241260292 1.255846761e-05 -6.629657726e-06 2.578343767e-05 5.571172345e-06 -1.255846761e-05 -3.66949877e-06 -2.315880881e-07 -1.000325758e-06 -2.23325942e-07 --6.629657726e-06 -2.315880881e-07 9.501389522e-09 -1.357869182e-07 -2.971353587e-08 -2.578343767e-05 -1.000325758e-06 -1.357869182e-07 -5.381789242e-08 -1.382655902e-08 -5.571172345e-06 -2.23325942e-07 -2.971353587e-08 -1.382655902e-08 -3.476262911e-09 --0.6584727228 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01371285826 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04950747819 0.008167821295 -8.385207326e-05 0 0 -0.008167821295 -0.2255107103 0.0005019614549 0 0 --8.385207326e-05 0.0005019614549 -0.2299082131 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02364689184 0.0009983436447 -0.0001521396352 0 0 -0.0009983436447 -0.03069362797 0.0001023625547 0 0 --0.0001521396352 0.0001023625547 -0.03173163509 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.05262944836 0.009013102683 0.0006929893957 0.0008025528944 2.176237553e-05 -0.009013102683 -0.1447023104 0.0004616393817 -0.01377697302 -0.000556529447 -0.0006929893957 0.0004616393817 -0.1492434347 0.0006001094071 0.006810144412 -0.0008025528944 -0.01377697302 0.0006001094071 -0.001261103559 -7.466690688e-05 -2.176237553e-05 -0.000556529447 0.006810144412 -7.466690688e-05 -0.0003016090533 --0.02560287707 0.0001445521719 -0.0001480278078 0.0002428144823 1.265830891e-05 -0.0001445521719 -0.01243582511 8.704513694e-05 -0.002629356878 -6.850605826e-05 --0.0001480278078 8.704513694e-05 -0.01344875294 7.926580273e-05 0.00187553626 -0.0002428144823 -0.002629356878 7.926580273e-05 -0.0003865774077 -1.737312292e-05 -1.265830891e-05 -6.850605826e-05 0.00187553626 -1.737312292e-05 -0.0001655066031 -0.01538130719 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007403707906 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.009951530502 -0.005969902898 -4.02816481e-05 0 0 --0.005969902898 0.003555729078 -3.270780155e-05 0 0 --4.02816481e-05 -3.270780155e-05 -1.528257083e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.003084711369 -0.002109812916 -1.248778944e-05 0 0 --0.002109812916 0.0005769898029 -1.082974673e-05 0 0 --1.248778944e-05 -1.082974673e-05 -4.796117284e-08 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.189516903e-05 -0.002388002361 -4.998005603e-06 -0.001479318256 -6.324311984e-06 --0.002388002361 -0.006860602013 -1.221499181e-05 -0.001020420775 -3.018202358e-05 --4.998005603e-06 -1.221499181e-05 -2.106008905e-08 -7.802306427e-07 -5.759335834e-08 --0.001479318256 -0.001020420775 -7.802306427e-07 0.001409659663 -1.029700673e-05 --6.324311984e-06 -3.018202358e-05 -5.759335834e-08 -1.029700673e-05 -1.111779401e-07 -3.080651691e-05 -0.0007370170826 -1.561583287e-06 -0.0004910090207 -1.889534272e-06 --0.0007370170826 -0.002386863167 -4.218080457e-06 -0.0004733570426 -1.038258526e-05 --1.561583287e-06 -4.218080457e-06 -7.194357224e-09 -4.906882919e-07 -1.966834399e-08 --0.0004910090207 -0.0004733570426 -4.906882919e-07 0.0003663657508 -3.815964159e-06 --1.889534272e-06 -1.038258526e-05 -1.966834399e-08 -3.815964159e-06 -3.845626157e-08 -0.01838434544 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001116579548 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01359954617 0.00314297796 0.005979930408 0 0 -0.00314297796 0.001126464304 0.001996376698 0 0 -0.005979930408 0.001996376698 0.003530572094 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.004125389127 0.001143412592 0.002154760322 0 0 -0.001143412592 0.0001680603284 0.0002898607831 0 0 -0.002154760322 0.0002898607831 0.0004971323014 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007300594499 0.001786001558 0.003302975172 0.0009101834062 -0.001370409278 -0.001786001558 -0.001927330125 -0.003538560033 -0.0002382087233 0.0003006611219 -0.003302975172 -0.003538560033 -0.006496145849 -0.0004195400121 0.0005238088563 -0.0009101834062 -0.0002382087233 -0.0004195400121 0.0004844422209 -0.0007766218534 --0.001370409278 0.0003006611219 0.0005238088563 -0.0007766218534 0.001241796168 --0.0001747935906 0.0005411685172 0.001001104144 0.0002976372477 -0.0004500026184 -0.0005411685172 -0.0006620502856 -0.001215475223 -0.0001288799707 0.0001803659701 -0.001001104144 -0.001215475223 -0.002231308818 -0.0002311817693 0.0003225907589 -0.0002976372477 -0.0001288799707 -0.0002311817693 0.0001131024706 -0.0001823341114 --0.0004500026184 0.0001803659701 0.0003225907589 -0.0001823341114 0.0002930150938 -0.01974726899 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001310345664 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01519830182 0.003358086455 -0.00653550585 0 0 -0.003358086455 0.001269032688 -0.002215541931 0 0 --0.00653550585 -0.002215541931 0.003849211968 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.004546588968 0.001234841704 -0.002367999443 0 0 -0.001234841704 0.0001698835189 -0.0002798331396 0 0 --0.002367999443 -0.0002798331396 0.000452694991 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0009304808591 0.002009790653 -0.003742071169 0.0009898868048 0.001459340324 -0.002009790653 -0.00210505339 0.00388933886 -0.0002654769854 -0.0002988523601 --0.003742071169 0.00388933886 -0.007185184664 0.0004690852496 0.0005180250985 -0.0009898868048 -0.0002654769854 0.0004690852496 0.0005152276093 0.0008370649026 -0.001459340324 -0.0002988523601 0.0005180250985 0.0008370649026 0.001352112241 --0.0002227445017 0.0005940086071 -0.001106209794 0.0003171753707 0.0004706840567 -0.0005940086071 -0.0007167880343 0.001324117478 -0.00014929466 -0.0001985152765 --0.001106209794 0.001324117478 -0.00244573885 0.0002694013573 0.0003566032333 -0.0003171753707 -0.00014929466 0.0002694013573 0.0001077619936 0.0001784179578 -0.0004706840567 -0.0001985152765 0.0003566032333 0.0001784179578 0.000292836366 -0.03200799843 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004367530025 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.03403609636 -0.02721998158 0.0002690125184 0 0 --0.02721998158 0.1094613691 -0.0003350653377 0 0 -0.0002690125184 -0.0003350653377 1.806224936e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001958103789 -0.001710728051 2.214371113e-05 0 0 --0.001710728051 0.004584211074 -2.053572202e-05 0 0 -2.214371113e-05 -2.053572202e-05 1.123976198e-08 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004622153645 -0.0004930054362 4.446158613e-05 -0.006370771706 -4.118559305e-05 --0.0004930054362 -0.005468947907 4.526076571e-05 -0.001746112837 -4.318597604e-05 -4.446158613e-05 4.526076571e-05 -2.514252838e-08 -3.931542043e-05 3.470137227e-08 --0.006370771706 -0.001746112837 -3.931542043e-05 0.007715326753 3.586504312e-05 --4.118559305e-05 -4.318597604e-05 3.470137227e-08 3.586504312e-05 -4.300266914e-08 -0.001222835734 -0.0001030430846 9.515627674e-06 -0.001736937821 -7.997303713e-06 --0.0001030430846 -0.001833719435 1.136311231e-05 -0.000764142404 -9.832835426e-06 -9.515627674e-06 1.136311231e-05 -6.275466415e-09 -7.504305456e-06 7.141631321e-09 --0.001736937821 -0.000764142404 -7.504305456e-06 0.00201720953 6.167135156e-06 --7.997303713e-06 -9.832835426e-06 7.141631321e-09 6.167135156e-06 -7.61503084e-09 --0.01619919071 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001873495521 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001050910503 0.008721781755 -4.447230746e-05 0 0 -0.008721781755 0.02303703353 -4.249127218e-05 0 0 --4.447230746e-05 -4.249127218e-05 -2.795414815e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001316598999 0.003096510282 -8.757690158e-06 0 0 -0.003096510282 0.006311832064 -9.536467519e-06 0 0 --8.757690158e-06 -9.536467519e-06 -6.775913255e-08 0 0 -0 0 0 0 0 -0 0 0 0 0 --4.489732962e-07 -1.875702336e-05 -2.829820271e-07 -2.819835662e-05 -4.118295767e-08 --1.875702336e-05 0.01295155385 -2.563265252e-05 0.004538489961 3.574036576e-05 --2.829820271e-07 -2.563265252e-05 -1.644739661e-07 -2.352089129e-05 -6.362298277e-08 --2.819835662e-05 0.004538489961 -2.352089129e-05 0.0006081800677 1.30045876e-05 --4.118295767e-08 3.574036576e-05 -6.362298277e-08 1.30045876e-05 9.839206837e-08 --1.454471461e-05 0.0003218853604 9.462348092e-07 0.0002256022889 8.51231544e-07 -0.0003218853604 0.003704780549 -5.631516134e-06 0.001352381483 1.036800237e-05 -9.462348092e-07 -5.631516134e-06 -3.991441599e-08 -5.706107154e-06 -1.408585376e-08 -0.0002256022889 0.001352381483 -5.706107154e-06 0.0002187753494 3.910779683e-06 -8.51231544e-07 1.036800237e-05 -1.408585376e-08 3.910779683e-06 2.895751811e-08 -0.2248666775 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004744146172 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.02390670354 -0.02015334772 0.0001474600498 0 0 --0.02015334772 0.04548421777 -2.045015218e-05 0 0 -0.0001474600498 -2.045015218e-05 0.02650125921 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.008245931651 -0.003333207761 4.73800175e-05 0 0 --0.003333207761 -0.002133825031 -6.361930095e-06 0 0 -4.73800175e-05 -6.361930095e-06 0.005785872262 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00687367184 0.007658977664 -2.900873123e-05 -0.001355687808 1.715944385e-05 -0.007658977664 0.03167077676 1.451450602e-05 -0.01045802866 0.000130265427 --2.900873123e-05 1.451450602e-05 -0.005754223822 3.282846424e-05 -0.006844745253 --0.001355687808 -0.01045802866 3.282846424e-05 0.004417120242 5.205873825e-06 -1.715944385e-05 0.000130265427 -0.006844745253 5.205873825e-06 0.02747588932 --0.004377751258 0.002186716612 -1.121852858e-05 0.002631903288 6.256068249e-06 -0.002186716612 0.01128201931 6.169883532e-06 -0.002071827564 4.497461797e-05 --1.121852858e-05 6.169883532e-06 -0.001868907115 1.301353048e-05 -0.00263663304 -0.002631903288 -0.002071827564 1.301353048e-05 -0.002405265795 -9.468596941e-07 -6.256068249e-06 4.497461797e-05 -0.00263663304 -9.468596941e-07 0.006850884451 -0.0001315666193 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --5.897409548e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002604197657 -0.002486133476 0.0006910005687 0 0 --0.002486133476 -0.00017218227 -2.327140866e-05 0 0 -0.0006910005687 -2.327140866e-05 2.853590915e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007479079835 -0.0008438340973 0.000122391193 0 0 --0.0008438340973 -5.682267607e-05 -1.159621374e-05 0 0 -0.000122391193 -1.159621374e-05 4.9988486e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 --3.520085972e-05 0.0006008017281 0.0003682542878 4.8407043e-05 4.848641385e-05 -0.0006008017281 0.0001513491294 -0.0009198030448 -0.001335690307 -0.001127050591 -0.0003682542878 -0.0009198030448 -0.001085893271 -0.0007691177436 -0.0006616688591 -4.8407043e-05 -0.001335690307 -0.0007691177436 -4.162205182e-05 -5.201300587e-05 -4.848641385e-05 -0.001127050591 -0.0006616688591 -5.201300587e-05 -5.816631165e-05 --1.336077283e-05 0.0002321553985 0.0001402011222 1.616008111e-05 1.821059411e-05 -0.0002321553985 7.851223982e-05 -0.0002784075148 -0.0004409271661 -0.0004317406731 -0.0001402011222 -0.0002784075148 -0.0003390861276 -0.0002535936202 -0.0002515965139 -1.616008111e-05 -0.0004409271661 -0.0002535936202 -1.331062791e-05 -1.75358235e-05 -1.821059411e-05 -0.0004317406731 -0.0002515965139 -1.75358235e-05 -2.158732471e-05 -8.583867894e-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 --4.652725902e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00294304643 -0.002786956307 -0.0007579854123 0 0 --0.002786956307 -0.0001173349041 1.598880279e-05 0 0 --0.0007579854123 1.598880279e-05 1.828638935e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0008209509319 -0.0009390199295 -0.0001163211624 0 0 --0.0009390199295 -3.830752273e-05 8.118696821e-06 0 0 --0.0001163211624 8.118696821e-06 2.75900848e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.454787471e-05 0.0006984671784 -0.0004068628056 3.298514643e-05 -3.328449525e-05 -0.0006984671784 0.0001796909968 0.001040201979 -0.001499040709 0.001287483311 --0.0004068628056 0.001040201979 -0.00120746182 0.0008412033717 -0.0007305338383 -3.298514643e-05 -0.001499040709 0.0008412033717 -2.865583957e-05 3.520932361e-05 --3.328449525e-05 0.001287483311 -0.0007305338383 3.520932361e-05 -3.935125517e-05 --9.245515484e-06 0.0002681237703 -0.0001545902463 1.074750882e-05 -1.241856506e-05 -0.0002681237703 9.582535534e-05 0.0003004742925 -0.0004803228921 0.0004908452284 --0.0001545902463 0.0003004742925 -0.0003622638781 0.0002693153347 -0.0002770966326 -1.074750882e-05 -0.0004803228921 0.0002693153347 -8.880528137e-06 1.163586847e-05 --1.241856506e-05 0.0004908452284 -0.0002770966326 1.163586847e-05 -1.451038205e-05 -0.03974244676 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004888042175 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.04133439192 0.01164452426 0.02164970031 0 0 -0.01164452426 0.02934974977 0.05306089734 0 0 -0.02164970031 0.05306089734 0.09592008905 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00248437382 0.0008309865459 0.001613978857 0 0 -0.0008309865459 0.001152055733 0.002117130192 0 0 -0.001613978857 0.002117130192 0.00388819781 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0055531639 0.0005974174638 0.001232659073 0.003860088398 -0.006551705701 -0.0005974174638 -0.001498133763 -0.002752702508 -0.0002774390728 0.0005736186491 -0.001232659073 -0.002752702508 -0.005054728872 -0.0004224023336 0.0009066408146 -0.003860088398 -0.0002774390728 -0.0004224023336 0.002376082404 -0.00398736734 --0.006551705701 0.0005736186491 0.0009066408146 -0.00398736734 0.006683680976 -0.001362265534 0.0001264562746 0.0002600788017 0.0009778311161 -0.001645404063 -0.0001264562746 -0.0005025150089 -0.000917791644 -0.0001760568516 0.0003167026614 -0.0002600788017 -0.000917791644 -0.001675643185 -0.0003020502366 0.0005457203661 -0.0009778311161 -0.0001760568516 -0.0003020502366 0.0005634385368 -0.0009374914767 --0.001645404063 0.0003167026614 0.0005457203661 -0.0009374914767 0.001558855846 --0.01885700177 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002269397175 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002178382992 -0.005365954185 -0.009666249475 0 0 --0.005365954185 0.005656707475 0.01031785705 0 0 --0.009666249475 0.01031785705 0.01881476161 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001862020939 -0.001796062127 -0.003280233986 0 0 --0.001796062127 0.001511398084 0.002771292452 0 0 --0.003280233986 0.002771292452 0.005080806637 0 0 -0 0 0 0 0 -0 0 0 0 0 -9.154463123e-05 -0.000596955955 -0.001084034811 -0.0001544483157 0.0002160522757 --0.000596955955 0.003431044388 0.006263915228 0.001222767065 -0.001779472515 --0.001084034811 0.006263915228 0.01143303612 0.002204891431 -0.003204636667 --0.0001544483157 0.001222767065 0.002204891431 0.0001598691962 -0.000191414787 -0.0002160522757 -0.001779472515 -0.003204636667 -0.000191414787 0.0002123823103 -9.567020039e-05 -0.0003499848155 -0.0006464291863 -0.000179586889 0.0002694420716 --0.0003499848155 0.0009544264112 0.001756173647 0.0003552246492 -0.0005195522356 --0.0006464291863 0.001756173647 0.003231229751 0.0006499300995 -0.0009500813839 --0.000179586889 0.0003552246492 0.0006499300995 5.772782653e-05 -7.419841533e-05 -0.0002694420716 -0.0005195522356 -0.0009500813839 -7.419841533e-05 9.214758287e-05 --0.000128174503 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.771086726e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002453200904 0.0004525009189 0.002140879859 0 0 -0.0004525009189 3.498237942e-05 8.625930004e-05 0 0 -0.002140879859 8.625930004e-05 8.618675902e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007421548331 0.0002364705603 0.0006979139002 0 0 -0.0002364705603 1.70359864e-05 2.890948894e-05 0 0 -0.0006979139002 2.890948894e-05 2.719489277e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.03448214e-05 -0.0004968650058 -0.0003054069279 -1.474043187e-05 -5.806856531e-05 --0.0004968650058 -0.00157318982 -2.671307291e-05 0.0002155345249 0.001510450534 --0.0003054069279 -2.671307291e-05 0.000470474462 0.0001349831983 0.0008742258377 --1.474043187e-05 0.0002155345249 0.0001349831983 7.0916841e-06 2.969623204e-05 --5.806856531e-05 0.001510450534 0.0008742258377 2.969623204e-05 7.886266497e-05 -1.167739425e-05 -0.0001965007128 -0.0001191674882 -6.362846881e-06 -2.079395371e-05 --0.0001965007128 -0.0005159095854 -4.792697998e-07 0.0001109815591 0.000542098025 --0.0001191674882 -4.792697998e-07 0.000163629399 6.698492526e-05 0.000313047785 --6.362846881e-06 0.0001109815591 6.698492526e-05 3.463023485e-06 1.113368824e-05 --2.079395371e-05 0.000542098025 0.000313047785 1.113368824e-05 2.736492508e-05 -0.2468745705 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001658105303 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.03621773976 0.01075730677 0.01917881484 0 0 -0.01075730677 0.03719316903 0.001829758175 0 0 -0.01917881484 0.001829758175 0.03971186889 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01143064044 0.001357579524 0.002416963992 0 0 -0.001357579524 0.004308507137 -0.005038774626 0 0 -0.002416963992 -0.005038774626 -0.001843968432 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01040413765 -0.006758594948 -0.01225969807 -0.001166259135 0.001604859108 --0.006758594948 0.004201986135 0.02175789887 0.001769996717 0.008891423206 --0.01225969807 0.02175789887 0.03149775006 -0.009419525111 0.008409827261 --0.001166259135 0.001769996717 -0.009419525111 0.02667218332 0.01632827365 -0.001604859108 0.008891423206 0.008409827261 0.01632827365 0.01007153204 --0.005527320256 -0.001705873203 -0.003108542152 -0.001921826535 0.003025896935 --0.001705873203 0.00148621059 0.007177555353 0.001659910504 0.002213400943 --0.003108542152 0.007177555353 0.01047503413 -0.002268198352 0.0008366766948 --0.001921826535 0.001659910504 -0.002268198352 0.005099677432 0.005022640814 -0.003025896935 0.002213400943 0.0008366766948 0.005022640814 -5.265393662e-06 --6.372876551e-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 -3.426733069e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00346133651 0.002118398016 0.002056162176 0 0 -0.002118398016 5.41724938e-07 3.49147489e-05 0 0 -0.002056162176 3.49147489e-05 6.817940285e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0009692823103 0.000585852661 0.0007791372244 0 0 -0.000585852661 1.443876465e-07 9.331850942e-06 0 0 -0.0007791372244 9.331850942e-06 2.4801671e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.951207996e-05 -2.000243252e-05 -0.0009335666236 3.285510127e-05 -8.840999375e-06 --2.000243252e-05 1.907157823e-05 0.001214141336 -3.017704743e-05 6.751275781e-06 --0.0009335666236 0.001214141336 -0.001448064288 -0.002200388704 0.0008376587452 -3.285510127e-05 -3.017704743e-05 -0.002200388704 4.675898764e-05 -9.236191026e-06 --8.840999375e-06 6.751275781e-06 0.0008376587452 -9.236191026e-06 2.774013187e-07 -7.272917568e-06 -6.636871194e-06 -0.0003561614369 1.171655559e-05 -2.279207527e-06 --6.636871194e-06 5.908600932e-06 0.0003763660788 -1.006494489e-05 1.771232552e-06 --0.0003561614369 0.0003763660788 -0.0003947212853 -0.0007915294824 0.0002188181561 -1.171655559e-05 -1.006494489e-05 -0.0007915294824 1.621661584e-05 -2.362946896e-06 --2.279207527e-06 1.771232552e-06 0.0002188181561 -2.362946896e-06 6.992911629e-08 -0.04270981207 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004892104496 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0450853948 0.01328406165 -0.02407228239 0 0 -0.01328406165 0.03084886328 -0.05544129569 0 0 --0.02407228239 -0.05544129569 0.09963781701 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002766879906 0.0009702607118 -0.001823291713 0 0 -0.0009702607118 0.00116910924 -0.002127999764 0 0 --0.001823291713 -0.002127999764 0.003872444712 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.006065496806 0.0006760418136 -0.001272666023 0.004232493181 0.007060734713 -0.0006760418136 -0.001711592509 0.003093828987 -0.0003432063259 -0.0006433155039 --0.001272666023 0.003093828987 -0.005591917342 0.0005875881992 0.001108375324 -0.004232493181 -0.0003432063259 0.0005875881992 0.002581764217 0.004274677912 -0.007060734713 -0.0006433155039 0.001108375324 0.004274677912 0.007074462111 -0.001418280272 0.0001248612705 -0.0002362092292 0.001012487631 0.001682267069 -0.0001248612705 -0.0005599745671 0.001010371649 -0.0002124589661 -0.0003669916812 --0.0002362092292 0.001010371649 -0.001822948316 0.000376055587 0.0006500841691 -0.001012487631 -0.0002124589661 0.000376055587 0.0005634904041 0.0009288615342 -0.001682267069 -0.0003669916812 0.0006500841691 0.0009288615342 0.001530702348 --0.01997005879 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002409218102 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002308329224 -0.005671178731 0.01011859305 0 0 --0.005671178731 0.005842775819 -0.01063532417 0 0 -0.01011859305 -0.01063532417 0.01934590095 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001975335508 -0.001881767968 0.003420924161 0 0 --0.001881767968 0.001553861223 -0.002845425917 0 0 -0.003420924161 -0.002845425917 0.005208482165 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001024054385 -0.0006739767841 0.001214124662 -0.0001610441222 -0.0002148579263 --0.0006739767841 0.003591462773 -0.006541906428 0.001292047367 0.001839957025 -0.001214124662 -0.006541906428 0.0119085768 -0.002307707093 -0.003278180119 --0.0001610441222 0.001292047367 -0.002307707093 0.0001894306377 0.000220789566 --0.0002148579263 0.001839957025 -0.003278180119 0.000220789566 0.0002359711545 -0.0001175392949 -0.00038000892 0.0007032877974 -0.0001878455354 -0.0002764123149 --0.00038000892 0.000995904328 -0.001830217891 0.0003740447916 0.0005355154626 -0.0007032877974 -0.001830217891 0.003362588721 -0.0006793011432 -0.0009712056191 --0.0001878455354 0.0003740447916 -0.0006793011432 6.634905601e-05 8.270747343e-05 --0.0002764123149 0.0005355154626 -0.0009712056191 8.270747343e-05 9.878960603e-05 --8.265558612e-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 -3.349571539e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00259960964 0.0005197809205 -0.002269957142 0 0 -0.0005197809205 2.331064083e-05 -5.510969958e-05 0 0 --0.002269957142 -5.510969958e-05 5.389854859e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007847088916 0.00026391329 -0.0007385516784 0 0 -0.00026391329 1.11965925e-05 -1.839441811e-05 0 0 --0.0007385516784 -1.839441811e-05 1.694211997e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.973919696e-05 -0.0005481697977 0.0003195577042 -9.773042728e-06 3.719109357e-05 --0.0005481697977 -0.001681558333 2.299316104e-05 0.0002426812466 -0.001618231053 -0.0003195577042 2.299316104e-05 0.0004904357927 -0.0001430984638 0.0009102031959 --9.773042728e-06 0.0002426812466 -0.0001430984638 4.789914393e-06 -1.940828472e-05 -3.719109357e-05 -0.001618231053 0.0009102031959 -1.940828472e-05 4.979963942e-05 -7.575294664e-06 -0.0002156365385 0.0001246990287 -4.195671395e-06 1.32785496e-05 --0.0002156365385 -0.0005497800431 -1.402343002e-06 0.000123154059 -0.0005792491526 -0.0001246990287 -1.402343002e-06 0.0001702278057 -7.10402783e-05 0.0003253604421 --4.195671395e-06 0.000123154059 -7.10402783e-05 2.321754591e-06 -7.24251088e-06 -1.32785496e-05 -0.0005792491526 0.0003253604421 -7.24251088e-06 1.721891596e-05 -6.30660071e-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 --2.978544233e-06 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.003248979598 0.001994595281 -0.001979671775 0 0 -0.001994595281 5.100654589e-07 3.237363868e-05 0 0 --0.001979671775 3.237363868e-05 -6.388279641e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0009335574577 0.0005660934152 -0.0007440782991 0 0 -0.0005660934152 1.395177907e-07 8.8326599e-06 0 0 --0.0007440782991 8.8326599e-06 -2.322378475e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --1.818366016e-05 1.873863957e-05 0.0008841511631 -3.084772881e-05 -8.11470633e-06 -1.873863957e-05 -1.792096476e-05 -0.001151599812 2.839567521e-05 6.038857082e-06 -0.0008841511631 -0.001151599812 -0.001379109765 0.002087161929 0.0007966401073 --3.084772881e-05 2.839567521e-05 0.002087161929 -4.404427616e-05 -8.091916708e-06 --8.11470633e-06 6.038857082e-06 0.0007966401073 -8.091916708e-06 2.638175301e-07 --6.818624132e-06 6.34186427e-06 0.0003378083481 -1.110301503e-05 -2.186921688e-06 -6.34186427e-06 -5.723637259e-06 -0.0003676306491 9.647672527e-06 1.666678678e-06 -0.0003378083481 -0.0003676306491 -0.0003970120593 0.0007576601192 0.0002206484143 --1.110301503e-05 9.647672527e-06 0.0007576601192 -1.544181404e-05 -2.134145333e-06 --2.186921688e-06 1.666678678e-06 0.0002206484143 -2.134145333e-06 7.051399781e-08 -0.2486183059 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0002418589728 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.04304422202 0.01150415806 -0.0201197388 0 0 -0.01150415806 0.03918136683 0.002650144368 0 0 --0.0201197388 0.002650144368 0.03609771296 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01306331506 0.0009461305137 -0.001556521414 0 0 -0.0009461305137 0.004400206015 0.005474392225 0 0 --0.001556521414 0.005474392225 -0.002335890156 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.014000891 -0.00781770905 0.0141140353 -0.002768637084 -0.004089668976 --0.00781770905 0.005012316694 -0.02566709728 0.002516592704 -0.00997403717 -0.0141140353 -0.02566709728 0.03730571573 0.01032403834 0.008907045111 --0.002768637084 0.002516592704 0.01032403834 0.02888324861 -0.01964816961 --0.004089668976 -0.00997403717 0.008907045111 -0.01964816961 0.009010248044 --0.006425637299 -0.001697176608 0.003072203974 -0.002188913099 -0.003417474458 --0.001697176608 0.001662710775 -0.008128498486 0.002204652121 -0.002200181057 -0.003072203974 -0.008128498486 0.01188099307 0.002144290012 0.0002587438037 --0.002188913099 0.002204652121 0.002144290012 0.005292032073 -0.00512603422 --0.003417474458 -0.002200181057 0.0002587438037 -0.00512603422 0.0001181101193 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gedm_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gedm_ref.dat deleted file mode 100644 index 05769bc66e..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gedm_ref.dat +++ /dev/null @@ -1,30 +0,0 @@ --0.0123152 --0.00174896 --0.000490982 0.000185466 0.000301842 0.000185466 0.00229147 0.000947966 0.000301842 0.000947966 -0.00369704 -0.000239378 0.000248976 0.000122279 0.000248976 0.00231572 0.000302943 0.000122279 0.000302943 -0.000380869 --0.00532973 -0.00097044 0.000112163 -0.001209 -0.000182273 -0.00097044 0.00172838 0.000543801 0.00213172 -0.000214823 0.000112163 0.000543801 0.000260905 0.00027027 -0.000495474 -0.001209 0.00213172 0.00027027 0.00363753 -0.000727803 -0.000182273 -0.000214823 -0.000495474 -0.000727803 0.00055767 -0.000269229 0.000363932 0.000107088 0.000495872 -8.72832e-05 0.000363932 -0.0011638 -0.00111668 -0.000482061 -0.000541426 0.000107088 -0.00111668 0.000791301 0.000438318 0.000181878 0.000495872 -0.000482061 0.000438318 -0.00160465 0.000770512 -8.72832e-05 -0.000541426 0.000181878 0.000770512 0.00068476 --0.0124649 --0.00164849 --0.000142048 6.46642e-05 7.10416e-05 6.46642e-05 0.00300899 0.000702492 7.10416e-05 0.000702492 -0.00296457 -0.00243575 0.000211441 -1.20241e-05 0.000211441 -0.000295339 -0.00014708 -1.20241e-05 -0.00014708 0.000687397 -0.00540957 0.000217344 -2.97995e-05 4.08288e-06 3.45642e-06 0.000217344 0.000335716 0.000962472 -3.33602e-05 -4.38545e-05 -2.97995e-05 0.000962472 -0.00539522 9.5031e-05 0.000192357 4.08288e-06 -3.33602e-05 9.5031e-05 0.000725737 0.000130217 3.45642e-06 -4.38545e-05 0.000192357 0.000130217 -0.000259694 --0.00188718 -0.000126929 -1.16244e-06 -4.26169e-06 -8.75969e-06 -0.000126929 0.000725236 4.47908e-05 0.000143966 0.000116627 -1.16244e-06 4.47908e-05 0.00050641 -6.87989e-05 3.37606e-06 -4.26169e-06 0.000143966 -6.87989e-05 -0.000754452 -0.00126491 -8.75969e-06 0.000116627 3.37606e-06 -0.00126491 0.000630072 --0.0129652 --0.0017353 --0.00297552 0.000980399 -0.000520382 0.000980399 -0.0004614 0.000187874 -0.000520382 0.000187874 0.00321702 --0.000141097 0.000282264 -0.000259846 0.000282264 0.000487295 0.000115772 -0.000259846 0.000115772 0.00259453 --0.000210306 -0.00341164 0.000238019 -0.00170388 -0.000343658 -0.00341164 -0.00334934 -0.000205588 0.00254571 -0.000221214 0.000238019 -0.000205588 0.000410763 0.000282241 6.05991e-05 -0.00170388 0.00254571 0.000282241 0.00384763 0.000131777 -0.000343658 -0.000221214 6.05991e-05 0.000131777 0.000617126 -0.000688573 0.000238199 -0.000541112 0.00114103 0.000144063 0.000238199 7.92607e-05 0.000242875 -0.00114076 -7.7933e-05 -0.000541112 0.000242875 -0.00127667 -0.00040977 0.000513302 0.00114103 -0.00114076 -0.00040977 -0.000767995 9.78296e-05 0.000144063 -7.7933e-05 0.000513302 9.78296e-05 0.000529913 --0.0128504 --0.00171635 --0.00281276 -4.92685e-06 -0.00119588 -4.92685e-06 0.00249763 -0.00144355 -0.00119588 -0.00144355 0.00012916 --3.77755e-05 0.000131551 -0.000476648 0.000131551 0.00224135 -0.000747162 -0.000476648 -0.000747162 0.000712668 --0.000778033 0.00169461 0.00333471 -4.31671e-05 -0.000811796 0.00169461 -0.000669257 -0.000927765 0.000968866 -0.00154283 0.00333471 -0.000927765 -0.00127674 0.00176338 -0.00209952 -4.31671e-05 0.000968866 0.00176338 0.00113829 -0.00122188 -0.000811796 -0.00154283 -0.00209952 -0.00122188 0.0027828 --0.000537141 0.000374702 -0.00118079 0.000187866 0.000202991 0.000374702 0.000960768 -0.00027912 -0.000404561 0.000905294 -0.00118079 -0.00027912 -0.000431822 -5.2106e-05 0.00029738 0.000187866 -0.000404561 -5.2106e-05 -5.5081e-05 0.00104723 0.000202991 0.000905294 0.00029738 0.00104723 -0.000692059 --0.0127853 --0.00170528 --0.00280012 -0.000350666 0.00103446 -0.000350666 0.00238592 0.00154874 0.00103446 0.00154874 0.000246375 -0.000129147 -1.56268e-05 0.000497403 -1.56268e-05 0.00221681 0.000809292 0.000497403 0.000809292 0.000556031 --0.000807886 0.00178929 -0.00333529 7.8294e-05 0.000523234 0.00178929 -0.000616226 0.000736256 0.000785051 0.00151128 -0.00333529 0.000736256 -0.00131359 -0.00168286 -0.00226033 7.8294e-05 0.000785051 -0.00168286 0.00121253 0.00123408 0.000523234 0.00151128 -0.00226033 0.00123408 0.00265594 --0.00082005 -0.000137113 0.00106147 0.00018526 8.2782e-05 -0.000137113 0.00110551 0.000657149 -0.000121708 -0.000599431 0.00106147 0.000657149 -0.000177455 0.00021974 0.000293612 0.00018526 -0.000121708 0.00021974 3.41997e-05 -0.00110066 8.2782e-05 -0.000599431 0.000293612 -0.00110066 -0.000901877 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gvepsl_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gvepsl_ref.dat deleted file mode 100644 index 446c07bd3b..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gvepsl_ref.dat +++ /dev/null @@ -1,30 +0,0 @@ -0.2963239283 0.03864884051 0.3757418171 0.2434545334 0.09665998207 0.01269977268 0.009580264213 0.003423784276 1.343424139e-16 3.174157298e-05 0.04619125137 0.005467299138 0.002871635908 -1.692077278e-16 8.582926997e-06 0.01015351369 -0.0002424248012 0.00046418442 --0.04020154362 0.004743986645 0.01244130256 0.01236296062 0.004304114655 0.007072684367 0.001802403668 0.003227822 2.225722987e-15 6.907681792e-06 0.001072059914 0.01476286924 0.01069672913 8.921195466e-15 1.241612121e-08 0.002315473523 0.00399642962 0.003016852591 -1.381165995 0.02526082079 0.2128006958 0.2023955884 0.1735603642 0.05130545232 0.04770514991 -0.02373768504 5.435179714e-14 -4.367567921e-07 -0.008046544941 0.1660108477 0.1569632659 1.507627564e-14 -4.42944577e-08 -0.02157664422 0.04187784548 0.03953611177 -0.2893404183 0.001581971838 0.06470369121 0.05683494105 0.02593006218 0.01588024928 0.01197158799 -0.006623635057 -5.216238095e-14 -4.550059714e-09 -0.009084363649 0.05050367192 0.04396704916 -2.043063163e-14 1.355797937e-07 -0.003980861713 0.01204407514 0.009713749154 -0.275860234 -0.0003681029368 0.06895065319 0.06404816248 0.01799521453 0.01670308718 0.01150932161 -0.005061508102 -4.38442219e-14 1.105066162e-06 -0.01265853136 0.05382885494 0.04825750029 -1.519844608e-14 4.172614479e-07 -0.002679887259 0.01186559407 0.009965633188 --0.003091061983 0.0003891444001 0.00727543201 0.02306001833 -0.0258465371 -0.0003240869907 0.002919896335 -0.001818355483 2.706400494e-16 -1.985995464e-05 0.007199665767 -0.006559676436 -0.000452329464 -3.350034019e-16 -5.387465989e-06 0.00144379565 -0.0008729491609 -3.72217399e-05 -0.0001614866912 -1.236767712e-05 -0.0008145970887 0.002115301076 -0.0006856564825 0.0001406953216 -0.0002038382316 0.0002229183194 -1.4440149e-14 1.155899692e-06 8.021120728e-06 0.0003438830136 5.425333718e-05 -8.117124994e-15 3.611315869e-09 -6.95562492e-06 6.616693688e-05 3.927016397e-05 -0.001400314095 -0.0002466588598 0.002378798321 -0.002507561128 -0.0007886917292 0.001057131808 -0.0009824823356 -0.0002870260586 -2.163325852e-14 -5.065411062e-07 0.0004979434149 0.0001237903022 -0.001113863324 -1.011026408e-15 -8.86687269e-08 -9.003938364e-07 0.0003867666554 -0.0005134173867 -0.5645689466 0.001122549842 0.1059449229 0.09365585269 0.04699544247 0.02404356317 0.01855967561 -0.01254500004 -2.619425184e-14 -4.870063685e-06 -0.01688606583 0.07833659154 0.07240619585 -1.176501894e-14 -1.489894627e-06 -0.008174561807 0.01750180141 0.01523699248 --0.5460744777 0.003185445985 -0.1137958743 -0.1022027084 -0.0319416705 -0.02464558353 -0.0149701514 0.008045504776 3.791211319e-14 4.337315164e-06 0.02311391622 -0.08261513175 -0.07743553121 1.817640776e-14 1.165339441e-06 0.006162326917 -0.01686790343 -0.01487126382 -0.005479151196 -0.0002077991584 -0.1432859374 0.1703990058 -0.03308014551 -0.005558309129 0.006911384682 -0.002255720793 2.064656663e-16 4.90755585e-05 -0.007008225929 0.002032656658 0.005516500761 -2.601660789e-16 1.331415205e-05 -0.002449393808 -0.0005590015827 0.002469521772 --0.02481912091 0.0009520672012 -0.04342392981 0.02576363192 0.004999993693 -0.001498548252 -0.008984264965 0.00793385584 3.188551795e-15 1.789386694e-05 0.001818371221 -0.02409725254 0.01544342115 1.415371676e-14 2.040692134e-08 -0.0007695380457 -0.005970463328 0.0054055443 --0.4487476824 -0.00949170371 -0.05296034013 -0.08172506668 -0.06142372466 -0.01156898785 -0.0197370144 0.006144879228 4.620637984e-14 -5.365140225e-07 0.003782581213 -0.04241774698 -0.06517190284 8.450971381e-15 -5.213507394e-08 0.007071152363 -0.00964345036 -0.01702733431 -0.2270931245 0.00149427243 0.03493823551 0.04813296818 0.02303120248 0.007187119545 0.00923343152 -0.003034515733 -7.09634271e-14 -8.5007386e-07 -0.006932127359 0.02694569254 0.03753771521 -3.074921635e-14 -5.697585871e-07 -0.003341452315 0.005395715461 0.008680151885 -0.2224089968 -0.0002473337801 0.03705697505 0.05373672617 0.01747396153 0.007038755389 0.006291265338 0.0008887760896 -5.913397447e-14 8.402820854e-07 -0.009410001427 0.02819895458 0.04103318558 -2.682296697e-14 -1.445429057e-07 -0.00253900417 0.004960293014 0.008926700101 -0.3214919613 0.03815950844 0.2083163968 0.3249922524 0.1839933239 0.007280572455 0.007507604819 0.008165565718 -1.545141359e-16 -3.297530639e-05 0.005342714885 0.04709786407 0.003943592326 1.782018401e-16 -8.977596643e-06 0.0001178580612 0.008550749995 -0.0003421012963 --0.0428517718 0.005165018247 0.01180708325 0.007273089636 0.008995409561 0.006141318991 0.004275252919 0.001548031132 -1.944606529e-15 -8.243579786e-06 0.001120919075 0.01156317729 0.01340218827 -6.1623377e-15 -1.086141728e-08 0.002396483756 0.003330572115 0.003595089459 --0.02348801568 0.0009134887098 0.001164558606 0.005633000973 0.000961338368 0.0002285670782 0.001977158989 0.001183401588 -5.869904926e-14 5.520216491e-07 0.001028535189 0.004022311094 0.003470410992 -1.827320118e-14 6.869799664e-08 0.000411020324 0.001281843973 0.001516261063 -0.9819722714 0.003476862327 0.1826340626 0.1830248451 0.08599262018 0.03879263598 0.04017751874 -0.02067935805 4.653290522e-14 6.488832155e-07 -0.03025457809 0.1410713007 0.1405126737 1.610404835e-14 1.631211123e-07 -0.01401363601 0.0312290295 0.03108212292 -0.9483966335 -0.00408239825 0.2007808152 0.1964754107 0.05875942535 0.0397907213 0.03603258335 -0.01399589389 3.367891029e-14 -6.261227343e-07 -0.04128212846 0.1513146008 0.1486448031 1.077423347e-14 -1.215865197e-07 -0.01022733233 0.03103976294 0.02996884029 --0.003697550589 0.0001663386815 0.05433163807 -0.06510432413 0.0109929466 0.001679769259 -0.00269031149 0.001571667422 -3.567422449e-16 2.67956141e-05 0.0006639617123 0.001946589277 -0.002932368772 4.518646151e-16 7.27039718e-06 -0.0003086432632 0.001662452866 -0.001007800664 --0.002251032885 -5.456392098e-05 0.006489398892 -0.007428514718 -0.001162838222 7.293502384e-05 0.002629542138 -0.003186920165 2.826511159e-14 -2.32361934e-06 0.0002448732747 0.006066676559 -0.00790414479 2.058278229e-14 -1.147052449e-08 -0.0001487040677 0.001784527626 -0.002021427259 -0.000122477942 1.595725096e-06 -0.001035007565 0.001283368516 -2.527016646e-05 -0.0003871798462 0.0004747947627 -3.051504253e-05 6.020082416e-14 1.390273121e-06 0.0001279272314 -0.0005779372652 0.0006152660869 6.521697627e-15 4.927494757e-07 9.410352725e-07 -0.0001929222029 0.0002415870326 -0.4061173073 0.002727100999 0.05923475361 0.09088997689 0.04122735159 0.0114724711 0.01840591036 -0.005506011246 1.98422946e-14 4.555471192e-06 -0.0122197598 0.04625685345 0.07031643747 1.246959932e-14 9.639988617e-07 -0.00597465094 0.008977298188 0.01662840562 --0.3978353526 0.000386325218 -0.06484358387 -0.09873637491 -0.03138616544 -0.01158339496 -0.01254252415 -0.001653431722 -2.51890829e-14 -4.13711082e-06 0.01677333747 -0.04949447503 -0.07550372131 -1.385912098e-14 -5.416897768e-07 0.004539979948 -0.00853558792 -0.01666625895 -0.34340378 0.02690643379 0.1150386672 0.1333351489 0.3574388878 0.004519718056 0.005083946839 -0.002796439937 4.800891494e-18 1.91910634e-06 0.002770570513 0.00224472016 0.04175762167 -6.520601452e-18 4.696171882e-07 2.708512538e-05 -0.0003029070618 -0.0009881191681 -1.088547728 -0.01905843402 0.4070626748 0.4183911087 -0.07956289685 0.04360324461 0.05885974804 0.06119427172 -3.620955175e-15 1.981220222e-06 -0.09056259658 0.2638642859 0.2717426679 -3.829770586e-14 -5.953834709e-08 0.04379211568 0.02593558598 0.02787013605 -0.1199550576 0.004359069103 0.0174231323 0.02988453627 0.02277161238 0.003814304535 0.006840302373 0.0003951719855 1.707038258e-14 -1.50759276e-07 -0.002903978628 0.01492877632 0.02906795696 8.131907809e-15 -3.110083727e-08 -0.002027949054 0.00352347826 0.007630129201 -0.1367795204 0.00303115002 0.02481083754 0.04226495778 0.02121484878 0.004818770634 0.007166028424 0.002227686409 3.323886414e-15 -5.97267254e-07 -0.005935307095 0.02070249269 0.03848975916 4.241291841e-15 -4.402248026e-07 -0.001930897002 0.00423774419 0.00960594857 -0.132550538 0.002076836222 0.02726924854 0.0467512798 0.01805452223 0.004878937815 0.002686147555 0.00805824252 1.483561917e-15 -5.576191112e-07 -0.007695172126 0.02231637681 0.04228194743 1.861549142e-15 -4.922692695e-07 -0.001154259717 0.004104764335 0.01008656572 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gvx_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gvx_ref.dat deleted file mode 100644 index 4c059762ce..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gvx_ref.dat +++ /dev/null @@ -1,75 +0,0 @@ --0.01548149084 7.519190766e-05 0.290147338 -0.2428495708 -0.05808341998 0.0132530808 -0.009720278273 -0.002862390562 1.611210957e-17 3.128145267e-06 0.004595725524 -0.003898405734 -0.0002553954883 -1.721523033e-17 8.477098615e-07 0.0005591956819 0.0005290367114 0.0003516694131 --0.01434068327 0.0006242342946 -0.002840926109 -0.003713831382 0.002506381678 -0.0007473037585 0.0002217159089 -0.000380046623 -3.541562459e-15 -7.982434493e-06 0.001147258589 0.002892384097 -0.006587213486 -8.761097491e-14 -1.243530935e-07 -0.0006367934186 0.00137302387 -0.001314016655 -0.7427120453 0.01053584908 0.08171665173 0.08243755347 0.08487509783 0.01787445265 0.01792104803 -0.01402011872 -1.100636145e-14 1.162951213e-07 -0.004617711418 0.06545768236 0.06607444664 -4.285056627e-15 1.850854779e-08 -0.01102965153 0.01490671494 0.01535702392 --0.3625229869 0.0005067161444 -0.04795188805 -0.04927541344 -0.02712643661 -0.009369827941 -0.009227571916 0.008645302199 -2.678435764e-14 -2.048977887e-06 0.01055560249 -0.03677365555 -0.03948825977 -1.49925887e-14 -7.701226809e-07 0.004958806153 -0.006938684071 -0.007827531814 --0.3608017582 0.003305397449 -0.05395239067 -0.05477840568 -0.01859973388 -0.009864874335 -0.007394990146 0.006452323105 -2.681091572e-14 -1.332068135e-06 0.01463660347 -0.04064942746 -0.04294267815 -1.692740257e-14 -4.817400824e-07 0.003796535085 -0.006891550385 -0.007576154713 -0.005676680638 -0.0001402393174 -0.06896170593 0.03580873373 0.0363741167 -0.001934820819 -0.001282316785 0.0028072658 -2.919082582e-17 1.962994467e-06 -0.002127063106 0.002009514611 -0.0001919764342 3.647990672e-17 5.327597713e-07 -6.818190401e-05 -0.0002197720581 -0.0003282870432 --0.002635465696 -4.186992382e-06 -0.0004341769167 -0.0008647215014 -0.00036366759 5.094657669e-05 3.114195335e-05 -0.0003385504764 -1.288606768e-14 6.56731918e-07 9.01090387e-05 -0.001582402117 0.0004162054361 -1.482003333e-13 7.205432239e-08 -2.222758179e-05 -0.0003566281953 0.0001915331465 -0.000330051135 -7.461243293e-05 -0.0004061908165 0.00011771408 -0.000220922747 -0.0001079719004 3.670586969e-05 -4.386619918e-05 2.683787422e-14 6.894447993e-07 -0.0001341032017 -0.0003729815032 0.000215748547 3.045232159e-15 2.738523776e-07 -3.471300587e-06 -0.0001824386257 0.0001067059147 --0.650528614 0.0005712112495 -0.08755684158 -0.0877648685 -0.04992268081 -0.01707852039 -0.01641299641 0.01515291594 2.094298888e-14 2.331707294e-07 0.01836950509 -0.06846136409 -0.06936166679 1.226702609e-14 1.165919225e-07 0.008872625543 -0.01336976986 -0.01351845305 -0.6488517676 -0.005742513049 0.09749667276 0.09795985395 0.03426356813 0.01758768171 0.0133276199 -0.0112744227 -1.852571664e-14 2.844509399e-07 -0.02585859594 0.07459609939 0.0760720877 -1.148654674e-14 7.637892718e-08 -0.006813882827 0.01296650675 0.01326490652 -0.04174530663 -0.003928724166 -0.1647206827 -0.1924667203 0.371329478 -0.006672171619 -0.007478646084 0.007768663775 3.522843327e-18 -3.326460149e-07 -0.003673965918 -0.003004473316 0.001580823267 3.544560911e-18 -9.531072645e-08 -0.0005375182798 0.0002906448146 -0.005832838028 -0.7134989741 -0.02026496905 0.1905455267 0.1916330883 -0.05450169236 0.01844508981 0.02135959366 0.02144720357 -3.16398947e-16 -1.718041024e-07 -0.05315999195 0.1253280547 0.125796176 -2.119393984e-14 -3.69942262e-08 0.02538580096 0.006837249328 0.006835152827 --0.2400371546 -0.00401189604 -0.02667086886 -0.028626394 -0.02934453119 -0.00583712517 -0.006280996481 0.004182406429 -3.162501341e-14 3.126395995e-07 0.0005198141251 -0.02277919553 -0.02110064215 -1.226405035e-14 5.263154388e-08 0.003512201904 -0.005362137648 -0.004979148819 --0.2654535485 -0.0005326498008 -0.03615437457 -0.03908630937 -0.02287938763 -0.007061430162 -0.007211800946 0.005594621992 -1.34240557e-14 1.892381392e-06 0.006834554474 -0.0299872797 -0.02893265581 -9.002068399e-15 7.803335652e-07 0.003645278555 -0.006083630877 -0.005694971147 --0.2683876848 0.001553430629 -0.04068604296 -0.04414207323 -0.01698041813 -0.007357276193 -0.005401927506 0.003356418932 -7.372712602e-15 2.103728048e-06 0.009976823424 -0.03321064175 -0.03214277439 -4.759265863e-15 8.907118905e-07 0.002866718435 -0.006084164416 -0.005662652275 -0.003057334428 0.0002000105157 -0.01976151936 -0.002597467555 0.03040468466 -0.001338960447 -0.0001413837357 0.001761768626 -9.084809136e-17 -2.144924666e-05 0.00182849118 0.0002481885072 -0.002240311968 1.136626672e-16 -5.818989964e-06 0.0009107978378 8.450140081e-05 -0.001136326816 -0.01460208305 -0.0007232396623 0.01993999696 -0.009696745828 -0.004498897352 0.001050539539 0.003515795591 -0.003231828565 6.708747597e-16 -7.289745456e-07 -0.001163835095 0.009199656876 -0.004622264552 8.044984474e-14 1.147466195e-07 0.0005466754464 0.00210078919 -0.001897157895 --0.01323428271 0.0006370249438 7.585938416e-05 0.01201640085 0.0009208623391 2.983279102e-05 0.003572948317 0.0007910322639 -4.32813923e-14 4.554483255e-07 -8.092456431e-06 2.699176673e-05 0.008508531744 -1.194021147e-14 5.592244064e-08 9.37348217e-06 1.506371837e-05 0.002887453576 -0.00680660732 -0.0004134016384 -0.0008568991634 -0.006170935168 -0.0005764339417 -0.0003651029577 -0.001423418647 -0.000705946638 3.727179612e-14 -1.771389268e-07 -1.452297686e-05 -0.000601690366 -0.004195739445 1.745589902e-14 1.977737623e-08 5.382067886e-06 -0.0002299812417 -0.001349136386 -0.007137274024 -0.0004735994669 -0.0003954063555 -0.007321039084 -0.000660970097 -0.0002764408182 -0.001040743412 -0.001397510409 2.932214323e-14 -1.101636891e-06 -1.270185374e-05 -0.0003354846753 -0.004894401365 1.407449531e-14 -2.407993337e-07 1.159756058e-05 -0.0001249410303 -0.001560313949 -0.0004408119167 2.883787196e-05 -0.003119830114 0.01755429776 -0.01432756892 -0.0001535485628 0.001514351341 -0.001443714056 1.597003274e-16 -1.194482632e-05 0.0003508150201 -0.001334209144 0.001292231757 -2.004325119e-16 -3.241047668e-06 0.0001541669935 -0.0006277986106 0.000515592853 -0.002069758812 7.609151248e-05 -0.00249786723 0.002905615306 0.001222838211 -8.652934519e-05 -0.001139417724 0.001520869647 -5.969299105e-16 1.748959916e-07 -9.10936649e-05 -0.00211937424 0.00329418276 1.372134104e-13 -6.756310224e-08 5.889662741e-05 -0.0006517526991 0.00081561787 --2.775446449e-05 1.335945935e-06 0.0005463135007 -0.0005615808382 4.720039161e-06 0.0002028946606 -0.0002123324672 6.792628449e-06 -2.804412374e-14 -6.663314419e-07 1.919386082e-05 0.000259235397 -0.0002811356731 -2.976926533e-15 -2.364830405e-07 -1.184130289e-07 0.0001233931992 -0.0001241393867 -0.01261867049 -0.0007663992955 0.00029536426 -0.01312048578 -0.001081984385 0.0001170716218 -0.003427529222 -0.001266767379 -1.422697218e-15 -3.366284696e-06 8.516501372e-06 0.0002054614321 -0.009083701001 -2.615511857e-16 -9.581692904e-07 -1.698590184e-06 7.645188211e-05 -0.002985765729 --0.01332918889 0.0008844688788 -0.0001821481036 0.01423952712 0.001261503335 -0.0001138706795 0.002563646435 0.002536659698 9.448217438e-15 3.378483031e-06 -2.544119829e-07 -0.0001478966483 0.009827685769 4.308591786e-15 8.568368311e-07 -5.356826363e-06 -5.45173525e-05 0.003164212722 --0.1562055639 -0.01021895253 -0.002563929455 -0.001573433208 -0.254766898 -4.4878183e-05 -1.955388348e-05 -0.0010100863 -1.334271814e-18 -5.043081621e-07 -0.0001572923085 -9.092812612e-05 -0.01800006892 1.65803795e-18 -1.139209161e-07 0.0001306301237 4.645215572e-05 0.002060574642 --0.6584727228 0.01371285826 -0.2249269632 -0.2297820424 0.04879756041 -0.02353163279 -0.03079150348 -0.03174901863 1.666255864e-15 -7.273315008e-07 0.05304044486 -0.146293558 -0.1496251688 2.214591452e-14 3.549302632e-08 -0.02555784256 -0.01285084138 -0.01363089068 -0.01538130719 -0.0007403707906 -2.621681253e-05 -0.004816135332 -0.001553602106 -6.377707134e-06 -0.001181831878 -0.001319559941 1.947359992e-15 -2.408143274e-08 0.001089192252 -3.240223904e-05 -0.006529735688 6.212265452e-17 -1.121204994e-09 -0.000108535326 -1.045111352e-05 -0.001870748989 -0.01838434544 -0.001116579548 -7.74185277e-05 -0.006504825224 -0.002360266017 -2.607788539e-06 -0.0009304550799 -0.002527133629 2.153606348e-15 -2.760420579e-07 0.0005358678936 -0.0001276849302 -0.007835203956 6.568003459e-16 -3.436980414e-08 -0.0002316973904 -4.265319773e-05 -0.002387650172 -0.01974726899 -0.001310345664 -2.105660671e-05 -0.007242420588 -0.00281657997 1.952539269e-05 0.0003891198367 -0.004332655688 1.200837485e-15 -3.594864803e-07 0.0004296704704 -4.317131544e-05 -0.008739518732 4.406842814e-16 -4.429280699e-08 -0.0003210992077 -1.471724693e-05 -0.002648812279 --0.09819328459 -0.01339859222 -0.2140097524 -0.007283574181 -0.02438888717 -0.00810827356 -0.0002183820707 -0.0008209311373 -2.337707386e-17 -5.521716537e-06 -0.01787824725 -0.0007598968977 -0.0002379103585 2.894922743e-17 -1.487958642e-06 -0.003942464104 -0.0001092357736 7.164889503e-05 -0.01393800064 -0.001611980637 -0.00939298407 -0.0001821783816 -0.0009151545781 -0.002518933792 -0.00174696861 -2.203133876e-05 9.596024477e-17 3.322356684e-07 -0.0003775787097 -0.0087516077 -0.0002418021722 5.252517758e-17 5.738312374e-11 -0.000763387503 -0.002436191221 -5.946876182e-05 --0.7035671608 -0.01218150889 -0.09882501251 -0.09906513227 -0.0865513601 -0.0232587228 -0.02310247068 0.01231389179 -2.450370157e-15 -2.63042409e-08 0.004216001472 -0.07762229374 -0.0772504265 -2.856877507e-16 -8.531742323e-09 0.01087174777 -0.01908185539 -0.01928102478 -0.01286638133 -0.0005767292686 -0.006791879262 -0.002105354827 -0.0001764417662 -0.00237317483 -0.0007691299668 -0.0002374877632 1.516879388e-14 6.861828885e-07 -0.0002041191545 -0.005539245689 -0.001374991981 6.509505219e-15 1.858882077e-07 -0.0001989401014 -0.001869278598 -0.00045871272 -0.01389105993 -0.0007529390612 -0.007115231876 -0.003055821347 -0.0002830839127 -0.002662633626 -0.001385408995 0.0001735915485 1.465493408e-14 3.746405494e-07 -0.0001378198494 -0.005987548649 -0.001969737676 6.26501423e-15 8.077493824e-08 -0.0002477981285 -0.00194628447 -0.0006416447038 -2.774707368e-05 3.786121699e-06 0.02050306472 -0.02351335625 0.002358797015 0.0007809336558 -0.001040748802 0.0002065359176 -1.325529733e-16 9.72990279e-06 -0.001908079725 0.002160922789 -0.0001618623945 1.642566498e-16 2.639514984e-06 -0.0005221757898 0.0005809555355 -4.058866794e-05 -2.923027658e-05 -3.380588155e-06 0.001198309742 -0.001312391385 6.538385624e-06 -2.183060286e-05 0.0004143367873 -0.000423931511 9.168886416e-15 -6.778565759e-07 -4.859351986e-07 0.001042970663 -0.001102064799 7.78677494e-15 -3.452193663e-09 -1.90900016e-06 0.0002932177582 -0.0003086213121 --0.0006403444835 0.0001103171387 -0.0008538761987 0.001011120967 0.000341820682 -0.0003908832073 0.0003961699334 0.0001137222247 7.347302712e-15 1.61130741e-07 -0.000132726565 6.648304898e-06 0.0004102787388 2.445980569e-16 1.635609131e-08 2.535667846e-06 -0.0001099656778 0.0001849862106 -0.007257995143 -0.0003253360929 -0.008787333862 -0.0004569003128 -6.266957967e-05 -0.002887325761 -0.0001368985158 -7.955845535e-05 3.051265952e-15 2.618252636e-06 3.844093844e-06 -0.005316578079 -0.0002033250126 3.484325627e-16 7.65254252e-07 1.157449709e-05 -0.00179847149 -5.221410715e-05 --0.007694233315 0.0004170516028 0.009390444065 0.0009074719421 9.656859872e-05 0.003146620593 0.0003273868712 -5.490877564e-05 -1.002924608e-14 -2.599765433e-06 -8.663596083e-06 0.005647317612 0.0003982582859 -3.944893419e-15 -6.830713672e-07 -2.363850537e-05 0.001866986633 0.0001161232079 -0.03200799843 0.004367530025 0.1016661632 0.0016245665 -0.02786527632 0.004014337361 -4.979249589e-05 -0.001338426339 -7.142185549e-17 -1.65810863e-05 0.003609690549 0.0002694196261 0.003005935256 8.871307442e-17 -4.503729946e-06 0.0009715098631 9.245974698e-05 0.0003468460579 --0.01619919071 0.001873495521 0.02311428339 0.0003581890734 0.0006151920252 0.001832286489 0.005690197325 0.0001058794886 -1.424433402e-15 -5.899326704e-06 2.200960894e-05 0.01317462243 0.0003684861509 -4.863125562e-15 -6.185067553e-09 2.419905247e-05 0.003789779337 9.502802247e-05 -0.2248666775 0.004744146172 0.02657159047 0.03853743852 0.03078315152 0.005807649076 0.009115777497 -0.003025447691 -6.475756252e-15 9.830766498e-08 -0.001792271934 0.02172838821 0.03099967607 9.122092276e-16 3.209193864e-09 -0.003499260679 0.004997805992 0.007982431075 -0.0001315666193 -5.897409548e-06 -0.000577116684 -0.002192482419 2.175508544e-05 -0.0002418818683 -0.0006025942363 4.474429364e-05 2.804059978e-14 -2.022113717e-07 6.258115134e-05 0.0002330682823 -0.001364980587 1.32382112e-14 -3.418446504e-08 6.769995897e-05 7.56322639e-05 -0.0004521306516 -8.583867894e-05 -4.652725902e-06 -0.0002446645648 -0.002835306883 3.787650307e-05 -0.0001672293663 -0.0006332427474 -5.60273325e-05 2.224621362e-14 -8.488781706e-07 4.612912683e-05 0.0005234492443 -0.001689055286 1.055693679e-14 -2.161935609e-07 8.926087936e-05 0.0001702569056 -0.0005583765399 -0.05360288538 0.006592778901 -0.02565023878 0.1318759391 0.01768316827 -0.001972821153 0.005870126324 0.0003846353551 1.337410889e-16 5.669430471e-06 0.007866640657 0.0001529584808 0.001211870171 -1.662749969e-16 1.533686389e-06 0.001663346535 -0.0005177605971 0.0003417741736 --0.006981603273 0.0008402200379 -0.004082602037 0.007379328692 0.001216964681 0.001135981491 -0.001053594619 0.001868211287 -3.195318385e-15 4.502491726e-06 0.0001979753539 -0.001567481902 0.005683488458 -4.952754017e-16 6.573494908e-09 0.0004182985267 -0.0004967344117 0.001630239129 --0.01253465386 0.0004665820366 0.009142188 0.001508202069 0.0002938239923 0.002950489512 0.0004990235295 0.000402871226 9.689396667e-15 -6.908748245e-07 0.0002921866685 0.006190852551 0.0009401261684 6.32233334e-15 -1.720672469e-07 7.42418927e-05 0.002189557675 0.0003478341486 -0.3427161388 0.000489736811 0.0601370198 0.05723007583 0.02778852796 0.01349664047 0.01130371358 -0.007792745988 -7.753396973e-15 -1.264852627e-07 -0.01033432133 0.04514899594 0.04456574986 -1.141774314e-16 8.562713123e-08 -0.00487560607 0.009823045806 0.009454961554 --0.0001352661939 7.273342516e-06 -0.004839507624 0.0006556229811 9.269601538e-05 -0.001461219987 0.0003392686126 3.12677567e-06 -8.790032148e-15 2.036246972e-06 2.101859604e-05 -0.002233253868 0.0006940235992 -4.399205668e-15 5.372284899e-07 0.000145741824 -0.0007670277686 0.0002385760946 -0.09603523391 0.01181166013 0.08962474015 0.08540439384 0.04468370558 0.002888226116 0.002710115272 0.001744110219 -4.273186391e-17 -1.002087886e-05 0.003462793472 0.01311607561 0.0007506045443 5.486242062e-17 -2.728128951e-06 0.0002512543404 0.002767159776 -0.0001785185206 --0.01294309294 0.00155767173 0.004496654367 0.001877865222 0.002343206595 0.001920854976 0.001661181613 0.0001008877853 1.52727575e-15 -2.616176474e-06 0.0003462655557 0.004877091447 0.002839003669 -5.262264958e-16 -3.758201716e-09 0.00072123664 0.001379844948 0.0007622200049 --0.007070865887 0.0002632014448 0.0007101239068 0.001456737101 0.0002342253808 0.0002161292419 0.0005007525247 0.000326835131 -2.107609733e-14 8.021818942e-08 0.0004390353918 0.001291873874 0.0008996764488 -5.780479697e-15 -4.973248566e-09 0.0001271730953 0.0004781642526 0.0003847634575 -0.6135288793 0.001329229507 0.1036381636 0.1063871411 0.05167986474 0.02174102581 0.02223599306 -0.01317803673 3.209701411e-15 4.583629423e-07 -0.0183864577 0.07974781121 0.0820915488 -1.127647176e-15 8.918881965e-08 -0.008697975428 0.01706465643 0.01774581604 --0.01730301474 0.0009303932431 0.009254433646 0.004751172786 0.0005403105121 0.002093464539 0.003102339408 1.894153994e-05 1.979469691e-14 -7.217281008e-07 3.380290158e-05 0.007132784256 0.003237877463 8.799857609e-15 -1.61961035e-07 0.0002225778781 0.002277323303 0.0010719414 -0.03974244676 0.004888042175 0.0490830317 0.07481610012 -0.03996368492 0.001849623886 0.002892769939 -0.002186514102 -7.538412137e-17 1.684897709e-05 0.0003134519605 0.001993343858 0.00573641985 9.250166008e-17 4.565135097e-06 -0.0003738714007 0.0003003862581 0.001375321731 --0.01885700177 0.002269397175 0.007885475313 0.016686086 0.002078290759 0.001661722373 0.002699997483 0.004092505804 8.743985952e-15 2.638257465e-06 4.472457222e-05 0.005926022386 0.009354491433 8.23895065e-15 2.036690701e-10 6.505165539e-05 0.001664839952 0.002701309961 --0.000128174503 4.771086726e-06 -0.0002616347523 -0.002116260756 4.586374282e-05 -0.0001026290868 -0.0006685536867 7.325881957e-05 3.637524959e-14 2.376692458e-07 0.0001284770398 0.0003522866452 -0.001467417542 7.576611518e-15 1.248582194e-07 4.819495137e-05 0.0001244950767 -0.0004825897298 -0.2468745705 0.001658105303 0.03640268047 0.05157826344 0.02514183378 0.007137600826 0.009985045893 -0.00322746757 -2.161572229e-15 7.069154854e-07 -0.007431296949 0.02898799955 0.04048190438 1.425781215e-15 -5.385363133e-08 -0.003557260529 0.005749788414 0.009335862467 --6.372876551e-05 3.426733069e-06 0.0002112304075 -0.003679308008 7.546221792e-05 0.0001311695472 -0.001081443352 5.937553585e-06 -1.569176749e-14 -1.715628484e-06 1.402293348e-05 0.0008870942305 -0.002261845776 -7.348767078e-15 -4.775646061e-07 0.0001002341697 0.0002930629802 -0.0007580728072 -0.05701455562 0.006530610892 -0.03072582747 0.1208546734 0.03438445421 -0.001833025638 0.004209917755 0.001536917718 -3.301316711e-17 1.817338746e-05 0.003587389886 0.004257155644 0.001521747644 4.064896728e-17 4.925552355e-06 0.0008091240495 1.345825843e-05 0.0003712343342 --0.007217797151 0.0008707659668 -0.003623484742 0.0062134269 0.00169070557 0.00107971652 -0.0009369482709 0.00176569524 5.968328101e-15 3.876681645e-06 0.0001961798623 -0.001772951371 0.005767791751 7.604791926e-15 2.975596003e-09 0.0004352069484 -0.0005408874271 0.001640404183 --0.01337594793 0.0005420528317 0.007890313394 0.003102975882 0.0004615759386 0.002403947847 0.001109450807 0.0005123234341 4.705181175e-14 1.454356186e-07 0.000117615734 0.005946767063 0.001727321946 1.018753328e-14 1.061680007e-07 7.428838866e-05 0.001970519061 0.0006887131353 -0.0001338594695 -6.322048427e-06 -0.004536353325 0.0003216275997 9.078435318e-05 -0.001388534746 0.0001164069521 9.087819026e-05 -1.790488273e-14 1.666419188e-06 -2.639024442e-06 -0.002234404342 0.0004932413279 -8.858021933e-15 4.788299658e-07 0.0001103579498 -0.0007851018955 0.0001804193663 -0.3399086904 -0.002086132263 0.06630253653 0.06449964313 0.01945109187 0.01426516877 0.009481873941 -0.00523153102 -8.376225445e-15 2.281750408e-08 -0.01450710036 0.04920571465 0.04911279359 9.883329413e-16 1.04535988e-07 -0.003706076341 0.009729803654 0.009539537271 --0.1021804735 -0.0117040448 -0.03804626883 -0.1152540691 -0.06908905038 -0.00158079039 -0.001901401027 -0.003314197881 4.344771202e-17 1.027280793e-05 0.0002215343394 -0.01595230386 -0.001688997472 -5.55993754e-17 2.796901863e-06 0.0001849363599 -0.002500544643 3.180137877e-05 -0.01347956955 -0.001626195662 -0.002762919963 -0.002606367642 -0.003208915601 -0.001863441605 -0.0009672426295 -0.0008592754449 2.786786066e-15 2.462405141e-06 -0.0003447949944 -0.002218285753 -0.005447327066 3.726385485e-15 2.71917523e-09 -0.0007559966854 -0.0006646818114 -0.001460749709 -0.0074089137 -0.0003002420965 3.629607649e-06 -0.002023991309 -0.0003598433549 7.983120528e-05 -0.0007212958606 -0.0004034837849 1.493363991e-14 -2.644622877e-07 -0.0001913994859 -0.001184776073 -0.001244568061 5.467922204e-15 -4.875217982e-08 -0.0001261190495 -0.0003091531483 -0.000552316196 -0.01712306903 -0.0008087053684 -0.007589352376 -0.005044886527 -0.0006125299637 -0.001892251277 -0.002258568916 -0.0006285533778 -2.578212748e-14 5.649838895e-08 4.592011481e-06 -0.006175330473 -0.003442855991 -1.122704877e-14 -1.286570384e-08 -0.0001845260226 -0.001972866959 -0.001189383152 --0.6105253306 0.003510599324 -0.1159594024 -0.1178580258 -0.03616195057 -0.02271389616 -0.01932099261 0.008773730236 -6.82208819e-16 -3.414404367e-07 0.02583371105 -0.08722830461 -0.08953590922 2.325637265e-15 -8.818335617e-08 0.006620300281 -0.01705629933 -0.01761718385 -0.04270981207 0.004892104496 0.01653541726 0.1175994869 -0.04873361869 0.0008530885549 0.004655222524 -0.003233637033 1.487342335e-16 5.690633857e-07 -9.188428356e-05 0.0008326379588 0.007676890544 -1.871857741e-16 1.478264918e-07 -0.0001907503063 -0.0007299429755 0.002050095596 --0.01997005879 0.002409218102 0.00338167775 0.02110467907 0.003010649167 0.001592534119 0.001041715008 0.00610342977 -8.66981061e-15 4.160204842e-06 5.28129147e-05 0.001864858468 0.01410601522 -4.327789216e-15 7.482598366e-09 8.279088914e-05 0.0005589727598 0.003999399875 --8.265558612e-05 3.349571539e-06 0.0003871299502 -0.002978648431 6.911803065e-05 0.0001384828884 -0.0009843954508 8.93423833e-05 -2.218206394e-16 -6.245350776e-07 5.478851779e-05 0.0007309229172 -0.001901880689 3.714148462e-15 -1.795777521e-07 4.739914969e-05 0.0002502876931 -0.0006499435372 -6.30660071e-05 -2.978544233e-06 0.0004062293154 -0.003794646423 7.606477899e-05 0.0001683189922 -0.00124019563 0.0001152349136 -1.46057916e-14 -2.121043448e-06 -1.706569474e-06 0.0008938967911 -0.002349064027 -6.319536799e-15 -6.579256647e-07 7.597940495e-05 0.000300863397 -0.0008011104971 -0.2486183059 -0.0002418589728 0.04074053372 0.05789910871 0.01968365937 0.007373810619 0.006727493769 0.001026326535 -3.81705586e-16 8.202650869e-07 -0.01046664595 0.03184326959 0.04483319419 1.109265104e-15 -1.526609166e-07 -0.002735114276 0.005635561777 0.009627913901 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/iRmat_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/iRmat_ref.dat deleted file mode 100644 index af12828313..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/iRmat_ref.dat +++ /dev/null @@ -1,125 +0,0 @@ -0 0 0 -0 1 0 -0 1 1 -1 1 0 -0 1 1 -0 2 0 -0 0 0 -0 0 1 -1 0 0 -0 0 1 -0 2 2 -0 0 2 -0 0 0 -1 0 2 -0 0 0 -2 2 0 -2 0 0 -2 0 1 -0 0 0 -2 0 1 -0 2 2 -0 0 2 -0 0 0 -1 0 2 -0 0 0 -0 0 0 -0 1 0 -0 1 1 -1 1 0 -0 1 1 -0 2 0 -0 0 0 -0 0 1 -1 0 0 -0 0 1 -0 2 2 -0 0 2 -0 0 0 -1 0 2 -0 0 0 -2 2 0 -2 0 0 -2 0 1 -0 0 0 -2 0 1 -0 2 2 -0 0 2 -0 0 0 -1 0 2 -0 0 0 -0 0 0 -0 1 0 -0 1 1 -0 1 1 -1 1 0 -0 2 0 -0 0 0 -0 0 1 -0 0 1 -1 0 0 -0 2 2 -0 0 2 -0 0 0 -0 0 0 -1 0 2 -0 2 2 -0 0 2 -0 0 0 -0 0 0 -1 0 2 -2 2 0 -2 0 0 -2 0 1 -2 0 1 -0 0 0 -0 0 0 -0 0 1 -0 0 1 -1 0 0 -0 2 0 -0 0 2 -0 0 0 -0 0 0 -1 0 2 -0 2 2 -0 0 2 -0 0 0 -0 0 0 -1 0 2 -0 2 2 -2 0 0 -2 0 1 -2 0 1 -0 0 0 -2 2 0 -0 1 0 -0 1 1 -0 1 1 -1 1 0 -0 0 0 -0 0 0 -0 1 1 -0 1 1 -1 1 0 -0 1 0 -0 2 2 -0 0 0 -0 0 0 -1 0 2 -0 0 2 -0 2 2 -0 0 0 -0 0 0 -1 0 2 -0 0 2 -2 2 0 -2 0 1 -2 0 1 -0 0 0 -2 0 0 -0 2 0 -0 0 1 -0 0 1 -1 0 0 -0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/jle.orb b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/jle.orb deleted file mode 100644 index 49e75060a6..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/jle.orb +++ /dev/null @@ -1,330 +0,0 @@ ---------------------------------------------------------------------------- -Energy Cutoff(Ry) 20 -Radius Cutoff(a.u.) 2 -Lmax 2 -Number of Sorbitals--> 2 -Number of Porbitals--> 2 -Number of Dorbitals--> 2 ---------------------------------------------------------------------------- -SUMMARY END - -Mesh 201 -dr 0.01 - Type L N - 0 0 0 -1.000000000000e+00 9.999588771557e-01 9.998355147105e-01 9.996299309272e-01 -9.993421562398e-01 9.989722332485e-01 9.985202167122e-01 9.979861735385e-01 -9.973701827725e-01 9.966723355824e-01 9.958927352436e-01 9.950314971204e-01 -9.940887486459e-01 9.930646292992e-01 9.919592905814e-01 9.907728959881e-01 -9.895056209813e-01 9.881576529582e-01 9.867291912182e-01 9.852204469278e-01 -9.836316430835e-01 9.819630144724e-01 9.802148076310e-01 9.783872808018e-01 -9.764807038877e-01 9.744953584044e-01 9.724315374315e-01 9.702895455599e-01 -9.680696988392e-01 9.657723247216e-01 9.633977620041e-01 9.609463607696e-01 -9.584184823246e-01 9.558144991363e-01 9.531347947667e-01 9.503797638053e-01 -9.475498118000e-01 9.446453551854e-01 9.416668212101e-01 9.386146478614e-01 -9.354892837887e-01 9.322911882241e-01 9.290208309025e-01 9.256786919789e-01 -9.222652619442e-01 9.187810415390e-01 9.152265416659e-01 9.116022833003e-01 -9.079087973984e-01 9.041466248047e-01 9.003163161571e-01 8.964184317906e-01 -8.924535416387e-01 8.884222251345e-01 8.843250711084e-01 8.801626776859e-01 -8.759356521824e-01 8.716446109973e-01 8.672901795064e-01 8.628729919524e-01 -8.583936913342e-01 8.538529292946e-01 8.492513660070e-01 8.445896700594e-01 -8.398685183386e-01 8.350885959117e-01 8.302505959068e-01 8.253552193925e-01 -8.204031752555e-01 8.153951800774e-01 8.103319580098e-01 8.052142406487e-01 -8.000427669069e-01 7.948182828860e-01 7.895415417463e-01 7.842133035766e-01 -7.788343352618e-01 7.734054103501e-01 7.679273089189e-01 7.624008174394e-01 -7.568267286407e-01 7.512058413722e-01 7.455389604655e-01 7.398268965953e-01 -7.340704661391e-01 7.282704910361e-01 7.224277986456e-01 7.165432216037e-01 -7.106175976801e-01 7.046517696336e-01 6.986465850665e-01 6.926028962792e-01 -6.865215601233e-01 6.804034378540e-01 6.742493949824e-01 6.680603011269e-01 -6.618370298634e-01 6.555804585759e-01 6.492914683061e-01 6.429709436022e-01 -6.366197723676e-01 6.302388457091e-01 6.238290577843e-01 6.173913056492e-01 -6.109264891046e-01 6.044355105434e-01 5.979192747958e-01 5.913786889759e-01 -5.848146623272e-01 5.782281060680e-01 5.716199332362e-01 5.649910585351e-01 -5.583423981773e-01 5.516748697303e-01 5.449893919607e-01 5.382868846789e-01 -5.315682685835e-01 5.248344651061e-01 5.180863962557e-01 5.113249844635e-01 -5.045511524272e-01 4.977658229563e-01 4.909699188170e-01 4.841643625769e-01 -4.773500764508e-01 4.705279821460e-01 4.636990007082e-01 4.568640523676e-01 -4.500240563852e-01 4.431799308997e-01 4.363325927746e-01 4.294829574454e-01 -4.226319387680e-01 4.157804488670e-01 4.089293979840e-01 4.020796943279e-01 -3.952322439241e-01 3.883879504654e-01 3.815477151626e-01 3.747124365970e-01 -3.678830105719e-01 3.610603299660e-01 3.542452845872e-01 3.474387610270e-01 -3.406416425155e-01 3.338548087775e-01 3.270791358895e-01 3.203154961370e-01 -3.135647578731e-01 3.068277853781e-01 3.001054387191e-01 2.933985736122e-01 -2.867080412838e-01 2.800346883342e-01 2.733793566016e-01 2.667428830275e-01 -2.601260995228e-01 2.535298328351e-01 2.469549044172e-01 2.404021302969e-01 -2.338723209473e-01 2.273662811591e-01 2.208848099136e-01 2.144287002569e-01 -2.079987391757e-01 2.015957074739e-01 1.952203796511e-01 1.888735237815e-01 -1.825559013953e-01 1.762682673602e-01 1.700113697655e-01 1.637859498067e-01 -1.575927416716e-01 1.514324724285e-01 1.453058619151e-01 1.392136226293e-01 -1.331564596211e-01 1.271350703868e-01 1.211501447635e-01 1.152023648265e-01 -1.092924047871e-01 1.034209308931e-01 9.758860132936e-02 9.179606612189e-02 -8.604396704195e-02 8.033293751264e-02 7.466360251697e-02 6.903657850753e-02 -6.345247331791e-02 5.791188607588e-02 5.241540711817e-02 4.696361790712e-02 -4.155709094895e-02 3.619638971392e-02 3.088206855820e-02 2.561467264749e-02 -2.039473788254e-02 1.522279082639e-02 1.009934863353e-02 5.024918980770e-03 -8.824636488425e-14 - Type L N - 0 0 1 -1.000000000000e+00 9.998355147105e-01 9.993421562398e-01 9.985202167122e-01 -9.973701827725e-01 9.958927352436e-01 9.940887486459e-01 9.919592905814e-01 -9.895056209813e-01 9.867291912182e-01 9.836316430835e-01 9.802148076310e-01 -9.764807038877e-01 9.724315374315e-01 9.680696988392e-01 9.633977620041e-01 -9.584184823246e-01 9.531347947667e-01 9.475498117999e-01 9.416668212101e-01 -9.354892837886e-01 9.290208309025e-01 9.222652619442e-01 9.152265416659e-01 -9.079087973984e-01 9.003163161571e-01 8.924535416387e-01 8.843250711084e-01 -8.759356521824e-01 8.672901795064e-01 8.583936913341e-01 8.492513660070e-01 -8.398685183386e-01 8.302505959068e-01 8.204031752555e-01 8.103319580098e-01 -8.000427669069e-01 7.895415417463e-01 7.788343352617e-01 7.679273089188e-01 -7.568267286407e-01 7.455389604655e-01 7.340704661390e-01 7.224277986455e-01 -7.106175976801e-01 6.986465850664e-01 6.865215601232e-01 6.742493949824e-01 -6.618370298633e-01 6.492914683061e-01 6.366197723676e-01 6.238290577843e-01 -6.109264891046e-01 5.979192747957e-01 5.848146623272e-01 5.716199332362e-01 -5.583423981772e-01 5.449893919607e-01 5.315682685834e-01 5.180863962557e-01 -5.045511524271e-01 4.909699188170e-01 4.773500764508e-01 4.636990007081e-01 -4.500240563851e-01 4.363325927745e-01 4.226319387680e-01 4.089293979839e-01 -3.952322439241e-01 3.815477151626e-01 3.678830105718e-01 3.542452845871e-01 -3.406416425154e-01 3.270791358894e-01 3.135647578731e-01 3.001054387191e-01 -2.867080412837e-01 2.733793566015e-01 2.601260995227e-01 2.469549044171e-01 -2.338723209472e-01 2.208848099135e-01 2.079987391756e-01 1.952203796510e-01 -1.825559013952e-01 1.700113697655e-01 1.575927416715e-01 1.453058619151e-01 -1.331564596211e-01 1.211501447634e-01 1.092924047871e-01 9.758860132929e-02 -8.604396704188e-02 7.466360251690e-02 6.345247331784e-02 5.241540711810e-02 -4.155709094888e-02 3.088206855813e-02 2.039473788247e-02 1.009934863346e-02 -2.180811153812e-14 -9.899361531766e-03 -1.959494423998e-02 -2.908311310810e-02 --3.836039164508e-02 -4.742346358301e-02 -5.626917445163e-02 -6.489453302867e-02 --7.329671266526e-02 -8.147305248589e-02 -8.942105846211e-02 -9.713840435981e-02 --1.046229325594e-01 -1.118726547487e-01 -1.188857524890e-01 -1.256605776527e-01 --1.321956527344e-01 -1.384896710345e-01 -1.445414967152e-01 -1.503501647310e-01 --1.559148806314e-01 -1.612350202393e-01 -1.663101292030e-01 -1.711399224253e-01 --1.757242833674e-01 -1.800632632314e-01 -1.841570800207e-01 -1.880061174797e-01 --1.916109239149e-01 -1.949722108968e-01 -1.980908518463e-01 -2.009678805055e-01 --2.036044892942e-01 -2.060020275558e-01 -2.081619996917e-01 -2.100860631877e-01 --2.117760265342e-01 -2.132338470410e-01 -2.144616285503e-01 -2.154616190492e-01 --2.162362081830e-01 -2.167879246744e-01 -2.171194336468e-01 -2.172335338584e-01 --2.171331548467e-01 -2.168213539861e-01 -2.163013134635e-01 -2.155763371712e-01 --2.146498475232e-01 -2.135253821946e-01 -2.122065907892e-01 -2.106972314371e-01 --2.090011673253e-01 -2.071223631645e-01 -2.050648815953e-01 -2.028328795354e-01 --2.004306044739e-01 -1.978623907118e-01 -1.951326555560e-01 -1.922458954659e-01 --1.892066821602e-01 -1.860196586822e-01 -1.826895354318e-01 -1.792210861633e-01 --1.756191439552e-01 -1.718885971536e-01 -1.680343852933e-01 -1.640614949996e-01 --1.599749558740e-01 -1.557798363682e-01 -1.514812396472e-01 -1.470842994485e-01 --1.425941759367e-01 -1.380160515603e-01 -1.333551269115e-01 -1.286166165939e-01 --1.238057450998e-01 -1.189277427024e-01 -1.139878413639e-01 -1.089912706646e-01 --1.039432537543e-01 -9.884900333146e-02 -9.371371765056e-02 -8.854257656305e-02 --8.334073759347e-02 -7.811333205441e-02 -7.286546120297e-02 -6.760219244178e-02 --6.232855556732e-02 -5.704953906849e-02 -5.177008647810e-02 -4.649509277994e-02 --4.122940087424e-02 -3.597779810401e-02 -3.074501284474e-02 -2.553571116011e-02 --2.035449352599e-02 -1.520589162508e-02 -1.009436521457e-02 -5.024299068919e-03 --2.180811153812e-14 - Type L N - 0 1 0 -0.000000000000e+00 7.488637748270e-03 1.497500757073e-02 2.245684235920e-02 -2.993187664049e-02 3.739784739318e-02 4.485249486326e-02 5.229356337864e-02 -5.971880216197e-02 6.712596614162e-02 7.451281676032e-02 8.187712278134e-02 -8.921666109172e-02 9.652921750236e-02 1.038125875446e-01 1.110645772630e-01 -1.182830040039e-01 1.254656971996e-01 1.326104991481e-01 1.397152657871e-01 -1.467778674633e-01 1.537961896959e-01 1.607681339337e-01 1.676916183067e-01 -1.745645783707e-01 1.813849678449e-01 1.881507593431e-01 1.948599450964e-01 -2.015105376695e-01 2.081005706678e-01 2.146280994373e-01 2.210912017554e-01 -2.274879785128e-01 2.338165543868e-01 2.400750785054e-01 2.462617251009e-01 -2.523746941547e-01 2.584122120318e-01 2.643725321043e-01 2.702539353656e-01 -2.760547310324e-01 2.817732571367e-01 2.874078811063e-01 2.929570003335e-01 -2.984190427326e-01 3.037924672851e-01 3.090757645728e-01 3.142674572991e-01 -3.193661007968e-01 3.243702835244e-01 3.292786275485e-01 3.340897890136e-01 -3.388024585987e-01 3.434153619598e-01 3.479272601599e-01 3.523369500844e-01 -3.566432648428e-01 3.608450741561e-01 3.649412847309e-01 3.689308406179e-01 -3.728127235570e-01 3.765859533068e-01 3.802495879603e-01 3.838027242452e-01 -3.872444978093e-01 3.905740834913e-01 3.937906955755e-01 3.968935880325e-01 -3.998820547434e-01 4.027554297095e-01 4.055130872460e-01 4.081544421604e-01 -4.106789499151e-01 4.130861067746e-01 4.153754499369e-01 4.175465576492e-01 -4.195990493076e-01 4.215325855415e-01 4.233468682816e-01 4.250416408125e-01 -4.266166878097e-01 4.280718353596e-01 4.294069509652e-01 4.306219435350e-01 -4.317167633563e-01 4.326914020530e-01 4.335458925272e-01 4.342803088856e-01 -4.348947663497e-01 4.353894211511e-01 4.357644704103e-01 4.360201520010e-01 -4.361567443983e-01 4.361745665118e-01 4.360739775033e-01 4.358553765897e-01 -4.355192028303e-01 4.350659348995e-01 4.344960908441e-01 4.338102278270e-01 -4.330089418547e-01 4.320928674913e-01 4.310626775581e-01 4.299190828181e-01 -4.286628316477e-01 4.272947096929e-01 4.258155395130e-01 4.242261802101e-01 -4.225275270446e-01 4.207205110385e-01 4.188060985641e-01 4.167852909214e-01 -4.146591239012e-01 4.124286673363e-01 4.100950246402e-01 4.076593323337e-01 -4.051227595591e-01 4.024865075830e-01 3.997518092873e-01 3.969199286487e-01 -3.939921602073e-01 3.909698285243e-01 3.878542876288e-01 3.846469204537e-01 -3.813491382626e-01 3.779623800657e-01 3.744881120259e-01 3.709278268561e-01 -3.672830432068e-01 3.635553050448e-01 3.597461810232e-01 3.558572638428e-01 -3.518901696056e-01 3.478465371601e-01 3.437280274391e-01 3.395363227902e-01 -3.352731262987e-01 3.309401611045e-01 3.265391697118e-01 3.220719132928e-01 -3.175401709852e-01 3.129457391848e-01 3.082904308316e-01 3.035760746916e-01 -2.988045146335e-01 2.939776089012e-01 2.890972293815e-01 2.841652608687e-01 -2.791836003246e-01 2.741541561365e-01 2.690788473710e-01 2.639596030257e-01 -2.587983612786e-01 2.535970687348e-01 2.483576796724e-01 2.430821552860e-01 -2.377724629297e-01 2.324305753586e-01 2.270584699704e-01 2.216581280466e-01 -2.162315339932e-01 2.107806745824e-01 2.053075381949e-01 1.998141140629e-01 -1.943023915144e-01 1.887743592194e-01 1.832320044375e-01 1.776773122682e-01 -1.721122649033e-01 1.665388408820e-01 1.609590143496e-01 1.553747543190e-01 -1.497880239360e-01 1.442007797487e-01 1.386149709812e-01 1.330325388114e-01 -1.274554156537e-01 1.218855244475e-01 1.163247779500e-01 1.107750780353e-01 -1.052383149992e-01 9.971636687013e-02 9.421109872690e-02 8.872436202246e-02 -8.325799391531e-02 7.781381660774e-02 7.239363669171e-02 6.699924450243e-02 -6.163241347987e-02 5.629489953858e-02 5.098844044591e-02 4.571475520896e-02 -4.047554347042e-02 3.527248491362e-02 3.010723867693e-02 2.498144277778e-02 -1.989671354647e-02 1.485464507002e-02 9.856808646282e-03 4.904752248416e-03 -8.084377910810e-14 - Type L N - 0 1 1 -0.000000000000e+00 1.287349883354e-02 2.573547475531e-02 3.857441713205e-02 -5.137883987341e-02 6.413729366771e-02 7.683837817512e-02 8.947075416401e-02 -1.020231555764e-01 1.144844015086e-01 1.268434080930e-01 1.390892002673e-01 -1.512109234179e-01 1.631978548831e-01 1.750394153042e-01 1.867251798097e-01 -1.982448890213e-01 2.095884598674e-01 2.207459961937e-01 2.317077991564e-01 -2.424643773877e-01 2.530064569210e-01 2.633249908654e-01 2.734111688171e-01 -2.832564259984e-01 2.928524521123e-01 3.021911999042e-01 3.112648934202e-01 -3.200660359520e-01 3.285874176609e-01 3.368221228716e-01 3.447635370265e-01 -3.524053532954e-01 3.597415788301e-01 3.667665406600e-01 3.734748912194e-01 -3.798616135028e-01 3.859220258413e-01 3.916517862950e-01 3.970468966577e-01 -4.021037060685e-01 4.068189142273e-01 4.111895742108e-01 4.152130948861e-01 -4.188872429201e-01 4.222101443820e-01 4.251802859385e-01 4.277965156404e-01 -4.300580433007e-01 4.319644404634e-01 4.335156399653e-01 4.347119350899e-01 -4.355539783170e-01 4.360427796690e-01 4.361797046561e-01 4.359664718249e-01 -4.354051499131e-01 4.344981546136e-01 4.332482449540e-01 4.316585192952e-01 -4.297324109555e-01 4.274736834644e-01 4.248864254548e-01 4.219750451979e-01 -4.187442647891e-01 4.151991139927e-01 4.113449237518e-01 4.071873193743e-01 -4.027322134004e-01 3.979857981635e-01 3.929545380524e-01 3.876451614846e-01 -3.820646526015e-01 3.762202426951e-01 3.701194013774e-01 3.637698275033e-01 -3.571794398579e-01 3.503563676209e-01 3.433089406181e-01 3.360456793733e-01 -3.285752849731e-01 3.209066287553e-01 3.130487418352e-01 3.050108044820e-01 -2.968021353580e-01 2.884321806341e-01 2.799105029940e-01 2.712467705418e-01 -2.624507456248e-01 2.535322735859e-01 2.445012714596e-01 2.353677166230e-01 -2.261416354183e-01 2.168330917584e-01 2.074521757289e-01 1.980089922025e-01 -1.885136494756e-01 1.789762479447e-01 1.694068688318e-01 1.598155629754e-01 -1.502123396984e-01 1.406071557664e-01 1.310099044496e-01 1.214304047005e-01 -1.118783904600e-01 1.023635001051e-01 9.289526604868e-02 8.348310450536e-02 -7.413630543331e-02 6.486402266461e-02 5.567526423484e-02 4.657888292306e-02 -3.758356701260e-02 2.869783128319e-02 1.993000824438e-02 1.128823961984e-02 -2.780468092110e-03 -5.585570683343e-03 -1.380235578603e-02 -2.186258845205e-02 --2.975919920140e-02 -3.748535466356e-02 -4.503446409415e-02 -5.240018557589e-02 --5.957643189757e-02 -6.655737610510e-02 -7.333745671913e-02 -7.991138261421e-02 --8.627413755471e-02 -9.242098438353e-02 -9.834746885961e-02 -1.040494231411e-01 --1.095229689111e-01 -1.147645201439e-01 -1.197707855094e-01 -1.245387704143e-01 --1.290657786791e-01 -1.333494138503e-01 -1.373875801476e-01 -1.411784830461e-01 --1.447206294949e-01 -1.480128277725e-01 -1.510541869820e-01 -1.538441161856e-01 --1.563823231847e-01 -1.586688129443e-01 -1.607038856690e-01 -1.624881345314e-01 --1.640224430593e-01 -1.653079821847e-01 -1.663462069605e-01 -1.671388529506e-01 --1.676879322986e-01 -1.679957294811e-01 -1.680647967533e-01 -1.678979492927e-01 --1.674982600487e-01 -1.668690543061e-01 -1.660139039692e-01 -1.649366215765e-01 --1.636412540531e-01 -1.621320762106e-01 -1.604135840036e-01 -1.584904875512e-01 --1.563677039349e-01 -1.540503497817e-01 -1.515437336425e-01 -1.488533481770e-01 --1.459848621550e-01 -1.429441122854e-01 -1.397370948832e-01 -1.363699573865e-01 --1.328489897337e-01 -1.291806156141e-01 -1.253713836005e-01 -1.214279581791e-01 --1.173571106849e-01 -1.131657101573e-01 -1.088607141251e-01 -1.044491593355e-01 --9.993815243651e-02 -9.533486062644e-02 -9.064650228155e-02 -8.588033757396e-02 --8.104365909172e-02 -7.614378247274e-02 -7.118803706450e-02 -6.618375662098e-02 --6.113827004858e-02 -5.605889221235e-02 -5.095291481399e-02 -4.582759735266e-02 --4.069015817980e-02 -3.554776565875e-02 -3.040752943992e-02 -2.527649186198e-02 --2.016161948939e-02 -1.506979479638e-02 -1.000780800721e-02 -4.982349102379e-03 --6.437579797176e-15 - Type L N - 0 2 0 -0.000000000000e+00 5.535915211195e-05 2.213972080154e-04 4.979959858820e-04 -8.849586090862e-04 1.382009641449e-03 1.988795277024e-03 2.704883585487e-03 -3.529764810931e-03 4.462851724475e-03 5.503480030692e-03 6.650908827167e-03 -7.904321117094e-03 9.262824374522e-03 1.072545116179e-02 1.229115979875e-02 -1.395883508334e-02 1.572728906294e-02 1.759526185599e-02 1.956142252333e-02 -2.162436998860e-02 2.378263400702e-02 2.603467618203e-02 2.837889102883e-02 -3.081360708426e-02 3.333708806224e-02 3.594753405377e-02 3.864308277085e-02 -4.142181083340e-02 4.428173509816e-02 4.722081402876e-02 5.023694910596e-02 -5.332798627704e-02 5.649171744338e-02 5.972588198510e-02 6.302816832176e-02 -6.639621550800e-02 6.982761486302e-02 7.331991163267e-02 7.687060668312e-02 -8.047715822478e-02 8.413698356539e-02 8.784746089095e-02 9.160593107325e-02 -9.540969950283e-02 9.925603794593e-02 1.031421864243e-01 1.070653551164e-01 -1.110227262786e-01 1.150114561856e-01 1.190286770876e-01 1.230714991840e-01 -1.271370126117e-01 1.312222894466e-01 1.353243857168e-01 1.394403434265e-01 -1.435671925888e-01 1.477019532664e-01 1.518416376183e-01 1.559832519508e-01 -1.601237987727e-01 1.642602788521e-01 1.683896932733e-01 1.725090454930e-01 -1.766153433942e-01 1.807056013362e-01 1.847768421993e-01 1.888260994226e-01 -1.928504190344e-01 1.968468616722e-01 2.008125045921e-01 2.047444436666e-01 -2.086397953674e-01 2.124956987344e-01 2.163093173272e-01 2.200778411595e-01 -2.237984886144e-01 2.274685083383e-01 2.310851811145e-01 2.346458217128e-01 -2.381477807144e-01 2.415884463125e-01 2.449652460847e-01 2.482756487386e-01 -2.515171658267e-01 2.546873534324e-01 2.577838138234e-01 2.608041970725e-01 -2.637462026449e-01 2.666075809504e-01 2.693861348596e-01 2.720797211832e-01 -2.746862521131e-01 2.772036966244e-01 2.796300818381e-01 2.819634943422e-01 -2.842020814712e-01 2.863440525436e-01 2.883876800545e-01 2.903313008259e-01 -2.921733171103e-01 2.939121976491e-01 2.955464786849e-01 2.970747649265e-01 -2.984957304652e-01 2.998081196445e-01 3.010107478787e-01 3.021025024244e-01 -3.030823430996e-01 3.039493029542e-01 3.047024888889e-01 3.053410822225e-01 -3.058643392084e-01 3.062715914985e-01 3.065622465553e-01 3.067357880110e-01 -3.067917759749e-01 3.067298472868e-01 3.065497157184e-01 3.062511721212e-01 -3.058340845212e-01 3.052983981609e-01 3.046441354877e-01 3.038713960897e-01 -3.029803565781e-01 3.019712704172e-01 3.008444677015e-01 2.996003548804e-01 -2.982394144306e-01 2.967622044769e-01 2.951693583611e-01 2.934615841593e-01 -2.916396641495e-01 2.897044542274e-01 2.876568832728e-01 2.854979524671e-01 -2.832287345604e-01 2.808503730919e-01 2.783640815610e-01 2.757711425520e-01 -2.730729068125e-01 2.702707922851e-01 2.673662830950e-01 2.643609284924e-01 -2.612563417520e-01 2.580541990295e-01 2.547562381760e-01 2.513642575117e-01 -2.478801145597e-01 2.443057247399e-01 2.406430600253e-01 2.368941475610e-01 -2.330610682465e-01 2.291459552836e-01 2.251509926894e-01 2.210784137768e-01 -2.169304996024e-01 2.127095773847e-01 2.084180188913e-01 2.040582387984e-01 -1.996326930228e-01 1.951438770279e-01 1.905943241041e-01 1.859866036266e-01 -1.813233192898e-01 1.766071073212e-01 1.718406346748e-01 1.670265972066e-01 -1.621677178324e-01 1.572667446692e-01 1.523264491631e-01 1.473496242024e-01 -1.423390822201e-01 1.372976532846e-01 1.322281831820e-01 1.271335314898e-01 -1.220165696442e-01 1.168801790025e-01 1.117272489014e-01 1.065606747123e-01 -1.013833558967e-01 9.619819406050e-02 9.100809101075e-02 8.581594681512e-02 -8.062465786566e-02 7.543711494816e-02 7.025620131870e-02 6.508479078835e-02 -5.992574581769e-02 5.478191562228e-02 4.965613429040e-02 4.455121891443e-02 -3.946996773718e-02 3.441515831428e-02 2.938954569414e-02 2.439586061649e-02 -1.943680773090e-02 1.451506383641e-02 9.633276143556e-03 4.794060559853e-03 -4.131818525851e-15 - Type L N - 0 2 1 -0.000000000000e+00 1.378450216078e-04 5.511357836611e-04 1.239139794773e-03 -2.200637640491e-03 3.433925082304e-03 4.936815994628e-03 6.706646131180e-03 -8.740277714831e-03 1.103410484304e-02 1.358405969917e-02 1.638561955894e-02 -1.943381457962e-02 2.272323635834e-02 2.624804724465e-02 3.000199039070e-02 -3.397840052178e-02 3.817021540801e-02 4.256998801741e-02 4.716989932876e-02 -5.196177178198e-02 5.693708334247e-02 6.208698215471e-02 6.740230175952e-02 -7.287357684839e-02 7.849105952722e-02 8.424473606111e-02 9.012434407095e-02 -9.611939015158e-02 1.022191678810e-01 1.084127761890e-01 1.146891380531e-01 -1.210370194893e-01 1.274450488047e-01 1.339017360777e-01 1.403954928328e-01 -1.469146518750e-01 1.534474872496e-01 1.599822342926e-01 1.665071097367e-01 -1.730103318384e-01 1.794801404905e-01 1.859048172859e-01 1.922727054973e-01 -1.985722299387e-01 2.047919166733e-01 2.109204125357e-01 2.169465044320e-01 -2.228591383867e-01 2.286474383027e-01 2.343007244016e-01 2.398085313134e-01 -2.451606257844e-01 2.503470239719e-01 2.553580082979e-01 2.601841438308e-01 -2.648162941690e-01 2.692456367986e-01 2.734636778979e-01 2.774622665664e-01 -2.812336084509e-01 2.847702787484e-01 2.880652345620e-01 2.911118265905e-01 -2.939038101309e-01 2.964353553767e-01 2.987010569941e-01 3.006959429600e-01 -3.024154826495e-01 3.038555941563e-01 3.050126508376e-01 3.058834870714e-01 -3.064654032169e-01 3.067561697721e-01 3.067540307204e-01 3.064577060637e-01 -3.058663935363e-01 3.049797694999e-01 3.037979890185e-01 3.023216851136e-01 -3.005519672032e-01 2.984904187284e-01 2.961390939721e-01 2.935005140777e-01 -2.905776622752e-01 2.873739783248e-01 2.838933521878e-01 2.801401169391e-01 -2.761190409326e-01 2.718353192356e-01 2.672945643488e-01 2.625027962274e-01 -2.574664316246e-01 2.521922727737e-01 2.466874954338e-01 2.409596363168e-01 -2.350165799226e-01 2.288665448033e-01 2.225180692832e-01 2.159799966602e-01 -2.092614599151e-01 2.023718659557e-01 1.953208794259e-01 1.881184061067e-01 -1.807745759402e-01 1.732997257066e-01 1.657043813846e-01 1.579992402274e-01 -1.501951525855e-01 1.423031035083e-01 1.343341941582e-01 1.262996230683e-01 -1.182106672782e-01 1.100786633801e-01 1.019149885090e-01 9.373104130994e-02 -8.553822291517e-02 7.734791796572e-02 6.917147570869e-02 6.102019120418e-02 -5.290528667402e-02 4.483789302445e-02 3.682903157469e-02 2.888959602278e-02 -2.103033467944e-02 1.326183300055e-02 5.594496447730e-03 -1.961466293644e-03 --9.396059710778e-03 -1.669951744637e-02 -2.386231784130e-02 -3.087519901112e-02 --3.772917343115e-02 -4.441554200612e-02 -5.092590760095e-02 -5.725218801079e-02 --6.338662834879e-02 -6.932181283193e-02 -7.505067594562e-02 -8.056651296961e-02 --8.586298984831e-02 -9.093415239043e-02 -9.577443478343e-02 -1.003786674102e-01 --1.047420839562e-01 -1.088603277967e-01 -1.127294576547e-01 -1.163459525234e-01 --1.197067158441e-01 -1.228090789373e-01 -1.256508036817e-01 -1.282300844387e-01 --1.305455492228e-01 -1.325962601165e-01 -1.343817129326e-01 -1.359018361263e-01 --1.371569889621e-01 -1.381479589410e-01 -1.388759584938e-01 -1.393426209511e-01 --1.395499957974e-01 -1.395005432216e-01 -1.391971279746e-01 -1.386430125484e-01 --1.378418496907e-01 -1.367976742705e-01 -1.355148945107e-01 -1.339982826069e-01 --1.322529647502e-01 -1.302844105739e-01 -1.280984220447e-01 -1.257011218207e-01 --1.230989410988e-01 -1.202986069733e-01 -1.173071293331e-01 -1.141317873188e-01 --1.107801153683e-01 -1.072598888758e-01 -1.035791094915e-01 -9.974599008950e-02 --9.576893943205e-02 -9.165654655832e-02 -8.741756492694e-02 -8.306089634124e-02 --7.859557468680e-02 -7.403074951113e-02 -6.937566947526e-02 -6.463966570746e-02 --5.983213508908e-02 -5.496252350283e-02 -5.004030907345e-02 -4.507498543086e-02 --4.007604502571e-02 -3.505296252697e-02 -3.001517833094e-02 -2.497208221092e-02 --1.993299713613e-02 -1.490716328841e-02 -9.903722304457e-03 -4.931701771028e-03 -4.773444701199e-14 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/model.ptg b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/model.ptg deleted file mode 100644 index 400c7e0bd8..0000000000 Binary files a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/model.ptg and /dev/null differ diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/o_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/o_delta_ref.dat deleted file mode 100644 index 5c078474ed..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/o_delta_ref.dat +++ /dev/null @@ -1 +0,0 @@ --0.08076909443 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/orbpre_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/orbpre_ref.dat deleted file mode 100644 index 086386977d..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/orbpre_ref.dat +++ /dev/null @@ -1,5 +0,0 @@ -1.060477274 0.1291064478 0.8779490569 0.907103037 0.9755199532 0.008327259964 0.009537615065 0.0110756114 -8.67361738e-19 2.268498869e-07 0.01520748138 0.01733066746 0.02327866008 1.084202172e-19 6.154522243e-08 0.004575102944 0.00493019975 0.005326462858 -1.403639879 0.04233702521 0.1036347145 0.1051171034 0.1300373994 0.01706864894 0.02315803338 0.02355187044 -5.495549762e-16 2.266531707e-07 0.0159707875 0.0778590809 0.07918226508 -5.00189896e-16 4.975654724e-10 0.004119993294 0.01770276112 0.0181031737 -1.184831216 0.04679103742 0.04277350838 0.04423740147 0.1253672028 0.01215294916 0.01257986411 0.02104749686 7.476658181e-16 9.704436676e-09 0.03075646343 0.03405832655 0.03561666627 4.172145485e-16 2.279841564e-09 0.004466947552 0.0105746405 0.01107366326 -1.239742588 0.04687423276 0.05317003237 0.0555070447 0.1316145116 0.01440691829 0.01502840736 0.0193624203 -5.442694906e-16 1.204639901e-07 0.02912076931 0.04214107586 0.0444475427 -1.62196645e-16 2.992227555e-08 0.003309087288 0.0123611807 0.01311323646 -1.269742593 0.04647160497 0.05990708252 0.06249145763 0.1337141738 0.01578436253 0.01626321051 0.01851494911 -1.251602988e-15 1.151949305e-07 0.02755614603 0.04721333381 0.04982783769 -4.58617519e-16 2.599457635e-08 0.002786657168 0.01336929136 0.01420300195 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/pdm_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/pdm_ref.dat deleted file mode 100644 index db423bb600..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/pdm_ref.dat +++ /dev/null @@ -1,30 +0,0 @@ -1.060477274 -0.1291064478 -0.9744877683 -0.008312536966 0.004214904118 -0.008312536966 0.8793765114 -0.004872531427 0.004214904118 -0.004872531427 0.9067077674 -0.01100240834 -0.0003509233009 0.000182473892 -0.0003509233009 0.008389220294 -0.0001627085699 0.000182473892 -0.0001627085699 0.009548857799 -0.02307624123 0.001120861502 -0.000110885754 0.0006440788886 0.0002357361629 0.001120861502 0.004725572011 -0.0001672256521 0.007108984746 0.000203595169 -0.000110885754 -0.0001672256521 0.006168584473 -0.0002247462135 -0.008275947861 0.0006440788886 0.007108984746 -0.0002247462135 0.01074277628 0.0002657999383 0.0002357361629 0.000203595169 -0.008275947861 0.0002657999383 0.01110386177 -0.005265546354 0.000213062515 -7.531644973e-06 8.71580212e-05 2.766885939e-05 0.000213062515 0.001414039407 -2.875505705e-05 0.002132487706 3.208679402e-05 -7.531644973e-06 -2.875505705e-05 0.001758967149 -3.620335352e-05 -0.002360039903 8.71580212e-05 0.002132487706 -3.620335352e-05 0.003226626162 3.787018452e-05 2.766885939e-05 3.208679402e-05 -0.002360039903 3.787018452e-05 0.003166648024 -1.403639879 -0.04233702521 -0.1300107856 -0.0006745940366 0.0004782400176 -0.0006745940366 0.1036715959 -0.000181714438 0.0004782400176 -0.000181714438 0.1051068359 -0.01710756067 -0.0004780961363 9.158455722e-05 -0.0004780961363 0.0231282193 -4.8217185e-05 9.158455722e-05 -4.8217185e-05 0.0235427728 -0.01608447966 -0.002640562591 -5.853792016e-05 -0.0002433779552 -1.244927581e-06 -0.002640562591 0.07733365966 -0.0001888990184 0.005871994092 0.000221591154 -5.853792016e-05 -0.0001888990184 0.07903837228 -0.0002366702285 -0.002927323759 -0.0002433779552 0.005871994092 -0.0002366702285 0.0004468295266 2.507778091e-05 -1.244927581e-06 0.000221591154 -0.002927323759 2.507778091e-05 0.00010901899 -0.004151451234 -0.000649577975 9.988626682e-06 -8.997612987e-05 -2.851544603e-06 -0.000649577975 0.01752482537 -5.30060179e-05 0.001651654263 4.979046977e-05 9.988626682e-06 -5.30060179e-05 0.01803926668 -5.439115747e-05 -0.0009893605354 -8.997612987e-05 0.001651654263 -5.439115747e-05 0.0001559983753 7.405440319e-06 -2.851544603e-06 4.979046977e-05 -0.0009893605354 7.405440319e-06 5.438694446e-05 -1.184831216 -0.04679103742 -0.05283447006 0.02498624223 4.908506163e-05 0.02498624223 0.1167593173 -0.0002333705375 4.908506163e-05 -0.0002333705375 0.04278432525 -0.01367895211 0.002851112097 1.564995248e-05 0.002851112097 0.01994376803 -7.582831629e-05 1.564995248e-05 -7.582831629e-05 0.01215759 -0.01442129115 0.009869867825 2.026959385e-05 -0.01342438309 0.0001005290858 0.009869867825 0.03083453074 -1.686852335e-07 0.005217929875 3.979610464e-05 2.026959385e-05 -1.686852335e-07 0.002345223913 -2.062576078e-05 0.008624423234 -0.01342438309 0.005217929875 -2.062576078e-05 0.0211144436 -8.653432637e-05 0.0001005290858 3.979610464e-05 0.008624423234 -8.653432637e-05 0.03171597655 -0.003888386799 0.004041518914 7.080338523e-06 -0.002714511545 3.547427402e-05 0.004041518914 0.008261955997 7.768720115e-07 -0.0003593313433 1.302827193e-05 7.080338523e-06 7.768720115e-07 0.0006887735151 -7.099901943e-06 0.002609771934 -0.002714511545 -0.0003593313433 -7.099901943e-06 0.003387624327 -3.227629272e-05 3.547427402e-05 1.302827193e-05 0.002609771934 -3.227629272e-05 0.009888512957 -1.239742588 -0.04687423276 -0.06561762172 -0.01261861194 -0.02257132837 -0.01261861194 0.06892523974 0.02875692344 -0.02257132837 0.02875692344 0.1057487272 -0.01603669953 -0.0009035951332 -0.001606187723 -0.0009035951332 0.01519985736 0.001567839148 -0.001606187723 0.001567839148 0.01756118905 -0.01837424248 -0.00706371585 -0.01274508072 0.007689407423 -0.01216808546 -0.00706371585 0.01094227746 0.01320732184 -0.008053150701 -0.006680659348 -0.01274508072 0.01320732184 0.02745814931 0.006297385972 0.0006095158101 0.007689407423 -0.008053150701 0.006297385972 0.03389912699 0.007915238298 -0.01216808546 -0.006680659348 0.0006095158101 0.007915238298 0.02503571209 -0.004921011036 -0.002572441559 -0.004640230491 0.001547417757 -0.002404291696 -0.002572441559 0.002791084724 0.003236306338 -0.002844645822 -0.001027899961 -0.004640230491 0.003236306338 0.006856475613 0.0008272544024 0.00174391723 0.001547417757 -0.002844645822 0.0008272544024 0.009148167946 0.003740475198 -0.002404291696 -0.001027899961 0.00174391723 0.003740475198 0.005066795052 -1.269742593 -0.04647160497 -0.07245245478 -0.01199232291 0.02160052374 -0.01199232291 0.07475582144 -0.02696995199 0.02160052374 -0.02696995199 0.1089044378 -0.0172623464 -0.0005356825659 0.0009858714882 -0.0005356825659 0.01611086868 -0.0006718221199 0.0009858714882 -0.0006718221199 0.01718930706 -0.02023310464 -0.008368478825 0.0151742067 0.007848291491 0.01262099836 -0.008368478825 0.01191430927 -0.01405960026 -0.009603328991 0.006680938171 0.0151742067 -0.01405960026 0.02954170206 -0.00615986108 0.002307153345 0.007848291491 -0.009603328991 -0.00615986108 0.03696661522 -0.01024126086 0.01262099836 0.006680938171 0.002307153345 -0.01024126086 0.02594170153 -0.005313169428 -0.002856160484 0.005179043202 0.001538629321 0.002461693963 -0.002856160484 0.00295690062 -0.00337180911 -0.00316226152 0.0009939943774 0.005179043202 -0.00337180911 0.007207042799 -0.0007592898585 0.002139727359 0.001538629321 -0.00316226152 -0.0007592898585 0.009709202289 -0.004269091167 0.002461693963 0.0009939943774 0.002139727359 -0.004269091167 0.005172661343 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/phialpha_r_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/phialpha_r_ref.dat deleted file mode 100644 index 67dfed2f10..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/phialpha_r_ref.dat +++ /dev/null @@ -1,200 +0,0 @@ -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3173237668 -0.1551349969 -0.08612004624 0.1161549765 0.2081039156 0.04446920622 -0.05997813316 -0.1074571641 -0.04878665534 -0.04028443431 -0.07217382133 -0.06003490334 0.09734491426 0.0263236079 0.02173610069 0.03894252147 0.03239277717 -0.05252398091 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.333116847 -0.1604100456 -0.09075540566 0.1211519993 -0.2171264606 0.04606801531 -0.06149751764 0.1102147584 -0.05040816417 -0.04233801779 0.07587744322 -0.06250682864 -0.1012909797 0.02665394957 0.02238675837 -0.04012115057 0.03305127027 0.05355887698 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4123824003 -0.1813031942 0.3159549093 0.006184029544 0.0008916243807 -0.1436693589 -0.002811969474 -0.0004054347611 0.1822547011 0.006179747602 0.0008910070028 5.921936497e-05 1.743924043e-05 -0.08369855094 -0.002837983966 -0.0004091855768 -2.719586933e-05 -8.008787398e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.289619963 -0.1451159483 -0.07219768086 -0.2214861213 6.258668048e-05 0.03829951879 0.1174942431 -3.320106292e-05 -0.04887248235 0.07007897829 -1.980264315e-05 0.1074932024 -6.075002091e-05 0.02718847779 -0.0389859621 1.101650044e-05 -0.05980004301 3.379612647e-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.8181720922 -0.2493960906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.8165912648 0 0 0.01995129765 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0.8165912648 0 0 0.01995129765 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0.8165912648 0 0 0.01995129765 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1154969637 -0.06490933548 -0.07266534519 0.02690356707 0.04987613239 0.04363967932 -0.01615712464 -0.0299534588 0.02235812502 -0.02060300523 -0.03819561228 -0.009294355364 0.01414151703 -0.01406010573 0.01295638305 0.02401965043 0.00584483802 -0.008893018738 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1197090329 -0.06714393292 -0.07598114993 0.02746193855 -0.05128643865 0.04551754789 -0.01645145019 0.03072384308 0.02398156134 -0.02123823724 0.039663389 -0.009548097137 -0.01433557603 -0.01504097485 0.01332039177 -0.02487644686 0.005988462839 0.008991117611 -0.4406216496 -0.1634053038 -0.288647201 -0.005649549242 -0.00081456206 0.1085782323 0.002125148167 0.0003064076432 0.1017114195 0.00344875 0.0004972469102 3.304872595e-05 9.732368426e-06 -0.03844188445 -0.001303456876 -0.0001879347311 -1.249078335e-05 -3.678353763e-06 -0.5748940742 -0.1130526334 -0.2639008504 -0.01111577108 -0.001602691649 -0.002068416491 0.002626441306 0.0003786849798 0.09258976714 0.008416849809 0.001213556379 0.0001312095612 3.863930465e-05 0.04204065788 -0.000959170429 -0.0001382948988 -3.203428704e-05 -9.433630941e-06 -0.01125211805 -0.002212723413 -0.01111577108 0.3038094105 -3.136869286e-05 0.002626441306 -0.13620735 7.411814261e-06 0.01094934691 -0.2692593809 3.863930465e-05 -0.005272758146 -0.0007598496546 -0.003305881932 0.121723741 -9.433630941e-06 0.002383092336 0.0003435042533 -0.001622350398 -0.0003190343979 -0.001602691649 -3.136869286e-05 0.3040224512 0.0003786849798 7.411814261e-06 -0.1362576874 0.001578696316 3.863930465e-05 -0.2695218 0.0007609761959 -0.005275217206 -0.0004766479379 -9.433630941e-06 0.1217878096 -0.0003437792938 0.002383692705 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1063386522 -0.06000602046 -0.06400759702 -0.05507299371 -0.0001154971133 0.03864388562 0.03324971674 6.973011708e-05 0.01701380711 0.04025660499 8.442471258e-05 0.01731858487 7.264015338e-05 -0.01076238512 -0.02546502872 -5.340434772e-05 -0.0109551777 -4.594981601e-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.8787772769 -0.02082997923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.08427279657 -0.04794989921 -0.0005868424023 0.05738946679 0.03237370793 0.0003585416399 -0.03506309949 -0.01977928365 -0.01793716376 -0.0004820769653 -0.0002719422178 0.01607106268 0.02659422498 0.01151410931 0.0003094517588 0.0001745634072 -0.01031623365 -0.01707119462 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.08798984273 -0.05000398604 -0.0003730347738 0.06036728969 -0.03343733407 0.0002274785538 -0.03681228862 0.020390261 -0.01887031273 -0.0003091238698 0.0001712231601 0.01733849644 -0.02770861815 0.01208298923 0.0001979373868 -0.0001096371654 -0.01110214063 0.01774230981 -0.3238440056 -0.1461895906 0.07781209843 0.2387098819 -6.745370327e-05 -0.03523599019 -0.1080960317 3.054535316e-05 -0.04214974416 0.06043914414 -1.707865658e-05 0.09270679045 -5.239344751e-05 0.01833034929 -0.02628416008 7.427274987e-06 -0.0403169197 2.278519627e-05 --0.1470722022 0.05198505067 0.1461041942 -0.1445277231 4.084007779e-05 -0.08062377275 0.05933107144 -1.676554173e-05 0.1026853617 0.1110667507 -3.138480731e-05 -0.08696618391 4.914913103e-05 -0.05193951372 -0.06563337825 1.85464229e-05 0.03890512772 -2.198731891e-05 --0.4511841824 0.1594783531 -0.1445277231 -0.2501624991 0.0001252881023 0.05933107144 0.0820503979 -5.143288214e-05 0.02444073344 -0.1192466693 4.914913103e-05 -0.09902917007 0.0001033724781 -0.001726992245 0.04814798674 -2.198731891e-05 0.02835497751 -4.173849666e-05 -0.0001274938587 -4.506476825e-05 4.084007779e-05 0.0001252881023 0.1932157627 -1.676554173e-05 -5.143288214e-05 -0.09996386737 -6.906366707e-06 4.914913103e-05 0.05468569856 0.0001227951074 0.1677633287 4.88006703e-07 -2.198731891e-05 -0.02966226871 -5.943966716e-05 -0.09099711745 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1063386522 -0.06000602046 0.06400759702 0.05507299371 0.0001154971133 -0.03864388562 -0.03324971674 -6.973011708e-05 0.01701380711 0.04025660499 8.442471258e-05 0.01731858487 7.264015338e-05 -0.01076238512 -0.02546502872 -5.340434772e-05 -0.0109551777 -4.594981601e-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.8787772769 -0.02082997923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.09322924186 -0.05288367028 0.0002703659203 -0.0005738596802 -0.07340712579 -0.00016441548 0.0003489767299 0.04464049243 -0.02018818193 -2.013512336e-06 -0.0002575649735 -0.03496363171 0.0005466892911 0.01288150871 1.284765353e-06 0.0001643449351 0.02230930591 -0.0003488269963 -0.3516402135 -0.1517239909 0.08951374596 -0.1207322512 -0.216304587 -0.03859732994 0.05205840157 0.09326812795 -0.03838916489 -0.03169895087 -0.05679202044 -0.04724016818 0.07659860956 0.01571626803 0.01297733904 0.02325027433 0.01933980973 -0.0313589598 --0.1708593627 0.05508960885 0.1574070909 0.08052820372 0.1442747872 -0.08685540701 -0.03038326157 -0.05443482401 0.1195844574 -0.05604476662 -0.1004101222 0.05162045351 -0.08370111954 -0.05798345738 0.03345289977 0.05993440525 -0.02115453673 0.0343014888 -0.2304476846 -0.07430247078 0.08052820372 0.1084996631 -0.1945915642 -0.03038326157 -0.06840265255 0.07341932544 -0.004222821021 0.0205159989 -0.08370111954 -0.1603063877 -0.04957567827 -0.004323104557 -0.0161816491 0.0343014888 0.07618027126 0.03910198247 -0.4128713806 -0.1331207287 0.1442747872 -0.1945915642 -0.1315187465 -0.05443482401 0.07341932544 0.02215620488 -0.007565630127 -0.08370111954 -0.08272490812 0.03773038817 0.1115757617 -0.00774529868 0.0343014888 0.02612742437 -0.03424767361 -0.03523953475 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1154969637 -0.06490933548 0.07266534519 -0.02690356707 -0.04987613239 -0.04363967932 0.01615712464 0.0299534588 0.02235812502 -0.02060300523 -0.03819561228 -0.009294355364 0.01414151703 -0.01406010573 0.01295638305 0.02401965043 0.00584483802 -0.008893018738 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.08427279657 -0.04794989921 0.0005868424023 -0.05738946679 -0.03237370793 -0.0003585416399 0.03506309949 0.01977928365 -0.01793716376 -0.0004820769653 -0.0002719422178 0.01607106268 0.02659422498 0.01151410931 0.0003094517588 0.0001745634072 -0.01031623365 -0.01707119462 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.8787772769 -0.02082997923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.09322924186 -0.05288367028 -0.0002703659203 0.0005738596802 0.07340712579 0.00016441548 -0.0003489767299 -0.04464049243 -0.02018818193 -2.013512336e-06 -0.0002575649735 -0.03496363171 0.0005466892911 0.01288150871 1.284765353e-06 0.0001643449351 0.02230930591 -0.0003488269963 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3670679372 -0.1543480496 0.09235361318 -0.1232854925 0.2209500691 -0.0387676362 0.05175203175 -0.09274907177 -0.03756827063 -0.03155374008 0.05655005232 -0.04658518105 -0.0754902901 0.01492512044 0.01253566808 -0.0224662016 0.0185073581 0.0299907782 --0.1774090541 0.05385839884 0.1687555831 0.08314188508 -0.1490054092 -0.09227488919 -0.02966100015 0.05315791744 0.126042777 -0.06011032869 0.107728663 0.05318273061 0.08618147814 -0.05937813874 0.03558696276 -0.06377832234 -0.02053805809 -0.03328148412 -0.236828445 -0.07189712452 0.08314188508 0.1200489813 0.1989116031 -0.02966100015 -0.07489873129 -0.07096203176 -0.001751205137 0.02392599078 0.08618147814 -0.1671279708 0.05724139137 -0.006467628966 -0.01850883455 -0.03328148412 0.07691493756 -0.04428119411 --0.4244397312 0.1288527491 -0.1490054092 0.1989116031 -0.1254483676 0.05315791744 -0.07096203176 0.0126828396 0.00313847873 0.08618147814 -0.08243947044 -0.04505126705 0.1100508184 0.01159116971 -0.03328148412 0.02256728163 0.03957362309 -0.03012571283 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1197090329 -0.06714393292 0.07598114993 -0.02746193855 0.05128643865 -0.04551754789 0.01645145019 -0.03072384308 0.02398156134 -0.02123823724 0.039663389 -0.009548097137 -0.01433557603 -0.01504097485 0.01332039177 -0.02487644686 0.005988462839 0.008991117611 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.08798984273 -0.05000398604 0.0003730347738 -0.06036728969 0.03343733407 -0.0002274785538 0.03681228862 -0.020390261 -0.01887031273 -0.0003091238698 0.0001712231601 0.01733849644 -0.02770861815 0.01208298923 0.0001979373868 -0.0001096371654 -0.01110214063 0.01774230981 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.8787772769 -0.02082997923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/phialpha_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/phialpha_ref.dat deleted file mode 100644 index ab3b443d0f..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/phialpha_ref.dat +++ /dev/null @@ -1,229 +0,0 @@ -iat : 0 -ad : 0 2.003222249 -iw : 6 -0.3173237668 -0.1551349969 -0.08612004624 0.1161549765 0.2081039156 0.04446920622 --0.05997813316 -0.1074571641 -0.04878665534 -0.04028443431 -0.07217382133 -0.06003490334 -0.09734491426 0.0263236079 0.02173610069 0.03894252147 0.03239277717 -0.05252398091 - -ad : 1 1.950638213 -iw : 7 -0.333116847 -0.1604100456 -0.09075540566 0.1211519993 -0.2171264606 0.04606801531 --0.06149751764 0.1102147584 -0.05040816417 -0.04233801779 0.07587744322 -0.06250682864 --0.1012909797 0.02665394957 0.02238675837 -0.04012115057 0.03305127027 0.05355887698 - -ad : 2 1.709269535 -iw : 4 -0.4123824003 -0.1813031942 0.3159549093 0.006184029544 0.0008916243807 -0.1436693589 --0.002811969474 -0.0004054347611 0.1822547011 0.006179747602 0.0008910070028 5.921936497e-05 -1.743924043e-05 -0.08369855094 -0.002837983966 -0.0004091855768 -2.719586933e-05 -8.008787398e-06 - -ad : 3 2.100474535 -iw : 5 -0.289619963 -0.1451159483 -0.07219768086 -0.2214861213 6.258668048e-05 0.03829951879 -0.1174942431 -3.320106292e-05 -0.04887248235 0.07007897829 -1.980264315e-05 0.1074932024 --6.075002091e-05 0.02718847779 -0.0389859621 1.101650044e-05 -0.05980004301 3.379612647e-05 - -ad : 4 0 -iw : 0 -0.8181720922 -0.2493960906 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0 0 0.8165912648 0 0 0.01995129765 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 2 -0 0 0 0.8165912648 0 0 -0.01995129765 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 3 -0 0 0 0 0.8165912648 0 -0 0.01995129765 0 0 0 0 -0 0 0 0 0 0 - -iat : 1 -ad : 0 3.03052076 -iw : 6 -0.1154969637 -0.06490933548 -0.07266534519 0.02690356707 0.04987613239 0.04363967932 --0.01615712464 -0.0299534588 0.02235812502 -0.02060300523 -0.03819561228 -0.009294355364 -0.01414151703 -0.01406010573 0.01295638305 0.02401965043 0.00584483802 -0.008893018738 - -ad : 1 2.994710688 -iw : 7 -0.1197090329 -0.06714393292 -0.07598114993 0.02746193855 -0.05128643865 0.04551754789 --0.01645145019 0.03072384308 0.02398156134 -0.02123823724 0.039663389 -0.009548097137 --0.01433557603 -0.01504097485 0.01332039177 -0.02487644686 0.005988462839 0.008991117611 - -ad : 2 1.709269535 -iw : 0 -0.4406216496 -0.1634053038 -0.288647201 -0.005649549242 -0.00081456206 0.1085782323 -0.002125148167 0.0003064076432 0.1017114195 0.00344875 0.0004972469102 3.304872595e-05 -9.732368426e-06 -0.03844188445 -0.001303456876 -0.0001879347311 -1.249078335e-05 -3.678353763e-06 - -iw : 1 -0.5748940742 -0.1130526334 -0.2639008504 -0.01111577108 -0.001602691649 -0.002068416491 -0.002626441306 0.0003786849798 0.09258976714 0.008416849809 0.001213556379 0.0001312095612 -3.863930465e-05 0.04204065788 -0.000959170429 -0.0001382948988 -3.203428704e-05 -9.433630941e-06 - -iw : 2 -0.01125211805 -0.002212723413 -0.01111577108 0.3038094105 -3.136869286e-05 0.002626441306 --0.13620735 7.411814261e-06 0.01094934691 -0.2692593809 3.863930465e-05 -0.005272758146 --0.0007598496546 -0.003305881932 0.121723741 -9.433630941e-06 0.002383092336 0.0003435042533 - -iw : 3 -0.001622350398 -0.0003190343979 -0.001602691649 -3.136869286e-05 0.3040224512 0.0003786849798 -7.411814261e-06 -0.1362576874 0.001578696316 3.863930465e-05 -0.2695218 0.0007609761959 --0.005275217206 -0.0004766479379 -9.433630941e-06 0.1217878096 -0.0003437792938 0.002383692705 - -ad : 3 3.113220902 -iw : 5 -0.1063386522 -0.06000602046 -0.06400759702 -0.05507299371 -0.0001154971133 0.03864388562 -0.03324971674 6.973011708e-05 0.01701380711 0.04025660499 8.442471258e-05 0.01731858487 -7.264015338e-05 -0.01076238512 -0.02546502872 -5.340434772e-05 -0.0109551777 -4.594981601e-05 - -ad : 4 0 -iw : 4 -0.8787772769 -0.02082997923 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 0 3.347258395 -iw : 6 -0.08427279657 -0.04794989921 -0.0005868424023 0.05738946679 0.03237370793 0.0003585416399 --0.03506309949 -0.01977928365 -0.01793716376 -0.0004820769653 -0.0002719422178 0.01607106268 -0.02659422498 0.01151410931 0.0003094517588 0.0001745634072 -0.01031623365 -0.01707119462 - -ad : 1 3.303653192 -iw : 7 -0.08798984273 -0.05000398604 -0.0003730347738 0.06036728969 -0.03343733407 0.0002274785538 --0.03681228862 0.020390261 -0.01887031273 -0.0003091238698 0.0001712231601 0.01733849644 --0.02770861815 0.01208298923 0.0001979373868 -0.0001096371654 -0.01110214063 0.01774230981 - -ad : 2 2.100474535 -iw : 0 -0.3238440056 -0.1461895906 0.07781209843 0.2387098819 -6.745370327e-05 -0.03523599019 --0.1080960317 3.054535316e-05 -0.04214974416 0.06043914414 -1.707865658e-05 0.09270679045 --5.239344751e-05 0.01833034929 -0.02628416008 7.427274987e-06 -0.0403169197 2.278519627e-05 - -iw : 1 --0.1470722022 0.05198505067 0.1461041942 -0.1445277231 4.084007779e-05 -0.08062377275 -0.05933107144 -1.676554173e-05 0.1026853617 0.1110667507 -3.138480731e-05 -0.08696618391 -4.914913103e-05 -0.05193951372 -0.06563337825 1.85464229e-05 0.03890512772 -2.198731891e-05 - -iw : 2 --0.4511841824 0.1594783531 -0.1445277231 -0.2501624991 0.0001252881023 0.05933107144 -0.0820503979 -5.143288214e-05 0.02444073344 -0.1192466693 4.914913103e-05 -0.09902917007 -0.0001033724781 -0.001726992245 0.04814798674 -2.198731891e-05 0.02835497751 -4.173849666e-05 - -iw : 3 -0.0001274938587 -4.506476825e-05 4.084007779e-05 0.0001252881023 0.1932157627 -1.676554173e-05 --5.143288214e-05 -0.09996386737 -6.906366707e-06 4.914913103e-05 0.05468569856 0.0001227951074 -0.1677633287 4.88006703e-07 -2.198731891e-05 -0.02966226871 -5.943966716e-05 -0.09099711745 - -ad : 3 3.113220902 -iw : 4 -0.1063386522 -0.06000602046 0.06400759702 0.05507299371 0.0001154971133 -0.03864388562 --0.03324971674 -6.973011708e-05 0.01701380711 0.04025660499 8.442471258e-05 0.01731858487 -7.264015338e-05 -0.01076238512 -0.02546502872 -5.340434772e-05 -0.0109551777 -4.594981601e-05 - -ad : 4 0 -iw : 5 -0.8787772769 -0.02082997923 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 3 -ad : 0 3.245352337 -iw : 7 -0.09322924186 -0.05288367028 0.0002703659203 -0.0005738596802 -0.07340712579 -0.00016441548 -0.0003489767299 0.04464049243 -0.02018818193 -2.013512336e-06 -0.0002575649735 -0.03496363171 -0.0005466892911 0.01288150871 1.284765353e-06 0.0001643449351 0.02230930591 -0.0003488269963 - -ad : 1 2.003222249 -iw : 0 -0.3516402135 -0.1517239909 0.08951374596 -0.1207322512 -0.216304587 -0.03859732994 -0.05205840157 0.09326812795 -0.03838916489 -0.03169895087 -0.05679202044 -0.04724016818 -0.07659860956 0.01571626803 0.01297733904 0.02325027433 0.01933980973 -0.0313589598 - -iw : 1 --0.1708593627 0.05508960885 0.1574070909 0.08052820372 0.1442747872 -0.08685540701 --0.03038326157 -0.05443482401 0.1195844574 -0.05604476662 -0.1004101222 0.05162045351 --0.08370111954 -0.05798345738 0.03345289977 0.05993440525 -0.02115453673 0.0343014888 - -iw : 2 -0.2304476846 -0.07430247078 0.08052820372 0.1084996631 -0.1945915642 -0.03038326157 --0.06840265255 0.07341932544 -0.004222821021 0.0205159989 -0.08370111954 -0.1603063877 --0.04957567827 -0.004323104557 -0.0161816491 0.0343014888 0.07618027126 0.03910198247 - -iw : 3 -0.4128713806 -0.1331207287 0.1442747872 -0.1945915642 -0.1315187465 -0.05443482401 -0.07341932544 0.02215620488 -0.007565630127 -0.08370111954 -0.08272490812 0.03773038817 -0.1115757617 -0.00774529868 0.0343014888 0.02612742437 -0.03424767361 -0.03523953475 - -ad : 2 3.03052076 -iw : 4 -0.1154969637 -0.06490933548 0.07266534519 -0.02690356707 -0.04987613239 -0.04363967932 -0.01615712464 0.0299534588 0.02235812502 -0.02060300523 -0.03819561228 -0.009294355364 -0.01414151703 -0.01406010573 0.01295638305 0.02401965043 0.00584483802 -0.008893018738 - -ad : 3 3.347258395 -iw : 5 -0.08427279657 -0.04794989921 0.0005868424023 -0.05738946679 -0.03237370793 -0.0003585416399 -0.03506309949 0.01977928365 -0.01793716376 -0.0004820769653 -0.0002719422178 0.01607106268 -0.02659422498 0.01151410931 0.0003094517588 0.0001745634072 -0.01031623365 -0.01707119462 - -ad : 4 0 -iw : 6 -0.8787772769 -0.02082997923 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 4 -ad : 0 3.245352337 -iw : 6 -0.09322924186 -0.05288367028 -0.0002703659203 0.0005738596802 0.07340712579 0.00016441548 --0.0003489767299 -0.04464049243 -0.02018818193 -2.013512336e-06 -0.0002575649735 -0.03496363171 -0.0005466892911 0.01288150871 1.284765353e-06 0.0001643449351 0.02230930591 -0.0003488269963 - -ad : 1 1.950638213 -iw : 0 -0.3670679372 -0.1543480496 0.09235361318 -0.1232854925 0.2209500691 -0.0387676362 -0.05175203175 -0.09274907177 -0.03756827063 -0.03155374008 0.05655005232 -0.04658518105 --0.0754902901 0.01492512044 0.01253566808 -0.0224662016 0.0185073581 0.0299907782 - -iw : 1 --0.1774090541 0.05385839884 0.1687555831 0.08314188508 -0.1490054092 -0.09227488919 --0.02966100015 0.05315791744 0.126042777 -0.06011032869 0.107728663 0.05318273061 -0.08618147814 -0.05937813874 0.03558696276 -0.06377832234 -0.02053805809 -0.03328148412 - -iw : 2 -0.236828445 -0.07189712452 0.08314188508 0.1200489813 0.1989116031 -0.02966100015 --0.07489873129 -0.07096203176 -0.001751205137 0.02392599078 0.08618147814 -0.1671279708 -0.05724139137 -0.006467628966 -0.01850883455 -0.03328148412 0.07691493756 -0.04428119411 - -iw : 3 --0.4244397312 0.1288527491 -0.1490054092 0.1989116031 -0.1254483676 0.05315791744 --0.07096203176 0.0126828396 0.00313847873 0.08618147814 -0.08243947044 -0.04505126705 -0.1100508184 0.01159116971 -0.03328148412 0.02256728163 0.03957362309 -0.03012571283 - -ad : 2 2.994710688 -iw : 4 -0.1197090329 -0.06714393292 0.07598114993 -0.02746193855 0.05128643865 -0.04551754789 -0.01645145019 -0.03072384308 0.02398156134 -0.02123823724 0.039663389 -0.009548097137 --0.01433557603 -0.01504097485 0.01332039177 -0.02487644686 0.005988462839 0.008991117611 - -ad : 3 3.303653192 -iw : 5 -0.08798984273 -0.05000398604 0.0003730347738 -0.06036728969 0.03343733407 -0.0002274785538 -0.03681228862 -0.020390261 -0.01887031273 -0.0003091238698 0.0001712231601 0.01733849644 --0.02770861815 0.01208298923 0.0001979373868 -0.0001096371654 -0.01110214063 0.01774230981 - -ad : 4 0 -iw : 7 -0.8787772769 -0.02082997923 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/stress_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/stress_delta_ref.dat deleted file mode 100644 index c7eaa0426c..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/stress_delta_ref.dat +++ /dev/null @@ -1,3 +0,0 @@ --2.783700345e-07 -2.043749837e-09 -1.142263096e-08 --2.043749837e-09 -2.8811346e-07 4.410977593e-09 --1.142263096e-08 4.410977593e-09 -2.468418051e-07 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/vdpre_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/vdpre_ref.dat deleted file mode 100644 index fbaef8e7c2..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/vdpre_ref.dat +++ /dev/null @@ -1,320 +0,0 @@ -0.6694055725 0.06219841 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1941474381 0.02670129332 0.0001545970177 3.894924197e-05 0.08315624128 0.01174961544 3.713843012e-05 7.08879568e-06 1.55908247e-10 2.058422801e-09 0.01035635344 7.157279642e-07 2.837853214e-07 4.431640961e-09 2.05986831e-08 0.001479133863 2.692725831e-07 8.480290127e-08 -0.10487494 0.02137139641 8.159923673e-07 1.694623695e-05 0.0630193727 1.969366766e-06 3.641970523e-05 0.01288793893 6.992848398e-10 2.750226758e-10 0.0137090032 2.236040806e-05 0.0002926785244 4.65602094e-10 1.429530929e-11 0.002647857887 2.155335008e-07 4.239464409e-06 -0.1236508398 0.02302016941 6.026623049e-06 4.651762007e-05 0.06932411731 3.904310843e-05 0.0002977184354 0.0125620132 3.798839209e-13 1.313231293e-09 0.01373566965 1.463002787e-05 5.256453381e-05 2.267515839e-12 8.537673441e-10 0.002309598239 6.958423546e-07 3.105328211e-06 -0.1347388705 0.02382332043 2.622839712e-06 7.981249378e-05 0.07246500021 7.707068771e-05 0.00169911554 0.01100740649 3.007177114e-11 2.796265714e-09 0.01343303504 3.256425472e-06 3.759058852e-05 1.449892095e-11 1.152092493e-09 0.002123263756 2.123237178e-07 3.12424318e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2533107753 0.01847339991 0.0002160463982 3.454426432e-05 0.07598775572 -0.0002016888391 -1.708084361e-05 -1.177146903e-07 -8.846149377e-10 -1.117974082e-08 0.009450729571 -3.848140556e-06 2.03037403e-07 -1.231833091e-08 -4.246430455e-08 -0.00161315006 -1.539985112e-06 -1.006221123e-07 --0.04762845107 -0.007599673277 -1.42021773e-05 -0.0007596803879 -0.02235764196 -1.363410858e-05 -0.0005800208311 -0.002978940484 -1.965582195e-07 -8.073354195e-08 -0.008425326989 3.593466923e-05 0.002711929415 -1.152094813e-07 4.754028204e-09 -0.0009835430088 3.095711128e-06 0.0001850712718 --0.06008102278 -0.00835841531 -5.10538294e-05 -0.001403559632 -0.02538493777 -0.0001035698112 -0.001809746316 -0.001393035235 -2.936174145e-09 -3.168803844e-07 -0.007338080823 6.13531433e-05 0.001315405778 -4.756803838e-09 1.51588273e-07 -0.0007471550672 8.480968333e-06 0.0001700809725 --0.06512117552 -0.008312938818 -1.295966395e-05 -0.001967062548 -0.02560773364 -0.0001196764565 -0.004472104747 0.001703696017 1.288422506e-08 -5.46849858e-07 -0.006931983445 1.358102388e-05 0.001189102529 6.091138599e-09 2.114130631e-07 -0.0005661915429 2.175729761e-06 0.0001782926333 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.004957926818 0.0003615707415 -0.003748109626 -0.0002157526893 0.005456037852 -0.000875820756 0.0008204762176 5.106036342e-05 2.52602322e-08 6.803628469e-07 -6.371038951e-05 0.0002246524599 2.325519343e-05 3.073010013e-07 1.115454532e-06 -0.0001007369912 6.225817468e-05 5.44948778e-06 --0.1461132929 -0.02331407515 3.662434766e-06 0.0002265098739 -0.07119244679 2.636546029e-06 0.0001548916804 -0.01111744126 6.307506013e-08 2.597296735e-08 -0.01608934972 -4.267132539e-05 -0.001286088066 3.70730936e-08 -1.569890446e-09 -0.002374528204 -1.240988832e-06 -6.4638539e-05 -0.08103467301 0.0112734674 -0.0004686172959 -9.37962058e-05 0.03676243403 -0.0005925091338 4.873576023e-05 0.005003236429 4.060807695e-09 -2.05887551e-07 0.00721917587 0.0006770409101 0.0001447883634 5.902203939e-09 1.092439988e-07 0.0006756350788 7.69024521e-05 1.404298651e-05 -0.0869321288 0.01109718094 -0.0003273470979 -0.000242265512 0.03739730077 -0.0008648633439 0.0003183643267 0.004401886937 -4.623999469e-08 -2.101121322e-07 0.007126960345 0.0003347339153 0.000187481984 -1.960677718e-08 8.87983004e-08 0.0004461235677 4.383044367e-05 2.459940297e-05 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0007148427085 5.213191273e-05 -0.0004339017614 0.001884679489 -0.001235633205 0.0002406126468 0.0001178344048 -0.0003590647516 1.886855276e-07 -9.157277618e-08 0.000131114658 3.692718216e-05 -0.0001414793257 5.190580118e-07 -6.589630773e-07 2.081871347e-05 9.715965077e-06 -3.495186543e-05 -4.128812191e-05 6.588000022e-06 0.0001739204764 -6.674025541e-05 -8.71279795e-05 0.0001395947355 -5.956422424e-05 -7.693350196e-05 -1.276976839e-07 1.209789263e-07 0.0006490061403 -0.0008313336924 0.0001872561867 -2.741358292e-08 -2.007427028e-08 3.015089289e-05 -4.423452414e-05 1.482070993e-05 -0.1451821805 0.02019760823 0.0002487890253 -0.0004640028283 0.0650713762 0.0003237129216 -0.0005026917391 0.008168578158 -3.481069198e-09 -1.418499201e-08 0.01419094147 -0.0003298650581 0.0005448901505 -5.260886441e-09 2.508283627e-09 0.001347139719 -3.880142142e-05 6.528076055e-05 --0.1557982166 -0.01988817051 -0.0001807818751 0.0005791173676 -0.06640026385 -0.0004944569373 0.0006821563513 -0.00709725714 -3.123181131e-08 1.07108712e-07 -0.01343526048 0.0001761744427 -0.0004492481639 -1.349551286e-08 -3.956222841e-08 -0.0008828435474 2.341020419e-05 -6.281108932e-05 -0.3373997713 0.04521630785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3872082933 0.003403729084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0344371351 0.008772255566 -2.961281559e-06 -0.0001747696216 0.01830475638 -2.775473604e-06 -0.0001446203448 0.005103211697 1.984210716e-07 8.334650189e-08 0.002618251876 1.463153173e-05 0.0006883271301 1.161877653e-07 -5.00341932e-09 0.0008636706895 8.510978088e-07 4.909321727e-05 -0.04061337699 0.009848303423 -1.192271925e-05 -0.0003187474295 0.02087178183 -1.373616737e-05 -0.0003726432004 0.005705571579 2.911104759e-09 3.411464918e-07 0.003156877159 2.1266383e-05 0.000307789749 4.728295365e-09 -1.623610824e-07 0.0008484529 2.92575975e-06 4.632329274e-05 -0.04394134777 0.01036353509 -3.681185882e-06 -0.0004347289753 0.02217294467 -1.60001485e-06 -0.0004414603868 0.005908672038 -1.21635763e-08 5.801795237e-07 0.003260859175 5.653108931e-06 0.0002720830813 -5.800215256e-09 -2.226984458e-07 0.0008323140263 9.252582037e-07 4.884137347e-05 -0.2369589711 0.0361913502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.04685511236 0.009805302005 0.0006987497146 4.749974048e-05 0.01804059594 0.004458474062 -0.0001821912884 -9.716042881e-06 2.418717797e-08 6.414750494e-07 0.001906752865 -3.396763532e-05 -3.502409976e-06 2.923798667e-07 1.061015777e-06 0.0004601087572 -1.324680352e-05 -1.149372869e-06 -0.2845867534 0.003045126136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.02963370418 0.00727515007 8.952718042e-05 0.0001125121899 0.01378183214 0.0001509402249 0.0002209662384 0.003312037959 3.073059992e-09 -2.881832626e-07 0.002178783531 -0.000104079926 -7.721932267e-05 4.312426695e-09 1.49331567e-07 0.0005518027389 -1.482524127e-05 -1.227689636e-05 -0.03229825007 0.007718017719 6.057916767e-05 0.0001814364015 0.01462282785 0.0002276435206 0.0008450651064 0.002732398689 -4.137426182e-08 -3.599429273e-07 0.002144340698 -5.128207676e-05 -8.028096824e-05 -1.734974764e-08 1.481263293e-07 0.0005352564234 -8.46246485e-06 -1.500587185e-05 -0.2596254502 0.03869006173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.05089046268 0.01060652968 -0.0003824587499 0.0002999844829 0.02086450253 0.004621636751 0.00014322826 -7.006002461e-05 -1.709196773e-07 -2.719722389e-07 0.002178930247 2.379943594e-05 -1.842695984e-05 -5.906612671e-07 -1.026009364e-08 0.0005168787824 9.179607583e-06 -6.403016659e-06 -0.02729124001 0.007009776136 3.072029915e-05 6.771980704e-05 0.01355314557 2.975357614e-05 6.605900071e-05 0.003681131602 9.479516841e-09 -1.399071388e-07 0.002508671586 -0.0001211251886 -0.000171997504 -3.440018984e-08 1.903162381e-08 0.0006419968864 -7.897811031e-06 -1.562865113e-05 -0.3090134293 0.003160407578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0342214655 0.008162491365 -5.69008041e-05 0.0002263749068 0.01595411757 -0.0001542894859 0.001176380039 0.003093839428 5.246967646e-08 -1.601110825e-07 0.002388742974 5.085969506e-05 -0.0001080443443 2.26729057e-08 5.837395973e-08 0.0006031057791 8.248973596e-06 -2.042911148e-05 -0.2725469077 0.04000563826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.05274639154 0.01097167476 -0.0002437292244 -0.0003269957055 0.0223890996 0.004733137503 9.345146552e-05 9.007817093e-05 1.45626844e-07 -4.250495496e-07 0.002348760956 1.364465253e-05 2.309451451e-05 2.80368702e-07 -1.114543615e-06 0.0005528599608 5.43482242e-06 7.947527868e-06 -0.02849498313 0.007310062249 -2.845380195e-05 9.360193027e-05 0.01431834932 -2.625317588e-05 9.305041937e-05 0.003905072469 -2.043683011e-07 6.320357366e-08 0.00249621538 0.0001255852133 -0.0002361185746 -8.017446485e-08 -1.465364065e-08 0.0006784066253 7.639542231e-06 -2.166098425e-05 -0.03278315052 0.008023721507 -7.96385514e-05 0.000180881206 0.01587054021 -0.000107772728 0.0003746480656 0.003921172991 -5.829831391e-09 -9.372604805e-09 0.002514611773 0.000103625479 -0.0001349596611 -8.810386799e-09 -3.197407643e-09 0.0006564195883 1.417110974e-05 -2.189512589e-05 -0.3225709623 0.003215066668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2533107753 0.01847339991 0.0002160463982 3.454426432e-05 0.07598775572 -0.0002016888391 -1.708084361e-05 -1.177146903e-07 -8.846149377e-10 -1.117974082e-08 0.009450729571 -3.848140556e-06 2.03037403e-07 -1.231833091e-08 -4.246430455e-08 -0.00161315006 -1.539985112e-06 -1.006221123e-07 --0.04762845107 -0.007599673277 -1.42021773e-05 -0.0007596803879 -0.02235764196 -1.363410858e-05 -0.0005800208311 -0.002978940484 -1.965582195e-07 -8.073354195e-08 -0.008425326989 3.593466923e-05 0.002711929415 -1.152094813e-07 4.754028204e-09 -0.0009835430088 3.095711128e-06 0.0001850712718 --0.06008102278 -0.00835841531 -5.10538294e-05 -0.001403559632 -0.02538493777 -0.0001035698112 -0.001809746316 -0.001393035235 -2.936174146e-09 -3.168803844e-07 -0.007338080823 6.13531433e-05 0.001315405778 -4.756803838e-09 1.51588273e-07 -0.0007471550672 8.480968333e-06 0.0001700809725 --0.06512117552 -0.008312938818 -1.295966395e-05 -0.001967062548 -0.02560773364 -0.0001196764565 -0.004472104747 0.001703696017 1.288422506e-08 -5.46849858e-07 -0.006931983445 1.358102388e-05 0.001189102529 6.091138599e-09 2.114130631e-07 -0.0005661915429 2.175729761e-06 0.0001782926333 -0 0 0.00405782274 0.004273174962 0.6584902961 5.889361163e-06 8.421840001e-06 0.0003837430766 0 0 0 0 0 0 0 0 0 0 -0.3305031965 0.01278089793 0.0003019207413 3.06374691e-05 0.0694372296 3.462103761e-06 7.855884528e-06 1.954739413e-09 5.019257179e-09 6.071959787e-08 0.00862429908 2.068968446e-05 1.452653958e-07 3.424042643e-08 8.754040983e-08 0.001759308729 8.807261842e-06 1.193922536e-07 -0.02163023265 0.002702445493 0.0002471859397 0.03405560145 0.007931912559 9.439019686e-05 0.009237421402 0.0006885574532 5.524949414e-05 2.369951777e-05 0.005178066839 5.774941356e-05 0.02512846191 2.850765653e-05 1.580993017e-06 0.0003653356379 4.446374857e-05 0.00807917518 -0.02919292182 0.003034865003 0.00043249652 0.04234910637 0.009295395177 0.0002747400559 0.01100093692 0.0001544774021 2.269408586e-05 7.64626754e-05 0.003920262464 0.000257293303 0.03291748707 9.978842279e-06 2.691483184e-05 0.0002417046761 0.0001033665505 0.009315452422 -0.03147397247 0.002900727126 6.403475169e-05 0.04848031787 0.00904927924 0.0001858352984 0.01177066562 0.0002636933706 5.520235355e-06 0.0001069443314 0.003577180758 5.664008317e-05 0.03761486268 2.558946937e-06 3.879504771e-05 0.0001509811781 2.229520112e-05 0.01017470832 -0 0 0.05122520203 0.007964225983 -0.05918942801 4.774489481e-05 5.505065671e-06 -5.324996048e-05 0 0 0 0 0 0 0 0 0 0 -0.006468775991 0.0002501542089 -0.005237912069 -0.0001913520661 0.004985699992 1.503396195e-05 -0.000377356445 -8.478950638e-07 -1.433251875e-07 -3.69519823e-06 -5.813915735e-05 -0.001207853102 1.663818995e-05 -8.541836883e-07 -2.29951598e-06 0.0001098642168 -0.0003560580176 -6.466040235e-06 -0.0663566513 0.008290490266 -6.374391476e-05 -0.01015417814 0.02525723705 -1.825305243e-05 -0.002466807479 0.002569704592 -1.772942985e-05 -7.624424575e-06 0.009888248654 -6.857566996e-05 -0.01191676111 -9.173437875e-06 -5.220805864e-07 0.0008820150905 -1.782434249e-05 -0.002821756586 --0.03937414451 -0.004093294052 0.003969836389 0.00283007961 -0.01346157927 0.001571751369 -0.0002962509272 -0.0005548222663 -3.138653021e-05 4.968030132e-05 -0.00385673923 0.002839269231 0.003623269076 -1.238166723e-05 1.939651268e-05 -0.0002185679588 0.0009372916965 0.0007691440773 --0.04201551041 -0.003872264008 0.001617448586 0.005970887423 -0.01321548491 0.001342972062 -0.0008379410249 0.0006813119191 -1.981148671e-05 4.109044039e-05 -0.003677796638 0.001396018222 0.005930614821 -8.236998976e-06 1.629480341e-05 -0.000118963737 0.0004491405938 0.001403825528 -0 0 0.008084266263 -0.05260945863 0.04452519237 5.479584773e-06 -5.701856103e-05 5.153897625e-05 0 0 0 0 0 0 0 0 0 0 -0.0009326796301 3.606767884e-05 -0.0006063694769 0.001671531027 -0.001129115418 -4.130253082e-06 -5.419483361e-05 5.962535517e-06 -1.07059145e-06 4.973516145e-07 0.0001196491779 -0.0001985404992 -0.0001012229764 -1.442790245e-06 1.358456202e-06 -2.270498277e-05 -5.556615307e-05 4.147181851e-05 --1.875080257e-05 -2.342694261e-06 -0.00302704969 0.002991889188 3.091075151e-05 -0.0009664272868 0.0009486208258 1.778254264e-05 3.589385605e-05 -3.551364333e-05 -0.0003988684567 -0.001336008769 0.001735096765 6.783269898e-06 -6.675871445e-06 -1.119950585e-05 -0.0006353411796 0.000646989188 --0.07054294096 -0.007333568874 -0.00210758701 0.01400019257 -0.02382767931 -0.0008587145728 0.00305572116 -0.0009058354748 2.690565319e-05 3.422813444e-06 -0.007581303138 -0.001383336953 0.01363565128 1.10363088e-05 4.453512842e-07 -0.0004357997207 -0.0004729140503 0.003575472377 -0.07529945122 0.006939802752 0.0008932579213 -0.0142729544 0.02346457276 0.0007677997422 -0.001795448624 -0.001098493885 -1.33812432e-05 -2.094664454e-05 0.006933131859 0.0007347410016 -0.01421106051 -5.669597027e-06 -7.25980938e-06 0.0002354199043 0.0002398897235 -0.003584469539 -0 0 0.001966804418 0.001656243214 0.2543829714 -4.92499065e-05 -6.026290346e-05 -0.002756877332 0 0 0 0 0 0 0 0 0 0 -0.505203849 0.002354884006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01563945976 -0.003119416014 5.154048914e-05 0.007834721907 -0.006494053679 1.92148609e-05 0.002303226016 -0.001179565174 -5.577311322e-05 -2.44665582e-05 -0.001609134367 2.351384875e-05 0.006377969121 -2.874972503e-05 -1.66393018e-06 -0.000320809237 1.222433148e-05 0.002143134905 --0.01973373761 -0.003575829902 0.0001010019159 0.009617453001 -0.00764277864 3.643798659e-05 0.002265192809 -0.0006327060892 -2.25003212e-05 -8.231804412e-05 -0.001686515498 8.918366084e-05 0.007702311521 -9.91903709e-06 -2.88275679e-05 -0.0002744745267 3.565933523e-05 0.002537158761 --0.02123746629 -0.003616264719 1.818903829e-05 0.01071435117 -0.007835491057 2.484525742e-06 0.00116193222 0.0009145279612 -5.211474001e-06 -0.0001134624255 -0.001682733779 2.357646691e-05 0.008606800078 -2.436727193e-06 -4.08659555e-05 -0.0002219456539 9.481332705e-06 0.002787253292 -0 0 -0.01425208821 -0.002541995715 -0.04216191161 0.0002924685978 4.86814962e-05 0.0004229750051 0 0 0 0 0 0 0 0 0 0 -0.06113346103 0.006783838635 0.000976489465 4.212774132e-05 0.01648540598 -7.653224584e-05 8.379408864e-05 1.613420714e-07 -1.37236736e-07 -3.483990164e-06 0.001740014552 0.000182628375 -2.505838647e-06 -8.127084255e-07 -2.187290171e-06 -0.0005017966851 7.575921759e-05 1.36377794e-06 --0.1292437093 -0.001082847526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01439879631 -0.002641541192 -0.000758418995 -0.003394790354 -0.005046597991 -0.0004003997432 -0.001343191379 -0.0003672807456 -2.375209502e-05 6.953811075e-05 -0.001163983267 -0.0004364742619 -0.001932381701 -9.046626116e-06 2.651414873e-05 -0.0001785081948 -0.0001806909294 -0.0006724140995 --0.01561019477 -0.002693134624 -0.0002993265855 -0.004471690249 -0.005167425372 -0.0003534880862 -0.002224227597 0.0004229131328 -1.772676757e-05 7.03920009e-05 -0.00110656558 -0.0002138734987 -0.002539526678 -7.288798779e-06 2.718170735e-05 -0.0001427319895 -8.671681529e-05 -0.0008563470425 -0 0 0.00891874556 -0.01272503923 -0.06651858381 -0.0001599181737 0.0003093223285 0.0007378142145 0 0 0 0 0 0 0 0 0 0 -0.06639852004 0.00733817131 -0.0005344788445 0.0002660576367 0.01906587764 -7.93330263e-05 -6.587406905e-05 1.163398477e-06 9.697889791e-07 1.477140235e-06 0.001988391053 -0.0001279586368 -1.318377587e-05 1.641820943e-06 2.115124247e-08 -0.0005637103305 -5.249869426e-05 7.597441267e-06 --0.01239418578 -0.00249267794 -0.0005346804122 -0.003035801365 -0.004808305177 -0.0002059867642 -0.001052056744 -0.0008508631221 -2.664546471e-06 4.107006385e-05 -0.001541788131 -0.0001946562682 -0.001593711365 8.512049406e-06 6.329130382e-06 -0.0002384688213 -0.0001134363865 -0.0006822593754 --0.1501473255 -0.001147515408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01653971161 -0.002848229806 0.0002811514925 -0.005579246805 -0.005637877484 0.0002395829012 -0.003096254867 0.0004788559335 2.248058861e-05 3.131201812e-05 -0.001232686932 0.0002121119427 -0.003417765142 9.525109576e-06 1.071182887e-05 -0.0001608247636 8.452912152e-05 -0.001165837571 -0 0 0.004999389963 0.01469520216 -0.09380466362 -0.0001032990563 -0.0003125038511 0.001334919593 0 0 0 0 0 0 0 0 0 0 -0.06882001364 0.007590798436 -0.0003406069656 -0.000290014016 0.02045904678 -8.124700019e-05 -4.298054234e-05 -1.495814588e-06 -8.262788148e-07 2.30853632e-06 0.00214337071 -7.336103018e-05 1.652323041e-05 -7.793218081e-07 2.297638119e-06 -0.0006029515659 -3.10820564e-05 -9.430067015e-06 --0.01294085994 -0.002599459748 0.0004952325002 -0.004196067298 -0.005079779657 0.0001817531689 -0.001481922526 -0.0009026252012 5.744478802e-05 -1.855355508e-05 -0.001534132752 0.0002018238258 -0.002187850678 1.983852441e-05 -4.873194382e-06 -0.0002519931665 0.0001097268676 -0.0009455972537 --0.01592908885 -0.00291334071 0.0006746486355 -0.005457664396 -0.005811436067 0.0002858891502 -0.002277379819 -0.0004348293582 4.505955287e-05 2.261592936e-06 -0.001343394599 0.0004345684724 -0.003377309855 1.848246497e-05 -5.677067714e-07 -0.0002123517473 0.0001727183351 -0.001199211179 --0.1559030454 -0.001121869329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.004957926818 0.0003615707415 -0.003748109626 -0.0002157526893 0.005456037852 -0.000875820756 0.0008204762176 5.106036342e-05 2.52602322e-08 6.803628469e-07 -6.371038951e-05 0.0002246524599 2.325519343e-05 3.073010013e-07 1.115454532e-06 -0.0001007369912 6.225817468e-05 5.44948778e-06 --0.1461132929 -0.02331407515 3.662434766e-06 0.0002265098739 -0.07119244679 2.636546029e-06 0.0001548916804 -0.01111744126 6.307506012e-08 2.597296735e-08 -0.01608934972 -4.267132539e-05 -0.001286088066 3.70730936e-08 -1.569890446e-09 -0.002374528204 -1.240988832e-06 -6.4638539e-05 -0.08103467301 0.0112734674 -0.0004686172959 -9.37962058e-05 0.03676243403 -0.0005925091338 4.873576023e-05 0.005003236429 4.060807695e-09 -2.05887551e-07 0.00721917587 0.0006770409101 0.0001447883634 5.902203939e-09 1.092439988e-07 0.0006756350788 7.69024521e-05 1.404298651e-05 -0.0869321288 0.01109718094 -0.0003273470979 -0.000242265512 0.03739730077 -0.0008648633439 0.0003183643267 0.004401886937 -4.623999469e-08 -2.101121322e-07 0.007126960345 0.0003347339153 0.000187481984 -1.960677718e-08 8.87983004e-08 0.0004461235677 4.383044367e-05 2.459940297e-05 -0 0 0.05122520203 0.007964225983 -0.05918942801 4.774489481e-05 5.505065671e-06 -5.324996048e-05 0 0 0 0 0 0 0 0 0 0 -0.006468775991 0.0002501542089 -0.005237912069 -0.0001913520661 0.004985699992 1.503396195e-05 -0.000377356445 -8.478950638e-07 -1.433251875e-07 -3.69519823e-06 -5.813915735e-05 -0.001207853102 1.663818995e-05 -8.541836883e-07 -2.29951598e-06 0.0001098642168 -0.0003560580176 -6.466040235e-06 -0.0663566513 0.008290490266 -6.374391476e-05 -0.01015417814 0.02525723705 -1.825305243e-05 -0.002466807479 0.002569704592 -1.772942985e-05 -7.624424575e-06 0.009888248654 -6.857566996e-05 -0.01191676111 -9.173437875e-06 -5.220805864e-07 0.0008820150905 -1.782434249e-05 -0.002821756586 --0.03937414451 -0.004093294052 0.003969836389 0.00283007961 -0.01346157927 0.001571751369 -0.0002962509272 -0.0005548222663 -3.138653021e-05 4.968030132e-05 -0.00385673923 0.002839269231 0.003623269076 -1.238166723e-05 1.939651268e-05 -0.0002185679588 0.0009372916965 0.0007691440773 --0.04201551041 -0.003872264008 0.001617448586 0.005970887423 -0.01321548491 0.001342972062 -0.0008379410249 0.0006813119191 -1.981148671e-05 4.109044039e-05 -0.003677796638 0.001396018222 0.005930614821 -8.236998976e-06 1.629480341e-05 -0.000118963737 0.0004491405938 0.001403825528 -0 0 0.6466574543 0.01484350537 0.005320334118 0.0003870665963 3.598471123e-06 7.389210292e-06 0 0 0 0 0 0 0 0 0 0 -0.0001266101607 4.896144901e-06 0.09087061303 0.00119512526 0.0003579809354 6.528400869e-05 0.01812627032 0.0003677861277 4.092659259e-06 0.0002248778061 3.919346473e-07 0.07051384079 0.001905680036 2.130901538e-05 6.040380383e-05 6.860732249e-06 0.01439463413 0.0003501875126 -0.2035671665 0.0254333451 1.643817878e-05 0.003027617466 0.08042549873 3.529751329e-06 0.000658748678 0.009590168049 5.689331419e-06 2.452870588e-06 0.01888300489 8.143151974e-05 0.005651328594 2.951907406e-06 1.724031263e-07 0.002129413447 7.145308152e-06 0.0009855350395 -0.05310613532 0.005520857164 0.03643867689 0.0001891267913 0.01949504167 0.008991780821 7.977921563e-06 0.001992704065 4.340841417e-05 3.227891683e-05 0.003794245315 0.03133175125 0.0003988177704 1.53630731e-05 1.397834125e-05 0.0001976459593 0.008499033007 6.350551587e-05 -0.05608771238 0.005169196514 0.04085500231 0.0007353808347 0.01929977369 0.009705228094 5.965212026e-05 0.001760324615 7.110113614e-05 1.57878802e-05 0.003781242556 0.03440790985 0.0009350610276 2.651409107e-05 6.844188465e-06 9.373599352e-05 0.009048013156 0.0001936887084 -0 0 0.1020542786 -0.09805206223 -0.004002216409 4.442284848e-05 -3.727106225e-05 -7.151786224e-06 0 0 0 0 0 0 0 0 0 0 -1.82548782e-05 7.059348818e-07 0.01051968138 -0.0104398609 -8.107222538e-05 -1.793535722e-05 0.002603242152 -0.002586331661 3.057080259e-05 -3.026720977e-05 -8.065933613e-07 0.01159069188 -0.01159372539 3.599277291e-05 -3.568399725e-05 -1.417866636e-06 0.002246416044 -0.002246028859 --5.752321242e-05 -7.186855021e-06 0.0007806107323 -0.0008920757382 9.842773385e-05 0.0001868864407 -0.0002533244772 6.636466028e-05 -1.151825212e-05 1.142517319e-05 -0.0007616955522 0.001586469728 -0.0008228411958 -2.182778684e-06 2.204527687e-06 -2.703851512e-05 0.0002546914992 -0.0002259693547 -0.09514525369 0.009891199054 -0.01934530156 0.0009355961184 0.03450721434 -0.004912592016 -8.228937531e-05 0.003253405897 -3.721124093e-05 2.223913856e-06 0.007458457053 -0.01526532561 0.001500893234 -1.369376318e-05 3.209480142e-07 0.0003940836267 -0.004288219066 0.0002952141536 --0.1005194016 -0.009264142144 0.0225627292 -0.001757872219 -0.03426744816 0.005548642329 0.0001278160563 -0.002838209301 4.802373536e-05 -8.048176446e-06 -0.00712814106 0.01810929238 -0.002240612355 1.824987624e-05 -3.049285247e-06 -0.0001854961787 0.004832619015 -0.0004945566679 -0 0 0.02482857437 0.003086860555 -0.02286561042 -0.0003992676863 -3.939177674e-05 0.0003825570231 0 0 0 0 0 0 0 0 0 0 -0.009888105663 4.609098272e-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.04797831787 -0.009569661317 -1.32911789e-05 -0.002336037496 -0.02067872685 -3.71574459e-06 -0.0006150650613 -0.004402151235 1.789745796e-05 7.871190857e-06 -0.003072868937 -2.792197932e-05 -0.003024647296 9.25133275e-06 5.494683625e-07 -0.0007745167974 -4.900411636e-06 -0.0007485176269 -0.02661600787 0.004822924003 0.0009270851034 0.0006427091378 0.01106826214 0.0002084568816 -6.100075612e-05 0.002272432223 3.111854847e-05 -5.348472591e-05 0.001659187501 0.0009841547418 0.000847803087 1.230746143e-05 -2.077495002e-05 0.0002482009781 0.0003233463694 0.0002094842576 -0.02835050412 0.004827455706 0.0004594354392 0.001319590866 0.01144287971 1.795487019e-05 -8.271670497e-05 0.002362891411 1.870337789e-05 -4.359484014e-05 0.001730064275 0.0005810933806 0.001357006578 7.843585621e-06 -1.716463183e-05 0.0001748793111 0.0001910030495 0.0003845630952 -0 0 -0.1799157195 -0.004737701708 0.00378978923 0.002371035168 3.182141118e-05 -5.869396396e-05 0 0 0 0 0 0 0 0 0 0 -0.001196535069 0.0001327767264 -0.01694075714 -0.0002631167188 0.00118367753 -0.0003323363341 -0.004025038719 -6.998433909e-05 3.918803164e-06 0.0002120243667 -1.172999439e-05 -0.01066175029 -0.0002870099872 2.027434681e-05 5.74558505e-05 -3.133588715e-05 -0.003062776753 -7.385942356e-05 --0.3964904072 -0.003321930782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01942047084 0.003562795985 -0.006961441733 -0.0002268649279 0.00730847668 -0.00229063375 3.617161833e-05 0.001319128448 3.284978529e-05 4.518118516e-05 0.00114512229 -0.00481655732 -0.0002126996768 1.122498092e-05 1.910775535e-05 0.0001614208396 -0.001638442097 -5.551886249e-05 -0.02083849763 0.003595142811 -0.007560665883 -0.000550738119 0.007546460908 -0.002554544955 0.0001583403702 0.001092692461 6.361932008e-05 2.704620506e-05 0.00113769011 -0.00527137823 -0.0004003990306 2.346192773e-05 1.141693602e-05 0.0001124638918 -0.001746924897 -0.0001181519707 -0 0 0.1125885906 -0.02371657818 0.005979126726 -0.001296452394 0.0002021933131 -0.0001023825058 0 0 0 0 0 0 0 0 0 0 -0.001299585471 0.0001436264063 0.009272477203 -0.001661712928 0.001368959369 -0.0003444985423 0.003164252787 -0.0005046400657 -2.769238202e-05 -8.989397448e-05 -1.340437979e-05 0.007470159186 -0.001510023539 -4.095792064e-05 -5.556019232e-07 -3.520223196e-05 0.002122405504 -0.0004114618782 --0.03802255282 -0.007646970956 0.0001378825295 0.0009051687992 -0.01531087273 3.98334502e-05 0.0002809465251 -0.003175431275 8.550465571e-07 -1.321274159e-05 -0.002944261803 0.0002311483906 0.0007557914876 -2.73908016e-06 -2.090025741e-06 -0.0005757256538 4.547365142e-05 0.0002382879246 -0.2025121887 0.001547718923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.02207933638 0.003802183827 0.007101582686 -0.0006871459603 0.008233504884 0.001731388738 0.0002204190536 0.001237233436 -8.068023439e-05 1.203078833e-05 0.001267358895 0.005227960844 -0.000538868074 -3.066039264e-05 4.499212036e-06 0.0001267198675 0.001702853436 -0.0001608530184 -0 0 0.06311137211 0.02738851366 0.008431778596 -0.0008374427105 -0.0002042729644 -0.000185239604 0 0 0 0 0 0 0 0 0 0 -0.00134698017 0.0001485709524 0.005909065168 0.001811336993 0.001468991058 -0.0003528098503 0.002064565053 0.000648830119 2.359444073e-05 -0.0001404900497 -1.444914721e-05 0.004282779084 0.001892512973 1.944146279e-05 -6.035447609e-05 -3.765274421e-05 0.001256578444 0.0005107131401 --0.03969962526 -0.007974553341 -0.000127709765 0.001251119141 -0.01617531686 -3.514718933e-05 0.000395740046 -0.003368607969 -1.843389438e-05 5.96890547e-06 -0.002929642778 -0.000239659647 0.001037552317 -6.383810294e-06 1.609241884e-06 -0.0006083769348 -4.398660325e-05 0.0003302620897 -0.02148446292 0.003929387366 0.006192523127 -0.000364721385 0.008416114191 0.001635533856 6.132894752e-05 0.001561736582 -6.231857172e-05 1.469430908e-06 0.001321626472 0.004795526655 -0.0003717447305 -2.293289386e-05 -4.091250377e-07 0.0001920247828 0.001566149403 -9.901464079e-05 -0.208119456 0.00149761561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0007148427085 5.213191273e-05 -0.0004339017614 0.001884679489 -0.001235633205 0.0002406126468 0.0001178344048 -0.0003590647516 1.886855276e-07 -9.157277618e-08 0.000131114658 3.692718216e-05 -0.0001414793257 5.190580118e-07 -6.589630773e-07 2.081871347e-05 9.715965077e-06 -3.495186543e-05 -4.128812191e-05 6.588000022e-06 0.0001739204764 -6.674025541e-05 -8.71279795e-05 0.0001395947355 -5.956422424e-05 -7.693350196e-05 -1.276976839e-07 1.209789263e-07 0.0006490061403 -0.0008313336924 0.0001872561867 -2.741358292e-08 -2.007427028e-08 3.015089289e-05 -4.423452414e-05 1.482070993e-05 -0.1451821805 0.02019760823 0.0002487890253 -0.0004640028283 0.0650713762 0.0003237129216 -0.0005026917391 0.008168578158 -3.481069198e-09 -1.418499201e-08 0.01419094147 -0.0003298650581 0.0005448901505 -5.260886441e-09 2.508283627e-09 0.001347139719 -3.880142142e-05 6.528076055e-05 --0.1557982166 -0.01988817051 -0.0001807818751 0.0005791173676 -0.06640026385 -0.0004944569373 0.0006821563513 -0.00709725714 -3.123181131e-08 1.07108712e-07 -0.01343526048 0.0001761744427 -0.0004492481639 -1.349551286e-08 -3.956222841e-08 -0.0008828435474 2.341020419e-05 -6.281108932e-05 -0 0 0.008084266263 -0.05260945863 0.04452519237 5.479584773e-06 -5.701856103e-05 5.153897625e-05 0 0 0 0 0 0 0 0 0 0 -0.0009326796301 3.606767884e-05 -0.0006063694769 0.001671531027 -0.001129115418 -4.130253082e-06 -5.419483361e-05 5.962535517e-06 -1.07059145e-06 4.973516145e-07 0.0001196491779 -0.0001985404992 -0.0001012229764 -1.442790245e-06 1.358456202e-06 -2.270498277e-05 -5.556615307e-05 4.147181851e-05 --1.875080257e-05 -2.342694261e-06 -0.00302704969 0.002991889188 3.091075151e-05 -0.0009664272868 0.0009486208258 1.778254264e-05 3.589385605e-05 -3.551364333e-05 -0.0003988684567 -0.001336008769 0.001735096765 6.783269898e-06 -6.675871445e-06 -1.119950585e-05 -0.0006353411796 0.000646989188 --0.07054294096 -0.007333568874 -0.00210758701 0.01400019257 -0.02382767931 -0.0008587145728 0.00305572116 -0.0009058354748 2.690565319e-05 3.422813444e-06 -0.007581303138 -0.001383336953 0.01363565128 1.10363088e-05 4.453512842e-07 -0.0004357997207 -0.0004729140503 0.003575472377 -0.07529945122 0.006939802752 0.0008932579213 -0.0142729544 0.02346457276 0.0007677997422 -0.001795448624 -0.001098493885 -1.33812432e-05 -2.094664454e-05 0.006933131859 0.0007347410016 -0.01421106051 -5.669597027e-06 -7.25980938e-06 0.0002354199043 0.0002398897235 -0.003584469539 -0 0 0.1020542786 -0.09805206223 -0.004002216409 4.442284848e-05 -3.727106225e-05 -7.151786224e-06 0 0 0 0 0 0 0 0 0 0 -1.82548782e-05 7.059348818e-07 0.01051968138 -0.0104398609 -8.107222538e-05 -1.793535722e-05 0.002603242152 -0.002586331661 3.057080259e-05 -3.026720977e-05 -8.065933613e-07 0.01159069188 -0.01159372539 3.599277291e-05 -3.568399725e-05 -1.417866636e-06 0.002246416044 -0.002246028859 --5.752321242e-05 -7.186855021e-06 0.0007806107323 -0.0008920757382 9.842773385e-05 0.0001868864407 -0.0002533244772 6.636466028e-05 -1.151825212e-05 1.142517319e-05 -0.0007616955522 0.001586469728 -0.0008228411958 -2.182778684e-06 2.204527687e-06 -2.703851512e-05 0.0002546914992 -0.0002259693547 -0.09514525369 0.009891199054 -0.01934530156 0.0009355961184 0.03450721434 -0.004912592016 -8.228937531e-05 0.003253405897 -3.721124093e-05 2.223913856e-06 0.007458457053 -0.01526532561 0.001500893234 -1.369376318e-05 3.209480142e-07 0.0003940836267 -0.004288219066 0.0002952141536 --0.1005194016 -0.009264142144 0.0225627292 -0.001757872219 -0.03426744816 0.005548642329 0.0001278160563 -0.002838209301 4.802373536e-05 -8.048176446e-06 -0.00712814106 0.01810929238 -0.002240612355 1.824987624e-05 -3.049285247e-06 -0.0001854961787 0.004832619015 -0.0004945566679 -0 0 0.01610601675 0.6477046134 0.003010663585 5.098320252e-06 0.0003860339666 6.921990872e-06 0 0 0 0 0 0 0 0 0 0 -2.632020814e-06 1.017829471e-07 0.001217816109 0.09119604381 1.836049096e-05 4.927348139e-06 0.0003738700562 0.01818750344 0.000228353721 4.073785683e-06 1.65995238e-06 0.001905216577 0.07053359741 6.07949114e-05 2.10805873e-05 2.930220457e-07 0.0003505740402 0.01440555546 -1.625468401e-08 2.030833337e-09 0.0370693812 0.0002628466547 1.204595426e-07 0.009894901502 9.741695565e-05 4.592482751e-07 2.331910767e-05 5.32170686e-05 3.072498882e-05 0.03090800965 0.0001198068069 1.614048859e-06 2.818940949e-05 3.433252012e-07 0.0090783712 5.181160206e-05 -0.1704627769 0.01772112841 0.01027042485 0.004628324157 0.06107952276 0.002683957805 0.0008487851423 0.00531170188 3.189880298e-05 1.532205329e-07 0.01466130337 0.007437508492 0.005648395498 1.220583596e-05 7.369088076e-09 0.0007857580563 0.002163637057 0.001372343729 -0.1801490854 0.01660303094 0.01246057325 0.004202060473 0.06084309703 0.003172252254 0.0002738703029 0.004576106001 3.243660064e-05 4.102713176e-06 0.01343748628 0.009531136066 0.005369001143 1.256154631e-05 1.358545365e-06 0.0003670823877 0.002581141975 0.001262780364 -0 0 0.003918399502 -0.02039094106 0.01720063424 -4.582314283e-05 0.0004079992066 -0.0003702650134 0 0 0 0 0 0 0 0 0 0 -0.001425684665 6.645479882e-06 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.355752511e-05 2.704157405e-06 -0.0006311670552 0.0006883043836 -2.530739945e-05 -0.0001967340519 0.0002365257651 -3.046320666e-05 -3.623403488e-05 3.666305069e-05 0.0001239522319 -0.000543983154 0.0004403927956 -6.840869019e-06 7.026080354e-06 9.834531746e-06 -0.0001746731085 0.000171624588 -0.04768539088 0.008640778038 -0.000492189685 0.003179434128 0.01959138638 -0.0001138888539 0.0006292007354 0.003710106545 -2.667592969e-05 -3.684926098e-06 0.003261512552 -0.0004794957826 0.003190584801 -1.0970166e-05 -4.770007281e-07 0.0004948846003 -0.0001631456267 0.0009738164777 --0.05080926974 -0.00865168034 0.0002537294533 -0.003154382075 -0.02031724794 1.026510163e-05 -0.0001772363325 -0.003809740726 1.26327949e-05 2.222331061e-05 -0.003261399398 0.0003058363608 -0.003251686912 5.398807241e-06 7.647343272e-06 -0.0003460724394 0.0001020163159 -0.0009819273643 -0 0 -0.02839396476 0.03129593793 -0.002850865436 0.0002721188989 -0.0003295893607 5.680805746e-05 0 0 0 0 0 0 0 0 0 0 -0.0001725185548 1.914398461e-05 -0.001961155115 0.002298421795 -0.0002680683858 9.130215792e-05 -0.0005780643383 0.0004921412156 2.927215542e-05 -2.853721359e-05 2.414008475e-05 -0.001752522075 0.001746103708 3.424512807e-05 -3.394247185e-05 6.476001002e-06 -0.0004779746937 0.0004737187673 -0.000112038706 9.386981864e-07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.03479382587 0.006383125524 0.003695830944 -0.001122283863 0.01293637508 0.00125147057 -0.0003730971598 0.002153686714 -2.816000764e-05 3.112838768e-06 0.002250999793 0.002346703037 -0.0008004645966 -1.000530489e-05 4.387213065e-07 0.0003218548465 0.000826682122 -0.0002580870933 --0.0373463852 -0.006443151066 -0.00417548029 0.001316497784 -0.01339901504 -0.001460476367 0.0003392744731 -0.001761771596 4.297030339e-05 -1.37873247e-05 -0.002144695948 -0.002774389087 0.0009594443447 1.614904604e-05 -5.086577429e-06 -0.0002225572204 -0.0009330471043 0.0003016843129 -0 0 0.0177685223 0.1566651099 -0.004497792538 -0.0001487912127 -0.002094211486 9.909283477e-05 0 0 0 0 0 0 0 0 0 0 -0.0001873765451 2.070831076e-05 0.001073432902 0.01451567664 -0.0003100293102 9.464345931e-05 0.0004544407696 0.003548710735 -0.0002068528774 1.209919213e-05 2.758593513e-05 0.001227905224 0.009186640947 -6.918147603e-05 3.282259766e-07 7.275035435e-06 0.0003312210462 0.002639029718 -1.074426402e-05 2.160851095e-06 0.006547719413 -0.0002667044743 -1.873801878e-05 0.002109024414 -0.0001080391263 -2.197421534e-05 -1.731071912e-06 -6.154334503e-05 0.0001187645257 0.00450329216 -0.0001100442774 2.025404243e-06 -2.672526718e-05 7.310354324e-06 0.001620889149 -5.463607726e-05 -0.3628219876 0.002772902013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.03957019435 -0.006814206297 0.003921945367 0.001642570403 -0.01461888654 0.0009898640967 0.0004722899042 -0.001994818124 -5.449373155e-05 -6.1329264e-06 -0.002389138715 0.002751538001 0.001291246698 -2.110381117e-05 -2.004529967e-06 -0.0002507686782 0.000909508171 0.0004107153867 -0 0 0.009960119553 -0.180920893 -0.006342797635 -9.611160195e-05 0.002115751416 0.0001792876364 0 0 0 0 0 0 0 0 0 0 -0.0001942099972 2.142122421e-05 0.0006840658468 -0.01582269816 -0.0003326835659 9.692680987e-05 0.0002965068201 -0.00456267856 0.0001762426198 1.890912171e-05 2.973604476e-05 0.000703980555 -0.01151361996 3.283831481e-05 3.565485652e-05 7.781468194e-06 0.0001961007104 -0.003275606381 -1.121816458e-05 2.253418042e-06 -0.006064638579 -0.0003686374002 -1.979595785e-05 -0.001860905345 -0.0001521834405 -2.331101211e-05 3.732006934e-05 2.780243649e-05 0.000118174829 -0.004669110637 -0.0001510690406 4.720488523e-06 2.057745915e-05 7.724948379e-06 -0.001567883944 -7.572446267e-05 -0.0384916858 0.007039912724 -0.003287611888 -0.001804249466 0.01489694976 -0.0008935616566 -0.000632585911 0.002549783028 5.342170247e-05 1.012390773e-07 0.002597959137 -0.002336456564 -0.001399007748 2.044106771e-05 -9.393665962e-09 0.0003828756382 -0.000790206571 -0.0004602832206 --0.3729879912 -0.002684000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3373997713 0.04521630785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3872082933 0.003403729084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0344371351 0.008772255566 -2.961281559e-06 -0.0001747696216 0.01830475638 -2.775473604e-06 -0.0001446203448 0.005103211697 1.984210716e-07 8.334650189e-08 0.002618251876 1.463153173e-05 0.0006883271301 1.161877653e-07 -5.00341932e-09 0.0008636706895 8.510978088e-07 4.909321727e-05 -0.04061337699 0.009848303423 -1.192271925e-05 -0.0003187474295 0.02087178183 -1.373616737e-05 -0.0003726432004 0.005705571579 2.911104759e-09 3.411464918e-07 0.003156877159 2.1266383e-05 0.000307789749 4.728295365e-09 -1.623610824e-07 0.0008484529 2.92575975e-06 4.632329274e-05 -0.04394134777 0.01036353509 -3.681185882e-06 -0.0004347289753 0.02217294467 -1.60001485e-06 -0.0004414603868 0.005908672038 -1.21635763e-08 5.801795237e-07 0.003260859175 5.653108931e-06 0.0002720830813 -5.800215256e-09 -2.226984458e-07 0.0008323140263 9.252582037e-07 4.884137347e-05 -0 0 0.001966804418 0.001656243214 0.2543829714 -4.92499065e-05 -6.026290346e-05 -0.002756877332 0 0 0 0 0 0 0 0 0 0 -0.505203849 0.002354884006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01563945976 -0.003119416014 5.154048914e-05 0.007834721907 -0.006494053679 1.92148609e-05 0.002303226016 -0.001179565174 -5.577311322e-05 -2.44665582e-05 -0.001609134367 2.351384875e-05 0.006377969121 -2.874972503e-05 -1.66393018e-06 -0.000320809237 1.222433148e-05 0.002143134905 --0.01973373761 -0.003575829902 0.0001010019159 0.009617453001 -0.00764277864 3.643798659e-05 0.002265192809 -0.0006327060892 -2.25003212e-05 -8.231804412e-05 -0.001686515498 8.918366084e-05 0.007702311521 -9.91903709e-06 -2.88275679e-05 -0.0002744745267 3.565933523e-05 0.002537158761 --0.02123746629 -0.003616264719 1.818903829e-05 0.01071435117 -0.007835491057 2.484525742e-06 0.00116193222 0.0009145279612 -5.211474001e-06 -0.0001134624255 -0.001682733779 2.357646691e-05 0.008606800078 -2.436727193e-06 -4.08659555e-05 -0.0002219456539 9.481332705e-06 0.002787253292 -0 0 0.02482857437 0.003086860555 -0.02286561042 -0.0003992676863 -3.939177674e-05 0.0003825570231 0 0 0 0 0 0 0 0 0 0 -0.009888105663 4.609098272e-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.04797831787 -0.009569661317 -1.32911789e-05 -0.002336037496 -0.02067872685 -3.71574459e-06 -0.0006150650613 -0.004402151235 1.789745796e-05 7.871190857e-06 -0.003072868937 -2.792197932e-05 -0.003024647296 9.25133275e-06 5.494683625e-07 -0.0007745167974 -4.900411636e-06 -0.0007485176269 -0.02661600787 0.004822924003 0.0009270851034 0.0006427091378 0.01106826214 0.0002084568816 -6.100075612e-05 0.002272432223 3.111854847e-05 -5.348472591e-05 0.001659187501 0.0009841547418 0.000847803087 1.230746143e-05 -2.077495002e-05 0.0002482009781 0.0003233463694 0.0002094842576 -0.02835050412 0.004827455706 0.0004594354392 0.001319590866 0.01144287971 1.795487019e-05 -8.271670497e-05 0.002362891411 1.870337789e-05 -4.359484014e-05 0.001730064275 0.0005810933806 0.001357006578 7.843585621e-06 -1.716463183e-05 0.0001748793111 0.0001910030495 0.0003845630952 -0 0 0.003918399502 -0.02039094106 0.01720063424 -4.582314283e-05 0.0004079992066 -0.0003702650134 0 0 0 0 0 0 0 0 0 0 -0.001425684665 6.645479882e-06 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.355752511e-05 2.704157405e-06 -0.0006311670552 0.0006883043836 -2.530739945e-05 -0.0001967340519 0.0002365257651 -3.046320666e-05 -3.623403488e-05 3.666305069e-05 0.0001239522319 -0.000543983154 0.0004403927956 -6.840869019e-06 7.026080354e-06 9.834531746e-06 -0.0001746731085 0.000171624588 -0.04768539088 0.008640778038 -0.000492189685 0.003179434128 0.01959138638 -0.0001138888539 0.0006292007354 0.003710106545 -2.667592969e-05 -3.684926098e-06 0.003261512552 -0.0004794957826 0.003190584801 -1.0970166e-05 -4.770007281e-07 0.0004948846003 -0.0001631456267 0.0009738164777 --0.05080926974 -0.00865168034 0.0002537294533 -0.003154382075 -0.02031724794 1.026510163e-05 -0.0001772363325 -0.003809740726 1.26327949e-05 2.222331061e-05 -0.003261399398 0.0003058363608 -0.003251686912 5.398807241e-06 7.647343272e-06 -0.0003460724394 0.0001020163159 -0.0009819273643 -0.1700592441 0.03287084823 0.0009532993103 0.0006419445977 0.09827129803 0.0004118533782 0.0004312142635 0.0198058886 8.216776902e-23 3.856775522e-07 0.0004587991139 0.0002062032256 0.03259037505 -7.251263236e-23 1.11459849e-07 0.0003920623205 0.0001572157016 0.006464280337 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01130790896 0.003600722492 1.074665502e-05 0.00180243087 0.005316842928 3.911538398e-06 0.0005742782373 0.002020708646 5.630169482e-05 2.525842407e-05 0.0005000540728 9.57414195e-06 0.00161882133 2.899384902e-05 1.751218136e-06 0.0002817096278 3.360811556e-06 0.0005685019967 -0.01333954863 0.004213221832 2.358721178e-05 0.002184116978 0.006283978704 4.832665781e-06 0.0004664237693 0.002591427547 2.230821091e-05 8.862180603e-05 0.0007255469627 3.091306796e-05 0.001802251874 9.859590326e-06 3.087623492e-05 0.0003116872499 1.230173768e-05 0.000691021143 -0.01433025256 0.004508307728 5.166586976e-06 0.002367916012 0.006784509404 3.321687655e-08 0.0001146992471 0.003171719448 4.919982485e-06 0.0001203777875 0.0007915711175 9.813717789e-06 0.001969354726 2.320344877e-06 4.304740985e-05 0.0003262649949 4.032063644e-06 0.0007635384396 -0.1194341755 0.02630998496 -0.006907908957 -0.0009852540998 -0.01628766957 -0.002445774796 -0.0003483429162 -0.003038726364 -2.341475359e-21 3.668354772e-07 -0.002816307041 -0.0003839180668 -0.005267964019 5.579415261e-22 1.008033273e-07 -0.001484574785 -0.0001647889792 -0.0005141101614 -0.09344799125 0.00124992416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.09344799125 0.00124992416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.009733252129 0.003112396094 -0.0001771153477 -0.0007709545603 0.004149369725 -5.310387096e-05 -0.0002765753023 0.001504302642 2.354929695e-05 -7.486320925e-05 0.0005007511199 -0.0001512918218 -0.000452154984 8.992407885e-06 -2.839840974e-05 0.0002027099892 -6.233465657e-05 -0.0001831388586 -0.01053317898 0.003357464284 -8.502356271e-05 -0.0009882620773 0.004474313834 -4.72596034e-06 -0.0002195629196 0.001466725858 1.67352626e-05 -7.468228612e-05 0.000520537095 -8.902496575e-05 -0.0005810787771 6.94067311e-06 -2.863268661e-05 0.0002098191653 -3.687748644e-05 -0.0002345871782 -0.1308587366 0.02812647046 0.004322867039 -0.004932107872 -0.02569695423 0.001337319089 -0.002213371617 -0.005300586271 -3.259519618e-20 3.679306158e-07 0.0018515724 -0.001577028488 -0.009481621755 -3.416682594e-21 1.021967555e-07 0.0008140445939 -0.000790825814 -0.002304650533 -0.1014961073 0.00135206011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.008961455608 0.002877282633 -0.0001114856695 -0.0006984066776 0.003936678789 -4.193239502e-05 -0.0002623161115 0.001457610402 2.689799324e-06 -4.239930606e-05 0.0004791255782 -7.925826024e-05 -0.0004045071246 -8.5843282e-06 -6.661149634e-06 0.0002094047026 -3.118684399e-05 -0.0001809805889 -0.1014961073 0.00135206011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01116038238 0.00355081761 7.986093688e-05 -0.001233036666 0.00488166377 3.203104526e-06 -0.0003056444221 0.001660743839 -2.122318987e-05 -3.322043792e-05 0.0005798655643 8.829171704e-05 -0.0007820318671 -9.070173825e-06 -1.128363407e-05 0.0002364159412 3.594714038e-05 -0.0003193688218 -0.1373715249 0.02908285364 0.002423176885 0.005695724856 -0.03623790541 0.0008638405292 0.002236137163 -0.009590295671 1.136435824e-21 3.694396139e-07 0.0009158737222 0.001918324072 -0.01222119111 -3.083914667e-22 1.032346537e-07 0.0004030677959 0.0008366123078 -0.003519124359 -0.105197578 0.001398606728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.009356721288 0.00300054021 0.0001032604254 -0.0009653337184 0.004158941684 3.699920091e-05 -0.000369497327 0.001546283825 -5.798921268e-05 1.915404522e-05 0.0004767465952 8.217667714e-05 -0.000555308324 -2.000698027e-05 5.128836825e-06 0.0002212807268 3.01669932e-05 -0.0002508353186 -0.01076769437 0.003432643895 0.0001575522613 -0.00123943184 0.004778228208 3.791665903e-05 -0.0004689331853 0.001780967176 -4.467482933e-05 -2.434781494e-06 0.0005779347254 0.0001506312322 -0.000790251472 -1.837169587e-05 6.080515604e-07 0.0002411419847 5.958427539e-05 -0.000326617432 -0.105197578 0.001398606728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2369589711 0.0361913502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.04685511236 0.009805302005 0.0006987497146 4.749974048e-05 0.01804059594 0.004458474062 -0.0001821912884 -9.716042881e-06 2.418717797e-08 6.414750494e-07 0.001906752865 -3.396763532e-05 -3.502409976e-06 2.923798667e-07 1.061015777e-06 0.0004601087572 -1.324680352e-05 -1.149372869e-06 -0.2845867534 0.003045126136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.02963370418 0.00727515007 8.952718042e-05 0.0001125121899 0.01378183214 0.0001509402249 0.0002209662384 0.003312037959 3.073059991e-09 -2.881832626e-07 0.002178783531 -0.000104079926 -7.721932267e-05 4.312426695e-09 1.49331567e-07 0.0005518027389 -1.482524127e-05 -1.227689636e-05 -0.03229825007 0.007718017719 6.057916767e-05 0.0001814364015 0.01462282785 0.0002276435206 0.0008450651064 0.002732398689 -4.137426182e-08 -3.599429273e-07 0.002144340698 -5.128207676e-05 -8.028096824e-05 -1.734974764e-08 1.481263293e-07 0.0005352564234 -8.46246485e-06 -1.500587185e-05 -0 0 -0.01425208821 -0.002541995715 -0.04216191161 0.0002924685978 4.86814962e-05 0.0004229750051 0 0 0 0 0 0 0 0 0 0 -0.06113346103 0.006783838635 0.000976489465 4.212774132e-05 0.01648540598 -7.653224584e-05 8.379408864e-05 1.613420714e-07 -1.37236736e-07 -3.483990164e-06 0.001740014552 0.000182628375 -2.505838647e-06 -8.127084255e-07 -2.187290171e-06 -0.0005017966851 7.575921759e-05 1.36377794e-06 --0.1292437093 -0.001082847526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01439879631 -0.002641541192 -0.000758418995 -0.003394790354 -0.005046597991 -0.0004003997432 -0.001343191379 -0.0003672807456 -2.375209502e-05 6.953811075e-05 -0.001163983267 -0.0004364742619 -0.001932381701 -9.046626116e-06 2.651414873e-05 -0.0001785081948 -0.0001806909294 -0.0006724140995 --0.01561019477 -0.002693134624 -0.0002993265855 -0.004471690249 -0.005167425372 -0.0003534880862 -0.002224227597 0.0004229131328 -1.772676757e-05 7.03920009e-05 -0.00110656558 -0.0002138734987 -0.002539526678 -7.288798779e-06 2.718170735e-05 -0.0001427319895 -8.671681529e-05 -0.0008563470425 -0 0 -0.1799157195 -0.004737701708 0.00378978923 0.002371035168 3.182141118e-05 -5.869396396e-05 0 0 0 0 0 0 0 0 0 0 -0.001196535069 0.0001327767264 -0.01694075714 -0.0002631167188 0.00118367753 -0.0003323363341 -0.004025038719 -6.998433909e-05 3.918803164e-06 0.0002120243667 -1.172999439e-05 -0.01066175029 -0.0002870099872 2.027434681e-05 5.74558505e-05 -3.133588715e-05 -0.003062776753 -7.385942356e-05 --0.3964904072 -0.003321930782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01942047084 0.003562795985 -0.006961441733 -0.0002268649279 0.00730847668 -0.00229063375 3.617161833e-05 0.001319128448 3.284978529e-05 4.518118516e-05 0.00114512229 -0.00481655732 -0.0002126996768 1.122498092e-05 1.910775535e-05 0.0001614208396 -0.001638442097 -5.551886249e-05 -0.02083849763 0.003595142811 -0.007560665883 -0.000550738119 0.007546460908 -0.002554544955 0.0001583403702 0.001092692461 6.361932008e-05 2.704620506e-05 0.00113769011 -0.00527137823 -0.0004003990306 2.346192773e-05 1.141693602e-05 0.0001124638918 -0.001746924897 -0.0001181519707 -0 0 -0.02839396476 0.03129593793 -0.002850865436 0.0002721188989 -0.0003295893607 5.680805746e-05 0 0 0 0 0 0 0 0 0 0 -0.0001725185548 1.914398461e-05 -0.001961155115 0.002298421795 -0.0002680683858 9.130215792e-05 -0.0005780643383 0.0004921412156 2.927215542e-05 -2.853721359e-05 2.414008475e-05 -0.001752522075 0.001746103708 3.424512807e-05 -3.394247185e-05 6.476001002e-06 -0.0004779746937 0.0004737187673 -0.000112038706 9.386981864e-07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.03479382587 0.006383125524 0.003695830944 -0.001122283863 0.01293637508 0.00125147057 -0.0003730971598 0.002153686714 -2.816000764e-05 3.112838768e-06 0.002250999793 0.002346703037 -0.0008004645966 -1.000530489e-05 4.387213065e-07 0.0003218548465 0.000826682122 -0.0002580870933 --0.0373463852 -0.006443151066 -0.00417548029 0.001316497784 -0.01339901504 -0.001460476367 0.0003392744731 -0.001761771596 4.297030339e-05 -1.37873247e-05 -0.002144695948 -0.002774389087 0.0009594443447 1.614904604e-05 -5.086577429e-06 -0.0002225572204 -0.0009330471043 0.0003016843129 -0.1194341755 0.02630998496 -0.006907908957 -0.0009852540998 -0.01628766957 -0.002445774796 -0.0003483429162 -0.003038726364 6.703175953e-21 3.668354772e-07 -0.002816307041 -0.0003839180668 -0.005267964019 2.011504658e-21 1.008033273e-07 -0.001484574785 -0.0001647889792 -0.0005141101614 -0.09344799125 0.00124992416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.09344799125 0.00124992416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.009733252129 0.003112396094 -0.0001771153477 -0.0007709545603 0.004149369725 -5.310387096e-05 -0.0002765753023 0.001504302642 2.354929695e-05 -7.486320925e-05 0.0005007511199 -0.0001512918218 -0.000452154984 8.992407885e-06 -2.839840974e-05 0.0002027099892 -6.233465657e-05 -0.0001831388586 -0.01053317898 0.003357464284 -8.502356271e-05 -0.0009882620773 0.004474313834 -4.72596034e-06 -0.0002195629196 0.001466725858 1.67352626e-05 -7.468228612e-05 0.000520537095 -8.902496575e-05 -0.0005810787771 6.94067311e-06 -2.863268661e-05 0.0002098191653 -3.687748644e-05 -0.0002345871782 -0.08387972296 0.02105863846 0.05005689781 0.001512164203 0.002699548955 0.0145241357 0.0002813978978 0.0004662178053 9.662152118e-20 3.489139219e-07 0.01728770851 0.00071479523 0.000851522723 2.042380143e-20 9.116566084e-08 0.005621459083 0.0001727270712 4.088765404e-05 -0.01130790896 0.003600722492 0.003158218516 5.792732365e-05 0.003913874614 0.001691799281 0.0008937821408 1.331699961e-05 3.752332473e-06 0.0001999055971 0.0003510604875 0.001612065347 4.3225899e-05 1.928991703e-05 5.465176939e-05 0.0001431243471 0.0006516734886 1.557798109e-05 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.007101904242 0.002299192834 0.001329951445 0.0002721332877 0.002739867515 0.0005835332379 0.0001640008569 0.0008732354652 2.485942908e-05 6.324064416e-05 0.0003456036577 0.0007404381656 0.0001134381561 8.201496907e-06 2.611943062e-05 0.000131835164 0.0003158585811 4.853663576e-05 -0.007742212424 0.00250039862 0.001399184075 0.0004124563239 0.002950763731 0.0006723901658 0.0004202981006 0.0006782708169 5.692479906e-05 4.633283248e-05 0.0003423051464 0.0008075883877 0.0001714533907 2.076111344e-05 1.904483325e-05 0.0001349335136 0.0003372836161 7.207383584e-05 -0.09190329759 0.02251256219 -0.03132486473 0.007569780194 0.004259061474 -0.007941615861 0.00178800283 0.0008132445644 1.65225715e-19 3.499555581e-07 -0.01136575078 0.002936179717 0.001532625573 4.758595996e-20 9.24258653e-08 -0.003082443823 0.000828920886 0.0001832909768 -0.01228179146 0.003894950913 -0.001728642288 0.0003658398563 0.004526516035 0.001753712509 -0.000702639857 9.602564866e-05 -2.651601011e-05 -8.475586517e-05 0.0004011722384 -0.001129494167 0.000227421093 -3.896919088e-05 -5.28486271e-07 0.0001607835911 -0.0004515887087 8.678304065e-05 -0.07405701869 0.0009987954045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.07405701869 0.0009987954045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.008203226329 0.002644394311 -0.001314225698 0.0005146142731 0.003219406804 -0.000455724515 0.0005850795311 0.0007679922424 -7.219043091e-05 2.060993396e-05 0.0003813195425 -0.0008009367352 0.0002307467086 -2.713092876e-05 7.505231074e-06 0.0001520377492 -0.0003287746174 9.812188467e-05 -0.09647728889 0.02327805589 -0.01755910775 -0.008741776604 0.006006138526 -0.005129882394 -0.001806393263 0.001471394941 -1.488147112e-19 3.513908349e-07 -0.005622028322 -0.003571618568 0.001975454254 -1.231592707e-19 9.33645315e-08 -0.001526247883 -0.0008769129728 0.0002798791973 -0.01272969722 0.004029040213 -0.001101610682 -0.0003987808328 0.004857274607 0.001796022252 -0.0004584481049 -0.000123462914 2.25921493e-05 -0.0001324599984 0.0004324405021 -0.0006475596937 -0.0002850269268 1.849747406e-05 -5.740893016e-05 0.0001719761245 -0.0002673648537 -0.0001077165141 -0.07732347439 0.001041581991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.007856688933 0.00253576666 -0.00118305308 0.0004374974595 0.003155108634 -0.000416648173 0.0002780633106 0.00103383698 -4.716025083e-05 2.05677998e-06 0.0003988735063 -0.0007372051703 0.0001982609349 -1.675584658e-05 -5.592552784e-07 0.0001568299285 -0.0003019220081 8.65622482e-05 -0.07732347439 0.001041581991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2596254502 0.03869006173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.05089046268 0.01060652968 -0.0003824587499 0.0002999844829 0.02086450253 0.004621636751 0.00014322826 -7.006002461e-05 -1.709196773e-07 -2.719722389e-07 0.002178930247 2.379943594e-05 -1.842695984e-05 -5.906612671e-07 -1.026009364e-08 0.0005168787824 9.179607583e-06 -6.403016659e-06 -0.02729124001 0.007009776136 3.072029915e-05 6.771980704e-05 0.01355314557 2.975357614e-05 6.605900071e-05 0.003681131602 9.479516841e-09 -1.399071388e-07 0.002508671586 -0.0001211251886 -0.000171997504 -3.440018984e-08 1.903162381e-08 0.0006419968864 -7.897811031e-06 -1.562865113e-05 -0.3090134293 0.003160407578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0342214655 0.008162491365 -5.69008041e-05 0.0002263749068 0.01595411757 -0.0001542894859 0.001176380039 0.003093839428 5.246967646e-08 -1.601110825e-07 0.002388742974 5.085969506e-05 -0.0001080443443 2.26729057e-08 5.837395973e-08 0.0006031057791 8.248973596e-06 -2.042911148e-05 -0 0 0.00891874556 -0.01272503923 -0.06651858381 -0.0001599181737 0.0003093223285 0.0007378142145 0 0 0 0 0 0 0 0 0 0 -0.06639852004 0.00733817131 -0.0005344788445 0.0002660576367 0.01906587764 -7.93330263e-05 -6.587406905e-05 1.163398477e-06 9.697889791e-07 1.477140235e-06 0.001988391053 -0.0001279586368 -1.318377587e-05 1.641820943e-06 2.115124247e-08 -0.0005637103305 -5.249869426e-05 7.597441267e-06 --0.01239418578 -0.00249267794 -0.0005346804122 -0.003035801365 -0.004808305177 -0.0002059867642 -0.001052056744 -0.0008508631221 -2.664546471e-06 4.107006385e-05 -0.001541788131 -0.0001946562682 -0.001593711365 8.512049406e-06 6.329130382e-06 -0.0002384688213 -0.0001134363865 -0.0006822593754 --0.1501473255 -0.001147515408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01653971161 -0.002848229806 0.0002811514925 -0.005579246805 -0.005637877484 0.0002395829012 -0.003096254867 0.0004788559335 2.248058861e-05 3.131201812e-05 -0.001232686932 0.0002121119427 -0.003417765142 9.525109576e-06 1.071182887e-05 -0.0001608247636 8.452912152e-05 -0.001165837571 -0 0 0.1125885906 -0.02371657818 0.005979126726 -0.001296452394 0.0002021933131 -0.0001023825058 0 0 0 0 0 0 0 0 0 0 -0.001299585471 0.0001436264063 0.009272477203 -0.001661712928 0.001368959369 -0.0003444985423 0.003164252787 -0.0005046400657 -2.769238202e-05 -8.989397448e-05 -1.340437979e-05 0.007470159186 -0.001510023539 -4.095792064e-05 -5.556019232e-07 -3.520223196e-05 0.002122405504 -0.0004114618782 --0.03802255282 -0.007646970956 0.0001378825295 0.0009051687992 -0.01531087273 3.98334502e-05 0.0002809465251 -0.003175431275 8.550465571e-07 -1.321274159e-05 -0.002944261803 0.0002311483906 0.0007557914876 -2.73908016e-06 -2.090025741e-06 -0.0005757256538 4.547365142e-05 0.0002382879246 -0.2025121887 0.001547718923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.02207933638 0.003802183827 0.007101582686 -0.0006871459603 0.008233504884 0.001731388738 0.0002204190536 0.001237233436 -8.068023439e-05 1.203078833e-05 0.001267358895 0.005227960844 -0.000538868074 -3.066039264e-05 4.499212036e-06 0.0001267198675 0.001702853436 -0.0001608530184 -0 0 0.0177685223 0.1566651099 -0.004497792538 -0.0001487912127 -0.002094211486 9.909283477e-05 0 0 0 0 0 0 0 0 0 0 -0.0001873765451 2.070831076e-05 0.001073432902 0.01451567664 -0.0003100293102 9.464345931e-05 0.0004544407696 0.003548710735 -0.0002068528774 1.209919213e-05 2.758593513e-05 0.001227905224 0.009186640947 -6.918147603e-05 3.282259766e-07 7.275035435e-06 0.0003312210462 0.002639029718 -1.074426402e-05 2.160851095e-06 0.006547719413 -0.0002667044743 -1.873801878e-05 0.002109024414 -0.0001080391263 -2.197421534e-05 -1.731071912e-06 -6.154334503e-05 0.0001187645257 0.00450329216 -0.0001100442774 2.025404243e-06 -2.672526718e-05 7.310354324e-06 0.001620889149 -5.463607726e-05 -0.3628219876 0.002772902013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.03957019435 -0.006814206297 0.003921945367 0.001642570403 -0.01461888654 0.0009898640967 0.0004722899042 -0.001994818124 -5.449373155e-05 -6.1329264e-06 -0.002389138715 0.002751538001 0.001291246698 -2.110381117e-05 -2.004529967e-06 -0.0002507686782 0.000909508171 0.0004107153867 -0.1308587366 0.02812647046 0.004322867039 -0.004932107872 -0.02569695423 0.001337319089 -0.002213371617 -0.005300586271 -2.915412484e-20 3.679306158e-07 0.0018515724 -0.001577028488 -0.009481621755 -4.647527346e-21 1.021967555e-07 0.0008140445939 -0.000790825814 -0.002304650533 -0.1014961073 0.00135206011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.008961455608 0.002877282633 -0.0001114856695 -0.0006984066776 0.003936678789 -4.193239502e-05 -0.0002623161115 0.001457610402 2.689799324e-06 -4.239930606e-05 0.0004791255782 -7.925826024e-05 -0.0004045071246 -8.5843282e-06 -6.661149634e-06 0.0002094047026 -3.118684399e-05 -0.0001809805889 -0.1014961073 0.00135206011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01116038238 0.00355081761 7.986093688e-05 -0.001233036666 0.00488166377 3.203104526e-06 -0.0003056444221 0.001660743839 -2.122318987e-05 -3.322043792e-05 0.0005798655643 8.829171704e-05 -0.0007820318671 -9.070173825e-06 -1.128363407e-05 0.0002364159412 3.594714038e-05 -0.0003193688218 -0.09190329759 0.02251256219 -0.03132486473 0.007569780194 0.004259061474 -0.007941615861 0.00178800283 0.0008132445644 2.334769637e-20 3.499555581e-07 -0.01136575078 0.002936179717 0.001532625573 -2.40942032e-20 9.24258653e-08 -0.003082443823 0.000828920886 0.0001832909768 -0.01228179146 0.003894950913 -0.001728642288 0.0003658398563 0.004526516035 0.001753712509 -0.000702639857 9.602564866e-05 -2.651601011e-05 -8.475586517e-05 0.0004011722384 -0.001129494167 0.000227421093 -3.896919088e-05 -5.28486271e-07 0.0001607835911 -0.0004515887087 8.678304065e-05 -0.07405701869 0.0009987954045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.07405701869 0.0009987954045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.008203226329 0.002644394311 -0.001314225698 0.0005146142731 0.003219406804 -0.000455724515 0.0005850795311 0.0007679922424 -7.219043091e-05 2.060993396e-05 0.0003813195425 -0.0008009367352 0.0002307467086 -2.713092876e-05 7.505231074e-06 0.0001520377492 -0.0003287746174 9.812188467e-05 -0.100694373 0.02406686725 0.01960263606 0.03789374994 0.006719494605 0.00434237629 0.01136097372 0.001418578857 -1.093193414e-19 3.51000304e-07 0.007472377888 0.01206100848 0.002758518458 -1.157535659e-19 9.370348985e-08 0.001690212413 0.003978008951 0.0008216559001 -0.01333954863 0.004213221832 0.0009461676399 0.002310460625 0.005235054629 0.001817891518 0.0005523748418 0.0006924176221 0.0001873764644 3.593474513e-05 0.0004584371371 0.0007913804954 0.00119651308 7.872495437e-05 5.110497643e-09 0.0001806217019 0.0003129364096 0.0004834577794 -0.007101904242 0.002299192834 0.00115655099 0.0002706189155 0.002914782343 0.0004495228152 0.0001198195193 0.001051427225 1.285044869e-07 7.117234034e-05 0.0004590729926 0.0006561289617 0.0001010772535 2.541597378e-06 2.533717161e-05 0.0001556579015 0.0002894001111 5.761452685e-05 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.008691691537 0.002796682582 0.001234425989 0.0006420748931 0.003512507647 0.0003088754775 0.0008144649172 0.0008695819866 9.154987635e-05 9.167783518e-06 0.0004247806233 0.0007943398685 0.0003105452934 3.545509722e-05 2.957678481e-06 0.0001713101257 0.000320480284 0.0001335839024 -0.1057058927 0.02488521192 0.01098822938 -0.04376067576 0.009475847124 0.002804955574 -0.01147782656 0.002566619988 5.312630697e-19 3.524398656e-07 0.003696185226 -0.01467121429 0.003555550108 3.217851459e-20 9.465513146e-08 0.0008368954196 -0.004208323995 0.001254641106 -0.01382602983 0.004358268067 0.000602963601 -0.002518499274 0.005617587062 0.001861749632 0.000360405401 -0.0008902610764 -0.0001596483423 5.61603173e-05 0.0004941687553 0.0004537129329 -0.001499590216 -3.73683099e-05 5.551482003e-07 0.0001931952141 0.0001852752201 -0.0006000756174 -0.007415150117 0.002397686091 -0.001071222407 0.0003740479184 0.003079349481 -0.0003966380872 0.0001687772507 0.001115390579 -2.770420066e-06 -3.215237116e-05 0.0004567935759 -0.0006802886877 0.0001387590893 5.923548986e-06 -1.950867732e-05 0.0001644857691 -0.0002799363472 7.985253164e-05 -0.08192773929 0.001101565753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.08192773929 0.001101565753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2725469077 0.04000563826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.05274639154 0.01097167476 -0.0002437292244 -0.0003269957055 0.0223890996 0.004733137503 9.345146552e-05 9.007817093e-05 1.45626844e-07 -4.250495496e-07 0.002348760956 1.364465253e-05 2.309451451e-05 2.80368702e-07 -1.114543615e-06 0.0005528599608 5.43482242e-06 7.947527868e-06 -0.02849498313 0.007310062249 -2.845380195e-05 9.360193027e-05 0.01431834932 -2.625317588e-05 9.305041937e-05 0.003905072469 -2.043683011e-07 6.320357366e-08 0.00249621538 0.0001255852133 -0.0002361185746 -8.017446485e-08 -1.465364065e-08 0.0006784066253 7.639542231e-06 -2.166098425e-05 -0.03278315052 0.008023721507 -7.96385514e-05 0.000180881206 0.01587054021 -0.000107772728 0.0003746480656 0.003921172991 -5.829831391e-09 -9.372604805e-09 0.002514611773 0.000103625479 -0.0001349596611 -8.810386799e-09 -3.197407643e-09 0.0006564195883 1.417110974e-05 -2.189512589e-05 -0.3225709623 0.003215066668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.004999389963 0.01469520216 -0.09380466362 -0.0001032990563 -0.0003125038511 0.001334919593 0 0 0 0 0 0 0 0 0 0 -0.06882001364 0.007590798436 -0.0003406069656 -0.000290014016 0.02045904678 -8.124700019e-05 -4.298054234e-05 -1.495814588e-06 -8.262788148e-07 2.30853632e-06 0.00214337071 -7.336103018e-05 1.652323041e-05 -7.793218081e-07 2.297638119e-06 -0.0006029515659 -3.10820564e-05 -9.430067015e-06 --0.01294085994 -0.002599459748 0.0004952325002 -0.004196067298 -0.005079779657 0.0001817531689 -0.001481922526 -0.0009026252012 5.744478802e-05 -1.855355508e-05 -0.001534132752 0.0002018238258 -0.002187850678 1.983852441e-05 -4.873194382e-06 -0.0002519931665 0.0001097268676 -0.0009455972537 --0.01592908885 -0.00291334071 0.0006746486355 -0.005457664396 -0.005811436067 0.0002858891502 -0.002277379819 -0.0004348293582 4.505955287e-05 2.261592936e-06 -0.001343394599 0.0004345684724 -0.003377309855 1.848246497e-05 -5.677067714e-07 -0.0002123517473 0.0001727183351 -0.001199211179 --0.1559030454 -0.001121869329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.06311137211 0.02738851366 0.008431778596 -0.0008374427105 -0.0002042729644 -0.000185239604 0 0 0 0 0 0 0 0 0 0 -0.00134698017 0.0001485709524 0.005909065168 0.001811336993 0.001468991058 -0.0003528098503 0.002064565053 0.000648830119 2.359444073e-05 -0.0001404900497 -1.444914721e-05 0.004282779084 0.001892512973 1.944146279e-05 -6.035447609e-05 -3.765274421e-05 0.001256578444 0.0005107131401 --0.03969962526 -0.007974553341 -0.000127709765 0.001251119141 -0.01617531686 -3.514718933e-05 0.000395740046 -0.003368607969 -1.843389438e-05 5.96890547e-06 -0.002929642778 -0.000239659647 0.001037552317 -6.383810294e-06 1.609241884e-06 -0.0006083769348 -4.398660325e-05 0.0003302620897 -0.02148446292 0.003929387366 0.006192523127 -0.000364721385 0.008416114191 0.001635533856 6.132894752e-05 0.001561736582 -6.231857172e-05 1.469430908e-06 0.001321626472 0.004795526655 -0.0003717447305 -2.293289386e-05 -4.091250377e-07 0.0001920247828 0.001566149403 -9.901464079e-05 -0.208119456 0.00149761561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.009960119553 -0.180920893 -0.006342797635 -9.611160195e-05 0.002115751416 0.0001792876364 0 0 0 0 0 0 0 0 0 0 -0.0001942099972 2.142122421e-05 0.0006840658468 -0.01582269816 -0.0003326835659 9.692680987e-05 0.0002965068201 -0.00456267856 0.0001762426198 1.890912171e-05 2.973604476e-05 0.000703980555 -0.01151361996 3.283831481e-05 3.565485652e-05 7.781468194e-06 0.0001961007104 -0.003275606381 -1.121816458e-05 2.253418042e-06 -0.006064638579 -0.0003686374002 -1.979595785e-05 -0.001860905345 -0.0001521834405 -2.331101211e-05 3.732006934e-05 2.780243649e-05 0.000118174829 -0.004669110637 -0.0001510690406 4.720488523e-06 2.057745915e-05 7.724948379e-06 -0.001567883944 -7.572446267e-05 -0.0384916858 0.007039912724 -0.003287611888 -0.001804249466 0.01489694976 -0.0008935616566 -0.000632585911 0.002549783028 5.342170247e-05 1.012390773e-07 0.002597959137 -0.002336456564 -0.001399007748 2.044106771e-05 -9.393665962e-09 0.0003828756382 -0.000790206571 -0.0004602832206 --0.3729879912 -0.002684000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1373715249 0.02908285364 0.002423176885 0.005695724856 -0.03623790541 0.0008638405292 0.002236137163 -0.009590295671 6.430391744e-21 3.694396139e-07 0.0009158737222 0.001918324072 -0.01222119111 1.319499979e-21 1.032346537e-07 0.0004030677959 0.0008366123078 -0.003519124359 -0.105197578 0.001398606728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.009356721288 0.00300054021 0.0001032604254 -0.0009653337184 0.004158941684 3.699920091e-05 -0.000369497327 0.001546283825 -5.798921268e-05 1.915404522e-05 0.0004767465952 8.217667714e-05 -0.000555308324 -2.000698027e-05 5.128836825e-06 0.0002212807268 3.01669932e-05 -0.0002508353186 -0.01076769437 0.003432643895 0.0001575522613 -0.00123943184 0.004778228208 3.791665903e-05 -0.0004689331853 0.001780967176 -4.467482933e-05 -2.434781494e-06 0.0005779347254 0.0001506312322 -0.000790251472 -1.837169587e-05 6.080515604e-07 0.0002411419847 5.958427539e-05 -0.000326617432 -0.105197578 0.001398606728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.09647728889 0.02327805589 -0.01755910775 -0.008741776604 0.006006138526 -0.005129882394 -0.001806393263 0.001471394941 -1.932839409e-19 3.513908349e-07 -0.005622028322 -0.003571618568 0.001975454254 -7.890179923e-20 9.33645315e-08 -0.001526247883 -0.0008769129728 0.0002798791973 -0.01272969722 0.004029040213 -0.001101610682 -0.0003987808328 0.004857274607 0.001796022252 -0.0004584481049 -0.000123462914 2.25921493e-05 -0.0001324599984 0.0004324405021 -0.0006475596937 -0.0002850269268 1.849747406e-05 -5.740893016e-05 0.0001719761245 -0.0002673648537 -0.0001077165141 -0.07732347439 0.001041581991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.007856688933 0.00253576666 -0.00118305308 0.0004374974595 0.003155108634 -0.000416648173 0.0002780633106 0.00103383698 -4.716025083e-05 2.05677998e-06 0.0003988735063 -0.0007372051703 0.0001982609349 -1.675584658e-05 -5.592552784e-07 0.0001568299285 -0.0003019220081 8.65622482e-05 -0.07732347439 0.001041581991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1057058927 0.02488521192 0.01098822938 -0.04376067576 0.009475847124 0.002804955574 -0.01147782656 0.002566619988 9.758220076e-20 3.524398656e-07 0.003696185226 -0.01467121429 0.003555550108 -1.846619199e-19 9.465513146e-08 0.0008368954196 -0.004208323995 0.001254641106 -0.01382602983 0.004358268067 0.000602963601 -0.002518499274 0.005617587062 0.001861749632 0.000360405401 -0.0008902610764 -0.0001596483423 5.61603173e-05 0.0004941687553 0.0004537129329 -0.001499590216 -3.73683099e-05 5.551482003e-07 0.0001931952141 0.0001852752201 -0.0006000756174 -0.007415150117 0.002397686091 -0.001071222407 0.0003740479184 0.003079349481 -0.0003966380872 0.0001687772507 0.001115390579 -2.770420066e-06 -3.215237116e-05 0.0004567935759 -0.0006802886877 0.0001387590893 5.923548986e-06 -1.950867732e-05 0.0001644857691 -0.0002799363472 7.985253164e-05 -0.08192773929 0.001101565753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.08192773929 0.001101565753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1109668337 0.02573138272 0.006159436133 0.0505359524 0.01336286194 0.001811859509 0.0115958813 0.004643758879 5.636787922e-19 3.538853313e-07 0.001828304915 0.0178463127 0.004582871844 -7.023343332e-20 9.561643783e-08 0.000414382203 0.004451973605 0.001915795047 -0.01433025256 0.004508307728 0.0003842501992 0.002745270152 0.006028071651 0.001906665859 0.0002351520078 0.001144634046 0.0001360234504 8.776968441e-05 0.0005326853761 0.0002601219346 0.001879436886 1.773758519e-05 6.030518863e-05 0.0002066439988 0.0001096929156 0.0007448235646 -0.007742212424 0.00250039862 0.0009921892382 0.0005170068951 0.003253207997 0.0003499750556 0.0002377388969 0.001183245131 5.972731012e-05 1.452495402e-05 0.0004545254772 0.0007053380137 0.0001904888013 1.380566131e-05 1.502095406e-05 0.000173814294 0.0002707820607 0.0001106739421 -0.008691691537 0.002796682582 0.001052380216 0.0007033466162 0.003633281696 0.0002974906806 0.0004714561021 0.001223975599 8.946662658e-05 6.6892802e-08 0.0004603541383 0.0007339862913 0.0003465094962 3.423257946e-05 1.19744749e-08 0.0001865634761 0.000288600356 0.0001543787017 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/vdrpre_ref.dat b/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/vdrpre_ref.dat deleted file mode 100644 index a8d593de95..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/vdrpre_ref.dat +++ /dev/null @@ -1,640 +0,0 @@ -0.6694055725 0.06219841 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1941474381 0.02670129332 0.0001545970177 3.894924197e-05 0.08315624128 0.01174961544 3.713843012e-05 7.08879568e-06 1.55908247e-10 2.058422801e-09 0.01035635344 7.157279642e-07 2.837853214e-07 4.431640961e-09 2.05986831e-08 0.001479133863 2.692725831e-07 8.480290127e-08 -0.10487494 0.02137139641 8.159923673e-07 1.694623695e-05 0.0630193727 1.969366766e-06 3.641970523e-05 0.01288793893 6.992848398e-10 2.750226758e-10 0.0137090032 2.236040806e-05 0.0002926785244 4.65602094e-10 1.429530929e-11 0.002647857887 2.155335008e-07 4.239464409e-06 -0.1236508398 0.02302016941 6.026623049e-06 4.651762007e-05 0.06932411731 3.904310843e-05 0.0002977184354 0.0125620132 3.798839209e-13 1.313231293e-09 0.01373566965 1.463002787e-05 5.256453381e-05 2.267515839e-12 8.537673441e-10 0.002309598239 6.958423546e-07 3.105328211e-06 -0.1347388705 0.02382332043 2.622839712e-06 7.981249378e-05 0.07246500021 7.707068771e-05 0.00169911554 0.01100740649 3.007177114e-11 2.796265714e-09 0.01343303504 3.256425472e-06 3.759058852e-05 1.449892095e-11 1.152092493e-09 0.002123263756 2.123237178e-07 3.12424318e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2533107753 0.01847339991 0.0002160463982 3.454426432e-05 0.07598775572 -0.0002016888391 -1.708084361e-05 -1.177146903e-07 -8.846149377e-10 -1.117974082e-08 0.009450729571 -3.848140556e-06 2.03037403e-07 -1.231833091e-08 -4.246430455e-08 -0.00161315006 -1.539985112e-06 -1.006221123e-07 --0.04762845107 -0.007599673277 -1.42021773e-05 -0.0007596803879 -0.02235764196 -1.363410858e-05 -0.0005800208311 -0.002978940484 -1.965582195e-07 -8.073354195e-08 -0.008425326989 3.593466923e-05 0.002711929415 -1.152094813e-07 4.754028204e-09 -0.0009835430088 3.095711128e-06 0.0001850712718 --0.06008102278 -0.00835841531 -5.10538294e-05 -0.001403559632 -0.02538493777 -0.0001035698112 -0.001809746316 -0.001393035235 -2.936174145e-09 -3.168803844e-07 -0.007338080823 6.13531433e-05 0.001315405778 -4.756803838e-09 1.51588273e-07 -0.0007471550672 8.480968333e-06 0.0001700809725 --0.06512117552 -0.008312938818 -1.295966395e-05 -0.001967062548 -0.02560773364 -0.0001196764565 -0.004472104747 0.001703696017 1.288422506e-08 -5.46849858e-07 -0.006931983445 1.358102388e-05 0.001189102529 6.091138599e-09 2.114130631e-07 -0.0005661915429 2.175729761e-06 0.0001782926333 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.004957926818 0.0003615707415 -0.003748109626 -0.0002157526893 0.005456037852 -0.000875820756 0.0008204762176 5.106036342e-05 2.52602322e-08 6.803628469e-07 -6.371038951e-05 0.0002246524599 2.325519343e-05 3.073010013e-07 1.115454532e-06 -0.0001007369912 6.225817468e-05 5.44948778e-06 --0.1461132929 -0.02331407515 3.662434766e-06 0.0002265098739 -0.07119244679 2.636546029e-06 0.0001548916804 -0.01111744126 6.307506013e-08 2.597296735e-08 -0.01608934972 -4.267132539e-05 -0.001286088066 3.70730936e-08 -1.569890446e-09 -0.002374528204 -1.240988832e-06 -6.4638539e-05 -0.08103467301 0.0112734674 -0.0004686172959 -9.37962058e-05 0.03676243403 -0.0005925091338 4.873576023e-05 0.005003236429 4.060807695e-09 -2.05887551e-07 0.00721917587 0.0006770409101 0.0001447883634 5.902203939e-09 1.092439988e-07 0.0006756350788 7.69024521e-05 1.404298651e-05 -0.0869321288 0.01109718094 -0.0003273470979 -0.000242265512 0.03739730077 -0.0008648633439 0.0003183643267 0.004401886937 -4.623999469e-08 -2.101121322e-07 0.007126960345 0.0003347339153 0.000187481984 -1.960677718e-08 8.87983004e-08 0.0004461235677 4.383044367e-05 2.459940297e-05 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0007148427085 5.213191273e-05 -0.0004339017614 0.001884679489 -0.001235633205 0.0002406126468 0.0001178344048 -0.0003590647516 1.886855276e-07 -9.157277618e-08 0.000131114658 3.692718216e-05 -0.0001414793257 5.190580118e-07 -6.589630773e-07 2.081871347e-05 9.715965077e-06 -3.495186543e-05 -4.128812191e-05 6.588000022e-06 0.0001739204764 -6.674025541e-05 -8.71279795e-05 0.0001395947355 -5.956422424e-05 -7.693350196e-05 -1.276976839e-07 1.209789263e-07 0.0006490061403 -0.0008313336924 0.0001872561867 -2.741358292e-08 -2.007427028e-08 3.015089289e-05 -4.423452414e-05 1.482070993e-05 -0.1451821805 0.02019760823 0.0002487890253 -0.0004640028283 0.0650713762 0.0003237129216 -0.0005026917391 0.008168578158 -3.481069198e-09 -1.418499201e-08 0.01419094147 -0.0003298650581 0.0005448901505 -5.260886441e-09 2.508283627e-09 0.001347139719 -3.880142142e-05 6.528076055e-05 --0.1557982166 -0.01988817051 -0.0001807818751 0.0005791173676 -0.06640026385 -0.0004944569373 0.0006821563513 -0.00709725714 -3.123181131e-08 1.07108712e-07 -0.01343526048 0.0001761744427 -0.0004492481639 -1.349551286e-08 -3.956222841e-08 -0.0008828435474 2.341020419e-05 -6.281108932e-05 -0.3373997713 0.04521630785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3872082933 0.003403729084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0344371351 0.008772255566 -2.961281559e-06 -0.0001747696216 0.01830475638 -2.775473604e-06 -0.0001446203448 0.005103211697 1.984210716e-07 8.334650189e-08 0.002618251876 1.463153173e-05 0.0006883271301 1.161877653e-07 -5.00341932e-09 0.0008636706895 8.510978088e-07 4.909321727e-05 -0.04061337699 0.009848303423 -1.192271925e-05 -0.0003187474295 0.02087178183 -1.373616737e-05 -0.0003726432004 0.005705571579 2.911104759e-09 3.411464918e-07 0.003156877159 2.1266383e-05 0.000307789749 4.728295365e-09 -1.623610824e-07 0.0008484529 2.92575975e-06 4.632329274e-05 -0.04394134777 0.01036353509 -3.681185882e-06 -0.0004347289753 0.02217294467 -1.60001485e-06 -0.0004414603868 0.005908672038 -1.21635763e-08 5.801795237e-07 0.003260859175 5.653108931e-06 0.0002720830813 -5.800215256e-09 -2.226984458e-07 0.0008323140263 9.252582037e-07 4.884137347e-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.2533107753 0.01847339991 0.0002160463982 3.454426432e-05 0.07598775572 -0.0002016888391 -1.708084361e-05 -1.177146903e-07 -8.846149377e-10 -1.117974082e-08 0.009450729571 -3.848140556e-06 2.03037403e-07 -1.231833091e-08 -4.246430455e-08 -0.00161315006 -1.539985112e-06 -1.006221123e-07 --0.04762845107 -0.007599673277 -1.42021773e-05 -0.0007596803879 -0.02235764196 -1.363410858e-05 -0.0005800208311 -0.002978940484 -1.965582195e-07 -8.073354195e-08 -0.008425326989 3.593466923e-05 0.002711929415 -1.152094813e-07 4.754028204e-09 -0.0009835430088 3.095711128e-06 0.0001850712718 --0.06008102278 -0.00835841531 -5.10538294e-05 -0.001403559632 -0.02538493777 -0.0001035698112 -0.001809746316 -0.001393035235 -2.936174146e-09 -3.168803844e-07 -0.007338080823 6.13531433e-05 0.001315405778 -4.756803838e-09 1.51588273e-07 -0.0007471550672 8.480968333e-06 0.0001700809725 --0.06512117552 -0.008312938818 -1.295966395e-05 -0.001967062548 -0.02560773364 -0.0001196764565 -0.004472104747 0.001703696017 1.288422506e-08 -5.46849858e-07 -0.006931983445 1.358102388e-05 0.001189102529 6.091138599e-09 2.114130631e-07 -0.0005661915429 2.175729761e-06 0.0001782926333 -0 0 0.00405782274 0.004273174962 0.6584902961 5.889361163e-06 8.421840001e-06 0.0003837430766 0 0 0 0 0 0 0 0 0 0 -0.3305031965 0.01278089793 0.0003019207413 3.06374691e-05 0.0694372296 3.462103761e-06 7.855884528e-06 1.954739413e-09 5.019257179e-09 6.071959787e-08 0.00862429908 2.068968446e-05 1.452653958e-07 3.424042643e-08 8.754040983e-08 0.001759308729 8.807261842e-06 1.193922536e-07 -0.02163023265 0.002702445493 0.0002471859397 0.03405560145 0.007931912559 9.439019686e-05 0.009237421402 0.0006885574532 5.524949414e-05 2.369951777e-05 0.005178066839 5.774941356e-05 0.02512846191 2.850765653e-05 1.580993017e-06 0.0003653356379 4.446374857e-05 0.00807917518 -0.02919292182 0.003034865003 0.00043249652 0.04234910637 0.009295395177 0.0002747400559 0.01100093692 0.0001544774021 2.269408586e-05 7.64626754e-05 0.003920262464 0.000257293303 0.03291748707 9.978842279e-06 2.691483184e-05 0.0002417046761 0.0001033665505 0.009315452422 -0.03147397247 0.002900727126 6.403475169e-05 0.04848031787 0.00904927924 0.0001858352984 0.01177066562 0.0002636933706 5.520235355e-06 0.0001069443314 0.003577180758 5.664008317e-05 0.03761486268 2.558946937e-06 3.879504771e-05 0.0001509811781 2.229520112e-05 0.01017470832 -0 0 0.05122520203 0.007964225983 -0.05918942801 4.774489481e-05 5.505065671e-06 -5.324996048e-05 0 0 0 0 0 0 0 0 0 0 -0.006468775991 0.0002501542089 -0.005237912069 -0.0001913520661 0.004985699992 1.503396195e-05 -0.000377356445 -8.478950638e-07 -1.433251875e-07 -3.69519823e-06 -5.813915735e-05 -0.001207853102 1.663818995e-05 -8.541836883e-07 -2.29951598e-06 0.0001098642168 -0.0003560580176 -6.466040235e-06 -0.0663566513 0.008290490266 -6.374391476e-05 -0.01015417814 0.02525723705 -1.825305243e-05 -0.002466807479 0.002569704592 -1.772942985e-05 -7.624424575e-06 0.009888248654 -6.857566996e-05 -0.01191676111 -9.173437875e-06 -5.220805864e-07 0.0008820150905 -1.782434249e-05 -0.002821756586 --0.03937414451 -0.004093294052 0.003969836389 0.00283007961 -0.01346157927 0.001571751369 -0.0002962509272 -0.0005548222663 -3.138653021e-05 4.968030132e-05 -0.00385673923 0.002839269231 0.003623269076 -1.238166723e-05 1.939651268e-05 -0.0002185679588 0.0009372916965 0.0007691440773 --0.04201551041 -0.003872264008 0.001617448586 0.005970887423 -0.01321548491 0.001342972062 -0.0008379410249 0.0006813119191 -1.981148671e-05 4.109044039e-05 -0.003677796638 0.001396018222 0.005930614821 -8.236998976e-06 1.629480341e-05 -0.000118963737 0.0004491405938 0.001403825528 -0 0 0.008084266263 -0.05260945863 0.04452519237 5.479584773e-06 -5.701856103e-05 5.153897625e-05 0 0 0 0 0 0 0 0 0 0 -0.0009326796301 3.606767884e-05 -0.0006063694769 0.001671531027 -0.001129115418 -4.130253082e-06 -5.419483361e-05 5.962535517e-06 -1.07059145e-06 4.973516145e-07 0.0001196491779 -0.0001985404992 -0.0001012229764 -1.442790245e-06 1.358456202e-06 -2.270498277e-05 -5.556615307e-05 4.147181851e-05 --1.875080257e-05 -2.342694261e-06 -0.00302704969 0.002991889188 3.091075151e-05 -0.0009664272868 0.0009486208258 1.778254264e-05 3.589385605e-05 -3.551364333e-05 -0.0003988684567 -0.001336008769 0.001735096765 6.783269898e-06 -6.675871445e-06 -1.119950585e-05 -0.0006353411796 0.000646989188 --0.07054294096 -0.007333568874 -0.00210758701 0.01400019257 -0.02382767931 -0.0008587145728 0.00305572116 -0.0009058354748 2.690565319e-05 3.422813444e-06 -0.007581303138 -0.001383336953 0.01363565128 1.10363088e-05 4.453512842e-07 -0.0004357997207 -0.0004729140503 0.003575472377 -0.07529945122 0.006939802752 0.0008932579213 -0.0142729544 0.02346457276 0.0007677997422 -0.001795448624 -0.001098493885 -1.33812432e-05 -2.094664454e-05 0.006933131859 0.0007347410016 -0.01421106051 -5.669597027e-06 -7.25980938e-06 0.0002354199043 0.0002398897235 -0.003584469539 -0 0 0.001966804418 0.001656243214 0.2543829714 -4.92499065e-05 -6.026290346e-05 -0.002756877332 0 0 0 0 0 0 0 0 0 0 -0.505203849 0.002354884006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01563945976 -0.003119416014 5.154048914e-05 0.007834721907 -0.006494053679 1.92148609e-05 0.002303226016 -0.001179565174 -5.577311322e-05 -2.44665582e-05 -0.001609134367 2.351384875e-05 0.006377969121 -2.874972503e-05 -1.66393018e-06 -0.000320809237 1.222433148e-05 0.002143134905 --0.01973373761 -0.003575829902 0.0001010019159 0.009617453001 -0.00764277864 3.643798659e-05 0.002265192809 -0.0006327060892 -2.25003212e-05 -8.231804412e-05 -0.001686515498 8.918366084e-05 0.007702311521 -9.91903709e-06 -2.88275679e-05 -0.0002744745267 3.565933523e-05 0.002537158761 --0.02123746629 -0.003616264719 1.818903829e-05 0.01071435117 -0.007835491057 2.484525742e-06 0.00116193222 0.0009145279612 -5.211474001e-06 -0.0001134624255 -0.001682733779 2.357646691e-05 0.008606800078 -2.436727193e-06 -4.08659555e-05 -0.0002219456539 9.481332705e-06 0.002787253292 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.004957926818 0.0003615707415 -0.003748109626 -0.0002157526893 0.005456037852 -0.000875820756 0.0008204762176 5.106036342e-05 2.52602322e-08 6.803628469e-07 -6.371038951e-05 0.0002246524599 2.325519343e-05 3.073010013e-07 1.115454532e-06 -0.0001007369912 6.225817468e-05 5.44948778e-06 --0.1461132929 -0.02331407515 3.662434766e-06 0.0002265098739 -0.07119244679 2.636546029e-06 0.0001548916804 -0.01111744126 6.307506012e-08 2.597296735e-08 -0.01608934972 -4.267132539e-05 -0.001286088066 3.70730936e-08 -1.569890446e-09 -0.002374528204 -1.240988832e-06 -6.4638539e-05 -0.08103467301 0.0112734674 -0.0004686172959 -9.37962058e-05 0.03676243403 -0.0005925091338 4.873576023e-05 0.005003236429 4.060807695e-09 -2.05887551e-07 0.00721917587 0.0006770409101 0.0001447883634 5.902203939e-09 1.092439988e-07 0.0006756350788 7.69024521e-05 1.404298651e-05 -0.0869321288 0.01109718094 -0.0003273470979 -0.000242265512 0.03739730077 -0.0008648633439 0.0003183643267 0.004401886937 -4.623999469e-08 -2.101121322e-07 0.007126960345 0.0003347339153 0.000187481984 -1.960677718e-08 8.87983004e-08 0.0004461235677 4.383044367e-05 2.459940297e-05 -0 0 0.05122520203 0.007964225983 -0.05918942801 4.774489481e-05 5.505065671e-06 -5.324996048e-05 0 0 0 0 0 0 0 0 0 0 -0.006468775991 0.0002501542089 -0.005237912069 -0.0001913520661 0.004985699992 1.503396195e-05 -0.000377356445 -8.478950638e-07 -1.433251875e-07 -3.69519823e-06 -5.813915735e-05 -0.001207853102 1.663818995e-05 -8.541836883e-07 -2.29951598e-06 0.0001098642168 -0.0003560580176 -6.466040235e-06 -0.0663566513 0.008290490266 -6.374391476e-05 -0.01015417814 0.02525723705 -1.825305243e-05 -0.002466807479 0.002569704592 -1.772942985e-05 -7.624424575e-06 0.009888248654 -6.857566996e-05 -0.01191676111 -9.173437875e-06 -5.220805864e-07 0.0008820150905 -1.782434249e-05 -0.002821756586 --0.03937414451 -0.004093294052 0.003969836389 0.00283007961 -0.01346157927 0.001571751369 -0.0002962509272 -0.0005548222663 -3.138653021e-05 4.968030132e-05 -0.00385673923 0.002839269231 0.003623269076 -1.238166723e-05 1.939651268e-05 -0.0002185679588 0.0009372916965 0.0007691440773 --0.04201551041 -0.003872264008 0.001617448586 0.005970887423 -0.01321548491 0.001342972062 -0.0008379410249 0.0006813119191 -1.981148671e-05 4.109044039e-05 -0.003677796638 0.001396018222 0.005930614821 -8.236998976e-06 1.629480341e-05 -0.000118963737 0.0004491405938 0.001403825528 -0 0 0.6466574543 0.01484350537 0.005320334118 0.0003870665963 3.598471123e-06 7.389210292e-06 0 0 0 0 0 0 0 0 0 0 -0.0001266101607 4.896144901e-06 0.09087061303 0.00119512526 0.0003579809354 6.528400869e-05 0.01812627032 0.0003677861277 4.092659259e-06 0.0002248778061 3.919346473e-07 0.07051384079 0.001905680036 2.130901538e-05 6.040380383e-05 6.860732249e-06 0.01439463413 0.0003501875126 -0.2035671665 0.0254333451 1.643817878e-05 0.003027617466 0.08042549873 3.529751329e-06 0.000658748678 0.009590168049 5.689331419e-06 2.452870588e-06 0.01888300489 8.143151974e-05 0.005651328594 2.951907406e-06 1.724031263e-07 0.002129413447 7.145308152e-06 0.0009855350395 -0.05310613532 0.005520857164 0.03643867689 0.0001891267913 0.01949504167 0.008991780821 7.977921563e-06 0.001992704065 4.340841417e-05 3.227891683e-05 0.003794245315 0.03133175125 0.0003988177704 1.53630731e-05 1.397834125e-05 0.0001976459593 0.008499033007 6.350551587e-05 -0.05608771238 0.005169196514 0.04085500231 0.0007353808347 0.01929977369 0.009705228094 5.965212026e-05 0.001760324615 7.110113614e-05 1.57878802e-05 0.003781242556 0.03440790985 0.0009350610276 2.651409107e-05 6.844188465e-06 9.373599352e-05 0.009048013156 0.0001936887084 -0 0 0.1020542786 -0.09805206223 -0.004002216409 4.442284848e-05 -3.727106225e-05 -7.151786224e-06 0 0 0 0 0 0 0 0 0 0 -1.82548782e-05 7.059348818e-07 0.01051968138 -0.0104398609 -8.107222538e-05 -1.793535722e-05 0.002603242152 -0.002586331661 3.057080259e-05 -3.026720977e-05 -8.065933613e-07 0.01159069188 -0.01159372539 3.599277291e-05 -3.568399725e-05 -1.417866636e-06 0.002246416044 -0.002246028859 --5.752321242e-05 -7.186855021e-06 0.0007806107323 -0.0008920757382 9.842773385e-05 0.0001868864407 -0.0002533244772 6.636466028e-05 -1.151825212e-05 1.142517319e-05 -0.0007616955522 0.001586469728 -0.0008228411958 -2.182778684e-06 2.204527687e-06 -2.703851512e-05 0.0002546914992 -0.0002259693547 -0.09514525369 0.009891199054 -0.01934530156 0.0009355961184 0.03450721434 -0.004912592016 -8.228937531e-05 0.003253405897 -3.721124093e-05 2.223913856e-06 0.007458457053 -0.01526532561 0.001500893234 -1.369376318e-05 3.209480142e-07 0.0003940836267 -0.004288219066 0.0002952141536 --0.1005194016 -0.009264142144 0.0225627292 -0.001757872219 -0.03426744816 0.005548642329 0.0001278160563 -0.002838209301 4.802373536e-05 -8.048176446e-06 -0.00712814106 0.01810929238 -0.002240612355 1.824987624e-05 -3.049285247e-06 -0.0001854961787 0.004832619015 -0.0004945566679 -0 0 0.02482857437 0.003086860555 -0.02286561042 -0.0003992676863 -3.939177674e-05 0.0003825570231 0 0 0 0 0 0 0 0 0 0 -0.009888105663 4.609098272e-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.04797831787 -0.009569661317 -1.32911789e-05 -0.002336037496 -0.02067872685 -3.71574459e-06 -0.0006150650613 -0.004402151235 1.789745796e-05 7.871190857e-06 -0.003072868937 -2.792197932e-05 -0.003024647296 9.25133275e-06 5.494683625e-07 -0.0007745167974 -4.900411636e-06 -0.0007485176269 -0.02661600787 0.004822924003 0.0009270851034 0.0006427091378 0.01106826214 0.0002084568816 -6.100075612e-05 0.002272432223 3.111854847e-05 -5.348472591e-05 0.001659187501 0.0009841547418 0.000847803087 1.230746143e-05 -2.077495002e-05 0.0002482009781 0.0003233463694 0.0002094842576 -0.02835050412 0.004827455706 0.0004594354392 0.001319590866 0.01144287971 1.795487019e-05 -8.271670497e-05 0.002362891411 1.870337789e-05 -4.359484014e-05 0.001730064275 0.0005810933806 0.001357006578 7.843585621e-06 -1.716463183e-05 0.0001748793111 0.0001910030495 0.0003845630952 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0007148427085 5.213191273e-05 -0.0004339017614 0.001884679489 -0.001235633205 0.0002406126468 0.0001178344048 -0.0003590647516 1.886855276e-07 -9.157277618e-08 0.000131114658 3.692718216e-05 -0.0001414793257 5.190580118e-07 -6.589630773e-07 2.081871347e-05 9.715965077e-06 -3.495186543e-05 -4.128812191e-05 6.588000022e-06 0.0001739204764 -6.674025541e-05 -8.71279795e-05 0.0001395947355 -5.956422424e-05 -7.693350196e-05 -1.276976839e-07 1.209789263e-07 0.0006490061403 -0.0008313336924 0.0001872561867 -2.741358292e-08 -2.007427028e-08 3.015089289e-05 -4.423452414e-05 1.482070993e-05 -0.1451821805 0.02019760823 0.0002487890253 -0.0004640028283 0.0650713762 0.0003237129216 -0.0005026917391 0.008168578158 -3.481069198e-09 -1.418499201e-08 0.01419094147 -0.0003298650581 0.0005448901505 -5.260886441e-09 2.508283627e-09 0.001347139719 -3.880142142e-05 6.528076055e-05 --0.1557982166 -0.01988817051 -0.0001807818751 0.0005791173676 -0.06640026385 -0.0004944569373 0.0006821563513 -0.00709725714 -3.123181131e-08 1.07108712e-07 -0.01343526048 0.0001761744427 -0.0004492481639 -1.349551286e-08 -3.956222841e-08 -0.0008828435474 2.341020419e-05 -6.281108932e-05 -0 0 0.008084266263 -0.05260945863 0.04452519237 5.479584773e-06 -5.701856103e-05 5.153897625e-05 0 0 0 0 0 0 0 0 0 0 -0.0009326796301 3.606767884e-05 -0.0006063694769 0.001671531027 -0.001129115418 -4.130253082e-06 -5.419483361e-05 5.962535517e-06 -1.07059145e-06 4.973516145e-07 0.0001196491779 -0.0001985404992 -0.0001012229764 -1.442790245e-06 1.358456202e-06 -2.270498277e-05 -5.556615307e-05 4.147181851e-05 --1.875080257e-05 -2.342694261e-06 -0.00302704969 0.002991889188 3.091075151e-05 -0.0009664272868 0.0009486208258 1.778254264e-05 3.589385605e-05 -3.551364333e-05 -0.0003988684567 -0.001336008769 0.001735096765 6.783269898e-06 -6.675871445e-06 -1.119950585e-05 -0.0006353411796 0.000646989188 --0.07054294096 -0.007333568874 -0.00210758701 0.01400019257 -0.02382767931 -0.0008587145728 0.00305572116 -0.0009058354748 2.690565319e-05 3.422813444e-06 -0.007581303138 -0.001383336953 0.01363565128 1.10363088e-05 4.453512842e-07 -0.0004357997207 -0.0004729140503 0.003575472377 -0.07529945122 0.006939802752 0.0008932579213 -0.0142729544 0.02346457276 0.0007677997422 -0.001795448624 -0.001098493885 -1.33812432e-05 -2.094664454e-05 0.006933131859 0.0007347410016 -0.01421106051 -5.669597027e-06 -7.25980938e-06 0.0002354199043 0.0002398897235 -0.003584469539 -0 0 0.1020542786 -0.09805206223 -0.004002216409 4.442284848e-05 -3.727106225e-05 -7.151786224e-06 0 0 0 0 0 0 0 0 0 0 -1.82548782e-05 7.059348818e-07 0.01051968138 -0.0104398609 -8.107222538e-05 -1.793535722e-05 0.002603242152 -0.002586331661 3.057080259e-05 -3.026720977e-05 -8.065933613e-07 0.01159069188 -0.01159372539 3.599277291e-05 -3.568399725e-05 -1.417866636e-06 0.002246416044 -0.002246028859 --5.752321242e-05 -7.186855021e-06 0.0007806107323 -0.0008920757382 9.842773385e-05 0.0001868864407 -0.0002533244772 6.636466028e-05 -1.151825212e-05 1.142517319e-05 -0.0007616955522 0.001586469728 -0.0008228411958 -2.182778684e-06 2.204527687e-06 -2.703851512e-05 0.0002546914992 -0.0002259693547 -0.09514525369 0.009891199054 -0.01934530156 0.0009355961184 0.03450721434 -0.004912592016 -8.228937531e-05 0.003253405897 -3.721124093e-05 2.223913856e-06 0.007458457053 -0.01526532561 0.001500893234 -1.369376318e-05 3.209480142e-07 0.0003940836267 -0.004288219066 0.0002952141536 --0.1005194016 -0.009264142144 0.0225627292 -0.001757872219 -0.03426744816 0.005548642329 0.0001278160563 -0.002838209301 4.802373536e-05 -8.048176446e-06 -0.00712814106 0.01810929238 -0.002240612355 1.824987624e-05 -3.049285247e-06 -0.0001854961787 0.004832619015 -0.0004945566679 -0 0 0.01610601675 0.6477046134 0.003010663585 5.098320252e-06 0.0003860339666 6.921990872e-06 0 0 0 0 0 0 0 0 0 0 -2.632020814e-06 1.017829471e-07 0.001217816109 0.09119604381 1.836049096e-05 4.927348139e-06 0.0003738700562 0.01818750344 0.000228353721 4.073785683e-06 1.65995238e-06 0.001905216577 0.07053359741 6.07949114e-05 2.10805873e-05 2.930220457e-07 0.0003505740402 0.01440555546 -1.625468401e-08 2.030833337e-09 0.0370693812 0.0002628466547 1.204595426e-07 0.009894901502 9.741695565e-05 4.592482751e-07 2.331910767e-05 5.32170686e-05 3.072498882e-05 0.03090800965 0.0001198068069 1.614048859e-06 2.818940949e-05 3.433252012e-07 0.0090783712 5.181160206e-05 -0.1704627769 0.01772112841 0.01027042485 0.004628324157 0.06107952276 0.002683957805 0.0008487851423 0.00531170188 3.189880298e-05 1.532205329e-07 0.01466130337 0.007437508492 0.005648395498 1.220583596e-05 7.369088076e-09 0.0007857580563 0.002163637057 0.001372343729 -0.1801490854 0.01660303094 0.01246057325 0.004202060473 0.06084309703 0.003172252254 0.0002738703029 0.004576106001 3.243660064e-05 4.102713176e-06 0.01343748628 0.009531136066 0.005369001143 1.256154631e-05 1.358545365e-06 0.0003670823877 0.002581141975 0.001262780364 -0 0 0.003918399502 -0.02039094106 0.01720063424 -4.582314283e-05 0.0004079992066 -0.0003702650134 0 0 0 0 0 0 0 0 0 0 -0.001425684665 6.645479882e-06 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.355752511e-05 2.704157405e-06 -0.0006311670552 0.0006883043836 -2.530739945e-05 -0.0001967340519 0.0002365257651 -3.046320666e-05 -3.623403488e-05 3.666305069e-05 0.0001239522319 -0.000543983154 0.0004403927956 -6.840869019e-06 7.026080354e-06 9.834531746e-06 -0.0001746731085 0.000171624588 -0.04768539088 0.008640778038 -0.000492189685 0.003179434128 0.01959138638 -0.0001138888539 0.0006292007354 0.003710106545 -2.667592969e-05 -3.684926098e-06 0.003261512552 -0.0004794957826 0.003190584801 -1.0970166e-05 -4.770007281e-07 0.0004948846003 -0.0001631456267 0.0009738164777 --0.05080926974 -0.00865168034 0.0002537294533 -0.003154382075 -0.02031724794 1.026510163e-05 -0.0001772363325 -0.003809740726 1.26327949e-05 2.222331061e-05 -0.003261399398 0.0003058363608 -0.003251686912 5.398807241e-06 7.647343272e-06 -0.0003460724394 0.0001020163159 -0.0009819273643 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3373997713 0.04521630785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3872082933 0.003403729084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0344371351 0.008772255566 -2.961281559e-06 -0.0001747696216 0.01830475638 -2.775473604e-06 -0.0001446203448 0.005103211697 1.984210716e-07 8.334650189e-08 0.002618251876 1.463153173e-05 0.0006883271301 1.161877653e-07 -5.00341932e-09 0.0008636706895 8.510978088e-07 4.909321727e-05 -0.04061337699 0.009848303423 -1.192271925e-05 -0.0003187474295 0.02087178183 -1.373616737e-05 -0.0003726432004 0.005705571579 2.911104759e-09 3.411464918e-07 0.003156877159 2.1266383e-05 0.000307789749 4.728295365e-09 -1.623610824e-07 0.0008484529 2.92575975e-06 4.632329274e-05 -0.04394134777 0.01036353509 -3.681185882e-06 -0.0004347289753 0.02217294467 -1.60001485e-06 -0.0004414603868 0.005908672038 -1.21635763e-08 5.801795237e-07 0.003260859175 5.653108931e-06 0.0002720830813 -5.800215256e-09 -2.226984458e-07 0.0008323140263 9.252582037e-07 4.884137347e-05 -0 0 0.001966804418 0.001656243214 0.2543829714 -4.92499065e-05 -6.026290346e-05 -0.002756877332 0 0 0 0 0 0 0 0 0 0 -0.505203849 0.002354884006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.01563945976 -0.003119416014 5.154048914e-05 0.007834721907 -0.006494053679 1.92148609e-05 0.002303226016 -0.001179565174 -5.577311322e-05 -2.44665582e-05 -0.001609134367 2.351384875e-05 0.006377969121 -2.874972503e-05 -1.66393018e-06 -0.000320809237 1.222433148e-05 0.002143134905 --0.01973373761 -0.003575829902 0.0001010019159 0.009617453001 -0.00764277864 3.643798659e-05 0.002265192809 -0.0006327060892 -2.25003212e-05 -8.231804412e-05 -0.001686515498 8.918366084e-05 0.007702311521 -9.91903709e-06 -2.88275679e-05 -0.0002744745267 3.565933523e-05 0.002537158761 --0.02123746629 -0.003616264719 1.818903829e-05 0.01071435117 -0.007835491057 2.484525742e-06 0.00116193222 0.0009145279612 -5.211474001e-06 -0.0001134624255 -0.001682733779 2.357646691e-05 0.008606800078 -2.436727193e-06 -4.08659555e-05 -0.0002219456539 9.481332705e-06 0.002787253292 -0 0 0.02482857437 0.003086860555 -0.02286561042 -0.0003992676863 -3.939177674e-05 0.0003825570231 0 0 0 0 0 0 0 0 0 0 -0.009888105663 4.609098272e-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.04797831787 -0.009569661317 -1.32911789e-05 -0.002336037496 -0.02067872685 -3.71574459e-06 -0.0006150650613 -0.004402151235 1.789745796e-05 7.871190857e-06 -0.003072868937 -2.792197932e-05 -0.003024647296 9.25133275e-06 5.494683625e-07 -0.0007745167974 -4.900411636e-06 -0.0007485176269 -0.02661600787 0.004822924003 0.0009270851034 0.0006427091378 0.01106826214 0.0002084568816 -6.100075612e-05 0.002272432223 3.111854847e-05 -5.348472591e-05 0.001659187501 0.0009841547418 0.000847803087 1.230746143e-05 -2.077495002e-05 0.0002482009781 0.0003233463694 0.0002094842576 -0.02835050412 0.004827455706 0.0004594354392 0.001319590866 0.01144287971 1.795487019e-05 -8.271670497e-05 0.002362891411 1.870337789e-05 -4.359484014e-05 0.001730064275 0.0005810933806 0.001357006578 7.843585621e-06 -1.716463183e-05 0.0001748793111 0.0001910030495 0.0003845630952 -0 0 0.003918399502 -0.02039094106 0.01720063424 -4.582314283e-05 0.0004079992066 -0.0003702650134 0 0 0 0 0 0 0 0 0 0 -0.001425684665 6.645479882e-06 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.355752511e-05 2.704157405e-06 -0.0006311670552 0.0006883043836 -2.530739945e-05 -0.0001967340519 0.0002365257651 -3.046320666e-05 -3.623403488e-05 3.666305069e-05 0.0001239522319 -0.000543983154 0.0004403927956 -6.840869019e-06 7.026080354e-06 9.834531746e-06 -0.0001746731085 0.000171624588 -0.04768539088 0.008640778038 -0.000492189685 0.003179434128 0.01959138638 -0.0001138888539 0.0006292007354 0.003710106545 -2.667592969e-05 -3.684926098e-06 0.003261512552 -0.0004794957826 0.003190584801 -1.0970166e-05 -4.770007281e-07 0.0004948846003 -0.0001631456267 0.0009738164777 --0.05080926974 -0.00865168034 0.0002537294533 -0.003154382075 -0.02031724794 1.026510163e-05 -0.0001772363325 -0.003809740726 1.26327949e-05 2.222331061e-05 -0.003261399398 0.0003058363608 -0.003251686912 5.398807241e-06 7.647343272e-06 -0.0003460724394 0.0001020163159 -0.0009819273643 -0.1700592441 0.03287084823 0.0009532993103 0.0006419445977 0.09827129803 0.0004118533782 0.0004312142635 0.0198058886 8.216776902e-23 3.856775522e-07 0.0004587991139 0.0002062032256 0.03259037505 -7.251263236e-23 1.11459849e-07 0.0003920623205 0.0001572157016 0.006464280337 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01130790896 0.003600722492 1.074665502e-05 0.00180243087 0.005316842928 3.911538398e-06 0.0005742782373 0.002020708646 5.630169482e-05 2.525842407e-05 0.0005000540728 9.57414195e-06 0.00161882133 2.899384902e-05 1.751218136e-06 0.0002817096278 3.360811556e-06 0.0005685019967 -0.01333954863 0.004213221832 2.358721178e-05 0.002184116978 0.006283978704 4.832665781e-06 0.0004664237693 0.002591427547 2.230821091e-05 8.862180603e-05 0.0007255469627 3.091306796e-05 0.001802251874 9.859590326e-06 3.087623492e-05 0.0003116872499 1.230173768e-05 0.000691021143 -0.01433025256 0.004508307728 5.166586976e-06 0.002367916012 0.006784509404 3.321687655e-08 0.0001146992471 0.003171719448 4.919982485e-06 0.0001203777875 0.0007915711175 9.813717789e-06 0.001969354726 2.320344877e-06 4.304740985e-05 0.0003262649949 4.032063644e-06 0.0007635384396 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.08387972296 0.02105863846 0.05005689781 0.001512164203 0.002699548955 0.0145241357 0.0002813978978 0.0004662178053 9.662152118e-20 3.489139219e-07 0.01728770851 0.00071479523 0.000851522723 2.042380143e-20 9.116566084e-08 0.005621459083 0.0001727270712 4.088765404e-05 -0.01130790896 0.003600722492 0.003158218516 5.792732365e-05 0.003913874614 0.001691799281 0.0008937821408 1.331699961e-05 3.752332473e-06 0.0001999055971 0.0003510604875 0.001612065347 4.3225899e-05 1.928991703e-05 5.465176939e-05 0.0001431243471 0.0006516734886 1.557798109e-05 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.007101904242 0.002299192834 0.001329951445 0.0002721332877 0.002739867515 0.0005835332379 0.0001640008569 0.0008732354652 2.485942908e-05 6.324064416e-05 0.0003456036577 0.0007404381656 0.0001134381561 8.201496907e-06 2.611943062e-05 0.000131835164 0.0003158585811 4.853663576e-05 -0.007742212424 0.00250039862 0.001399184075 0.0004124563239 0.002950763731 0.0006723901658 0.0004202981006 0.0006782708169 5.692479906e-05 4.633283248e-05 0.0003423051464 0.0008075883877 0.0001714533907 2.076111344e-05 1.904483325e-05 0.0001349335136 0.0003372836161 7.207383584e-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.100694373 0.02406686725 0.01960263606 0.03789374994 0.006719494605 0.00434237629 0.01136097372 0.001418578857 -1.093193414e-19 3.51000304e-07 0.007472377888 0.01206100848 0.002758518458 -1.157535659e-19 9.370348985e-08 0.001690212413 0.003978008951 0.0008216559001 -0.01333954863 0.004213221832 0.0009461676399 0.002310460625 0.005235054629 0.001817891518 0.0005523748418 0.0006924176221 0.0001873764644 3.593474513e-05 0.0004584371371 0.0007913804954 0.00119651308 7.872495437e-05 5.110497643e-09 0.0001806217019 0.0003129364096 0.0004834577794 -0.007101904242 0.002299192834 0.00115655099 0.0002706189155 0.002914782343 0.0004495228152 0.0001198195193 0.001051427225 1.285044869e-07 7.117234034e-05 0.0004590729926 0.0006561289617 0.0001010772535 2.541597378e-06 2.533717161e-05 0.0001556579015 0.0002894001111 5.761452685e-05 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.008691691537 0.002796682582 0.001234425989 0.0006420748931 0.003512507647 0.0003088754775 0.0008144649172 0.0008695819866 9.154987635e-05 9.167783518e-06 0.0004247806233 0.0007943398685 0.0003105452934 3.545509722e-05 2.957678481e-06 0.0001713101257 0.000320480284 0.0001335839024 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1109668337 0.02573138272 0.006159436133 0.0505359524 0.01336286194 0.001811859509 0.0115958813 0.004643758879 5.636787922e-19 3.538853313e-07 0.001828304915 0.0178463127 0.004582871844 -7.023343332e-20 9.561643783e-08 0.000414382203 0.004451973605 0.001915795047 -0.01433025256 0.004508307728 0.0003842501992 0.002745270152 0.006028071651 0.001906665859 0.0002351520078 0.001144634046 0.0001360234504 8.776968441e-05 0.0005326853761 0.0002601219346 0.001879436886 1.773758519e-05 6.030518863e-05 0.0002066439988 0.0001096929156 0.0007448235646 -0.007742212424 0.00250039862 0.0009921892382 0.0005170068951 0.003253207997 0.0003499750556 0.0002377388969 0.001183245131 5.972731012e-05 1.452495402e-05 0.0004545254772 0.0007053380137 0.0001904888013 1.380566131e-05 1.502095406e-05 0.000173814294 0.0002707820607 0.0001106739421 -0.008691691537 0.002796682582 0.001052380216 0.0007033466162 0.003633281696 0.0002974906806 0.0004714561021 0.001223975599 8.946662658e-05 6.6892802e-08 0.0004603541383 0.0007339862913 0.0003465094962 3.423257946e-05 1.19744749e-08 0.0001865634761 0.000288600356 0.0001543787017 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2725469077 0.04000563826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.05274639154 0.01097167476 -0.0002437292244 -0.0003269957055 0.0223890996 0.004733137503 9.345146552e-05 9.007817093e-05 1.45626844e-07 -4.250495496e-07 0.002348760956 1.364465253e-05 2.309451451e-05 2.80368702e-07 -1.114543615e-06 0.0005528599608 5.43482242e-06 7.947527868e-06 -0.02849498313 0.007310062249 -2.845380195e-05 9.360193027e-05 0.01431834932 -2.625317588e-05 9.305041937e-05 0.003905072469 -2.043683011e-07 6.320357366e-08 0.00249621538 0.0001255852133 -0.0002361185746 -8.017446485e-08 -1.465364065e-08 0.0006784066253 7.639542231e-06 -2.166098425e-05 -0.03278315052 0.008023721507 -7.96385514e-05 0.000180881206 0.01587054021 -0.000107772728 0.0003746480656 0.003921172991 -5.829831391e-09 -9.372604805e-09 0.002514611773 0.000103625479 -0.0001349596611 -8.810386799e-09 -3.197407643e-09 0.0006564195883 1.417110974e-05 -2.189512589e-05 -0.3225709623 0.003215066668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.004999389963 0.01469520216 -0.09380466362 -0.0001032990563 -0.0003125038511 0.001334919593 0 0 0 0 0 0 0 0 0 0 -0.06882001364 0.007590798436 -0.0003406069656 -0.000290014016 0.02045904678 -8.124700019e-05 -4.298054234e-05 -1.495814588e-06 -8.262788148e-07 2.30853632e-06 0.00214337071 -7.336103018e-05 1.652323041e-05 -7.793218081e-07 2.297638119e-06 -0.0006029515659 -3.10820564e-05 -9.430067015e-06 --0.01294085994 -0.002599459748 0.0004952325002 -0.004196067298 -0.005079779657 0.0001817531689 -0.001481922526 -0.0009026252012 5.744478802e-05 -1.855355508e-05 -0.001534132752 0.0002018238258 -0.002187850678 1.983852441e-05 -4.873194382e-06 -0.0002519931665 0.0001097268676 -0.0009455972537 --0.01592908885 -0.00291334071 0.0006746486355 -0.005457664396 -0.005811436067 0.0002858891502 -0.002277379819 -0.0004348293582 4.505955287e-05 2.261592936e-06 -0.001343394599 0.0004345684724 -0.003377309855 1.848246497e-05 -5.677067714e-07 -0.0002123517473 0.0001727183351 -0.001199211179 --0.1559030454 -0.001121869329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.06311137211 0.02738851366 0.008431778596 -0.0008374427105 -0.0002042729644 -0.000185239604 0 0 0 0 0 0 0 0 0 0 -0.00134698017 0.0001485709524 0.005909065168 0.001811336993 0.001468991058 -0.0003528098503 0.002064565053 0.000648830119 2.359444073e-05 -0.0001404900497 -1.444914721e-05 0.004282779084 0.001892512973 1.944146279e-05 -6.035447609e-05 -3.765274421e-05 0.001256578444 0.0005107131401 --0.03969962526 -0.007974553341 -0.000127709765 0.001251119141 -0.01617531686 -3.514718933e-05 0.000395740046 -0.003368607969 -1.843389438e-05 5.96890547e-06 -0.002929642778 -0.000239659647 0.001037552317 -6.383810294e-06 1.609241884e-06 -0.0006083769348 -4.398660325e-05 0.0003302620897 -0.02148446292 0.003929387366 0.006192523127 -0.000364721385 0.008416114191 0.001635533856 6.132894752e-05 0.001561736582 -6.231857172e-05 1.469430908e-06 0.001321626472 0.004795526655 -0.0003717447305 -2.293289386e-05 -4.091250377e-07 0.0001920247828 0.001566149403 -9.901464079e-05 -0.208119456 0.00149761561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.009960119553 -0.180920893 -0.006342797635 -9.611160195e-05 0.002115751416 0.0001792876364 0 0 0 0 0 0 0 0 0 0 -0.0001942099972 2.142122421e-05 0.0006840658468 -0.01582269816 -0.0003326835659 9.692680987e-05 0.0002965068201 -0.00456267856 0.0001762426198 1.890912171e-05 2.973604476e-05 0.000703980555 -0.01151361996 3.283831481e-05 3.565485652e-05 7.781468194e-06 0.0001961007104 -0.003275606381 -1.121816458e-05 2.253418042e-06 -0.006064638579 -0.0003686374002 -1.979595785e-05 -0.001860905345 -0.0001521834405 -2.331101211e-05 3.732006934e-05 2.780243649e-05 0.000118174829 -0.004669110637 -0.0001510690406 4.720488523e-06 2.057745915e-05 7.724948379e-06 -0.001567883944 -7.572446267e-05 -0.0384916858 0.007039912724 -0.003287611888 -0.001804249466 0.01489694976 -0.0008935616566 -0.000632585911 0.002549783028 5.342170247e-05 1.012390773e-07 0.002597959137 -0.002336456564 -0.001399007748 2.044106771e-05 -9.393665962e-09 0.0003828756382 -0.000790206571 -0.0004602832206 --0.3729879912 -0.002684000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1373715249 0.02908285364 0.002423176885 0.005695724856 -0.03623790541 0.0008638405292 0.002236137163 -0.009590295671 6.430391744e-21 3.694396139e-07 0.0009158737222 0.001918324072 -0.01222119111 1.319499979e-21 1.032346537e-07 0.0004030677959 0.0008366123078 -0.003519124359 -0.105197578 0.001398606728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.009356721288 0.00300054021 0.0001032604254 -0.0009653337184 0.004158941684 3.699920091e-05 -0.000369497327 0.001546283825 -5.798921268e-05 1.915404522e-05 0.0004767465952 8.217667714e-05 -0.000555308324 -2.000698027e-05 5.128836825e-06 0.0002212807268 3.01669932e-05 -0.0002508353186 -0.01076769437 0.003432643895 0.0001575522613 -0.00123943184 0.004778228208 3.791665903e-05 -0.0004689331853 0.001780967176 -4.467482933e-05 -2.434781494e-06 0.0005779347254 0.0001506312322 -0.000790251472 -1.837169587e-05 6.080515604e-07 0.0002411419847 5.958427539e-05 -0.000326617432 -0.105197578 0.001398606728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_bands_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_bands_ref.dat deleted file mode 100644 index 73f207b30c..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_bands_ref.dat +++ /dev/null @@ -1 +0,0 @@ --0.03990580715 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_ref.dat deleted file mode 100644 index a5c541f3fb..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_ref.dat +++ /dev/null @@ -1 +0,0 @@ --0.1775639162 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/F_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/F_delta_ref.dat deleted file mode 100644 index 59da864822..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/F_delta_ref.dat +++ /dev/null @@ -1,3 +0,0 @@ --0.0004741272331 -0.0003781897399 0.0006505499819 -0.0004507941153 0.0003187244626 -0.0006993446924 -2.333311782e-05 5.946527732e-05 4.879471048e-05 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/INPUT b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/INPUT deleted file mode 100644 index 60ccf4b955..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/INPUT +++ /dev/null @@ -1 +0,0 @@ -gamma_only_local 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/KPT b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/KPT deleted file mode 100644 index 86ccf32170..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/KPT +++ /dev/null @@ -1,4 +0,0 @@ -K_POINTS -0 -Gamma -3 3 1 0 0 0.25 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/STRU b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/STRU deleted file mode 100644 index 61580fc6d6..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/STRU +++ /dev/null @@ -1,31 +0,0 @@ -ATOMIC_SPECIES -O 1.00 @DEEPKS_UT_PP_ORB_DIR@/O_ONCV_PBE-1.0.upf -H 1.00 @DEEPKS_UT_PP_ORB_DIR@/H_ONCV_PBE-1.0.upf - -LATTICE_CONSTANT -1 - -LATTICE_VECTORS -10 0 0 -0 10 0 -0 0 10 - -ATOMIC_POSITIONS -Direct # Cartesian(Unit is LATTICE_CONSTANT) - -O -0.0 -1 --0.3230414703476 0.08341764682815 0.125126470242225 1 1 1 -H -0.0 -2 --0.10349451100655 0.2561729216652 0.87770626909185 1 1 1 --0.2473714095935 -0.0346105497687 0.63538026574395 1 1 1 - -NUMERICAL_ORBITAL -@DEEPKS_UT_PP_ORB_DIR@/O_gga_6au_60Ry_1s1p.orb -@DEEPKS_UT_PP_ORB_DIR@/H_gga_6au_60Ry_1s.orb - -NUMERICAL_DESCRIPTOR -jle.orb diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/S_I_mu_alpha_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/S_I_mu_alpha_ref.dat deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/descriptor_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/descriptor_ref.dat deleted file mode 100644 index bdfd3c9016..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/descriptor_ref.dat +++ /dev/null @@ -1,14 +0,0 @@ -O atom_index 1 n_descriptor 18 -1.832064153 0.003843560629 0.7229298362 1.160114611 1.256991046 0.04113640486 0.05484958724 0.05797671395 --5.029026818e-20 -1.402862199e-20 4.38749249e-06 1.795940583e-05 0.0003715402583 -5.038696335e-20 1.477065213e-21 3.378896331e-06 -1.321338981e-05 0.0001584548694 - -H atom_index 1 n_descriptor 18 -0.4652739334 0.001883620041 0.0003422499867 0.001115485131 0.005323071321 0.000133369089 0.0004293319934 0.002119702111 -1.15972832e-10 0.0001350806268 0.0003028665176 0.0003226077567 0.002059827158 2.658992769e-10 5.793251528e-05 0.0001298853919 -0.0001382856924 0.0008978225962 - -H atom_index 2 n_descriptor 18 -0.6282857017 0.0008143396416 2.891057151e-05 0.0002215454345 0.0006230851229 1.142998904e-05 8.688119306e-05 0.0002421419036 -7.218080429e-07 2.505504794e-06 2.60417868e-05 7.852785949e-05 0.0001417016675 3.271734874e-07 1.094090396e-06 1.340463016e-05 -4.026303461e-05 6.374902085e-05 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_0 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_0 deleted file mode 100644 index e87ef1969f..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_0 +++ /dev/null @@ -1,6 +0,0 @@ - (2.238e-01,-1.355e-20) (5.098e-03,2.632e-03) (7.586e-03,-2.186e-03) (4.315e-03,-2.024e-03) (-1.329e-03,1.013e-02) (-3.376e-03,8.945e-03) - (5.098e-03,-2.632e-03) (1.238e-01,0.000e+00) (-2.064e-02,3.420e-02) (-1.097e-02,-2.711e-03) (6.743e-05,4.131e-02) (4.239e-02,3.303e-02) - (7.586e-03,2.186e-03) (-2.064e-02,-3.420e-02) (1.580e-01,-3.469e-18) (-9.144e-03,2.450e-03) (-4.588e-03,5.395e-02) (-3.210e-02,-1.488e-02) - (4.315e-03,2.024e-03) (-1.097e-02,2.711e-03) (-9.144e-03,-2.450e-03) (1.732e-01,0.000e+00) (-5.538e-03,4.401e-02) (3.619e-03,-3.993e-02) - (-1.329e-03,-1.013e-02) (6.743e-05,-4.131e-02) (-4.588e-03,-5.395e-02) (-5.538e-03,-4.401e-02) (7.861e-02,0.000e+00) (3.741e-02,6.338e-03) - (-3.376e-03,-8.945e-03) (4.239e-02,-3.303e-02) (-3.210e-02,1.488e-02) (3.619e-03,3.993e-02) (3.741e-02,-6.338e-03) (9.321e-02,-6.939e-18) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_1 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_1 deleted file mode 100644 index d86fef02cd..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_1 +++ /dev/null @@ -1,6 +0,0 @@ - (2.238e-01,-1.355e-20) (4.983e-03,2.765e-03) (7.827e-03,-2.447e-03) (4.101e-03,-1.915e-03) (-1.276e-03,1.003e-02) (-3.268e-03,8.676e-03) - (4.983e-03,-2.765e-03) (1.245e-01,0.000e+00) (-2.116e-02,3.606e-02) (-1.041e-02,-3.838e-03) (6.115e-04,4.073e-02) (4.359e-02,3.460e-02) - (7.827e-03,2.447e-03) (-2.116e-02,-3.606e-02) (1.558e-01,0.000e+00) (-9.585e-03,2.077e-03) (-6.130e-03,5.604e-02) (-3.258e-02,-1.451e-02) - (4.101e-03,1.915e-03) (-1.041e-02,3.838e-03) (-9.585e-03,-2.077e-03) (1.736e-01,1.388e-17) (-4.854e-03,4.307e-02) (4.437e-03,-3.962e-02) - (-1.276e-03,-1.003e-02) (6.115e-04,-4.073e-02) (-6.130e-03,-5.604e-02) (-4.854e-03,-4.307e-02) (7.832e-02,8.674e-19) (3.640e-02,6.451e-03) - (-3.268e-03,-8.676e-03) (4.359e-02,-3.460e-02) (-3.258e-02,1.451e-02) (4.437e-03,3.962e-02) (3.640e-02,-6.451e-03) (9.092e-02,0.000e+00) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_2 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_2 deleted file mode 100644 index 499d914273..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_2 +++ /dev/null @@ -1,6 +0,0 @@ - (2.237e-01,1.355e-20) (5.014e-03,2.737e-03) (7.910e-03,-1.819e-03) (4.100e-03,-1.979e-03) (-1.316e-03,9.987e-03) (-3.191e-03,8.669e-03) - (5.014e-03,-2.737e-03) (1.245e-01,0.000e+00) (-2.374e-02,3.316e-02) (-1.019e-02,-3.581e-03) (-1.858e-04,4.101e-02) (4.301e-02,3.495e-02) - (7.910e-03,1.819e-03) (-2.374e-02,-3.316e-02) (1.568e-01,-1.735e-18) (-9.315e-03,3.031e-03) (-2.810e-03,5.622e-02) (-3.244e-02,-1.297e-02) - (4.100e-03,1.979e-03) (-1.019e-02,3.581e-03) (-9.315e-03,-3.031e-03) (1.735e-01,0.000e+00) (-5.647e-03,4.295e-02) (4.147e-03,-3.979e-02) - (-1.316e-03,-9.987e-03) (-1.858e-04,-4.101e-02) (-2.810e-03,-5.622e-02) (-5.647e-03,-4.295e-02) (7.824e-02,0.000e+00) (3.621e-02,5.585e-03) - (-3.191e-03,-8.669e-03) (4.301e-02,-3.495e-02) (-3.244e-02,1.297e-02) (4.147e-03,3.979e-02) (3.621e-02,-5.585e-03) (9.097e-02,0.000e+00) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_3 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_3 deleted file mode 100644 index cc1bd73d0c..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_3 +++ /dev/null @@ -1,6 +0,0 @@ - (2.238e-01,-6.776e-21) (5.317e-03,2.920e-03) (7.686e-03,-2.116e-03) (4.529e-03,-2.285e-03) (-1.101e-03,1.008e-02) (9.002e-03,-1.057e-03) - (5.317e-03,-2.920e-03) (1.230e-01,0.000e+00) (-2.050e-02,3.402e-02) (-1.035e-02,-1.824e-03) (8.639e-04,4.223e-02) (9.806e-03,-5.634e-02) - (7.686e-03,2.116e-03) (-2.050e-02,-3.402e-02) (1.573e-01,0.000e+00) (-1.203e-02,4.525e-03) (-4.191e-03,5.466e-02) (4.472e-03,3.463e-02) - (4.529e-03,2.285e-03) (-1.035e-02,1.824e-03) (-1.203e-02,-4.525e-03) (1.727e-01,0.000e+00) (-7.029e-03,4.637e-02) (-3.794e-02,1.772e-02) - (-1.101e-03,-1.008e-02) (8.639e-04,-4.223e-02) (-4.191e-03,-5.466e-02) (-7.029e-03,-4.637e-02) (7.882e-02,-4.337e-19) (-9.868e-03,-3.321e-02) - (9.002e-03,1.057e-03) (9.806e-03,5.634e-02) (4.472e-03,-3.463e-02) (-3.794e-02,-1.772e-02) (-9.868e-03,3.321e-02) (9.208e-02,3.469e-18) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_4 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_4 deleted file mode 100644 index 68896ecc8a..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_4 +++ /dev/null @@ -1,6 +0,0 @@ - (2.237e-01,1.355e-20) (5.191e-03,3.035e-03) (7.922e-03,-2.374e-03) (4.308e-03,-2.162e-03) (-1.059e-03,9.980e-03) (8.724e-03,-1.054e-03) - (5.191e-03,-3.035e-03) (1.240e-01,3.469e-18) (-2.098e-02,3.575e-02) (-9.859e-03,-3.049e-03) (1.367e-03,4.157e-02) (1.048e-02,-5.793e-02) - (7.922e-03,2.374e-03) (-2.098e-02,-3.575e-02) (1.553e-01,0.000e+00) (-1.243e-02,4.043e-03) (-5.691e-03,5.671e-02) (5.008e-03,3.492e-02) - (4.308e-03,2.162e-03) (-9.859e-03,3.049e-03) (-1.243e-02,-4.043e-03) (1.733e-01,1.388e-17) (-6.243e-03,4.537e-02) (-3.803e-02,1.684e-02) - (-1.059e-03,-9.980e-03) (1.367e-03,-4.157e-02) (-5.691e-03,-5.671e-02) (-6.243e-03,-4.537e-02) (7.849e-02,0.000e+00) (-9.541e-03,-3.243e-02) - (8.724e-03,1.054e-03) (1.048e-02,5.793e-02) (5.008e-03,-3.492e-02) (-3.803e-02,-1.684e-02) (-9.541e-03,3.243e-02) (8.975e-02,0.000e+00) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_5 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_5 deleted file mode 100644 index 0a97963a7c..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_5 +++ /dev/null @@ -1,6 +0,0 @@ - (2.237e-01,0.000e+00) (5.220e-03,3.001e-03) (7.996e-03,-1.748e-03) (4.302e-03,-2.235e-03) (-1.099e-03,9.943e-03) (8.701e-03,-1.104e-03) - (5.220e-03,-3.001e-03) (1.240e-01,-3.469e-18) (-2.349e-02,3.300e-02) (-9.595e-03,-2.716e-03) (5.578e-04,4.186e-02) (1.100e-02,-5.759e-02) - (7.996e-03,1.748e-03) (-2.349e-02,-3.300e-02) (1.562e-01,-1.735e-18) (-1.203e-02,5.156e-03) (-2.406e-03,5.683e-02) (6.254e-03,3.394e-02) - (4.302e-03,2.235e-03) (-9.595e-03,2.716e-03) (-1.203e-02,-5.156e-03) (1.732e-01,0.000e+00) (-7.140e-03,4.518e-02) (-3.804e-02,1.717e-02) - (-1.099e-03,-9.943e-03) (5.578e-04,-4.186e-02) (-2.406e-03,-5.683e-02) (-7.140e-03,-4.518e-02) (7.843e-02,0.000e+00) (-1.007e-02,-3.200e-02) - (8.701e-03,1.104e-03) (1.100e-02,5.759e-02) (6.254e-03,-3.394e-02) (-3.804e-02,-1.717e-02) (-1.007e-02,3.200e-02) (8.982e-02,3.469e-18) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_6 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_6 deleted file mode 100644 index a98bf7cfcd..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_6 +++ /dev/null @@ -1,6 +0,0 @@ - (2.237e-01,6.776e-21) (5.359e-03,3.030e-03) (7.818e-03,-2.202e-03) (4.563e-03,-1.839e-03) (-1.321e-03,9.810e-03) (-5.778e-03,-6.579e-03) - (5.359e-03,-3.030e-03) (1.220e-01,0.000e+00) (-2.086e-02,3.367e-02) (-1.365e-02,-5.250e-03) (1.170e-03,4.234e-02) (-5.404e-02,1.841e-02) - (7.818e-03,2.202e-03) (-2.086e-02,-3.367e-02) (1.588e-01,-1.735e-18) (-1.068e-02,1.657e-03) (-4.566e-03,5.476e-02) (2.869e-02,-2.310e-02) - (4.563e-03,1.839e-03) (-1.365e-02,5.250e-03) (-1.068e-02,-1.657e-03) (1.735e-01,0.000e+00) (-4.430e-03,4.647e-02) (3.270e-02,2.406e-02) - (-1.321e-03,-9.810e-03) (1.170e-03,-4.234e-02) (-4.566e-03,-5.476e-02) (-4.430e-03,-4.647e-02) (7.798e-02,0.000e+00) (-1.994e-02,2.774e-02) - (-5.778e-03,6.579e-03) (-5.404e-02,-1.841e-02) (2.869e-02,2.310e-02) (3.270e-02,-2.406e-02) (-1.994e-02,-2.774e-02) (8.971e-02,0.000e+00) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_7 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_7 deleted file mode 100644 index 4173b9a7df..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_7 +++ /dev/null @@ -1,6 +0,0 @@ - (2.237e-01,-6.776e-20) (5.218e-03,3.122e-03) (8.034e-03,-2.464e-03) (4.330e-03,-1.730e-03) (-1.276e-03,9.732e-03) (-5.629e-03,-6.397e-03) - (5.218e-03,-3.122e-03) (1.231e-01,3.469e-18) (-2.138e-02,3.539e-02) (-1.302e-02,-6.311e-03) (1.583e-03,4.165e-02) (-5.557e-02,1.880e-02) - (8.034e-03,2.464e-03) (-2.138e-02,-3.539e-02) (1.568e-01,0.000e+00) (-1.106e-02,1.185e-03) (-6.135e-03,5.672e-02) (2.862e-02,-2.353e-02) - (4.330e-03,1.730e-03) (-1.302e-02,6.311e-03) (-1.106e-02,-1.185e-03) (1.740e-01,0.000e+00) (-3.740e-03,4.540e-02) (3.197e-02,2.466e-02) - (-1.276e-03,-9.732e-03) (1.583e-03,-4.165e-02) (-6.135e-03,-5.672e-02) (-3.740e-03,-4.540e-02) (7.774e-02,0.000e+00) (-1.975e-02,2.702e-02) - (-5.629e-03,6.397e-03) (-5.557e-02,-1.880e-02) (2.862e-02,2.353e-02) (3.197e-02,-2.466e-02) (-1.975e-02,-2.702e-02) (8.760e-02,-8.674e-19) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_8 b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_8 deleted file mode 100644 index bd54e807ca..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_8 +++ /dev/null @@ -1,6 +0,0 @@ - (2.237e-01,5.421e-20) (5.254e-03,3.102e-03) (8.121e-03,-1.834e-03) (4.332e-03,-1.800e-03) (-1.306e-03,9.688e-03) (-5.636e-03,-6.329e-03) - (5.254e-03,-3.102e-03) (1.230e-01,0.000e+00) (-2.382e-02,3.257e-02) (-1.279e-02,-6.014e-03) (8.039e-04,4.195e-02) (-5.572e-02,1.812e-02) - (8.121e-03,1.834e-03) (-2.382e-02,-3.257e-02) (1.576e-01,0.000e+00) (-1.092e-02,2.253e-03) (-2.822e-03,5.695e-02) (2.712e-02,-2.417e-02) - (4.332e-03,1.800e-03) (-1.279e-02,6.014e-03) (-1.092e-02,-2.253e-03) (1.739e-01,0.000e+00) (-4.613e-03,4.533e-02) (3.223e-02,2.451e-02) - (-1.306e-03,-9.688e-03) (8.039e-04,-4.195e-02) (-2.822e-03,-5.695e-02) (-4.613e-03,-4.533e-02) (7.767e-02,-8.674e-19) (-1.898e-02,2.707e-02) - (-5.636e-03,6.329e-03) (-5.572e-02,-1.812e-02) (2.712e-02,2.417e-02) (3.223e-02,-2.451e-02) (-1.898e-02,-2.707e-02) (8.758e-02,0.000e+00) \ No newline at end of file diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_x_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_x_ref.dat deleted file mode 100644 index 5963bd36ea..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_x_ref.dat +++ /dev/null @@ -1,153 +0,0 @@ -iat : 0 -ad : 20 5.094192361 -R : 0 -1 -1 -iw : 5 -0.002445101543 -0.001372562024 -0.001600848066 0.002311090637 0.0003858022962 0.001322321603 --0.001405751262 -0.0003186777817 0.000896670576 -0.001098564492 -0.0003391847432 -0.0002274088867 -0.00026475261 -0.0003556868907 0.001001809511 0.0001131022156 0.0001740189141 -0.0002414347857 - -ad : 23 5.291649545 -R : 0 -1 0 -iw : 5 -0.002026669867 -0.001012964746 0.00133461674 0.001965812685 0.0003087138368 -0.001192759585 --0.001090928827 -0.0002759004717 0.0005014380054 0.0009696932483 0.0001703186649 -0.0001715995559 -0.000224302389 -0.0003553290929 -0.0009230730874 -0.0001124685163 0.0001552449873 -0.0002135185525 - -ad : 27 3.731782527 -R : 0 0 -1 -iw : 4 -0.03286032058 -0.01865083004 -0.02257473853 -0.008264764533 -0.01576227463 0.01382288191 -0.005002225801 0.009651498754 0.007257615602 0.008356473985 0.01213507675 -0.003663724178 -0.005834709345 -0.004690398815 -0.005253805561 -0.007763498904 0.002425800176 -0.003668344862 - -ad : 49 0 -R : 0 0 0 -iw : 0 -0 0 0 0.6362776886 0 0 --0.1209978597 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0 0 0 0 0 0 -0 0 0 0.8048086284 0 0 -0 0 0.3513856762 0 0 0 - -iw : 2 --0.7202565813 -0.8269862308 0 0 0 0 -0 0 -0.4646564782 0 0 0.8048086284 -0 -0.2028726147 0 0 0.3513856762 0 - -iw : 3 -0 0 0 0 0 0 -0 0 0 0 0 0 -0.8048086284 0 0 0 0 0.3513856762 - -iat : 1 -ad : 16 4.049413304 -R : 0 -1 0 -iw : 5 --0.01433601041 0.008263356231 0.008511852538 0.002740615056 -0.01021395143 -0.00518521788 --0.00174470253 0.006222095997 -0.001746745319 -0.00062856429 0.006974873718 0.005582528204 -0.0007542570906 0.001149338658 0.0003587151815 -0.004675066393 -0.003704651181 -0.0004304467712 - -ad : 23 7.631582655 -R : 0 0 0 -iw : 5 --1.699129537e-05 3.276933327e-05 1.294260152e-05 -5.477730132e-06 3.787916607e-05 -2.119060167e-05 -8.909167446e-06 -6.201862264e-05 2.13848499e-05 4.655213476e-06 -3.22914999e-05 4.643462074e-05 -1.362443277e-05 -3.168535945e-05 -6.842131245e-06 4.787642475e-05 -6.888100277e-05 -2.002489416e-05 - -ad : 24 3.731782527 -R : 0 0 1 -iw : 0 --0.02193057018 0.01492886232 -0.01909731504 -0.009458078255 -0.01333424633 0.01286098817 -0.0063400494 0.008979879315 -0.006694684308 -0.009987998533 -0.01242209476 0.002478034728 --0.006973882584 0.004600345353 0.006777637618 0.00848981171 -0.001736728052 0.004732324378 - -iw : 1 -0.03809863793 -0.0214237047 0.02237221208 0.01694396609 0.02409435929 -0.01333765009 --0.01004571002 -0.01452688769 0.001443146585 0.01408228393 0.01663701863 -0.004614287191 -0.01315150726 -0.0008506120915 -0.008790534296 -0.01049517677 0.003048903066 -0.00826923021 - -iw : 2 -0.01496047089 -0.008041310947 0.01694396609 -0.009236355565 0.0118307216 -0.01004571002 -0.006021530246 -0.007014178255 0.01162084425 -0.002547703899 0.01315150726 -0.01047502398 --0.001778873694 -0.007437111942 0.001966525776 -0.00826923021 0.006812053072 0.001373079883 - -iw : 3 -0.02660146842 -0.01495859261 0.02409435929 0.0118307216 0.004687570942 -0.01452688769 --0.007014178255 -0.002675287481 0.01265463437 0.01315150726 0.006680870484 0.003502577355 -0.004429415247 -0.00813763617 -0.00826923021 -0.004131280356 -0.002226542648 -0.002721131622 - -ad : 48 0 -R : 0 0 0 -iw : 4 -0 0 0 0.5492639522 0 0 -0.08078158608 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 19 7.631582655 -R : 0 0 0 -iw : 4 -1.699129537e-05 -3.276933327e-05 1.294260152e-05 -5.477730132e-06 3.787916607e-05 -2.119060167e-05 -8.909167446e-06 -6.201862264e-05 -2.13848499e-05 -4.655213476e-06 3.22914999e-05 -4.643462074e-05 --1.362443277e-05 3.168535945e-05 6.842131245e-06 -4.787642475e-05 6.888100277e-05 2.002489416e-05 - -ad : 25 5.291649545 -R : 0 1 0 -iw : 0 --0.0006240915591 0.0004022624112 0.0006232754638 0.0005359286831 0.0001441715468 -0.0004809231848 --0.000344485413 -0.0001112436531 -0.0004186435136 -0.0004265571323 -0.0001555460928 8.86422752e-05 --9.866809325e-05 0.0002773306325 0.0003448915333 0.0001008696366 -6.760843836e-05 7.977780089e-05 - -iw : 1 --0.002359802813 0.001310408614 0.002140372072 0.002092983139 0.0005796395002 -0.001565688169 --0.001245840606 -0.0004140052172 -0.001231333452 -0.00152337204 -0.0005156230316 0.0003644128559 --0.0004180634815 0.0008055421574 0.001190741193 0.0003375846862 -0.0002678011381 0.0003175874588 - -iw : 2 --0.001834972839 0.00107844045 0.002092983139 -0.001041381939 0.0004841336362 -0.001245840606 -0.0006329951188 -0.0002881787872 -0.001140284104 0.0009163916505 -0.0004180634815 0.0002643815673 -0.0002119730511 0.0008473460498 -0.0006856274491 0.0003175874588 -0.0001681296771 -0.0001585943546 - -iw : 3 --0.0005458524224 0.0003031141893 0.0005796395002 0.0004841336362 -0.0002314194102 -0.0004140052172 --0.0002881787872 0.0001283545022 -0.0004147049762 -0.0004180634815 0.0001875659387 9.305993771e-06 -0.0001872763955 0.0002828909315 0.0003175874588 -0.0001500251729 -6.197574471e-06 -0.0001087755396 - -ad : 26 4.049413304 -R : 0 1 0 -iw : 4 -0.01433601041 -0.008263356231 0.008511852538 0.002740615056 -0.01021395143 -0.00518521788 --0.00174470253 0.006222095997 0.001746745319 0.00062856429 -0.006974873718 -0.005582528204 --0.0007542570906 -0.001149338658 -0.0003587151815 0.004675066393 0.003704651181 0.0004304467712 - -ad : 28 5.094192361 -R : 0 1 1 -iw : 0 --0.0008317251319 0.0005644729884 -0.000853302372 0.0006946010784 0.0002056447588 0.0006267665271 --0.0004681747394 -0.0001510499157 -0.0006320125308 0.0005698344325 0.0002468188613 0.0001300106434 --0.0001373293551 0.0003923541548 -0.0004346434067 -0.0001501610051 -9.268785557e-05 0.0001047484942 - -iw : 1 -0.003015636538 -0.001762745188 0.002724143899 -0.002623737627 -0.0007726592402 -0.001893843046 -0.001639219147 0.0005301075194 0.001773294318 -0.001883446067 -0.0007763181273 -0.0004974860086 -0.000542281855 -0.0009916581515 0.001413961763 0.0004347838038 0.0003427267933 -0.0003996712886 - -iw : 2 --0.002443719523 0.001414432283 -0.002623737627 -0.001369247479 0.0006323173464 0.001639219147 -0.0008648440378 -0.0003950496767 -0.001418801031 -0.001217569116 0.000542281855 0.0003379803372 -0.000293432569 0.001032012734 0.0008694875441 -0.0003996712886 -0.0002254226859 -0.0002095453642 - -iw : 3 --0.000726764473 0.0004248192914 -0.0007726592402 0.0006323173464 -0.0002957185191 0.0005301075194 --0.0003950496767 0.0001780298985 -0.0006089196708 0.000542281855 -0.0002225970983 1.507088875e-05 -0.0002360090677 0.000366980418 -0.0003996712886 0.0001840339576 -8.700438743e-06 -0.0001481140408 - -ad : 47 0 -R : 0 0 0 -iw : 5 -0 0 0 0.5492639522 0 0 -0.08078158608 0 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_y_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_y_ref.dat deleted file mode 100644 index b685519e1f..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_y_ref.dat +++ /dev/null @@ -1,153 +0,0 @@ -iat : 0 -ad : 20 5.094192361 -R : 0 -1 -1 -iw : 5 --0.00381380592 0.002140886618 0.00249696126 0.0003858022962 0.00195667122 -0.002062522912 --0.0003186777817 -0.001112996152 -0.00139860349 -0.0003391847432 -0.0007869705488 -0.0002796127446 --0.0001215938147 0.0005547911795 0.0001131022156 0.0008979075344 0.0002463899442 0.0001387345467 - -ad : 23 5.291649545 -R : 0 -1 0 -iw : 5 --0.003161147052 0.001579996118 -0.002081700548 0.0003087138368 0.001682211008 0.001860435441 --0.0002759004717 -0.0008374713299 -0.000782129985 0.0001703186649 0.0008132290633 -0.0002314643758 --0.0001206009503 0.0005542330959 -0.0001124685163 -0.0008197532619 0.000218247911 0.0001215684816 - -ad : 27 3.731782527 -R : 0 0 -1 -iw : 4 -0.02585685418 -0.01467580913 -0.01776342141 -0.01576227463 -0.0006360808413 0.01087683369 -0.009651498754 0.0003310579086 0.005710811854 0.01213507675 0.002483294872 0.006983688357 -0.002203538093 -0.003690741784 -0.007763498904 -0.001496398785 -0.004532313326 -0.00132782126 - -ad : 49 0 -R : 0 0 0 -iw : 0 -0 0 0 0 0.6362776886 0 -0 -0.1209978597 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0 0 0 0 0 0 -0 0 0 0 0.8048086284 0 -0 0 0 0.3513856762 0 0 - -iw : 2 -0 0 0 0 0 0 -0 0 0 0 0 0 -0.8048086284 0 0 0 0 0.3513856762 - -iw : 3 --0.7202565813 -0.8269862308 0 0 0 0 -0 0 -0.4646564782 0 0 -0.8048086284 -0 -0.2028726147 0 0 -0.3513856762 0 - -iat : 1 -ad : 16 4.049413304 -R : 0 -1 0 -iw : 5 --0.02897390001 0.01670071731 0.01720294261 -0.01021395143 -0.01284860102 -0.010479623 -0.006222095997 0.00775187669 -0.003530272562 0.006974873718 0.01001695465 0.001491673064 --0.005947394621 0.002322879407 -0.004675066393 -0.006776683948 -0.001074938561 0.004023539594 - -ad : 23 7.631582655 -R : 0 0 0 -iw : 5 -8.375568028e-05 -0.0001615308157 -6.379833742e-05 3.787916607e-05 -0.0001845121442 0.0001044554414 --6.201862264e-05 0.0003020377898 -0.0001054129548 -3.22914999e-05 0.0001572797394 -0.0002177953294 --9.338214144e-05 0.0001561875524 4.787642475e-05 -0.000233128202 0.0003227352854 0.0001384158622 - -ad : 24 3.731782527 -R : 0 0 1 -iw : 0 --0.01725654361 0.0117470983 -0.01502713551 -0.01333424633 -0.003004520636 0.01011994679 -0.008979879315 0.001993934356 -0.005267857186 -0.01242209476 -0.003975907389 -0.006147694985 --0.003527999629 0.003619881269 0.00848981171 0.002668707297 0.004235544978 0.002368062792 - -iw : 1 -0.02997873752 -0.01685770554 0.01760405909 0.02409435929 0.00528268939 -0.01049501853 --0.01452688769 -0.003014933443 0.001135571113 0.01663701863 0.006030238419 0.01152537616 -0.006680864546 -0.0006693225271 -0.01049517677 -0.003711040013 -0.007417541025 -0.004131276794 - -iw : 2 -0.02660146842 -0.01495859261 0.02409435929 0.0118307259 0.004687565475 -0.01452688769 --0.007014180471 -0.002675284665 0.01265463437 0.01315151193 0.006680864546 0.003502585648 -0.00442941324 -0.00813763617 -0.008269233013 -0.004131276794 -0.002226547623 -0.002721130418 - -iw : 3 -0.002085794289 -0.0008015962359 0.00528268939 0.004687565475 -0.0154100355 -0.003014933443 --0.002675284665 0.009647243986 0.005496207727 0.006680864546 -0.009899240387 0.007918885853 --0.008784036698 -0.003498628836 -0.004131276794 0.006565849037 -0.005069893306 0.005826170155 - -ad : 48 0 -R : 0 0 0 -iw : 4 -0 0 0 0 0.5492639522 0 -0 0.08078158608 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 19 7.631582655 -R : 0 0 0 -iw : 4 --8.375568028e-05 0.0001615308157 -6.379833742e-05 3.787916607e-05 -0.0001845121442 0.0001044554414 --6.201862264e-05 0.0003020377898 0.0001054129548 3.22914999e-05 -0.0001572797394 0.0002177953294 -9.338214144e-05 -0.0001561875524 -4.787642475e-05 0.000233128202 -0.0003227352854 -0.0001384158622 - -ad : 25 5.291649545 -R : 0 1 0 -iw : 0 -0.0009734418143 -0.0006274384675 -0.0009721688901 0.0001441715468 0.0004034846929 0.0007501315003 --0.0001112436531 -0.0002422908148 0.0006529892857 -0.0001555460928 -0.0002836638525 0.0001052088858 -4.206702849e-05 -0.0004325731219 0.0001008696366 0.0002522270829 -8.401942057e-05 -3.740499111e-05 - -iw : 1 -0.003680759174 -0.002043941343 -0.0033384968 0.0005796395002 0.001560494101 0.002442119766 --0.0004140052172 -0.0008655124195 0.001920601956 -0.0005156230316 -0.001049692086 0.0004428989488 -0.0001875660889 -0.001256463748 0.0003375846862 0.0008806171509 -0.0003341273089 -0.0001500252583 - -iw : 2 --0.0005458524224 0.0003031141893 0.0005796395002 0.0004841334801 -0.0002314195102 -0.0004140052172 --0.0002881787705 0.0001283545129 -0.0004147049762 -0.0004180632472 0.0001875660889 9.305924292e-06 -0.0001872764275 0.0002828909315 0.0003175873255 -0.0001500252583 -6.197534928e-06 -0.0001087755578 - -iw : 3 --0.001333522487 0.0007999829207 0.001560494101 -0.0002314195102 0.001501149026 -0.0008655124195 -0.0001283545129 -0.000899354606 -0.00075931308 0.0001875660889 -0.001303861145 -7.820032047e-05 -0.0001933611331 0.0005874667285 -0.0001500252583 0.0009858419433 2.812951272e-05 -0.0001461992452 - -ad : 26 4.049413304 -R : 0 1 0 -iw : 4 -0.02897390001 -0.01670071731 0.01720294261 -0.01021395143 -0.01284860102 -0.010479623 -0.006222095997 0.00775187669 0.003530272562 -0.006974873718 -0.01001695465 -0.001491673064 -0.005947394621 -0.002322879407 0.004675066393 0.006776683948 0.001074938561 -0.004023539594 - -ad : 28 5.094192361 -R : 0 1 1 -iw : 0 -0.001297303272 -0.0008804503153 0.001330958891 0.0002056447588 0.0005056843815 -0.0009776141601 --0.0001510499157 -0.0003294118976 0.0009857967404 0.0002468188613 0.0003430929183 0.0001481428176 -5.301084875e-05 -0.0006119838263 -0.0001501610051 -0.0002966971676 -0.0001113272475 -4.584230054e-05 - -iw : 1 --0.004703711595 0.002749484188 -0.004249048943 -0.0007726592402 -0.001913929936 0.002953967225 -0.0005301075194 0.001152232938 -0.002765938449 -0.0007763181273 -0.001170277119 -0.0005808858015 --0.0002225975582 0.001546762644 0.0004347838038 0.001014545213 0.0004219572391 0.0001840344587 - -iw : 2 --0.000726764473 0.0004248192914 -0.0007726592402 0.0006323167981 -0.0002957188707 0.0005301075194 --0.000395049456 0.0001780300401 -0.0006089196708 0.0005422811375 -0.0002225975582 1.507066704e-05 -0.0002360091695 0.000366980418 -0.000399670507 0.0001840344587 -8.700197223e-06 -0.0001481141517 - -iw : 3 --0.001776073314 0.001024169687 -0.001913929936 -0.0002957188707 0.001964653948 0.001152232938 -0.0001780300401 -0.00123159824 -0.0008594136024 -0.0002225975582 0.00170405274 -8.226173578e-05 -0.0002632910132 0.0006948841405 0.0001840344587 -0.001243584985 4.09152716e-05 -0.0001921447282 - -ad : 47 0 -R : 0 0 0 -iw : 5 -0 0 0 0 0.5492639522 0 -0 0.08078158608 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_z_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_z_ref.dat deleted file mode 100644 index ecbf495264..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_z_ref.dat +++ /dev/null @@ -1,153 +0,0 @@ -iat : 0 -ad : 20 5.094192361 -R : 0 -1 -1 -iw : 5 --0.01582500646 0.008883395033 0.007802455541 0.001600848066 -0.00249696126 -0.006948171184 --0.001322321603 0.002062522912 -0.003523948232 -0.001204076294 0.001878086949 0.0001557969717 -0.0003391847432 0.0004412712381 0.0003033143055 -0.0004731017805 -5.195098844e-05 -0.0001131022156 - -ad : 23 5.291649545 -R : 0 -1 0 -iw : 5 -0.01366611817 -0.006830562858 0.006835772367 -0.00133461674 0.002081700548 -0.006775130864 -0.001192759585 -0.001860435441 0.001512578248 -0.0005763155961 0.0008989221073 -7.823209252e-05 --0.0001703186649 -0.000672333605 0.0003386345735 -0.0005281934177 5.165991275e-05 0.0001124685163 - -ad : 27 3.731782527 -R : 0 0 -1 -iw : 4 --0.037032201 0.02101870203 0.01367397611 0.02257473853 0.01776342141 -0.008314374588 --0.01382288191 -0.01087683369 0.004058695319 -0.01111037288 -0.008742437272 -0.002936589557 --0.01213507675 -0.002703164303 0.00702603014 0.005528583823 0.001878703388 0.007763498904 - -ad : 49 0 -R : 0 0 0 -iw : 0 -0 0 -0.6362776886 0 0 0.1209978597 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0.7202565813 0.8269862308 0 0 0 0 -0 0 -0.9293129565 0 0 0 -0 -0.4057452295 0 0 0 0 - -iw : 2 -0 0 0 0 0 0 -0 0 0 -0.8048086284 0 0 -0 0 -0.3513856762 0 0 0 - -iw : 3 -0 0 0 0 0 0 -0 0 0 0 -0.8048086284 0 -0 0 0 -0.3513856762 0 0 - -iat : 1 -ad : 16 4.049413304 -R : 0 -1 0 -iw : 5 --0.02414555874 0.01391763451 0.006541785559 -0.008511852538 -0.01720294261 -0.003909914891 -0.00518521788 0.010479623 0.004124215941 0.003390318056 0.006852027416 0.005322759472 --0.006974873718 -0.00269207117 -0.002309601364 -0.004667836942 -0.003567699565 0.004675066393 - -ad : 23 7.631582655 -R : 0 0 0 -iw : 5 --2.861774711e-05 5.519205405e-05 1.959197986e-05 -1.294260152e-05 6.379833742e-05 -3.201807977e-05 -2.119060167e-05 -0.0001044554414 3.930104361e-05 9.907874145e-06 -4.883916859e-05 7.631226297e-05 -3.22914999e-05 -5.833809788e-05 -1.465420696e-05 7.223540327e-05 -0.0001131430354 -4.787642475e-05 - -ad : 24 3.731782527 -R : 0 0 1 -iw : 0 -0.02471483141 -0.01682420076 0.0140340523 0.01909731504 0.01502713551 -0.009421715485 --0.01286098817 -0.01011994679 -0.002498991839 0.01264549826 0.009950383892 0.003006045572 -0.01242209476 0.001764045789 -0.008599366625 -0.006766597675 -0.00205446516 -0.00848981171 - -iw : 1 --0.02408941797 0.01317471931 0.002140413728 -0.02237220661 -0.01760405479 -0.00180075344 -0.01333764727 0.01049501631 0.01506494035 -0.004566174624 -0.003592993292 -0.004026021753 --0.01663701448 -0.009822226036 0.002555673525 0.002010987005 0.00253974654 0.01049517428 - -iw : 2 --0.03809863793 0.0214237047 -0.02237220661 -0.01694397225 -0.02409435929 0.01333764727 -0.01004571319 0.01452688769 -0.0014431363 -0.01408228535 -0.01663701448 0.004614281253 --0.01315151193 0.0008506059215 0.00879053515 0.01049517428 -0.003048899504 0.008269233013 - -iw : 3 --0.02997873752 0.01685770554 -0.01760405479 -0.02409435929 -0.005282695551 0.01049501631 -0.01452688769 0.003014936617 -0.00113556302 -0.01663701448 -0.006030241848 -0.01152537149 --0.006680870484 0.0006693176721 0.01049517428 0.00371104207 0.007417538222 0.004131280356 - -ad : 48 0 -R : 0 0 0 -iw : 4 -0 0 -0.5492639522 0 0 -0.08078158608 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 19 7.631582655 -R : 0 0 0 -iw : 4 -2.861774711e-05 -5.519205405e-05 1.959197986e-05 -1.294260152e-05 6.379833742e-05 -3.201807977e-05 -2.119060167e-05 -0.0001044554414 -3.930104361e-05 -9.907874145e-06 4.883916859e-05 -7.631226297e-05 --3.22914999e-05 5.833809788e-05 1.465420696e-05 -7.223540327e-05 0.0001131430354 4.787642475e-05 - -ad : 25 5.291649545 -R : 0 1 0 -iw : 0 --0.004208336607 0.00271251166 0.003574473834 -0.0006232754638 0.0009721688901 -0.002827126473 -0.0004809231848 -0.0007501315003 -0.001911426966 0.0005944025321 -0.0009271336406 7.144663993e-05 -0.0001555460928 0.001160698886 -0.0003753373165 0.0005854414036 -4.633222523e-05 -0.0001008696366 - -iw : 1 --0.01372755125 0.007563495868 0.009503626526 -0.002140371972 0.003338496644 -0.007535120129 -0.001565688159 -0.002442119749 -0.003685763145 0.001580753004 -0.002465617504 0.0002368399612 -0.0005156229968 0.001965875592 -0.0009774134623 0.001524544148 -0.000155062012 -0.0003375846664 - -iw : 2 -0.002359802813 -0.001310408614 -0.002140371972 -0.002092982464 -0.0005796395002 0.001565688159 -0.001245840533 0.0004140052172 0.001231333191 0.001523371049 0.0005156229968 -0.0003644127057 -0.0004180632472 -0.0008055420094 -0.001190740629 -0.0003375846664 0.0002678010527 -0.0003175873255 - -iw : 3 --0.003680759174 0.002043941343 0.003338496644 -0.0005796395002 -0.001560493426 -0.002442119749 -0.0004140052172 0.0008655123472 -0.00192060155 0.0005156229968 0.001049691127 -0.0004428987146 --0.0001875659387 0.001256463517 -0.0003375846664 -0.0008806166054 0.0003341271756 0.0001500251729 - -ad : 26 4.049413304 -R : 0 1 0 -iw : 4 -0.02414555874 -0.01391763451 0.006541785559 -0.008511852538 -0.01720294261 -0.003909914891 -0.00518521788 0.010479623 -0.004124215941 -0.003390318056 -0.006852027416 -0.005322759472 -0.006974873718 0.00269207117 0.002309601364 0.004667836942 0.003567699565 -0.004675066393 - -ad : 28 5.094192361 -R : 0 1 1 -iw : 0 -0.005383030256 -0.00365334058 0.004696237145 0.000853302372 -0.001330958891 -0.003491496606 --0.0006267665271 0.0009776141601 0.002829402891 0.0009116563223 -0.001421977868 -0.0001133707571 --0.0002468188613 -0.001619794993 -0.0005410471745 0.0008439113389 6.897311957e-05 0.0001501610051 - -iw : 1 --0.01660791944 0.009721918029 -0.01139279636 -0.002724143548 0.004249048395 0.00829902997 -0.001893842905 -0.002953967004 -0.005543507822 -0.00235135183 0.00366757755 0.0003565844232 -0.0007763180164 0.002218987106 0.001190840549 -0.001857442178 -0.0001997082195 -0.0004347836831 - -iw : 2 --0.003015636538 0.001762745188 -0.002724143548 0.002623735352 0.0007726592402 0.001893842905 --0.001639218231 -0.0005301075194 -0.001773293522 0.001883443161 0.0007763180164 0.0004974855486 --0.0005422811375 0.0009916572836 -0.001413958598 -0.0004347836831 -0.0003427262922 0.000399670507 - -iw : 3 -0.004703711595 -0.002749484188 0.004249048395 0.0007726592402 0.00191392766 -0.002953967004 --0.0005301075194 -0.001152232022 0.002765937206 0.0007763180164 0.001170274315 0.000580885084 -0.0002225970983 -0.001546761291 -0.0004347836831 -0.001014542159 -0.0004219564575 -0.0001840339576 - -ad : 47 0 -R : 0 0 0 -iw : 5 -0 0 -0.5492639522 0 0 -0.08078158608 -0 0 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gdmepsl_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gdmepsl_ref.dat deleted file mode 100644 index e6f5946a28..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gdmepsl_ref.dat +++ /dev/null @@ -1,540 +0,0 @@ -0.01820944215 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002201846742 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.03074823707 -0.04226968697 -0.03400767288 0 0 --0.01131948574 -0.01547442766 -0.01242743575 0 0 --0.02151911439 -0.02951760509 -0.02374149109 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005084040602 0.006448502266 0.005170776603 0 0 -0.001832108501 0.002328935171 0.001876019105 0 0 -0.003536617047 0.004501653153 0.003612312658 0 0 -0 0 0 0 0 -0 0 0 0 0 -8.768422658e-05 0.0003486960441 0.0002730233108 5.865242433e-05 0.0002427008854 -9.310649514e-05 0.0003985485602 0.000319085785 6.778929672e-05 0.0002800249227 -0.0001360606517 0.0005815305457 0.000459028089 9.840210897e-05 0.0004065553614 --4.297244241e-05 -0.0001758407906 -0.0001381344311 -2.964908729e-05 -0.0001226096375 -6.782628165e-05 0.0002799715867 0.0002201002395 4.723713858e-05 0.0001953065026 -3.701306969e-05 0.0001468951167 0.000115541368 2.474668615e-05 0.0001023995971 -3.827277314e-05 0.0001626766665 0.0001323746998 2.782588056e-05 0.0001149387043 -5.710898893e-05 0.0002429000253 0.0001916666899 4.108843266e-05 0.0001697764932 --1.90083201e-05 -7.598893712e-05 -5.973099372e-05 -1.280260508e-05 -5.296839528e-05 -2.85936067e-05 0.0001149107639 9.033021657e-05 1.936498123e-05 8.011020493e-05 --0.09781147597 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005684354997 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0102647789 0.008591890065 0.005170727483 0 0 -0.002598206479 0.004412619088 0.001349318444 0 0 -0.005234877904 0.005999644684 0.005393955615 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004025830804 0.003382669347 0.002054130991 0 0 -0.001022036349 0.001718242918 0.0005371112173 0 0 -0.00207684238 0.002361687026 0.002115302006 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001450525939 0.002574564684 0.001713682673 0.0005003654155 0.001119134953 -0.0002069696584 0.002989692893 0.001285672578 0.001378012664 0.001783250387 -0.0007893027894 0.003597783934 0.003103242475 0.0005601566346 0.002454877387 --0.0003519811187 -0.0005937037225 -0.001117562877 0.0005556635365 -0.0009047804849 --0.0002224968402 0.001811693442 0.001013045568 0.0007353796992 0.001412929281 -0.0006171713125 0.001106203683 0.0007375734569 0.0002149604389 0.0004856691995 -8.409003228e-05 0.001268800953 0.0005477027589 0.0005846169392 0.0007591444548 -0.0003362393733 0.001544529821 0.001333346615 0.0002416290032 0.001053435457 --0.0001525247765 -0.0002666237787 -0.0004834271605 0.0002327715494 -0.0003952077681 --9.533667915e-05 0.0007699239849 0.0004299313176 0.0003122841367 0.0006020172018 -0.001184724916 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003923393152 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003721837182 -0.0001841694553 -0.0003762676065 0 0 -9.209692205e-05 -9.375874648e-05 -0.0001228073002 0 0 --0.0002733239076 0.0002149319167 0.0004136304642 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001480831157 -6.855552959e-05 -0.0001411750348 0 0 -3.376565255e-05 -3.69022922e-05 -4.812476966e-05 0 0 --0.0001020619897 8.068704013e-05 0.0001558998735 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.988738177e-05 -1.21554893e-05 -4.22427836e-05 -1.794046132e-05 2.467331516e-05 --7.560471367e-06 -2.113555951e-05 -1.932812108e-05 -1.492784395e-05 2.063024265e-05 -2.059322764e-05 6.193442955e-05 0.0001369574647 6.678753071e-05 -9.886062199e-05 -1.320381486e-05 5.540939173e-05 0.0001055474284 5.392956191e-05 -7.936472765e-05 -1.196018819e-05 1.180079207e-05 2.100050718e-05 9.489567965e-06 -1.579577833e-05 -7.607534279e-06 -6.132809679e-06 -1.881917138e-05 -8.103351433e-06 1.122295609e-05 --2.777069368e-06 -1.036999928e-05 -6.688077891e-06 -6.547167888e-06 8.927090894e-06 -1.102914999e-05 2.744954773e-05 5.980198032e-05 2.935436561e-05 -4.374115471e-05 -6.186226531e-06 2.416245827e-05 4.51221934e-05 2.333950727e-05 -3.448387776e-05 -6.600133402e-06 4.760063565e-06 8.433262444e-06 3.708413653e-06 -6.394705613e-06 -0.01415239381 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001681483321 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.02433942937 -0.03327508626 -0.02676027941 0 0 --0.02151911439 -0.02951760509 -0.02374149109 0 0 --0.0009015907836 -0.001188581789 -0.0009385665628 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003956002781 0.005075123337 0.004071833475 0 0 -0.003536617047 0.004501653153 0.003612312658 0 0 -0.0001204250622 0.0001507091748 0.0001272755415 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.537413212e-05 0.0002730785099 0.0002170818555 4.65779939e-05 0.0001919328643 -0.0001360606517 0.0005815305457 0.000459028089 9.840210897e-05 0.0004065553614 -2.762283953e-05 0.0001173489801 9.652432667e-05 2.015172101e-05 8.323046785e-05 -7.669701429e-05 0.0003349060288 0.000263822688 5.667830847e-05 0.0002340795401 -2.387547278e-05 0.0001056807382 8.323398508e-05 1.789345421e-05 7.388065387e-05 -2.325533669e-05 0.0001155552152 9.103664837e-05 1.965171119e-05 8.097541564e-05 -5.710898893e-05 0.0002429000253 0.0001916666899 4.108843266e-05 0.0001697764932 -1.063941345e-05 4.521107588e-05 3.946384373e-05 7.939076949e-06 3.276810348e-05 -3.171278195e-05 0.00014189503 0.0001117722 2.403653042e-05 9.922489155e-05 -8.853505633e-06 4.155974779e-05 3.276791071e-05 7.055324802e-06 2.909959487e-05 --0.07514525358 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00489248202 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.008311943205 0.005167985784 0.004764992442 0 0 -0.005234877814 0.00599964416 0.005393956118 0 0 --0.001242966966 -0.0003299777402 0.002135642315 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003255597416 0.002052704976 0.001888472913 0 0 -0.002076842351 0.002361686857 0.002115302168 0 0 --0.0004775375672 -0.0001337259938 0.0008114808232 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001133176769 0.00172136319 0.001548196946 -5.102176756e-05 0.0009855440158 -0.000789302775 0.003597783567 0.003103242819 0.0005601560784 0.002454877478 --0.0002397654251 0.0002106364435 0.001317633604 -0.0005745228895 0.0006623551639 -0.0003173621533 0.002251955437 0.001404514394 0.0007237051304 0.00143186624 --0.0003368485644 -1.027039961e-05 0.0006851495604 -0.0006130998796 0.0008844081425 -0.000482180335 0.0007407365889 0.0006653984934 -2.051749582e-05 0.0004272212749 -0.0003362393677 0.001544529677 0.001333346751 0.0002416287848 0.001053435493 --0.0001061632135 8.479185639e-05 0.0005589827663 -0.0002424180721 0.0002746800563 -0.0001375597224 0.000973166585 0.0006124167672 0.0003098542648 0.0006194876342 --0.0001448329763 -1.190241964e-05 0.000284140558 -0.0002633842116 0.0003740149018 -0.001938398649 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0006837556553 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003927181917 -0.0004306300797 -0.0007748431525 0 0 --0.0002733238907 0.0002149319128 0.0004136304525 0 0 --0.000360163461 0.0002649616147 0.0005258785877 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001359046752 -0.0001646950371 -0.0002943079221 0 0 --0.0001020619853 8.068703907e-05 0.0001558998704 0 0 --0.0001358302579 9.922293097e-05 0.000196356276 0 0 -0 0 0 0 0 -0 0 0 0 0 --5.696146865e-05 -5.513732465e-05 -8.920783461e-05 -4.235247813e-05 7.08547411e-05 -2.05932296e-05 6.193442957e-05 0.0001369574555 6.678752681e-05 -9.886061642e-05 -2.588317081e-05 9.557343127e-05 0.000193016523 9.804062427e-05 -0.0001465111365 --4.022826837e-06 1.199905283e-05 2.476341116e-05 1.320205982e-05 -1.829676285e-05 --2.519521121e-05 -6.133459639e-05 -0.0001087010205 -5.703979578e-05 8.472184033e-05 --2.527373015e-05 -2.256966966e-05 -3.803770524e-05 -1.767779523e-05 3.019671837e-05 -1.102915108e-05 2.744954763e-05 5.980197362e-05 2.935436299e-05 -4.374115082e-05 -1.313123314e-05 4.071552515e-05 8.521908935e-05 4.29243675e-05 -6.460101598e-05 --2.529726173e-06 5.757212257e-06 1.150063857e-05 6.207033533e-06 -8.649811466e-06 --1.329361804e-05 -2.748016552e-05 -4.751982035e-05 -2.520602951e-05 3.77170808e-05 --0.02053727547 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0024908872 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01853026669 0.02561807628 0.0206784733 0 0 -0.03074823707 0.04226968697 0.03400767288 0 0 -0.02433942937 0.03327508626 0.02676027941 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.003039469597 -0.003905786013 -0.003087806094 0 0 --0.005084040602 -0.006448502266 -0.005170776603 0 0 --0.003956002781 -0.005075123337 -0.004071833475 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.604230099e-05 0.000188939528 0.000162367311 3.323050575e-05 0.0001366947541 --0.0001327765658 -0.0005337992124 -0.0004179898 -8.983334584e-05 -0.000371641281 --8.704007762e-05 -0.0004180514116 -0.0003322743546 -7.123428205e-05 -0.0002936644352 --3.27418278e-05 -0.00014059979 -0.0001112807292 -2.381878786e-05 -9.839722744e-05 --0.0001360606517 -0.0005815305457 -0.000459028089 -9.840210897e-05 -0.0004065553614 -2.064032587e-05 8.358660362e-05 6.827453865e-05 1.428848062e-05 5.907448976e-05 --5.395370278e-05 -0.0002200006162 -0.0001731604368 -3.711523745e-05 -0.0001534925045 --3.716024944e-05 -0.0001731632377 -0.0001362381169 -2.936621304e-05 -0.0001211388474 --1.381667984e-05 -5.87327953e-05 -4.645542806e-05 -9.943401806e-06 -4.108530039e-05 --5.710898893e-05 -0.0002429000253 -0.0001916666899 -4.108843266e-05 -0.0001697764932 -0.1272810855 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.005154388646 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.007524196074 -0.004675984149 -0.003764500562 0 0 --0.01026477956 -0.008591889595 -0.00517072761 0 0 --0.008311943828 -0.005167986005 -0.004764991976 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002930484599 -0.001830680247 -0.001471936611 0 0 --0.004025831016 -0.003382669195 -0.002054131031 0 0 --0.003255597614 -0.002052705046 -0.001888472762 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0006633446915 0.0009619510667 0.0007916905753 0.0003635579106 0.001124161633 --0.001823555585 -0.003855302971 -0.002535772245 -0.000809222003 -0.001918025987 --0.001422861247 -0.002541226593 -0.002290087134 7.669787828e-05 -0.001688075166 --0.0002233676431 -0.00138952808 1.598031906e-05 -0.0009762674965 -0.0005604476126 --0.0007893032317 -0.003597783931 -0.003103242716 -0.0005601563803 -0.002454877243 --0.0002746902067 0.0004288767331 0.0003521027362 0.0001578343871 0.0004896307403 --0.0007716145699 -0.001637474882 -0.00107822814 -0.000341709749 -0.0008200107564 --0.000602264634 -0.001079750839 -0.000970018622 3.310753358e-05 -0.0007224984491 --9.512666269e-05 -0.0005920044911 5.639927593e-06 -0.0004135173956 -0.0002422321996 --0.0003362395468 -0.00154452982 -0.00133334671 -0.0002416289032 -0.0010534354 -0.001635337732 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.000626473603 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001738515828 -0.0002778341113 -0.0002514396574 0 0 --0.0003721836722 0.0001841694469 0.0003762675698 0 0 --0.000392718145 0.0004306300611 0.0007748431188 0 0 -0 0 0 0 0 -0 0 0 0 0 -6.528053821e-05 -0.0001160448815 -8.770257468e-05 0 0 --0.0001480831045 6.85555278e-05 0.0001411750261 0 0 --0.0001359046638 0.0001646950326 0.0002943079143 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.089061525e-05 -3.237375651e-06 8.10247011e-05 2.651739188e-05 -4.093228324e-05 --2.2454569e-05 2.697913145e-05 7.632021423e-05 3.41840173e-05 -4.809253928e-05 -8.267715851e-05 9.569889694e-05 0.0001582753892 7.706912879e-05 -0.0001252249793 -1.672182259e-05 5.835449446e-05 0.0001061723182 5.648423214e-05 -8.357068654e-05 --2.05932277e-05 -6.193443161e-05 -0.0001369574574 -6.678752839e-05 9.886061914e-05 -1.842587796e-07 4.912997697e-06 3.697709953e-05 1.374481352e-05 -2.145000365e-05 --6.069250427e-06 1.394004812e-05 3.4993369e-05 1.590193334e-05 -2.267192664e-05 -3.464553637e-05 4.008895481e-05 6.895060334e-05 3.311745398e-05 -5.45573443e-05 -7.954152309e-06 2.554276154e-05 4.595358078e-05 2.473576637e-05 -3.67640513e-05 --1.102914954e-05 -2.744954904e-05 -5.980197513e-05 -2.935436403e-05 4.374115277e-05 -0.01141079301 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001402796368 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01892659772 -0.02616096579 -0.02105595919 0 0 --0.016916613 -0.02322760969 -0.01869027907 0 0 --0.0006308873984 -0.0009413821443 -0.0007846747135 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003182252237 0.003991942305 0.003199181147 0 0 -0.002782763745 0.003544926101 0.002840033748 0 0 -9.683269505e-05 0.0001273708656 9.216179927e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -6.481972968e-05 0.0002169062452 0.0001673098742 3.598633728e-05 0.0001495316053 -0.0001090461639 0.0004589488093 0.000359040205 7.736201677e-05 0.0003197541289 -2.26585912e-05 9.649831652e-05 6.943360293e-05 1.58078954e-05 6.538090483e-05 -6.525961502e-05 0.0002637527428 0.0002071661238 4.444621658e-05 0.0001838479174 -2.109721696e-05 8.320685116e-05 6.53804825e-05 1.400843339e-05 5.797396864e-05 -2.745358746e-05 9.097763509e-05 7.144632333e-05 1.518379117e-05 6.309322758e-05 -4.497231334e-05 0.0001916389255 0.0001500218263 3.232769033e-05 0.0001335839459 -9.242677213e-06 3.944522131e-05 2.498503339e-05 6.200893349e-06 2.567936574e-05 -2.879298492e-05 0.0001117371587 8.77733011e-05 1.879610008e-05 7.781481808e-05 -9.117524792e-06 3.275238878e-05 2.568000296e-05 5.485750843e-06 2.275057298e-05 --0.05561397722 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.005043137014 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.007468391569 0.00349431058 0.002612381158 0 0 -0.003568217025 0.005060702035 0.004919458662 0 0 --0.00167251067 0.0001656111749 0.0025270017 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002911386302 0.001399153919 0.001056920476 0 0 -0.001426610229 0.001986627141 0.001919221416 0 0 --0.0006357686967 5.24227673e-05 0.0009532329573 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0008969175066 0.001295869618 0.001098261877 -9.427346152e-05 0.0008483718618 -0.0006107548068 0.002945857484 0.00267778366 0.0005480507942 0.001786234802 --0.0002035379985 0.0003315163272 0.001376569695 -0.0002982951509 0.0003135502122 -0.0002475616203 0.001795724991 0.001154665549 0.0005927057991 0.001094313829 --0.0002562257631 -0.000106506049 0.0003373973908 -0.0005737355008 0.0008191973393 -0.0003817044697 0.0005573721492 0.0004715938937 -3.935731052e-05 0.0003672366232 -0.0002600596365 0.001265727623 0.001152673833 0.0002372655199 0.0007649924475 --9.016223135e-05 0.0001405224975 0.000590823065 -0.0001227762418 0.0001246418566 -0.0001072824587 0.0007765447909 0.000504715948 0.0002550116194 0.0004715560938 --0.0001100312376 -5.318445845e-05 0.0001339431079 -0.0002476089464 0.0003486259468 -0.004221400889 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001430823178 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001004941151 -0.0006767961156 -0.001256077605 0 0 --0.0005340350287 0.0004653926301 0.0008181781798 0 0 --0.0006461337585 0.0005938413737 0.001020551376 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003913674908 -0.000252450032 -0.0004683422972 0 0 --0.0001990339121 0.0001765565835 0.0003074569526 0 0 --0.0002342481565 0.0002219498816 0.0003797637269 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.520759032e-05 -4.417224172e-05 -9.759438632e-05 -5.630073405e-05 7.171803438e-05 -5.41046846e-05 0.000160591377 0.0002541370197 0.0001376211699 -0.0002058488332 -8.345591228e-05 0.0002202922414 0.0003706866412 0.0001942962333 -0.0002885591142 -2.472014914e-05 3.629425044e-05 6.143599322e-05 3.115568611e-05 -4.846320869e-05 --3.422179713e-05 -0.0001236361255 -0.0002292902737 -0.0001171852015 0.0001748624412 -1.805954805e-05 -2.11950676e-05 -4.114662091e-05 -2.488234712e-05 3.158541337e-05 -2.581710532e-05 7.070378188e-05 0.000108946282 5.98686092e-05 -9.012124665e-05 -4.185488338e-05 0.0001010344977 0.0001602064791 8.613016207e-05 -0.0001287812222 -1.386069346e-05 1.713005637e-05 2.856106184e-05 1.468180825e-05 -2.290322115e-05 --1.627626799e-05 -5.483084818e-05 -9.992012371e-05 -5.157437807e-05 7.745780495e-05 --0.01592419845 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001880145699 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01489038189 0.02013282152 0.01608549451 0 0 -0.02433942937 0.03327508626 0.02676027941 0 0 -0.01892659772 0.02616096579 0.02105595919 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002408441135 -0.003010456921 -0.002484093741 0 0 --0.003956002781 -0.005075123337 -0.004071833475 0 0 --0.003182252237 -0.003991942305 -0.003199181147 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.123406607e-05 0.0001621708049 0.0001062947564 2.537698481e-05 0.0001058244688 --8.704007762e-05 -0.0004180514116 -0.0003322743546 -7.123428205e-05 -0.0002936644352 --9.568876379e-05 -0.0003320412242 -0.000256200768 -5.519908584e-05 -0.0002291569859 --2.667487433e-05 -0.0001112581754 -8.657334878e-05 -1.87111808e-05 -7.735582353e-05 --0.0001090461639 -0.0004589488093 -0.000359040205 -7.736201677e-05 -0.0003197541289 -1.448028245e-05 6.826837782e-05 4.98365049e-05 1.128430749e-05 4.657453537e-05 --3.716024944e-05 -0.0001731632377 -0.0001362381169 -2.936621304e-05 -0.0001211388474 --3.749839658e-05 -0.0001361777022 -0.0001072282998 -2.285587118e-05 -9.475928303e-05 --1.088797015e-05 -4.644841066e-05 -3.618917578e-05 -7.822512623e-06 -3.232501711e-05 --4.497231334e-05 -0.0001916389255 -0.0001500218263 -3.232769033e-05 -0.0001335839459 -0.1030505366 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.003065097546 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.005567440017 -0.003896600177 -0.00339405411 0 0 --0.008536473357 -0.006477987939 -0.003506616441 0 0 --0.007468392058 -0.003494310754 -0.00261238079 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002175205973 -0.001520715183 -0.001317806148 0 0 --0.003341078318 -0.00255523913 -0.001404555286 0 0 --0.002911386459 -0.001399153974 -0.001056920358 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0005280852298 0.0008250830465 0.0007627301938 0.0003494246528 0.0007989271963 --0.001439928623 -0.002977694112 -0.001880530387 -0.0005846440427 -0.001579779425 --0.001129748684 -0.001886846715 -0.001570308288 0.0001657660693 -0.0014712792 --0.0001836634065 -0.001005321803 0.0001930818754 -0.0006864717111 -0.0005513780999 --0.0006107551662 -0.002945857771 -0.002677783579 -0.0005480510318 -0.001786234617 --0.0002187691854 0.000366701648 0.0003369281243 0.0001512384753 0.0003487970437 --0.0006094031695 -0.001263495152 -0.0007971751048 -0.0002456400224 -0.000676676516 --0.0004784093368 -0.0007993846164 -0.0006600155515 7.314126523e-05 -0.0006324350041 --7.833809017e-05 -0.0004270016406 8.389142246e-05 -0.0002895871474 -0.0002388123084 --0.0002600597775 -0.001265727735 -0.001152673801 -0.0002372656131 -0.0007649923745 -0.003468415334 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001103114815 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003438844385 -7.94233655e-05 -0.0005450477061 0 0 --0.0002197646646 0.0003799460015 0.0006325949488 0 0 --0.001004941224 0.0006767961447 0.001256077658 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001232489177 -9.019637606e-06 -0.0002092183115 0 0 --6.751827803e-05 0.0001450751287 0.0002386716972 0 0 --0.0003913675086 0.000252450039 0.0004683423092 0 0 -0 0 0 0 0 -0 0 0 0 0 -8.356805906e-05 0.0001571265628 0.0001501975146 0.0001016008983 -0.0001490503507 -7.69355772e-05 8.293434029e-05 0.0001083214642 6.420672865e-05 -9.999760849e-05 --4.425047781e-05 0.0001033969727 0.0002126493367 0.0001173285265 -0.0001583849969 -3.971691038e-05 0.0001052517977 0.0001913465493 9.640130948e-05 -0.0001444138237 --5.410468756e-05 -0.0001605913738 -0.0002541370167 -0.0001376211675 0.000205848829 -2.447869542e-05 5.770270946e-05 5.877125566e-05 3.938168048e-05 -5.772888405e-05 -3.071681371e-05 3.433682077e-05 4.532170216e-05 2.738409756e-05 -4.286633513e-05 --1.108382053e-05 5.081429274e-05 9.436393604e-05 5.384115383e-05 -7.300447309e-05 -2.041221145e-05 4.678498503e-05 8.264556986e-05 4.201280406e-05 -6.350338043e-05 --2.581710772e-05 -7.070377969e-05 -0.0001089462796 -5.986860757e-05 9.012124362e-05 -0.02627912114 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003709662289 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01903842214 -0.02865442931 -0.02318230306 0 0 --0.03454528891 -0.04765710419 -0.0384301858 0 0 --0.02759591542 -0.03746695894 -0.0299939861 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004120011482 0.004345864116 0.003467457969 0 0 -0.00570180828 0.007300002939 0.005800564301 0 0 -0.004501442108 0.0056682719 0.004630405884 0 0 -0 0 0 0 0 -0 0 0 0 0 -8.646545302e-05 -0.0002026915105 -0.0002009823163 -4.141489339e-05 -0.0001629692109 -0.0001607842196 0.0006138955664 0.0004516083803 0.0001008341761 0.0004179127581 -8.069808371e-05 0.000451900175 0.00040479461 8.090855311e-05 0.0003323689908 -3.094482146e-05 0.0001580892898 0.000126066368 2.702797183e-05 0.0001113061034 -0.0001403725596 0.0006545750726 0.0005187371641 0.0001112982379 0.0004590777083 -3.484773349e-06 -9.68669168e-05 -7.308353977e-05 -1.690508873e-05 -6.836439828e-05 -5.737179999e-05 0.0002520233262 0.0001887802672 4.191133112e-05 0.000173165071 -4.723080529e-05 0.0001887652983 0.0001634614605 3.29634402e-05 0.0001362291077 -1.317108687e-05 6.630007041e-05 5.220858257e-05 1.127845749e-05 4.646352594e-05 -5.913499044e-05 0.0002739790802 0.0002156852101 4.646312827e-05 0.000191683923 --0.1368157436 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.008068522199 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.00928350203 0.004774401962 0.003258075509 0 0 -0.01052174927 0.01032701872 0.007107919716 0 0 -0.007252466014 0.007125905302 0.007957849364 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003599941265 0.00187990149 0.001294691595 0 0 -0.004142490374 0.004055018425 0.002797729862 0 0 -0.002871449998 0.002803796415 0.003103505004 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0007336498436 -0.0009292781993 -0.0005743296085 -0.0002652590231 -0.001462620531 -0.002043631932 0.004472062168 0.003119066662 0.001030693405 0.002000695042 -0.001580379292 0.003121266411 0.003109206023 0.0001534852501 0.00157752866 -0.0002337740536 0.001765676587 0.0003921830459 0.001286666188 0.000378903574 -0.0009130498692 0.003792559735 0.002959416403 0.0003870386 0.003097280829 -0.0003036302268 -0.0004171574508 -0.0002609427242 -0.000116088489 -0.0006355092883 -0.0008644817535 0.001902177748 0.001331732245 0.0004380789023 0.0008523625837 -0.0006684159872 0.001331782827 0.001329011427 6.972010168e-05 0.0006693974868 -9.934400389e-05 0.0007548099164 0.0001736419991 0.0005479172928 0.0001619718869 -0.0003892517091 0.001625523963 0.001266456942 0.000165095119 0.0013322761 -0.0078805158 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002328850568 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003180861421 0.0003001810318 0.0002456713407 0 0 --3.348614846e-05 0.0004618032134 0.0003243610172 0 0 --0.0003981739835 0.0002286819828 0.001001126043 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001501064479 0.0001554173965 0.0001534326588 0 0 --5.740133959e-06 0.0001865040308 0.0001118084982 0 0 --0.0001405005188 6.418634082e-05 0.000380643063 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0009687823658 0.0002561094675 0.000273135922 0.0001378605165 -0.0002351634156 -0.0001313370567 0.0002410642728 -7.033399365e-05 3.122433057e-05 -6.037243048e-05 --2.329836945e-05 -0.0001282399249 0.0001911735958 -2.141635864e-06 -4.006979208e-06 -2.822287815e-06 6.433016314e-05 0.0001040163458 6.869029618e-05 -8.801861387e-05 --8.561545442e-05 -0.0001458205989 -0.0002176203794 -0.0001166704055 0.0001876158861 -0.0003715938877 7.062723458e-05 9.754386439e-05 4.385079882e-05 -7.647122907e-05 -4.693518974e-05 0.0001012711607 -4.396297968e-05 7.692505185e-06 -1.822115273e-05 -2.065725734e-05 -4.109936358e-05 9.498937311e-05 4.571678411e-06 -1.175024465e-05 -3.463615896e-06 2.955001478e-05 4.335148065e-05 3.040396426e-05 -3.865835132e-05 --3.554493618e-05 -6.180417756e-05 -9.2431778e-05 -4.986367118e-05 8.116791408e-05 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gdmx_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gdmx_ref.dat deleted file mode 100644 index ec69c0b1a1..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gdmx_ref.dat +++ /dev/null @@ -1,810 +0,0 @@ -0.008359089617 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001021758796 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01395197854 -0.01221909206 -0.01264863702 0 0 --0.01221909206 -0.007045732516 -0.009542440848 0 0 --0.01264863702 -0.009542440848 -0.01081061779 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002332113488 0.001885293946 0.001982483849 0 0 -0.001885293946 0.00105663389 0.001453842769 0 0 -0.001982483849 0.001453842769 0.001646231535 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.496602598e-05 0.0001003502298 9.238466012e-05 2.782699074e-06 7.140917059e-05 -0.0001003502298 0.000179536367 0.0002064254944 -2.462842891e-05 0.0001276178748 -9.238466012e-05 0.0002064254944 0.0002098753602 -8.96074679e-06 0.0001426723833 -2.782699074e-06 -2.462842891e-05 -8.96074679e-06 -1.346053693e-05 -1.71426935e-05 -7.140917059e-05 0.0001276178748 0.0001426723833 -1.71426935e-05 8.883803814e-05 -1.902490116e-05 4.200982546e-05 3.929103166e-05 7.717982899e-07 3.045245428e-05 -4.200982546e-05 7.249615527e-05 8.662652217e-05 -1.097010362e-05 5.238241427e-05 -3.929103166e-05 8.662652217e-05 8.759449309e-05 -4.222623931e-06 5.920646127e-05 -7.717982899e-07 -1.097010362e-05 -4.222623931e-06 -5.800634501e-06 -7.639832058e-06 -3.045245428e-05 5.238241427e-05 5.920646127e-05 -7.639832058e-06 3.639403116e-05 --0.04518879253 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002371745145 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.004505923326 0.002573357326 0.002575262216 0 0 -0.002573357326 0.002043480516 0.001644451405 0 0 -0.002575262216 0.001644451405 0.002207904393 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001769788657 0.001012057855 0.001018266149 0 0 -0.001012057855 0.0007958656128 0.000649741494 0 0 -0.001018266149 0.000649741494 0.0008696647546 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0006597351885 0.0006386169514 0.0005828545882 4.027317349e-05 0.0001977011317 -0.0006386169514 0.001365581518 0.001094868994 0.0001634267727 0.0008140120062 -0.0005828545882 0.001094868994 0.001326337967 -0.0001815887644 0.0008118759473 -4.027317349e-05 0.0001634267727 -0.0001815887644 0.0002214150892 -1.925778633e-05 -0.0001977011317 0.0008140120062 0.0008118759473 -1.925778633e-05 0.000649369 -0.0002806996705 0.000273309639 0.0002500944135 1.701519466e-05 8.608498809e-05 -0.000273309639 0.0005793493168 0.0004686328902 6.570873917e-05 0.0003464752029 -0.0002500944135 0.0004686328902 0.0005690523696 -7.890060469e-05 0.0003478206523 -1.701519466e-05 6.570873917e-05 -7.890060469e-05 9.224883253e-05 -1.035480431e-05 -8.608498809e-05 0.0003464752029 0.0003478206523 -1.035480431e-05 0.0002763809431 -0.0002443061396 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -6.253960577e-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.0001964927986 1.473354857e-05 -2.699431994e-05 0 0 -1.473354857e-05 -4.462221198e-05 -1.441097474e-05 0 0 --2.699431994e-05 -1.441097474e-05 6.567777066e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 -8.552660228e-05 4.982213494e-06 -9.95675227e-06 0 0 -4.982213494e-06 -1.747370662e-05 -5.793168979e-06 0 0 --9.95675227e-06 -5.793168979e-06 2.810380244e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.425075037e-05 2.916262865e-07 -8.600471258e-06 -4.69187133e-06 5.846832902e-06 -2.916262865e-07 -1.937730117e-05 -1.152830001e-05 -7.216379476e-06 1.030955733e-05 --8.600471258e-06 -1.152830001e-05 8.3663527e-06 1.720962997e-07 5.657719444e-06 --4.69187133e-06 -7.216379476e-06 1.720962997e-07 -1.54365737e-07 2.180100056e-06 -5.846832902e-06 1.030955733e-05 5.657719444e-06 2.180100056e-06 -6.505192581e-06 -1.395553163e-05 -1.287940612e-07 -3.910549342e-06 -2.766706601e-06 3.861865919e-06 --1.287940612e-07 -1.04897775e-05 -4.365261945e-06 -3.46445533e-06 4.873107567e-06 --3.910549342e-06 -4.365261945e-06 4.398270861e-06 1.490011529e-07 2.454388472e-06 --2.766706601e-06 -3.46445533e-06 1.490011529e-07 -5.788646036e-08 1.023004515e-06 -3.861865919e-06 4.873107567e-06 2.454388472e-06 1.023004515e-06 -3.070397197e-06 --0.008259918081 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0009929886273 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01403336229 0.01219681001 0.01264425526 0 0 -0.01219681001 0.007049719365 0.009557996988 0 0 -0.01264425526 0.009557996988 0.01081555844 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00230706176 -0.001886127889 -0.001983327497 0 0 --0.001886127889 -0.001062977921 -0.001451735784 0 0 --0.001983327497 -0.001451735784 -0.001644884118 0 0 -0 0 0 0 0 -0 0 0 0 0 --3.729466504e-05 -0.0001007570994 -9.357614332e-05 -3.985574429e-06 -7.035752213e-05 --0.0001007570994 -0.0001825819745 -0.0002044149347 2.459699937e-05 -0.000127490746 --9.357614332e-05 -0.0002044149347 -0.0002086612092 9.094968443e-06 -0.0001427383571 --3.985574429e-06 2.459699937e-05 9.094968443e-06 1.352787766e-05 1.717743648e-05 --7.035752213e-05 -0.000127490746 -0.0001427383571 1.717743648e-05 -8.902242575e-05 --1.571962952e-05 -4.225493118e-05 -3.933475874e-05 -1.588276374e-06 -2.950662106e-05 --4.225493118e-05 -7.493821648e-05 -8.485519343e-05 1.096801804e-05 -5.232732294e-05 --3.933475874e-05 -8.485519343e-05 -8.714664063e-05 4.257819353e-06 -5.925328563e-05 --1.588276374e-06 1.096801804e-05 4.257819353e-06 5.847541555e-06 7.659771354e-06 --2.950662106e-05 -5.232732294e-05 -5.925328563e-05 7.659771354e-06 -3.653874942e-05 -0.04421633343 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002703459723 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.004764589762 -0.002535352969 -0.002261725296 0 0 --0.002535352969 -0.001992200394 -0.001689030143 0 0 --0.002261725296 -0.001689030143 -0.002587790712 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001867312042 -0.0009984424663 -0.000900050032 0 0 --0.0009984424663 -0.000775670685 -0.000665665821 0 0 --0.000900050032 -0.000665665821 -0.001012828447 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0006611929577 -0.0006307651508 -0.0005632914791 -3.038529045e-05 -0.0002076208849 --0.0006307651508 -0.001359743328 -0.001121264247 -0.0001866104533 -0.000821194053 --0.0005632914791 -0.001121264247 -0.001459304273 9.820533686e-05 -0.0007781752775 --3.038529045e-05 -0.0001866104533 9.820533686e-05 -0.0002697574161 4.874167773e-05 --0.0002076208849 -0.000821194053 -0.0007781752775 4.874167773e-05 -0.0006405137819 --0.0002813277915 -0.0002699066295 -0.0002416369993 -1.274869229e-05 -9.037288032e-05 --0.0002699066295 -0.0005771649102 -0.0004806202414 -7.595016189e-05 -0.0003491569725 --0.0002416369993 -0.0004806202414 -0.0006274421749 4.25328484e-05 -0.0003325671412 --1.274869229e-05 -7.595016189e-05 4.25328484e-05 -0.0001132682198 2.337159703e-05 --9.037288032e-05 -0.0003491569725 -0.0003325671412 2.337159703e-05 -0.0002730664742 --0.0006949401338 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0002397991345 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0001553393911 3.974588856e-05 0.0002115483039 0 0 -3.974588856e-05 4.169751513e-05 -3.959433527e-05 0 0 -0.0002115483039 -3.959433527e-05 -0.0002840349127 0 0 -0 0 0 0 0 -0 0 0 0 0 --5.794195218e-05 1.471048008e-05 7.929294615e-05 0 0 -1.471048008e-05 1.645846416e-05 -1.436285458e-05 0 0 -7.929294615e-05 -1.436285458e-05 -0.0001068783513 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.191209227e-06 7.00505378e-06 3.00034001e-06 -8.215486057e-07 -9.655788941e-06 -7.00505378e-06 4.498806967e-06 -2.086966438e-05 -1.786347417e-05 -5.848241896e-06 -3.00034001e-06 -2.086966438e-05 -9.079055899e-05 -5.979921379e-05 3.003349222e-05 --8.215486057e-07 -1.786347417e-05 -5.979921379e-05 -3.756431441e-05 2.542956044e-05 --9.655788941e-06 -5.848241896e-06 3.003349222e-05 2.542956044e-05 7.557359982e-06 -2.052188371e-06 3.028617535e-06 6.504836021e-07 -7.888730759e-07 -4.162772842e-06 -3.028617535e-06 1.690596822e-06 -9.510860617e-06 -7.943735761e-06 -2.193607038e-06 -6.504836021e-07 -9.510860617e-06 -3.925147584e-05 -2.580367704e-05 1.356102583e-05 --7.888730759e-07 -7.943735761e-06 -2.580367704e-05 -1.625230334e-05 1.123310299e-05 --4.162772842e-06 -2.193607038e-06 1.356102583e-05 1.123310299e-05 2.829734466e-06 --9.917153559e-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 --2.877016834e-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 --8.138374977e-05 2.228204383e-05 4.381762571e-06 0 0 -2.228204383e-05 -3.986849511e-06 -1.555614005e-05 0 0 -4.381762571e-06 -1.555614005e-05 -4.94065088e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.505172843e-05 8.339430754e-07 8.436473957e-07 0 0 -8.339430754e-07 6.344031027e-06 -2.106985114e-06 0 0 -8.436473957e-07 -2.106985114e-06 -1.347416643e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 --7.671360937e-06 4.068696163e-07 1.191483203e-06 1.202875355e-06 -1.051648464e-06 -4.068696163e-07 3.04560751e-06 -2.010559717e-06 3.142954313e-08 -1.271287983e-07 -1.191483203e-06 -2.010559717e-06 -1.214150993e-06 -1.342216527e-07 6.597388202e-08 -1.202875355e-06 3.142954313e-08 -1.342216527e-07 -6.734073164e-08 -3.474298178e-08 --1.051648464e-06 -1.271287983e-07 6.597388202e-08 -3.474298178e-08 1.843876029e-07 --3.305271634e-06 2.451057261e-07 4.372708063e-08 8.16478084e-07 -9.458332193e-07 -2.451057261e-07 2.442061206e-06 -1.771328742e-06 2.085579822e-09 -5.509132901e-08 -4.372708063e-08 -1.771328742e-06 -4.478524626e-07 -3.519542176e-08 4.682435613e-08 -8.16478084e-07 2.085579822e-09 -3.519542176e-08 -4.690705409e-08 -1.993929625e-08 --9.458332193e-07 -5.509132901e-08 4.682435613e-08 -1.993929625e-08 1.447182574e-07 -0.0009724590972 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003317145782 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0002586664359 -3.800435639e-05 -0.0003135369206 0 0 --3.800435639e-05 -5.128012203e-05 4.457873782e-05 0 0 --0.0003135369206 4.457873782e-05 0.0003798863192 0 0 -0 0 0 0 0 -0 0 0 0 0 -9.752338455e-05 -1.361538829e-05 -0.0001182161169 0 0 --1.361538829e-05 -2.01949279e-05 1.592432698e-05 0 0 --0.0001182161169 1.592432698e-05 0.0001431636926 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.457769257e-06 -7.851800617e-06 -1.956310911e-05 -9.887883034e-06 9.919753199e-06 --7.851800617e-06 -5.83818931e-06 2.63952523e-05 2.318368056e-05 7.18204684e-06 --1.956310911e-05 2.63952523e-05 0.0001329663061 8.338342753e-05 -3.370066977e-05 --9.887883034e-06 2.318368056e-05 8.338342753e-05 4.834232689e-05 -2.948389141e-05 -9.919753199e-06 7.18204684e-06 -3.370066977e-05 -2.948389141e-05 -8.855218093e-06 -6.281210727e-07 -3.403009421e-06 -8.457414156e-06 -4.266502373e-06 4.287892234e-06 --3.403009421e-06 -2.184406651e-06 1.198735119e-05 1.024142271e-05 2.681769615e-06 --8.457414156e-06 1.198735119e-05 5.83898053e-05 3.636775629e-05 -1.525351102e-05 --4.266502373e-06 1.024142271e-05 3.636775629e-05 2.101938732e-05 -1.301679271e-05 -4.287892234e-06 2.681769615e-06 -1.525351102e-05 -1.301679271e-05 -3.314468902e-06 -0.0004506339942 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001772595287 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --4.115340755e-05 -5.447943712e-05 -0.000184553984 0 0 --5.447943712e-05 2.924696851e-06 5.400531001e-05 0 0 --0.000184553984 5.400531001e-05 0.0002774671356 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.758465009e-05 -1.969269357e-05 -6.933619388e-05 0 0 --1.969269357e-05 1.01524246e-06 2.015602356e-05 0 0 --6.933619388e-05 2.015602356e-05 0.000104067971 0 0 -0 0 0 0 0 -0 0 0 0 0 --3.84419596e-05 -7.296680067e-06 5.600131248e-06 5.513419935e-06 3.808956038e-06 --7.296680067e-06 1.48784942e-05 3.23979644e-05 2.507985365e-05 -4.461315437e-06 -5.600131248e-06 3.23979644e-05 8.242420629e-05 5.962711749e-05 -3.569121166e-05 -5.513419935e-06 2.507985365e-05 5.962711749e-05 3.771868015e-05 -2.760966049e-05 -3.808956038e-06 -4.461315437e-06 -3.569121166e-05 -2.760966049e-05 -1.052167401e-06 --1.600772e-05 -2.899823474e-06 3.26006574e-06 3.555579677e-06 3.009069228e-07 --2.899823474e-06 8.799180677e-06 1.387612256e-05 1.140819109e-05 -2.679500529e-06 -3.26006574e-06 1.387612256e-05 3.485320497e-05 2.565467588e-05 -1.60154143e-05 -3.555579677e-06 1.140819109e-05 2.565467588e-05 1.63101898e-05 -1.22561075e-05 -3.009069228e-07 -2.679500529e-06 -1.60154143e-05 -1.22561075e-05 2.406627305e-07 -0.006344810058 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0007364796228 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.01116939499 -0.01248601517 -0.00631443057 0 0 --0.01248601517 -0.01344439462 -0.005674869076 0 0 --0.00631443057 -0.005674869076 -0.0004104720529 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001776286423 0.001961552929 0.0009552605933 0 0 -0.001961552929 0.002049430846 0.000855817992 0 0 -0.0009552605933 0.000855817992 6.091981128e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.738052439e-05 9.243765114e-05 5.620604929e-05 2.729166111e-05 4.899810253e-05 -9.243765114e-05 0.0002643760055 0.0001308953508 9.865338823e-05 0.000116676546 -5.620604929e-05 0.0001308953508 4.637097675e-05 6.476090903e-05 3.795237534e-05 -2.729166111e-05 9.865338823e-05 6.476090903e-05 2.587225054e-05 5.746116466e-05 -4.899810253e-05 0.000116676546 3.795237534e-05 5.746116466e-05 3.371069151e-05 -7.213853685e-06 3.930708545e-05 2.302984921e-05 1.104100798e-05 2.017603241e-05 -3.930708545e-05 0.0001104495331 5.337958826e-05 4.165813942e-05 4.812235608e-05 -2.302984921e-05 5.337958826e-05 2.021453716e-05 2.730444013e-05 1.496386171e-05 -1.104100798e-05 4.165813942e-05 2.730444013e-05 1.099162874e-05 2.426502219e-05 -2.017603241e-05 4.812235608e-05 1.496386171e-05 2.426502219e-05 1.330866108e-05 --0.03551223988 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001789458414 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003443313731 0.002576345141 0.001139663521 0 0 -0.002576345141 0.002607506768 0.0009499504523 0 0 -0.001139663521 0.0009499504523 0.000659363216 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001353661436 0.00101856303 0.0004480717218 0 0 -0.00101856303 0.001028525279 0.000374898438 0 0 -0.0004480717218 0.000374898438 0.0002525152287 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0005142150711 0.0005844134678 0.0003227509884 7.108780255e-05 0.0001325193671 -0.0005844134678 0.00159628195 0.0006806906842 0.0006160766452 0.0006016112318 -0.0003227509884 0.0006806906842 0.0004750919935 0.0001512405743 0.0003825403433 -7.108780255e-05 0.0006160766452 0.0001512405743 0.0003211966016 0.0002090245562 -0.0001325193671 0.0006016112318 0.0003825403433 0.0002090245562 0.0003570816847 -0.000218797687 0.0002507232296 0.0001380542776 3.117453839e-05 5.77254484e-05 -0.0002507232296 0.0006848593542 0.000290351946 0.0002657986239 0.0002569616579 -0.0001380542776 0.000290351946 0.0001992163978 6.722259924e-05 0.000160795863 -3.117453839e-05 0.0002657986239 6.722259924e-05 0.0001371680087 9.123758609e-05 -5.77254484e-05 0.0002569616579 0.000160795863 9.123758609e-05 0.0001500692876 --0.0001002095292 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.747562834e-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 --7.792158109e-05 -3.9116128e-05 -7.222901782e-05 0 0 --3.9116128e-05 -1.143711777e-05 -7.492645032e-06 0 0 --7.222901782e-05 -7.492645032e-06 1.559733985e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --4.30277065e-05 -1.619002327e-05 -3.070805965e-05 0 0 --1.619002327e-05 -4.970388377e-06 -2.560425806e-06 0 0 --3.070805965e-05 -2.560425806e-06 6.323830038e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 --5.916883252e-05 -1.471443504e-05 -2.100420237e-05 -1.145883273e-05 1.010995665e-05 --1.471443504e-05 -1.307072133e-05 -8.251133025e-07 -2.705220349e-06 1.056595095e-06 --2.100420237e-05 -8.251133025e-07 7.149800791e-06 -1.391847955e-06 3.827405602e-07 --1.145883273e-05 -2.705220349e-06 -1.391847955e-06 -1.62206565e-06 2.476606879e-06 -1.010995665e-05 1.056595095e-06 3.827405602e-07 2.476606879e-06 -1.341610596e-06 --2.550734704e-05 -5.153832367e-06 -9.425575346e-06 -5.479866772e-06 3.485487887e-06 --5.153832367e-06 -5.618485714e-06 -1.262492218e-06 -1.106349277e-06 1.885884464e-07 --9.425575346e-06 -1.262492218e-06 4.437136987e-06 -8.855302315e-07 3.836678551e-07 --5.479866772e-06 -1.106349277e-06 -8.855302315e-07 -7.333892231e-07 1.134283057e-06 -3.485487887e-06 1.885884464e-07 3.836678551e-07 1.134283057e-06 -4.49025937e-07 --0.006499495245 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0007813545846 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.01104245473 0.01247519598 0.0062920467 0 0 -0.01247519598 0.01344498228 0.005679062896 0 0 -0.0062920467 0.005679062896 0.0004364579145 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001815361459 -0.001961094468 -0.0009544847093 0 0 --0.001961094468 -0.002050953013 -0.0008576171254 0 0 --0.0009544847093 -0.0008576171254 -5.642148541e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.934611405e-05 -9.356745618e-05 -5.547881324e-05 -2.848677443e-05 -4.922769069e-05 --9.356745618e-05 -0.0002651412878 -0.0001314595637 -9.869756124e-05 -0.0001166475218 --5.547881324e-05 -0.0001314595637 -4.269996156e-05 -6.462648709e-05 -3.788908541e-05 --2.848677443e-05 -9.869756124e-05 -6.462648709e-05 -2.57864613e-05 -5.734457704e-05 --4.922769069e-05 -0.0001166475218 -3.788908541e-05 -5.734457704e-05 -3.362023619e-05 --1.236933058e-05 -3.933112764e-05 -2.322216447e-05 -1.20432879e-05 -2.06059798e-05 --3.933112764e-05 -0.0001107354954 -5.424534222e-05 -4.168076494e-05 -4.813413764e-05 --2.322216447e-05 -5.424534222e-05 -1.679733955e-05 -2.724158808e-05 -1.490499452e-05 --1.20432879e-05 -4.168076494e-05 -2.724158808e-05 -1.092542196e-05 -2.417257494e-05 --2.06059798e-05 -4.813413764e-05 -1.490499452e-05 -2.417257494e-05 -1.322583621e-05 -0.03355168242 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002459323065 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00396615834 -0.002260202922 -0.0006245816168 0 0 --0.002260202922 -0.002798602308 -0.001260216979 0 0 --0.0006245816168 -0.001260216979 -0.001137570927 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00155082644 -0.000899398314 -0.0002546701608 0 0 --0.000899398314 -0.001100524941 -0.0004914633399 0 0 --0.0002546701608 -0.0004914633399 -0.0004312036208 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0005171573198 -0.0005651407309 -0.0002849588054 -5.517078159e-05 -0.0001557374688 --0.0005651407309 -0.001661056131 -0.0007936371915 -0.0006532460703 -0.0005331390669 --0.0002849588054 -0.0007936371915 -0.0006659381827 -0.000208895188 -0.0002670921153 --5.517078159e-05 -0.0006532460703 -0.000208895188 -0.0003340741089 -0.0001746035493 --0.0001557374688 -0.0005331390669 -0.0002670921153 -0.0001746035493 -0.0004268956454 --0.0002200603401 -0.0002424055297 -0.0001217373226 -2.427861699e-05 -6.777548612e-05 --0.0002424055297 -0.0007133154787 -0.0003401239632 -0.0002823717419 -0.0002268074286 --0.0001217373226 -0.0003401239632 -0.000283739503 -9.322689547e-05 -0.0001096325966 --2.427861699e-05 -0.0002823717419 -9.322689547e-05 -0.0001432190652 -7.576767052e-05 --6.777548612e-05 -0.0002268074286 -0.0001096325966 -7.576767052e-05 -0.0001810279366 --0.001399965721 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0004844276466 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0003139360828 0.0002240650101 0.0003564488602 0 0 -0.0002240650101 -0.0001554011721 -0.0002397644973 0 0 -0.0003564488602 -0.0002397644973 -0.0003573027194 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0001170888228 8.418829703e-05 0.0001333308436 0 0 -8.418829703e-05 -5.869471458e-05 -9.000671943e-05 0 0 -0.0001333308436 -9.000671943e-05 -0.0001331492629 0 0 -0 0 0 0 0 -0 0 0 0 0 -8.471392736e-06 4.265886773e-06 1.095967411e-05 1.008969956e-05 -1.055037657e-05 -4.265886773e-06 -4.992118474e-05 -8.124292938e-05 -2.880263066e-05 5.622663079e-05 -1.095967411e-05 -8.124292938e-05 -0.0001303935978 -4.340879635e-05 8.889244887e-05 -1.008969956e-05 -2.880263066e-05 -4.340879635e-05 -1.002904429e-05 2.748344566e-05 --1.055037657e-05 5.622663079e-05 8.889244887e-05 2.748344566e-05 -5.959055187e-05 -4.150982682e-06 1.299966307e-06 3.698229191e-06 4.140443842e-06 -4.041009656e-06 -1.299966307e-06 -2.20334602e-05 -3.559576174e-05 -1.278381934e-05 2.484996793e-05 -3.698229191e-06 -3.559576174e-05 -5.689690694e-05 -1.937947271e-05 3.916594006e-05 -4.140443842e-06 -1.278381934e-05 -1.937947271e-05 -4.699843873e-06 1.236211882e-05 --4.041009656e-06 2.484996793e-05 3.916594006e-05 1.236211882e-05 -2.645098648e-05 -0.000154685187 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.48749618e-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.0001269402604 1.081919352e-05 2.238386946e-05 0 0 -1.081919352e-05 -5.8766221e-07 -4.193820623e-06 0 0 -2.238386946e-05 -4.193820623e-06 -2.598586159e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.907503574e-05 -4.584608457e-07 -7.75883965e-07 0 0 --4.584608457e-07 1.522167409e-06 1.799133431e-06 0 0 --7.75883965e-07 1.799133431e-06 -4.498325873e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.196558966e-05 1.129805038e-06 -7.272360406e-07 1.19511332e-06 2.295881603e-07 -1.129805038e-06 7.652822898e-07 5.64212851e-07 4.417300406e-08 -2.902422595e-08 --7.272360406e-07 5.64212851e-07 -3.671015188e-06 -1.344219389e-07 -6.328992973e-08 -1.19511332e-06 4.417300406e-08 -1.344219389e-07 -8.578924527e-08 -1.16587621e-07 -2.295881603e-07 -2.902422595e-08 -6.328992973e-08 -1.16587621e-07 -9.045532518e-08 -5.155476899e-06 2.404219059e-08 1.92315254e-07 1.002279929e-06 4.299473913e-07 -2.404219059e-08 2.85962272e-07 8.657539591e-07 2.262551859e-08 1.178156028e-08 -1.92315254e-07 8.657539591e-07 -3.41719761e-06 -6.285204611e-08 -5.886719738e-08 -1.002279929e-06 2.262551859e-08 -6.285204611e-08 -6.620677376e-08 -9.244724908e-08 -4.299473913e-07 1.178156028e-08 -5.886719738e-08 -9.244724908e-08 -8.282487464e-08 -0.001960557456 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0006698646509 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0005228446097 -0.000316142219 -0.0005150819043 0 0 --0.000316142219 0.0001910955402 0.0003102665264 0 0 --0.0005150819043 0.0003102665264 0.000478207711 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001971650039 -0.0001191647155 -0.000193401561 0 0 --0.0001191647155 7.199966181e-05 0.0001165649019 0 0 --0.000193401561 0.0001165649019 0.0001786883921 0 0 -0 0 0 0 0 -0 0 0 0 0 -2.942248628e-06 -1.927273691e-05 -3.779218307e-05 -1.591702096e-05 2.32181017e-05 --1.927273691e-05 6.477418196e-05 0.0001129465073 3.716942517e-05 -6.847216491e-05 --3.779218307e-05 0.0001129465073 0.0001908461892 5.765461361e-05 -0.000115448228 --1.591702096e-05 3.716942517e-05 5.765461361e-05 1.287750734e-05 -3.442100688e-05 -2.32181017e-05 -6.847216491e-05 -0.000115448228 -3.442100688e-05 6.981396072e-05 -1.262653098e-06 -8.317699852e-06 -1.631695503e-05 -6.895921398e-06 1.005003772e-05 --8.317699852e-06 2.845612448e-05 4.977201721e-05 1.657311805e-05 -3.015422931e-05 --1.631695503e-05 4.977201721e-05 8.452310517e-05 2.600429623e-05 -5.11632664e-05 --6.895921398e-06 1.657311805e-05 2.600429623e-05 6.051056521e-06 -1.546991556e-05 -1.005003772e-05 -3.015422931e-05 -5.11632664e-05 -1.546991556e-05 3.095864896e-05 -0.00150017525 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.000501903275 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003918576639 -0.0001849488821 -0.0002842198424 0 0 --0.0001849488821 0.0001668382898 0.0002472571424 0 0 --0.0002842198424 0.0002472571424 0.0003417053795 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001601165293 -6.799827376e-05 -0.0001026227839 0 0 --6.799827376e-05 6.366510296e-05 9.256714524e-05 0 0 --0.0001026227839 9.256714524e-05 0.0001268254329 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.069743979e-05 1.044854827e-05 1.004452826e-05 1.369133171e-06 4.404199202e-07 -1.044854827e-05 6.299190608e-05 8.206804268e-05 3.1507851e-05 -5.728322588e-05 -1.004452826e-05 8.206804268e-05 0.000123243797 4.480064431e-05 -8.927518943e-05 -1.369133171e-06 3.1507851e-05 4.480064431e-05 1.165110994e-05 -2.996005254e-05 -4.404199202e-07 -5.728322588e-05 -8.927518943e-05 -2.996005254e-05 6.093216247e-05 -2.135636436e-05 3.85386606e-06 5.727346156e-06 1.33942293e-06 5.555217687e-07 -3.85386606e-06 2.765194591e-05 3.685825395e-05 1.389016862e-05 -2.503855638e-05 -5.727346156e-06 3.685825395e-05 5.245976995e-05 2.026500294e-05 -3.954960792e-05 -1.33942293e-06 1.389016862e-05 2.026500294e-05 5.433233096e-06 -1.349640188e-05 -5.555217687e-07 -2.503855638e-05 -3.954960792e-05 -1.349640188e-05 2.690001242e-05 --0.009441486042 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001164031646 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.008326028392 0.01281496529 0.01032833542 0 0 -0.01281496529 0.01924787571 0.01532708557 0 0 -0.01032833542 0.01532708557 0.01218921259 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001378239414 -0.002067173069 -0.001581329587 0 0 --0.002067173069 -0.002936824262 -0.002333129483 0 0 --0.001581329587 -0.002333129483 -0.001856434852 0 0 -0 0 0 0 0 -0 0 0 0 0 -7.975108885e-06 7.081782908e-06 2.613554846e-05 4.21745105e-07 8.309757529e-07 -7.081782908e-06 -0.0002438674391 -0.0001892096886 -5.226312492e-05 -0.0002165991708 -2.613554846e-05 -0.0001892096886 -0.0001532854002 -4.190644888e-05 -0.000172171472 -4.21745105e-07 -5.226312492e-05 -4.190644888e-05 -1.086055822e-05 -4.484487774e-05 -8.309757529e-07 -0.0002165991708 -0.000172171472 -4.484487774e-05 -0.000185235601 -1.005123516e-05 5.311020297e-06 9.327083886e-06 1.028187819e-07 4.373621228e-07 -5.311020297e-06 -0.0001001878139 -7.889014493e-05 -2.175579394e-05 -9.011499131e-05 -9.327083886e-06 -7.889014493e-05 -6.204446408e-05 -1.738157657e-05 -7.148921617e-05 -1.028187819e-07 -2.175579394e-05 -1.738157657e-05 -4.529670329e-06 -1.871576534e-05 -4.373621228e-07 -9.011499131e-05 -7.148921617e-05 -1.871576534e-05 -7.733346347e-05 -0.05690106782 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.002713870119 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.00355742146 -0.003277758512 -0.002499246171 0 0 --0.003277758512 -0.004017858286 -0.00256377159 0 0 --0.002499246171 -0.00256377159 -0.00258967618 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.001382974285 -0.001286975411 -0.0009825541859 0 0 --0.001286975411 -0.001580104014 -0.001014146192 0 0 --0.0009825541859 -0.001014146192 -0.001018185642 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0002998884762 -0.0002078372673 -0.0001676218544 2.16788919e-05 9.021139715e-05 --0.0002078372673 -0.001776651804 -0.001198270768 -0.0005265470067 -0.001221925668 --0.0001676218544 -0.001198270768 -0.001128705758 -3.156009699e-05 -0.001021296585 -2.16788919e-05 -0.0005265470067 -3.156009699e-05 -0.0004748835545 -0.0002149509692 -9.021139715e-05 -0.001221925668 -0.001021296585 -0.0002149509692 -0.001171743116 --0.0001241553713 -8.300334617e-05 -6.714343345e-05 9.912645909e-06 4.087920108e-05 --8.300334617e-05 -0.0007550475972 -0.0005102211867 -0.0002240385336 -0.0005233673539 --6.714343345e-05 -0.0005102211867 -0.0004800392274 -1.442830532e-05 -0.0004373364717 -9.912645909e-06 -0.0002240385336 -1.442830532e-05 -0.0002016201373 -9.251663015e-05 -4.087920108e-05 -0.0005233673539 -0.0004373364717 -9.251663015e-05 -0.0005033317591 --6.433577492e-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 -5.996816178e-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 -2.749339124e-06 -0.0001872051965 4.576537798e-05 0 0 --0.0001872051965 -2.854023159e-06 5.931013439e-05 0 0 -4.576537798e-05 5.931013439e-05 0.0001143816535 0 0 -0 0 0 0 0 -0 0 0 0 0 -3.193727156e-06 -8.437538334e-05 2.741153963e-05 0 0 --8.437538334e-05 -2.408384371e-06 2.34514842e-05 0 0 -2.741153963e-05 2.34514842e-05 4.6668229e-05 0 0 -0 0 0 0 0 -0 0 0 0 0 --4.642393207e-05 -5.277305449e-05 4.149973115e-05 -9.954672639e-06 1.454210953e-05 --5.277305449e-05 -1.048431597e-05 2.508513683e-05 3.240230034e-06 7.052015345e-06 -4.149973115e-05 2.508513683e-05 3.957975451e-05 1.137904928e-05 -2.165835928e-05 --9.954672639e-06 3.240230034e-06 1.137904928e-05 6.543027292e-06 -4.033557698e-06 -1.454210953e-05 7.052015345e-06 -2.165835928e-05 -4.033557698e-06 -2.231187791e-06 --8.899885414e-06 -1.674811268e-05 1.791329275e-05 -2.949410573e-06 3.301392087e-06 --1.674811268e-05 -2.274866273e-06 1.026226043e-05 1.767737436e-06 2.263726166e-06 -1.791329275e-05 1.026226043e-05 1.660389375e-05 4.309157501e-06 -9.073240619e-06 --2.949410573e-06 1.767737436e-06 4.309157501e-06 2.925531919e-06 -1.898747558e-06 -3.301392087e-06 2.263726166e-06 -9.073240619e-06 -1.898747558e-06 -6.356124023e-07 -0.009308580721 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001119056473 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.008500291619 -0.01284852873 -0.01021254544 0 0 --0.01284852873 -0.01925591113 -0.01532098956 0 0 --0.01021254544 -0.01532098956 -0.01218868005 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001387682814 0.002036937284 0.001616181195 0 0 -0.002036937284 0.002937376051 0.002333570925 0 0 -0.001616181195 0.002333570925 0.001853715308 0 0 -0 0 0 0 0 -0 0 0 0 0 --2.085639289e-05 -1.579314809e-05 -1.24320384e-05 5.198597278e-08 2.166773412e-07 --1.579314809e-05 0.0002427523643 0.0001910282486 5.259289733e-05 0.0002173282801 --1.24320384e-05 0.0001910282486 0.0001503251747 4.138737411e-05 0.0001710239844 -5.198597278e-08 5.259289733e-05 4.138737411e-05 1.084301719e-05 4.480602696e-05 -2.166773412e-07 0.0002173282801 0.0001710239844 4.480602696e-05 0.0001851495773 --9.059515631e-06 -7.504747626e-06 -5.907365705e-06 -1.098837646e-07 -4.530249366e-07 --7.504747626e-06 0.000100216531 7.88629848e-05 2.186688356e-05 9.035932624e-05 --5.907365705e-06 7.88629848e-05 6.205932577e-05 1.720788482e-05 7.110720093e-05 --1.098837646e-07 2.186688356e-05 1.720788482e-05 4.528730866e-06 1.871366132e-05 --4.530249366e-07 9.035932624e-05 7.110720093e-05 1.871366132e-05 7.7328755e-05 --0.05853894109 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.002155176758 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.003358630289 0.00346831218 0.002882353692 0 0 -0.00346831218 0.003858558145 0.002244522449 0 0 -0.002882353692 0.002244522449 0.001949849117 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.001309443792 0.001358383851 0.001126148658 0 0 -0.001358383851 0.001520051898 0.0008938286908 0 0 -0.001126148658 0.0008938286908 0.0007770608622 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003033279864 0.0001901150744 0.0001311856028 -3.731711178e-05 -6.892432531e-05 -0.0001901150744 0.001745179036 0.001134141212 0.0004871780032 0.001274195567 -0.0001311856028 0.001134141212 0.0009980718344 -4.880605846e-05 0.001127938683 --3.731711178e-05 0.0004871780032 -4.880605846e-05 0.0004287851826 0.0002763810392 --6.892432531e-05 0.001274195567 0.001127938683 0.0002763810392 0.001089972422 -0.0001256225034 7.54535558e-05 5.162293094e-05 -1.657872618e-05 -3.180655192e-05 -7.54535558e-05 0.0007410014511 0.0004815955962 0.0002066537634 0.0005464656947 -5.162293094e-05 0.0004815955962 0.0004217304189 -2.105385804e-05 0.0004844348276 --1.657872618e-05 0.0002066537634 -2.105385804e-05 0.0001813712401 0.0001194932355 --3.180655192e-05 0.0005464656947 0.0004844348276 0.0001194932355 0.0004674579165 --0.001170459378 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0004038839204 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 --0.0001193875861 0.0001274357507 0.0002479269389 0 0 -0.0001274357507 -0.0001295059108 -0.0002492191619 0 0 -0.0002479269389 -0.0002492191619 -0.000478388441 0 0 -0 0 0 0 0 -0 0 0 0 0 --4.369279818e-05 4.741351103e-05 9.212455177e-05 0 0 -4.741351103e-05 -4.891539532e-05 -9.396176754e-05 0 0 -9.212455177e-05 -9.396176754e-05 -0.0001800108562 0 0 -0 0 0 0 0 -0 0 0 0 0 --9.896239419e-06 -1.882680981e-05 -3.506334827e-05 -2.026198393e-05 2.902952385e-05 --1.882680981e-05 -2.426561878e-05 -4.658678215e-05 -3.045476534e-05 4.194540634e-05 --3.506334827e-05 -4.658678215e-05 -8.919108357e-05 -5.76952873e-05 7.972254464e-05 --2.026198393e-05 -3.045476534e-05 -5.76952873e-05 -3.581750782e-05 5.013098879e-05 -2.902952385e-05 4.194540634e-05 7.972254464e-05 5.013098879e-05 -6.988540988e-05 --4.808838352e-06 -8.406617599e-06 -1.54690007e-05 -9.092011166e-06 1.30234542e-05 --8.406617599e-06 -1.088530609e-05 -2.069526345e-05 -1.347311461e-05 1.860875586e-05 --1.54690007e-05 -2.069526345e-05 -3.91907439e-05 -2.521236949e-05 3.497012621e-05 --9.092011166e-06 -1.347311461e-05 -2.521236949e-05 -1.565366978e-05 2.197880587e-05 -1.30234542e-05 1.860875586e-05 3.497012621e-05 2.197880587e-05 -3.073608167e-05 -0.0001329053208 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.497517315e-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.0001742632268 3.356343731e-05 -0.0001157899817 0 0 -3.356343731e-05 8.035422934e-06 -6.096013169e-06 0 0 --0.0001157899817 -6.096013169e-06 -5.325345907e-07 0 0 -0 0 0 0 0 -0 0 0 0 0 --9.443400429e-06 3.023578517e-05 -3.485160795e-05 0 0 -3.023578517e-05 -5.517892324e-07 -4.414417195e-07 0 0 --3.485160795e-05 -4.414417195e-07 2.719543972e-06 0 0 -0 0 0 0 0 -0 0 0 0 0 -1.288128401e-05 8.711365186e-06 -1.370351006e-05 -4.737310778e-07 -1.047653094e-06 -8.711365186e-06 1.11507475e-06 -1.818559984e-06 -3.297724054e-07 -7.29109339e-07 --1.370351006e-05 -1.818559984e-06 2.96022546e-06 5.190747679e-07 1.147487593e-06 --4.737310778e-07 -3.297724054e-07 5.190747679e-07 1.754102781e-08 3.885077738e-08 --1.047653094e-06 -7.29109339e-07 1.147487593e-06 3.885077738e-08 8.602370834e-08 --9.91719531e-07 2.193727329e-06 -3.419718181e-06 7.064982631e-09 1.566281379e-08 -2.193727329e-06 -2.871708228e-08 2.716013165e-08 -1.110896129e-07 -2.443349258e-07 --3.419718181e-06 2.716013165e-08 -1.486168895e-08 1.736917489e-07 3.820152417e-07 -7.064982631e-09 -1.110896129e-07 1.736917489e-07 9.394633323e-10 2.104015671e-09 -1.566281379e-08 -2.443349258e-07 3.820152417e-07 2.104015671e-09 4.708469531e-09 -0.001637873271 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0005586933606 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0001987911708 -0.0001905536681 -0.0003831075206 0 0 --0.0001905536681 0.0001593001407 0.0003192491409 0 0 --0.0003831075206 0.0003192491409 0.0006398270629 0 0 -0 0 0 0 0 -0 0 0 0 0 -7.353049351e-05 -7.140844012e-05 -0.0001435944726 0 0 --7.140844012e-05 6.005211665e-05 0.0001203175008 0 0 --0.0001435944726 0.0001203175008 0.0002411247795 0 0 -0 0 0 0 0 -0 0 0 0 0 --3.439510133e-06 1.772219291e-05 3.643625165e-05 1.563821988e-05 -2.128707184e-05 -1.772219291e-05 3.147276815e-05 6.412955661e-05 3.936900352e-05 -5.226989909e-05 -3.643625165e-05 6.412955661e-05 0.0001306339235 8.036615545e-05 -0.0001066420978 -1.563821988e-05 3.936900352e-05 8.036615545e-05 4.609837185e-05 -6.143006997e-05 --2.128707184e-05 -5.226989909e-05 -0.0001066420978 -6.143006997e-05 8.17706942e-05 --1.467132104e-06 7.549790373e-06 1.552050251e-05 6.666080267e-06 -9.072649161e-06 -7.549790373e-06 1.404614606e-05 2.862559053e-05 1.738477022e-05 -2.309834086e-05 -1.552050251e-05 2.862559053e-05 5.830880851e-05 3.548216336e-05 -4.709835589e-05 -6.666080267e-06 1.738477022e-05 3.548216336e-05 2.024889726e-05 -2.697660531e-05 --9.072649161e-06 -2.309834086e-05 -4.709835589e-05 -2.697660531e-05 3.587384257e-05 -0.001234795153 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.0003439157586 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0 0 0 0 0 -0.000116638247 5.976944584e-05 -0.0002936923169 0 0 -5.976944584e-05 0.000132359934 0.0001899090275 0 0 --0.0002936923169 0.0001899090275 0.0003640067874 0 0 -0 0 0 0 0 -0 0 0 0 0 -4.049907103e-05 3.696187231e-05 -0.0001195360914 0 0 -3.696187231e-05 5.132377969e-05 7.051028334e-05 0 0 --0.0001195360914 7.051028334e-05 0.0001333426272 0 0 -0 0 0 0 0 -0 0 0 0 0 -5.632017149e-05 7.15998643e-05 -6.436382874e-06 3.021665657e-05 -4.357163338e-05 -7.15998643e-05 3.474993475e-05 2.150164532e-05 2.721453531e-05 -4.899742168e-05 --6.436382874e-06 2.150164532e-05 4.961132906e-05 4.631623802e-05 -5.806418536e-05 -3.021665657e-05 2.721453531e-05 4.631623802e-05 2.927448053e-05 -4.609743109e-05 --4.357163338e-05 -4.899742168e-05 -5.806418536e-05 -4.609743109e-05 7.211659767e-05 -1.370872377e-05 2.515473028e-05 -2.444292053e-06 1.204142174e-05 -1.632484629e-05 -2.515473028e-05 1.316017236e-05 1.043300302e-05 1.170537718e-05 -2.087248203e-05 --2.444292053e-06 1.043300302e-05 2.258685015e-05 2.090321199e-05 -2.589688559e-05 -1.204142174e-05 1.170537718e-05 2.090321199e-05 1.272813786e-05 -2.008005832e-05 --1.632484629e-05 -2.087248203e-05 -2.589688559e-05 -2.008005832e-05 3.137169407e-05 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gedm_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gedm_ref.dat deleted file mode 100644 index 56064b4efb..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gedm_ref.dat +++ /dev/null @@ -1,18 +0,0 @@ --0.0105395 --0.00143729 -0.000572678 0.0018424 0.000984104 0.0018424 -0.00116035 -0.000321265 0.000984104 -0.000321265 -0.000690085 -0.00155469 0.000725826 0.00017287 0.000725826 -0.000326987 -0.000172799 0.00017287 -0.000172799 0.000596387 -0.000104793 -0.000824195 -0.000167842 -9.5002e-05 -0.000381175 -0.000824195 -0.000820364 -0.00332201 -0.00047684 -0.00179171 -0.000167842 -0.00332201 0.000797551 -0.00041539 -0.00159238 -9.5002e-05 -0.00047684 -0.00041539 -0.000412545 8.30466e-05 -0.000381175 -0.00179171 -0.00159238 8.30466e-05 -0.000492714 -0.00088259 4.38924e-06 -0.000119081 -0.000107989 -0.000104282 4.38924e-06 -0.000576257 0.000860398 0.000454042 -2.22839e-05 -0.000119081 0.000860398 -0.00103049 0.000322221 8.60976e-05 -0.000107989 0.000454042 0.000322221 -0.000717212 -0.000762624 -0.000104282 -2.22839e-05 8.60976e-05 -0.000762624 0.00032204 --0.0141053 --0.00188726 --0.00182612 1.99073e-05 0.00252918 1.99073e-05 0.00175757 -0.00238282 0.00252918 -0.00238282 -0.000687653 -0.000228156 -0.000521053 0.000635841 -0.000521053 0.00184178 -0.00134863 0.000635841 -0.00134863 0.00101454 -0.00380061 -0.000982323 0.000703556 -0.00142829 -0.00344333 -0.000982323 -0.00276982 -0.0025961 -0.000144876 -0.00161526 0.000703556 -0.0025961 -0.000808081 -0.00127233 -0.00257785 -0.00142829 -0.000144876 -0.00127233 0.000823322 0.000266071 -0.00344333 -0.00161526 -0.00257785 0.000266071 0.00157394 --0.0015008 -0.000311446 0.000357447 0.00118258 0.00068892 -0.000311446 0.00125234 -1.34666e-05 -0.000664964 -0.00046898 0.000357447 -1.34666e-05 -0.000445242 0.000159827 0.00137588 0.00118258 -0.000664964 0.000159827 0.000786882 0.000335878 0.00068892 -0.00046898 0.00137588 0.000335878 -0.000731421 --0.0138936 --0.0018592 --0.00155153 -0.00106638 -0.00162111 -0.00106638 0.00213377 -0.00257139 -0.00162111 -0.00257139 -0.00117574 -0.000131697 -0.000228244 -0.000149277 -0.000228244 0.00229487 -0.00125788 -0.000149277 -0.00125788 0.000662333 -0.000222069 -0.00149942 -0.001192 -0.000863896 0.00129244 -0.00149942 0.00405582 -0.0043836 -0.000277787 0.000313092 -0.001192 -0.0043836 -0.000338983 -0.00165664 0.00248213 -0.000863896 -0.000277787 -0.00165664 -0.000439445 0.000538551 0.00129244 0.000313092 0.00248213 0.000538551 -0.00113209 -0.000513884 0.000254967 8.65459e-06 4.07475e-05 -1.79259e-05 0.000254967 -0.00175525 0.000787655 0.000471526 -0.000184028 8.65459e-06 0.000787655 -0.000670299 0.000822193 -0.00074256 4.07475e-05 0.000471526 0.000822193 0.00074893 0.00153252 -1.79259e-05 -0.000184028 -0.00074256 0.00153252 0.000510836 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvepsl_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvepsl_ref.dat deleted file mode 100644 index 579bf94319..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvepsl_ref.dat +++ /dev/null @@ -1,18 +0,0 @@ -0.01820944215 0.002201846742 -0.06549843237 -4.791635375e-05 -0.004417807102 0.008091024371 0.0007149060044 0.002219358056 1.255281778e-21 -1.539014183e-20 -2.212955738e-06 3.953012016e-06 0.001109178235 1.178768942e-20 -2.886781662e-21 -2.023132109e-06 7.511360146e-07 0.000459936022 --0.09781147597 0.005684354997 0.001231514663 0.002081712792 0.01675812615 0.000473013777 0.0007926623299 0.006593699621 8.723492986e-10 0.0002777624594 0.00104931823 0.001160476975 0.007024495588 1.961767807e-09 0.0001208126525 0.0004450251401 0.0004905743916 0.002997693486 -0.001184724916 0.0003923393152 -2.772865577e-05 5.04495989e-05 0.0006693344928 -1.069525301e-05 2.184901082e-05 0.0002559269392 3.766096657e-08 7.37985534e-07 -6.326692998e-06 5.647792642e-05 0.0001229161906 3.111573822e-08 3.675612537e-07 -4.602901843e-06 3.688900636e-05 4.129953546e-05 -0.01415239381 0.001681483321 -0.05495963509 -0.002937320125 0.003101354197 0.00692588972 0.002132005419 -0.0004729636645 6.012892715e-22 -1.296225822e-20 2.429332965e-06 -1.042481198e-05 0.0008719834459 1.860593826e-20 -9.616874548e-21 2.489746133e-06 -4.889420186e-06 0.000361155005 --0.07514525358 0.00489248202 0.0009798136669 0.002731057406 0.01273635861 0.0003764227565 0.001034802153 0.005017540187 -3.706531652e-09 0.0004343212946 0.0008072103627 0.0009496709099 0.005465508352 -8.309242183e-09 0.0001900554519 0.0003428907996 0.0004015994041 0.002335024599 -0.001938398649 0.0006837556553 5.902454851e-06 -3.338126676e-05 0.001161007504 1.882215125e-06 -1.413287146e-05 0.0004251986466 2.302125033e-07 -2.336628777e-06 -3.295751141e-06 2.492049079e-05 0.0002763950607 8.023570144e-08 -1.104123188e-06 -3.449876762e-07 4.426564472e-05 8.84222516e-05 --0.02053727547 -0.0024908872 0.06509248243 0.02023147944 0.002236271207 -0.006822547714 -0.004587965087 -0.002149292538 -2.137592995e-20 4.090018708e-20 -2.917690368e-07 -1.575731958e-05 -0.001244356327 1.096019165e-20 7.041057778e-21 2.688085079e-07 -2.060240313e-06 -0.0005135268704 -0.1272810855 -0.005154388646 -0.001397134065 0.000161591972 -0.01964553555 -0.0005366926329 4.992394382e-05 -0.007714857867 1.583500081e-09 0.0001807881834 -0.001141216776 -0.001329651375 -0.007949801152 3.566016024e-09 8.121613922e-05 -0.0004828879002 -0.0005614505342 -0.003386017777 -0.001635337732 0.000626473603 -1.020535832e-05 0.0002526293892 0.0008904401177 -2.469765086e-06 0.0001063805378 0.0003242332076 -3.490796585e-07 4.397859863e-06 -5.041573722e-06 -3.418563682e-05 0.000354887187 -1.701074549e-07 2.12375185e-06 -2.952431784e-06 1.020081105e-05 0.0001423498057 -0.01141079301 0.001402796368 -0.04305945425 -0.002289361947 0.002409934071 0.005511773034 0.001688384829 -0.0003808177256 -7.887177043e-21 -6.101091277e-20 -2.778164751e-06 1.199314108e-05 0.0006864073508 2.64021967e-21 -1.441970173e-21 -3.119701668e-06 4.519138501e-06 0.0002842247826 --0.05561397722 0.005043137014 0.0007769591884 0.004252809699 0.01002632642 0.0002984236244 0.001604196309 0.003948626468 1.887523108e-08 0.0007161778255 0.0006844447816 0.0007592662833 0.004471340059 4.23452082e-08 0.0003149761662 0.0002919462082 0.00032238634 0.001912541664 -0.004221400889 0.001430823178 1.015829807e-05 0.0002219004071 0.002258826452 4.987944953e-06 0.0001005247034 0.000842175153 -5.247118137e-07 -2.254375294e-06 1.13725978e-05 0.0001374093583 0.0006365008669 -1.534467554e-07 -8.939932594e-07 3.627350545e-06 0.0001079166072 0.0002306129044 --0.01592419845 -0.001880145699 0.05139682955 0.01605078165 0.00177381614 -0.005362218284 -0.003638122998 -0.001682404337 -3.458851153e-21 -6.339034934e-21 2.439041248e-07 1.7613176e-05 -0.0009793405033 -1.048503463e-20 1.181282501e-20 -4.883194975e-07 -2.57564455e-06 -0.0004042537495 -0.1030505366 -0.003065097546 -0.001101578361 0.001783784554 -0.01534001494 -0.0004231371044 0.0006608522893 -0.006025080645 -6.856954932e-09 0.000365193828 -0.0007758295982 -0.000992948376 -0.006145202954 -1.540321423e-08 0.0001635197391 -0.0003270674715 -0.0004178832807 -0.002615412995 -0.003468415334 0.001103114815 1.419818587e-05 0.0004126082056 0.001553101706 3.065136867e-06 0.0001649172642 0.0005686839545 5.654433574e-07 -3.029351419e-06 8.197023726e-06 5.967393477e-05 0.0006159948241 2.618530048e-07 -1.688895545e-06 5.176324509e-06 3.672630036e-05 0.0002448379176 -0.02627912114 0.003709662289 -0.07193694538 -0.02238689071 -0.002365676341 0.008292111171 0.005281478001 0.002476831133 -2.503319098e-21 -1.190632317e-20 3.888075124e-05 0.0001484470037 0.001403933555 1.787907426e-20 -2.928748009e-21 1.40784612e-05 2.867006974e-05 0.0005791834096 --0.1368157436 0.008068522199 0.001569252111 0.003590918603 0.0224081994 0.0006027624526 0.001359106636 0.008796595606 2.339604787e-09 0.0003039499855 0.00156422737 0.00162066131 0.009210024047 5.255450494e-09 0.0001352907267 0.0006645737722 0.0006879801735 0.003927162867 -0.0078805158 0.002328850568 0.0003440249253 0.00187813186 0.002421633892 0.0001537442484 0.0008359126383 0.001078554686 9.293188234e-06 3.284931729e-05 0.000304219895 0.0007325974124 0.0005783666038 4.499645661e-06 1.614036237e-05 0.000136521365 0.0002191112394 0.0003031536874 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvx_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvx_ref.dat deleted file mode 100644 index c649e058f7..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvx_ref.dat +++ /dev/null @@ -1,27 +0,0 @@ -0.008359089617 0.001021758796 -0.02980539214 1.469012661e-05 -0.002017626836 0.003699349143 0.0003245016342 0.001011128136 -2.370303224e-19 -3.226559175e-19 -2.547165411e-06 6.795821673e-06 0.0005055065981 -6.911825331e-20 -4.941005902e-20 -2.42787503e-06 2.364728448e-06 0.0002097720928 --0.04518879253 0.002371745145 0.0005636196961 0.0005472774988 0.007646411041 0.0002164980353 0.0002103061617 0.003008514827 -1.850918152e-11 4.655942743e-05 0.0004835329546 0.0005281339605 0.003164212438 -4.243319705e-11 1.983537971e-05 0.0002048718656 0.0002231688806 0.001349855049 -0.0002443061396 6.253960577e-05 -2.296910516e-05 4.596578949e-05 0.0001354416794 -8.713425369e-06 1.965313464e-05 5.992356663e-05 -1.884248295e-07 1.083677223e-06 -3.736056849e-06 3.707550001e-05 -1.765445197e-05 -7.606071573e-08 5.392095889e-07 -3.421795257e-06 1.403941569e-05 -6.345027976e-06 -0.006344810058 0.0007364796228 -0.02510211404 -0.001345994728 0.001423847106 0.003131751327 0.0009671183015 -0.0002122325483 -1.857845441e-20 3.949774284e-19 2.837295893e-06 -1.220182797e-05 0.0003970749808 -4.233109989e-20 -1.723678843e-19 3.008403227e-06 -5.314749505e-06 0.0001644845601 --0.03551223988 0.001789458414 0.0004439812942 0.0004673345914 0.005798867829 0.0001705469494 0.0001796139849 0.00228454101 9.951578358e-11 5.958821794e-05 0.0003494134795 0.0004284946795 0.002426370824 2.281836018e-10 2.54762893e-05 0.00014794532 0.0001809494846 0.001035739413 --0.0001002095292 -1.747562834e-05 6.674414889e-07 -0.0001067508863 3.232208582e-05 -4.108529218e-07 -4.758329836e-05 6.319886434e-06 3.884485767e-07 -9.071241814e-07 -6.657554442e-06 -3.212782175e-05 -2.874937751e-05 1.665505507e-07 -4.810002678e-07 -1.592461843e-06 -6.807212859e-06 -1.915698651e-05 --0.009441486042 -0.001164031646 0.0295830755 0.009166681731 0.001013359455 -0.003109864333 -0.002079414591 -0.0009822196039 -1.17160945e-20 1.662241667e-20 -3.076397864e-07 -1.825336103e-05 -0.0005667128888 -3.134550984e-20 -1.606550019e-20 3.807168306e-07 -5.861415826e-07 -0.0002338387518 -0.05690106782 -0.002713870119 -0.0006355192734 -0.0005377166186 -0.008991720033 -0.0002441195961 -0.0002065835606 -0.003530560785 5.304974281e-11 8.817195701e-08 -0.00056486796 -0.0006254334448 -0.003661659529 1.21622193e-10 2.427615861e-07 -0.0002394517296 -0.00026468305 -0.001560302196 --6.433577492e-05 5.996816178e-05 -1.285669948e-05 3.61426308e-05 9.099103818e-05 -2.982323134e-06 1.846445187e-05 3.197144305e-05 -4.771524905e-07 4.397031261e-06 -6.784916754e-06 -4.752013291e-05 3.736851686e-05 -2.410974855e-07 2.203127369e-06 -4.113613898e-06 -5.946498097e-06 1.581714369e-05 --0.008259918081 -0.0009929886273 0.02984820666 4.102978453e-05 0.002009403648 -0.003677952944 -0.0003262201404 -0.001010750715 -4.125491722e-21 1.951896969e-20 1.984433406e-07 8.266722342e-07 -0.0005050575124 -7.830727494e-21 -1.802753015e-21 1.29247711e-07 7.2162762e-07 -0.0002093465698 -0.04421633343 -0.002703459723 -0.000559522275 -0.001159037756 -0.007626020838 -0.0002148986983 -0.0004403233152 -0.00300058916 -6.16051094e-10 -0.0001685683489 -0.0004750092309 -0.0005288115702 -0.003218121991 -1.385821527e-09 -7.353731535e-05 -0.0002015601377 -0.0002235955648 -0.001373575167 --0.0006949401338 -0.0002397991345 7.192203922e-06 -1.088934932e-05 -0.0003939796432 2.850908508e-06 -4.849612387e-06 -0.0001463631354 -1.252752536e-07 5.70165744e-08 2.432368605e-06 -1.975499424e-05 -9.471661291e-05 -6.16297188e-08 2.81205462e-08 1.39954872e-06 -1.82554477e-05 -3.204185136e-05 --0.006499495245 -0.0007813545846 0.02499695956 0.001333643632 -0.001406708267 -0.003166659577 -0.0009731836221 0.000217107242 4.454048722e-21 1.30928875e-20 -1.962437621e-07 8.282645517e-07 -0.0003972260817 -1.376334759e-21 2.012140749e-22 -1.48241716e-07 6.031169809e-07 -0.000164508299 -0.03355168242 -0.002459323065 -0.0004475025234 -0.001652402199 -0.005802426853 -0.0001719315461 -0.0006247619668 -0.002285861489 2.628521565e-09 -0.0002705304727 -0.0003772731938 -0.0004346971138 -0.002522623236 5.895254162e-09 -0.0001186969764 -0.000160512555 -0.0001839592192 -0.001078199468 --0.001399965721 -0.0004844276466 -3.751402431e-06 -3.294287981e-05 -0.000789945692 -1.524294589e-06 -1.520288492e-05 -0.0002922056208 4.42925663e-08 1.146957833e-06 -1.210774188e-06 -3.421788592e-05 -0.0002072255762 3.182804321e-08 5.144328248e-07 -5.977534799e-07 -3.434649156e-05 -7.153223064e-05 -0.009308580721 0.001119056473 -0.02968298014 -0.009240570192 -0.001021332477 0.003106344054 0.002095173605 0.000977256516 7.162432615e-21 -6.105641805e-21 4.099186467e-08 1.351843289e-06 0.0005668209055 6.43068452e-21 -2.394877741e-21 1.34004481e-08 1.123673527e-06 0.000233936753 --0.05853894109 0.002155176758 0.0006368195688 -0.0003951172632 0.008925335245 0.0002446307849 -0.0001433488292 0.003505274596 -1.072692923e-09 -0.0001256083953 0.00049610525 0.0005952209948 0.003599619684 -2.414553324e-09 -5.632067564e-05 0.0002096894177 0.0002510234186 0.001532793784 --0.001170459378 -0.0004038839204 3.313151826e-07 -0.0001565784644 -0.0005710347887 1.480705799e-07 -6.422745884e-05 -0.0002085396615 -8.327897696e-09 -7.441247668e-07 -6.434452526e-08 -1.23221771e-06 -0.0002270068446 -8.57063156e-09 -3.173852342e-07 -1.114441256e-07 -1.021743582e-05 -9.061980398e-05 --9.917153559e-05 -2.877016834e-05 -4.281452726e-05 -5.571991114e-05 8.223188242e-06 -2.139619975e-05 1.718506298e-06 -3.774205929e-07 -5.410934825e-21 -1.263339629e-20 2.348722071e-06 -7.622493907e-06 -4.49085713e-07 -2.662475749e-21 7.301282236e-22 2.298627319e-06 -3.086356068e-06 -4.255229378e-07 -0.0009724590972 0.0003317145782 -4.097421113e-06 0.0006117602569 -2.039020275e-05 -1.599337088e-06 0.0002300171535 -7.925667175e-06 6.345602755e-10 0.0001220089215 -8.523723689e-06 6.776096947e-07 5.390955282e-05 1.428254724e-09 5.370193564e-05 -3.311727848e-06 4.266841965e-07 2.372011789e-05 -0.0004506339942 0.0001772595287 1.577690124e-05 -3.507644017e-05 0.0002585379639 5.862516861e-06 -1.480352225e-05 8.643956879e-05 3.137000831e-07 -1.140693797e-06 1.303688244e-06 -1.732050577e-05 0.0001123710649 1.376904345e-07 -5.673301351e-07 2.022246537e-06 4.216032012e-06 3.838687934e-05 -0.000154685187 4.48749618e-05 0.0001051544799 1.235109533e-05 -1.713883863e-05 3.490825046e-05 6.065320514e-06 -4.874693703e-06 -3.469660021e-21 -8.46376175e-21 -2.641052131e-06 1.137356341e-05 1.511009127e-07 -2.962961222e-21 6.058508802e-22 -2.860161511e-06 4.711632524e-06 2.37389002e-08 -0.001960557456 0.0006698646509 3.521229191e-06 0.001185067608 3.55902386e-06 1.384596753e-06 0.0004451479819 1.320479126e-06 -2.728037349e-09 0.0002109422548 2.78597143e-05 6.202434365e-06 9.625241248e-05 -6.123437764e-09 9.322068708e-05 1.256723501e-05 3.009734574e-06 4.2460055e-05 -0.00150017525 0.000501903275 3.083960942e-06 0.0001396937661 0.0007576236062 1.935147511e-06 6.278618327e-05 0.0002858857344 -4.327411431e-07 -2.398336515e-07 7.86832863e-06 6.634570767e-05 0.0002359749537 -1.983785939e-07 -3.343255701e-08 2.190215323e-06 4.115370442e-05 9.068921715e-05 -0.0001329053208 4.497517315e-05 9.990463206e-05 7.388846137e-05 7.973021691e-06 3.520279796e-06 -1.575901339e-05 4.963087906e-06 1.661857809e-23 -2.064049476e-21 2.666479217e-07 1.690151775e-05 -1.080167148e-07 -5.549521929e-22 1.223626636e-22 -3.941172787e-07 -5.375319446e-07 -9.80011461e-08 -0.001637873271 0.0005586933606 -1.300295307e-06 0.0009328338817 6.6384788e-05 -5.111887274e-07 0.0003499323898 2.528618859e-05 1.01964318e-09 0.0001255202234 6.876270999e-05 3.021244999e-05 6.20398446e-05 2.292931131e-09 5.607791406e-05 2.976231195e-05 1.365963136e-05 2.750841199e-05 -0.001234795153 0.0003439157586 1.25253843e-05 0.0001204358336 0.0004800437505 2.834252555e-06 4.576300697e-05 0.0001765682184 4.854803882e-07 -3.652906495e-06 6.849261279e-06 4.875235062e-05 0.0001896383277 2.496681171e-07 -1.885742135e-06 4.225058023e-06 1.616393392e-05 7.480266029e-05 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/iRmat_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/iRmat_ref.dat deleted file mode 100644 index 5d6f02366a..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/iRmat_ref.dat +++ /dev/null @@ -1,75 +0,0 @@ -0 0 0 -0 0 1 -0 1 0 -0 1 1 -0 1 1 -0 0 2 -0 0 0 -0 1 2 -0 1 0 -0 1 0 -0 2 0 -0 2 1 -0 0 0 -0 0 1 -0 0 1 -0 2 2 -0 2 0 -0 0 2 -0 0 0 -0 0 0 -0 2 2 -0 2 0 -0 0 2 -0 0 0 -0 0 0 -0 0 0 -0 1 0 -0 1 1 -0 1 0 -0 1 0 -0 2 0 -0 0 0 -0 0 1 -0 0 0 -0 0 0 -0 2 2 -0 0 2 -0 0 0 -0 0 2 -0 0 2 -0 2 0 -0 0 0 -0 0 1 -0 0 0 -0 0 0 -0 2 0 -0 0 0 -0 0 1 -0 0 0 -0 0 0 -0 0 0 -0 1 0 -0 1 0 -0 1 1 -0 0 0 -0 2 0 -0 0 0 -0 0 0 -0 0 1 -0 2 0 -0 2 0 -0 0 0 -0 0 0 -0 0 1 -0 2 0 -0 2 2 -0 0 2 -0 0 2 -0 0 0 -0 2 2 -0 0 0 -0 1 0 -0 1 0 -0 1 1 -0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/jle.orb b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/jle.orb deleted file mode 100644 index 49e75060a6..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/jle.orb +++ /dev/null @@ -1,330 +0,0 @@ ---------------------------------------------------------------------------- -Energy Cutoff(Ry) 20 -Radius Cutoff(a.u.) 2 -Lmax 2 -Number of Sorbitals--> 2 -Number of Porbitals--> 2 -Number of Dorbitals--> 2 ---------------------------------------------------------------------------- -SUMMARY END - -Mesh 201 -dr 0.01 - Type L N - 0 0 0 -1.000000000000e+00 9.999588771557e-01 9.998355147105e-01 9.996299309272e-01 -9.993421562398e-01 9.989722332485e-01 9.985202167122e-01 9.979861735385e-01 -9.973701827725e-01 9.966723355824e-01 9.958927352436e-01 9.950314971204e-01 -9.940887486459e-01 9.930646292992e-01 9.919592905814e-01 9.907728959881e-01 -9.895056209813e-01 9.881576529582e-01 9.867291912182e-01 9.852204469278e-01 -9.836316430835e-01 9.819630144724e-01 9.802148076310e-01 9.783872808018e-01 -9.764807038877e-01 9.744953584044e-01 9.724315374315e-01 9.702895455599e-01 -9.680696988392e-01 9.657723247216e-01 9.633977620041e-01 9.609463607696e-01 -9.584184823246e-01 9.558144991363e-01 9.531347947667e-01 9.503797638053e-01 -9.475498118000e-01 9.446453551854e-01 9.416668212101e-01 9.386146478614e-01 -9.354892837887e-01 9.322911882241e-01 9.290208309025e-01 9.256786919789e-01 -9.222652619442e-01 9.187810415390e-01 9.152265416659e-01 9.116022833003e-01 -9.079087973984e-01 9.041466248047e-01 9.003163161571e-01 8.964184317906e-01 -8.924535416387e-01 8.884222251345e-01 8.843250711084e-01 8.801626776859e-01 -8.759356521824e-01 8.716446109973e-01 8.672901795064e-01 8.628729919524e-01 -8.583936913342e-01 8.538529292946e-01 8.492513660070e-01 8.445896700594e-01 -8.398685183386e-01 8.350885959117e-01 8.302505959068e-01 8.253552193925e-01 -8.204031752555e-01 8.153951800774e-01 8.103319580098e-01 8.052142406487e-01 -8.000427669069e-01 7.948182828860e-01 7.895415417463e-01 7.842133035766e-01 -7.788343352618e-01 7.734054103501e-01 7.679273089189e-01 7.624008174394e-01 -7.568267286407e-01 7.512058413722e-01 7.455389604655e-01 7.398268965953e-01 -7.340704661391e-01 7.282704910361e-01 7.224277986456e-01 7.165432216037e-01 -7.106175976801e-01 7.046517696336e-01 6.986465850665e-01 6.926028962792e-01 -6.865215601233e-01 6.804034378540e-01 6.742493949824e-01 6.680603011269e-01 -6.618370298634e-01 6.555804585759e-01 6.492914683061e-01 6.429709436022e-01 -6.366197723676e-01 6.302388457091e-01 6.238290577843e-01 6.173913056492e-01 -6.109264891046e-01 6.044355105434e-01 5.979192747958e-01 5.913786889759e-01 -5.848146623272e-01 5.782281060680e-01 5.716199332362e-01 5.649910585351e-01 -5.583423981773e-01 5.516748697303e-01 5.449893919607e-01 5.382868846789e-01 -5.315682685835e-01 5.248344651061e-01 5.180863962557e-01 5.113249844635e-01 -5.045511524272e-01 4.977658229563e-01 4.909699188170e-01 4.841643625769e-01 -4.773500764508e-01 4.705279821460e-01 4.636990007082e-01 4.568640523676e-01 -4.500240563852e-01 4.431799308997e-01 4.363325927746e-01 4.294829574454e-01 -4.226319387680e-01 4.157804488670e-01 4.089293979840e-01 4.020796943279e-01 -3.952322439241e-01 3.883879504654e-01 3.815477151626e-01 3.747124365970e-01 -3.678830105719e-01 3.610603299660e-01 3.542452845872e-01 3.474387610270e-01 -3.406416425155e-01 3.338548087775e-01 3.270791358895e-01 3.203154961370e-01 -3.135647578731e-01 3.068277853781e-01 3.001054387191e-01 2.933985736122e-01 -2.867080412838e-01 2.800346883342e-01 2.733793566016e-01 2.667428830275e-01 -2.601260995228e-01 2.535298328351e-01 2.469549044172e-01 2.404021302969e-01 -2.338723209473e-01 2.273662811591e-01 2.208848099136e-01 2.144287002569e-01 -2.079987391757e-01 2.015957074739e-01 1.952203796511e-01 1.888735237815e-01 -1.825559013953e-01 1.762682673602e-01 1.700113697655e-01 1.637859498067e-01 -1.575927416716e-01 1.514324724285e-01 1.453058619151e-01 1.392136226293e-01 -1.331564596211e-01 1.271350703868e-01 1.211501447635e-01 1.152023648265e-01 -1.092924047871e-01 1.034209308931e-01 9.758860132936e-02 9.179606612189e-02 -8.604396704195e-02 8.033293751264e-02 7.466360251697e-02 6.903657850753e-02 -6.345247331791e-02 5.791188607588e-02 5.241540711817e-02 4.696361790712e-02 -4.155709094895e-02 3.619638971392e-02 3.088206855820e-02 2.561467264749e-02 -2.039473788254e-02 1.522279082639e-02 1.009934863353e-02 5.024918980770e-03 -8.824636488425e-14 - Type L N - 0 0 1 -1.000000000000e+00 9.998355147105e-01 9.993421562398e-01 9.985202167122e-01 -9.973701827725e-01 9.958927352436e-01 9.940887486459e-01 9.919592905814e-01 -9.895056209813e-01 9.867291912182e-01 9.836316430835e-01 9.802148076310e-01 -9.764807038877e-01 9.724315374315e-01 9.680696988392e-01 9.633977620041e-01 -9.584184823246e-01 9.531347947667e-01 9.475498117999e-01 9.416668212101e-01 -9.354892837886e-01 9.290208309025e-01 9.222652619442e-01 9.152265416659e-01 -9.079087973984e-01 9.003163161571e-01 8.924535416387e-01 8.843250711084e-01 -8.759356521824e-01 8.672901795064e-01 8.583936913341e-01 8.492513660070e-01 -8.398685183386e-01 8.302505959068e-01 8.204031752555e-01 8.103319580098e-01 -8.000427669069e-01 7.895415417463e-01 7.788343352617e-01 7.679273089188e-01 -7.568267286407e-01 7.455389604655e-01 7.340704661390e-01 7.224277986455e-01 -7.106175976801e-01 6.986465850664e-01 6.865215601232e-01 6.742493949824e-01 -6.618370298633e-01 6.492914683061e-01 6.366197723676e-01 6.238290577843e-01 -6.109264891046e-01 5.979192747957e-01 5.848146623272e-01 5.716199332362e-01 -5.583423981772e-01 5.449893919607e-01 5.315682685834e-01 5.180863962557e-01 -5.045511524271e-01 4.909699188170e-01 4.773500764508e-01 4.636990007081e-01 -4.500240563851e-01 4.363325927745e-01 4.226319387680e-01 4.089293979839e-01 -3.952322439241e-01 3.815477151626e-01 3.678830105718e-01 3.542452845871e-01 -3.406416425154e-01 3.270791358894e-01 3.135647578731e-01 3.001054387191e-01 -2.867080412837e-01 2.733793566015e-01 2.601260995227e-01 2.469549044171e-01 -2.338723209472e-01 2.208848099135e-01 2.079987391756e-01 1.952203796510e-01 -1.825559013952e-01 1.700113697655e-01 1.575927416715e-01 1.453058619151e-01 -1.331564596211e-01 1.211501447634e-01 1.092924047871e-01 9.758860132929e-02 -8.604396704188e-02 7.466360251690e-02 6.345247331784e-02 5.241540711810e-02 -4.155709094888e-02 3.088206855813e-02 2.039473788247e-02 1.009934863346e-02 -2.180811153812e-14 -9.899361531766e-03 -1.959494423998e-02 -2.908311310810e-02 --3.836039164508e-02 -4.742346358301e-02 -5.626917445163e-02 -6.489453302867e-02 --7.329671266526e-02 -8.147305248589e-02 -8.942105846211e-02 -9.713840435981e-02 --1.046229325594e-01 -1.118726547487e-01 -1.188857524890e-01 -1.256605776527e-01 --1.321956527344e-01 -1.384896710345e-01 -1.445414967152e-01 -1.503501647310e-01 --1.559148806314e-01 -1.612350202393e-01 -1.663101292030e-01 -1.711399224253e-01 --1.757242833674e-01 -1.800632632314e-01 -1.841570800207e-01 -1.880061174797e-01 --1.916109239149e-01 -1.949722108968e-01 -1.980908518463e-01 -2.009678805055e-01 --2.036044892942e-01 -2.060020275558e-01 -2.081619996917e-01 -2.100860631877e-01 --2.117760265342e-01 -2.132338470410e-01 -2.144616285503e-01 -2.154616190492e-01 --2.162362081830e-01 -2.167879246744e-01 -2.171194336468e-01 -2.172335338584e-01 --2.171331548467e-01 -2.168213539861e-01 -2.163013134635e-01 -2.155763371712e-01 --2.146498475232e-01 -2.135253821946e-01 -2.122065907892e-01 -2.106972314371e-01 --2.090011673253e-01 -2.071223631645e-01 -2.050648815953e-01 -2.028328795354e-01 --2.004306044739e-01 -1.978623907118e-01 -1.951326555560e-01 -1.922458954659e-01 --1.892066821602e-01 -1.860196586822e-01 -1.826895354318e-01 -1.792210861633e-01 --1.756191439552e-01 -1.718885971536e-01 -1.680343852933e-01 -1.640614949996e-01 --1.599749558740e-01 -1.557798363682e-01 -1.514812396472e-01 -1.470842994485e-01 --1.425941759367e-01 -1.380160515603e-01 -1.333551269115e-01 -1.286166165939e-01 --1.238057450998e-01 -1.189277427024e-01 -1.139878413639e-01 -1.089912706646e-01 --1.039432537543e-01 -9.884900333146e-02 -9.371371765056e-02 -8.854257656305e-02 --8.334073759347e-02 -7.811333205441e-02 -7.286546120297e-02 -6.760219244178e-02 --6.232855556732e-02 -5.704953906849e-02 -5.177008647810e-02 -4.649509277994e-02 --4.122940087424e-02 -3.597779810401e-02 -3.074501284474e-02 -2.553571116011e-02 --2.035449352599e-02 -1.520589162508e-02 -1.009436521457e-02 -5.024299068919e-03 --2.180811153812e-14 - Type L N - 0 1 0 -0.000000000000e+00 7.488637748270e-03 1.497500757073e-02 2.245684235920e-02 -2.993187664049e-02 3.739784739318e-02 4.485249486326e-02 5.229356337864e-02 -5.971880216197e-02 6.712596614162e-02 7.451281676032e-02 8.187712278134e-02 -8.921666109172e-02 9.652921750236e-02 1.038125875446e-01 1.110645772630e-01 -1.182830040039e-01 1.254656971996e-01 1.326104991481e-01 1.397152657871e-01 -1.467778674633e-01 1.537961896959e-01 1.607681339337e-01 1.676916183067e-01 -1.745645783707e-01 1.813849678449e-01 1.881507593431e-01 1.948599450964e-01 -2.015105376695e-01 2.081005706678e-01 2.146280994373e-01 2.210912017554e-01 -2.274879785128e-01 2.338165543868e-01 2.400750785054e-01 2.462617251009e-01 -2.523746941547e-01 2.584122120318e-01 2.643725321043e-01 2.702539353656e-01 -2.760547310324e-01 2.817732571367e-01 2.874078811063e-01 2.929570003335e-01 -2.984190427326e-01 3.037924672851e-01 3.090757645728e-01 3.142674572991e-01 -3.193661007968e-01 3.243702835244e-01 3.292786275485e-01 3.340897890136e-01 -3.388024585987e-01 3.434153619598e-01 3.479272601599e-01 3.523369500844e-01 -3.566432648428e-01 3.608450741561e-01 3.649412847309e-01 3.689308406179e-01 -3.728127235570e-01 3.765859533068e-01 3.802495879603e-01 3.838027242452e-01 -3.872444978093e-01 3.905740834913e-01 3.937906955755e-01 3.968935880325e-01 -3.998820547434e-01 4.027554297095e-01 4.055130872460e-01 4.081544421604e-01 -4.106789499151e-01 4.130861067746e-01 4.153754499369e-01 4.175465576492e-01 -4.195990493076e-01 4.215325855415e-01 4.233468682816e-01 4.250416408125e-01 -4.266166878097e-01 4.280718353596e-01 4.294069509652e-01 4.306219435350e-01 -4.317167633563e-01 4.326914020530e-01 4.335458925272e-01 4.342803088856e-01 -4.348947663497e-01 4.353894211511e-01 4.357644704103e-01 4.360201520010e-01 -4.361567443983e-01 4.361745665118e-01 4.360739775033e-01 4.358553765897e-01 -4.355192028303e-01 4.350659348995e-01 4.344960908441e-01 4.338102278270e-01 -4.330089418547e-01 4.320928674913e-01 4.310626775581e-01 4.299190828181e-01 -4.286628316477e-01 4.272947096929e-01 4.258155395130e-01 4.242261802101e-01 -4.225275270446e-01 4.207205110385e-01 4.188060985641e-01 4.167852909214e-01 -4.146591239012e-01 4.124286673363e-01 4.100950246402e-01 4.076593323337e-01 -4.051227595591e-01 4.024865075830e-01 3.997518092873e-01 3.969199286487e-01 -3.939921602073e-01 3.909698285243e-01 3.878542876288e-01 3.846469204537e-01 -3.813491382626e-01 3.779623800657e-01 3.744881120259e-01 3.709278268561e-01 -3.672830432068e-01 3.635553050448e-01 3.597461810232e-01 3.558572638428e-01 -3.518901696056e-01 3.478465371601e-01 3.437280274391e-01 3.395363227902e-01 -3.352731262987e-01 3.309401611045e-01 3.265391697118e-01 3.220719132928e-01 -3.175401709852e-01 3.129457391848e-01 3.082904308316e-01 3.035760746916e-01 -2.988045146335e-01 2.939776089012e-01 2.890972293815e-01 2.841652608687e-01 -2.791836003246e-01 2.741541561365e-01 2.690788473710e-01 2.639596030257e-01 -2.587983612786e-01 2.535970687348e-01 2.483576796724e-01 2.430821552860e-01 -2.377724629297e-01 2.324305753586e-01 2.270584699704e-01 2.216581280466e-01 -2.162315339932e-01 2.107806745824e-01 2.053075381949e-01 1.998141140629e-01 -1.943023915144e-01 1.887743592194e-01 1.832320044375e-01 1.776773122682e-01 -1.721122649033e-01 1.665388408820e-01 1.609590143496e-01 1.553747543190e-01 -1.497880239360e-01 1.442007797487e-01 1.386149709812e-01 1.330325388114e-01 -1.274554156537e-01 1.218855244475e-01 1.163247779500e-01 1.107750780353e-01 -1.052383149992e-01 9.971636687013e-02 9.421109872690e-02 8.872436202246e-02 -8.325799391531e-02 7.781381660774e-02 7.239363669171e-02 6.699924450243e-02 -6.163241347987e-02 5.629489953858e-02 5.098844044591e-02 4.571475520896e-02 -4.047554347042e-02 3.527248491362e-02 3.010723867693e-02 2.498144277778e-02 -1.989671354647e-02 1.485464507002e-02 9.856808646282e-03 4.904752248416e-03 -8.084377910810e-14 - Type L N - 0 1 1 -0.000000000000e+00 1.287349883354e-02 2.573547475531e-02 3.857441713205e-02 -5.137883987341e-02 6.413729366771e-02 7.683837817512e-02 8.947075416401e-02 -1.020231555764e-01 1.144844015086e-01 1.268434080930e-01 1.390892002673e-01 -1.512109234179e-01 1.631978548831e-01 1.750394153042e-01 1.867251798097e-01 -1.982448890213e-01 2.095884598674e-01 2.207459961937e-01 2.317077991564e-01 -2.424643773877e-01 2.530064569210e-01 2.633249908654e-01 2.734111688171e-01 -2.832564259984e-01 2.928524521123e-01 3.021911999042e-01 3.112648934202e-01 -3.200660359520e-01 3.285874176609e-01 3.368221228716e-01 3.447635370265e-01 -3.524053532954e-01 3.597415788301e-01 3.667665406600e-01 3.734748912194e-01 -3.798616135028e-01 3.859220258413e-01 3.916517862950e-01 3.970468966577e-01 -4.021037060685e-01 4.068189142273e-01 4.111895742108e-01 4.152130948861e-01 -4.188872429201e-01 4.222101443820e-01 4.251802859385e-01 4.277965156404e-01 -4.300580433007e-01 4.319644404634e-01 4.335156399653e-01 4.347119350899e-01 -4.355539783170e-01 4.360427796690e-01 4.361797046561e-01 4.359664718249e-01 -4.354051499131e-01 4.344981546136e-01 4.332482449540e-01 4.316585192952e-01 -4.297324109555e-01 4.274736834644e-01 4.248864254548e-01 4.219750451979e-01 -4.187442647891e-01 4.151991139927e-01 4.113449237518e-01 4.071873193743e-01 -4.027322134004e-01 3.979857981635e-01 3.929545380524e-01 3.876451614846e-01 -3.820646526015e-01 3.762202426951e-01 3.701194013774e-01 3.637698275033e-01 -3.571794398579e-01 3.503563676209e-01 3.433089406181e-01 3.360456793733e-01 -3.285752849731e-01 3.209066287553e-01 3.130487418352e-01 3.050108044820e-01 -2.968021353580e-01 2.884321806341e-01 2.799105029940e-01 2.712467705418e-01 -2.624507456248e-01 2.535322735859e-01 2.445012714596e-01 2.353677166230e-01 -2.261416354183e-01 2.168330917584e-01 2.074521757289e-01 1.980089922025e-01 -1.885136494756e-01 1.789762479447e-01 1.694068688318e-01 1.598155629754e-01 -1.502123396984e-01 1.406071557664e-01 1.310099044496e-01 1.214304047005e-01 -1.118783904600e-01 1.023635001051e-01 9.289526604868e-02 8.348310450536e-02 -7.413630543331e-02 6.486402266461e-02 5.567526423484e-02 4.657888292306e-02 -3.758356701260e-02 2.869783128319e-02 1.993000824438e-02 1.128823961984e-02 -2.780468092110e-03 -5.585570683343e-03 -1.380235578603e-02 -2.186258845205e-02 --2.975919920140e-02 -3.748535466356e-02 -4.503446409415e-02 -5.240018557589e-02 --5.957643189757e-02 -6.655737610510e-02 -7.333745671913e-02 -7.991138261421e-02 --8.627413755471e-02 -9.242098438353e-02 -9.834746885961e-02 -1.040494231411e-01 --1.095229689111e-01 -1.147645201439e-01 -1.197707855094e-01 -1.245387704143e-01 --1.290657786791e-01 -1.333494138503e-01 -1.373875801476e-01 -1.411784830461e-01 --1.447206294949e-01 -1.480128277725e-01 -1.510541869820e-01 -1.538441161856e-01 --1.563823231847e-01 -1.586688129443e-01 -1.607038856690e-01 -1.624881345314e-01 --1.640224430593e-01 -1.653079821847e-01 -1.663462069605e-01 -1.671388529506e-01 --1.676879322986e-01 -1.679957294811e-01 -1.680647967533e-01 -1.678979492927e-01 --1.674982600487e-01 -1.668690543061e-01 -1.660139039692e-01 -1.649366215765e-01 --1.636412540531e-01 -1.621320762106e-01 -1.604135840036e-01 -1.584904875512e-01 --1.563677039349e-01 -1.540503497817e-01 -1.515437336425e-01 -1.488533481770e-01 --1.459848621550e-01 -1.429441122854e-01 -1.397370948832e-01 -1.363699573865e-01 --1.328489897337e-01 -1.291806156141e-01 -1.253713836005e-01 -1.214279581791e-01 --1.173571106849e-01 -1.131657101573e-01 -1.088607141251e-01 -1.044491593355e-01 --9.993815243651e-02 -9.533486062644e-02 -9.064650228155e-02 -8.588033757396e-02 --8.104365909172e-02 -7.614378247274e-02 -7.118803706450e-02 -6.618375662098e-02 --6.113827004858e-02 -5.605889221235e-02 -5.095291481399e-02 -4.582759735266e-02 --4.069015817980e-02 -3.554776565875e-02 -3.040752943992e-02 -2.527649186198e-02 --2.016161948939e-02 -1.506979479638e-02 -1.000780800721e-02 -4.982349102379e-03 --6.437579797176e-15 - Type L N - 0 2 0 -0.000000000000e+00 5.535915211195e-05 2.213972080154e-04 4.979959858820e-04 -8.849586090862e-04 1.382009641449e-03 1.988795277024e-03 2.704883585487e-03 -3.529764810931e-03 4.462851724475e-03 5.503480030692e-03 6.650908827167e-03 -7.904321117094e-03 9.262824374522e-03 1.072545116179e-02 1.229115979875e-02 -1.395883508334e-02 1.572728906294e-02 1.759526185599e-02 1.956142252333e-02 -2.162436998860e-02 2.378263400702e-02 2.603467618203e-02 2.837889102883e-02 -3.081360708426e-02 3.333708806224e-02 3.594753405377e-02 3.864308277085e-02 -4.142181083340e-02 4.428173509816e-02 4.722081402876e-02 5.023694910596e-02 -5.332798627704e-02 5.649171744338e-02 5.972588198510e-02 6.302816832176e-02 -6.639621550800e-02 6.982761486302e-02 7.331991163267e-02 7.687060668312e-02 -8.047715822478e-02 8.413698356539e-02 8.784746089095e-02 9.160593107325e-02 -9.540969950283e-02 9.925603794593e-02 1.031421864243e-01 1.070653551164e-01 -1.110227262786e-01 1.150114561856e-01 1.190286770876e-01 1.230714991840e-01 -1.271370126117e-01 1.312222894466e-01 1.353243857168e-01 1.394403434265e-01 -1.435671925888e-01 1.477019532664e-01 1.518416376183e-01 1.559832519508e-01 -1.601237987727e-01 1.642602788521e-01 1.683896932733e-01 1.725090454930e-01 -1.766153433942e-01 1.807056013362e-01 1.847768421993e-01 1.888260994226e-01 -1.928504190344e-01 1.968468616722e-01 2.008125045921e-01 2.047444436666e-01 -2.086397953674e-01 2.124956987344e-01 2.163093173272e-01 2.200778411595e-01 -2.237984886144e-01 2.274685083383e-01 2.310851811145e-01 2.346458217128e-01 -2.381477807144e-01 2.415884463125e-01 2.449652460847e-01 2.482756487386e-01 -2.515171658267e-01 2.546873534324e-01 2.577838138234e-01 2.608041970725e-01 -2.637462026449e-01 2.666075809504e-01 2.693861348596e-01 2.720797211832e-01 -2.746862521131e-01 2.772036966244e-01 2.796300818381e-01 2.819634943422e-01 -2.842020814712e-01 2.863440525436e-01 2.883876800545e-01 2.903313008259e-01 -2.921733171103e-01 2.939121976491e-01 2.955464786849e-01 2.970747649265e-01 -2.984957304652e-01 2.998081196445e-01 3.010107478787e-01 3.021025024244e-01 -3.030823430996e-01 3.039493029542e-01 3.047024888889e-01 3.053410822225e-01 -3.058643392084e-01 3.062715914985e-01 3.065622465553e-01 3.067357880110e-01 -3.067917759749e-01 3.067298472868e-01 3.065497157184e-01 3.062511721212e-01 -3.058340845212e-01 3.052983981609e-01 3.046441354877e-01 3.038713960897e-01 -3.029803565781e-01 3.019712704172e-01 3.008444677015e-01 2.996003548804e-01 -2.982394144306e-01 2.967622044769e-01 2.951693583611e-01 2.934615841593e-01 -2.916396641495e-01 2.897044542274e-01 2.876568832728e-01 2.854979524671e-01 -2.832287345604e-01 2.808503730919e-01 2.783640815610e-01 2.757711425520e-01 -2.730729068125e-01 2.702707922851e-01 2.673662830950e-01 2.643609284924e-01 -2.612563417520e-01 2.580541990295e-01 2.547562381760e-01 2.513642575117e-01 -2.478801145597e-01 2.443057247399e-01 2.406430600253e-01 2.368941475610e-01 -2.330610682465e-01 2.291459552836e-01 2.251509926894e-01 2.210784137768e-01 -2.169304996024e-01 2.127095773847e-01 2.084180188913e-01 2.040582387984e-01 -1.996326930228e-01 1.951438770279e-01 1.905943241041e-01 1.859866036266e-01 -1.813233192898e-01 1.766071073212e-01 1.718406346748e-01 1.670265972066e-01 -1.621677178324e-01 1.572667446692e-01 1.523264491631e-01 1.473496242024e-01 -1.423390822201e-01 1.372976532846e-01 1.322281831820e-01 1.271335314898e-01 -1.220165696442e-01 1.168801790025e-01 1.117272489014e-01 1.065606747123e-01 -1.013833558967e-01 9.619819406050e-02 9.100809101075e-02 8.581594681512e-02 -8.062465786566e-02 7.543711494816e-02 7.025620131870e-02 6.508479078835e-02 -5.992574581769e-02 5.478191562228e-02 4.965613429040e-02 4.455121891443e-02 -3.946996773718e-02 3.441515831428e-02 2.938954569414e-02 2.439586061649e-02 -1.943680773090e-02 1.451506383641e-02 9.633276143556e-03 4.794060559853e-03 -4.131818525851e-15 - Type L N - 0 2 1 -0.000000000000e+00 1.378450216078e-04 5.511357836611e-04 1.239139794773e-03 -2.200637640491e-03 3.433925082304e-03 4.936815994628e-03 6.706646131180e-03 -8.740277714831e-03 1.103410484304e-02 1.358405969917e-02 1.638561955894e-02 -1.943381457962e-02 2.272323635834e-02 2.624804724465e-02 3.000199039070e-02 -3.397840052178e-02 3.817021540801e-02 4.256998801741e-02 4.716989932876e-02 -5.196177178198e-02 5.693708334247e-02 6.208698215471e-02 6.740230175952e-02 -7.287357684839e-02 7.849105952722e-02 8.424473606111e-02 9.012434407095e-02 -9.611939015158e-02 1.022191678810e-01 1.084127761890e-01 1.146891380531e-01 -1.210370194893e-01 1.274450488047e-01 1.339017360777e-01 1.403954928328e-01 -1.469146518750e-01 1.534474872496e-01 1.599822342926e-01 1.665071097367e-01 -1.730103318384e-01 1.794801404905e-01 1.859048172859e-01 1.922727054973e-01 -1.985722299387e-01 2.047919166733e-01 2.109204125357e-01 2.169465044320e-01 -2.228591383867e-01 2.286474383027e-01 2.343007244016e-01 2.398085313134e-01 -2.451606257844e-01 2.503470239719e-01 2.553580082979e-01 2.601841438308e-01 -2.648162941690e-01 2.692456367986e-01 2.734636778979e-01 2.774622665664e-01 -2.812336084509e-01 2.847702787484e-01 2.880652345620e-01 2.911118265905e-01 -2.939038101309e-01 2.964353553767e-01 2.987010569941e-01 3.006959429600e-01 -3.024154826495e-01 3.038555941563e-01 3.050126508376e-01 3.058834870714e-01 -3.064654032169e-01 3.067561697721e-01 3.067540307204e-01 3.064577060637e-01 -3.058663935363e-01 3.049797694999e-01 3.037979890185e-01 3.023216851136e-01 -3.005519672032e-01 2.984904187284e-01 2.961390939721e-01 2.935005140777e-01 -2.905776622752e-01 2.873739783248e-01 2.838933521878e-01 2.801401169391e-01 -2.761190409326e-01 2.718353192356e-01 2.672945643488e-01 2.625027962274e-01 -2.574664316246e-01 2.521922727737e-01 2.466874954338e-01 2.409596363168e-01 -2.350165799226e-01 2.288665448033e-01 2.225180692832e-01 2.159799966602e-01 -2.092614599151e-01 2.023718659557e-01 1.953208794259e-01 1.881184061067e-01 -1.807745759402e-01 1.732997257066e-01 1.657043813846e-01 1.579992402274e-01 -1.501951525855e-01 1.423031035083e-01 1.343341941582e-01 1.262996230683e-01 -1.182106672782e-01 1.100786633801e-01 1.019149885090e-01 9.373104130994e-02 -8.553822291517e-02 7.734791796572e-02 6.917147570869e-02 6.102019120418e-02 -5.290528667402e-02 4.483789302445e-02 3.682903157469e-02 2.888959602278e-02 -2.103033467944e-02 1.326183300055e-02 5.594496447730e-03 -1.961466293644e-03 --9.396059710778e-03 -1.669951744637e-02 -2.386231784130e-02 -3.087519901112e-02 --3.772917343115e-02 -4.441554200612e-02 -5.092590760095e-02 -5.725218801079e-02 --6.338662834879e-02 -6.932181283193e-02 -7.505067594562e-02 -8.056651296961e-02 --8.586298984831e-02 -9.093415239043e-02 -9.577443478343e-02 -1.003786674102e-01 --1.047420839562e-01 -1.088603277967e-01 -1.127294576547e-01 -1.163459525234e-01 --1.197067158441e-01 -1.228090789373e-01 -1.256508036817e-01 -1.282300844387e-01 --1.305455492228e-01 -1.325962601165e-01 -1.343817129326e-01 -1.359018361263e-01 --1.371569889621e-01 -1.381479589410e-01 -1.388759584938e-01 -1.393426209511e-01 --1.395499957974e-01 -1.395005432216e-01 -1.391971279746e-01 -1.386430125484e-01 --1.378418496907e-01 -1.367976742705e-01 -1.355148945107e-01 -1.339982826069e-01 --1.322529647502e-01 -1.302844105739e-01 -1.280984220447e-01 -1.257011218207e-01 --1.230989410988e-01 -1.202986069733e-01 -1.173071293331e-01 -1.141317873188e-01 --1.107801153683e-01 -1.072598888758e-01 -1.035791094915e-01 -9.974599008950e-02 --9.576893943205e-02 -9.165654655832e-02 -8.741756492694e-02 -8.306089634124e-02 --7.859557468680e-02 -7.403074951113e-02 -6.937566947526e-02 -6.463966570746e-02 --5.983213508908e-02 -5.496252350283e-02 -5.004030907345e-02 -4.507498543086e-02 --4.007604502571e-02 -3.505296252697e-02 -3.001517833094e-02 -2.497208221092e-02 --1.993299713613e-02 -1.490716328841e-02 -9.903722304457e-03 -4.931701771028e-03 -4.773444701199e-14 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/model.ptg b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/model.ptg deleted file mode 100644 index 400c7e0bd8..0000000000 Binary files a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/model.ptg and /dev/null differ diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/o_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/o_delta_ref.dat deleted file mode 100644 index 2bab10e884..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/o_delta_ref.dat +++ /dev/null @@ -1,9 +0,0 @@ --0.004469642413 --0.0044399973 --0.00444692579 --0.004454318737 --0.004423084083 --0.004431135508 --0.004429534826 --0.004402348837 --0.004408819655 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/orbpre_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/orbpre_ref.dat deleted file mode 100644 index 16448bd955..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/orbpre_ref.dat +++ /dev/null @@ -1,27 +0,0 @@ -0.2038907892 0.0004498069237 0.08206562731 0.1293100375 0.138541059 0.004620692825 0.006085846672 0.00643880485 4.643953433e-23 -1.626503694e-21 5.074489247e-07 2.032160185e-06 4.185014692e-05 1.655969677e-22 -7.530903053e-23 3.918019096e-07 1.487665701e-06 1.789071482e-05 -0.05508536259 0.0002745555136 3.777232963e-05 7.70163958e-05 0.0006065050955 1.47208655e-05 2.954814781e-05 0.0002413168887 1.324043936e-11 1.999769042e-05 2.745141585e-05 3.256673201e-05 0.0002262287844 3.04445312e-11 8.563669284e-06 1.179963891e-05 1.391292956e-05 9.855801233e-05 -0.07492055141 0.0001297607676 3.214773309e-06 2.461627142e-05 7.059576012e-05 1.271901705e-06 9.639536174e-06 2.74283536e-05 8.281145611e-08 2.886004097e-07 2.892329275e-06 8.723976844e-06 1.593408224e-05 3.753687784e-08 1.264680355e-07 1.490272194e-06 4.486312044e-06 7.143659059e-06 -0.2038705774 0.0004482851295 0.08182799015 0.1284794219 0.1387094355 0.004629124783 0.006032089122 0.006449384166 -1.214405416e-22 -1.681232454e-21 4.950040483e-07 1.9825271e-06 4.167935124e-05 4.382034915e-22 -1.330200353e-22 3.82194739e-07 1.451471781e-06 1.781508512e-05 -0.05471383775 0.0002671283334 3.769160882e-05 7.399779837e-05 0.0006031533933 1.468925722e-05 2.839105572e-05 0.0002400557695 1.292409025e-11 1.969213318e-05 2.724118396e-05 3.243071506e-05 0.0002261082415 2.971726605e-11 8.433502226e-06 1.170904673e-05 1.385451291e-05 9.851593673e-05 -0.07306555145 0.0001278914827 3.196622907e-06 2.466716578e-05 6.965729266e-05 1.264838356e-06 9.659624947e-06 2.70656483e-05 8.248846048e-08 2.791194745e-07 2.924153385e-06 8.842807989e-06 1.578877495e-05 3.743824491e-08 1.221080695e-07 1.506100282e-06 4.536583133e-06 7.092223251e-06 -0.2037777639 0.0004482671355 0.0804628023 0.1305867113 0.1386250362 0.004586347662 0.006119699993 0.006442301119 1.295350215e-22 -1.985068858e-21 4.951690472e-07 1.983209669e-06 4.165562759e-05 6.817516526e-22 -1.108707146e-22 3.823065317e-07 1.45171861e-06 1.780874613e-05 -0.05459305321 0.0002618753534 3.801575277e-05 7.424494023e-05 0.0005968209259 1.481599457e-05 2.848780809e-05 0.0002376564158 1.293575514e-11 1.968008047e-05 2.785858065e-05 3.216815264e-05 0.0002247909506 2.97443642e-11 8.428616428e-06 1.19772637e-05 1.374024206e-05 9.796662365e-05 -0.07305903289 0.0001265282043 3.257648922e-06 2.462941752e-05 7.009872045e-05 1.288156401e-06 9.640191436e-06 2.723274703e-05 8.343307921e-08 2.90692816e-07 2.899066075e-06 8.620289229e-06 1.594657367e-05 3.786372031e-08 1.272705313e-07 1.494988186e-06 4.412546437e-06 7.183810443e-06 -0.2032227786 0.0003976330201 0.08028609547 0.1262715135 0.1403475427 0.004719474856 0.006115611746 0.00639892874 1.860520277e-22 6.1023359e-22 4.985192332e-07 2.076514899e-06 4.063457371e-05 2.885919227e-22 -8.079052034e-23 3.83637336e-07 1.542548171e-06 1.716586938e-05 -0.05023229721 0.0001559311532 3.779158648e-05 0.0001211411689 0.0005851791177 1.473292148e-05 4.662868168e-05 0.0002330471619 1.313136377e-11 1.547266621e-05 2.925747085e-05 3.84714127e-05 0.000239411019 3.007497083e-11 6.648936156e-06 1.253540473e-05 1.650028014e-05 0.0001042646524 -0.06814752643 4.849622774e-05 3.201119406e-06 2.462646172e-05 7.019100708e-05 1.263010973e-06 9.661094309e-06 2.727771371e-05 8.167799764e-08 2.691459249e-07 2.879429825e-06 8.651735153e-06 1.578082221e-05 3.696663255e-08 1.165442012e-07 1.483176011e-06 4.449656464e-06 7.081458519e-06 -0.2031316807 0.0003974160794 0.08026463935 0.1256230532 0.1406429936 0.004739886287 0.00607052873 0.006416488892 3.14084896e-22 -4.837595633e-22 4.858950294e-07 2.024053835e-06 4.048340008e-05 8.689327366e-23 -1.064000894e-22 3.73920198e-07 1.50360981e-06 1.710524887e-05 -0.04996772775 0.000153828241 3.773430596e-05 0.0001189491991 0.0005836589332 1.471081107e-05 4.578938344e-05 0.0002324768654 1.27920044e-11 1.51392545e-05 2.91882481e-05 3.848120681e-05 0.0002386275418 2.929862665e-11 6.505956362e-06 1.25032505e-05 1.650559164e-05 0.0001039345698 -0.06635356041 4.788605329e-05 3.191835081e-06 2.469761488e-05 6.933610145e-05 1.259417132e-06 9.688438796e-06 2.694930431e-05 8.153222241e-08 2.61290783e-07 2.914478392e-06 8.788889563e-06 1.563823858e-05 3.696057917e-08 1.12862314e-07 1.50083514e-06 4.508895282e-06 7.032225568e-06 -0.2031287971 0.0003975180134 0.07900284619 0.1276908218 0.1404707771 0.004694324639 0.00615385253 0.006406493391 3.40738576e-22 -1.108644869e-21 4.863484624e-07 2.025181991e-06 4.04548851e-05 5.45563685e-22 1.472208506e-22 3.742880874e-07 1.504360046e-06 1.709316805e-05 -0.04994451439 0.0001536254141 3.800023206e-05 0.0001193678735 0.0005789370436 1.48142446e-05 4.595118649e-05 0.000230695131 1.280078575e-11 1.517456069e-05 2.972588408e-05 3.832999079e-05 0.0002363589238 2.931829189e-11 6.520859134e-06 1.27355533e-05 1.64403694e-05 0.0001029851685 -0.06647633521 4.808400194e-05 3.250126653e-06 2.465862244e-05 6.981773585e-05 1.281783604e-06 9.668480125e-06 2.71316072e-05 8.268164839e-08 2.727709304e-07 2.890481751e-06 8.563508501e-06 1.580415515e-05 3.745410554e-08 1.180271058e-07 1.490380324e-06 4.383358431e-06 7.127384746e-06 -0.2036932862 0.0004356069273 0.08003792757 0.1305296859 0.1397524043 0.004389259103 0.006094725164 0.006467169744 -9.222956422e-23 -3.522163688e-22 4.805999909e-07 1.976311599e-06 4.170204864e-05 1.483287551e-22 -1.941307204e-23 3.693953919e-07 1.446697838e-06 1.790720193e-05 -0.0504035461 0.0002058621609 3.834199467e-05 0.0001779833034 0.0005917457609 1.493345849e-05 6.858439377e-05 0.0002356172177 1.292126445e-11 1.017540642e-05 4.378826722e-05 3.682943545e-05 0.0002244012985 2.957057438e-11 4.363380129e-06 1.876472002e-05 1.582392114e-05 9.788203719e-05 -0.06980225162 9.526233049e-05 3.184766577e-06 2.451072279e-05 6.808482897e-05 1.261312265e-06 9.628086783e-06 2.646364125e-05 7.535837881e-08 2.830001062e-07 2.8651716e-06 8.763874339e-06 1.562938524e-05 3.413975302e-08 1.24436362e-07 1.471215343e-06 4.497243189e-06 7.025811975e-06 -0.2036788749 0.0004348883581 0.08016257072 0.1298997588 0.1399635742 0.004403300679 0.006049176007 0.00648170402 -5.143213563e-23 -2.185289057e-21 4.692912083e-07 1.92952663e-06 4.156942562e-05 8.906118788e-22 -2.013328957e-23 3.607062298e-07 1.412347811e-06 1.784884874e-05 -0.05023253223 0.0002069297662 3.830863245e-05 0.0001764221282 0.0005914435084 1.492027171e-05 6.79869163e-05 0.0002355173936 1.261684721e-11 9.853530475e-06 4.399419792e-05 3.670103182e-05 0.0002230560546 2.887280489e-11 4.224866952e-06 1.885065276e-05 1.576963785e-05 9.731962965e-05 -0.0682509701 9.577914948e-05 3.178486806e-06 2.459525788e-05 6.743777486e-05 1.258986967e-06 9.66018499e-06 2.62156293e-05 7.544074641e-08 2.75150726e-07 2.901551418e-06 8.899450673e-06 1.551389333e-05 3.419743757e-08 1.207951255e-07 1.489806923e-06 4.557364187e-06 6.986683372e-06 -0.2036696052 0.0004341390417 0.07881933715 0.1317236077 0.1399382235 0.00435399403 0.00612805728 0.006475439025 -2.154073878e-22 -1.369994898e-21 4.692165456e-07 1.929919919e-06 4.151079943e-05 -4.061066915e-22 -1.724816613e-22 3.606459074e-07 1.412970044e-06 1.781998632e-05 -0.05010106219 0.0002038841052 3.859354384e-05 0.0001763623235 0.0005856275429 1.503126436e-05 6.79644201e-05 0.0002333192673 1.261028174e-11 9.895304422e-06 4.436126894e-05 3.662907941e-05 0.0002208443441 2.885784682e-11 4.242728607e-06 1.900986126e-05 1.573820765e-05 9.639596588e-05 -0.06820992221 9.465142409e-05 3.23519185e-06 2.454390007e-05 6.786590144e-05 1.280581638e-06 9.635555505e-06 2.637725895e-05 7.638405347e-08 2.857336233e-07 2.875125079e-06 8.673327194e-06 1.56657421e-05 3.461613647e-08 1.255786509e-07 1.477855759e-06 4.431075446e-06 7.075763915e-06 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/pdm_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/pdm_ref.dat deleted file mode 100644 index 3800848dc0..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/pdm_ref.dat +++ /dev/null @@ -1,18 +0,0 @@ -1.832064153 -0.003843560629 -0.8513005926 -0.1746559333 -0.095604921 -0.1746559333 1.082226761 -0.09391646423 -0.095604921 -0.09391646423 1.20650814 -0.04253581863 -0.003984043701 -0.001183130075 -0.003984043701 0.05365690123 -0.0009234075352 -0.001183130075 -0.0009234075352 0.0577699862 -2.730129035e-05 4.071166221e-05 3.002615592e-05 6.200460222e-06 2.666624097e-05 4.071166221e-05 0.0001707999146 0.0001312579391 2.860514788e-05 0.0001182618305 3.002615592e-05 0.0001312579391 0.0001082238942 2.258592599e-05 9.323140476e-05 6.200460222e-06 2.860514788e-05 2.258592599e-05 4.855420917e-06 2.003197794e-05 2.666624097e-05 0.0001182618305 9.323140476e-05 2.003197794e-05 8.270663656e-05 -1.733465325e-05 1.716644995e-05 1.304518571e-05 2.471716885e-06 1.09873705e-05 1.716644995e-05 7.321392483e-05 5.527899131e-05 1.219430669e-05 5.040792121e-05 1.304518571e-05 5.527899131e-05 4.715165247e-05 9.621257034e-06 3.972354661e-05 2.471716885e-06 1.219430669e-05 9.621257034e-06 2.074387175e-06 8.548457614e-06 1.09873705e-05 5.040792121e-05 3.972354661e-05 8.548457614e-06 3.527253779e-05 -0.4652739334 -0.001883620041 -0.002926103361 0.001810884895 0.001159562896 0.001810884895 0.002124301043 0.001479818063 0.001159562896 0.001479818063 0.001730402036 -0.001157178872 0.0007244058869 0.0004681926265 0.0007244058869 0.0008434254949 0.0005882324018 0.0004681926265 0.0005882324018 0.0006817988262 -0.0002858349035 0.0002856893914 0.0002166136241 1.586768695e-05 5.828604463e-05 0.0002856893914 0.001029701147 0.0007117825194 0.0002867620172 0.0005508655573 0.0002166136241 0.0007117825194 0.0007530772406 5.685404508e-05 0.0004237641873 1.586768695e-05 0.0002867620172 5.685404508e-05 0.0002268307237 5.559141758e-05 5.828604463e-05 0.0005508655573 0.0004237641873 5.559141758e-05 0.0005249381607 -0.0001226808891 0.0001236670056 9.381942934e-05 7.012491789e-06 2.591980386e-05 0.0001236670056 0.0004480757377 0.0003104932343 0.0001240398719 0.0002410808489 9.381942934e-05 0.0003104932343 0.0003271093293 2.53116098e-05 0.0001855854695 7.012491789e-06 0.0001240398719 2.53116098e-05 9.739708122e-05 2.466007515e-05 2.591980386e-05 0.0002410808489 0.0001855854695 2.466007515e-05 0.0002286634243 -0.6282857017 -0.0008143396416 -0.0004729448063 -7.702704852e-05 -0.0001787662214 -7.702704852e-05 9.892414574e-05 0.0001376650575 -0.0001787662214 0.0001376650575 0.0003016721769 -0.0001867571488 -2.812967076e-05 -6.91119197e-05 -2.812967076e-05 3.82103924e-05 5.244539299e-05 -6.91119197e-05 5.244539299e-05 0.0001154855445 -8.546761244e-05 1.468074407e-05 1.231084841e-05 4.814846691e-06 -1.079618427e-05 1.468074407e-05 3.610280519e-05 2.220010734e-05 1.722069985e-05 -2.6840359e-05 1.231084841e-05 2.220010734e-05 7.468515586e-05 3.011309327e-05 -4.554788595e-05 4.814846691e-06 1.722069985e-05 3.011309327e-05 1.672455778e-05 -2.382842109e-05 -1.079618427e-05 -2.6840359e-05 -4.554788595e-05 -2.382842109e-05 3.651849533e-05 -4.68884992e-05 6.46466234e-06 6.842173473e-06 2.139265382e-06 -5.627190044e-06 6.46466234e-06 1.653148817e-05 8.318707203e-06 7.439400842e-06 -1.164148023e-05 6.842173473e-06 8.318707203e-06 3.253598378e-05 1.258925311e-05 -1.926850608e-05 2.139265382e-06 7.439400842e-06 1.258925311e-05 7.123748859e-06 -1.017816663e-05 -5.627190044e-06 -1.164148023e-05 -1.926850608e-05 -1.017816663e-05 1.57582295e-05 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/phialpha_r_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/phialpha_r_ref.dat deleted file mode 100644 index 2555105724..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/phialpha_r_ref.dat +++ /dev/null @@ -1,90 +0,0 @@ -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01549049334 -0.008174923279 -0.01252984138 -0.001935969794 0.003019675432 0.00788521501 0.001218334503 -0.001900326534 0.003568640615 0.000995834728 -0.00155327716 -0.0001102363088 -0.0002399948708 -0.002913223937 -0.0008129396822 0.001268002215 8.99903039e-05 0.0001959174032 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.01247160266 -0.006567016476 0.01104053913 -0.001637299466 0.002553817208 -0.006469067647 0.0009593554152 -0.001496377675 0.003058371219 -0.0008163949749 0.001273391691 -8.674062618e-05 -0.0001888425475 -0.00282107768 0.0007530523528 -0.001174591513 8.001057654e-05 0.0001741905929 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.05785973507 -0.03312014089 -0.02911345498 -0.02583366471 -0.02032777798 0.01797119978 0.01594664563 0.01254796311 0.003659167906 0.01551198681 0.01220594242 0.002620983642 0.01083087611 -0.002388782854 -0.01012655584 -0.007968299547 -0.001711034023 -0.007070626928 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9506009778 -0.03704878006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0.8843427108 0 0 0.1889703505 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0.8843427108 0 0 0.1889703505 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0.8843427108 0 0 0.1889703505 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0427339877 -0.02448725792 -0.01888781237 0.01121431389 0.02266477214 0.01168819858 -0.006939666972 -0.01402546533 0.0005923430479 -0.005869696236 -0.01186299305 -0.00537509094 0.007043448182 -0.0003879429804 0.003844237659 0.007769424991 0.003520306023 -0.004612962522 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.019515339e-06 -1.370241206e-05 -5.347449165e-06 3.174956012e-06 -1.565040186e-05 8.899151076e-06 -5.283717963e-06 2.604518271e-05 -9.174067274e-06 -2.727443413e-06 1.344446515e-05 -1.88642999e-05 -7.982420056e-06 1.389135919e-05 4.129890809e-06 -2.035758938e-05 2.856429521e-05 1.208696872e-05 -0.02633161517 -0.01791079567 0.01852637825 0.0164392802 0.01293560328 -0.0125493455 -0.01113559294 -0.008762282223 0.003003115094 0.01273084016 0.01001753701 0.002151067056 0.008889006558 -0.002077634425 -0.008807531829 -0.00693039697 -0.001488165064 -0.006149649765 --0.04662917397 0.02713926452 -0.01911286758 -0.03002629269 -0.02362683802 0.01163009293 0.01847677005 0.01453884626 0.005213880813 -0.01550212217 -0.01219818021 -0.004026143774 -0.01663751872 -0.003451414263 0.009983495964 0.007855729791 0.002607719396 0.01077606332 --0.04137614194 0.02408187761 -0.03002629269 -0.0119181632 -0.02096514521 0.01847677005 0.007202809825 0.01290096554 -0.009794791439 -0.01176066744 -0.01663751872 0.004753564827 -0.008211606515 0.006377062504 0.007552909863 0.01077606332 -0.003136042439 0.005273639796 --0.03255771245 0.01894934641 -0.02362683802 -0.02096514521 -0.001771375053 0.01453884626 0.01290096554 0.0009589530383 -0.007707243553 -0.01663751872 -0.003708379892 -0.009362763723 -0.003290610571 0.005017929598 0.01077606332 0.00233747107 0.006109219019 0.002074142142 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.8787772769 -0.02082997923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.019515339e-06 -1.370241206e-05 5.347449165e-06 -3.174956012e-06 1.565040186e-05 -8.899151076e-06 5.283717963e-06 -2.604518271e-05 -9.174067274e-06 -2.727443413e-06 1.344446515e-05 -1.88642999e-05 -7.982420056e-06 1.389135919e-05 4.129890809e-06 -2.035758938e-05 2.856429521e-05 1.208696872e-05 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.003104899108 -0.001980214566 -0.003206229369 0.000475480189 -0.0007416416568 0.002121664761 -0.0003146404843 0.0004907680603 0.001491871192 -0.0003982368578 0.0006211595137 -4.231201253e-05 -9.211725333e-05 -0.001161000674 0.0003099149999 -0.0004833973723 3.292796009e-05 7.168728357e-05 -0.01114868278 -0.006494370323 -0.01087331028 0.001864964883 -0.002908923816 0.006660586271 -0.001143576665 0.001783721199 0.004240321405 -0.001402883204 0.002188180807 -0.0001757507072 -0.0003826259128 -0.003322580486 0.00106480865 -0.001660860893 0.0001306592731 0.0002844575957 --0.001653337046 0.0009631077734 0.001864964883 0.001425836396 0.0004313901118 -0.001143576665 -0.0008811198862 -0.0002645238363 -0.001064041474 -0.001449017591 -0.0003826259128 0.0002773302818 -0.0003351762095 0.0007784274951 0.0009298740051 0.0002844575957 -0.0001843213028 0.0002150916913 -0.002578832209 -0.001502230506 -0.002908923816 0.0004313901118 0.00102953748 0.001783721199 -0.0002645238363 -0.0006381135986 0.001659664271 -0.0003826259128 -0.001097516176 0.0003512658243 0.0001627604076 -0.001214171001 0.0002844575957 0.000668555459 -0.0002270532784 -9.914601841e-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.0427339877 -0.02448725792 0.01888781237 -0.01121431389 -0.02266477214 -0.01168819858 0.006939666972 0.01402546533 0.0005923430479 -0.005869696236 -0.01186299305 -0.00537509094 0.007043448182 -0.0003879429804 0.003844237659 0.007769424991 0.003520306023 -0.004612962522 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.004083050775 -0.002629344125 0.004047476841 0.000625370479 -0.0009754366403 -0.002767142628 -0.0004275476744 0.0006668777647 0.001974310669 0.0005509344706 -0.0008593332866 -6.098700989e-05 -0.0001327744889 -0.001439673924 -0.0004017432532 0.0006266286983 4.447193099e-05 9.68196001e-05 --0.01424995761 0.008260998775 -0.01300343963 -0.002360227712 0.003681421921 0.008285382273 0.001497571709 -0.00233587348 -0.005179802726 -0.001801823692 0.002810437825 0.0002358028932 0.0005133652016 0.003731180151 0.001280874462 -0.001997874738 -0.0001662329138 -0.0003619047762 --0.002201742757 0.001276396373 -0.002360227712 0.001907576896 0.0005688118006 0.001497571709 -0.001175703361 -0.0003609128289 -0.001369015701 0.001795890597 0.0005133652016 0.0003647675033 -0.0004328072919 0.0009589596205 -0.001197107328 -0.0003619047762 -0.0002464976687 0.0002885013049 -0.003434221202 -0.001990889931 0.003681421921 0.0005688118006 0.001385034784 -0.00233587348 -0.0003609128289 -0.0008441487913 0.002135355155 0.0005133652016 0.001324284811 0.000455298504 0.0002046135553 -0.001495760324 -0.0003619047762 -0.0008646415007 -0.0003043568344 -0.0001335946543 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.8787772769 -0.02082997923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/phialpha_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/phialpha_ref.dat deleted file mode 100644 index 2eea631263..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/phialpha_ref.dat +++ /dev/null @@ -1,153 +0,0 @@ -iat : 0 -ad : 20 5.094192361 -R : 0 -1 -1 -iw : 5 -0.01549049334 -0.008174923279 -0.01252984138 -0.001935969794 0.003019675432 0.00788521501 -0.001218334503 -0.001900326534 0.003568640615 0.000995834728 -0.00155327716 -0.0001102363088 --0.0002399948708 -0.002913223937 -0.0008129396822 0.001268002215 8.99903039e-05 0.0001959174032 - -ad : 23 5.291649545 -R : 0 -1 0 -iw : 5 -0.01247160266 -0.006567016476 0.01104053913 -0.001637299466 0.002553817208 -0.006469067647 -0.0009593554152 -0.001496377675 0.003058371219 -0.0008163949749 0.001273391691 -8.674062618e-05 --0.0001888425475 -0.00282107768 0.0007530523528 -0.001174591513 8.001057654e-05 0.0001741905929 - -ad : 27 3.731782527 -R : 0 0 -1 -iw : 4 -0.05785973507 -0.03312014089 -0.02911345498 -0.02583366471 -0.02032777798 0.01797119978 -0.01594664563 0.01254796311 0.003659167906 0.01551198681 0.01220594242 0.002620983642 -0.01083087611 -0.002388782854 -0.01012655584 -0.007968299547 -0.001711034023 -0.007070626928 - -ad : 49 0 -R : 0 0 0 -iw : 0 -0.9506009778 -0.03704878006 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 1 -0 0 0.8843427108 0 0 0.1889703505 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 2 -0 0 0 0.8843427108 0 0 -0.1889703505 0 0 0 0 0 -0 0 0 0 0 0 - -iw : 3 -0 0 0 0 0.8843427108 0 -0 0.1889703505 0 0 0 0 -0 0 0 0 0 0 - -iat : 1 -ad : 16 4.049413304 -R : 0 -1 0 -iw : 5 -0.0427339877 -0.02448725792 -0.01888781237 0.01121431389 0.02266477214 0.01168819858 --0.006939666972 -0.01402546533 0.0005923430479 -0.005869696236 -0.01186299305 -0.00537509094 -0.007043448182 -0.0003879429804 0.003844237659 0.007769424991 0.003520306023 -0.004612962522 - -ad : 23 7.631582655 -R : 0 0 0 -iw : 5 -7.019515339e-06 -1.370241206e-05 -5.347449165e-06 3.174956012e-06 -1.565040186e-05 8.899151076e-06 --5.283717963e-06 2.604518271e-05 -9.174067274e-06 -2.727443413e-06 1.344446515e-05 -1.88642999e-05 --7.982420056e-06 1.389135919e-05 4.129890809e-06 -2.035758938e-05 2.856429521e-05 1.208696872e-05 - -ad : 24 3.731782527 -R : 0 0 1 -iw : 0 -0.02633161517 -0.01791079567 0.01852637825 0.0164392802 0.01293560328 -0.0125493455 --0.01113559294 -0.008762282223 0.003003115094 0.01273084016 0.01001753701 0.002151067056 -0.008889006558 -0.002077634425 -0.008807531829 -0.00693039697 -0.001488165064 -0.006149649765 - -iw : 1 --0.04662917397 0.02713926452 -0.01911286758 -0.03002629269 -0.02362683802 0.01163009293 -0.01847677005 0.01453884626 0.005213880813 -0.01550212217 -0.01219818021 -0.004026143774 --0.01663751872 -0.003451414263 0.009983495964 0.007855729791 0.002607719396 0.01077606332 - -iw : 2 --0.04137614194 0.02408187761 -0.03002629269 -0.0119181632 -0.02096514521 0.01847677005 -0.007202809825 0.01290096554 -0.009794791439 -0.01176066744 -0.01663751872 0.004753564827 --0.008211606515 0.006377062504 0.007552909863 0.01077606332 -0.003136042439 0.005273639796 - -iw : 3 --0.03255771245 0.01894934641 -0.02362683802 -0.02096514521 -0.001771375053 0.01453884626 -0.01290096554 0.0009589530383 -0.007707243553 -0.01663751872 -0.003708379892 -0.009362763723 --0.003290610571 0.005017929598 0.01077606332 0.00233747107 0.006109219019 0.002074142142 - -ad : 48 0 -R : 0 0 0 -iw : 4 -0.8787772769 -0.02082997923 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 - -iat : 2 -ad : 19 7.631582655 -R : 0 0 0 -iw : 4 -7.019515339e-06 -1.370241206e-05 5.347449165e-06 -3.174956012e-06 1.565040186e-05 -8.899151076e-06 -5.283717963e-06 -2.604518271e-05 -9.174067274e-06 -2.727443413e-06 1.344446515e-05 -1.88642999e-05 --7.982420056e-06 1.389135919e-05 4.129890809e-06 -2.035758938e-05 2.856429521e-05 1.208696872e-05 - -ad : 25 5.291649545 -R : 0 1 0 -iw : 0 -0.003104899108 -0.001980214566 -0.003206229369 0.000475480189 -0.0007416416568 0.002121664761 --0.0003146404843 0.0004907680603 0.001491871192 -0.0003982368578 0.0006211595137 -4.231201253e-05 --9.211725333e-05 -0.001161000674 0.0003099149999 -0.0004833973723 3.292796009e-05 7.168728357e-05 - -iw : 1 -0.01114868278 -0.006494370323 -0.01087331028 0.001864964883 -0.002908923816 0.006660586271 --0.001143576665 0.001783721199 0.004240321405 -0.001402883204 0.002188180807 -0.0001757507072 --0.0003826259128 -0.003322580486 0.00106480865 -0.001660860893 0.0001306592731 0.0002844575957 - -iw : 2 --0.001653337046 0.0009631077734 0.001864964883 0.001425836396 0.0004313901118 -0.001143576665 --0.0008811198862 -0.0002645238363 -0.001064041474 -0.001449017591 -0.0003826259128 0.0002773302818 --0.0003351762095 0.0007784274951 0.0009298740051 0.0002844575957 -0.0001843213028 0.0002150916913 - -iw : 3 -0.002578832209 -0.001502230506 -0.002908923816 0.0004313901118 0.00102953748 0.001783721199 --0.0002645238363 -0.0006381135986 0.001659664271 -0.0003826259128 -0.001097516176 0.0003512658243 -0.0001627604076 -0.001214171001 0.0002844575957 0.000668555459 -0.0002270532784 -9.914601841e-05 - -ad : 26 4.049413304 -R : 0 1 0 -iw : 4 -0.0427339877 -0.02448725792 0.01888781237 -0.01121431389 -0.02266477214 -0.01168819858 -0.006939666972 0.01402546533 0.0005923430479 -0.005869696236 -0.01186299305 -0.00537509094 -0.007043448182 -0.0003879429804 0.003844237659 0.007769424991 0.003520306023 -0.004612962522 - -ad : 28 5.094192361 -R : 0 1 1 -iw : 0 -0.004083050775 -0.002629344125 0.004047476841 0.000625370479 -0.0009754366403 -0.002767142628 --0.0004275476744 0.0006668777647 0.001974310669 0.0005509344706 -0.0008593332866 -6.098700989e-05 --0.0001327744889 -0.001439673924 -0.0004017432532 0.0006266286983 4.447193099e-05 9.68196001e-05 - -iw : 1 --0.01424995761 0.008260998775 -0.01300343963 -0.002360227712 0.003681421921 0.008285382273 -0.001497571709 -0.00233587348 -0.005179802726 -0.001801823692 0.002810437825 0.0002358028932 -0.0005133652016 0.003731180151 0.001280874462 -0.001997874738 -0.0001662329138 -0.0003619047762 - -iw : 2 --0.002201742757 0.001276396373 -0.002360227712 0.001907576896 0.0005688118006 0.001497571709 --0.001175703361 -0.0003609128289 -0.001369015701 0.001795890597 0.0005133652016 0.0003647675033 --0.0004328072919 0.0009589596205 -0.001197107328 -0.0003619047762 -0.0002464976687 0.0002885013049 - -iw : 3 -0.003434221202 -0.001990889931 0.003681421921 0.0005688118006 0.001385034784 -0.00233587348 --0.0003609128289 -0.0008441487913 0.002135355155 0.0005133652016 0.001324284811 0.000455298504 -0.0002046135553 -0.001495760324 -0.0003619047762 -0.0008646415007 -0.0003043568344 -0.0001335946543 - -ad : 47 0 -R : 0 0 0 -iw : 5 -0.8787772769 -0.02082997923 0 0 0 0 -0 0 0 0 0 0 -0 0 0 0 0 0 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/stress_delta_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/stress_delta_ref.dat deleted file mode 100644 index 28e6ad1e79..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/stress_delta_ref.dat +++ /dev/null @@ -1,3 +0,0 @@ -1.007360957e-06 7.514217335e-07 -1.24216236e-06 -7.514217335e-07 4.794875553e-07 -1.057869553e-06 --1.24216236e-06 -1.057869553e-06 1.392522485e-06 diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/vdpre_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/vdpre_ref.dat deleted file mode 100644 index d3f46d3795..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/vdpre_ref.dat +++ /dev/null @@ -1,972 +0,0 @@ -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001327065152,0.0001745137027) (4.851715854e-05,6.442145611e-05) (3.908039962e-08,3.834486981e-08) (1.932942431e-05,-1.729246111e-05) (-6.848047015e-05,0.0001088014399) (-7.092587578e-09,-6.624120487e-09) (8.231308672e-06,-7.562622352e-06) (-2.835623052e-05,4.630338873e-05) (4.07856903e-08,8.640263637e-08) (-1.347193042e-08,2.792271182e-07) (5.384111767e-08,-4.358286924e-08) (7.33275146e-06,1.277834977e-05) (-1.19855963e-05,-5.606818188e-06) (1.741350221e-08,3.85101637e-08) (-6.558588093e-09,1.283488743e-07) (7.797707409e-09,-7.352564351e-09) (4.730267402e-06,8.299157533e-06) (-7.080825041e-06,-4.898049137e-06) -(0.01185551768,0.01472527812) (0.0002432999491,0.0003028709346) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(6.891330961e-20,0.001125439754) (2.687069149e-20,0.0004388316943) (-1.840501662e-24,-3.005767317e-08) (3.03210816e-22,4.951808411e-06) (7.497527724e-21,0.0001224439198) (-8.437348539e-25,-1.377923585e-08) (1.188445594e-22,1.940878945e-06) (3.14030017e-21,5.128499371e-05) (-4.677845463e-29,-7.639501485e-13) (3.689823716e-22,6.025939427e-06) (3.569344632e-22,5.829182152e-06) (1.767906195e-22,2.887209922e-06) (-9.52283171e-21,-0.000155519644) (-1.097763124e-28,-1.792783236e-12) (1.65091158e-22,2.696143216e-06) (1.546925817e-22,2.526321579e-06) (8.103399463e-23,1.323385562e-06) (-4.307999473e-21,-7.035497053e-05) -(0.002728514783,0.003588092242) (4.124782827e-05,5.47691835e-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.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004765059311,-0.0006090575412) (0.0001591183097,-0.0002024024033) (1.505948688e-07,-1.483078638e-07) (6.701634024e-05,5.351965943e-05) (-0.0002276337772,-0.0003559525599) (-2.521795164e-08,2.395281023e-08) (2.643075755e-05,2.182075809e-05) (-8.728608923e-05,-0.0001410599497) (1.991003576e-07,-3.567464907e-07) (-7.52879461e-08,-8.800275894e-07) (1.810855405e-07,1.533743634e-07) (1.99852641e-05,-3.443241085e-05) (-3.725192844e-05,1.211361591e-05) (8.688868141e-08,-1.596946002e-07) (-3.262471423e-08,-3.970559893e-07) (2.605889361e-08,2.439171093e-08) (1.290178026e-05,-2.213742434e-05) (-2.135669564e-05,1.179687873e-05) -(0,0) (0,0) (0.00680829811,-0.00793183079) (0.002972738273,-0.003127241291) (-1.741607571e-05,-2.160181166e-05) (-0.001067687343,0.001376672169) (-0.0001624530577,0.0001013175964) (7.678420483e-06,1.208207916e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.220346979e-19,-0.001992977861) (-4.071571233e-20,-0.0006649380435) (-9.519357758e-23,-1.5546291e-06) (-2.012318902e-20,-0.0003286366164) (-1.106180755e-20,-0.0001806530268) (-3.946411489e-23,-6.444979061e-07) (-7.756022327e-21,-0.000126665457) (-4.194867521e-21,-6.850738554e-05) (1.031917882e-28,1.685249789e-12) (1.297911855e-21,2.119650916e-05) (-3.818073313e-21,-6.235386915e-05) (-7.459320172e-22,-1.218199431e-05) (1.203962702e-20,0.0001966220305) (2.327555054e-28,3.801185868e-12) (5.633514902e-22,9.200228026e-06) (-1.616233361e-21,-2.639509388e-05) (-3.34921727e-22,-5.469686888e-06) (5.077718074e-21,8.292542923e-05) -(0.009797209093,-0.01252253895) (0.0001352775989,-0.0001720764329) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066529063e-05,-9.410470306e-05) (-2.359706536e-05,-3.127293691e-05) (4.387402341e-08,6.654049715e-08) (-1.688103083e-05,2.559052231e-06) (2.630732538e-05,-8.149906239e-05) (-6.996738877e-09,-1.090448832e-08) (-6.809850101e-06,9.147635028e-07) (1.037086037e-05,-3.163887386e-05) (1.277241686e-07,-1.095458571e-07) (1.190464631e-06,-6.925705065e-07) (4.994272669e-08,-9.435060149e-08) (-5.917618579e-06,-9.670309564e-06) (1.311813275e-05,-1.18735078e-05) (5.477710269e-08,-4.634243047e-08) (5.3371327e-07,-3.228999473e-07) (6.456839713e-09,-1.205307766e-08) (-3.114819064e-06,-7.246997104e-06) (6.367735309e-06,-2.343888202e-06) -(0,0) (0,0) (0.003857191634,-0.004493720879) (-0.004084003867,0.004296263025) (-0.001221121616,-0.001514602922) (-0.0003467606725,0.0004471119472) (0.0004768721845,-0.0002974123369) (5.117821703e-05,8.052948788e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.082868203e-19,-0.001768457981) (-3.612886417e-20,-0.0005900291283) (2.79955416e-22,4.572018906e-06) (7.019492976e-21,0.0001146370199) (-9.824819643e-21,-0.0001604514812) (1.160038e-22,1.894485824e-06) (2.721106618e-21,4.443904348e-05) (-3.72526168e-21,-6.083814016e-05) (6.582813344e-29,1.075054982e-12) (-1.233299168e-21,-2.01413039e-05) (2.66394415e-21,4.350550953e-05) (-1.641427459e-21,-2.680654471e-05) (1.105415403e-20,0.0001805280354) (1.558154143e-28,2.544658825e-12) (-5.243805763e-22,-8.563784704e-06) (1.156984966e-21,1.889499841e-05) (-7.114537932e-22,-1.161892219e-05) (4.658580995e-21,7.608040128e-05) -(-0.001452915027,-0.001934841504) (-2.006151491e-05,-2.658730994e-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.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102218861,0.0001467820732) (3.680609003e-05,4.877871524e-05) (7.749268957e-11,-1.234450527e-08) (7.592165359e-06,-2.900225119e-05) (-9.070823891e-05,6.081782697e-05) (-1.374022387e-10,2.209615134e-09) (2.847890478e-06,-1.183752584e-05) (-3.448243963e-05,2.483414121e-05) (-2.136727955e-07,-4.780431033e-07) (9.020247465e-07,-6.296998309e-07) (-4.745396412e-09,3.494933306e-08) (1.141934101e-05,9.537598124e-06) (3.367313014e-06,-2.694271489e-05) (-9.937639531e-08,-2.217559561e-07) (3.923933097e-07,-2.861459769e-07) (-5.361964047e-10,3.635634409e-09) (7.730270253e-06,4.911977478e-06) (-1.642833793e-06,-1.240659803e-05) -(0,0) (0,0) (0.002095132464,-0.002440879632) (-0.002141393392,0.002252688674) (0.002304710561,0.002858618916) (-9.519383668e-05,0.000122742586) (8.496930534e-05,-5.299306708e-05) (-0.0002725464823,-0.0004288548901) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-8.520782733e-20,-0.001391549423) (-2.842877841e-20,-0.0004642771848) (-2.105890025e-22,-3.439179404e-06) (1.844046129e-20,0.0003011555872) (-7.753676866e-21,-0.0001266271528) (-8.722741452e-23,-1.424531785e-06) (7.132247821e-21,0.0001164784463) (-2.93994619e-21,-4.801296491e-05) (-3.381784437e-29,-5.522873215e-13) (-1.850417075e-21,-3.021960415e-05) (5.747678508e-22,9.386671343e-06) (2.407428833e-21,3.93162965e-05) (8.941057401e-21,0.0001460185485) (-9.920906001e-29,-1.62020691e-12) (-7.903437773e-22,-1.29072934e-05) (2.354231657e-22,3.844752069e-06) (1.064819005e-21,1.738981404e-05) (3.766841716e-21,6.151719366e-05) -(0.002266219146,0.003017915556) (3.129143023e-05,4.147019592e-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) -(3.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001327065152,-0.0001745137027) (4.851715854e-05,-6.442145611e-05) (3.908039962e-08,-3.834486981e-08) (1.932942431e-05,1.729246111e-05) (-6.848047015e-05,-0.0001088014399) (-7.092587578e-09,6.624120487e-09) (8.231308672e-06,7.562622352e-06) (-2.835623052e-05,-4.630338873e-05) (4.07856903e-08,-8.640263637e-08) (-1.347193042e-08,-2.792271182e-07) (5.384111767e-08,4.358286924e-08) (7.33275146e-06,-1.277834977e-05) (-1.19855963e-05,5.606818188e-06) (1.741350221e-08,-3.85101637e-08) (-6.558588093e-09,-1.283488743e-07) (7.797707409e-09,7.352564351e-09) (4.730267402e-06,-8.299157533e-06) (-7.080825041e-06,4.898049137e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004765059311,0.0006090575412) (0.0001591183097,0.0002024024033) (1.505948688e-07,1.483078638e-07) (6.701634024e-05,-5.351965943e-05) (-0.0002276337772,0.0003559525599) (-2.521795164e-08,-2.395281023e-08) (2.643075755e-05,-2.182075809e-05) (-8.728608923e-05,0.0001410599497) (1.991003576e-07,3.567464907e-07) (-7.52879461e-08,8.800275894e-07) (1.810855405e-07,-1.533743634e-07) (1.99852641e-05,3.443241085e-05) (-3.725192844e-05,-1.211361591e-05) (8.688868141e-08,1.596946002e-07) (-3.262471423e-08,3.970559893e-07) (2.605889361e-08,-2.439171093e-08) (1.290178026e-05,2.213742434e-05) (-2.135669564e-05,-1.179687873e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066529063e-05,9.410470306e-05) (-2.359706536e-05,3.127293691e-05) (4.387402341e-08,-6.654049715e-08) (-1.688103083e-05,-2.559052231e-06) (2.630732538e-05,8.149906239e-05) (-6.996738877e-09,1.090448832e-08) (-6.809850101e-06,-9.147635028e-07) (1.037086037e-05,3.163887386e-05) (1.277241686e-07,1.095458571e-07) (1.190464631e-06,6.925705065e-07) (4.994272669e-08,9.435060149e-08) (-5.917618579e-06,9.670309564e-06) (1.311813275e-05,1.18735078e-05) (5.477710269e-08,4.634243047e-08) (5.3371327e-07,3.228999473e-07) (6.456839713e-09,1.205307766e-08) (-3.114819064e-06,7.246997104e-06) (6.367735309e-06,2.343888202e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102218861,-0.0001467820732) (3.680609003e-05,-4.877871524e-05) (7.749268957e-11,1.234450527e-08) (7.592165359e-06,2.900225119e-05) (-9.070823891e-05,-6.081782697e-05) (-1.374022387e-10,-2.209615134e-09) (2.847890478e-06,1.183752584e-05) (-3.448243963e-05,-2.483414121e-05) (-2.136727955e-07,4.780431033e-07) (9.020247465e-07,6.296998309e-07) (-4.745396412e-09,-3.494933306e-08) (1.141934101e-05,-9.537598124e-06) (3.367313014e-06,2.694271489e-05) (-9.937639531e-08,2.217559561e-07) (3.923933097e-07,2.861459769e-07) (-5.361964047e-10,-3.635634409e-09) (7.730270253e-06,-4.911977478e-06) (-1.642833793e-06,1.240659803e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001826793698,0) (0.0006002970574,0) (1.965104462e-09,0) (7.180576195e-05,0) (0.0009239585328,0) (1.370612185e-10,0) (3.113274731e-05,0) (0.0003499053155,0) (5.489499012e-07,0) (1.165330489e-06,0) (4.156871775e-09,0) (3.817920955e-05,0) (0.0002139321324,0) (2.567758031e-07,0) (5.261866535e-07,0) (1.694959731e-10,0) (3.528461463e-05,0) (7.269268282e-05,0) -(0.0008962758408,-0.0007216036255) (0.0002707546108,-0.0002175005109) (0.0004485025223,0.0003849727706) (-7.433269291e-05,-7.066024671e-05) (-2.07529536e-05,1.673169902e-05) (0.0001768031636,0.0001371208806) (-1.898120746e-05,-3.04345474e-05) (-2.053206055e-05,1.304856493e-05) (1.058791184e-22,-2.117582368e-22) (0,8.470329473e-22) (3.906805075e-08,5.216157775e-08) (-4.602991095e-07,3.445422376e-07) (7.079367579e-06,-1.21941592e-05) (0,4.235164736e-22) (0,1.588186776e-22) (4.247145338e-08,4.624995928e-08) (-4.665722591e-07,4.279965122e-07) (3.972382466e-06,-7.57832127e-06) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.01185551768,-0.01472527812) (0.0002432999491,-0.0003028709346) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(6.891330961e-20,-0.001125439754) (2.687069149e-20,-0.0004388316943) (-1.840501662e-24,3.005767317e-08) (3.03210816e-22,-4.951808411e-06) (7.497527724e-21,-0.0001224439198) (-8.437348539e-25,1.377923585e-08) (1.188445594e-22,-1.940878945e-06) (3.14030017e-21,-5.128499371e-05) (-4.677845445e-29,7.639501451e-13) (3.689823716e-22,-6.025939427e-06) (3.569344632e-22,-5.829182152e-06) (1.767906195e-22,-2.887209922e-06) (-9.52283171e-21,0.000155519644) (-1.09776312e-28,1.792783234e-12) (1.65091158e-22,-2.696143216e-06) (1.546925817e-22,-2.526321579e-06) (8.103399463e-23,-1.323385562e-06) (-4.307999473e-21,7.035497053e-05) -(0.002728514783,-0.003588092242) (4.124782827e-05,-5.47691835e-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.00680829811,0.00793183079) (0.002972738273,0.003127241291) (-1.741607571e-05,2.160181166e-05) (-0.001067687343,-0.001376672169) (-0.0001624530577,-0.0001013175964) (7.678420483e-06,-1.208207916e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.220346979e-19,0.001992977861) (-4.071571233e-20,0.0006649380435) (-9.519357758e-23,1.5546291e-06) (-2.012318902e-20,0.0003286366164) (-1.106180755e-20,0.0001806530268) (-3.946411489e-23,6.444979061e-07) (-7.756022327e-21,0.000126665457) (-4.194867521e-21,6.850738554e-05) (1.031917885e-28,-1.685249799e-12) (1.297911855e-21,-2.119650916e-05) (-3.818073313e-21,6.235386915e-05) (-7.459320172e-22,1.218199431e-05) (1.203962702e-20,-0.0001966220305) (2.327555052e-28,-3.801185868e-12) (5.633514902e-22,-9.200228026e-06) (-1.616233361e-21,2.639509388e-05) (-3.34921727e-22,5.469686888e-06) (5.077718074e-21,-8.292542923e-05) -(0.009797209093,0.01252253895) (0.0001352775989,0.0001720764329) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.003857191634,0.004493720879) (-0.004084003867,-0.004296263025) (-0.001221121616,0.001514602922) (-0.0003467606725,-0.0004471119472) (0.0004768721845,0.0002974123369) (5.117821703e-05,-8.052948788e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.082868203e-19,0.001768457981) (-3.612886417e-20,0.0005900291283) (2.79955416e-22,-4.572018906e-06) (7.019492976e-21,-0.0001146370199) (-9.824819643e-21,0.0001604514812) (1.160038e-22,-1.894485824e-06) (2.721106618e-21,-4.443904348e-05) (-3.72526168e-21,6.083814016e-05) (6.582813372e-29,-1.075055003e-12) (-1.233299168e-21,2.01413039e-05) (2.66394415e-21,-4.350550953e-05) (-1.641427459e-21,2.680654471e-05) (1.105415403e-20,-0.0001805280354) (1.558154144e-28,-2.544658825e-12) (-5.243805763e-22,8.563784704e-06) (1.156984966e-21,-1.889499841e-05) (-7.114537932e-22,1.161892219e-05) (4.658580995e-21,-7.608040128e-05) -(-0.001452915027,0.001934841504) (-2.006151491e-05,2.658730994e-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.002095132464,0.002440879632) (-0.002141393392,-0.002252688674) (0.002304710561,-0.002858618916) (-9.519383668e-05,-0.000122742586) (8.496930534e-05,5.299306708e-05) (-0.0002725464823,0.0004288548901) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-8.520782733e-20,0.001391549423) (-2.842877841e-20,0.0004642771848) (-2.105890025e-22,3.439179404e-06) (1.844046129e-20,-0.0003011555872) (-7.753676866e-21,0.0001266271528) (-8.722741452e-23,1.424531785e-06) (7.132247821e-21,-0.0001164784463) (-2.93994619e-21,4.801296491e-05) (-3.38178455e-29,5.522873215e-13) (-1.850417075e-21,3.021960415e-05) (5.747678508e-22,-9.386671343e-06) (2.407428833e-21,-3.93162965e-05) (8.941057401e-21,-0.0001460185485) (-9.920905992e-29,1.620206905e-12) (-7.903437773e-22,1.29072934e-05) (2.354231657e-22,-3.844752069e-06) (1.064819005e-21,-1.738981404e-05) (3.766841716e-21,-6.151719366e-05) -(0.002266219146,-0.003017915556) (3.129143023e-05,-4.147019592e-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.0008962758408,0.0007216036255) (0.0002707546108,0.0002175005109) (0.0004485025223,-0.0003849727706) (-7.433269291e-05,7.066024671e-05) (-2.07529536e-05,-1.673169902e-05) (0.0001768031636,-0.0001371208806) (-1.898120746e-05,3.04345474e-05) (-2.053206055e-05,-1.304856493e-05) (5.29395592e-23,2.117582368e-22) (8.470329473e-22,1.270549421e-21) (3.906805075e-08,-5.216157775e-08) (-4.602991095e-07,-3.445422376e-07) (7.079367579e-06,1.21941592e-05) (0,0) (-5.29395592e-23,5.29395592e-23) (4.247145338e-08,-4.624995928e-08) (-4.665722591e-07,-4.279965122e-07) (3.972382466e-06,7.57832127e-06) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001826793698,0) (0.0006002970574,0) (1.620728594e-07,0) (0.0009764021137,0) (1.920207323e-05,0) (7.139568096e-08,0) (0.0003736251899,0) (7.341614299e-06,0) (1.408221806e-10,0) (0.0001432405297,0) (2.999254979e-05,0) (1.208173922e-05,0) (6.851481963e-05,0) (3.235752974e-10,0) (6.123534858e-05,0) (1.2769249e-05,0) (5.468987095e-06,0) (2.928652115e-05,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001327065152,0.0001745137027) (4.851715854e-05,6.442145611e-05) (3.908039962e-08,3.834486981e-08) (1.932942431e-05,-1.729246111e-05) (-6.848047015e-05,0.0001088014399) (-7.092587578e-09,-6.624120487e-09) (8.231308672e-06,-7.562622352e-06) (-2.835623052e-05,4.630338873e-05) (4.07856903e-08,8.640263637e-08) (-1.347193042e-08,2.792271182e-07) (5.384111767e-08,-4.358286924e-08) (7.33275146e-06,1.277834977e-05) (-1.19855963e-05,-5.606818188e-06) (1.741350221e-08,3.85101637e-08) (-6.558588093e-09,1.283488743e-07) (7.797707409e-09,-7.352564351e-09) (4.730267402e-06,8.299157533e-06) (-7.080825041e-06,-4.898049137e-06) -(0.01185551768,0.01472527812) (0.0002432999491,0.0003028709346) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(6.891330961e-20,0.001125439754) (2.687069149e-20,0.0004388316943) (-1.840501662e-24,-3.005767317e-08) (3.03210816e-22,4.951808411e-06) (7.497527724e-21,0.0001224439198) (-8.437348539e-25,-1.377923585e-08) (1.188445594e-22,1.940878945e-06) (3.14030017e-21,5.128499371e-05) (-4.677845463e-29,-7.639501485e-13) (3.689823716e-22,6.025939427e-06) (3.569344632e-22,5.829182152e-06) (1.767906195e-22,2.887209922e-06) (-9.52283171e-21,-0.000155519644) (-1.097763124e-28,-1.792783236e-12) (1.65091158e-22,2.696143216e-06) (1.546925817e-22,2.526321579e-06) (8.103399463e-23,1.323385562e-06) (-4.307999473e-21,-7.035497053e-05) -(0.002728514783,0.003588092242) (4.124782827e-05,5.47691835e-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.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004765059311,-0.0006090575412) (0.0001591183097,-0.0002024024033) (1.505948688e-07,-1.483078638e-07) (6.701634024e-05,5.351965943e-05) (-0.0002276337772,-0.0003559525599) (-2.521795164e-08,2.395281023e-08) (2.643075755e-05,2.182075809e-05) (-8.728608923e-05,-0.0001410599497) (1.991003576e-07,-3.567464907e-07) (-7.52879461e-08,-8.800275894e-07) (1.810855405e-07,1.533743634e-07) (1.99852641e-05,-3.443241085e-05) (-3.725192844e-05,1.211361591e-05) (8.688868141e-08,-1.596946002e-07) (-3.262471423e-08,-3.970559893e-07) (2.605889361e-08,2.439171093e-08) (1.290178026e-05,-2.213742434e-05) (-2.135669564e-05,1.179687873e-05) -(0,0) (0,0) (0.00680829811,-0.00793183079) (0.002972738273,-0.003127241291) (-1.741607571e-05,-2.160181166e-05) (-0.001067687343,0.001376672169) (-0.0001624530577,0.0001013175964) (7.678420483e-06,1.208207916e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.220346979e-19,-0.001992977861) (-4.071571233e-20,-0.0006649380435) (-9.519357758e-23,-1.5546291e-06) (-2.012318902e-20,-0.0003286366164) (-1.106180755e-20,-0.0001806530268) (-3.946411489e-23,-6.444979061e-07) (-7.756022327e-21,-0.000126665457) (-4.194867521e-21,-6.850738554e-05) (1.031917882e-28,1.685249789e-12) (1.297911855e-21,2.119650916e-05) (-3.818073313e-21,-6.235386915e-05) (-7.459320172e-22,-1.218199431e-05) (1.203962702e-20,0.0001966220305) (2.327555054e-28,3.801185868e-12) (5.633514902e-22,9.200228026e-06) (-1.616233361e-21,-2.639509388e-05) (-3.34921727e-22,-5.469686888e-06) (5.077718074e-21,8.292542923e-05) -(0.009797209093,-0.01252253895) (0.0001352775989,-0.0001720764329) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066529063e-05,-9.410470306e-05) (-2.359706536e-05,-3.127293691e-05) (4.387402341e-08,6.654049715e-08) (-1.688103083e-05,2.559052231e-06) (2.630732538e-05,-8.149906239e-05) (-6.996738877e-09,-1.090448832e-08) (-6.809850101e-06,9.147635028e-07) (1.037086037e-05,-3.163887386e-05) (1.277241686e-07,-1.095458571e-07) (1.190464631e-06,-6.925705065e-07) (4.994272669e-08,-9.435060149e-08) (-5.917618579e-06,-9.670309564e-06) (1.311813275e-05,-1.18735078e-05) (5.477710269e-08,-4.634243047e-08) (5.3371327e-07,-3.228999473e-07) (6.456839713e-09,-1.205307766e-08) (-3.114819064e-06,-7.246997104e-06) (6.367735309e-06,-2.343888202e-06) -(0,0) (0,0) (0.003857191634,-0.004493720879) (-0.004084003867,0.004296263025) (-0.001221121616,-0.001514602922) (-0.0003467606725,0.0004471119472) (0.0004768721845,-0.0002974123369) (5.117821703e-05,8.052948788e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.082868203e-19,-0.001768457981) (-3.612886417e-20,-0.0005900291283) (2.79955416e-22,4.572018906e-06) (7.019492976e-21,0.0001146370199) (-9.824819643e-21,-0.0001604514812) (1.160038e-22,1.894485824e-06) (2.721106618e-21,4.443904348e-05) (-3.72526168e-21,-6.083814016e-05) (6.582813344e-29,1.075054982e-12) (-1.233299168e-21,-2.01413039e-05) (2.66394415e-21,4.350550953e-05) (-1.641427459e-21,-2.680654471e-05) (1.105415403e-20,0.0001805280354) (1.558154143e-28,2.544658825e-12) (-5.243805763e-22,-8.563784704e-06) (1.156984966e-21,1.889499841e-05) (-7.114537932e-22,-1.161892219e-05) (4.658580995e-21,7.608040128e-05) -(-0.001452915027,-0.001934841504) (-2.006151491e-05,-2.658730994e-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.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102218861,0.0001467820732) (3.680609003e-05,4.877871524e-05) (7.749268957e-11,-1.234450527e-08) (7.592165359e-06,-2.900225119e-05) (-9.070823891e-05,6.081782697e-05) (-1.374022387e-10,2.209615134e-09) (2.847890478e-06,-1.183752584e-05) (-3.448243963e-05,2.483414121e-05) (-2.136727955e-07,-4.780431033e-07) (9.020247465e-07,-6.296998309e-07) (-4.745396412e-09,3.494933306e-08) (1.141934101e-05,9.537598124e-06) (3.367313014e-06,-2.694271489e-05) (-9.937639531e-08,-2.217559561e-07) (3.923933097e-07,-2.861459769e-07) (-5.361964047e-10,3.635634409e-09) (7.730270253e-06,4.911977478e-06) (-1.642833793e-06,-1.240659803e-05) -(0,0) (0,0) (0.002095132464,-0.002440879632) (-0.002141393392,0.002252688674) (0.002304710561,0.002858618916) (-9.519383668e-05,0.000122742586) (8.496930534e-05,-5.299306708e-05) (-0.0002725464823,-0.0004288548901) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-8.520782733e-20,-0.001391549423) (-2.842877841e-20,-0.0004642771848) (-2.105890025e-22,-3.439179404e-06) (1.844046129e-20,0.0003011555872) (-7.753676866e-21,-0.0001266271528) (-8.722741452e-23,-1.424531785e-06) (7.132247821e-21,0.0001164784463) (-2.93994619e-21,-4.801296491e-05) (-3.381784437e-29,-5.522873215e-13) (-1.850417075e-21,-3.021960415e-05) (5.747678508e-22,9.386671343e-06) (2.407428833e-21,3.93162965e-05) (8.941057401e-21,0.0001460185485) (-9.920906001e-29,-1.62020691e-12) (-7.903437773e-22,-1.29072934e-05) (2.354231657e-22,3.844752069e-06) (1.064819005e-21,1.738981404e-05) (3.766841716e-21,6.151719366e-05) -(0.002266219146,0.003017915556) (3.129143023e-05,4.147019592e-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) -(3.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001327065152,-0.0001745137027) (4.851715854e-05,-6.442145611e-05) (3.908039962e-08,-3.834486981e-08) (1.932942431e-05,1.729246111e-05) (-6.848047015e-05,-0.0001088014399) (-7.092587578e-09,6.624120487e-09) (8.231308672e-06,7.562622352e-06) (-2.835623052e-05,-4.630338873e-05) (4.07856903e-08,-8.640263637e-08) (-1.347193042e-08,-2.792271182e-07) (5.384111767e-08,4.358286924e-08) (7.33275146e-06,-1.277834977e-05) (-1.19855963e-05,5.606818188e-06) (1.741350221e-08,-3.85101637e-08) (-6.558588093e-09,-1.283488743e-07) (7.797707409e-09,7.352564351e-09) (4.730267402e-06,-8.299157533e-06) (-7.080825041e-06,4.898049137e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004765059311,0.0006090575412) (0.0001591183097,0.0002024024033) (1.505948688e-07,1.483078638e-07) (6.701634024e-05,-5.351965943e-05) (-0.0002276337772,0.0003559525599) (-2.521795164e-08,-2.395281023e-08) (2.643075755e-05,-2.182075809e-05) (-8.728608923e-05,0.0001410599497) (1.991003576e-07,3.567464907e-07) (-7.52879461e-08,8.800275894e-07) (1.810855405e-07,-1.533743634e-07) (1.99852641e-05,3.443241085e-05) (-3.725192844e-05,-1.211361591e-05) (8.688868141e-08,1.596946002e-07) (-3.262471423e-08,3.970559893e-07) (2.605889361e-08,-2.439171093e-08) (1.290178026e-05,2.213742434e-05) (-2.135669564e-05,-1.179687873e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066529063e-05,9.410470306e-05) (-2.359706536e-05,3.127293691e-05) (4.387402341e-08,-6.654049715e-08) (-1.688103083e-05,-2.559052231e-06) (2.630732538e-05,8.149906239e-05) (-6.996738877e-09,1.090448832e-08) (-6.809850101e-06,-9.147635028e-07) (1.037086037e-05,3.163887386e-05) (1.277241686e-07,1.095458571e-07) (1.190464631e-06,6.925705065e-07) (4.994272669e-08,9.435060149e-08) (-5.917618579e-06,9.670309564e-06) (1.311813275e-05,1.18735078e-05) (5.477710269e-08,4.634243047e-08) (5.3371327e-07,3.228999473e-07) (6.456839713e-09,1.205307766e-08) (-3.114819064e-06,7.246997104e-06) (6.367735309e-06,2.343888202e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102218861,-0.0001467820732) (3.680609003e-05,-4.877871524e-05) (7.749268957e-11,1.234450527e-08) (7.592165359e-06,2.900225119e-05) (-9.070823891e-05,-6.081782697e-05) (-1.374022387e-10,-2.209615134e-09) (2.847890478e-06,1.183752584e-05) (-3.448243963e-05,-2.483414121e-05) (-2.136727955e-07,4.780431033e-07) (9.020247465e-07,6.296998309e-07) (-4.745396412e-09,-3.494933306e-08) (1.141934101e-05,-9.537598124e-06) (3.367313014e-06,2.694271489e-05) (-9.937639531e-08,2.217559561e-07) (3.923933097e-07,2.861459769e-07) (-5.361964047e-10,-3.635634409e-09) (7.730270253e-06,-4.911977478e-06) (-1.642833793e-06,1.240659803e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001826793698,0) (0.0006002970574,0) (1.965104462e-09,0) (7.180576195e-05,0) (0.0009239585328,0) (1.370612185e-10,0) (3.113274731e-05,0) (0.0003499053155,0) (5.489499012e-07,0) (1.165330489e-06,0) (4.156871775e-09,0) (3.817920955e-05,0) (0.0002139321324,0) (2.567758031e-07,0) (5.261866535e-07,0) (1.694959731e-10,0) (3.528461463e-05,0) (7.269268282e-05,0) -(0.0008962758408,-0.0007216036255) (0.0002707546108,-0.0002175005109) (0.0004485025223,0.0003849727706) (-7.433269291e-05,-7.066024671e-05) (-2.07529536e-05,1.673169902e-05) (0.0001768031636,0.0001371208806) (-1.898120746e-05,-3.04345474e-05) (-2.053206055e-05,1.304856493e-05) (1.058791184e-22,-2.117582368e-22) (0,8.470329473e-22) (3.906805075e-08,5.216157775e-08) (-4.602991095e-07,3.445422376e-07) (7.079367579e-06,-1.21941592e-05) (0,4.235164736e-22) (0,1.588186776e-22) (4.247145338e-08,4.624995928e-08) (-4.665722591e-07,4.279965122e-07) (3.972382466e-06,-7.57832127e-06) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.01185551768,-0.01472527812) (0.0002432999491,-0.0003028709346) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(6.891330961e-20,-0.001125439754) (2.687069149e-20,-0.0004388316943) (-1.840501662e-24,3.005767317e-08) (3.03210816e-22,-4.951808411e-06) (7.497527724e-21,-0.0001224439198) (-8.437348539e-25,1.377923585e-08) (1.188445594e-22,-1.940878945e-06) (3.14030017e-21,-5.128499371e-05) (-4.677845445e-29,7.639501451e-13) (3.689823716e-22,-6.025939427e-06) (3.569344632e-22,-5.829182152e-06) (1.767906195e-22,-2.887209922e-06) (-9.52283171e-21,0.000155519644) (-1.09776312e-28,1.792783234e-12) (1.65091158e-22,-2.696143216e-06) (1.546925817e-22,-2.526321579e-06) (8.103399463e-23,-1.323385562e-06) (-4.307999473e-21,7.035497053e-05) -(0.002728514783,-0.003588092242) (4.124782827e-05,-5.47691835e-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.00680829811,0.00793183079) (0.002972738273,0.003127241291) (-1.741607571e-05,2.160181166e-05) (-0.001067687343,-0.001376672169) (-0.0001624530577,-0.0001013175964) (7.678420483e-06,-1.208207916e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.220346979e-19,0.001992977861) (-4.071571233e-20,0.0006649380435) (-9.519357758e-23,1.5546291e-06) (-2.012318902e-20,0.0003286366164) (-1.106180755e-20,0.0001806530268) (-3.946411489e-23,6.444979061e-07) (-7.756022327e-21,0.000126665457) (-4.194867521e-21,6.850738554e-05) (1.031917885e-28,-1.685249799e-12) (1.297911855e-21,-2.119650916e-05) (-3.818073313e-21,6.235386915e-05) (-7.459320172e-22,1.218199431e-05) (1.203962702e-20,-0.0001966220305) (2.327555052e-28,-3.801185868e-12) (5.633514902e-22,-9.200228026e-06) (-1.616233361e-21,2.639509388e-05) (-3.34921727e-22,5.469686888e-06) (5.077718074e-21,-8.292542923e-05) -(0.009797209093,0.01252253895) (0.0001352775989,0.0001720764329) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.003857191634,0.004493720879) (-0.004084003867,-0.004296263025) (-0.001221121616,0.001514602922) (-0.0003467606725,-0.0004471119472) (0.0004768721845,0.0002974123369) (5.117821703e-05,-8.052948788e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.082868203e-19,0.001768457981) (-3.612886417e-20,0.0005900291283) (2.79955416e-22,-4.572018906e-06) (7.019492976e-21,-0.0001146370199) (-9.824819643e-21,0.0001604514812) (1.160038e-22,-1.894485824e-06) (2.721106618e-21,-4.443904348e-05) (-3.72526168e-21,6.083814016e-05) (6.582813372e-29,-1.075055003e-12) (-1.233299168e-21,2.01413039e-05) (2.66394415e-21,-4.350550953e-05) (-1.641427459e-21,2.680654471e-05) (1.105415403e-20,-0.0001805280354) (1.558154144e-28,-2.544658825e-12) (-5.243805763e-22,8.563784704e-06) (1.156984966e-21,-1.889499841e-05) (-7.114537932e-22,1.161892219e-05) (4.658580995e-21,-7.608040128e-05) -(-0.001452915027,0.001934841504) (-2.006151491e-05,2.658730994e-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.002095132464,0.002440879632) (-0.002141393392,-0.002252688674) (0.002304710561,-0.002858618916) (-9.519383668e-05,-0.000122742586) (8.496930534e-05,5.299306708e-05) (-0.0002725464823,0.0004288548901) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-8.520782733e-20,0.001391549423) (-2.842877841e-20,0.0004642771848) (-2.105890025e-22,3.439179404e-06) (1.844046129e-20,-0.0003011555872) (-7.753676866e-21,0.0001266271528) (-8.722741452e-23,1.424531785e-06) (7.132247821e-21,-0.0001164784463) (-2.93994619e-21,4.801296491e-05) (-3.38178455e-29,5.522873215e-13) (-1.850417075e-21,3.021960415e-05) (5.747678508e-22,-9.386671343e-06) (2.407428833e-21,-3.93162965e-05) (8.941057401e-21,-0.0001460185485) (-9.920905992e-29,1.620206905e-12) (-7.903437773e-22,1.29072934e-05) (2.354231657e-22,-3.844752069e-06) (1.064819005e-21,-1.738981404e-05) (3.766841716e-21,-6.151719366e-05) -(0.002266219146,-0.003017915556) (3.129143023e-05,-4.147019592e-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.0008962758408,0.0007216036255) (0.0002707546108,0.0002175005109) (0.0004485025223,-0.0003849727706) (-7.433269291e-05,7.066024671e-05) (-2.07529536e-05,-1.673169902e-05) (0.0001768031636,-0.0001371208806) (-1.898120746e-05,3.04345474e-05) (-2.053206055e-05,-1.304856493e-05) (5.29395592e-23,2.117582368e-22) (8.470329473e-22,1.270549421e-21) (3.906805075e-08,-5.216157775e-08) (-4.602991095e-07,-3.445422376e-07) (7.079367579e-06,1.21941592e-05) (0,0) (-5.29395592e-23,5.29395592e-23) (4.247145338e-08,-4.624995928e-08) (-4.665722591e-07,-4.279965122e-07) (3.972382466e-06,7.57832127e-06) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001826793698,0) (0.0006002970574,0) (1.620728594e-07,0) (0.0009764021137,0) (1.920207323e-05,0) (7.139568096e-08,0) (0.0003736251899,0) (7.341614299e-06,0) (1.408221806e-10,0) (0.0001432405297,0) (2.999254979e-05,0) (1.208173922e-05,0) (6.851481963e-05,0) (3.235752974e-10,0) (6.123534858e-05,0) (1.2769249e-05,0) (5.468987095e-06,0) (2.928652115e-05,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001327065152,0.0001745137027) (4.851715854e-05,6.442145611e-05) (3.908039962e-08,3.834486981e-08) (1.932942431e-05,-1.729246111e-05) (-6.848047015e-05,0.0001088014399) (-7.092587578e-09,-6.624120487e-09) (8.231308672e-06,-7.562622352e-06) (-2.835623052e-05,4.630338873e-05) (4.07856903e-08,8.640263637e-08) (-1.347193042e-08,2.792271182e-07) (5.384111767e-08,-4.358286924e-08) (7.33275146e-06,1.277834977e-05) (-1.19855963e-05,-5.606818188e-06) (1.741350221e-08,3.85101637e-08) (-6.558588093e-09,1.283488743e-07) (7.797707409e-09,-7.352564351e-09) (4.730267402e-06,8.299157533e-06) (-7.080825041e-06,-4.898049137e-06) -(0.01185551768,0.01472527812) (0.0002432999491,0.0003028709346) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(6.891330961e-20,0.001125439754) (2.687069149e-20,0.0004388316943) (-1.840501662e-24,-3.005767317e-08) (3.03210816e-22,4.951808411e-06) (7.497527724e-21,0.0001224439198) (-8.437348539e-25,-1.377923585e-08) (1.188445594e-22,1.940878945e-06) (3.14030017e-21,5.128499371e-05) (-4.677845463e-29,-7.639501485e-13) (3.689823716e-22,6.025939427e-06) (3.569344632e-22,5.829182152e-06) (1.767906195e-22,2.887209922e-06) (-9.52283171e-21,-0.000155519644) (-1.097763124e-28,-1.792783236e-12) (1.65091158e-22,2.696143216e-06) (1.546925817e-22,2.526321579e-06) (8.103399463e-23,1.323385562e-06) (-4.307999473e-21,-7.035497053e-05) -(0.002728514783,0.003588092242) (4.124782827e-05,5.47691835e-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.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004765059311,-0.0006090575412) (0.0001591183097,-0.0002024024033) (1.505948688e-07,-1.483078638e-07) (6.701634024e-05,5.351965943e-05) (-0.0002276337772,-0.0003559525599) (-2.521795164e-08,2.395281023e-08) (2.643075755e-05,2.182075809e-05) (-8.728608923e-05,-0.0001410599497) (1.991003576e-07,-3.567464907e-07) (-7.52879461e-08,-8.800275894e-07) (1.810855405e-07,1.533743634e-07) (1.99852641e-05,-3.443241085e-05) (-3.725192844e-05,1.211361591e-05) (8.688868141e-08,-1.596946002e-07) (-3.262471423e-08,-3.970559893e-07) (2.605889361e-08,2.439171093e-08) (1.290178026e-05,-2.213742434e-05) (-2.135669564e-05,1.179687873e-05) -(0,0) (0,0) (0.00680829811,-0.00793183079) (0.002972738273,-0.003127241291) (-1.741607571e-05,-2.160181166e-05) (-0.001067687343,0.001376672169) (-0.0001624530577,0.0001013175964) (7.678420483e-06,1.208207916e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.220346979e-19,-0.001992977861) (-4.071571233e-20,-0.0006649380435) (-9.519357758e-23,-1.5546291e-06) (-2.012318902e-20,-0.0003286366164) (-1.106180755e-20,-0.0001806530268) (-3.946411489e-23,-6.444979061e-07) (-7.756022327e-21,-0.000126665457) (-4.194867521e-21,-6.850738554e-05) (1.031917882e-28,1.685249789e-12) (1.297911855e-21,2.119650916e-05) (-3.818073313e-21,-6.235386915e-05) (-7.459320172e-22,-1.218199431e-05) (1.203962702e-20,0.0001966220305) (2.327555054e-28,3.801185868e-12) (5.633514902e-22,9.200228026e-06) (-1.616233361e-21,-2.639509388e-05) (-3.34921727e-22,-5.469686888e-06) (5.077718074e-21,8.292542923e-05) -(0.009797209093,-0.01252253895) (0.0001352775989,-0.0001720764329) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066529063e-05,-9.410470306e-05) (-2.359706536e-05,-3.127293691e-05) (4.387402341e-08,6.654049715e-08) (-1.688103083e-05,2.559052231e-06) (2.630732538e-05,-8.149906239e-05) (-6.996738877e-09,-1.090448832e-08) (-6.809850101e-06,9.147635028e-07) (1.037086037e-05,-3.163887386e-05) (1.277241686e-07,-1.095458571e-07) (1.190464631e-06,-6.925705065e-07) (4.994272669e-08,-9.435060149e-08) (-5.917618579e-06,-9.670309564e-06) (1.311813275e-05,-1.18735078e-05) (5.477710269e-08,-4.634243047e-08) (5.3371327e-07,-3.228999473e-07) (6.456839713e-09,-1.205307766e-08) (-3.114819064e-06,-7.246997104e-06) (6.367735309e-06,-2.343888202e-06) -(0,0) (0,0) (0.003857191634,-0.004493720879) (-0.004084003867,0.004296263025) (-0.001221121616,-0.001514602922) (-0.0003467606725,0.0004471119472) (0.0004768721845,-0.0002974123369) (5.117821703e-05,8.052948788e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.082868203e-19,-0.001768457981) (-3.612886417e-20,-0.0005900291283) (2.79955416e-22,4.572018906e-06) (7.019492976e-21,0.0001146370199) (-9.824819643e-21,-0.0001604514812) (1.160038e-22,1.894485824e-06) (2.721106618e-21,4.443904348e-05) (-3.72526168e-21,-6.083814016e-05) (6.582813344e-29,1.075054982e-12) (-1.233299168e-21,-2.01413039e-05) (2.66394415e-21,4.350550953e-05) (-1.641427459e-21,-2.680654471e-05) (1.105415403e-20,0.0001805280354) (1.558154143e-28,2.544658825e-12) (-5.243805763e-22,-8.563784704e-06) (1.156984966e-21,1.889499841e-05) (-7.114537932e-22,-1.161892219e-05) (4.658580995e-21,7.608040128e-05) -(-0.001452915027,-0.001934841504) (-2.006151491e-05,-2.658730994e-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.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102218861,0.0001467820732) (3.680609003e-05,4.877871524e-05) (7.749268957e-11,-1.234450527e-08) (7.592165359e-06,-2.900225119e-05) (-9.070823891e-05,6.081782697e-05) (-1.374022387e-10,2.209615134e-09) (2.847890478e-06,-1.183752584e-05) (-3.448243963e-05,2.483414121e-05) (-2.136727955e-07,-4.780431033e-07) (9.020247465e-07,-6.296998309e-07) (-4.745396412e-09,3.494933306e-08) (1.141934101e-05,9.537598124e-06) (3.367313014e-06,-2.694271489e-05) (-9.937639531e-08,-2.217559561e-07) (3.923933097e-07,-2.861459769e-07) (-5.361964047e-10,3.635634409e-09) (7.730270253e-06,4.911977478e-06) (-1.642833793e-06,-1.240659803e-05) -(0,0) (0,0) (0.002095132464,-0.002440879632) (-0.002141393392,0.002252688674) (0.002304710561,0.002858618916) (-9.519383668e-05,0.000122742586) (8.496930534e-05,-5.299306708e-05) (-0.0002725464823,-0.0004288548901) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-8.520782733e-20,-0.001391549423) (-2.842877841e-20,-0.0004642771848) (-2.105890025e-22,-3.439179404e-06) (1.844046129e-20,0.0003011555872) (-7.753676866e-21,-0.0001266271528) (-8.722741452e-23,-1.424531785e-06) (7.132247821e-21,0.0001164784463) (-2.93994619e-21,-4.801296491e-05) (-3.381784437e-29,-5.522873215e-13) (-1.850417075e-21,-3.021960415e-05) (5.747678508e-22,9.386671343e-06) (2.407428833e-21,3.93162965e-05) (8.941057401e-21,0.0001460185485) (-9.920906001e-29,-1.62020691e-12) (-7.903437773e-22,-1.29072934e-05) (2.354231657e-22,3.844752069e-06) (1.064819005e-21,1.738981404e-05) (3.766841716e-21,6.151719366e-05) -(0.002266219146,0.003017915556) (3.129143023e-05,4.147019592e-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) -(3.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001327065152,-0.0001745137027) (4.851715854e-05,-6.442145611e-05) (3.908039962e-08,-3.834486981e-08) (1.932942431e-05,1.729246111e-05) (-6.848047015e-05,-0.0001088014399) (-7.092587578e-09,6.624120487e-09) (8.231308672e-06,7.562622352e-06) (-2.835623052e-05,-4.630338873e-05) (4.07856903e-08,-8.640263637e-08) (-1.347193042e-08,-2.792271182e-07) (5.384111767e-08,4.358286924e-08) (7.33275146e-06,-1.277834977e-05) (-1.19855963e-05,5.606818188e-06) (1.741350221e-08,-3.85101637e-08) (-6.558588093e-09,-1.283488743e-07) (7.797707409e-09,7.352564351e-09) (4.730267402e-06,-8.299157533e-06) (-7.080825041e-06,4.898049137e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004765059311,0.0006090575412) (0.0001591183097,0.0002024024033) (1.505948688e-07,1.483078638e-07) (6.701634024e-05,-5.351965943e-05) (-0.0002276337772,0.0003559525599) (-2.521795164e-08,-2.395281023e-08) (2.643075755e-05,-2.182075809e-05) (-8.728608923e-05,0.0001410599497) (1.991003576e-07,3.567464907e-07) (-7.52879461e-08,8.800275894e-07) (1.810855405e-07,-1.533743634e-07) (1.99852641e-05,3.443241085e-05) (-3.725192844e-05,-1.211361591e-05) (8.688868141e-08,1.596946002e-07) (-3.262471423e-08,3.970559893e-07) (2.605889361e-08,-2.439171093e-08) (1.290178026e-05,2.213742434e-05) (-2.135669564e-05,-1.179687873e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066529063e-05,9.410470306e-05) (-2.359706536e-05,3.127293691e-05) (4.387402341e-08,-6.654049715e-08) (-1.688103083e-05,-2.559052231e-06) (2.630732538e-05,8.149906239e-05) (-6.996738877e-09,1.090448832e-08) (-6.809850101e-06,-9.147635028e-07) (1.037086037e-05,3.163887386e-05) (1.277241686e-07,1.095458571e-07) (1.190464631e-06,6.925705065e-07) (4.994272669e-08,9.435060149e-08) (-5.917618579e-06,9.670309564e-06) (1.311813275e-05,1.18735078e-05) (5.477710269e-08,4.634243047e-08) (5.3371327e-07,3.228999473e-07) (6.456839713e-09,1.205307766e-08) (-3.114819064e-06,7.246997104e-06) (6.367735309e-06,2.343888202e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102218861,-0.0001467820732) (3.680609003e-05,-4.877871524e-05) (7.749268957e-11,1.234450527e-08) (7.592165359e-06,2.900225119e-05) (-9.070823891e-05,-6.081782697e-05) (-1.374022387e-10,-2.209615134e-09) (2.847890478e-06,1.183752584e-05) (-3.448243963e-05,-2.483414121e-05) (-2.136727955e-07,4.780431033e-07) (9.020247465e-07,6.296998309e-07) (-4.745396412e-09,-3.494933306e-08) (1.141934101e-05,-9.537598124e-06) (3.367313014e-06,2.694271489e-05) (-9.937639531e-08,2.217559561e-07) (3.923933097e-07,2.861459769e-07) (-5.361964047e-10,-3.635634409e-09) (7.730270253e-06,-4.911977478e-06) (-1.642833793e-06,1.240659803e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001826793698,0) (0.0006002970574,0) (1.965104462e-09,0) (7.180576195e-05,0) (0.0009239585328,0) (1.370612185e-10,0) (3.113274731e-05,0) (0.0003499053155,0) (5.489499012e-07,0) (1.165330489e-06,0) (4.156871775e-09,0) (3.817920955e-05,0) (0.0002139321324,0) (2.567758031e-07,0) (5.261866535e-07,0) (1.694959731e-10,0) (3.528461463e-05,0) (7.269268282e-05,0) -(0.0008962758408,-0.0007216036255) (0.0002707546108,-0.0002175005109) (0.0004485025223,0.0003849727706) (-7.433269291e-05,-7.066024671e-05) (-2.07529536e-05,1.673169902e-05) (0.0001768031636,0.0001371208806) (-1.898120746e-05,-3.04345474e-05) (-2.053206055e-05,1.304856493e-05) (1.058791184e-22,-2.117582368e-22) (0,8.470329473e-22) (3.906805075e-08,5.216157775e-08) (-4.602991095e-07,3.445422376e-07) (7.079367579e-06,-1.21941592e-05) (0,4.235164736e-22) (0,1.588186776e-22) (4.247145338e-08,4.624995928e-08) (-4.665722591e-07,4.279965122e-07) (3.972382466e-06,-7.57832127e-06) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.01185551768,-0.01472527812) (0.0002432999491,-0.0003028709346) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(6.891330961e-20,-0.001125439754) (2.687069149e-20,-0.0004388316943) (-1.840501662e-24,3.005767317e-08) (3.03210816e-22,-4.951808411e-06) (7.497527724e-21,-0.0001224439198) (-8.437348539e-25,1.377923585e-08) (1.188445594e-22,-1.940878945e-06) (3.14030017e-21,-5.128499371e-05) (-4.677845445e-29,7.639501451e-13) (3.689823716e-22,-6.025939427e-06) (3.569344632e-22,-5.829182152e-06) (1.767906195e-22,-2.887209922e-06) (-9.52283171e-21,0.000155519644) (-1.09776312e-28,1.792783234e-12) (1.65091158e-22,-2.696143216e-06) (1.546925817e-22,-2.526321579e-06) (8.103399463e-23,-1.323385562e-06) (-4.307999473e-21,7.035497053e-05) -(0.002728514783,-0.003588092242) (4.124782827e-05,-5.47691835e-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.00680829811,0.00793183079) (0.002972738273,0.003127241291) (-1.741607571e-05,2.160181166e-05) (-0.001067687343,-0.001376672169) (-0.0001624530577,-0.0001013175964) (7.678420483e-06,-1.208207916e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.220346979e-19,0.001992977861) (-4.071571233e-20,0.0006649380435) (-9.519357758e-23,1.5546291e-06) (-2.012318902e-20,0.0003286366164) (-1.106180755e-20,0.0001806530268) (-3.946411489e-23,6.444979061e-07) (-7.756022327e-21,0.000126665457) (-4.194867521e-21,6.850738554e-05) (1.031917885e-28,-1.685249799e-12) (1.297911855e-21,-2.119650916e-05) (-3.818073313e-21,6.235386915e-05) (-7.459320172e-22,1.218199431e-05) (1.203962702e-20,-0.0001966220305) (2.327555052e-28,-3.801185868e-12) (5.633514902e-22,-9.200228026e-06) (-1.616233361e-21,2.639509388e-05) (-3.34921727e-22,5.469686888e-06) (5.077718074e-21,-8.292542923e-05) -(0.009797209093,0.01252253895) (0.0001352775989,0.0001720764329) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.003857191634,0.004493720879) (-0.004084003867,-0.004296263025) (-0.001221121616,0.001514602922) (-0.0003467606725,-0.0004471119472) (0.0004768721845,0.0002974123369) (5.117821703e-05,-8.052948788e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.082868203e-19,0.001768457981) (-3.612886417e-20,0.0005900291283) (2.79955416e-22,-4.572018906e-06) (7.019492976e-21,-0.0001146370199) (-9.824819643e-21,0.0001604514812) (1.160038e-22,-1.894485824e-06) (2.721106618e-21,-4.443904348e-05) (-3.72526168e-21,6.083814016e-05) (6.582813372e-29,-1.075055003e-12) (-1.233299168e-21,2.01413039e-05) (2.66394415e-21,-4.350550953e-05) (-1.641427459e-21,2.680654471e-05) (1.105415403e-20,-0.0001805280354) (1.558154144e-28,-2.544658825e-12) (-5.243805763e-22,8.563784704e-06) (1.156984966e-21,-1.889499841e-05) (-7.114537932e-22,1.161892219e-05) (4.658580995e-21,-7.608040128e-05) -(-0.001452915027,0.001934841504) (-2.006151491e-05,2.658730994e-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.002095132464,0.002440879632) (-0.002141393392,-0.002252688674) (0.002304710561,-0.002858618916) (-9.519383668e-05,-0.000122742586) (8.496930534e-05,5.299306708e-05) (-0.0002725464823,0.0004288548901) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-8.520782733e-20,0.001391549423) (-2.842877841e-20,0.0004642771848) (-2.105890025e-22,3.439179404e-06) (1.844046129e-20,-0.0003011555872) (-7.753676866e-21,0.0001266271528) (-8.722741452e-23,1.424531785e-06) (7.132247821e-21,-0.0001164784463) (-2.93994619e-21,4.801296491e-05) (-3.38178455e-29,5.522873215e-13) (-1.850417075e-21,3.021960415e-05) (5.747678508e-22,-9.386671343e-06) (2.407428833e-21,-3.93162965e-05) (8.941057401e-21,-0.0001460185485) (-9.920905992e-29,1.620206905e-12) (-7.903437773e-22,1.29072934e-05) (2.354231657e-22,-3.844752069e-06) (1.064819005e-21,-1.738981404e-05) (3.766841716e-21,-6.151719366e-05) -(0.002266219146,-0.003017915556) (3.129143023e-05,-4.147019592e-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.0008962758408,0.0007216036255) (0.0002707546108,0.0002175005109) (0.0004485025223,-0.0003849727706) (-7.433269291e-05,7.066024671e-05) (-2.07529536e-05,-1.673169902e-05) (0.0001768031636,-0.0001371208806) (-1.898120746e-05,3.04345474e-05) (-2.053206055e-05,-1.304856493e-05) (5.29395592e-23,2.117582368e-22) (8.470329473e-22,1.270549421e-21) (3.906805075e-08,-5.216157775e-08) (-4.602991095e-07,-3.445422376e-07) (7.079367579e-06,1.21941592e-05) (0,0) (-5.29395592e-23,5.29395592e-23) (4.247145338e-08,-4.624995928e-08) (-4.665722591e-07,-4.279965122e-07) (3.972382466e-06,7.57832127e-06) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.03755982593,0) (0.0005103544948,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001826793698,0) (0.0006002970574,0) (1.620728594e-07,0) (0.0009764021137,0) (1.920207323e-05,0) (7.139568096e-08,0) (0.0003736251899,0) (7.341614299e-06,0) (1.408221806e-10,0) (0.0001432405297,0) (2.999254979e-05,0) (1.208173922e-05,0) (6.851481963e-05,0) (3.235752974e-10,0) (6.123534858e-05,0) (1.2769249e-05,0) (5.468987095e-06,0) (2.928652115e-05,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001326490017,0.000174489586) (4.844525649e-05,6.439091207e-05) (6.047823429e-08,4.38610843e-08) (1.935061596e-05,-1.735697813e-05) (-6.848147072e-05,0.000108827645) (1.72276957e-08,-9.896936904e-10) (8.253383063e-06,-7.63295705e-06) (-2.835696448e-05,4.633173232e-05) (3.734166284e-08,8.401514644e-08) (-1.112872302e-08,2.837791213e-07) (4.794241365e-08,-2.82248768e-08) (7.37274539e-06,1.280158102e-05) (-1.198943876e-05,-5.606486747e-06) (1.405665627e-08,3.610082274e-08) (-4.20758418e-09,1.329481362e-07) (1.941686087e-09,1.218766823e-08) (4.770509244e-06,8.322690094e-06) (-7.081714324e-06,-4.898121826e-06) -(-0.01868022377,0.002904540426) (-0.000383943898,5.926846935e-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.0009744993454,-0.0005624426242) (-0.0003798268544,-0.0002190477155) (2.518658667e-08,1.35667746e-08) (-4.289201235e-06,-2.477306051e-06) (-0.000106253811,-6.15930794e-05) (1.096295886e-08,5.209165893e-09) (-1.681703888e-06,-9.719176313e-07) (-4.465568577e-05,-2.606092289e-05) (-4.967451824e-15,-7.725540094e-13) (-5.224086891e-06,-3.022444491e-06) (-5.054232167e-06,-2.925004755e-06) (-2.487050512e-06,-1.420487926e-06) (0.000134648214,7.769790383e-05) (-9.947851394e-15,-1.810013425e-12) (-2.34059763e-06,-1.357890798e-06) (-2.194084223e-06,-1.273943772e-06) (-1.132368833e-06,-6.379347901e-07) (6.089187453e-05,3.511284993e-05) -(-0.004471636424,0.0005689169958) (-6.805541839e-05,8.337075384e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004764751701,-0.0006088397258) (0.0001590828571,-0.0002021555436) (1.733036041e-07,-2.305362207e-07) (6.723836949e-05,5.35532821e-05) (-0.000227710295,-0.0003559922244) (1.533006756e-10,-6.184276906e-08) (2.665366441e-05,2.185822977e-05) (-8.736239305e-05,-0.0001411009514) (1.993612067e-07,-3.388295066e-07) (-8.454043411e-08,-8.932957281e-07) (1.256257871e-07,1.433319495e-07) (1.998555148e-05,-3.455739491e-05) (-3.725956611e-05,1.212210243e-05) (8.733835427e-08,-1.419262769e-07) (-4.173949694e-08,-4.102207604e-07) (-4.010741777e-08,8.985439143e-09) (1.290229051e-05,-2.226246451e-05) (-2.135800108e-05,1.179904408e-05) -(0,0) (0,0) (0.003465017908,0.009862074515) (0.001221901265,0.004138087508) (2.741575551e-05,-4.281858168e-06) (-0.000658389399,-0.001612980447) (-6.517083487e-06,-0.0001913472731) (-1.430259772e-05,6.086676215e-07) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001725685994,0.0009959979592) (0.0005755311858,0.0003319112117) (1.302689012e-06,7.016944552e-07) (0.0002846613729,0.0001644113445) (0.0001567662371,9.087406085e-05) (5.127718333e-07,2.436489619e-07) (0.0001097511991,6.342919598e-05) (5.965184083e-05,3.481263354e-05) (1.095802797e-14,1.704229685e-12) (-1.837595731e-05,-1.063158253e-05) (5.406434779e-05,3.128832811e-05) (1.049360317e-05,5.993459534e-06) (-0.0001702344769,-9.823273271e-05) (2.109215377e-14,3.837718548e-12) (-7.986976277e-06,-4.633620685e-06) (2.292386667e-05,1.331020791e-05) (4.680195355e-06,2.636649256e-06) (-7.177154357e-05,-4.138653077e-05) -(0.005946232303,0.01474590143) (8.138376281e-05,0.0002031920537) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.063449762e-05,-9.409157107e-05) (-2.356212347e-05,-3.12581312e-05) (7.263729295e-08,8.094457849e-08) (-1.691595917e-05,2.586955157e-06) (2.630366042e-05,-8.151614295e-05) (2.261536651e-08,4.388760143e-09) (-6.845726943e-06,9.424430129e-07) (1.036728962e-05,-3.165588977e-05) (1.252750369e-07,-1.025838514e-07) (1.203003967e-06,-7.144559798e-07) (5.087460052e-08,-6.90134598e-08) (-5.948886471e-06,-9.687312091e-06) (1.311971363e-05,-1.187841661e-05) (5.240460784e-08,-3.974106755e-08) (5.458013438e-07,-3.448646441e-07) (7.284313775e-09,1.39590917e-08) (-3.145666228e-06,-7.270024704e-06) (6.368185347e-06,-2.344428509e-06) -(0,0) (0,0) (0.001963080621,0.005587286382) (-0.001678670988,-0.00568498261) (0.001922245415,-0.0003002208795) (-0.0002138299683,-0.000523859525) (1.91305469e-05,0.0005616895946) (-9.532969078e-05,4.056892131e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001531278008,0.0008837933299) (0.0005106944431,0.0002945195944) (-3.83108665e-06,-2.06361782e-06) (-9.92973085e-05,-5.735096345e-05) (0.0001392358346,8.071205851e-05) (-1.507280257e-06,-7.162001615e-07) (-3.850488067e-05,-2.225336618e-05) (5.297395345e-05,3.09154387e-05) (6.990356238e-15,1.087162646e-12) (1.746116485e-05,1.010232077e-05) (-3.772174895e-05,-2.183047621e-05) (2.309123082e-05,1.318864029e-05) (-0.0001563003677,-9.019214275e-05) (1.411989693e-14,2.569115197e-12) (7.43446196e-06,4.313081137e-06) (-1.641011115e-05,-9.528147863e-06) (9.941853483e-06,5.600873168e-06) (-6.584720617e-05,-3.797030534e-05) -(0.002402079409,-0.0002908405711) (3.305604328e-05,-4.080126584e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001101738559,0.0001467615902) (3.675158859e-05,4.875562168e-05) (-2.386560097e-09,-1.667492243e-08) (7.57141208e-06,-2.907795468e-05) (-9.071806017e-05,6.083782248e-05) (-2.673281347e-09,-2.889555513e-09) (2.825122266e-06,-1.191452442e-05) (-3.44915496e-05,2.485437525e-05) (-1.950730865e-07,-4.645709439e-07) (9.105650296e-07,-6.47946915e-07) (-7.919630973e-09,2.719730633e-08) (1.146535848e-05,9.545603901e-06) (3.364236539e-06,-2.695000642e-05) (-8.012237157e-08,-2.078382162e-07) (4.003010409e-07,-3.039914162e-07) (-3.112267294e-09,-2.867364409e-09) (7.774926089e-06,4.913874676e-06) (-1.643624091e-06,-1.240762636e-05) -(0,0) (0,0) (0.001066297537,0.003034877754) (-0.0008801889221,-0.002980845414) (-0.003627991882,0.0005666284362) (-5.870127928e-05,-0.0001438115739) (3.408689652e-06,0.0001000821105) (0.0005076724705,-2.160473231e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00120491923,0.0006954319024) (0.0004018509714,0.0002317491148) (2.881832856e-06,1.552301522e-06) (-0.0002608576118,-0.00015066305) (0.0001098839173,6.369737497e-05) (1.133378042e-06,5.385365682e-07) (-0.0001009245097,-5.832793225e-05) (4.180661279e-05,2.439821253e-05) (-3.591148646e-15,-5.585073758e-13) (2.619837783e-05,1.515731732e-05) (-8.13877745e-06,-4.710104711e-06) (-3.386716518e-05,-1.93433543e-05) (-0.0001264222079,-7.295113883e-05) (-8.990260318e-15,-1.635778493e-12) (1.120518382e-05,6.500654279e-06) (-3.3391275e-06,-1.938786414e-06) (-1.487977805e-05,-8.382717544e-06) (-5.324282293e-05,-3.070208079e-05) -(-0.003746701111,0.0004536455734) (-5.155995828e-05,6.364075539e-06) (0,0) (0,0) (0,0) (0,0) (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.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001326490017,-0.000174489586) (4.844525649e-05,-6.439091207e-05) (6.047823429e-08,-4.38610843e-08) (1.935061596e-05,1.735697813e-05) (-6.848147072e-05,-0.000108827645) (1.72276957e-08,9.896936904e-10) (8.253383063e-06,7.63295705e-06) (-2.835696448e-05,-4.633173232e-05) (3.734166284e-08,-8.401514644e-08) (-1.112872302e-08,-2.837791213e-07) (4.794241365e-08,2.82248768e-08) (7.37274539e-06,-1.280158102e-05) (-1.198943876e-05,5.606486747e-06) (1.405665627e-08,-3.610082274e-08) (-4.20758418e-09,-1.329481362e-07) (1.941686087e-09,-1.218766823e-08) (4.770509244e-06,-8.322690094e-06) (-7.081714324e-06,4.898121826e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004764751701,0.0006088397258) (0.0001590828571,0.0002021555436) (1.733036041e-07,2.305362207e-07) (6.723836949e-05,-5.35532821e-05) (-0.000227710295,0.0003559922244) (1.533006756e-10,6.184276906e-08) (2.665366441e-05,-2.185822977e-05) (-8.736239305e-05,0.0001411009514) (1.993612067e-07,3.388295066e-07) (-8.454043411e-08,8.932957281e-07) (1.256257871e-07,-1.433319495e-07) (1.998555148e-05,3.455739491e-05) (-3.725956611e-05,-1.212210243e-05) (8.733835427e-08,1.419262769e-07) (-4.173949694e-08,4.102207604e-07) (-4.010741777e-08,-8.985439143e-09) (1.290229051e-05,2.226246451e-05) (-2.135800108e-05,-1.179904408e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.063449762e-05,9.409157107e-05) (-2.356212347e-05,3.12581312e-05) (7.263729295e-08,-8.094457849e-08) (-1.691595917e-05,-2.586955157e-06) (2.630366042e-05,8.151614295e-05) (2.261536651e-08,-4.388760143e-09) (-6.845726943e-06,-9.424430129e-07) (1.036728962e-05,3.165588977e-05) (1.252750369e-07,1.025838514e-07) (1.203003967e-06,7.144559798e-07) (5.087460052e-08,6.90134598e-08) (-5.948886471e-06,9.687312091e-06) (1.311971363e-05,1.187841661e-05) (5.240460784e-08,3.974106755e-08) (5.458013438e-07,3.448646441e-07) (7.284313775e-09,-1.39590917e-08) (-3.145666228e-06,7.270024704e-06) (6.368185347e-06,2.344428509e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001101738559,-0.0001467615902) (3.675158859e-05,-4.875562168e-05) (-2.386560097e-09,1.667492243e-08) (7.57141208e-06,2.907795468e-05) (-9.071806017e-05,-6.083782248e-05) (-2.673281347e-09,2.889555513e-09) (2.825122266e-06,1.191452442e-05) (-3.44915496e-05,-2.485437525e-05) (-1.950730865e-07,4.645709439e-07) (9.105650296e-07,6.47946915e-07) (-7.919630973e-09,-2.719730633e-08) (1.146535848e-05,-9.545603901e-06) (3.364236539e-06,2.695000642e-05) (-8.012237157e-08,2.078382162e-07) (4.003010409e-07,3.039914162e-07) (-3.112267294e-09,2.867364409e-09) (7.774926089e-06,-4.913874676e-06) (-1.643624091e-06,1.240762636e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001825893782,0) (0.0005992904539,0) (3.658937916e-09,0) (7.213190051e-05,0) (0.000924285019,0) (4.333350524e-10,0) (3.148971931e-05,0) (0.0003502218878,0) (5.083032083e-07,-5.169878828e-25) (1.20268645e-06,8.271806126e-25) (2.681350595e-09,-4.135903063e-25) (3.838718635e-05,-8.142559155e-25) (0.0002140401507,1.654361225e-24) (2.157489251e-07,5.169878828e-25) (5.636667834e-07,1.447566072e-24) (2.247504057e-10,1.240770919e-24) (3.5583701e-05,2.067951531e-25) (7.270573157e-05,4.963083675e-24) -(0.0001767891508,0.00113699946) (5.29836624e-05,0.0003432306266) (-0.0005576474602,0.0001959281927) (9.835991514e-05,-2.904387704e-05) (-4.113599605e-06,-2.633843453e-05) (-0.0002071517478,8.455559087e-05) (3.584769493e-05,-1.220934152e-06) (-1.034358433e-06,-2.43055685e-05) (1.058791184e-22,1.058791184e-22) (-1.694065895e-21,0) (-6.47072768e-08,7.753135549e-09) (-6.823277566e-08,-5.70901841e-07) (7.020767858e-06,1.222799177e-05) (-4.235164736e-22,-2.117582368e-22) (5.29395592e-23,-1.058791184e-22) (-6.128936635e-08,1.365637793e-08) (-1.373697228e-07,-6.180616852e-07) (4.576827505e-06,7.229344764e-06) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01868022377,-0.002904540426) (-0.000383943898,-5.926846935e-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.0009744993454,0.0005624426242) (-0.0003798268544,0.0002190477155) (2.518658667e-08,-1.35667746e-08) (-4.289201235e-06,2.477306051e-06) (-0.000106253811,6.15930794e-05) (1.096295886e-08,-5.209165893e-09) (-1.681703888e-06,9.719176313e-07) (-4.465568577e-05,2.606092289e-05) (-4.967445048e-15,7.725540161e-13) (-5.224086891e-06,3.022444491e-06) (-5.054232167e-06,2.925004755e-06) (-2.487050512e-06,1.420487926e-06) (0.000134648214,-7.769790383e-05) (-9.947856476e-15,1.810013423e-12) (-2.34059763e-06,1.357890798e-06) (-2.194084223e-06,1.273943772e-06) (-1.132368833e-06,6.379347901e-07) (6.089187453e-05,-3.511284993e-05) -(-0.004471636424,-0.0005689169958) (-6.805541839e-05,-8.337075384e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.003465017908,-0.009862074515) (0.001221901265,-0.004138087508) (2.741575551e-05,4.281858168e-06) (-0.000658389399,0.001612980447) (-6.517083487e-06,0.0001913472731) (-1.430259772e-05,-6.086676215e-07) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001725685994,-0.0009959979592) (0.0005755311858,-0.0003319112117) (1.302689012e-06,-7.016944552e-07) (0.0002846613729,-0.0001644113445) (0.0001567662371,-9.087406085e-05) (5.127718333e-07,-2.436489619e-07) (0.0001097511991,-6.342919598e-05) (5.965184083e-05,-3.481263354e-05) (1.095802458e-14,-1.704229678e-12) (-1.837595731e-05,1.063158253e-05) (5.406434779e-05,-3.128832811e-05) (1.049360317e-05,-5.993459534e-06) (-0.0001702344769,9.823273271e-05) (2.109215207e-14,-3.837718549e-12) (-7.986976277e-06,4.633620685e-06) (2.292386667e-05,-1.331020791e-05) (4.680195355e-06,-2.636649256e-06) (-7.177154357e-05,4.138653077e-05) -(0.005946232303,-0.01474590143) (8.138376281e-05,-0.0002031920537) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.001963080621,-0.005587286382) (-0.001678670988,0.00568498261) (0.001922245415,0.0003002208795) (-0.0002138299683,0.000523859525) (1.91305469e-05,-0.0005616895946) (-9.532969078e-05,-4.056892131e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001531278008,-0.0008837933299) (0.0005106944431,-0.0002945195944) (-3.83108665e-06,2.06361782e-06) (-9.92973085e-05,5.735096345e-05) (0.0001392358346,-8.071205851e-05) (-1.507280257e-06,7.162001615e-07) (-3.850488067e-05,2.225336618e-05) (5.297395345e-05,-3.09154387e-05) (6.990363014e-15,-1.087162644e-12) (1.746116485e-05,-1.010232077e-05) (-3.772174895e-05,2.183047621e-05) (2.309123082e-05,-1.318864029e-05) (-0.0001563003677,9.019214275e-05) (1.41198982e-14,-2.569115197e-12) (7.43446196e-06,-4.313081137e-06) (-1.641011115e-05,9.528147863e-06) (9.941853483e-06,-5.600873168e-06) (-6.584720617e-05,3.797030534e-05) -(0.002402079409,0.0002908405711) (3.305604328e-05,4.080126584e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.001066297537,-0.003034877754) (-0.0008801889221,0.002980845414) (-0.003627991882,-0.0005666284362) (-5.870127928e-05,0.0001438115739) (3.408689652e-06,-0.0001000821105) (0.0005076724705,2.160473231e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00120491923,-0.0006954319024) (0.0004018509714,-0.0002317491148) (2.881832856e-06,-1.552301522e-06) (-0.0002608576118,0.00015066305) (0.0001098839173,-6.369737497e-05) (1.133378042e-06,-5.385365682e-07) (-0.0001009245097,5.832793225e-05) (4.180661279e-05,-2.439821253e-05) (-3.591148646e-15,5.585073826e-13) (2.619837783e-05,-1.515731732e-05) (-8.13877745e-06,4.710104711e-06) (-3.386716518e-05,1.93433543e-05) (-0.0001264222079,7.295113883e-05) (-8.990262012e-15,1.635778493e-12) (1.120518382e-05,-6.500654279e-06) (-3.3391275e-06,1.938786414e-06) (-1.487977805e-05,8.382717544e-06) (-5.324282293e-05,3.070208079e-05) -(-0.003746701111,-0.0004536455734) (-5.155995828e-05,-6.364075539e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001767891508,-0.00113699946) (5.29836624e-05,-0.0003432306266) (-0.0005576474602,-0.0001959281927) (9.835991514e-05,2.904387704e-05) (-4.113599605e-06,2.633843453e-05) (-0.0002071517478,-8.455559087e-05) (3.584769493e-05,1.220934152e-06) (-1.034358433e-06,2.43055685e-05) (0,-1.058791184e-22) (0,0) (-6.47072768e-08,-7.753135549e-09) (-6.823277566e-08,5.70901841e-07) (7.020767858e-06,-1.222799177e-05) (4.235164736e-22,6.352747104e-22) (1.058791184e-22,1.058791184e-22) (-6.128936635e-08,-1.365637793e-08) (-1.373697228e-07,6.180616852e-07) (4.576827505e-06,-7.229344764e-06) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001825893782,0) (0.0005992904539,0) (1.468170926e-07,0) (0.0009769550525,0) (1.931870888e-05,0) (5.539734027e-08,0) (0.0003741945791,0) (7.462064015e-06,0) (1.440179744e-10,8.271806126e-25) (0.0001436914452,3.30872245e-24) (3.009983921e-05,-4.135903063e-25) (1.188930211e-05,1.240770919e-24) (6.846027751e-05,5.790264288e-24) (3.298348251e-10,0) (6.168246237e-05,-8.271806126e-25) (1.287856398e-05,0) (5.274973976e-06,-2.481541838e-24) (2.923274287e-05,8.271806126e-25) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001326490017,0.000174489586) (4.844525649e-05,6.439091207e-05) (6.047823429e-08,4.38610843e-08) (1.935061596e-05,-1.735697813e-05) (-6.848147072e-05,0.000108827645) (1.72276957e-08,-9.896936904e-10) (8.253383063e-06,-7.63295705e-06) (-2.835696448e-05,4.633173232e-05) (3.734166284e-08,8.401514644e-08) (-1.112872302e-08,2.837791213e-07) (4.794241365e-08,-2.82248768e-08) (7.37274539e-06,1.280158102e-05) (-1.198943876e-05,-5.606486747e-06) (1.405665627e-08,3.610082274e-08) (-4.20758418e-09,1.329481362e-07) (1.941686087e-09,1.218766823e-08) (4.770509244e-06,8.322690094e-06) (-7.081714324e-06,-4.898121826e-06) -(-0.01868022377,0.002904540426) (-0.000383943898,5.926846935e-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.0009744993454,-0.0005624426242) (-0.0003798268544,-0.0002190477155) (2.518658667e-08,1.35667746e-08) (-4.289201235e-06,-2.477306051e-06) (-0.000106253811,-6.15930794e-05) (1.096295886e-08,5.209165893e-09) (-1.681703888e-06,-9.719176313e-07) (-4.465568577e-05,-2.606092289e-05) (-4.967451824e-15,-7.725540094e-13) (-5.224086891e-06,-3.022444491e-06) (-5.054232167e-06,-2.925004755e-06) (-2.487050512e-06,-1.420487926e-06) (0.000134648214,7.769790383e-05) (-9.947851394e-15,-1.810013425e-12) (-2.34059763e-06,-1.357890798e-06) (-2.194084223e-06,-1.273943772e-06) (-1.132368833e-06,-6.379347901e-07) (6.089187453e-05,3.511284993e-05) -(-0.004471636424,0.0005689169958) (-6.805541839e-05,8.337075384e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004764751701,-0.0006088397258) (0.0001590828571,-0.0002021555436) (1.733036041e-07,-2.305362207e-07) (6.723836949e-05,5.35532821e-05) (-0.000227710295,-0.0003559922244) (1.533006756e-10,-6.184276906e-08) (2.665366441e-05,2.185822977e-05) (-8.736239305e-05,-0.0001411009514) (1.993612067e-07,-3.388295066e-07) (-8.454043411e-08,-8.932957281e-07) (1.256257871e-07,1.433319495e-07) (1.998555148e-05,-3.455739491e-05) (-3.725956611e-05,1.212210243e-05) (8.733835427e-08,-1.419262769e-07) (-4.173949694e-08,-4.102207604e-07) (-4.010741777e-08,8.985439143e-09) (1.290229051e-05,-2.226246451e-05) (-2.135800108e-05,1.179904408e-05) -(0,0) (0,0) (0.003465017908,0.009862074515) (0.001221901265,0.004138087508) (2.741575551e-05,-4.281858168e-06) (-0.000658389399,-0.001612980447) (-6.517083487e-06,-0.0001913472731) (-1.430259772e-05,6.086676215e-07) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001725685994,0.0009959979592) (0.0005755311858,0.0003319112117) (1.302689012e-06,7.016944552e-07) (0.0002846613729,0.0001644113445) (0.0001567662371,9.087406085e-05) (5.127718333e-07,2.436489619e-07) (0.0001097511991,6.342919598e-05) (5.965184083e-05,3.481263354e-05) (1.095802797e-14,1.704229685e-12) (-1.837595731e-05,-1.063158253e-05) (5.406434779e-05,3.128832811e-05) (1.049360317e-05,5.993459534e-06) (-0.0001702344769,-9.823273271e-05) (2.109215377e-14,3.837718548e-12) (-7.986976277e-06,-4.633620685e-06) (2.292386667e-05,1.331020791e-05) (4.680195355e-06,2.636649256e-06) (-7.177154357e-05,-4.138653077e-05) -(0.005946232303,0.01474590143) (8.138376281e-05,0.0002031920537) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.063449762e-05,-9.409157107e-05) (-2.356212347e-05,-3.12581312e-05) (7.263729295e-08,8.094457849e-08) (-1.691595917e-05,2.586955157e-06) (2.630366042e-05,-8.151614295e-05) (2.261536651e-08,4.388760143e-09) (-6.845726943e-06,9.424430129e-07) (1.036728962e-05,-3.165588977e-05) (1.252750369e-07,-1.025838514e-07) (1.203003967e-06,-7.144559798e-07) (5.087460052e-08,-6.90134598e-08) (-5.948886471e-06,-9.687312091e-06) (1.311971363e-05,-1.187841661e-05) (5.240460784e-08,-3.974106755e-08) (5.458013438e-07,-3.448646441e-07) (7.284313775e-09,1.39590917e-08) (-3.145666228e-06,-7.270024704e-06) (6.368185347e-06,-2.344428509e-06) -(0,0) (0,0) (0.001963080621,0.005587286382) (-0.001678670988,-0.00568498261) (0.001922245415,-0.0003002208795) (-0.0002138299683,-0.000523859525) (1.91305469e-05,0.0005616895946) (-9.532969078e-05,4.056892131e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001531278008,0.0008837933299) (0.0005106944431,0.0002945195944) (-3.83108665e-06,-2.06361782e-06) (-9.92973085e-05,-5.735096345e-05) (0.0001392358346,8.071205851e-05) (-1.507280257e-06,-7.162001615e-07) (-3.850488067e-05,-2.225336618e-05) (5.297395345e-05,3.09154387e-05) (6.990356238e-15,1.087162646e-12) (1.746116485e-05,1.010232077e-05) (-3.772174895e-05,-2.183047621e-05) (2.309123082e-05,1.318864029e-05) (-0.0001563003677,-9.019214275e-05) (1.411989693e-14,2.569115197e-12) (7.43446196e-06,4.313081137e-06) (-1.641011115e-05,-9.528147863e-06) (9.941853483e-06,5.600873168e-06) (-6.584720617e-05,-3.797030534e-05) -(0.002402079409,-0.0002908405711) (3.305604328e-05,-4.080126584e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001101738559,0.0001467615902) (3.675158859e-05,4.875562168e-05) (-2.386560097e-09,-1.667492243e-08) (7.57141208e-06,-2.907795468e-05) (-9.071806017e-05,6.083782248e-05) (-2.673281347e-09,-2.889555513e-09) (2.825122266e-06,-1.191452442e-05) (-3.44915496e-05,2.485437525e-05) (-1.950730865e-07,-4.645709439e-07) (9.105650296e-07,-6.47946915e-07) (-7.919630973e-09,2.719730633e-08) (1.146535848e-05,9.545603901e-06) (3.364236539e-06,-2.695000642e-05) (-8.012237157e-08,-2.078382162e-07) (4.003010409e-07,-3.039914162e-07) (-3.112267294e-09,-2.867364409e-09) (7.774926089e-06,4.913874676e-06) (-1.643624091e-06,-1.240762636e-05) -(0,0) (0,0) (0.001066297537,0.003034877754) (-0.0008801889221,-0.002980845414) (-0.003627991882,0.0005666284362) (-5.870127928e-05,-0.0001438115739) (3.408689652e-06,0.0001000821105) (0.0005076724705,-2.160473231e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00120491923,0.0006954319024) (0.0004018509714,0.0002317491148) (2.881832856e-06,1.552301522e-06) (-0.0002608576118,-0.00015066305) (0.0001098839173,6.369737497e-05) (1.133378042e-06,5.385365682e-07) (-0.0001009245097,-5.832793225e-05) (4.180661279e-05,2.439821253e-05) (-3.591148646e-15,-5.585073758e-13) (2.619837783e-05,1.515731732e-05) (-8.13877745e-06,-4.710104711e-06) (-3.386716518e-05,-1.93433543e-05) (-0.0001264222079,-7.295113883e-05) (-8.990260318e-15,-1.635778493e-12) (1.120518382e-05,6.500654279e-06) (-3.3391275e-06,-1.938786414e-06) (-1.487977805e-05,-8.382717544e-06) (-5.324282293e-05,-3.070208079e-05) -(-0.003746701111,0.0004536455734) (-5.155995828e-05,6.364075539e-06) (0,0) (0,0) (0,0) (0,0) (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.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001326490017,-0.000174489586) (4.844525649e-05,-6.439091207e-05) (6.047823429e-08,-4.38610843e-08) (1.935061596e-05,1.735697813e-05) (-6.848147072e-05,-0.000108827645) (1.72276957e-08,9.896936904e-10) (8.253383063e-06,7.63295705e-06) (-2.835696448e-05,-4.633173232e-05) (3.734166284e-08,-8.401514644e-08) (-1.112872302e-08,-2.837791213e-07) (4.794241365e-08,2.82248768e-08) (7.37274539e-06,-1.280158102e-05) (-1.198943876e-05,5.606486747e-06) (1.405665627e-08,-3.610082274e-08) (-4.20758418e-09,-1.329481362e-07) (1.941686087e-09,-1.218766823e-08) (4.770509244e-06,-8.322690094e-06) (-7.081714324e-06,4.898121826e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004764751701,0.0006088397258) (0.0001590828571,0.0002021555436) (1.733036041e-07,2.305362207e-07) (6.723836949e-05,-5.35532821e-05) (-0.000227710295,0.0003559922244) (1.533006756e-10,6.184276906e-08) (2.665366441e-05,-2.185822977e-05) (-8.736239305e-05,0.0001411009514) (1.993612067e-07,3.388295066e-07) (-8.454043411e-08,8.932957281e-07) (1.256257871e-07,-1.433319495e-07) (1.998555148e-05,3.455739491e-05) (-3.725956611e-05,-1.212210243e-05) (8.733835427e-08,1.419262769e-07) (-4.173949694e-08,4.102207604e-07) (-4.010741777e-08,-8.985439143e-09) (1.290229051e-05,2.226246451e-05) (-2.135800108e-05,-1.179904408e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.063449762e-05,9.409157107e-05) (-2.356212347e-05,3.12581312e-05) (7.263729295e-08,-8.094457849e-08) (-1.691595917e-05,-2.586955157e-06) (2.630366042e-05,8.151614295e-05) (2.261536651e-08,-4.388760143e-09) (-6.845726943e-06,-9.424430129e-07) (1.036728962e-05,3.165588977e-05) (1.252750369e-07,1.025838514e-07) (1.203003967e-06,7.144559798e-07) (5.087460052e-08,6.90134598e-08) (-5.948886471e-06,9.687312091e-06) (1.311971363e-05,1.187841661e-05) (5.240460784e-08,3.974106755e-08) (5.458013438e-07,3.448646441e-07) (7.284313775e-09,-1.39590917e-08) (-3.145666228e-06,7.270024704e-06) (6.368185347e-06,2.344428509e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001101738559,-0.0001467615902) (3.675158859e-05,-4.875562168e-05) (-2.386560097e-09,1.667492243e-08) (7.57141208e-06,2.907795468e-05) (-9.071806017e-05,-6.083782248e-05) (-2.673281347e-09,2.889555513e-09) (2.825122266e-06,1.191452442e-05) (-3.44915496e-05,-2.485437525e-05) (-1.950730865e-07,4.645709439e-07) (9.105650296e-07,6.47946915e-07) (-7.919630973e-09,-2.719730633e-08) (1.146535848e-05,-9.545603901e-06) (3.364236539e-06,2.695000642e-05) (-8.012237157e-08,2.078382162e-07) (4.003010409e-07,3.039914162e-07) (-3.112267294e-09,2.867364409e-09) (7.774926089e-06,-4.913874676e-06) (-1.643624091e-06,1.240762636e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001825893782,0) (0.0005992904539,0) (3.658937916e-09,0) (7.213190051e-05,0) (0.000924285019,0) (4.333350524e-10,0) (3.148971931e-05,0) (0.0003502218878,0) (5.083032083e-07,-5.169878828e-25) (1.20268645e-06,8.271806126e-25) (2.681350595e-09,-4.135903063e-25) (3.838718635e-05,-8.142559155e-25) (0.0002140401507,1.654361225e-24) (2.157489251e-07,5.169878828e-25) (5.636667834e-07,1.447566072e-24) (2.247504057e-10,1.240770919e-24) (3.5583701e-05,2.067951531e-25) (7.270573157e-05,4.963083675e-24) -(0.0001767891508,0.00113699946) (5.29836624e-05,0.0003432306266) (-0.0005576474602,0.0001959281927) (9.835991514e-05,-2.904387704e-05) (-4.113599605e-06,-2.633843453e-05) (-0.0002071517478,8.455559087e-05) (3.584769493e-05,-1.220934152e-06) (-1.034358433e-06,-2.43055685e-05) (1.058791184e-22,1.058791184e-22) (-1.694065895e-21,0) (-6.47072768e-08,7.753135549e-09) (-6.823277566e-08,-5.70901841e-07) (7.020767858e-06,1.222799177e-05) (-4.235164736e-22,-2.117582368e-22) (5.29395592e-23,-1.058791184e-22) (-6.128936635e-08,1.365637793e-08) (-1.373697228e-07,-6.180616852e-07) (4.576827505e-06,7.229344764e-06) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01868022377,-0.002904540426) (-0.000383943898,-5.926846935e-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.0009744993454,0.0005624426242) (-0.0003798268544,0.0002190477155) (2.518658667e-08,-1.35667746e-08) (-4.289201235e-06,2.477306051e-06) (-0.000106253811,6.15930794e-05) (1.096295886e-08,-5.209165893e-09) (-1.681703888e-06,9.719176313e-07) (-4.465568577e-05,2.606092289e-05) (-4.967445048e-15,7.725540161e-13) (-5.224086891e-06,3.022444491e-06) (-5.054232167e-06,2.925004755e-06) (-2.487050512e-06,1.420487926e-06) (0.000134648214,-7.769790383e-05) (-9.947856476e-15,1.810013423e-12) (-2.34059763e-06,1.357890798e-06) (-2.194084223e-06,1.273943772e-06) (-1.132368833e-06,6.379347901e-07) (6.089187453e-05,-3.511284993e-05) -(-0.004471636424,-0.0005689169958) (-6.805541839e-05,-8.337075384e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.003465017908,-0.009862074515) (0.001221901265,-0.004138087508) (2.741575551e-05,4.281858168e-06) (-0.000658389399,0.001612980447) (-6.517083487e-06,0.0001913472731) (-1.430259772e-05,-6.086676215e-07) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001725685994,-0.0009959979592) (0.0005755311858,-0.0003319112117) (1.302689012e-06,-7.016944552e-07) (0.0002846613729,-0.0001644113445) (0.0001567662371,-9.087406085e-05) (5.127718333e-07,-2.436489619e-07) (0.0001097511991,-6.342919598e-05) (5.965184083e-05,-3.481263354e-05) (1.095802458e-14,-1.704229678e-12) (-1.837595731e-05,1.063158253e-05) (5.406434779e-05,-3.128832811e-05) (1.049360317e-05,-5.993459534e-06) (-0.0001702344769,9.823273271e-05) (2.109215207e-14,-3.837718549e-12) (-7.986976277e-06,4.633620685e-06) (2.292386667e-05,-1.331020791e-05) (4.680195355e-06,-2.636649256e-06) (-7.177154357e-05,4.138653077e-05) -(0.005946232303,-0.01474590143) (8.138376281e-05,-0.0002031920537) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.001963080621,-0.005587286382) (-0.001678670988,0.00568498261) (0.001922245415,0.0003002208795) (-0.0002138299683,0.000523859525) (1.91305469e-05,-0.0005616895946) (-9.532969078e-05,-4.056892131e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001531278008,-0.0008837933299) (0.0005106944431,-0.0002945195944) (-3.83108665e-06,2.06361782e-06) (-9.92973085e-05,5.735096345e-05) (0.0001392358346,-8.071205851e-05) (-1.507280257e-06,7.162001615e-07) (-3.850488067e-05,2.225336618e-05) (5.297395345e-05,-3.09154387e-05) (6.990363014e-15,-1.087162644e-12) (1.746116485e-05,-1.010232077e-05) (-3.772174895e-05,2.183047621e-05) (2.309123082e-05,-1.318864029e-05) (-0.0001563003677,9.019214275e-05) (1.41198982e-14,-2.569115197e-12) (7.43446196e-06,-4.313081137e-06) (-1.641011115e-05,9.528147863e-06) (9.941853483e-06,-5.600873168e-06) (-6.584720617e-05,3.797030534e-05) -(0.002402079409,0.0002908405711) (3.305604328e-05,4.080126584e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.001066297537,-0.003034877754) (-0.0008801889221,0.002980845414) (-0.003627991882,-0.0005666284362) (-5.870127928e-05,0.0001438115739) (3.408689652e-06,-0.0001000821105) (0.0005076724705,2.160473231e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00120491923,-0.0006954319024) (0.0004018509714,-0.0002317491148) (2.881832856e-06,-1.552301522e-06) (-0.0002608576118,0.00015066305) (0.0001098839173,-6.369737497e-05) (1.133378042e-06,-5.385365682e-07) (-0.0001009245097,5.832793225e-05) (4.180661279e-05,-2.439821253e-05) (-3.591148646e-15,5.585073826e-13) (2.619837783e-05,-1.515731732e-05) (-8.13877745e-06,4.710104711e-06) (-3.386716518e-05,1.93433543e-05) (-0.0001264222079,7.295113883e-05) (-8.990262012e-15,1.635778493e-12) (1.120518382e-05,-6.500654279e-06) (-3.3391275e-06,1.938786414e-06) (-1.487977805e-05,8.382717544e-06) (-5.324282293e-05,3.070208079e-05) -(-0.003746701111,-0.0004536455734) (-5.155995828e-05,-6.364075539e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001767891508,-0.00113699946) (5.29836624e-05,-0.0003432306266) (-0.0005576474602,-0.0001959281927) (9.835991514e-05,2.904387704e-05) (-4.113599605e-06,2.633843453e-05) (-0.0002071517478,-8.455559087e-05) (3.584769493e-05,1.220934152e-06) (-1.034358433e-06,2.43055685e-05) (0,-1.058791184e-22) (0,0) (-6.47072768e-08,-7.753135549e-09) (-6.823277566e-08,5.70901841e-07) (7.020767858e-06,-1.222799177e-05) (4.235164736e-22,6.352747104e-22) (1.058791184e-22,1.058791184e-22) (-6.128936635e-08,-1.365637793e-08) (-1.373697228e-07,6.180616852e-07) (4.576827505e-06,-7.229344764e-06) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001825893782,0) (0.0005992904539,0) (1.468170926e-07,0) (0.0009769550525,0) (1.931870888e-05,0) (5.539734027e-08,0) (0.0003741945791,0) (7.462064015e-06,0) (1.440179744e-10,8.271806126e-25) (0.0001436914452,3.30872245e-24) (3.009983921e-05,-4.135903063e-25) (1.188930211e-05,1.240770919e-24) (6.846027751e-05,5.790264288e-24) (3.298348251e-10,0) (6.168246237e-05,-8.271806126e-25) (1.287856398e-05,0) (5.274973976e-06,-2.481541838e-24) (2.923274287e-05,8.271806126e-25) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001326490017,0.000174489586) (4.844525649e-05,6.439091207e-05) (6.047823429e-08,4.38610843e-08) (1.935061596e-05,-1.735697813e-05) (-6.848147072e-05,0.000108827645) (1.72276957e-08,-9.896936904e-10) (8.253383063e-06,-7.63295705e-06) (-2.835696448e-05,4.633173232e-05) (3.734166284e-08,8.401514644e-08) (-1.112872302e-08,2.837791213e-07) (4.794241365e-08,-2.82248768e-08) (7.37274539e-06,1.280158102e-05) (-1.198943876e-05,-5.606486747e-06) (1.405665627e-08,3.610082274e-08) (-4.20758418e-09,1.329481362e-07) (1.941686087e-09,1.218766823e-08) (4.770509244e-06,8.322690094e-06) (-7.081714324e-06,-4.898121826e-06) -(-0.01868022377,0.002904540426) (-0.000383943898,5.926846935e-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.0009744993454,-0.0005624426242) (-0.0003798268544,-0.0002190477155) (2.518658667e-08,1.35667746e-08) (-4.289201235e-06,-2.477306051e-06) (-0.000106253811,-6.15930794e-05) (1.096295886e-08,5.209165893e-09) (-1.681703888e-06,-9.719176313e-07) (-4.465568577e-05,-2.606092289e-05) (-4.967451824e-15,-7.725540094e-13) (-5.224086891e-06,-3.022444491e-06) (-5.054232167e-06,-2.925004755e-06) (-2.487050512e-06,-1.420487926e-06) (0.000134648214,7.769790383e-05) (-9.947851394e-15,-1.810013425e-12) (-2.34059763e-06,-1.357890798e-06) (-2.194084223e-06,-1.273943772e-06) (-1.132368833e-06,-6.379347901e-07) (6.089187453e-05,3.511284993e-05) -(-0.004471636424,0.0005689169958) (-6.805541839e-05,8.337075384e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004764751701,-0.0006088397258) (0.0001590828571,-0.0002021555436) (1.733036041e-07,-2.305362207e-07) (6.723836949e-05,5.35532821e-05) (-0.000227710295,-0.0003559922244) (1.533006756e-10,-6.184276906e-08) (2.665366441e-05,2.185822977e-05) (-8.736239305e-05,-0.0001411009514) (1.993612067e-07,-3.388295066e-07) (-8.454043411e-08,-8.932957281e-07) (1.256257871e-07,1.433319495e-07) (1.998555148e-05,-3.455739491e-05) (-3.725956611e-05,1.212210243e-05) (8.733835427e-08,-1.419262769e-07) (-4.173949694e-08,-4.102207604e-07) (-4.010741777e-08,8.985439143e-09) (1.290229051e-05,-2.226246451e-05) (-2.135800108e-05,1.179904408e-05) -(0,0) (0,0) (0.003465017908,0.009862074515) (0.001221901265,0.004138087508) (2.741575551e-05,-4.281858168e-06) (-0.000658389399,-0.001612980447) (-6.517083487e-06,-0.0001913472731) (-1.430259772e-05,6.086676215e-07) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001725685994,0.0009959979592) (0.0005755311858,0.0003319112117) (1.302689012e-06,7.016944552e-07) (0.0002846613729,0.0001644113445) (0.0001567662371,9.087406085e-05) (5.127718333e-07,2.436489619e-07) (0.0001097511991,6.342919598e-05) (5.965184083e-05,3.481263354e-05) (1.095802797e-14,1.704229685e-12) (-1.837595731e-05,-1.063158253e-05) (5.406434779e-05,3.128832811e-05) (1.049360317e-05,5.993459534e-06) (-0.0001702344769,-9.823273271e-05) (2.109215377e-14,3.837718548e-12) (-7.986976277e-06,-4.633620685e-06) (2.292386667e-05,1.331020791e-05) (4.680195355e-06,2.636649256e-06) (-7.177154357e-05,-4.138653077e-05) -(0.005946232303,0.01474590143) (8.138376281e-05,0.0002031920537) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.063449762e-05,-9.409157107e-05) (-2.356212347e-05,-3.12581312e-05) (7.263729295e-08,8.094457849e-08) (-1.691595917e-05,2.586955157e-06) (2.630366042e-05,-8.151614295e-05) (2.261536651e-08,4.388760143e-09) (-6.845726943e-06,9.424430129e-07) (1.036728962e-05,-3.165588977e-05) (1.252750369e-07,-1.025838514e-07) (1.203003967e-06,-7.144559798e-07) (5.087460052e-08,-6.90134598e-08) (-5.948886471e-06,-9.687312091e-06) (1.311971363e-05,-1.187841661e-05) (5.240460784e-08,-3.974106755e-08) (5.458013438e-07,-3.448646441e-07) (7.284313775e-09,1.39590917e-08) (-3.145666228e-06,-7.270024704e-06) (6.368185347e-06,-2.344428509e-06) -(0,0) (0,0) (0.001963080621,0.005587286382) (-0.001678670988,-0.00568498261) (0.001922245415,-0.0003002208795) (-0.0002138299683,-0.000523859525) (1.91305469e-05,0.0005616895946) (-9.532969078e-05,4.056892131e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001531278008,0.0008837933299) (0.0005106944431,0.0002945195944) (-3.83108665e-06,-2.06361782e-06) (-9.92973085e-05,-5.735096345e-05) (0.0001392358346,8.071205851e-05) (-1.507280257e-06,-7.162001615e-07) (-3.850488067e-05,-2.225336618e-05) (5.297395345e-05,3.09154387e-05) (6.990356238e-15,1.087162646e-12) (1.746116485e-05,1.010232077e-05) (-3.772174895e-05,-2.183047621e-05) (2.309123082e-05,1.318864029e-05) (-0.0001563003677,-9.019214275e-05) (1.411989693e-14,2.569115197e-12) (7.43446196e-06,4.313081137e-06) (-1.641011115e-05,-9.528147863e-06) (9.941853483e-06,5.600873168e-06) (-6.584720617e-05,-3.797030534e-05) -(0.002402079409,-0.0002908405711) (3.305604328e-05,-4.080126584e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001101738559,0.0001467615902) (3.675158859e-05,4.875562168e-05) (-2.386560097e-09,-1.667492243e-08) (7.57141208e-06,-2.907795468e-05) (-9.071806017e-05,6.083782248e-05) (-2.673281347e-09,-2.889555513e-09) (2.825122266e-06,-1.191452442e-05) (-3.44915496e-05,2.485437525e-05) (-1.950730865e-07,-4.645709439e-07) (9.105650296e-07,-6.47946915e-07) (-7.919630973e-09,2.719730633e-08) (1.146535848e-05,9.545603901e-06) (3.364236539e-06,-2.695000642e-05) (-8.012237157e-08,-2.078382162e-07) (4.003010409e-07,-3.039914162e-07) (-3.112267294e-09,-2.867364409e-09) (7.774926089e-06,4.913874676e-06) (-1.643624091e-06,-1.240762636e-05) -(0,0) (0,0) (0.001066297537,0.003034877754) (-0.0008801889221,-0.002980845414) (-0.003627991882,0.0005666284362) (-5.870127928e-05,-0.0001438115739) (3.408689652e-06,0.0001000821105) (0.0005076724705,-2.160473231e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00120491923,0.0006954319024) (0.0004018509714,0.0002317491148) (2.881832856e-06,1.552301522e-06) (-0.0002608576118,-0.00015066305) (0.0001098839173,6.369737497e-05) (1.133378042e-06,5.385365682e-07) (-0.0001009245097,-5.832793225e-05) (4.180661279e-05,2.439821253e-05) (-3.591148646e-15,-5.585073758e-13) (2.619837783e-05,1.515731732e-05) (-8.13877745e-06,-4.710104711e-06) (-3.386716518e-05,-1.93433543e-05) (-0.0001264222079,-7.295113883e-05) (-8.990260318e-15,-1.635778493e-12) (1.120518382e-05,6.500654279e-06) (-3.3391275e-06,-1.938786414e-06) (-1.487977805e-05,-8.382717544e-06) (-5.324282293e-05,-3.070208079e-05) -(-0.003746701111,0.0004536455734) (-5.155995828e-05,6.364075539e-06) (0,0) (0,0) (0,0) (0,0) (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.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001326490017,-0.000174489586) (4.844525649e-05,-6.439091207e-05) (6.047823429e-08,-4.38610843e-08) (1.935061596e-05,1.735697813e-05) (-6.848147072e-05,-0.000108827645) (1.72276957e-08,9.896936904e-10) (8.253383063e-06,7.63295705e-06) (-2.835696448e-05,-4.633173232e-05) (3.734166284e-08,-8.401514644e-08) (-1.112872302e-08,-2.837791213e-07) (4.794241365e-08,2.82248768e-08) (7.37274539e-06,-1.280158102e-05) (-1.198943876e-05,5.606486747e-06) (1.405665627e-08,-3.610082274e-08) (-4.20758418e-09,-1.329481362e-07) (1.941686087e-09,-1.218766823e-08) (4.770509244e-06,-8.322690094e-06) (-7.081714324e-06,4.898121826e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004764751701,0.0006088397258) (0.0001590828571,0.0002021555436) (1.733036041e-07,2.305362207e-07) (6.723836949e-05,-5.35532821e-05) (-0.000227710295,0.0003559922244) (1.533006756e-10,6.184276906e-08) (2.665366441e-05,-2.185822977e-05) (-8.736239305e-05,0.0001411009514) (1.993612067e-07,3.388295066e-07) (-8.454043411e-08,8.932957281e-07) (1.256257871e-07,-1.433319495e-07) (1.998555148e-05,3.455739491e-05) (-3.725956611e-05,-1.212210243e-05) (8.733835427e-08,1.419262769e-07) (-4.173949694e-08,4.102207604e-07) (-4.010741777e-08,-8.985439143e-09) (1.290229051e-05,2.226246451e-05) (-2.135800108e-05,-1.179904408e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.063449762e-05,9.409157107e-05) (-2.356212347e-05,3.12581312e-05) (7.263729295e-08,-8.094457849e-08) (-1.691595917e-05,-2.586955157e-06) (2.630366042e-05,8.151614295e-05) (2.261536651e-08,-4.388760143e-09) (-6.845726943e-06,-9.424430129e-07) (1.036728962e-05,3.165588977e-05) (1.252750369e-07,1.025838514e-07) (1.203003967e-06,7.144559798e-07) (5.087460052e-08,6.90134598e-08) (-5.948886471e-06,9.687312091e-06) (1.311971363e-05,1.187841661e-05) (5.240460784e-08,3.974106755e-08) (5.458013438e-07,3.448646441e-07) (7.284313775e-09,-1.39590917e-08) (-3.145666228e-06,7.270024704e-06) (6.368185347e-06,2.344428509e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001101738559,-0.0001467615902) (3.675158859e-05,-4.875562168e-05) (-2.386560097e-09,1.667492243e-08) (7.57141208e-06,2.907795468e-05) (-9.071806017e-05,-6.083782248e-05) (-2.673281347e-09,2.889555513e-09) (2.825122266e-06,1.191452442e-05) (-3.44915496e-05,-2.485437525e-05) (-1.950730865e-07,4.645709439e-07) (9.105650296e-07,6.47946915e-07) (-7.919630973e-09,-2.719730633e-08) (1.146535848e-05,-9.545603901e-06) (3.364236539e-06,2.695000642e-05) (-8.012237157e-08,2.078382162e-07) (4.003010409e-07,3.039914162e-07) (-3.112267294e-09,2.867364409e-09) (7.774926089e-06,-4.913874676e-06) (-1.643624091e-06,1.240762636e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001825893782,0) (0.0005992904539,0) (3.658937916e-09,0) (7.213190051e-05,0) (0.000924285019,0) (4.333350524e-10,0) (3.148971931e-05,0) (0.0003502218878,0) (5.083032083e-07,-5.169878828e-25) (1.20268645e-06,8.271806126e-25) (2.681350595e-09,-4.135903063e-25) (3.838718635e-05,-8.142559155e-25) (0.0002140401507,1.654361225e-24) (2.157489251e-07,5.169878828e-25) (5.636667834e-07,1.447566072e-24) (2.247504057e-10,1.240770919e-24) (3.5583701e-05,2.067951531e-25) (7.270573157e-05,4.963083675e-24) -(0.0001767891508,0.00113699946) (5.29836624e-05,0.0003432306266) (-0.0005576474602,0.0001959281927) (9.835991514e-05,-2.904387704e-05) (-4.113599605e-06,-2.633843453e-05) (-0.0002071517478,8.455559087e-05) (3.584769493e-05,-1.220934152e-06) (-1.034358433e-06,-2.43055685e-05) (1.058791184e-22,1.058791184e-22) (-1.694065895e-21,0) (-6.47072768e-08,7.753135549e-09) (-6.823277566e-08,-5.70901841e-07) (7.020767858e-06,1.222799177e-05) (-4.235164736e-22,-2.117582368e-22) (5.29395592e-23,-1.058791184e-22) (-6.128936635e-08,1.365637793e-08) (-1.373697228e-07,-6.180616852e-07) (4.576827505e-06,7.229344764e-06) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01868022377,-0.002904540426) (-0.000383943898,-5.926846935e-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.0009744993454,0.0005624426242) (-0.0003798268544,0.0002190477155) (2.518658667e-08,-1.35667746e-08) (-4.289201235e-06,2.477306051e-06) (-0.000106253811,6.15930794e-05) (1.096295886e-08,-5.209165893e-09) (-1.681703888e-06,9.719176313e-07) (-4.465568577e-05,2.606092289e-05) (-4.967445048e-15,7.725540161e-13) (-5.224086891e-06,3.022444491e-06) (-5.054232167e-06,2.925004755e-06) (-2.487050512e-06,1.420487926e-06) (0.000134648214,-7.769790383e-05) (-9.947856476e-15,1.810013423e-12) (-2.34059763e-06,1.357890798e-06) (-2.194084223e-06,1.273943772e-06) (-1.132368833e-06,6.379347901e-07) (6.089187453e-05,-3.511284993e-05) -(-0.004471636424,-0.0005689169958) (-6.805541839e-05,-8.337075384e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.003465017908,-0.009862074515) (0.001221901265,-0.004138087508) (2.741575551e-05,4.281858168e-06) (-0.000658389399,0.001612980447) (-6.517083487e-06,0.0001913472731) (-1.430259772e-05,-6.086676215e-07) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001725685994,-0.0009959979592) (0.0005755311858,-0.0003319112117) (1.302689012e-06,-7.016944552e-07) (0.0002846613729,-0.0001644113445) (0.0001567662371,-9.087406085e-05) (5.127718333e-07,-2.436489619e-07) (0.0001097511991,-6.342919598e-05) (5.965184083e-05,-3.481263354e-05) (1.095802458e-14,-1.704229678e-12) (-1.837595731e-05,1.063158253e-05) (5.406434779e-05,-3.128832811e-05) (1.049360317e-05,-5.993459534e-06) (-0.0001702344769,9.823273271e-05) (2.109215207e-14,-3.837718549e-12) (-7.986976277e-06,4.633620685e-06) (2.292386667e-05,-1.331020791e-05) (4.680195355e-06,-2.636649256e-06) (-7.177154357e-05,4.138653077e-05) -(0.005946232303,-0.01474590143) (8.138376281e-05,-0.0002031920537) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.001963080621,-0.005587286382) (-0.001678670988,0.00568498261) (0.001922245415,0.0003002208795) (-0.0002138299683,0.000523859525) (1.91305469e-05,-0.0005616895946) (-9.532969078e-05,-4.056892131e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001531278008,-0.0008837933299) (0.0005106944431,-0.0002945195944) (-3.83108665e-06,2.06361782e-06) (-9.92973085e-05,5.735096345e-05) (0.0001392358346,-8.071205851e-05) (-1.507280257e-06,7.162001615e-07) (-3.850488067e-05,2.225336618e-05) (5.297395345e-05,-3.09154387e-05) (6.990363014e-15,-1.087162644e-12) (1.746116485e-05,-1.010232077e-05) (-3.772174895e-05,2.183047621e-05) (2.309123082e-05,-1.318864029e-05) (-0.0001563003677,9.019214275e-05) (1.41198982e-14,-2.569115197e-12) (7.43446196e-06,-4.313081137e-06) (-1.641011115e-05,9.528147863e-06) (9.941853483e-06,-5.600873168e-06) (-6.584720617e-05,3.797030534e-05) -(0.002402079409,0.0002908405711) (3.305604328e-05,4.080126584e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0,0) (0,0) (0.001066297537,-0.003034877754) (-0.0008801889221,0.002980845414) (-0.003627991882,-0.0005666284362) (-5.870127928e-05,0.0001438115739) (3.408689652e-06,-0.0001000821105) (0.0005076724705,2.160473231e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00120491923,-0.0006954319024) (0.0004018509714,-0.0002317491148) (2.881832856e-06,-1.552301522e-06) (-0.0002608576118,0.00015066305) (0.0001098839173,-6.369737497e-05) (1.133378042e-06,-5.385365682e-07) (-0.0001009245097,5.832793225e-05) (4.180661279e-05,-2.439821253e-05) (-3.591148646e-15,5.585073826e-13) (2.619837783e-05,-1.515731732e-05) (-8.13877745e-06,4.710104711e-06) (-3.386716518e-05,1.93433543e-05) (-0.0001264222079,7.295113883e-05) (-8.990262012e-15,1.635778493e-12) (1.120518382e-05,-6.500654279e-06) (-3.3391275e-06,1.938786414e-06) (-1.487977805e-05,8.382717544e-06) (-5.324282293e-05,3.070208079e-05) -(-0.003746701111,-0.0004536455734) (-5.155995828e-05,-6.364075539e-06) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001767891508,-0.00113699946) (5.29836624e-05,-0.0003432306266) (-0.0005576474602,-0.0001959281927) (9.835991514e-05,2.904387704e-05) (-4.113599605e-06,2.633843453e-05) (-0.0002071517478,-8.455559087e-05) (3.584769493e-05,1.220934152e-06) (-1.034358433e-06,2.43055685e-05) (0,-1.058791184e-22) (0,0) (-6.47072768e-08,-7.753135549e-09) (-6.823277566e-08,5.70901841e-07) (7.020767858e-06,-1.222799177e-05) (4.235164736e-22,6.352747104e-22) (1.058791184e-22,1.058791184e-22) (-6.128936635e-08,-1.365637793e-08) (-1.373697228e-07,6.180616852e-07) (4.576827505e-06,-7.229344764e-06) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001825893782,0) (0.0005992904539,0) (1.468170926e-07,0) (0.0009769550525,0) (1.931870888e-05,0) (5.539734027e-08,0) (0.0003741945791,0) (7.462064015e-06,0) (1.440179744e-10,8.271806126e-25) (0.0001436914452,3.30872245e-24) (3.009983921e-05,-4.135903063e-25) (1.188930211e-05,1.240770919e-24) (6.846027751e-05,5.790264288e-24) (3.298348251e-10,0) (6.168246237e-05,-8.271806126e-25) (1.287856398e-05,0) (5.274973976e-06,-2.481541838e-24) (2.923274287e-05,8.271806126e-25) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.000132698644,0.0001744518362) (4.850765943e-05,6.434391509e-05) (4.500213507e-08,5.963404546e-08) (1.939589352e-05,-1.730636711e-05) (-6.850366471e-05,0.0001088136759) (1.879973203e-10,1.725507606e-08) (8.303257503e-06,-7.578672717e-06) (-2.838114377e-05,4.631692491e-05) (4.11313035e-08,8.222627614e-08) (-1.624247699e-08,2.835323969e-07) (3.759135405e-08,-4.101230056e-08) (7.332629572e-06,1.282460116e-05) (-1.198780457e-05,-5.60998014e-06) (1.782162972e-08,3.439837935e-08) (-9.366163777e-09,1.326845344e-07) (-1.205264106e-08,-2.653911292e-09) (4.730008528e-06,8.34577427e-06) (-7.081206732e-06,-4.898855623e-06) -(0.006824706087,-0.01762981854) (0.0001406439489,-0.0003621394039) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0009744993454,-0.0005624426242) (0.0003798268544,-0.0002190477155) (-2.518658667e-08,1.35667746e-08) (4.289201235e-06,-2.477306051e-06) (0.000106253811,-6.15930794e-05) (-1.096295886e-08,5.209165893e-09) (1.681703888e-06,-9.719176313e-07) (4.465568577e-05,-2.606092289e-05) (4.96744166e-15,-7.725540144e-13) (5.224086891e-06,-3.022444491e-06) (5.054232167e-06,-2.925004755e-06) (2.487050512e-06,-1.420487926e-06) (-0.000134648214,7.769790383e-05) (9.947854782e-15,-1.810013422e-12) (2.34059763e-06,-1.357890798e-06) (2.194084223e-06,-1.273943772e-06) (1.132368833e-06,-6.379347901e-07) (-6.089187453e-05,3.511284993e-05) -(0.001743121641,-0.004157009238) (2.680759012e-05,-6.310625889e-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.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004763019169,-0.0006089752733) (0.0001588867966,-0.0002023096762) (2.331610824e-07,-1.697557006e-07) (6.709823677e-05,5.372875374e-05) (-0.0002276376856,-0.0003560386586) (6.176882572e-08,3.027169619e-09) (2.650975955e-05,2.203253693e-05) (-8.728873257e-05,-0.0001411465316) (1.837142188e-07,-3.475620968e-07) (-6.842364499e-08,-8.946745484e-07) (1.620526494e-07,1.003236011e-07) (2.009364716e-05,-3.4494654e-05) (-3.726309681e-05,1.211124476e-05) (7.17256985e-08,-1.504210104e-07) (-2.578107941e-08,-4.115320082e-07) (6.317960669e-09,-4.061313149e-08) (1.301032335e-05,-2.219950254e-05) (-2.135922361e-05,1.179683085e-05) -(0,0) (0,0) (-0.01027331602,-0.001930243725) (-0.004194639538,-0.001010846217) (-9.999679808e-06,2.588366982e-05) (0.001726076742,0.0002363082783) (0.0001689701412,9.002967669e-05) (6.624177238e-06,-1.269074678e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001725685994,0.0009959979592) (-0.0005755311858,0.0003319112117) (-1.302689012e-06,7.016944552e-07) (-0.0002846613729,0.0001644113445) (-0.0001567662371,9.087406085e-05) (-5.127718333e-07,2.436489619e-07) (-0.0001097511991,6.342919598e-05) (-5.965184083e-05,3.481263354e-05) (-1.095804491e-14,1.704229678e-12) (1.837595731e-05,-1.063158253e-05) (-5.406434779e-05,3.128832811e-05) (-1.049360317e-05,5.993459534e-06) (0.0001702344769,-9.823273271e-05) (-2.109215207e-14,3.837718548e-12) (7.986976277e-06,-4.633620685e-06) (-2.292386667e-05,1.331020791e-05) (-4.680195355e-06,2.636649256e-06) (7.177154357e-05,-4.138653077e-05) -(-0.0157434414,-0.002223362486) (-0.0002166613617,-3.111562078e-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.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066126676e-05,-9.407146954e-05) (-2.359241654e-05,-3.12352735e-05) (4.578135782e-08,9.865225994e-08) (-1.692265964e-05,2.542754862e-06) (2.63202851e-05,-8.151077662e-05) (-5.435027863e-09,2.238697143e-08) (-6.851759681e-06,8.975330011e-07) (1.038381121e-05,-3.165047418e-05) (1.204703289e-07,-1.081858645e-07) (1.215687674e-06,-6.926538595e-07) (2.846605525e-08,-8.087500424e-08) (-5.918527904e-06,-9.705889616e-06) (1.312317435e-05,-1.187459313e-05) (4.787390729e-08,-4.509638982e-08) (5.587792923e-07,-3.234137167e-07) (-1.565662273e-08,1.669620578e-09) (-3.110300159e-06,-7.285225332e-06) (6.368428248e-06,-2.343768611e-06) -(0,0) (0,0) (-0.005820272256,-0.001093565503) (0.005762674855,0.001388719585) (-0.0007011237992,0.001814823802) (0.0005605906408,7.674757786e-05) (-0.0004960027314,-0.0002642772577) (4.415147374e-05,-8.458638001e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001531278008,0.0008837933299) (-0.0005106944431,0.0002945195944) (3.83108665e-06,-2.06361782e-06) (9.92973085e-05,-5.735096345e-05) (-0.0001392358346,8.071205851e-05) (1.507280257e-06,-7.162001615e-07) (3.850488067e-05,-2.225336618e-05) (-5.297395345e-05,3.09154387e-05) (-6.990364708e-15,1.08716265e-12) (-1.746116485e-05,1.010232077e-05) (3.772174895e-05,-2.183047621e-05) (-2.309123082e-05,1.318864029e-05) (0.0001563003677,-9.019214275e-05) (-1.411989481e-14,2.569115198e-12) (-7.43446196e-06,4.313081137e-06) (1.641011115e-05,-9.528147863e-06) (-9.941853483e-06,5.600873168e-06) (6.584720617e-05,-3.797030534e-05) -(-0.0009491643814,0.002225682075) (-1.299452837e-05,3.066743652e-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.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102156097,0.0001467302364) (3.679883893e-05,4.871996883e-05) (2.595717567e-09,-1.664364616e-08) (7.647349864e-06,-2.905807581e-05) (-9.073046617e-05,6.081931926e-05) (3.010669526e-09,-2.536105918e-09) (2.903189098e-06,-1.189574298e-05) (-3.45045178e-05,2.483636877e-05) (-2.160401733e-07,-4.551992031e-07) (9.220973264e-07,-6.314272708e-07) (3.809383912e-10,2.832435193e-08) (1.143541654e-05,9.581453304e-06) (3.372089422e-06,-2.694902496e-05) (-1.018024998e-07,-1.981226125e-07) (4.118017791e-07,-2.882204005e-07) (3.807530327e-09,-1.846807832e-09) (7.750955149e-06,4.951599166e-06) (-1.642338376e-06,-1.240779661e-05) -(0,0) (0,0) (-0.003161430001,-0.000593998122) (0.003021582314,0.0007281567403) (0.001323281321,-0.003425247352) (0.000153895116,2.106898784e-05) (-8.837799499e-05,-4.708904342e-05) (-0.0002351259882,0.0004504596224) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.00120491923,0.0006954319024) (-0.0004018509714,0.0002317491148) (-2.881832856e-06,1.552301522e-06) (0.0002608576118,-0.00015066305) (-0.0001098839173,6.369737497e-05) (-1.133378042e-06,5.385365682e-07) (0.0001009245097,-5.832793225e-05) (-4.180661279e-05,2.439821253e-05) (3.59115881e-15,-5.585073826e-13) (-2.619837783e-05,1.515731732e-05) (8.13877745e-06,-4.710104711e-06) (3.386716518e-05,-1.93433543e-05) (0.0001264222079,-7.295113883e-05) (8.99025693e-15,-1.635778495e-12) (-1.120518382e-05,6.500654279e-06) (3.3391275e-06,-1.938786414e-06) (1.487977805e-05,-8.382717544e-06) (5.324282293e-05,-3.070208079e-05) -(0.001480481965,-0.003471561129) (2.026852805e-05,-4.783427145e-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) -(3.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.000132698644,-0.0001744518362) (4.850765943e-05,-6.434391509e-05) (4.500213507e-08,-5.963404546e-08) (1.939589352e-05,1.730636711e-05) (-6.850366471e-05,-0.0001088136759) (1.879973203e-10,-1.725507606e-08) (8.303257503e-06,7.578672717e-06) (-2.838114377e-05,-4.631692491e-05) (4.11313035e-08,-8.222627614e-08) (-1.624247699e-08,-2.835323969e-07) (3.759135405e-08,4.101230056e-08) (7.332629572e-06,-1.282460116e-05) (-1.198780457e-05,5.60998014e-06) (1.782162972e-08,-3.439837935e-08) (-9.366163777e-09,-1.326845344e-07) (-1.205264106e-08,2.653911292e-09) (4.730008528e-06,-8.34577427e-06) (-7.081206732e-06,4.898855623e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004763019169,0.0006089752733) (0.0001588867966,0.0002023096762) (2.331610824e-07,1.697557006e-07) (6.709823677e-05,-5.372875374e-05) (-0.0002276376856,0.0003560386586) (6.176882572e-08,-3.027169619e-09) (2.650975955e-05,-2.203253693e-05) (-8.728873257e-05,0.0001411465316) (1.837142188e-07,3.475620968e-07) (-6.842364499e-08,8.946745484e-07) (1.620526494e-07,-1.003236011e-07) (2.009364716e-05,3.4494654e-05) (-3.726309681e-05,-1.211124476e-05) (7.17256985e-08,1.504210104e-07) (-2.578107941e-08,4.115320082e-07) (6.317960669e-09,4.061313149e-08) (1.301032335e-05,2.219950254e-05) (-2.135922361e-05,-1.179683085e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066126676e-05,9.407146954e-05) (-2.359241654e-05,3.12352735e-05) (4.578135782e-08,-9.865225994e-08) (-1.692265964e-05,-2.542754862e-06) (2.63202851e-05,8.151077662e-05) (-5.435027863e-09,-2.238697143e-08) (-6.851759681e-06,-8.975330011e-07) (1.038381121e-05,3.165047418e-05) (1.204703289e-07,1.081858645e-07) (1.215687674e-06,6.926538595e-07) (2.846605525e-08,8.087500424e-08) (-5.918527904e-06,9.705889616e-06) (1.312317435e-05,1.187459313e-05) (4.787390729e-08,4.509638982e-08) (5.587792923e-07,3.234137167e-07) (-1.565662273e-08,-1.669620578e-09) (-3.110300159e-06,7.285225332e-06) (6.368428248e-06,2.343768611e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102156097,-0.0001467302364) (3.679883893e-05,-4.871996883e-05) (2.595717567e-09,1.664364616e-08) (7.647349864e-06,2.905807581e-05) (-9.073046617e-05,-6.081931926e-05) (3.010669526e-09,2.536105918e-09) (2.903189098e-06,1.189574298e-05) (-3.45045178e-05,-2.483636877e-05) (-2.160401733e-07,4.551992031e-07) (9.220973264e-07,6.314272708e-07) (3.809383912e-10,-2.832435193e-08) (1.143541654e-05,-9.581453304e-06) (3.372089422e-06,2.694902496e-05) (-1.018024998e-07,1.981226125e-07) (4.118017791e-07,2.882204005e-07) (3.807530327e-09,1.846807832e-09) (7.750955149e-06,-4.951599166e-06) (-1.642338376e-06,1.240779661e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001825893782,0) (0.0005992904539,0) (3.658937916e-09,0) (7.213190051e-05,0) (0.000924285019,0) (4.333350524e-10,0) (3.148971931e-05,0) (0.0003502218878,0) (5.083032083e-07,-1.033975766e-24) (1.20268645e-06,-2.067951531e-25) (2.681350595e-09,-2.067951531e-24) (3.838718635e-05,-8.013312184e-25) (0.0002140401507,3.30872245e-24) (2.157489251e-07,-1.654361225e-24) (5.636667834e-07,-2.688336991e-24) (2.247504057e-10,6.203854594e-25) (3.5583701e-05,2.067951531e-25) (7.270573157e-05,4.963083675e-24) -(-0.001073064992,-0.0004153958342) (-0.0003237382732,-0.0001257301157) (0.0001091449379,-0.0005809009632) (-2.402722223e-05,9.970412375e-05) (2.48665532e-05,9.606735507e-06) (3.034858418e-05,-0.0002216764715) (-1.686648747e-05,3.165548155e-05) (2.156641899e-05,1.125700357e-05) (0,0) (-2.117582368e-22,-8.470329473e-22) (2.563922606e-08,-5.99147133e-08) (5.285318852e-07,2.263596034e-07) (-1.410013544e-05,-3.383256493e-08) (0,-8.470329473e-22) (1.720535674e-22,1.588186776e-22) (1.881791296e-08,-5.99063372e-08) (6.039419819e-07,1.900651729e-07) (-8.549209971e-06,3.489765055e-07) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.006824706087,0.01762981854) (0.0001406439489,0.0003621394039) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0009744993454,0.0005624426242) (0.0003798268544,0.0002190477155) (-2.518658667e-08,-1.35667746e-08) (4.289201235e-06,2.477306051e-06) (0.000106253811,6.15930794e-05) (-1.096295886e-08,-5.209165893e-09) (1.681703888e-06,9.719176313e-07) (4.465568577e-05,2.606092289e-05) (4.967434884e-15,7.725540127e-13) (5.224086891e-06,3.022444491e-06) (5.054232167e-06,2.925004755e-06) (2.487050512e-06,1.420487926e-06) (-0.000134648214,-7.769790383e-05) (9.947853088e-15,1.810013424e-12) (2.34059763e-06,1.357890798e-06) (2.194084223e-06,1.273943772e-06) (1.132368833e-06,6.379347901e-07) (-6.089187453e-05,-3.511284993e-05) -(0.001743121641,0.004157009238) (2.680759012e-05,6.310625889e-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.01027331602,0.001930243725) (-0.004194639538,0.001010846217) (-9.999679808e-06,-2.588366982e-05) (0.001726076742,-0.0002363082783) (0.0001689701412,-9.002967669e-05) (6.624177238e-06,1.269074678e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001725685994,-0.0009959979592) (-0.0005755311858,-0.0003319112117) (-1.302689012e-06,-7.016944552e-07) (-0.0002846613729,-0.0001644113445) (-0.0001567662371,-9.087406085e-05) (-5.127718333e-07,-2.436489619e-07) (-0.0001097511991,-6.342919598e-05) (-5.965184083e-05,-3.481263354e-05) (-1.095804152e-14,-1.704229677e-12) (1.837595731e-05,1.063158253e-05) (-5.406434779e-05,-3.128832811e-05) (-1.049360317e-05,-5.993459534e-06) (0.0001702344769,9.823273271e-05) (-2.109215038e-14,-3.837718548e-12) (7.986976277e-06,4.633620685e-06) (-2.292386667e-05,-1.331020791e-05) (-4.680195355e-06,-2.636649256e-06) (7.177154357e-05,4.138653077e-05) -(-0.0157434414,0.002223362486) (-0.0002166613617,3.111562078e-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.005820272256,0.001093565503) (0.005762674855,-0.001388719585) (-0.0007011237992,-0.001814823802) (0.0005605906408,-7.674757786e-05) (-0.0004960027314,0.0002642772577) (4.415147374e-05,8.458638001e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001531278008,-0.0008837933299) (-0.0005106944431,-0.0002945195944) (3.83108665e-06,2.06361782e-06) (9.92973085e-05,5.735096345e-05) (-0.0001392358346,-8.071205851e-05) (1.507280257e-06,7.162001615e-07) (3.850488067e-05,2.225336618e-05) (-5.297395345e-05,-3.09154387e-05) (-6.990364708e-15,-1.087162652e-12) (-1.746116485e-05,-1.010232077e-05) (3.772174895e-05,2.183047621e-05) (-2.309123082e-05,-1.318864029e-05) (0.0001563003677,9.019214275e-05) (-1.411989481e-14,-2.569115196e-12) (-7.43446196e-06,-4.313081137e-06) (1.641011115e-05,9.528147863e-06) (-9.941853483e-06,-5.600873168e-06) (6.584720617e-05,3.797030534e-05) -(-0.0009491643814,-0.002225682075) (-1.299452837e-05,-3.066743652e-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.003161430001,0.000593998122) (0.003021582314,-0.0007281567403) (0.001323281321,0.003425247352) (0.000153895116,-2.106898784e-05) (-8.837799499e-05,4.708904342e-05) (-0.0002351259882,-0.0004504596224) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.00120491923,-0.0006954319024) (-0.0004018509714,-0.0002317491148) (-2.881832856e-06,-1.552301522e-06) (0.0002608576118,0.00015066305) (-0.0001098839173,-6.369737497e-05) (-1.133378042e-06,-5.385365682e-07) (0.0001009245097,5.832793225e-05) (-4.180661279e-05,-2.439821253e-05) (3.591155422e-15,5.585073826e-13) (-2.619837783e-05,-1.515731732e-05) (8.13877745e-06,4.710104711e-06) (3.386716518e-05,1.93433543e-05) (0.0001264222079,7.295113883e-05) (8.990255236e-15,1.635778494e-12) (-1.120518382e-05,-6.500654279e-06) (3.3391275e-06,1.938786414e-06) (1.487977805e-05,8.382717544e-06) (5.324282293e-05,3.070208079e-05) -(0.001480481965,0.003471561129) (2.026852805e-05,4.783427145e-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.001073064992,0.0004153958342) (-0.0003237382732,0.0001257301157) (0.0001091449379,0.0005809009632) (-2.402722223e-05,-9.970412375e-05) (2.48665532e-05,-9.606735507e-06) (3.034858418e-05,0.0002216764715) (-1.686648747e-05,-3.165548155e-05) (2.156641899e-05,-1.125700357e-05) (0,2.117582368e-22) (-5.29395592e-22,8.470329473e-22) (2.563922606e-08,5.99147133e-08) (5.285318852e-07,-2.263596034e-07) (-1.410013544e-05,3.383256493e-08) (0,8.470329473e-22) (1.588186776e-22,1.058791184e-22) (1.881791296e-08,5.99063372e-08) (6.039419819e-07,-1.900651729e-07) (-8.549209971e-06,-3.489765055e-07) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001825893782,0) (0.0005992904539,0) (1.468170926e-07,0) (0.0009769550525,0) (1.931870888e-05,0) (5.539734027e-08,0) (0.0003741945791,0) (7.462064015e-06,0) (1.440179744e-10,3.30872245e-24) (0.0001436914452,1.240770919e-24) (3.009983921e-05,1.240770919e-24) (1.188930211e-05,5.790264288e-24) (6.846027751e-05,-6.6174449e-24) (3.298348251e-10,-1.654361225e-24) (6.168246237e-05,1.240770919e-24) (1.287856398e-05,4.135903063e-25) (5.274973976e-06,-2.067951531e-24) (2.923274287e-05,-3.30872245e-24) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.000132698644,0.0001744518362) (4.850765943e-05,6.434391509e-05) (4.500213507e-08,5.963404546e-08) (1.939589352e-05,-1.730636711e-05) (-6.850366471e-05,0.0001088136759) (1.879973203e-10,1.725507606e-08) (8.303257503e-06,-7.578672717e-06) (-2.838114377e-05,4.631692491e-05) (4.11313035e-08,8.222627614e-08) (-1.624247699e-08,2.835323969e-07) (3.759135405e-08,-4.101230056e-08) (7.332629572e-06,1.282460116e-05) (-1.198780457e-05,-5.60998014e-06) (1.782162972e-08,3.439837935e-08) (-9.366163777e-09,1.326845344e-07) (-1.205264106e-08,-2.653911292e-09) (4.730008528e-06,8.34577427e-06) (-7.081206732e-06,-4.898855623e-06) -(0.006824706087,-0.01762981854) (0.0001406439489,-0.0003621394039) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0009744993454,-0.0005624426242) (0.0003798268544,-0.0002190477155) (-2.518658667e-08,1.35667746e-08) (4.289201235e-06,-2.477306051e-06) (0.000106253811,-6.15930794e-05) (-1.096295886e-08,5.209165893e-09) (1.681703888e-06,-9.719176313e-07) (4.465568577e-05,-2.606092289e-05) (4.96744166e-15,-7.725540144e-13) (5.224086891e-06,-3.022444491e-06) (5.054232167e-06,-2.925004755e-06) (2.487050512e-06,-1.420487926e-06) (-0.000134648214,7.769790383e-05) (9.947854782e-15,-1.810013422e-12) (2.34059763e-06,-1.357890798e-06) (2.194084223e-06,-1.273943772e-06) (1.132368833e-06,-6.379347901e-07) (-6.089187453e-05,3.511284993e-05) -(0.001743121641,-0.004157009238) (2.680759012e-05,-6.310625889e-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.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004763019169,-0.0006089752733) (0.0001588867966,-0.0002023096762) (2.331610824e-07,-1.697557006e-07) (6.709823677e-05,5.372875374e-05) (-0.0002276376856,-0.0003560386586) (6.176882572e-08,3.027169619e-09) (2.650975955e-05,2.203253693e-05) (-8.728873257e-05,-0.0001411465316) (1.837142188e-07,-3.475620968e-07) (-6.842364499e-08,-8.946745484e-07) (1.620526494e-07,1.003236011e-07) (2.009364716e-05,-3.4494654e-05) (-3.726309681e-05,1.211124476e-05) (7.17256985e-08,-1.504210104e-07) (-2.578107941e-08,-4.115320082e-07) (6.317960669e-09,-4.061313149e-08) (1.301032335e-05,-2.219950254e-05) (-2.135922361e-05,1.179683085e-05) -(0,0) (0,0) (-0.01027331602,-0.001930243725) (-0.004194639538,-0.001010846217) (-9.999679808e-06,2.588366982e-05) (0.001726076742,0.0002363082783) (0.0001689701412,9.002967669e-05) (6.624177238e-06,-1.269074678e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001725685994,0.0009959979592) (-0.0005755311858,0.0003319112117) (-1.302689012e-06,7.016944552e-07) (-0.0002846613729,0.0001644113445) (-0.0001567662371,9.087406085e-05) (-5.127718333e-07,2.436489619e-07) (-0.0001097511991,6.342919598e-05) (-5.965184083e-05,3.481263354e-05) (-1.095804491e-14,1.704229678e-12) (1.837595731e-05,-1.063158253e-05) (-5.406434779e-05,3.128832811e-05) (-1.049360317e-05,5.993459534e-06) (0.0001702344769,-9.823273271e-05) (-2.109215207e-14,3.837718548e-12) (7.986976277e-06,-4.633620685e-06) (-2.292386667e-05,1.331020791e-05) (-4.680195355e-06,2.636649256e-06) (7.177154357e-05,-4.138653077e-05) -(-0.0157434414,-0.002223362486) (-0.0002166613617,-3.111562078e-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.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066126676e-05,-9.407146954e-05) (-2.359241654e-05,-3.12352735e-05) (4.578135782e-08,9.865225994e-08) (-1.692265964e-05,2.542754862e-06) (2.63202851e-05,-8.151077662e-05) (-5.435027863e-09,2.238697143e-08) (-6.851759681e-06,8.975330011e-07) (1.038381121e-05,-3.165047418e-05) (1.204703289e-07,-1.081858645e-07) (1.215687674e-06,-6.926538595e-07) (2.846605525e-08,-8.087500424e-08) (-5.918527904e-06,-9.705889616e-06) (1.312317435e-05,-1.187459313e-05) (4.787390729e-08,-4.509638982e-08) (5.587792923e-07,-3.234137167e-07) (-1.565662273e-08,1.669620578e-09) (-3.110300159e-06,-7.285225332e-06) (6.368428248e-06,-2.343768611e-06) -(0,0) (0,0) (-0.005820272256,-0.001093565503) (0.005762674855,0.001388719585) (-0.0007011237992,0.001814823802) (0.0005605906408,7.674757786e-05) (-0.0004960027314,-0.0002642772577) (4.415147374e-05,-8.458638001e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001531278008,0.0008837933299) (-0.0005106944431,0.0002945195944) (3.83108665e-06,-2.06361782e-06) (9.92973085e-05,-5.735096345e-05) (-0.0001392358346,8.071205851e-05) (1.507280257e-06,-7.162001615e-07) (3.850488067e-05,-2.225336618e-05) (-5.297395345e-05,3.09154387e-05) (-6.990364708e-15,1.08716265e-12) (-1.746116485e-05,1.010232077e-05) (3.772174895e-05,-2.183047621e-05) (-2.309123082e-05,1.318864029e-05) (0.0001563003677,-9.019214275e-05) (-1.411989481e-14,2.569115198e-12) (-7.43446196e-06,4.313081137e-06) (1.641011115e-05,-9.528147863e-06) (-9.941853483e-06,5.600873168e-06) (6.584720617e-05,-3.797030534e-05) -(-0.0009491643814,0.002225682075) (-1.299452837e-05,3.066743652e-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.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102156097,0.0001467302364) (3.679883893e-05,4.871996883e-05) (2.595717567e-09,-1.664364616e-08) (7.647349864e-06,-2.905807581e-05) (-9.073046617e-05,6.081931926e-05) (3.010669526e-09,-2.536105918e-09) (2.903189098e-06,-1.189574298e-05) (-3.45045178e-05,2.483636877e-05) (-2.160401733e-07,-4.551992031e-07) (9.220973264e-07,-6.314272708e-07) (3.809383912e-10,2.832435193e-08) (1.143541654e-05,9.581453304e-06) (3.372089422e-06,-2.694902496e-05) (-1.018024998e-07,-1.981226125e-07) (4.118017791e-07,-2.882204005e-07) (3.807530327e-09,-1.846807832e-09) (7.750955149e-06,4.951599166e-06) (-1.642338376e-06,-1.240779661e-05) -(0,0) (0,0) (-0.003161430001,-0.000593998122) (0.003021582314,0.0007281567403) (0.001323281321,-0.003425247352) (0.000153895116,2.106898784e-05) (-8.837799499e-05,-4.708904342e-05) (-0.0002351259882,0.0004504596224) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.00120491923,0.0006954319024) (-0.0004018509714,0.0002317491148) (-2.881832856e-06,1.552301522e-06) (0.0002608576118,-0.00015066305) (-0.0001098839173,6.369737497e-05) (-1.133378042e-06,5.385365682e-07) (0.0001009245097,-5.832793225e-05) (-4.180661279e-05,2.439821253e-05) (3.59115881e-15,-5.585073826e-13) (-2.619837783e-05,1.515731732e-05) (8.13877745e-06,-4.710104711e-06) (3.386716518e-05,-1.93433543e-05) (0.0001264222079,-7.295113883e-05) (8.99025693e-15,-1.635778495e-12) (-1.120518382e-05,6.500654279e-06) (3.3391275e-06,-1.938786414e-06) (1.487977805e-05,-8.382717544e-06) (5.324282293e-05,-3.070208079e-05) -(0.001480481965,-0.003471561129) (2.026852805e-05,-4.783427145e-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) -(3.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.000132698644,-0.0001744518362) (4.850765943e-05,-6.434391509e-05) (4.500213507e-08,-5.963404546e-08) (1.939589352e-05,1.730636711e-05) (-6.850366471e-05,-0.0001088136759) (1.879973203e-10,-1.725507606e-08) (8.303257503e-06,7.578672717e-06) (-2.838114377e-05,-4.631692491e-05) (4.11313035e-08,-8.222627614e-08) (-1.624247699e-08,-2.835323969e-07) (3.759135405e-08,4.101230056e-08) (7.332629572e-06,-1.282460116e-05) (-1.198780457e-05,5.60998014e-06) (1.782162972e-08,-3.439837935e-08) (-9.366163777e-09,-1.326845344e-07) (-1.205264106e-08,2.653911292e-09) (4.730008528e-06,-8.34577427e-06) (-7.081206732e-06,4.898855623e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004763019169,0.0006089752733) (0.0001588867966,0.0002023096762) (2.331610824e-07,1.697557006e-07) (6.709823677e-05,-5.372875374e-05) (-0.0002276376856,0.0003560386586) (6.176882572e-08,-3.027169619e-09) (2.650975955e-05,-2.203253693e-05) (-8.728873257e-05,0.0001411465316) (1.837142188e-07,3.475620968e-07) (-6.842364499e-08,8.946745484e-07) (1.620526494e-07,-1.003236011e-07) (2.009364716e-05,3.4494654e-05) (-3.726309681e-05,-1.211124476e-05) (7.17256985e-08,1.504210104e-07) (-2.578107941e-08,4.115320082e-07) (6.317960669e-09,4.061313149e-08) (1.301032335e-05,2.219950254e-05) (-2.135922361e-05,-1.179683085e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066126676e-05,9.407146954e-05) (-2.359241654e-05,3.12352735e-05) (4.578135782e-08,-9.865225994e-08) (-1.692265964e-05,-2.542754862e-06) (2.63202851e-05,8.151077662e-05) (-5.435027863e-09,-2.238697143e-08) (-6.851759681e-06,-8.975330011e-07) (1.038381121e-05,3.165047418e-05) (1.204703289e-07,1.081858645e-07) (1.215687674e-06,6.926538595e-07) (2.846605525e-08,8.087500424e-08) (-5.918527904e-06,9.705889616e-06) (1.312317435e-05,1.187459313e-05) (4.787390729e-08,4.509638982e-08) (5.587792923e-07,3.234137167e-07) (-1.565662273e-08,-1.669620578e-09) (-3.110300159e-06,7.285225332e-06) (6.368428248e-06,2.343768611e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102156097,-0.0001467302364) (3.679883893e-05,-4.871996883e-05) (2.595717567e-09,1.664364616e-08) (7.647349864e-06,2.905807581e-05) (-9.073046617e-05,-6.081931926e-05) (3.010669526e-09,2.536105918e-09) (2.903189098e-06,1.189574298e-05) (-3.45045178e-05,-2.483636877e-05) (-2.160401733e-07,4.551992031e-07) (9.220973264e-07,6.314272708e-07) (3.809383912e-10,-2.832435193e-08) (1.143541654e-05,-9.581453304e-06) (3.372089422e-06,2.694902496e-05) (-1.018024998e-07,1.981226125e-07) (4.118017791e-07,2.882204005e-07) (3.807530327e-09,1.846807832e-09) (7.750955149e-06,-4.951599166e-06) (-1.642338376e-06,1.240779661e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001825893782,0) (0.0005992904539,0) (3.658937916e-09,0) (7.213190051e-05,0) (0.000924285019,0) (4.333350524e-10,0) (3.148971931e-05,0) (0.0003502218878,0) (5.083032083e-07,-1.033975766e-24) (1.20268645e-06,-2.067951531e-25) (2.681350595e-09,-2.067951531e-24) (3.838718635e-05,-8.013312184e-25) (0.0002140401507,3.30872245e-24) (2.157489251e-07,-1.654361225e-24) (5.636667834e-07,-2.688336991e-24) (2.247504057e-10,6.203854594e-25) (3.5583701e-05,2.067951531e-25) (7.270573157e-05,4.963083675e-24) -(-0.001073064992,-0.0004153958342) (-0.0003237382732,-0.0001257301157) (0.0001091449379,-0.0005809009632) (-2.402722223e-05,9.970412375e-05) (2.48665532e-05,9.606735507e-06) (3.034858418e-05,-0.0002216764715) (-1.686648747e-05,3.165548155e-05) (2.156641899e-05,1.125700357e-05) (0,0) (-2.117582368e-22,-8.470329473e-22) (2.563922606e-08,-5.99147133e-08) (5.285318852e-07,2.263596034e-07) (-1.410013544e-05,-3.383256493e-08) (0,-8.470329473e-22) (1.720535674e-22,1.588186776e-22) (1.881791296e-08,-5.99063372e-08) (6.039419819e-07,1.900651729e-07) (-8.549209971e-06,3.489765055e-07) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.006824706087,0.01762981854) (0.0001406439489,0.0003621394039) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0009744993454,0.0005624426242) (0.0003798268544,0.0002190477155) (-2.518658667e-08,-1.35667746e-08) (4.289201235e-06,2.477306051e-06) (0.000106253811,6.15930794e-05) (-1.096295886e-08,-5.209165893e-09) (1.681703888e-06,9.719176313e-07) (4.465568577e-05,2.606092289e-05) (4.967434884e-15,7.725540127e-13) (5.224086891e-06,3.022444491e-06) (5.054232167e-06,2.925004755e-06) (2.487050512e-06,1.420487926e-06) (-0.000134648214,-7.769790383e-05) (9.947853088e-15,1.810013424e-12) (2.34059763e-06,1.357890798e-06) (2.194084223e-06,1.273943772e-06) (1.132368833e-06,6.379347901e-07) (-6.089187453e-05,-3.511284993e-05) -(0.001743121641,0.004157009238) (2.680759012e-05,6.310625889e-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.01027331602,0.001930243725) (-0.004194639538,0.001010846217) (-9.999679808e-06,-2.588366982e-05) (0.001726076742,-0.0002363082783) (0.0001689701412,-9.002967669e-05) (6.624177238e-06,1.269074678e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001725685994,-0.0009959979592) (-0.0005755311858,-0.0003319112117) (-1.302689012e-06,-7.016944552e-07) (-0.0002846613729,-0.0001644113445) (-0.0001567662371,-9.087406085e-05) (-5.127718333e-07,-2.436489619e-07) (-0.0001097511991,-6.342919598e-05) (-5.965184083e-05,-3.481263354e-05) (-1.095804152e-14,-1.704229677e-12) (1.837595731e-05,1.063158253e-05) (-5.406434779e-05,-3.128832811e-05) (-1.049360317e-05,-5.993459534e-06) (0.0001702344769,9.823273271e-05) (-2.109215038e-14,-3.837718548e-12) (7.986976277e-06,4.633620685e-06) (-2.292386667e-05,-1.331020791e-05) (-4.680195355e-06,-2.636649256e-06) (7.177154357e-05,4.138653077e-05) -(-0.0157434414,0.002223362486) (-0.0002166613617,3.111562078e-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.005820272256,0.001093565503) (0.005762674855,-0.001388719585) (-0.0007011237992,-0.001814823802) (0.0005605906408,-7.674757786e-05) (-0.0004960027314,0.0002642772577) (4.415147374e-05,8.458638001e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001531278008,-0.0008837933299) (-0.0005106944431,-0.0002945195944) (3.83108665e-06,2.06361782e-06) (9.92973085e-05,5.735096345e-05) (-0.0001392358346,-8.071205851e-05) (1.507280257e-06,7.162001615e-07) (3.850488067e-05,2.225336618e-05) (-5.297395345e-05,-3.09154387e-05) (-6.990364708e-15,-1.087162652e-12) (-1.746116485e-05,-1.010232077e-05) (3.772174895e-05,2.183047621e-05) (-2.309123082e-05,-1.318864029e-05) (0.0001563003677,9.019214275e-05) (-1.411989481e-14,-2.569115196e-12) (-7.43446196e-06,-4.313081137e-06) (1.641011115e-05,9.528147863e-06) (-9.941853483e-06,-5.600873168e-06) (6.584720617e-05,3.797030534e-05) -(-0.0009491643814,-0.002225682075) (-1.299452837e-05,-3.066743652e-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.003161430001,0.000593998122) (0.003021582314,-0.0007281567403) (0.001323281321,0.003425247352) (0.000153895116,-2.106898784e-05) (-8.837799499e-05,4.708904342e-05) (-0.0002351259882,-0.0004504596224) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.00120491923,-0.0006954319024) (-0.0004018509714,-0.0002317491148) (-2.881832856e-06,-1.552301522e-06) (0.0002608576118,0.00015066305) (-0.0001098839173,-6.369737497e-05) (-1.133378042e-06,-5.385365682e-07) (0.0001009245097,5.832793225e-05) (-4.180661279e-05,-2.439821253e-05) (3.591155422e-15,5.585073826e-13) (-2.619837783e-05,-1.515731732e-05) (8.13877745e-06,4.710104711e-06) (3.386716518e-05,1.93433543e-05) (0.0001264222079,7.295113883e-05) (8.990255236e-15,1.635778494e-12) (-1.120518382e-05,-6.500654279e-06) (3.3391275e-06,1.938786414e-06) (1.487977805e-05,8.382717544e-06) (5.324282293e-05,3.070208079e-05) -(0.001480481965,0.003471561129) (2.026852805e-05,4.783427145e-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.001073064992,0.0004153958342) (-0.0003237382732,0.0001257301157) (0.0001091449379,0.0005809009632) (-2.402722223e-05,-9.970412375e-05) (2.48665532e-05,-9.606735507e-06) (3.034858418e-05,0.0002216764715) (-1.686648747e-05,-3.165548155e-05) (2.156641899e-05,-1.125700357e-05) (0,2.117582368e-22) (-5.29395592e-22,8.470329473e-22) (2.563922606e-08,5.99147133e-08) (5.285318852e-07,-2.263596034e-07) (-1.410013544e-05,3.383256493e-08) (0,8.470329473e-22) (1.588186776e-22,1.058791184e-22) (1.881791296e-08,5.99063372e-08) (6.039419819e-07,-1.900651729e-07) (-8.549209971e-06,-3.489765055e-07) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001825893782,0) (0.0005992904539,0) (1.468170926e-07,0) (0.0009769550525,0) (1.931870888e-05,0) (5.539734027e-08,0) (0.0003741945791,0) (7.462064015e-06,0) (1.440179744e-10,3.30872245e-24) (0.0001436914452,1.240770919e-24) (3.009983921e-05,1.240770919e-24) (1.188930211e-05,5.790264288e-24) (6.846027751e-05,-6.6174449e-24) (3.298348251e-10,-1.654361225e-24) (6.168246237e-05,1.240770919e-24) (1.287856398e-05,4.135903063e-25) (5.274973976e-06,-2.067951531e-24) (2.923274287e-05,-3.30872245e-24) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.9036422189,0) (0.001372612104,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0006933539574,0) (0.0003207966016,0) (5.574429423e-09,0) (2.511302075e-08,0) (0.0007807757694,0) (2.659367318e-09,0) (1.00823263e-08,0) (0.0003582523506,0) (4.144349252e-15,0) (2.535032931e-07,0) (1.132926837e-06,0) (6.899653252e-07,0) (0.0003530091707,0) (9.932992742e-15,0) (1.187090204e-07,0) (4.998180172e-07,0) (3.20232854e-07,0) (0.0001690136515,0) -(2.631170211e-05,0) (1.083470025e-05,0) (1.525418487e-06,0) (9.36771419e-06,0) (1.78875215e-05,0) (6.871657189e-07,0) (4.013384942e-06,0) (8.425363911e-06,0) (1.662972902e-08,0) (6.706189976e-08,3.61891518e-24) (1.154313316e-06,1.033975766e-25) (5.685174455e-06,0) (8.184414696e-07,3.722312756e-24) (6.956507371e-09,0) (3.138895392e-08,1.318319101e-24) (6.776824325e-07,2.067951531e-25) (2.586153949e-06,2.067951531e-25) (1.019758327e-06,-4.135903063e-25) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,8.976531855e-05) (-8.860761886e-06,3.343448456e-05) (1.00993066e-07,5.887967505e-06) (5.151406194e-06,-3.054603981e-05) (-2.504407087e-05,-5.318710705e-05) (1.47337298e-07,2.458274908e-06) (1.687534044e-06,-1.218971231e-05) (-1.159299112e-05,-2.298213206e-05) (-4.13578575e-08,5.784307022e-08) (-2.099947577e-07,-2.821354713e-08) (7.374182398e-07,-3.885151011e-06) (-7.685921691e-06,1.330208278e-05) (1.7695693e-06,1.6549814e-06) (-1.805788899e-08,2.386104743e-08) (-9.644432613e-08,-1.290696369e-08) (1.407585271e-07,-2.252555681e-06) (-3.477240794e-06,6.002328374e-06) (1.285429702e-06,2.588125402e-06) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409879564e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,8.553001251e-08) (-5.263245346e-06,-4.803075669e-09) (2.170928391e-06,-4.671942492e-07) (-5.160490033e-06,3.376463895e-06) (-1.154678806e-05,-2.942577107e-06) (8.890744517e-07,-2.261310486e-07) (-2.022692969e-06,1.412359256e-06) (-5.027261675e-06,-1.191617282e-06) (-7.752497014e-09,2.82423009e-08) (-1.797106703e-07,2.77243022e-07) (1.636096209e-06,6.984325393e-07) (-4.37313989e-06,-1.232980854e-07) (-4.237607642e-07,-1.009021198e-06) (-3.235481592e-09,1.135799858e-08) (-8.541503278e-08,1.261600408e-07) (8.198989831e-07,2.744138557e-07) (-2.122111818e-06,2.389103624e-07) (-4.623345672e-07,-6.573721158e-07) -(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996138494e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.976831458e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,-1.334074934e-07) (8.209473473e-06,7.491712756e-09) (-2.393358781e-07,2.470095892e-07) (9.028140205e-06,5.978762475e-06) (1.388461661e-05,-6.17381995e-06) (-9.967968774e-08,1.209828572e-07) (3.628481674e-06,2.437973371e-06) (6.08077902e-06,-2.550550489e-06) (-9.111756241e-08,1.88619236e-09) (-1.61311564e-07,2.088562004e-07) (-4.278913942e-07,-4.029215365e-07) (5.385390549e-06,1.990179942e-06) (5.174708833e-07,-1.597723596e-06) (-3.999734058e-08,1.345398649e-10) (-7.468843967e-08,9.214700844e-08) (-1.82378012e-07,-1.439986706e-07) (2.191649848e-06,1.159705557e-06) (9.959839506e-07,-1.097803331e-06) -(3.367871815e-18,0.05500152073) (7.5135805e-20,0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,0.02313962507) (2.284465335e-20,0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.000132698644,0.0001744518362) (4.850765943e-05,6.434391509e-05) (4.500213507e-08,5.963404546e-08) (1.939589352e-05,-1.730636711e-05) (-6.850366471e-05,0.0001088136759) (1.879973203e-10,1.725507606e-08) (8.303257503e-06,-7.578672717e-06) (-2.838114377e-05,4.631692491e-05) (4.11313035e-08,8.222627614e-08) (-1.624247699e-08,2.835323969e-07) (3.759135405e-08,-4.101230056e-08) (7.332629572e-06,1.282460116e-05) (-1.198780457e-05,-5.60998014e-06) (1.782162972e-08,3.439837935e-08) (-9.366163777e-09,1.326845344e-07) (-1.205264106e-08,-2.653911292e-09) (4.730008528e-06,8.34577427e-06) (-7.081206732e-06,-4.898855623e-06) -(0.006824706087,-0.01762981854) (0.0001406439489,-0.0003621394039) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0009744993454,-0.0005624426242) (0.0003798268544,-0.0002190477155) (-2.518658667e-08,1.35667746e-08) (4.289201235e-06,-2.477306051e-06) (0.000106253811,-6.15930794e-05) (-1.096295886e-08,5.209165893e-09) (1.681703888e-06,-9.719176313e-07) (4.465568577e-05,-2.606092289e-05) (4.96744166e-15,-7.725540144e-13) (5.224086891e-06,-3.022444491e-06) (5.054232167e-06,-2.925004755e-06) (2.487050512e-06,-1.420487926e-06) (-0.000134648214,7.769790383e-05) (9.947854782e-15,-1.810013422e-12) (2.34059763e-06,-1.357890798e-06) (2.194084223e-06,-1.273943772e-06) (1.132368833e-06,-6.379347901e-07) (-6.089187453e-05,3.511284993e-05) -(0.001743121641,-0.004157009238) (2.680759012e-05,-6.310625889e-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.001227821465,0) (-0.0004860858214,0) (2.883180661e-07,0) (-1.666675582e-06,0) (-0.001151951899,0) (1.243869172e-07,0) (-6.579918199e-07,0) (-0.0004785597137,0) (-9.142345084e-15,0) (8.917090752e-07,0) (-1.211874494e-05,0) (-2.911168185e-06,0) (-0.0004463061911,0) (-2.106064075e-14,0) (4.050786508e-07,0) (-5.222115663e-06,0) (-1.323554898e-06,0) (-0.0001992116476,0) -(-2.356776528e-05,-8.976531855e-05) (-8.860761886e-06,-3.343448456e-05) (1.00993066e-07,-5.887967505e-06) (5.151406194e-06,3.054603981e-05) (-2.504407087e-05,5.318710705e-05) (1.47337298e-07,-2.458274908e-06) (1.687534044e-06,1.218971231e-05) (-1.159299112e-05,2.298213206e-05) (-4.13578575e-08,-5.784307022e-08) (-2.099947577e-07,2.821354713e-08) (7.374182398e-07,3.885151011e-06) (-7.685921691e-06,-1.330208278e-05) (1.7695693e-06,-1.6549814e-06) (-1.805788899e-08,-2.386104743e-08) (-9.644432613e-08,1.290696369e-08) (1.407585271e-07,2.252555681e-06) (-3.477240794e-06,-6.002328374e-06) (1.285429702e-06,-2.588125402e-06) -(0,0) (0,0) (0.5524325414,0) (0.2295946203,0) (3.486847113e-05,0) (0.03207189033,0) (0.003610546095,0) (2.735693596e-05,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.002174279865,0) (0.0007365396785,0) (1.491225396e-05,0) (0.0001106122407,0) (0.00169958294,0) (5.817964691e-06,0) (4.294179954e-05,0) (0.0006392683792,0) (2.016777316e-14,0) (3.136626216e-06,0) (0.0001296323595,0) (1.228308133e-05,0) (0.0005642607409,0) (4.465424883e-14,0) (1.382276703e-06,0) (5.456084226e-05,0) (5.470386771e-06,0) (0.0002348051781,0) -(0.0003273544197,0) (0.0001104209466,0) (2.27336703e-05,0) (0.0001024366792,0) (0.000193211443,0) (8.825853263e-06,0) (3.773295097e-05,0) (7.864061948e-05,0) (3.040514456e-07,-2.895132144e-24) (6.694382753e-07,-6.452008778e-23) (1.354760776e-05,1.240770919e-24) (4.151478559e-05,-2.895132144e-24) (7.172582475e-06,-6.6174449e-24) (1.287193259e-07,-1.240770919e-24) (3.016378876e-07,-1.240770919e-24) (7.516529596e-06,-1.364848011e-23) (1.860645205e-05,3.30872245e-24) (8.188923193e-06,-1.32348898e-23) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,4.810651439e-05) (4.289530334e-06,1.624562286e-05) (-1.659594312e-06,-8.410504601e-06) (-1.384770908e-05,-1.497046068e-05) (2.491601433e-05,-3.021358452e-05) (-6.183347679e-07,-3.229071085e-06) (-5.14020373e-06,-5.549590027e-06) (1.016773953e-05,-1.207339935e-05) (1.17515328e-07,-4.327267306e-08) (4.460996439e-07,-9.437528153e-07) (-1.305562952e-06,5.952905193e-06) (5.623660216e-06,1.039889431e-05) (-2.956577157e-06,-1.324733401e-06) (4.735705616e-08,-1.838559078e-08) (2.105661829e-07,-4.227560077e-07) (-7.41829347e-07,2.782268084e-06) (3.407806497e-06,4.604081332e-06) (-2.251180496e-06,3.447622692e-07) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609377759e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903330805e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,-7.503529244e-05) (-6.690698072e-06,-2.533950085e-05) (9.375874118e-07,9.401670042e-07) (-1.453074853e-05,3.272654971e-05) (-1.082301981e-06,4.992867091e-05) (4.114329027e-07,3.825356173e-07) (-5.87907913e-06,1.204576971e-05) (-1.409711099e-06,2.009619732e-05) (2.33168581e-07,3.122426516e-07) (4.172564248e-07,-7.21868584e-07) (1.082787557e-06,-1.697584482e-06) (-2.624044664e-06,-1.529122435e-05) (-2.111943626e-06,-4.500856137e-06) (1.042876489e-07,1.36842942e-07) (1.915940925e-07,-3.138383374e-07) (4.40757719e-07,-6.361175194e-07) (-2.551900235e-07,-6.645999379e-06) (-1.530740464e-06,-3.911593821e-06) -(0,0) (0,0) (-1.9127207e-18,-0.03123709957) (3.341650602e-19,0.005457329582) (2.051178716e-21,3.349829056e-05) (2.522115165e-19,0.004118926643) (-4.141834178e-20,-0.0006764128532) (-2.846683406e-21,-4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,-0.04097665852) (-3.461527346e-20,-0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004763019169,-0.0006089752733) (0.0001588867966,-0.0002023096762) (2.331610824e-07,-1.697557006e-07) (6.709823677e-05,5.372875374e-05) (-0.0002276376856,-0.0003560386586) (6.176882572e-08,3.027169619e-09) (2.650975955e-05,2.203253693e-05) (-8.728873257e-05,-0.0001411465316) (1.837142188e-07,-3.475620968e-07) (-6.842364499e-08,-8.946745484e-07) (1.620526494e-07,1.003236011e-07) (2.009364716e-05,-3.4494654e-05) (-3.726309681e-05,1.211124476e-05) (7.17256985e-08,-1.504210104e-07) (-2.578107941e-08,-4.115320082e-07) (6.317960669e-09,-4.061313149e-08) (1.301032335e-05,-2.219950254e-05) (-2.135922361e-05,1.179683085e-05) -(0,0) (0,0) (-0.01027331602,-0.001930243725) (-0.004194639538,-0.001010846217) (-9.999679808e-06,2.588366982e-05) (0.001726076742,0.0002363082783) (0.0001689701412,9.002967669e-05) (6.624177238e-06,-1.269074678e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001725685994,0.0009959979592) (-0.0005755311858,0.0003319112117) (-1.302689012e-06,7.016944552e-07) (-0.0002846613729,0.0001644113445) (-0.0001567662371,9.087406085e-05) (-5.127718333e-07,2.436489619e-07) (-0.0001097511991,6.342919598e-05) (-5.965184083e-05,3.481263354e-05) (-1.095804491e-14,1.704229678e-12) (1.837595731e-05,-1.063158253e-05) (-5.406434779e-05,3.128832811e-05) (-1.049360317e-05,5.993459534e-06) (0.0001702344769,-9.823273271e-05) (-2.109215207e-14,3.837718548e-12) (7.986976277e-06,-4.633620685e-06) (-2.292386667e-05,1.331020791e-05) (-4.680195355e-06,2.636649256e-06) (7.177154357e-05,-4.138653077e-05) -(-0.0157434414,-0.002223362486) (-0.0002166613617,-3.111562078e-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.001089500647,0) (-0.0004313255893,0) (-8.479164895e-07,0) (5.813798962e-07,0) (-0.001023134745,0) (-3.656322993e-07,0) (2.308484711e-07,0) (-0.0004249860464,0) (-5.832086116e-15,0) (-8.473179872e-07,0) (8.455484494e-06,0) (-6.406041417e-06,0) (-0.0004097749354,0) (-1.409877532e-14,0) (-3.770565625e-07,0) (3.738265438e-06,0) (-2.811546928e-06,0) (-0.0001827678461,0) -(-1.412327219e-05,-8.553001251e-08) (-5.263245346e-06,4.803075669e-09) (2.170928391e-06,4.671942492e-07) (-5.160490033e-06,-3.376463895e-06) (-1.154678806e-05,2.942577107e-06) (8.890744517e-07,2.261310486e-07) (-2.022692969e-06,-1.412359256e-06) (-5.027261675e-06,1.191617282e-06) (-7.752497014e-09,-2.82423009e-08) (-1.797106703e-07,-2.77243022e-07) (1.636096209e-06,-6.984325393e-07) (-4.37313989e-06,1.232980854e-07) (-4.237607642e-07,1.009021198e-06) (-3.235481592e-09,-1.135799858e-08) (-8.541503278e-08,-1.261600408e-07) (8.198989831e-07,-2.744138557e-07) (-2.122111818e-06,-2.389103624e-07) (-4.623345672e-07,6.573721158e-07) -(0,0) (0,0) (0.3129766268,0) (-0.3154214166,0) (0.002444789775,0) (0.01041622375,0) (-0.01059856323,0) (0.0001823394811,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001929335321,0) (0.0006535644466,0) (-4.385554536e-05,0) (-3.858443342e-05,0) (0.001509526881,0) (-1.710176485e-05,0) (-1.506561095e-05,0) (0.0005677037438,0) (1.286541403e-14,0) (-2.980478595e-06,0) (-9.044702327e-05,0) (2.702898723e-05,0) (0.0005180746161,0) (2.989326993e-14,0) (-1.286655075e-06,0) (-3.905752458e-05,0) (1.16204089e-05,0) (0.0002154233308,0) -(1.294221071e-05,-4.810651439e-05) (4.289530334e-06,-1.624562286e-05) (-1.659594312e-06,8.410504601e-06) (-1.384770908e-05,1.497046068e-05) (2.491601433e-05,3.021358452e-05) (-6.183347679e-07,3.229071085e-06) (-5.14020373e-06,5.549590027e-06) (1.016773953e-05,1.207339935e-05) (1.17515328e-07,4.327267306e-08) (4.460996439e-07,9.437528153e-07) (-1.305562952e-06,-5.952905193e-06) (5.623660216e-06,-1.039889431e-05) (-2.956577157e-06,1.324733401e-06) (4.735705616e-08,1.838559078e-08) (2.105661829e-07,4.227560077e-07) (-7.41829347e-07,-2.782268084e-06) (3.407806497e-06,-4.604081332e-06) (-2.251180496e-06,-3.447622692e-07) -(0,0) (0,0) (0.1773146251,0) (0.433331887,0) (0.1714155181,0) (0.003382953609,0) (0.03111151043,0) (0.001215329319,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001711985122,0) (0.0005799368294,0) (0.0001289750607,0) (1.345925634e-05,0) (0.001340723864,0) (5.02702193e-05,0) (5.285587372e-06,0) (0.0005041506059,0) (8.207085185e-15,0) (2.83210432e-06,0) (6.310665059e-05,0) (5.947743334e-05,0) (0.0004756689389,0) (2.00116887e-14,0) (1.197648256e-06,0) (2.795943324e-05,0) (2.468452575e-05,0) (0.000197641346,0) -(7.581194556e-06,0) (2.556764285e-06,0) (3.232687021e-06,0) (4.059812782e-06,0) (7.937772399e-06,0) (1.224724413e-06,0) (1.516437023e-06,0) (3.168208754e-06,0) (5.157803648e-08,-3.011454418e-24) (1.627744198e-06,1.797179128e-23) (2.741559655e-06,-5.86781247e-24) (3.366573018e-06,4.135903063e-25) (1.463387434e-06,6.410649747e-24) (2.004920938e-08,4.135903063e-24) (7.394984802e-07,1.861156378e-24) (1.103079069e-06,2.727111082e-24) (1.763404971e-06,3.30872245e-24) (6.333768831e-07,-8.271806126e-25) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216218303e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274161847e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,2.782343258e-07) (-2.818462581e-06,-6.547652112e-06) (-7.94720409e-06,6.269417786e-06) (-1.687811847e-07,1.237286623e-07) (-9.707541565e-07,-2.505613446e-06) (-3.267560615e-06,2.381884784e-06) (4.5680783e-08,1.538658213e-07) (1.29571834e-06,1.071967499e-07) (-8.502760785e-07,-3.121900442e-07) (-4.185702972e-06,-1.414086237e-06) (1.701835954e-06,1.46521371e-06) (1.882248603e-08,6.524170995e-08) (5.736026091e-07,4.944277067e-08) (-2.789607166e-07,-1.003675274e-07) (-1.691260634e-06,-1.154081615e-06) (2.561268516e-07,1.139764662e-06) -(0,0) (0,0) (-1.083637961e-18,-0.01769715092) (-4.590822578e-19,-0.007497382235) (1.438176263e-19,0.002348720078) (8.19125895e-20,0.001337734105) (1.215813073e-19,0.00198557343) (-1.897371751e-20,-0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,-0.03636041334) (-3.071567317e-20,-0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066126676e-05,-9.407146954e-05) (-2.359241654e-05,-3.12352735e-05) (4.578135782e-08,9.865225994e-08) (-1.692265964e-05,2.542754862e-06) (2.63202851e-05,-8.151077662e-05) (-5.435027863e-09,2.238697143e-08) (-6.851759681e-06,8.975330011e-07) (1.038381121e-05,-3.165047418e-05) (1.204703289e-07,-1.081858645e-07) (1.215687674e-06,-6.926538595e-07) (2.846605525e-08,-8.087500424e-08) (-5.918527904e-06,-9.705889616e-06) (1.312317435e-05,-1.187459313e-05) (4.787390729e-08,-4.509638982e-08) (5.587792923e-07,-3.234137167e-07) (-1.565662273e-08,1.669620578e-09) (-3.110300159e-06,-7.285225332e-06) (6.368428248e-06,-2.343768611e-06) -(0,0) (0,0) (-0.005820272256,-0.001093565503) (0.005762674855,0.001388719585) (-0.0007011237992,0.001814823802) (0.0005605906408,7.674757786e-05) (-0.0004960027314,-0.0002642772577) (4.415147374e-05,-8.458638001e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001531278008,0.0008837933299) (-0.0005106944431,0.0002945195944) (3.83108665e-06,-2.06361782e-06) (9.92973085e-05,-5.735096345e-05) (-0.0001392358346,8.071205851e-05) (1.507280257e-06,-7.162001615e-07) (3.850488067e-05,-2.225336618e-05) (-5.297395345e-05,3.09154387e-05) (-6.990364708e-15,1.08716265e-12) (-1.746116485e-05,1.010232077e-05) (3.772174895e-05,-2.183047621e-05) (-2.309123082e-05,1.318864029e-05) (0.0001563003677,-9.019214275e-05) (-1.411989481e-14,2.569115198e-12) (-7.43446196e-06,4.313081137e-06) (1.641011115e-05,-9.528147863e-06) (-9.941853483e-06,5.600873168e-06) (6.584720617e-05,-3.797030534e-05) -(-0.0009491643814,0.002225682075) (-1.299452837e-05,3.066743652e-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.0008572971551,0) (-0.0003393978717,0) (6.378225871e-07,0) (1.527305962e-06,0) (-0.0008074505681,0) (2.749320291e-07,0) (6.050731323e-07,0) (-0.0003353955279,0) (2.996131717e-15,0) (-1.271298734e-06,0) (1.824340293e-06,0) (9.395534802e-06,0) (-0.0003314429316,0) (8.97682807e-15,0) (-5.682977618e-07,0) (7.606618144e-07,0) (4.207987407e-06,0) (-0.0001477826719,0) -(2.202911337e-05,1.334074934e-07) (8.209473473e-06,-7.491712756e-09) (-2.393358781e-07,-2.470095892e-07) (9.028140205e-06,-5.978762475e-06) (1.388461661e-05,6.17381995e-06) (-9.967968774e-08,-1.209828572e-07) (3.628481674e-06,-2.437973371e-06) (6.08077902e-06,2.550550489e-06) (-9.111756241e-08,-1.88619236e-09) (-1.61311564e-07,-2.088562004e-07) (-4.278913942e-07,4.029215365e-07) (5.385390549e-06,-1.990179942e-06) (5.174708833e-07,1.597723596e-06) (-3.999734058e-08,-1.345398649e-10) (-7.468843967e-08,-9.214700844e-08) (-1.82378012e-07,1.439986706e-07) (2.191649848e-06,-1.159705557e-06) (9.959839506e-07,1.097803331e-06) -(0,0) (0,0) (0.1700012739,0) (-0.1653870465,0) (-0.004614227397,0) (0.002859494691,0) (-0.001888456874,0) (-0.000971037817,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001518139238,0) (0.0005142713246,0) (3.29891655e-05,0) (-0.0001013626986,0) (0.001191307737,0) (1.285942987e-05,0) (-3.948822519e-05,0) (0.0004480271728,0) (-6.609364206e-15,0) (-4.471849675e-06,0) (-1.951468884e-05,0) (-3.964254579e-05,0) (0.0004190401967,0) (-1.903331144e-14,0) (-1.939240083e-06,0) (-7.947420538e-06,0) (-1.739203918e-05,0) (0.0001741872879,0) -(-2.018692432e-05,7.503529244e-05) (-6.690698072e-06,2.533950085e-05) (9.375874118e-07,-9.401670042e-07) (-1.453074853e-05,-3.272654971e-05) (-1.082301981e-06,-4.992867091e-05) (4.114329027e-07,-3.825356173e-07) (-5.87907913e-06,-1.204576971e-05) (-1.409711099e-06,-2.009619732e-05) (2.33168581e-07,-3.122426516e-07) (4.172564248e-07,7.21868584e-07) (1.082787557e-06,1.697584482e-06) (-2.624044664e-06,1.529122435e-05) (-2.111943626e-06,4.500856137e-06) (1.042876489e-07,-1.36842942e-07) (1.915940925e-07,3.138383374e-07) (4.40757719e-07,6.361175194e-07) (-2.551900235e-07,6.645999379e-06) (-1.530740464e-06,3.911593821e-06) -(0,0) (0,0) (0.09631298171,0) (0.2272118415,0) (-0.3235248233,0) (0.0009286991257,0) (0.005543463249,0) (-0.006472162374,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001347112532,0) (0.0004563358411,0) (-9.701805295e-05,0) (3.535795198e-05,0) (0.001058089612,0) (-3.779997944e-05,0) (1.385396617e-05,0) (0.0003978715538,0) (-4.216245408e-15,0) (4.249231919e-06,0) (1.361577867e-05,0) (-8.723363751e-05,0) (0.0003847407295,0) (-1.274162525e-14,0) (1.805089452e-06,0) (5.689182208e-06,0) (-3.694484786e-05,0) (0.0001598091066,0) -(-1.182495048e-05,-8.470329473e-22) (-3.987974565e-06,0) (-4.162677441e-07,-2.782343258e-07) (-2.818462581e-06,6.547652112e-06) (-7.94720409e-06,-6.269417786e-06) (-1.687811847e-07,-1.237286623e-07) (-9.707541565e-07,2.505613446e-06) (-3.267560615e-06,-2.381884784e-06) (4.5680783e-08,-1.538658213e-07) (1.29571834e-06,-1.071967499e-07) (-8.502760785e-07,3.121900442e-07) (-4.185702972e-06,1.414086237e-06) (1.701835954e-06,-1.46521371e-06) (1.882248603e-08,-6.524170995e-08) (5.736026091e-07,-4.944277067e-08) (-2.789607166e-07,1.003675274e-07) (-1.691260634e-06,1.154081615e-06) (2.561268516e-07,-1.139764662e-06) -(0,0) (0,0) (0.05231486372,0) (0.1191355229,0) (0.6106116436,0) (0.0002549494216,0) (0.0009877368332,0) (0.0344671071,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.00106000464,0) (0.0003590777294,0) (7.297924536e-05,0) (9.288661547e-05,0) (0.0008350366974,0) (2.842315919e-05,0) (3.631240295e-05,0) (0.000313996991,0) (2.1660191e-15,0) (6.375461447e-06,0) (2.937716184e-06,0) (0.000127942769,0) (0.0003111942295,0) (8.112712162e-15,0) (2.720621777e-06,0) (1.157634131e-06,0) (5.529463264e-05,0) (0.0001292186633,0) -(1.844425082e-05,0) (6.220339211e-06,0) (7.754947299e-08,0) (1.251670513e-05,0) (1.290836359e-05,0) (3.575977558e-08,0) (4.76146537e-06,0) (5.160748159e-06,0) (4.994650178e-07,-1.05982516e-24) (1.038478381e-06,1.550963649e-24) (2.99257407e-07,9.822769774e-25) (5.798106608e-06,-3.127776691e-24) (3.446180219e-06,-1.168392615e-23) (2.299724947e-07,2.843433356e-25) (4.482288329e-07,5.7385655e-24) (7.967943952e-08,3.696463362e-24) (2.377370472e-06,-2.481541838e-24) (2.154585185e-06,-1.240770919e-24) -(0,0) (0,0) (-5.886057234e-19,-0.009612660953) (-2.407137078e-19,-0.003931153177) (-2.714373392e-19,-0.004432908155) (2.248690317e-20,0.000367238998) (2.166341329e-20,0.0003537903876) (1.010433787e-19,0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,-0.02861097789) (-2.416929197e-20,-0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102156097,0.0001467302364) (3.679883893e-05,4.871996883e-05) (2.595717567e-09,-1.664364616e-08) (7.647349864e-06,-2.905807581e-05) (-9.073046617e-05,6.081931926e-05) (3.010669526e-09,-2.536105918e-09) (2.903189098e-06,-1.189574298e-05) (-3.45045178e-05,2.483636877e-05) (-2.160401733e-07,-4.551992031e-07) (9.220973264e-07,-6.314272708e-07) (3.809383912e-10,2.832435193e-08) (1.143541654e-05,9.581453304e-06) (3.372089422e-06,-2.694902496e-05) (-1.018024998e-07,-1.981226125e-07) (4.118017791e-07,-2.882204005e-07) (3.807530327e-09,-1.846807832e-09) (7.750955149e-06,4.951599166e-06) (-1.642338376e-06,-1.240779661e-05) -(0,0) (0,0) (-0.003161430001,-0.000593998122) (0.003021582314,0.0007281567403) (0.001323281321,-0.003425247352) (0.000153895116,2.106898784e-05) (-8.837799499e-05,-4.708904342e-05) (-0.0002351259882,0.0004504596224) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.00120491923,0.0006954319024) (-0.0004018509714,0.0002317491148) (-2.881832856e-06,1.552301522e-06) (0.0002608576118,-0.00015066305) (-0.0001098839173,6.369737497e-05) (-1.133378042e-06,5.385365682e-07) (0.0001009245097,-5.832793225e-05) (-4.180661279e-05,2.439821253e-05) (3.59115881e-15,-5.585073826e-13) (-2.619837783e-05,1.515731732e-05) (8.13877745e-06,-4.710104711e-06) (3.386716518e-05,-1.93433543e-05) (0.0001264222079,-7.295113883e-05) (8.99025693e-15,-1.635778495e-12) (-1.120518382e-05,6.500654279e-06) (3.3391275e-06,-1.938786414e-06) (1.487977805e-05,-8.382717544e-06) (5.324282293e-05,-3.070208079e-05) -(0.001480481965,-0.003471561129) (2.026852805e-05,-4.783427145e-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) -(3.367871815e-18,-0.05500152073) (7.5135805e-20,-0.001227060815) (0,0) (0,0) (0,0) (0,0) (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.416893389e-18,-0.02313962507) (2.284465335e-20,-0.0003730815018) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.000132698644,-0.0001744518362) (4.850765943e-05,-6.434391509e-05) (4.500213507e-08,-5.963404546e-08) (1.939589352e-05,1.730636711e-05) (-6.850366471e-05,-0.0001088136759) (1.879973203e-10,-1.725507606e-08) (8.303257503e-06,7.578672717e-06) (-2.838114377e-05,-4.631692491e-05) (4.11313035e-08,-8.222627614e-08) (-1.624247699e-08,-2.835323969e-07) (3.759135405e-08,4.101230056e-08) (7.332629572e-06,-1.282460116e-05) (-1.198780457e-05,5.60998014e-06) (1.782162972e-08,-3.439837935e-08) (-9.366163777e-09,-1.326845344e-07) (-1.205264106e-08,2.653911292e-09) (4.730008528e-06,-8.34577427e-06) (-7.081206732e-06,4.898855623e-06) -(0,0) (0,0) (-1.9127207e-18,0.03123709957) (3.341650602e-19,-0.005457329582) (2.051178716e-21,-3.349829056e-05) (2.522115165e-19,-0.004118926643) (-4.141834178e-20,0.0006764128532) (-2.846683406e-21,4.648986806e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.509096685e-18,0.04097665852) (-3.461527346e-20,0.0005653103161) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0004763019169,0.0006089752733) (0.0001588867966,0.0002023096762) (2.331610824e-07,1.697557006e-07) (6.709823677e-05,-5.372875374e-05) (-0.0002276376856,0.0003560386586) (6.176882572e-08,-3.027169619e-09) (2.650975955e-05,-2.203253693e-05) (-8.728873257e-05,0.0001411465316) (1.837142188e-07,3.475620968e-07) (-6.842364499e-08,8.946745484e-07) (1.620526494e-07,-1.003236011e-07) (2.009364716e-05,3.4494654e-05) (-3.726309681e-05,-1.211124476e-05) (7.17256985e-08,1.504210104e-07) (-2.578107941e-08,4.115320082e-07) (6.317960669e-09,4.061313149e-08) (1.301032335e-05,2.219950254e-05) (-2.135922361e-05,-1.179683085e-05) -(0,0) (0,0) (-1.083637961e-18,0.01769715092) (-4.590822578e-19,0.007497382235) (1.438176263e-19,-0.002348720078) (8.19125895e-20,-0.001337734105) (1.215813073e-19,-0.00198557343) (-1.897371751e-20,0.0003098643221) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-2.226433191e-18,0.03636041334) (-3.071567317e-20,0.0005016250105) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-7.066126676e-05,9.407146954e-05) (-2.359241654e-05,3.12352735e-05) (4.578135782e-08,-9.865225994e-08) (-1.692265964e-05,-2.542754862e-06) (2.63202851e-05,8.151077662e-05) (-5.435027863e-09,-2.238697143e-08) (-6.851759681e-06,-8.975330011e-07) (1.038381121e-05,3.165047418e-05) (1.204703289e-07,1.081858645e-07) (1.215687674e-06,6.926538595e-07) (2.846605525e-08,8.087500424e-08) (-5.918527904e-06,9.705889616e-06) (1.312317435e-05,1.187459313e-05) (4.787390729e-08,4.509638982e-08) (5.587792923e-07,3.234137167e-07) (-1.565662273e-08,-1.669620578e-09) (-3.110300159e-06,7.285225332e-06) (6.368428248e-06,2.343768611e-06) -(0,0) (0,0) (-5.886057234e-19,0.009612660953) (-2.407137078e-19,0.003931153177) (-2.714373392e-19,0.004432908155) (2.248690317e-20,-0.000367238998) (2.166341329e-20,-0.0003537903876) (1.010433787e-19,-0.001650163602) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-1.751917125e-18,0.02861097789) (-2.416929197e-20,0.0003947144921) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0001102156097,-0.0001467302364) (3.679883893e-05,-4.871996883e-05) (2.595717567e-09,1.664364616e-08) (7.647349864e-06,2.905807581e-05) (-9.073046617e-05,-6.081931926e-05) (3.010669526e-09,2.536105918e-09) (2.903189098e-06,1.189574298e-05) (-3.45045178e-05,-2.483636877e-05) (-2.160401733e-07,4.551992031e-07) (9.220973264e-07,6.314272708e-07) (3.809383912e-10,-2.832435193e-08) (1.143541654e-05,-9.581453304e-06) (3.372089422e-06,2.694902496e-05) (-1.018024998e-07,1.981226125e-07) (4.118017791e-07,2.882204005e-07) (3.807530327e-09,1.846807832e-09) (7.750955149e-06,-4.951599166e-06) (-1.642338376e-06,1.240779661e-05) -(0.003347748942,0) (0.001096943732,0) (0.001766290573,0) (0.0001297175262,0) (3.218195218e-05,0) (0.0005289852428,0) (0.0001267216471,0) (7.900401693e-05,0) (-3.388131789e-21,0) (-2.032879073e-20,0) (7.857759294e-10,0) (1.495047999e-08,0) (0.0005271579712,0) (0,0) (8.470329473e-22,0) (9.472957288e-10,0) (2.466003812e-08,0) (0.0002246430096,0) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.001825893782,0) (0.0005992904539,0) (3.658937916e-09,0) (7.213190051e-05,0) (0.000924285019,0) (4.333350524e-10,0) (3.148971931e-05,0) (0.0003502218878,0) (5.083032083e-07,-1.033975766e-24) (1.20268645e-06,-2.067951531e-25) (2.681350595e-09,-2.067951531e-24) (3.838718635e-05,-8.013312184e-25) (0.0002140401507,3.30872245e-24) (2.157489251e-07,-1.654361225e-24) (5.636667834e-07,-2.688336991e-24) (2.247504057e-10,6.203854594e-25) (3.5583701e-05,2.067951531e-25) (7.270573157e-05,4.963083675e-24) -(-0.001073064992,-0.0004153958342) (-0.0003237382732,-0.0001257301157) (0.0001091449379,-0.0005809009632) (-2.402722223e-05,9.970412375e-05) (2.48665532e-05,9.606735507e-06) (3.034858418e-05,-0.0002216764715) (-1.686648747e-05,3.165548155e-05) (2.156641899e-05,1.125700357e-05) (0,0) (-2.117582368e-22,-8.470329473e-22) (2.563922606e-08,-5.99147133e-08) (5.285318852e-07,2.263596034e-07) (-1.410013544e-05,-3.383256493e-08) (0,-8.470329473e-22) (1.720535674e-22,1.588186776e-22) (1.881791296e-08,-5.99063372e-08) (6.039419819e-07,1.900651729e-07) (-8.549209971e-06,3.489765055e-07) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,-0.03252242126) (-0.000254749116,-0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.006824706087,0.01762981854) (0.0001406439489,0.0003621394039) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0009744993454,0.0005624426242) (0.0003798268544,0.0002190477155) (-2.518658667e-08,-1.35667746e-08) (4.289201235e-06,2.477306051e-06) (0.000106253811,6.15930794e-05) (-1.096295886e-08,-5.209165893e-09) (1.681703888e-06,9.719176313e-07) (4.465568577e-05,2.606092289e-05) (4.967434884e-15,7.725540127e-13) (5.224086891e-06,3.022444491e-06) (5.054232167e-06,2.925004755e-06) (2.487050512e-06,1.420487926e-06) (-0.000134648214,-7.769790383e-05) (9.947853088e-15,1.810013424e-12) (2.34059763e-06,1.357890798e-06) (2.194084223e-06,1.273943772e-06) (1.132368833e-06,6.379347901e-07) (-6.089187453e-05,-3.511284993e-05) -(0.001743121641,0.004157009238) (2.680759012e-05,6.310625889e-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.01027331602,0.001930243725) (-0.004194639538,0.001010846217) (-9.999679808e-06,-2.588366982e-05) (0.001726076742,-0.0002363082783) (0.0001689701412,-9.002967669e-05) (6.624177238e-06,1.269074678e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001725685994,-0.0009959979592) (-0.0005755311858,-0.0003319112117) (-1.302689012e-06,-7.016944552e-07) (-0.0002846613729,-0.0001644113445) (-0.0001567662371,-9.087406085e-05) (-5.127718333e-07,-2.436489619e-07) (-0.0001097511991,-6.342919598e-05) (-5.965184083e-05,-3.481263354e-05) (-1.095804152e-14,-1.704229677e-12) (1.837595731e-05,1.063158253e-05) (-5.406434779e-05,-3.128832811e-05) (-1.049360317e-05,-5.993459534e-06) (0.0001702344769,9.823273271e-05) (-2.109215038e-14,-3.837718548e-12) (7.986976277e-06,4.633620685e-06) (-2.292386667e-05,-1.331020791e-05) (-4.680195355e-06,-2.636649256e-06) (7.177154357e-05,4.138653077e-05) -(-0.0157434414,0.002223362486) (-0.0002166613617,3.111562078e-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.005820272256,0.001093565503) (0.005762674855,-0.001388719585) (-0.0007011237992,-0.001814823802) (0.0005605906408,-7.674757786e-05) (-0.0004960027314,0.0002642772577) (4.415147374e-05,8.458638001e-05) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.001531278008,-0.0008837933299) (-0.0005106944431,-0.0002945195944) (3.83108665e-06,2.06361782e-06) (9.92973085e-05,5.735096345e-05) (-0.0001392358346,-8.071205851e-05) (1.507280257e-06,7.162001615e-07) (3.850488067e-05,2.225336618e-05) (-5.297395345e-05,-3.09154387e-05) (-6.990364708e-15,-1.087162652e-12) (-1.746116485e-05,-1.010232077e-05) (3.772174895e-05,2.183047621e-05) (-2.309123082e-05,-1.318864029e-05) (0.0001563003677,9.019214275e-05) (-1.411989481e-14,-2.569115196e-12) (-7.43446196e-06,-4.313081137e-06) (1.641011115e-05,9.528147863e-06) (-9.941853483e-06,-5.600873168e-06) (6.584720617e-05,3.797030534e-05) -(-0.0009491643814,-0.002225682075) (-1.299452837e-05,-3.066743652e-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.003161430001,0.000593998122) (0.003021582314,-0.0007281567403) (0.001323281321,0.003425247352) (0.000153895116,-2.106898784e-05) (-8.837799499e-05,4.708904342e-05) (-0.0002351259882,-0.0004504596224) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.00120491923,-0.0006954319024) (-0.0004018509714,-0.0002317491148) (-2.881832856e-06,-1.552301522e-06) (0.0002608576118,0.00015066305) (-0.0001098839173,-6.369737497e-05) (-1.133378042e-06,-5.385365682e-07) (0.0001009245097,5.832793225e-05) (-4.180661279e-05,-2.439821253e-05) (3.591155422e-15,5.585073826e-13) (-2.619837783e-05,-1.515731732e-05) (8.13877745e-06,4.710104711e-06) (3.386716518e-05,1.93433543e-05) (0.0001264222079,7.295113883e-05) (8.990255236e-15,1.635778494e-12) (-1.120518382e-05,-6.500654279e-06) (3.3391275e-06,1.938786414e-06) (1.487977805e-05,8.382717544e-06) (5.324282293e-05,3.070208079e-05) -(0.001480481965,0.003471561129) (2.026852805e-05,4.783427145e-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.001073064992,0.0004153958342) (-0.0003237382732,0.0001257301157) (0.0001091449379,0.0005809009632) (-2.402722223e-05,-9.970412375e-05) (2.48665532e-05,-9.606735507e-06) (3.034858418e-05,0.0002216764715) (-1.686648747e-05,-3.165548155e-05) (2.156641899e-05,-1.125700357e-05) (0,2.117582368e-22) (-5.29395592e-22,8.470329473e-22) (2.563922606e-08,5.99147133e-08) (5.285318852e-07,-2.263596034e-07) (-1.410013544e-05,3.383256493e-08) (0,8.470329473e-22) (1.588186776e-22,1.058791184e-22) (1.881791296e-08,5.99063372e-08) (6.039419819e-07,-1.900651729e-07) (-8.549209971e-06,-3.489765055e-07) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(-0.01877066008,0.03252242126) (-0.000254749116,0.0004417327757) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) -(0.0003954962568,0) (0.000109955076,0) (0.0001977922274,0) (8.108557118e-05,0) (2.208178147e-05,0) (9.463684527e-05,0) (1.015255043e-05,0) (7.491145138e-06,0) (0,-2.455692444e-24) (1.058791184e-22,-1.654361225e-24) (5.405030395e-06,-1.706060013e-24) (2.211197393e-05,0) (3.771449448e-07,-8.271806126e-25) (0,0) (2.64697796e-23,-3.101927297e-25) (4.162251518e-06,0) (1.625588272e-05,0) (3.258983036e-07,4.135903063e-25) -(0.001825893782,0) (0.0005992904539,0) (1.468170926e-07,0) (0.0009769550525,0) (1.931870888e-05,0) (5.539734027e-08,0) (0.0003741945791,0) (7.462064015e-06,0) (1.440179744e-10,3.30872245e-24) (0.0001436914452,1.240770919e-24) (3.009983921e-05,1.240770919e-24) (1.188930211e-05,5.790264288e-24) (6.846027751e-05,-6.6174449e-24) (3.298348251e-10,-1.654361225e-24) (6.168246237e-05,1.240770919e-24) (1.287856398e-05,4.135903063e-25) (5.274973976e-06,-2.067951531e-24) (2.923274287e-05,-3.30872245e-24) -(0.7722495024,0) (0.0004338880346,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) diff --git a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/vdrpre_ref.dat b/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/vdrpre_ref.dat deleted file mode 100644 index c89adeb160..0000000000 --- a/source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/vdrpre_ref.dat +++ /dev/null @@ -1,216 +0,0 @@ -0.9036422189 0.001372612104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0006933539574 0.0003207966016 5.574429423e-09 2.511302075e-08 0.0007807757694 2.659367318e-09 1.00823263e-08 0.0003582523506 4.144365882e-15 2.535032931e-07 1.132926837e-06 6.899653252e-07 0.0003530091707 9.932994373e-15 1.187090204e-07 4.998180172e-07 3.20232854e-07 0.0001690136515 -2.631170211e-05 1.083470025e-05 1.525418487e-06 9.36771419e-06 1.78875215e-05 6.871657189e-07 4.013384942e-06 8.425363911e-06 1.662972902e-08 6.706189976e-08 1.154313316e-06 5.685174455e-06 8.184414696e-07 6.956507371e-09 3.138895392e-08 6.776824325e-07 2.586153949e-06 1.019758327e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.001227821465 -0.0004860858214 2.883180661e-07 -1.666675582e-06 -0.001151951899 1.243869172e-07 -6.579918199e-07 -0.0004785597137 -9.142336573e-15 8.917090752e-07 -1.211874494e-05 -2.911168185e-06 -0.0004463061911 -2.106064064e-14 4.050786508e-07 -5.222115663e-06 -1.323554898e-06 -0.0001992116476 --2.356776528e-05 -8.860761886e-06 1.00993066e-07 5.151406194e-06 -2.504407087e-05 1.47337298e-07 1.687534044e-06 -1.159299112e-05 -4.13578575e-08 -2.099947577e-07 7.374182398e-07 -7.685921691e-06 1.7695693e-06 -1.805788899e-08 -9.644432613e-08 1.407585271e-07 -3.477240794e-06 1.285429702e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.001089500647 -0.0004313255893 -8.479164895e-07 5.813798962e-07 -0.001023134745 -3.656322993e-07 2.308484711e-07 -0.0004249860464 -5.832087695e-15 -8.473179872e-07 8.455484494e-06 -6.406041417e-06 -0.0004097749354 -1.409879345e-14 -3.770565625e-07 3.738265438e-06 -2.811546928e-06 -0.0001827678461 --1.412327219e-05 -5.263245346e-06 2.170928391e-06 -5.160490033e-06 -1.154678806e-05 8.890744517e-07 -2.022692969e-06 -5.027261675e-06 -7.752497014e-09 -1.797106703e-07 1.636096209e-06 -4.37313989e-06 -4.237607642e-07 -3.235481592e-09 -8.541503278e-08 8.198989831e-07 -2.122111818e-06 -4.623345672e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.0008572971551 -0.0003393978717 6.378225871e-07 1.527305962e-06 -0.0008074505681 2.749320291e-07 6.050731323e-07 -0.0003353955279 2.99612265e-15 -1.271298734e-06 1.824340293e-06 9.395534802e-06 -0.0003314429316 8.976831181e-15 -5.682977618e-07 7.606618144e-07 4.207987407e-06 -0.0001477826719 -2.202911337e-05 8.209473473e-06 -2.393358781e-07 9.028140205e-06 1.388461661e-05 -9.967968774e-08 3.628481674e-06 6.08077902e-06 -9.111756241e-08 -1.61311564e-07 -4.278913942e-07 5.385390549e-06 5.174708833e-07 -3.999734058e-08 -7.468843967e-08 -1.82378012e-07 2.191649848e-06 9.959839506e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0001326847203 4.849002482e-05 4.818692299e-08 1.935864459e-05 -6.848853519e-05 3.441035148e-09 8.262649746e-06 -2.836477959e-05 3.975288555e-08 -1.361437681e-08 4.645829512e-08 7.34604214e-06 -1.198761321e-05 1.643059607e-08 -6.710778683e-09 -7.710825214e-10 4.743595058e-06 -7.081248699e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.001227821465 -0.0004860858214 2.883180661e-07 -1.666675582e-06 -0.001151951899 1.243869172e-07 -6.579918199e-07 -0.0004785597137 -9.142353514e-15 8.917090752e-07 -1.211874494e-05 -2.911168185e-06 -0.0004463061911 -2.106063725e-14 4.050786508e-07 -5.222115663e-06 -1.323554898e-06 -0.0001992116476 --2.356776528e-05 -8.860761886e-06 1.00993066e-07 5.151406194e-06 -2.504407087e-05 1.47337298e-07 1.687534044e-06 -1.159299112e-05 -4.13578575e-08 -2.099947577e-07 7.374182398e-07 -7.685921691e-06 1.7695693e-06 -1.805788899e-08 -9.644432613e-08 1.407585271e-07 -3.477240794e-06 1.285429702e-06 -0 0 0.5524325414 0.2295946203 3.486847113e-05 0.03207189033 0.003610546095 2.735693596e-05 0 0 0 0 0 0 0 0 0 0 -0.002174279865 0.0007365396785 1.491225396e-05 0.0001106122407 0.00169958294 5.817964691e-06 4.294179954e-05 0.0006392683792 2.016775973e-14 3.136626216e-06 0.0001296323595 1.228308133e-05 0.0005642607409 4.465425044e-14 1.382276703e-06 5.456084226e-05 5.470386771e-06 0.0002348051781 -0.0003273544197 0.0001104209466 2.27336703e-05 0.0001024366792 0.000193211443 8.825853263e-06 3.773295097e-05 7.864061948e-05 3.040514456e-07 6.694382753e-07 1.354760776e-05 4.151478559e-05 7.172582475e-06 1.287193259e-07 3.016378876e-07 7.516529596e-06 1.860645205e-05 8.188923193e-06 -0 0 0.3129766268 -0.3154214166 0.002444789775 0.01041622375 -0.01059856323 0.0001823394811 0 0 0 0 0 0 0 0 0 0 -0.001929335321 0.0006535644466 -4.385554536e-05 -3.858443342e-05 0.001509526881 -1.710176485e-05 -1.506561095e-05 0.0005677037438 1.286542256e-14 -2.980478595e-06 -9.044702327e-05 2.702898723e-05 0.0005180746161 2.989326098e-14 -1.286655075e-06 -3.905752458e-05 1.16204089e-05 0.0002154233308 -1.294221071e-05 4.289530334e-06 -1.659594312e-06 -1.384770908e-05 2.491601433e-05 -6.183347679e-07 -5.14020373e-06 1.016773953e-05 1.17515328e-07 4.460996439e-07 -1.305562952e-06 5.623660216e-06 -2.956577157e-06 4.735705616e-08 2.105661829e-07 -7.41829347e-07 3.407806497e-06 -2.251180496e-06 -0 0 0.1700012739 -0.1653870465 -0.004614227397 0.002859494691 -0.001888456874 -0.000971037817 0 0 0 0 0 0 0 0 0 0 -0.001518139238 0.0005142713246 3.29891655e-05 -0.0001013626986 0.001191307737 1.285942987e-05 -3.948822519e-05 0.0004480271728 -6.609351771e-15 -4.471849675e-06 -1.951468884e-05 -3.964254579e-05 0.0004190401967 -1.903330827e-14 -1.939240083e-06 -7.947420538e-06 -1.739203918e-05 0.0001741872879 --2.018692432e-05 -6.690698072e-06 9.375874118e-07 -1.453074853e-05 -1.082301981e-06 4.114329027e-07 -5.87907913e-06 -1.409711099e-06 2.33168581e-07 4.172564248e-07 1.082787557e-06 -2.624044664e-06 -2.111943626e-06 1.042876489e-07 1.915940925e-07 4.40757719e-07 -2.551900235e-07 -1.530740464e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0004764276727 0.0001590293211 1.856865184e-07 6.711764883e-05 -0.000227660586 1.223472492e-08 2.653139384e-05 -8.731240495e-05 1.940585943e-07 -7.60840084e-08 1.56254659e-07 2.002148758e-05 -3.725819712e-05 8.198424472e-08 -3.338176353e-08 -2.576854495e-09 1.293813137e-05 -2.135797344e-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.001089500647 -0.0004313255893 -8.479164895e-07 5.813798962e-07 -0.001023134745 -3.656322993e-07 2.308484711e-07 -0.0004249860464 -5.832087695e-15 -8.473179872e-07 8.455484494e-06 -6.406041417e-06 -0.0004097749354 -1.409879261e-14 -3.770565625e-07 3.738265438e-06 -2.811546928e-06 -0.0001827678461 --1.412327219e-05 -5.263245346e-06 2.170928391e-06 -5.160490033e-06 -1.154678806e-05 8.890744517e-07 -2.022692969e-06 -5.027261675e-06 -7.752497014e-09 -1.797106703e-07 1.636096209e-06 -4.37313989e-06 -4.237607642e-07 -3.235481592e-09 -8.541503278e-08 8.198989831e-07 -2.122111818e-06 -4.623345672e-07 -0 0 0.3129766268 -0.3154214166 0.002444789775 0.01041622375 -0.01059856323 0.0001823394811 0 0 0 0 0 0 0 0 0 0 -0.001929335321 0.0006535644466 -4.385554536e-05 -3.858443342e-05 0.001509526881 -1.710176485e-05 -1.506561095e-05 0.0005677037438 1.286541917e-14 -2.980478595e-06 -9.044702327e-05 2.702898723e-05 0.0005180746161 2.989326098e-14 -1.286655075e-06 -3.905752458e-05 1.16204089e-05 0.0002154233308 -1.294221071e-05 4.289530334e-06 -1.659594312e-06 -1.384770908e-05 2.491601433e-05 -6.183347679e-07 -5.14020373e-06 1.016773953e-05 1.17515328e-07 4.460996439e-07 -1.305562952e-06 5.623660216e-06 -2.956577157e-06 4.735705616e-08 2.105661829e-07 -7.41829347e-07 3.407806497e-06 -2.251180496e-06 -0 0 0.1773146251 0.433331887 0.1714155181 0.003382953609 0.03111151043 0.001215329319 0 0 0 0 0 0 0 0 0 0 -0.001711985122 0.0005799368294 0.0001289750607 1.345925634e-05 0.001340723864 5.02702193e-05 5.285587372e-06 0.0005041506059 8.207112634e-15 2.83210432e-06 6.310665059e-05 5.947743334e-05 0.0004756689389 2.001168648e-14 1.197648256e-06 2.795943324e-05 2.468452575e-05 0.000197641346 -7.581194556e-06 2.556764285e-06 3.232687021e-06 4.059812782e-06 7.937772399e-06 1.224724413e-06 1.516437023e-06 3.168208754e-06 5.157803648e-08 1.627744198e-06 2.741559655e-06 3.366573018e-06 1.463387434e-06 2.004920938e-08 7.394984802e-07 1.103079069e-06 1.763404971e-06 6.333768831e-07 -0 0 0.09631298171 0.2272118415 -0.3235248233 0.0009286991257 0.005543463249 -0.006472162374 0 0 0 0 0 0 0 0 0 0 -0.001347112532 0.0004563358411 -9.701805295e-05 3.535795198e-05 0.001058089612 -3.779997944e-05 1.385396617e-05 0.0003978715538 -4.216240043e-15 4.249231919e-06 1.361577867e-05 -8.723363751e-05 0.0003847407295 -1.274162098e-14 1.805089452e-06 5.689182208e-06 -3.694484786e-05 0.0001598091066 --1.182495048e-05 -3.987974565e-06 -4.162677441e-07 -2.818462581e-06 -7.94720409e-06 -1.687811847e-07 -9.707541565e-07 -3.267560615e-06 4.5680783e-08 1.29571834e-06 -8.502760785e-07 -4.185702972e-06 1.701835954e-06 1.882248603e-08 5.736026091e-07 -2.789607166e-07 -1.691260634e-06 2.561268516e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --7.0653685e-05 -2.358386846e-05 5.409755806e-08 -1.690654988e-05 2.631042364e-05 3.394533255e-09 -6.835778908e-06 1.037398706e-05 1.244898448e-07 1.203052091e-06 4.309446082e-08 -5.928344318e-06 1.312034025e-05 5.168520594e-08 5.460979687e-07 -6.384897489e-10 -3.12359515e-06 6.368116301e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.0008572971551 -0.0003393978717 6.378225871e-07 1.527305962e-06 -0.0008074505681 2.749320291e-07 6.050731323e-07 -0.0003353955279 2.99612138e-15 -1.271298734e-06 1.824340293e-06 9.395534802e-06 -0.0003314429316 8.976832875e-15 -5.682977618e-07 7.606618144e-07 4.207987407e-06 -0.0001477826719 -2.202911337e-05 8.209473473e-06 -2.393358781e-07 9.028140205e-06 1.388461661e-05 -9.967968774e-08 3.628481674e-06 6.08077902e-06 -9.111756241e-08 -1.61311564e-07 -4.278913942e-07 5.385390549e-06 5.174708833e-07 -3.999734058e-08 -7.468843967e-08 -1.82378012e-07 2.191649848e-06 9.959839506e-07 -0 0 0.1700012739 -0.1653870465 -0.004614227397 0.002859494691 -0.001888456874 -0.000971037817 0 0 0 0 0 0 0 0 0 0 -0.001518139238 0.0005142713246 3.29891655e-05 -0.0001013626986 0.001191307737 1.285942987e-05 -3.948822519e-05 0.0004480271728 -6.609348383e-15 -4.471849675e-06 -1.951468884e-05 -3.964254579e-05 0.0004190401967 -1.903330446e-14 -1.939240083e-06 -7.947420538e-06 -1.739203918e-05 0.0001741872879 --2.018692432e-05 -6.690698072e-06 9.375874118e-07 -1.453074853e-05 -1.082301981e-06 4.114329027e-07 -5.87907913e-06 -1.409711099e-06 2.33168581e-07 4.172564248e-07 1.082787557e-06 -2.624044664e-06 -2.111943626e-06 1.042876489e-07 1.915940925e-07 4.40757719e-07 -2.551900235e-07 -1.530740464e-06 -0 0 0.09631298171 0.2272118415 -0.3235248233 0.0009286991257 0.005543463249 -0.006472162374 0 0 0 0 0 0 0 0 0 0 -0.001347112532 0.0004563358411 -9.701805295e-05 3.535795198e-05 0.001058089612 -3.779997944e-05 1.385396617e-05 0.0003978715538 -4.216239619e-15 4.249231919e-06 1.361577867e-05 -8.723363751e-05 0.0003847407295 -1.274162268e-14 1.805089452e-06 5.689182208e-06 -3.694484786e-05 0.0001598091066 --1.182495048e-05 -3.987974565e-06 -4.162677441e-07 -2.818462581e-06 -7.94720409e-06 -1.687811847e-07 -9.707541565e-07 -3.267560615e-06 4.5680783e-08 1.29571834e-06 -8.502760785e-07 -4.185702972e-06 1.701835954e-06 1.882248603e-08 5.736026091e-07 -2.789607166e-07 -1.691260634e-06 2.561268516e-07 -0 0 0.05231486372 0.1191355229 0.6106116436 0.0002549494216 0.0009877368332 0.0344671071 0 0 0 0 0 0 0 0 0 0 -0.00106000464 0.0003590777294 7.297924536e-05 9.288661547e-05 0.0008350366974 2.842315919e-05 3.631240295e-05 0.000313996991 2.16601956e-15 6.375461447e-06 2.937716184e-06 0.000127942769 0.0003111942295 8.112706649e-15 2.720621777e-06 1.157634131e-06 5.529463264e-05 0.0001292186633 -1.844425082e-05 6.220339211e-06 7.754947299e-08 1.251670513e-05 1.290836359e-05 3.575977558e-08 4.76146537e-06 5.160748159e-06 4.994650178e-07 1.038478381e-06 2.99257407e-07 5.798106608e-06 3.446180219e-06 2.299724947e-07 4.482288329e-07 7.967943952e-08 2.377370472e-06 2.154585185e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0001102037839 3.678550585e-05 9.555005325e-11 7.603642434e-06 -9.071892175e-05 6.666198022e-11 2.858733947e-06 -3.449283568e-05 -2.082620184e-07 9.115623675e-07 -4.094696331e-09 1.144003868e-05 3.367879659e-06 -9.376708889e-08 4.014987099e-07 5.302220948e-11 7.752050497e-06 -1.642932086e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0001326847203 4.849002482e-05 4.818692299e-08 1.935864459e-05 -6.848853519e-05 3.441035148e-09 8.262649746e-06 -2.836477959e-05 3.975288555e-08 -1.361437681e-08 4.645829512e-08 7.34604214e-06 -1.198761321e-05 1.643059607e-08 -6.710778683e-09 -7.710825214e-10 4.743595058e-06 -7.081248699e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0004764276727 0.0001590293211 1.856865184e-07 6.711764883e-05 -0.000227660586 1.223472492e-08 2.653139384e-05 -8.731240495e-05 1.940585943e-07 -7.60840084e-08 1.56254659e-07 2.002148758e-05 -3.725819712e-05 8.198424472e-08 -3.338176353e-08 -2.576854495e-09 1.293813137e-05 -2.135797344e-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 --7.0653685e-05 -2.358386846e-05 5.409755806e-08 -1.690654988e-05 2.631042364e-05 3.394533255e-09 -6.835778908e-06 1.037398706e-05 1.244898448e-07 1.203052091e-06 4.309446082e-08 -5.928344318e-06 1.312034025e-05 5.168520594e-08 5.460979687e-07 -6.384897489e-10 -3.12359515e-06 6.368116301e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0001102037839 3.678550585e-05 9.555005325e-11 7.603642434e-06 -9.071892175e-05 6.666198022e-11 2.858733947e-06 -3.449283568e-05 -2.082620184e-07 9.115623675e-07 -4.094696331e-09 1.144003868e-05 3.367879659e-06 -9.376708889e-08 4.014987099e-07 5.302220948e-11 7.752050497e-06 -1.642932086e-06 -0.003347748942 0.001096943732 0.001766290573 0.0001297175262 3.218195218e-05 0.0005289852428 0.0001267216471 7.900401693e-05 -3.678024899e-21 -1.263619667e-20 7.857759294e-10 1.495047999e-08 0.0005271579712 8.821229368e-21 -1.432432641e-21 9.472957288e-10 2.466003812e-08 0.0002246430096 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.001826193754 0.0005996259884 3.094326765e-09 7.202318766e-05 0.0009241761903 3.345771078e-10 3.137072864e-05 0.0003501163637 5.218521059e-07 1.190234463e-06 3.173190988e-09 3.831786075e-05 0.0002140041446 2.294245511e-07 5.511734068e-07 2.063322615e-10 3.548400554e-05 7.270138199e-05 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6.168590575e-06 2.854209586e-07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6.168590575e-06 2.854209586e-07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6.168590575e-06 2.854209586e-07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6.168590575e-06 2.854209586e-07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0003954962568 0.000109955076 0.0001977922274 8.108557118e-05 2.208178147e-05 9.463684527e-05 1.015255043e-05 7.491145138e-06 7.925518446e-24 8.739861962e-23 5.405030395e-06 2.211197393e-05 3.771449448e-07 2.830259203e-23 9.03053587e-24 4.162251518e-06 1.625588272e-05 3.258983036e-07 -0.001826193754 0.0005996259884 1.519023482e-07 0.0009767707396 1.927983033e-05 6.07301205e-08 0.0003740047827 7.42191411e-06 1.429527098e-10 0.00014354114 3.006407607e-05 1.195344781e-05 6.847845822e-05 3.277483158e-10 6.153342444e-05 1.284212565e-05 5.339645016e-06 2.925066896e-05 -0.7722495024 0.0004338880346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 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.267746071e-05 5.206665535e-06 7.625715905e-07 -4.65496513e-06 -8.063969859e-06 3.427822631e-07 -1.999511264e-06 -3.752413887e-06 6.419513256e-09 -3.228035603e-09 -5.644991037e-07 2.45422742e-06 3.141232622e-07 2.611604413e-09 -1.59978858e-09 -3.382566822e-07 1.112587873e-06 4.771075662e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --4.424468069e-05 -1.63585501e-05 -2.949426198e-06 1.440698041e-05 2.638191844e-05 -1.239500174e-06 5.769275466e-06 1.143145952e-05 -2.650542764e-08 1.017365508e-08 1.986553253e-06 -6.613136152e-06 -6.786680823e-07 -1.082984549e-08 4.949054992e-09 1.122147161e-06 -2.967750614e-06 -1.1491065e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --6.836189122e-06 -2.52753869e-06 1.3233033e-06 6.888723837e-07 6.040416221e-06 5.642809777e-07 2.418578957e-07 2.564005635e-06 -8.139000279e-09 8.006536995e-09 -1.222058825e-06 -1.857292946e-06 6.652159707e-07 -3.142757244e-09 4.024746229e-09 -5.545050497e-07 -9.715348892e-07 2.283126943e-07 -0 0 0 0 0 0 0 0 0 0 0 0 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.066291035e-05 3.942389241e-06 -2.454974828e-07 -7.80712862e-06 -4.507597729e-06 -1.143422554e-07 -3.129769696e-06 -2.012551973e-06 -3.55174815e-08 7.279713682e-09 4.526748131e-07 1.831804204e-06 1.50947172e-06 -1.503859704e-08 3.566630938e-09 1.672583298e-07 6.585013663e-07 1.208497837e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4.552063786e-05 1.707593445e-05 2.938541307e-06 -1.61390594e-05 -2.680518861e-05 1.218774734e-06 -6.420436841e-06 -1.155067254e-05 3.133764258e-08 -1.803989205e-08 -1.898597758e-06 6.688946628e-06 9.763133179e-07 1.303120194e-08 -7.957908699e-09 -1.13040852e-06 3.03457776e-06 1.439018902e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.000158868257 -5.364998528e-05 -1.136550433e-05 4.9949915e-05 8.769530541e-05 -4.407087698e-06 1.852516133e-05 3.518829468e-05 -1.293895012e-07 5.685551895e-08 6.681437628e-06 -1.80239673e-05 -2.109339762e-06 -5.403800931e-08 2.461833286e-08 3.750065494e-06 -8.094524692e-06 -3.465855691e-06 -0 0 0 0 0 0 0 0 0 0 0 0 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.454653155e-05 -8.289390726e-06 5.099300127e-06 2.388364253e-06 2.00787576e-05 2.006321424e-06 7.766064496e-07 7.892516758e-06 -3.973152972e-08 4.47445694e-08 -4.110189245e-06 -5.062013931e-06 2.067529819e-06 -1.568151137e-08 2.002049736e-08 -1.853081597e-06 -2.649856465e-06 6.886209862e-07 -0 0 0 0 0 0 0 0 0 0 0 0 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.828704277e-05 1.292957649e-05 -9.460154339e-07 -2.706781017e-05 -1.498356385e-05 -4.065480242e-07 -1.004970015e-05 -6.195033256e-06 -1.733829492e-07 4.068271392e-08 1.522495571e-06 4.992544887e-06 4.691525654e-06 -7.503854486e-08 1.774167144e-08 5.589549328e-07 1.796059125e-06 3.644987744e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --6.750659109e-06 -2.532341766e-06 8.561090506e-07 4.065336279e-06 3.097839114e-06 3.381499291e-07 1.654217152e-06 1.372388352e-06 2.010330062e-08 2.85249559e-07 -5.236262855e-07 -1.980591031e-06 -3.438052269e-07 8.215241334e-09 1.30184787e-07 -2.80091194e-07 -7.326245267e-07 -4.290594215e-07 -0 0 0 0 0 0 0 0 0 0 0 0 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.355998283e-05 7.956232136e-06 -3.311204474e-06 -1.258209643e-05 -1.013482692e-05 -1.222749661e-06 -4.772983578e-06 -4.180882591e-06 -8.300420278e-08 -8.990082459e-07 1.842715948e-06 5.336880375e-06 7.427964181e-07 -3.406710215e-08 -4.027355104e-07 9.291864868e-07 1.954224868e-06 1.033383255e-06 -0 0 0 0 0 0 0 0 0 0 0 0 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.640222866e-06 1.229307269e-06 1.485620427e-06 -6.016152247e-07 -2.32047465e-06 5.566553266e-07 -2.000916356e-07 -9.377460947e-07 -2.548803357e-08 -7.075080414e-07 -1.133575092e-06 1.498857735e-06 -7.280731969e-07 -9.88607198e-09 -3.275187343e-07 -4.591542152e-07 6.397429863e-07 -2.053199728e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --5.677925138e-06 -1.917441569e-06 -2.756103421e-07 6.81822577e-06 1.731630053e-06 -1.127970426e-07 2.589292096e-06 7.360602986e-07 -1.112262845e-07 -6.432813553e-07 4.198986843e-07 -1.478288014e-06 -1.652103902e-06 -4.730643866e-08 -2.902390322e-07 1.384971466e-07 -4.336145158e-07 -1.086793461e-06 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 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.052950285e-05 3.949880954e-06 1.51210643e-09 -1.828366145e-06 -1.068141768e-05 6.640601872e-09 -6.91796325e-07 -4.563102462e-06 -3.363128914e-08 2.161359141e-07 4.975327663e-08 3.821984147e-06 -8.825187523e-08 -1.490405717e-08 9.571363938e-08 2.32596592e-08 1.818206923e-06 1.106945064e-07 -0 0 0 0 0 0 0 0 0 0 0 0 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.674824968e-05 -1.240992437e-05 -5.848429673e-09 5.65873954e-06 3.494510706e-05 -2.40124069e-08 1.996069558e-06 1.390116407e-05 1.388597025e-07 -6.8118587e-07 -1.750889114e-07 -1.029867947e-05 1.906695177e-07 6.180439716e-08 -2.96096666e-07 -7.716258661e-08 -4.849940254e-06 -2.666060775e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --5.677925138e-06 -1.917441569e-06 2.623983706e-09 2.705736583e-07 8.001047839e-06 1.093161963e-08 8.367865009e-08 3.117945082e-06 4.263953679e-08 -5.360846054e-07 1.077086401e-07 -2.892374251e-06 -1.868901922e-07 1.793527129e-08 -2.407962615e-07 3.812961919e-08 -1.587696131e-06 5.297120144e-08 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -8.856280248e-06 2.990775588e-06 -4.867979962e-10 -3.066465432e-06 -5.970698665e-06 -2.215112848e-09 -1.0828462e-06 -2.447352862e-06 1.860730934e-07 -4.874195222e-07 -3.989741534e-08 2.85268047e-06 -4.240810087e-07 8.582314723e-08 -2.133877136e-07 -1.150124137e-08 1.076132297e-06 2.803855588e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.05500152073 0.001227060815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.02313962507 0.0003730815018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0001744850416 6.438542776e-05 4.727999986e-08 -1.731860212e-05 0.0001088142536 3.213753961e-09 -7.591417373e-06 4.631734865e-05 8.421468631e-08 2.821795455e-07 -3.76066822e-08 1.280151065e-05 -5.607761692e-06 3.633645526e-08 1.313271817e-07 7.270641948e-10 8.322540632e-06 -4.898342195e-06 -0 0 -0.03123709957 0.005457329582 3.349829056e-05 0.004118926643 -0.0006764128532 -4.648986806e-05 0 0 0 0 0 0 0 0 0 0 --0.04097665852 -0.0005653103161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --0.0006089575134 -0.0002022892077 -1.82866595e-07 5.360056509e-05 -0.000355994481 -1.162092974e-08 2.190384159e-05 -0.0001411024776 -3.47712698e-07 -8.89332622e-07 1.323433047e-07 -3.449481992e-05 1.211565436e-05 -1.506806292e-07 -4.06269586e-07 -2.411993805e-09 -2.219979713e-05 1.179758455e-05 -0 0 -0.01769715092 -0.007497382235 0.002348720078 0.001337734105 0.00198557343 -0.0003098643221 0 0 0 0 0 0 0 0 0 0 --0.03636041334 -0.0005016250105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --9.408924789e-05 -3.12554472e-05 8.204577853e-08 2.56292075e-06 -8.150866065e-05 5.290414418e-09 9.182465056e-07 -3.16484126e-05 -1.067718576e-07 -6.998934486e-07 -8.141302184e-08 -9.687837091e-06 -1.187550585e-05 -4.372662928e-08 -3.303927693e-07 1.191878206e-09 -7.267415713e-06 -2.34402844e-06 -0 0 -0.009612660953 -0.003931153177 -0.004432908155 0.000367238998 0.0003537903876 0.001650163602 0 0 0 0 0 0 0 0 0 0 --0.02861097789 -0.0003947144921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0001467579666 4.875143525e-05 -1.522102462e-08 -2.904609389e-05 6.082498957e-05 -1.072015432e-09 -1.188259775e-05 2.484162841e-05 -4.659377501e-07 -6.363580056e-07 3.015699711e-08 9.55488511e-06 -2.694724876e-05 -2.092389283e-07 -2.927859312e-07 -3.595126105e-10 4.925817107e-06 -1.240734033e-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 -1.848351766e-07 2.454211026e-07 -9.747079871e-10 -9.345638175e-10 -2.474129923e-07 -1.120301354e-09 -9.854391448e-10 -2.7895069e-07 -7.696860549e-13 -6.31651833e-09 -6.942452927e-09 1.541135678e-08 -4.127877293e-08 -1.804270027e-12 -6.546126686e-09 -7.188655159e-09 1.583866062e-08 -4.309022012e-08 -0 0 0 0 0 0 0 0 0 0 0 0 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.273142019e-07 -3.718733855e-07 -5.041339669e-08 6.202418698e-08 3.650316486e-07 -5.239999409e-08 6.43116357e-08 3.726271777e-07 1.697903053e-12 -2.221863334e-08 7.426235622e-08 -6.502508155e-08 5.218836632e-08 3.825540988e-12 -2.233778155e-08 7.510731388e-08 -6.546279239e-08 5.078923312e-08 -0 0 0 0 0 0 0 0 0 0 0 0 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.90440463e-07 -3.299798103e-07 1.482610886e-07 -2.16356535e-08 3.242119424e-07 1.540285004e-07 -2.256295948e-08 3.30912416e-07 1.083126764e-12 2.111254466e-08 -5.181429301e-08 -1.430880454e-07 4.791662062e-08 2.560963074e-12 2.079252291e-08 -5.376577114e-08 -1.390586164e-07 4.659686748e-08 -0 0 0 0 0 0 0 0 0 0 0 0 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.28539362e-07 -2.596517528e-07 -1.115254536e-07 -5.68376423e-08 2.558657287e-07 -1.158195494e-07 -5.913940216e-08 2.611533847e-07 -5.564340246e-13 3.16768341e-08 -1.117935969e-08 2.098626317e-07 3.87569464e-08 -1.630587964e-12 3.133838635e-08 -1.094025283e-08 2.081263168e-07 3.767735807e-08 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0001931912779 5.368485586e-05 -9.775359801e-05 -4.049080009e-05 1.078965538e-05 -4.583002234e-05 -4.55868805e-06 3.391143079e-06 4.519688456e-25 -4.658919349e-24 -2.593425289e-06 1.060785241e-05 1.637591387e-07 -1.760272011e-24 -2.553818192e-25 -2.073590041e-06 8.097769299e-06 1.34008134e-07 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/source/source_lcao/module_deltaspin/CMakeLists.txt b/source/source_lcao/module_deltaspin/CMakeLists.txt index 33e667a7e2..5057402619 100644 --- a/source/source_lcao/module_deltaspin/CMakeLists.txt +++ b/source/source_lcao/module_deltaspin/CMakeLists.txt @@ -10,6 +10,8 @@ list(APPEND objects deltaspin_lcao.cpp sc_parse_json.cpp cal_mw_helper.cpp + lcao_subspace.cpp + diagonalization_engine.cpp ) add_library( diff --git a/source/source_lcao/module_deltaspin/cal_mw.cpp b/source/source_lcao/module_deltaspin/cal_mw.cpp index 842d32c718..1b2b456ecc 100644 --- a/source/source_lcao/module_deltaspin/cal_mw.cpp +++ b/source/source_lcao/module_deltaspin/cal_mw.cpp @@ -38,9 +38,28 @@ * @brief Calculate atomic magnetic moments using real-space projection (LCAO basis). * * @details The DeltaSpin operator computes magnetic moments by projecting the - * density matrix onto atomic orbitals. For each constrained atom: - * M_i = Tr[P_at * (rho_up - rho_dn)] (nspin=2) - * M_i = Tr[P_at * rho_spinor] (nspin=4, decomposed via Pauli matrices) + * density matrix onto atomic orbitals: M_i = Tr[P_at * rho]. + * + * Code paths by spin type: + * --------------------------------------------------------------- + * nspin=2 (collinear): + * - Only z-component of magnetization exists (spins aligned along z-axis) + * - Uses switch_dmr(2) to extract spin-difference density matrix: + * dmr = rho_up - rho_dn (difference between spin-up and spin-down DM) + * - cal_moment() computes M_z = Tr[P_at * (rho_up - rho_dn)] per atom + * - After computation, switch_dmr(0) restores the total density matrix + * - Mi_[iat].x and Mi_[iat].y are set to 0 (physically meaningless for collinear) + * + * nspin=4 (non-collinear): + * - Full 3D magnetization vector (Mx, My, Mz per atom) + * - Uses the spinor density matrix directly (no switch_dmr call): + * dmr = | rho_upup rho_updn | (2x2 block interleaved in memory) + * | rho_dnup rho_dndn | + * - cal_moment() extracts all 3 components via Pauli matrix traces: + * Mx = Tr(rho * sigma_x) = rho_updn + rho_dnup (real part) + * My = Tr(rho * sigma_y) = Im(rho_updn - rho_dnup) + * Mz = Tr(rho * sigma_z) = rho_upup - rho_dndn + * - Output: moments array is interleaved [Mx, My, Mz, Mx, My, Mz, ...] * * @param step Current SCF iteration number (for logging) * @param print Whether to print moments (unused in this implementation) @@ -52,20 +71,29 @@ void spinconstrain::SpinConstrain>::cal_mi_lcao(const int& ModuleBase::timer::start("spinconstrain::SpinConstrain", "cal_mi_lcao"); // Reset Mi before calculation this->zero_Mi(); - const hamilt::HContainer* dmr = this->dm_->get_DMR_pointer(1); std::vector moments; if(this->nspin_==2) { - // Switch to spin-difference density matrix (rho_up - rho_dn) + // ============================================================ + // nspin=2 (collinear): extract z-component of magnetization + // ============================================================ + // switch_dmr(2) creates a temporary density matrix: + // dmr_tmp[i] = dmr_origin[i] - _DMR[1][i] (rho_up - rho_dn) + // The _DMR[0] pointer is then redirected to dmr_tmp. + // This gives the spin-difference density needed for M_z calculation. this->dm_->switch_dmr(2); - // Compute moments via DeltaSpin operator + // CRITICAL: get_DMR_pointer(1) must be called AFTER switch_dmr(2). + // For nspin=2, _DMR[0] now points to the spin-difference density. + // Getting the pointer before switch_dmr would return stale data. + const hamilt::HContainer* dmr = this->dm_->get_DMR_pointer(1); moments = static_cast, double>>*>(this->p_operator)->cal_moment(dmr, this->get_constrain()); - // Switch back to total density matrix + // Restore _DMR[0] to point to the total density matrix (rho_up + rho_dn). + // This must be done before any subsequent code uses the density matrix. this->dm_->switch_dmr(0); - // For nspin=2, only z-component is meaningful + // For nspin=2, only z-component is meaningful (collinear = spins along z) for(int iat=0;iatMi_.size();iat++) { this->Mi_[iat].x = 0.0; @@ -75,8 +103,15 @@ void spinconstrain::SpinConstrain>::cal_mi_lcao(const int& } else if(this->nspin_==4) { - // For nspin=4, moments array contains interleaved [Mx, My, Mz] per atom + // ============================================================ + // nspin=4 (non-collinear): extract full 3D magnetization vector + // ============================================================ + // No switch_dmr call: the spinor density matrix already contains + // all magnetization information in its 2x2 block structure. + // _DMR[0] (index 1 in get_DMR_pointer) is the full spinor DMR. + const hamilt::HContainer* dmr = this->dm_->get_DMR_pointer(1); moments = static_cast, std::complex>>*>(this->p_operator)->cal_moment(dmr, this->get_constrain()); + // moments array layout: [Mx_0, My_0, Mz_0, Mx_1, My_1, Mz_1, ...] for(int iat=0;iatMi_.size();iat++) { this->Mi_[iat].x = moments[iat*3]; @@ -144,6 +179,7 @@ void spinconstrain::SpinConstrain>::cal_mi_pw() const int npol = psi_t->get_npol(); for(int ik = 0; ik < nks; ik++) { + psi_t->load_k_to_gpu(ik); psi_t->fix_k(ik); psi_pointer = psi_t->get_pointer(); onsite_p->tabulate_atomic(ik); diff --git a/source/source_lcao/module_deltaspin/cal_mw_from_lambda.cpp b/source/source_lcao/module_deltaspin/cal_mw_from_lambda.cpp index 1c9fa6b58b..7a08f2436f 100644 --- a/source/source_lcao/module_deltaspin/cal_mw_from_lambda.cpp +++ b/source/source_lcao/module_deltaspin/cal_mw_from_lambda.cpp @@ -11,6 +11,7 @@ #include "source_hsolver/hsolver_pw.h" #include "source_estate/elecstate_pw.h" #include "source_estate/elecstate_tools.h" +#include "source_basis/module_ao/parallel_orbitals.h" #ifdef __LCAO #include "source_estate/elecstate_lcao.h" @@ -52,18 +53,43 @@ * Solution: Ensure cal_mw_from_lambda() is called at the start of each SCF step. */ +namespace spinconstrain { +extern void gather_sub_matrix_to_all(const std::complex* local_data, + const Parallel_Orbitals* ParaV, + std::complex* full_data, + int nbands); + +extern void scatter_sub_matrix_to_local(const std::complex* full_data, + const Parallel_Orbitals* ParaV, + std::complex* local_data, + int nbands); + +extern void extract_diagonal_from_local_block(const std::complex* local_data, + const Parallel_Orbitals* ParaV, + double* diag, + int nbands); +} + /** * @brief Compute DeltaSpin correction to the subspace Hamiltonian. * * @details Adds the constraint term to H in the projector subspace: * H += becp^† * ps, where ps = delta_lambda * becp * - * For non-collinear (npol=2), this implements the full 2x2 Pauli matrix: - * H_delta = | lambda_z lambda_x + i*lambda_y | - * | lambda_x - i*lambda_y -lambda_z | + * Code paths by spin type: + * --------------------------------------------------------------- + * nspin=4 (npol=2, non-collinear): full Pauli matrix treatment + * H_delta = | lambda_z lambda_x + i*lambda_y | + * | lambda_x - i*lambda_y -lambda_z | + * The 2x2 Pauli matrix couples spin-up and spin-down channels, + * allowing rotation of the magnetization direction in 3D space. + * projector coefficients are mixed: ps_up = c0*becp_up + c2*becp_dn * - * For collinear (npol=1), only the diagonal z-component with spin_sign: + * nspin=2 (npol=1, collinear): diagonal z-component only * H_delta = lambda_z * spin_sign + * where spin_sign = +1 for spin-up k-points, -1 for spin-down k-points. + * This is a simple scalar correction: different sign per spin channel. + * No spin-flip terms exist in collinear mode. * * @param h_tmp Subspace Hamiltonian (nbands x nbands, modified in place) * @param becp_k Projector coefficients for k-point ik @@ -124,6 +150,10 @@ void spinconstrain::SpinConstrain>::calculate_delta_hcc(std // | lambda_x - i*lambda_y -lambda_z | // Then: ps_up = coeff0 * becp_up + coeff2 * becp_dn // ps_dn = coeff1 * becp_up + coeff3 * becp_dn + // + // The spin-flip terms (coeff1, coeff2) couple spin-up and spin-down + // projector coefficients, enabling rotation of the magnetization + // direction in the full 3D space. for (int iat = 0; iat < this->Mi_.size(); iat++) { const int nproj = nh_iat[iat]; @@ -152,8 +182,22 @@ void spinconstrain::SpinConstrain>::calculate_delta_hcc(std // ============================================================= // nspin=2 (collinear): only z-component with spin_sign // ============================================================= - // ps = lambda_z * spin_sign * becp - // spin_sign = +1 for spin-up k-points, -1 for spin-down + // In collinear mode, spins are constrained along the z-axis only. + // The DeltaSpin correction is a simple scalar: + // H_delta = lambda_z * spin_sign + // where spin_sign = +1 for spin-up k-points, -1 for spin-down. + // + // This means: + // - For spin-up bands: H += +lambda_z (lowers energy) + // - For spin-down bands: H += -lambda_z (raises energy) + // + // The sign difference creates an energy splitting between spin-up + // and spin-down states, which drives the magnetization toward + // the target value. Positive lambda_z increases M_z (more spin-up + // occupation, less spin-down). + // + // Note: effective_lambda[iat][0] (lambda_x) and [1] (lambda_y) + // are zero for collinear mode (constrained by init_sc.cpp). for (int iat = 0; iat < this->Mi_.size(); iat++) { const int nproj = nh_iat[iat]; @@ -336,10 +380,10 @@ void spinconstrain::SpinConstrain>::update_psi_charge_pw_cp hsolver::HSolverPW, base_device::DEVICE_CPU> hsolver_pw_obj( this->pw_wfc_, PARAM.inp.calculation, - PARAM.inp.basis_type, - PARAM.inp.ks_solver, + this->basis_type_, + this->ks_solver_, PARAM.globalv.use_uspp, - PARAM.inp.nspin, + this->nspin_, hsolver::DiagoIterAssist>::SCF_ITER, hsolver::DiagoIterAssist>::PW_DIAG_NMAX, hsolver::DiagoIterAssist>::PW_DIAG_THR, @@ -412,6 +456,7 @@ void spinconstrain::SpinConstrain>::update_psi_charge_pw_gp std::complex* s_k = this->sub_s_save + ik * nbands * nbands; std::complex* becp_k = this->becp_save + ik * size_becp; + psi_t->load_k_to_gpu(ik); psi_t->fix_k(ik); base_device::memory::synchronize_memory_op, base_device::DEVICE_GPU, base_device::DEVICE_GPU>()(h_tmp, h_k, nbands * nbands); @@ -424,10 +469,9 @@ void spinconstrain::SpinConstrain>::update_psi_charge_pw_gp nbands, psi_t[0], &this->pelec->ekb(ik, 0)); - } - base_device::memory::delete_memory_op, base_device::DEVICE_GPU>()(h_tmp); - base_device::memory::delete_memory_op, base_device::DEVICE_GPU>()(s_tmp); + psi_t->store_k_from_gpu(ik); + } // Free GPU memory for saved subspace data base_device::memory::delete_memory_op, base_device::DEVICE_GPU>()(sub_h_save); @@ -443,10 +487,10 @@ void spinconstrain::SpinConstrain>::update_psi_charge_pw_gp hsolver::HSolverPW, base_device::DEVICE_GPU> hsolver_pw_obj( this->pw_wfc_, PARAM.inp.calculation, - PARAM.inp.basis_type, - PARAM.inp.ks_solver, + this->basis_type_, + this->ks_solver_, PARAM.globalv.use_uspp, - PARAM.inp.nspin, + this->nspin_, hsolver::DiagoIterAssist, base_device::DEVICE_GPU>::SCF_ITER, hsolver::DiagoIterAssist, base_device::DEVICE_GPU>::PW_DIAG_NMAX, hsolver::DiagoIterAssist, base_device::DEVICE_GPU>::PW_DIAG_THR, @@ -504,42 +548,399 @@ void spinconstrain::SpinConstrain>::cal_mw_from_lambda( ModuleBase::timer::start("spinconstrain::SpinConstrain", "cal_mw_from_lambda"); #ifdef __LCAO - if (PARAM.inp.basis_type == "lcao") + if (this->basis_type_ == "lcao") { // ============================================================= // LCAO PATH: Update lambda in operator, solve, compute Mi // ============================================================= + // + // This function is called from the BFGS lambda optimization loop + // (run_lambda_loop) to compute magnetic moments Mi for a given lambda. + // + // i_step semantics: + // i_step = -1: Initialization step from main loop (compute initial Mi) + // i_step = 0: First BFGS iteration (delta_lambda != 0) + // i_step = 1,2,...: Subsequent BFGS iterations + // i_step = -2: SPECIAL - build subspace cache at current lambda + // (only called by lambda_loop when acceleration activates, + // NOT from the main loop) + // + // Three execution paths: + // 1. i_step == -2: Full diagonalization + subspace cache build + // 2. accel_enabled + subspace_built: Accelerated (subspace/first-order) + // 3. else (default): Full HSolverLCAO diagonalization (original behavior) + // + // IMPORTANT: Path 3 (full diagonalization) is the DEFAULT and ONLY path + // used when acceleration is disabled (sc_acceleration_mode = "off"). + // This ensures the original correctness is preserved. The accelerated + // paths are opt-in and only activate once RMS drops below the threshold. + // ============================================================= psi::Psi>* psi_t = static_cast>*>(this->psi); hamilt::Hamilt>* hamilt_t = static_cast>*>(this->p_hamilt); - hsolver::HSolverLCAO> hsolver_t(this->ParaV, PARAM.inp.ks_solver); - if (this->nspin_ == 2) + + // Check if acceleration is configured (user must set sc_acceleration_mode != "off" + // and sc_acceleration_rms_thr > 0 in the input file). + // Note: this only checks configuration; actual activation requires + // acceleration_active_ to be set by lambda_loop when RMS crosses threshold. + const bool accel_enabled = (this->sc_acceleration_mode_ != "off") && + (this->sc_acceleration_rms_thr_ > 0.0) && + this->acceleration_active_; + + // ================================================================= + // BRANCH 1: i_step == -2 → Build subspace cache at current lambda + // ================================================================= + // + // PURPOSE: Called by lambda_loop when acceleration is first activated + // (RMS drops below sc_acceleration_rms_thr). Builds a reference subspace + // at the current converged lambda for subsequent accelerated steps. + // + // WHY -2? The main BFGS loop uses i_step = -1, 0, 1, ..., nsc-1. + // Using -2 ensures this branch is NEVER reached from the main loop, + // only from the explicit cal_mw_from_lambda(-2, ...) call in lambda_loop. + // This avoids side effects on the main optimization state. + // + // WHY full diagonalization? Subspace methods cannot replace the full + // solver for large lambda steps because they don't correctly update + // the wavefunction and density matrix. Subspace is only valid for + // small perturbations near convergence. + // ================================================================= + if (i_step == -2 && accel_enabled) { - dynamic_cast, double>>*>(this->p_operator) - ->update_lambda(); + // Step 1: Update DeltaSpin operator with current lambda + if (this->nspin_ == 2) + { + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + } + else if (this->nspin_ == 4) + { + dynamic_cast, std::complex>>* >( + this->p_operator) + ->update_lambda(); + } + + // Step 2: Full diagonalization (same as default path) + // Must use full solver to get correct wavefunctions at this lambda + hsolver::HSolverLCAO> hsolver_t(this->ParaV, this->ks_solver_); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, + this->pelec->wg, + this->pelec->klist, + this->pelec->eferm, + this->pelec->f_en, + this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + // Step 3: Cache subspace data for subsequent accelerated steps + this->free_lcao_subspace_cache(); + const int nk = psi_t->get_nk(); + const int nbands = this->nbands_; + const int nlocal = this->ParaV->get_global_row_size(); + const int nn = nbands * nbands; + this->lcao_nbands_ = nbands; + this->lcao_nk_ = nk; + this->lcao_nlocal_ = nlocal; + + this->lcao_sub_h_save = new std::complex[nk * nn]; + this->lcao_sub_s_save = new std::complex[nk * nn]; + this->lcao_PI_sub_save_.resize(nk); + this->lcao_PI_sub_diag_.resize(nk); + this->lcao_ekb_save_.resize(nk * nbands); + + const int nloc_eij = this->ParaV->nrow * this->ParaV->ncol_bands; + const int nat = this->get_nat(); + + for (int ik = 0; ik < nk; ik++) + { + psi_t->fix_k(ik); + + this->calculate_lcao_sub_hs( + this->p_hamilt, psi_t[0], this->ParaV, + this->lcao_sub_h_save + ik * nn, + this->lcao_sub_s_save + ik * nn, + ik, nbands, nlocal); + + if (this->nspin_ == 2) + { + auto* dspin_op = dynamic_cast, double>>*>( + this->p_operator); + for (int iat = 0; iat < nat; iat++) + { + if (!dspin_op->get_constraint_atom_list()[iat]) + { + continue; + } + this->lcao_PI_sub_save_[ik][iat].resize(nloc_eij, {0.0, 0.0}); + this->calculate_PI_sub_from_hr( + dspin_op->get_pre_hr(iat), + psi_t[0], this->ParaV, + this->kv_.kvec_d[ik], + this->lcao_PI_sub_save_[ik][iat].data(), + nbands, nlocal); + + this->lcao_PI_sub_diag_[ik][iat].resize(nbands, 0.0); + extract_diagonal_from_local_block( + this->lcao_PI_sub_save_[ik][iat].data(), + this->ParaV, + this->lcao_PI_sub_diag_[ik][iat].data(), + nbands); + } + } + else if (this->nspin_ == 4) + { + auto* dspin_op = dynamic_cast, std::complex>>* >( + this->p_operator); + for (int iat = 0; iat < nat; iat++) + { + if (!dspin_op->get_constraint_atom_list()[iat]) + { + continue; + } + this->lcao_PI_sub_save_[ik][iat].resize(nloc_eij, {0.0, 0.0}); + this->calculate_PI_sub_from_hr( + dspin_op->get_pre_hr(iat), + psi_t[0], this->ParaV, + this->kv_.kvec_d[ik], + this->lcao_PI_sub_save_[ik][iat].data(), + nbands, nlocal); + + this->lcao_PI_sub_diag_[ik][iat].resize(nbands, 0.0); + extract_diagonal_from_local_block( + this->lcao_PI_sub_save_[ik][iat].data(), + this->ParaV, + this->lcao_PI_sub_diag_[ik][iat].data(), + nbands); + } + } + + // Save eigenvalues for Fermi weight calculation + for (int ib = 0; ib < nbands; ib++) + this->lcao_ekb_save_[ik * nbands + ib] = this->pelec->ekb(ik, ib); + } + // Record the lambda at which subspace was built + this->lcao_lambda_in_sub_ = this->lambda_; + this->lcao_subspace_initialized_ = true; + + // Compute Mi via subspace method at lambda_ref (V=I). + // This ensures subsequent subspace Mi values are consistent with + // the reference, avoiding mixed full/subspace gradient artifacts. + { + std::vector>> vcc_identity(nk, + std::vector>(nn, {0.0, 0.0})); + for (int ik = 0; ik < nk; ik++) + for (int ib = 0; ib < nbands; ib++) + vcc_identity[ik][ib + ib * nbands] = {1.0, 0.0}; + + this->cal_mi_lcao_subspace(vcc_identity, nbands, nk, this->get_npol()); + } + + // Signal BFGS to reset history on next iteration + this->subspace_just_activated_ = true; } - else if (this->nspin_ == 4) + // ================================================================= + // BRANCH 2: Accelerated path (opt-in, only after RMS drops below threshold) + // ================================================================= + // + // PURPOSE: When the BFGS loop is near convergence (RMS < sc_acceleration_rms_thr), + // lambda changes are small. Subspace methods can approximate the response + // much faster than full diagonalization while maintaining accuracy. + // + // Two modes: + // "first_order": Only eigenvalues change (ε_new = ε_old + Δλ · P_sub). + // Wavefunctions are unchanged. Fastest, but least accurate. + // Uses trace formula for Mi from subspace density matrix. + // + // "subspace": Full subspace diagonalization with wavefunction rotation. + // H_sub(λ) = H₀_sub + (λ - λ_ref) · P_sub is diagonalized + // in the nbands × nbands subspace. Wavefunctions are rotated + // to build the full-space density matrix (DMR) for Mi. + // More accurate than first-order, still faster than full diag. + // + // KEY DESIGN: Both modes compute Mi using the FULL-space density matrix + // (via cal_dm_psi + cal_DMR + cal_mi_lcao), NOT the subspace trace formula. + // This is critical because subspace Mi (cal_mi_lcao_subspace) was found + // to give biased results when wavefunction rotation is not handled correctly. + // + // WHY restore psi after subspace rotation? The accelerated path should + // not modify the wavefunction state that the BFGS loop expects. The + // rotation is only temporary for Mi calculation. The actual wavefunction + // update happens in update_psi_charge() after convergence. + // ================================================================= + else if (accel_enabled && this->acceleration_subspace_built_) { - dynamic_cast, std::complex>>*>( - this->p_operator) - ->update_lambda(); + const int nk = psi_t->get_nk(); + const int nbands = this->nbands_; + const int nrow = this->ParaV->nrow; + const int nloc_wfc = this->ParaV->nloc_wfc; + const int nn = nbands * nbands; + + if (this->sc_acceleration_mode_ == "first_order") + { + // --------------------------------------------------------- + // First-order response mode + // --------------------------------------------------------- + // Δε_ib = Σ_I Δλ_I · ⟨ψ_ib | D_I | ψ_ib⟩ + // Only eigenvalues shift; wavefunctions are frozen at reference. + // Valid when Δλ is small enough that wavefunction mixing is negligible. + // + // nspin=2: Uses σ_z sign (±1) for up/down spin channels. + // nspin=4: Uses Δλ_z only (z-component dominates in collinear-like states). + // --------------------------------------------------------- + for (int ik = 0; ik < nk; ik++) + { + for (int ib = 0; ib < nbands; ib++) + { + double delta_epsilon = 0.0; + for (const auto& [iat, diag] : this->lcao_PI_sub_diag_[ik]) + { + double p_diag = diag[ib]; + double dl = this->lambda_[iat].z - this->lcao_lambda_in_sub_[iat].z; + delta_epsilon += dl * p_diag; + } + if (this->nspin_ == 2) + { + int spin_sign = this->get_spin_sign(ik); + this->pelec->ekb(ik, ib) = this->lcao_ekb_save_[ik * nbands + ib] + - spin_sign * delta_epsilon; + } + else + { + this->pelec->ekb(ik, ib) = this->lcao_ekb_save_[ik * nbands + ib] + - delta_epsilon; + } + } + } + + elecstate::calculate_weights(this->pelec->ekb, + this->pelec->wg, + this->pelec->klist, + this->pelec->eferm, + this->pelec->f_en, + this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + // Compute Mi from original (unrotated) psi with updated Fermi weights + if (this->subspace_exec_precision_ == ModuleGint::GintPrecision::fp32) + { + elecstate::cal_dm_psi_mixed(this->ParaV, this->pelec->wg, *psi_t, *this->dm_); + } + else + { + elecstate::cal_dm_psi(this->ParaV, this->pelec->wg, *psi_t, *this->dm_); + } + this->dm_->cal_DMR(); + this->cal_mi_lcao(i_step); + } + else // sc_acceleration_mode_ == "subspace" + { + // --------------------------------------------------------- + // Subspace diagonalization mode (distributed P_I_sub cache) + // --------------------------------------------------------- + // 1. Scatter H₀_sub(k) to local 2D block + // 2. Accumulate correction: h_sub_local += Σ_I Δλ_I · P_I_sub_local + // 3. Gather h_sub_local back to full matrix for diagonalization + // 4. Same for S_sub (unchanged, just copy) + // --------------------------------------------------------- + std::vector>> vcc_all(nk); + const int nloc_eij = this->ParaV->nrow * this->ParaV->ncol_bands; + + if (this->h_sub_local_buf_.size() != static_cast(nloc_eij)) + { + this->h_sub_local_buf_.resize(nloc_eij, {0.0, 0.0}); + this->h_tmp_buf_.resize(nn); + this->s_tmp_buf_.resize(nn); + this->vcc_buf_.resize(nn); + this->s_copy_buf_.resize(nn); + this->eigenvalues_buf_.resize(nbands, 0.0); + } + + for (int ik = 0; ik < nk; ik++) + { + std::fill(this->h_sub_local_buf_.begin(), this->h_sub_local_buf_.end(), std::complex(0.0, 0.0)); + scatter_sub_matrix_to_local(this->lcao_sub_h_save + ik * nn, this->ParaV, + this->h_sub_local_buf_.data(), nbands); + + this->calculate_delta_hcc_lcao(this->h_sub_local_buf_.data(), this->lcao_PI_sub_save_[ik], + this->lambda_.data(), nbands, ik, true, this->ParaV); + + gather_sub_matrix_to_all(this->h_sub_local_buf_.data(), this->ParaV, this->h_tmp_buf_.data(), nbands); + + std::memcpy(this->s_tmp_buf_.data(), this->lcao_sub_s_save + ik * nn, sizeof(std::complex) * nn); + + std::memcpy(this->s_copy_buf_.data(), this->s_tmp_buf_.data(), sizeof(std::complex) * nn); + + hsolver::DiagoIterAssist>::diag_hegvd( + nbands, nbands, this->h_tmp_buf_.data(), this->s_copy_buf_.data(), nbands, + this->eigenvalues_buf_.data(), this->vcc_buf_.data()); + + vcc_all[ik].assign(this->vcc_buf_.data(), this->vcc_buf_.data() + nn); + for (int ib = 0; ib < nbands; ib++) + this->pelec->ekb(ik, ib) = this->eigenvalues_buf_[ib]; + } + + elecstate::calculate_weights(this->pelec->ekb, + this->pelec->wg, + this->pelec->klist, + this->pelec->eferm, + this->pelec->f_en, + this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + // Rotate psi, build DMR, compute Mi, restore psi + this->cal_mi_lcao_subspace(vcc_all, nbands, nk, this->get_npol()); + } + } + // ================================================================= + // BRANCH 3: DEFAULT PATH — Full HSolverLCAO diagonalization + // ================================================================= + // + // PURPOSE: This is the ORIGINAL behavior of the code. It is ALWAYS used + // when acceleration is disabled (sc_acceleration_mode = "off"), which + // is the default. It is also used during early BFGS iterations before + // RMS drops below the acceleration threshold. + // + // WHY full diagonalization is mandatory: + // - Subspace methods only approximate small perturbations around a + // reference lambda. They do NOT correctly handle large lambda steps + // where the Hamiltonian changes significantly. + // - The full solver rebuilds the Hamiltonian with the updated lambda, + // correctly updates the wavefunctions, and produces a consistent + // density matrix for the next SCF step. + // - Replacing the full solver with subspace diagonalization was the + // ROOT CAUSE of the convergence failure (bias ~0.12-0.39 uB) observed + // in earlier experiments. + // ================================================================= + else + { + hsolver::HSolverLCAO> hsolver_t(this->ParaV, this->ks_solver_); + if (this->nspin_ == 2) + { + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + } + else if (this->nspin_ == 4) + { + dynamic_cast, std::complex>>* >( + this->p_operator) + ->update_lambda(); + } + // Diagonalization without updating charge density (last param = true) + // Charge density is only updated after convergence in update_psi_charge() + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, + this->pelec->wg, + this->pelec->klist, + this->pelec->eferm, + this->pelec->f_en, + this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + this->cal_mi_lcao(i_step); } - // Diagonalization without updating charge density (last param = true means skip charge update) - hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); - elecstate::calculate_weights(this->pelec->ekb, - this->pelec->wg, - this->pelec->klist, - this->pelec->eferm, - this->pelec->f_en, - this->pelec->nelec_spin, - this->pelec->skip_weights); - elecstate::calEBand(this->pelec->ekb,this->pelec->wg,this->pelec->f_en); - - // Note: although update_lambda() modifies lambda in-place above, - // solve() unconditionally recomputes DM and DMR (via cal_dm_psi + - // cal_DMR) from the psi obtained by diagonalizing with the new - // lambda. Therefore the DMR used inside cal_mi_lcao() is consistent - // with the updated lambda and is NOT stale. - this->cal_mi_lcao(i_step); } else #endif @@ -642,6 +1043,7 @@ void spinconstrain::SpinConstrain>::cal_mw_from_lambda( base_device::memory::resize_memory_op, base_device::DEVICE_GPU>()(becp_pointer, size_becp); for (int ik = 0; ik < nk; ++ik) { + psi_t->load_k_to_gpu(ik); psi_t->fix_k(ik); std::complex* h_k = this->sub_h_save + ik * nbands * nbands; @@ -665,6 +1067,8 @@ void spinconstrain::SpinConstrain>::cal_mw_from_lambda( nkb * npol, &this->pelec->ekb(ik, 0)); base_device::memory::synchronize_memory_op, base_device::DEVICE_CPU, base_device::DEVICE_GPU>()(&becp_tmp[ik * size_becp], becp_pointer, size_becp); + + psi_t->store_k_from_gpu(ik); } base_device::memory::delete_memory_op, base_device::DEVICE_GPU>()(becp_pointer); @@ -712,7 +1116,7 @@ void spinconstrain::SpinConstrain>::update_psi_charge(const ModuleBase::TITLE("spinconstrain::SpinConstrain", "update_psi_charge"); ModuleBase::timer::start("spinconstrain::SpinConstrain", "update_psi_charge"); #ifdef __LCAO - if (PARAM.inp.basis_type == "lcao") + if (this->basis_type_ == "lcao") { // TODO: Known issue — the base-class psiToRho() is a no-op for // LCAO, so the charge density rho is NOT recomputed here after the @@ -725,6 +1129,34 @@ void spinconstrain::SpinConstrain>::update_psi_charge(const // cal_mi_lcao() itself is fresh (see comment above), but the // charge density fed back into the next SCF iteration is stale. psi::Psi>* psi_t = static_cast>*>(this->psi); + + // If subspace acceleration was active, psi is still at the reference lambda, + // not at the converged lambda. Must do a final full diag to get correct psi + // for charge density construction. + if (this->acceleration_active_ && this->acceleration_subspace_built_) + { + hamilt::Hamilt>* hamilt_t + = static_cast>*>(this->p_hamilt); + if (this->nspin_ == 2) + { + dynamic_cast, double>>*>( + this->p_operator)->update_lambda(); + } + else if (this->nspin_ == 4) + { + dynamic_cast, std::complex>>* >( + this->p_operator)->update_lambda(); + } + hsolver::HSolverLCAO> hsolver_t(this->ParaV, this->ks_solver_); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, + *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, + this->pelec->klist, this->pelec->eferm, + this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + } + this->pelec->psiToRho(*psi_t); } else diff --git a/source/source_lcao/module_deltaspin/deltaspin_lcao.cpp b/source/source_lcao/module_deltaspin/deltaspin_lcao.cpp index 811d6fef19..1907f5cab2 100644 --- a/source/source_lcao/module_deltaspin/deltaspin_lcao.cpp +++ b/source/source_lcao/module_deltaspin/deltaspin_lcao.cpp @@ -58,10 +58,42 @@ void init_deltaspin_lcao(const UnitCell& ucell, } spinconstrain::SpinConstrain& sc = spinconstrain::SpinConstrain::getScInstance(); + + // Derive acceleration parameters from sc_strategy + std::string accel_mode = inp.sc_acceleration_mode; + double accel_rms_thr = inp.sc_acceleration_rms_thr; + + bool user_overrode_accel_mode = (inp.sc_acceleration_mode != "off"); + bool user_overrode_rms_thr = (inp.sc_acceleration_rms_thr > 0.0); + + if (!user_overrode_accel_mode || !user_overrode_rms_thr) + { + if (inp.sc_strategy == "fast") + { + accel_mode = "subspace"; + accel_rms_thr = 1e10; + } + else if (inp.sc_strategy == "accuracy") + { + accel_mode = "off"; + accel_rms_thr = -1.0; + } + else // normal + { + accel_mode = "subspace"; + if (!user_overrode_rms_thr) + { + accel_rms_thr = 1e-2; + } + } + } + #ifdef __LCAO // LCAO build: pass density matrix pointer sc.init_sc(inp.sc_thr, inp.nsc, inp.nsc_min, inp.alpha_trial, - inp.sccut, inp.sc_drop_thr, ucell, inp.sc_direction_only, + inp.sccut, inp.sc_drop_thr, + accel_mode, accel_rms_thr, + ucell, inp.sc_direction_only, static_cast(pv), inp.nspin, kv, p_hamilt, psi, static_cast*>(dm), @@ -69,7 +101,9 @@ void init_deltaspin_lcao(const UnitCell& ucell, #else // Non-LCAO build: no density matrix sc.init_sc(inp.sc_thr, inp.nsc, inp.nsc_min, inp.alpha_trial, - inp.sccut, inp.sc_drop_thr, ucell, inp.sc_direction_only, + inp.sccut, inp.sc_drop_thr, + accel_mode, accel_rms_thr, + ucell, inp.sc_direction_only, static_cast(pv), inp.nspin, kv, p_hamilt, psi, static_cast(pelec)); @@ -136,6 +170,7 @@ bool run_deltaspin_lambda_loop_lcao(const int iter, if (!sc.mag_converged() && drho > 0 && drho < inp.sc_scf_thr) { /// Charge density is stable enough: optimize lambda for the first time + sc.set_drho(drho); sc.run_lambda_loop(iter); sc.set_mag_converged(true); skip_solve = true; @@ -143,6 +178,7 @@ bool run_deltaspin_lambda_loop_lcao(const int iter, else if (sc.mag_converged()) { /// Already converged: refine lambda for the current charge density + sc.set_drho(drho); sc.run_lambda_loop(iter); skip_solve = true; } @@ -151,6 +187,20 @@ bool run_deltaspin_lambda_loop_lcao(const int iter, return skip_solve; } +template +void run_deltaspin_scan_diagnostic_lcao(const int iter, const Input_para& inp) +{ + if (!inp.sc_mag_switch) + { + return; + } + +#ifdef __LCAO + spinconstrain::SpinConstrain& sc = spinconstrain::SpinConstrain::getScInstance(); + sc.run_lambda_scan_diagnostic(iter); +#endif +} + /// Template instantiations for both spin types template void init_deltaspin_lcao(const UnitCell& ucell, const Input_para& inp, @@ -179,4 +229,7 @@ template bool run_deltaspin_lambda_loop_lcao>(const int ite const double drho, const Input_para& inp); +template void run_deltaspin_scan_diagnostic_lcao(const int iter, const Input_para& inp); +template void run_deltaspin_scan_diagnostic_lcao>(const int iter, const Input_para& inp); + } // namespace ModuleESolver diff --git a/source/source_lcao/module_deltaspin/deltaspin_lcao.h b/source/source_lcao/module_deltaspin/deltaspin_lcao.h index 959109ece7..c04b6cfeb2 100644 --- a/source/source_lcao/module_deltaspin/deltaspin_lcao.h +++ b/source/source_lcao/module_deltaspin/deltaspin_lcao.h @@ -62,6 +62,18 @@ bool run_deltaspin_lambda_loop_lcao(const int iter, const double drho, const Input_para& inp); +/** + * @brief Run diagnostic lambda scan for LCAO DeltaSpin (nspin=2 only) + * + * Compares subspace Mi vs full diagonalization Mi at various lambda values. + * Results written to subspace_vs_full_scan.dat. + * + * @param iter Current iteration number + * @param inp Input parameters + */ +template +void run_deltaspin_scan_diagnostic_lcao(const int iter, const Input_para& inp); + } // namespace ModuleESolver #endif // DELTASPIN_LCAO_H diff --git a/source/source_lcao/module_deltaspin/diagonalization_engine.cpp b/source/source_lcao/module_deltaspin/diagonalization_engine.cpp new file mode 100644 index 0000000000..582103ebcd --- /dev/null +++ b/source/source_lcao/module_deltaspin/diagonalization_engine.cpp @@ -0,0 +1,744 @@ +/** + * @file diagonalization_engine.cpp + * @brief Implementations of DiagonalizationEngine strategies for DeltaSpin. + * + * @par FullSpaceDiagonalizer + * Direct call to HSolverLCAO::solve(). Ground truth, always correct. + * + * @par SubspaceDiagonalizer + * Builds H_sub = H0_sub + dl * P_I_sub, diagonalizes in subspace, + * rotates wavefunctions, computes Mi from full-space DMR. + * + * @par FirstOrderResponseEngine + * Shifts eigenvalues: eps_new = eps_old + dl * diag(P_I_sub). + * Wavefunctions frozen. Fastest but least accurate. + */ + +#include "diagonalization_engine.h" +#include "spin_constrain.h" + +#include +#include +#include + +#include "source_base/timer.h" +#include "source_io/module_parameter/parameter.h" + +#ifdef __LCAO +#include "source_hsolver/hsolver_lcao.h" +#include "source_hsolver/diago_iter_assist.h" +#include "source_hsolver/kernels/hegvd_op.h" +#include "source_estate/elecstate_tools.h" +#include "source_estate/module_dm/cal_dm_psi.h" +#include "source_lcao/module_operator_lcao/dspin_lcao.h" +#endif + +namespace spinconstrain +{ + +// =================================================================== +// SubspaceCache implementation +// =================================================================== + +SubspaceCache::SubspaceCache() = default; + +void SubspaceCache::build( + int nk, + int nbands, + int nat, + const std::complex* H0_sub_raw, + const std::complex* S_sub_raw, + std::vector>>> P_I_sub_all, + const std::vector& ekb_ref_all, + const std::vector>& lambda_ref) +{ + nk_ = nk; + nbands_ = nbands; + nat_ = nat; + + const int nn = nbands * nbands; + + // Copy H0_sub and S_sub + H0_sub_.assign(H0_sub_raw, H0_sub_raw + nk * nn); + S_sub_.assign(S_sub_raw, S_sub_raw + nk * nn); + + // P_I_sub: deep copy + P_I_sub_ = std::move(P_I_sub_all); + + // Eigenvalues + ekb_ref_ = ekb_ref_all; + + // Lambda reference + lambda_ref_ = lambda_ref; + + valid_ = true; +} + +void SubspaceCache::clear() +{ + nk_ = 0; + nbands_ = 0; + nat_ = 0; + valid_ = false; + + H0_sub_.clear(); + S_sub_.clear(); + P_I_sub_.clear(); + ekb_ref_.clear(); + lambda_ref_.clear(); +} + +const std::complex* SubspaceCache::H0_sub(int ik) const +{ + if (!valid_ || ik < 0 || ik >= nk_) return nullptr; + return H0_sub_.data() + ik * nbands_ * nbands_; +} + +const std::complex* SubspaceCache::S_sub(int ik) const +{ + if (!valid_ || ik < 0 || ik >= nk_) return nullptr; + return S_sub_.data() + ik * nbands_ * nbands_; +} + +const std::complex* SubspaceCache::P_I_sub(int ik, int iat) const +{ + if (!valid_ || ik < 0 || ik >= nk_ || iat < 0 || iat >= nat_) return nullptr; + if (P_I_sub_[ik][iat].empty()) return nullptr; + return P_I_sub_[ik][iat].data(); +} + +const double* SubspaceCache::ekb_ref(int ik) const +{ + if (!valid_ || ik < 0 || ik >= nk_) return nullptr; + return ekb_ref_.data() + ik * nbands_; +} + +const std::vector>& SubspaceCache::lambda_ref() const +{ + return lambda_ref_; +} + +// =================================================================== +// FullSpaceDiagonalizer implementation +// =================================================================== + +FullSpaceDiagonalizer::FullSpaceDiagonalizer(SpinConstrain>& sc) + : sc_(sc) +{ +} + +DiagonalizationResult FullSpaceDiagonalizer::solve(int i_step) +{ + ModuleBase::timer::start("FullSpaceDiagonalizer", "solve"); + + DiagonalizationResult result{}; + +#ifdef __LCAO + if (sc_.get_basis_type() != "lcao") + { + // FullSpaceDiagonalizer is LCAO-only; signal failure + result.success = false; + ModuleBase::timer::end("FullSpaceDiagonalizer", "solve"); + return result; + } + + psi::Psi>* psi_t + = static_cast>*>(sc_.psi); + hamilt::Hamilt>* hamilt_t + = static_cast>*>(sc_.p_hamilt); + + // Update DeltaSpin operator with current lambda + if (sc_.get_nspin() == 2) + { + dynamic_cast, double>>*>( + sc_.p_operator) + ->update_lambda(); + } + else if (sc_.get_nspin() == 4) + { + dynamic_cast, std::complex>>* >( + sc_.p_operator) + ->update_lambda(); + } + + // Full diagonalization without charge update (last param = true) + hsolver::HSolverLCAO> hsolver_t(sc_.ParaV, sc_.get_ks_solver()); + hsolver_t.solve(hamilt_t, *psi_t, sc_.pelec, *sc_.dm_, *sc_.pelec->charge, + sc_.get_nspin(), true); + + // Compute weights from new eigenvalues + elecstate::calculate_weights(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->klist, + sc_.pelec->eferm, sc_.pelec->f_en, + sc_.pelec->nelec_spin, sc_.pelec->skip_weights); + elecstate::calEBand(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->f_en); + + // Compute magnetic moments + sc_.cal_mi_lcao(i_step); + + result.success = true; + result.used_subspace_approximation = false; + result.nbands = sc_.get_nbands(); + result.nk = psi_t->get_nk(); +#else + result.success = false; +#endif + + ModuleBase::timer::end("FullSpaceDiagonalizer", "solve"); + return result; +} + +bool FullSpaceDiagonalizer::build_subspace( + const std::vector>& lambda_ref) +{ + // FullSpaceDiagonalizer does not use subspace cache + (void)lambda_ref; + return false; +} + +bool FullSpaceDiagonalizer::has_subspace() const +{ + return false; +} + +void FullSpaceDiagonalizer::clear_subspace() +{ + // No-op: FullSpaceDiagonalizer has no subspace cache +} + +// =================================================================== +// SubspaceDiagonalizer implementation +// =================================================================== + +SubspaceDiagonalizer::SubspaceDiagonalizer(SpinConstrain>& sc) + : sc_(sc) +{ +} + +DiagonalizationResult SubspaceDiagonalizer::solve(int i_step) +{ + ModuleBase::timer::start("SubspaceDiagonalizer", "solve"); + + DiagonalizationResult result{}; + +#ifdef __LCAO + if (sc_.get_basis_type() != "lcao") + { + result.success = false; + ModuleBase::timer::end("SubspaceDiagonalizer", "solve"); + return result; + } + + if (!cache_.is_valid()) + { + result.success = false; + ModuleBase::timer::end("SubspaceDiagonalizer", "solve"); + return result; + } + + const int nk = cache_.nk(); + const int nbands = cache_.nbands(); + const int nn = nbands * nbands; + const int nat = sc_.get_nat(); + + // Resize temporary buffers if needed + if (static_cast(h_tmp_.size()) < nn) + { + h_tmp_.resize(nn); + s_tmp_.resize(nn); + s_copy_.resize(nn); + eigenvalues_.resize(nbands); + eigenvectors_.resize(nn); + } + + // Update DeltaSpin operator with current lambda + if (sc_.get_nspin() == 2) + { + dynamic_cast, double>>*>( + sc_.p_operator) + ->update_lambda(); + } + else if (sc_.get_nspin() == 4) + { + dynamic_cast, std::complex>>* >( + sc_.p_operator) + ->update_lambda(); + } + + // Storage for eigenvectors per k-point + std::vector>> vcc_all(nk); + + double max_eig_change = 0.0; + + for (int ik = 0; ik < nk; ik++) + { + // Copy H0_sub from cache to temporary + std::memcpy(h_tmp_.data(), cache_.H0_sub(ik), sizeof(std::complex) * nn); + + // Build PI_sub for this k-point from cache + std::vector>> PI_sub_for_ik(nat); + for (int iat = 0; iat < nat; iat++) + { + const std::complex* p = cache_.P_I_sub(ik, iat); + if (p != nullptr) + { + PI_sub_for_ik[iat].assign(p, p + nn); + } + } + + sc_.calculate_delta_hcc_lcao(h_tmp_.data(), PI_sub_for_ik, + sc_.get_sc_lambda().data(), nbands, ik, true); + + // Copy S_sub for diag_hegvd (it modifies S in place) + std::memcpy(s_copy_.data(), cache_.S_sub(ik), sizeof(std::complex) * nn); + + // Diagonalize: H_sub * V = S_sub * V * eps + hsolver::DiagoIterAssist>::diag_hegvd( + nbands, nbands, h_tmp_.data(), s_copy_.data(), nbands, + eigenvalues_.data(), eigenvectors_.data()); + + // Store eigenvectors + vcc_all[ik].assign(eigenvectors_.data(), eigenvectors_.data() + nn); + + // Update eigenvalues in pelec + for (int ib = 0; ib < nbands; ib++) + { + double old_eig = cache_.ekb_ref(ik)[ib]; + sc_.pelec->ekb(ik, ib) = eigenvalues_[ib]; + double change = std::abs(eigenvalues_[ib] - old_eig); + if (change > max_eig_change) max_eig_change = change; + } + } + + // Compute weights from new eigenvalues + elecstate::calculate_weights(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->klist, + sc_.pelec->eferm, sc_.pelec->f_en, + sc_.pelec->nelec_spin, sc_.pelec->skip_weights); + elecstate::calEBand(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->f_en); + + // Compute Mi by rotating psi, computing full-space DMR, then restoring psi. + sc_.cal_mi_lcao_subspace(vcc_all, nbands, nk, sc_.get_npol()); + + result.success = true; + result.used_subspace_approximation = true; + result.max_eigenvalue_change = max_eig_change; + result.nbands = nbands; + result.nk = nk; +#else + result.success = false; +#endif + + ModuleBase::timer::end("SubspaceDiagonalizer", "solve"); + return result; +} + +bool SubspaceDiagonalizer::build_subspace( + const std::vector>& lambda_ref) +{ +#ifdef __LCAO + if (sc_.get_basis_type() != "lcao") return false; + + const int nk = sc_.pelec->klist->get_nks(); + const int nbands = sc_.get_nbands(); + const int nat = sc_.get_nat(); + const int nlocal = sc_.ParaV->nrow; + const int nn = nbands * nbands; + + psi::Psi>* psi_t + = static_cast>*>(sc_.psi); + hamilt::Hamilt>* hamilt_t + = static_cast>*>(sc_.p_hamilt); + + // CRITICAL: Run full HSolverLCAO diagonalization BEFORE building subspace. + // This updates psi to be the eigenvectors of H(lambda_ref). The subspace + // C^† H C is only diagonal (and the perturbation approximation valid) + // when C contains the eigenvectors of H(lambda_ref). + // Without this step, psi is stale (from BFGS trial step) and H0_sub + // will have large off-diagonal elements, breaking the perturbation theory. + { + if (sc_.get_nspin() == 2) + { + dynamic_cast, double> > *>( + sc_.p_operator)->update_lambda(); + } + else if (sc_.get_nspin() == 4) + { + dynamic_cast, std::complex > > *>( + sc_.p_operator)->update_lambda(); + } + + hsolver::HSolverLCAO> hsolver_t(sc_.ParaV, sc_.get_ks_solver()); + hsolver_t.solve(hamilt_t, *psi_t, sc_.pelec, *sc_.dm_, *sc_.pelec->charge, + sc_.get_nspin(), true); + + elecstate::calculate_weights(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->klist, + sc_.pelec->eferm, sc_.pelec->f_en, + sc_.pelec->nelec_spin, sc_.pelec->skip_weights); + elecstate::calEBand(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->f_en); + } + + // Clear existing cache + cache_.clear(); + + // Allocate raw arrays for building + std::vector> H0_sub_raw(nk * nn); + std::vector> S_sub_raw(nk * nn); + std::vector>>> P_I_sub_all(nk); + + // Compute H0_sub, S_sub, P_I_sub for each k-point + for (int ik = 0; ik < nk; ik++) + { + psi_t->fix_k(ik); + + // H0_sub = C^dag H C, S_sub = C^dag S C + // NOW C contains eigenvectors of H(lambda_ref), so H0_sub is diagonal + sc_.calculate_lcao_sub_hs( + sc_.p_hamilt, *psi_t, sc_.ParaV, + H0_sub_raw.data() + ik * nn, + S_sub_raw.data() + ik * nn, + ik, nbands, nlocal); + + // P_I_sub = C^dag D_I C for each constrained atom + if (sc_.get_nspin() == 2) + { + auto* dspin_op = dynamic_cast, double> > *>( + sc_.p_operator); + dspin_op->cal_PI_sub( + sc_.kv_.kvec_d[ik], + psi_t->get_pointer(), + nbands, + P_I_sub_all[ik]); + } + else if (sc_.get_nspin() == 4) + { + auto* dspin_op = dynamic_cast, std::complex> > *>( + sc_.p_operator); + dspin_op->cal_PI_sub( + sc_.kv_.kvec_d[ik], + psi_t->get_pointer(), + nbands, + P_I_sub_all[ik]); + } + } + + // Collect eigenvalues + std::vector ekb_ref_all(nk * nbands); + for (int ik = 0; ik < nk; ik++) + { + for (int ib = 0; ib < nbands; ib++) + { + ekb_ref_all[ik * nbands + ib] = sc_.pelec->ekb(ik, ib); + } + } + + // Build the cache + cache_.build(nk, nbands, nat, + H0_sub_raw.data(), S_sub_raw.data(), + std::move(P_I_sub_all), + ekb_ref_all, lambda_ref); + + // CRITICAL: Synchronize lcao_lambda_in_sub_ so that calculate_delta_hcc_lcao + // (which uses this->lcao_lambda_in_sub_ internally) computes the correct + // delta = lambda - lambda_ref. Without this, calculate_delta_hcc_lcao would + // use a stale or uninitialized lcao_lambda_in_sub_, producing a completely + // wrong H_sub and catastrophic Mi errors (RMS jumps from ~0.003 to ~0.35). + sc_.lcao_lambda_in_sub_ = lambda_ref; + + // Compute Mi from the full diagonalization result (consistent with original i_step==-2) + sc_.cal_mi_lcao(-2); + + return true; +#else + (void)lambda_ref; + return false; +#endif +} + +bool SubspaceDiagonalizer::has_subspace() const +{ + return cache_.is_valid(); +} + +void SubspaceDiagonalizer::clear_subspace() +{ + cache_.clear(); +} + +// =================================================================== +// FirstOrderResponseEngine implementation +// =================================================================== + +FirstOrderResponseEngine::FirstOrderResponseEngine(SpinConstrain>& sc) + : sc_(sc) +{ +} + +DiagonalizationResult FirstOrderResponseEngine::solve(int i_step) +{ + ModuleBase::timer::start("FirstOrderResponseEngine", "solve"); + + DiagonalizationResult result{}; + +#ifdef __LCAO + if (sc_.get_basis_type() != "lcao") + { + result.success = false; + ModuleBase::timer::end("FirstOrderResponseEngine", "solve"); + return result; + } + + if (!cache_.is_valid()) + { + result.success = false; + ModuleBase::timer::end("FirstOrderResponseEngine", "solve"); + return result; + } + + const int nk = cache_.nk(); + const int nbands = cache_.nbands(); + const int nat = sc_.get_nat(); + const int nn = nbands * nbands; + + const auto& lambda = sc_.get_sc_lambda(); + const auto& lambda_ref = cache_.lambda_ref(); + + double max_eig_change = 0.0; + + // First-order eigenvalue shift: delta_eps = sum_I dl_I * diag(P_I_sub)_ib + for (int ik = 0; ik < nk; ik++) + { + int spin_sign = sc_.get_spin_sign(ik); + + for (int ib = 0; ib < nbands; ib++) + { + double delta_epsilon = 0.0; + + for (int iat = 0; iat < nat; iat++) + { + const std::complex* p = cache_.P_I_sub(ik, iat); + if (p == nullptr) continue; + + double p_diag = p[ib + ib * nbands].real(); + double dl = lambda[iat][2] - lambda_ref[iat][2]; + delta_epsilon += dl * p_diag; + } + + double old_eig = cache_.ekb_ref(ik)[ib]; + double new_eig = old_eig - spin_sign * delta_epsilon; + sc_.pelec->ekb(ik, ib) = new_eig; + + double change = std::abs(new_eig - old_eig); + if (change > max_eig_change) max_eig_change = change; + } + } + + // Compute weights from shifted eigenvalues + elecstate::calculate_weights(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->klist, + sc_.pelec->eferm, sc_.pelec->f_en, + sc_.pelec->nelec_spin, sc_.pelec->skip_weights); + elecstate::calEBand(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->f_en); + + // Compute Mi from subspace: first-order uses V = I (no rotation), so + // psi unchanged, DMK/DMR computed from current weights. + // Use cal_mi_lcao_subspace with identity eigenvectors. + std::vector>> vcc_identity(nk, + std::vector>(nn, {0.0, 0.0})); + for (int ik = 0; ik < nk; ik++) + { + for (int ib = 0; ib < nbands; ib++) + { + vcc_identity[ik][ib + ib * nbands] = {1.0, 0.0}; + } + } + + sc_.cal_mi_lcao_subspace(vcc_identity, nbands, nk, sc_.get_npol()); + + result.success = true; + result.used_subspace_approximation = true; + result.max_eigenvalue_change = max_eig_change; + result.nbands = nbands; + result.nk = nk; +#else + result.success = false; +#endif + + ModuleBase::timer::end("FirstOrderResponseEngine", "solve"); + return result; +} + +bool FirstOrderResponseEngine::build_subspace( + const std::vector>& lambda_ref) +{ +#ifdef __LCAO + if (sc_.get_basis_type() != "lcao") return false; + + const int nk = sc_.pelec->klist->get_nks(); + const int nbands = sc_.get_nbands(); + const int nat = sc_.get_nat(); + const int nlocal = sc_.ParaV->nrow; + const int nn = nbands * nbands; + + psi::Psi>* psi_t + = static_cast>*>(sc_.psi); + + // CRITICAL: Same as SubspaceDiagonalizer - must run full diagonalization + // first to update psi to eigenvectors of H(lambda_ref). + { + if (sc_.get_nspin() == 2) + { + dynamic_cast, double> > *>( + sc_.p_operator)->update_lambda(); + } + else if (sc_.get_nspin() == 4) + { + dynamic_cast, std::complex > > *>( + sc_.p_operator)->update_lambda(); + } + + hamilt::Hamilt>* hamilt_t + = static_cast>*>(sc_.p_hamilt); + hsolver::HSolverLCAO> hsolver_t(sc_.ParaV, sc_.get_ks_solver()); + hsolver_t.solve(hamilt_t, *psi_t, sc_.pelec, *sc_.dm_, *sc_.pelec->charge, + sc_.get_nspin(), true); + + elecstate::calculate_weights(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->klist, + sc_.pelec->eferm, sc_.pelec->f_en, + sc_.pelec->nelec_spin, sc_.pelec->skip_weights); + elecstate::calEBand(sc_.pelec->ekb, sc_.pelec->wg, sc_.pelec->f_en); + } + + cache_.clear(); + + std::vector> H0_sub_raw(nk * nn); + std::vector> S_sub_raw(nk * nn); + std::vector>>> P_I_sub_all(nk); + + for (int ik = 0; ik < nk; ik++) + { + psi_t->fix_k(ik); + + sc_.calculate_lcao_sub_hs( + sc_.p_hamilt, *psi_t, sc_.ParaV, + H0_sub_raw.data() + ik * nn, + S_sub_raw.data() + ik * nn, + ik, nbands, nlocal); + + if (sc_.get_nspin() == 2) + { + auto* dspin_op = dynamic_cast, double> > *>( + sc_.p_operator); + dspin_op->cal_PI_sub( + sc_.kv_.kvec_d[ik], + psi_t->get_pointer(), + nbands, + P_I_sub_all[ik]); + } + else if (sc_.get_nspin() == 4) + { + auto* dspin_op = dynamic_cast, std::complex> > *>( + sc_.p_operator); + dspin_op->cal_PI_sub( + sc_.kv_.kvec_d[ik], + psi_t->get_pointer(), + nbands, + P_I_sub_all[ik]); + } + } + + std::vector ekb_ref_all(nk * nbands); + for (int ik = 0; ik < nk; ik++) + { + for (int ib = 0; ib < nbands; ib++) + { + ekb_ref_all[ik * nbands + ib] = sc_.pelec->ekb(ik, ib); + } + } + + cache_.build(nk, nbands, nat, + H0_sub_raw.data(), S_sub_raw.data(), + std::move(P_I_sub_all), + ekb_ref_all, lambda_ref); + + sc_.lcao_lambda_in_sub_ = lambda_ref; + + sc_.cal_mi_lcao(-2); + + return true; +#else + (void)lambda_ref; + return false; +#endif +} + +bool FirstOrderResponseEngine::has_subspace() const +{ + return cache_.is_valid(); +} + +void FirstOrderResponseEngine::clear_subspace() +{ + cache_.clear(); +} + +// =================================================================== +// Factory function +// =================================================================== + +std::unique_ptr create_diagonalization_engine( + DiagonalizationStrategy strategy, + SpinConstrain>& sc) +{ + switch (strategy) + { + case DiagonalizationStrategy::FullSpace: + { + std::unique_ptr ptr(new FullSpaceDiagonalizer(sc)); + return ptr; + } + + case DiagonalizationStrategy::Subspace: + { + std::unique_ptr ptr(new SubspaceDiagonalizer(sc)); + return ptr; + } + + case DiagonalizationStrategy::FirstOrder: + { + std::unique_ptr ptr(new FirstOrderResponseEngine(sc)); + return ptr; + } + + default: + { + std::unique_ptr ptr(new FullSpaceDiagonalizer(sc)); + return ptr; + } + } +} + +DiagonalizationStrategy strategy_from_string(const std::string& s) +{ + if (s == "full" || s == "fullspace" || s == "full_space") + return DiagonalizationStrategy::FullSpace; + if (s == "subspace" || s == "subspace_diag") + return DiagonalizationStrategy::Subspace; + if (s == "first_order" || s == "firstorder" || s == "linear_response") + return DiagonalizationStrategy::FirstOrder; + return DiagonalizationStrategy::FullSpace; // default fallback +} + +std::string strategy_to_string(DiagonalizationStrategy s) +{ + switch (s) + { + case DiagonalizationStrategy::FullSpace: + return "FullSpace"; + case DiagonalizationStrategy::Subspace: + return "Subspace"; + case DiagonalizationStrategy::FirstOrder: + return "FirstOrder"; + default: + return "Unknown"; + } +} + +} // namespace spinconstrain diff --git a/source/source_lcao/module_deltaspin/diagonalization_engine.h b/source/source_lcao/module_deltaspin/diagonalization_engine.h new file mode 100644 index 0000000000..ec4f484202 --- /dev/null +++ b/source/source_lcao/module_deltaspin/diagonalization_engine.h @@ -0,0 +1,369 @@ +/** + * @file diagonalization_engine.h + * @brief Abstract interface and implementations for DeltaSpin diagonalization strategies. + * + * @par Purpose + * Replaces the hard-coded if-else branches in cal_mw_from_lambda() with a + * strategy-pattern-based architecture. Three diagonalization strategies are supported: + * + * 1. FullSpaceDiagonalizer: Full HSolverLCAO diagonalization (ground truth) + * 2. SubspaceDiagonalizer: Subspace H_sub = H0_sub + dl*P_I_sub, then diag_hegvd + * 3. FirstOrderResponseEngine: Eigenvalue shifts only (eps_new = eps_old + dl*P_diag) + * + * @par Design principles + * - Strategy pattern: interchangeable diagonalization algorithms via common interface + * - RAII memory management: SubspaceCache uses std::vector instead of raw new[]/delete[] + * - State isolation: each engine manages its own temporary variables + * - Type-safe: template-specialized for std::complex + * + * @par Integration + * SpinConstrain holds a unique_ptr and calls solve() + * instead of the previous if-else branching logic. + */ + +#ifndef DIAGONALIZATION_ENGINE_H +#define DIAGONALIZATION_ENGINE_H + +#include +#include +#include +#include + +#include "source_base/vector3.h" + +namespace spinconstrain +{ + +// Forward declaration +template +class SpinConstrain; + +/** + * @brief Result of a diagonalization operation. + */ +struct DiagonalizationResult +{ + bool success = false; ///< Whether diagonalization succeeded + bool used_subspace_approximation = false; ///< True if subspace/first-order was used + double max_eigenvalue_change = 0.0; ///< Maximum |eps_new - eps_old| across all bands + int nbands = 0; ///< Number of bands + int nk = 0; ///< Number of k-points +}; + +/** + * @brief Enum for diagonalization strategy type. + */ +enum class DiagonalizationStrategy +{ + FullSpace, ///< Full HSolverLCAO diagonalization + Subspace, ///< Subspace diagonalization with wavefunction rotation + FirstOrder ///< First-order eigenvalue response (no wavefunction change) +}; + +/** + * @brief Abstract base class for diagonalization engines in DeltaSpin. + * + * @par Lifecycle + * 1. ESolver creates the appropriate engine based on input parameters + * 2. For subspace strategies: build_subspace() is called once near convergence + * 3. Each lambda step: solve() is called to compute eigenvalues and Mi + * 4. At SCF iteration end: clear_subspace() is called + * + * @par Thread safety + * Not thread-safe. Each SpinConstrain instance owns its own engine. + */ +class DiagonalizationEngine +{ +public: + virtual ~DiagonalizationEngine() = default; + + /** + * @brief Solve the Hamiltonian for the current lambda values. + * + * @details This is the core method called repeatedly during lambda optimization. + * The engine updates pelec->ekb, pelec->wg, and computes Mi via SpinConstrain. + * + * @param i_step Inner lambda step index (-1=init, 0+=optimization, -2=build subspace) + * @return DiagonalizationResult with success status and metadata + */ + virtual DiagonalizationResult solve(int i_step) = 0; + + /** + * @brief Build the subspace cache at the current lambda reference point. + * + * @details Performs a full diagonalization, then extracts H0_sub, S_sub, P_I_sub. + * This is called once when acceleration is activated (RMS drops below threshold). + * + * @param lambda_ref Lambda values at the reference point + * @return true if subspace was successfully built + */ + virtual bool build_subspace(const std::vector>& lambda_ref) = 0; + + /** + * @brief Check if subspace cache is valid and ready for accelerated solves. + */ + virtual bool has_subspace() const = 0; + + /** + * @brief Clear the subspace cache and release associated memory. + * + * @details Called at the end of a lambda loop or when switching strategies. + */ + virtual void clear_subspace() = 0; + + /** + * @brief Get the human-readable name of this strategy. + */ + virtual std::string name() const = 0; + + /** + * @brief Get the strategy type enum. + */ + virtual DiagonalizationStrategy type() const = 0; +}; + +/** + * @brief RAII container for LCAO subspace cache data. + * + * @par Memory layout + * All matrices are stored in column-major order (LAPACK convention). + * - H0_sub: [nk * nbands * nbands], flattened 1D array + * - S_sub: [nk * nbands * nbands], flattened 1D array + * - P_I_sub: nested vector [nk][nat][nbands*nbands] for per-atom projector matrices + * + * @par RAII guarantee + * All memory is managed via std::vector. No manual new[]/delete[] is needed. + * The destructor automatically releases all memory when the cache goes out of scope. + */ +class SubspaceCache +{ +public: + SubspaceCache(); + ~SubspaceCache() = default; + + // Non-copyable, movable + SubspaceCache(const SubspaceCache&) = delete; + SubspaceCache& operator=(const SubspaceCache&) = delete; + SubspaceCache(SubspaceCache&&) = default; + SubspaceCache& operator=(SubspaceCache&&) = default; + + /** + * @brief Build the subspace cache from computed data. + * + * @param nk Number of k-points + * @param nbands Number of bands + * @param nat Number of atoms + * @param H0_sub_raw H0_sub for all k-points [nk * nbands^2] (column-major) + * @param S_sub_raw S_sub for all k-points [nk * nbands^2] (column-major) + * @param P_I_sub_all Per-k, per-atom projector matrices [nk][iat][nbands^2] + * @param ekb_ref_all Eigenvalues from full diagonalization [nk * nbands] + * @param lambda_ref Lambda values at the reference point [nat] + */ + void build(int nk, + int nbands, + int nat, + const std::complex* H0_sub_raw, + const std::complex* S_sub_raw, + std::vector>>> P_I_sub_all, + const std::vector& ekb_ref_all, + const std::vector>& lambda_ref); + + /// @brief Clear all cached data and reset to empty state. + void clear(); + + /// @brief Check if the cache has been built and is valid. + bool is_valid() const { return valid_; } + + /// @brief Number of k-points in the cache. + int nk() const { return nk_; } + + /// @brief Number of bands in the cache. + int nbands() const { return nbands_; } + + /// @brief Number of atoms in the cache. + int nat() const { return nat_; } + + // Accessors (const references to prevent accidental modification) + + /// @brief H0_sub for k-point ik [nbands * nbands, column-major] + const std::complex* H0_sub(int ik) const; + + /// @brief S_sub for k-point ik [nbands * nbands, column-major] + const std::complex* S_sub(int ik) const; + + /// @brief P_I_sub for k-point ik, atom iat [nbands * nbands, column-major] + /// Returns nullptr if the atom is unconstrained (empty matrix). + const std::complex* P_I_sub(int ik, int iat) const; + + /// @brief Reference eigenvalues for k-point ik [nbands] + const double* ekb_ref(int ik) const; + + /// @brief Reference lambda values at which the subspace was built [nat] + const std::vector>& lambda_ref() const; + + /// @brief Full P_I_sub data [nk][nat][nbands^2] for cal_mi_lcao_subspace + const std::vector>>>& P_I_sub_all() const + { + return P_I_sub_; + } + +private: + int nk_ = 0; + int nbands_ = 0; + int nat_ = 0; + bool valid_ = false; + + // Flat arrays for H0_sub and S_sub (column-major, nk * nbands^2) + std::vector> H0_sub_; + std::vector> S_sub_; + + // P_I_sub: [nk][nat][nbands^2], empty vectors for unconstrained atoms + std::vector>>> P_I_sub_; + + // Reference eigenvalues [nk * nbands] + std::vector ekb_ref_; + + // Reference lambda values [nat] + std::vector> lambda_ref_; +}; + +/** + * @brief Full-space diagonalizer using HSolverLCAO. + * + * @par Algorithm + * 1. Update DeltaSpin operator with current lambda + * 2. Call HSolverLCAO::solve() (full O(N^3) diagonalization) + * 3. Compute weights from eigenvalues + * 4. Compute Mi via cal_mi_lcao() + * + * @par Characteristics + * - Always correct (ground truth) + * - Most expensive: O(N^3) per step + * - No subspace cache needed + * - Works for both nspin=2 and nspin=4 + */ +class FullSpaceDiagonalizer : public DiagonalizationEngine +{ +public: + explicit FullSpaceDiagonalizer(SpinConstrain>& sc); + + DiagonalizationResult solve(int i_step) override; + bool build_subspace(const std::vector>& lambda_ref) override; + bool has_subspace() const override; + void clear_subspace() override; + std::string name() const override { return "FullSpace"; } + DiagonalizationStrategy type() const override { return DiagonalizationStrategy::FullSpace; } + +private: + SpinConstrain>& sc_; +}; + +/** + * @brief Subspace diagonalizer with wavefunction rotation. + * + * @par Algorithm + * Phase 1 (build_subspace): + * 1. Full diagonalization to get correct psi at lambda_ref + * 2. Compute H0_sub = C^dag H C, S_sub = C^dag S C + * 3. Compute P_I_sub = C^dag D_I C for each constrained atom + * + * Phase 2 (solve): + * 1. H_sub(lambda) = H0_sub + sum_I (lambda_I - lambda_ref_I) * P_I_sub + * 2. diag_hegvd: H_sub V = S_sub V eps + * 3. Rotate psi: C_new = C_original * V + * 4. Build full-space DM from rotated psi -> compute Mi + * 5. Restore original psi (BFGS loop expects unmodified state) + * + * @par Characteristics + * - Valid only for small delta-lambda (near convergence) + * - Much faster than full diag: O(nbands^3) << O(NLOCAL^3) + * - Requires subspace cache (build_subspace must be called first) + * - Currently only supports nspin=2 + */ +class SubspaceDiagonalizer : public DiagonalizationEngine +{ +public: + explicit SubspaceDiagonalizer(SpinConstrain>& sc); + + DiagonalizationResult solve(int i_step) override; + bool build_subspace(const std::vector>& lambda_ref) override; + bool has_subspace() const override; + void clear_subspace() override; + std::string name() const override { return "Subspace"; } + DiagonalizationStrategy type() const override { return DiagonalizationStrategy::Subspace; } + +private: + SpinConstrain>& sc_; + SubspaceCache cache_; + + // Internal temporary buffers (reused across solve calls) + std::vector> h_tmp_; + std::vector> s_tmp_; + std::vector> s_copy_; + std::vector eigenvalues_; + std::vector> eigenvectors_; +}; + +/** + * @brief First-order eigenvalue response engine. + * + * @par Algorithm + * Phase 1 (build_subspace): same as SubspaceDiagonalizer + * + * Phase 2 (solve): + * 1. delta_eps_ib = sum_I (lambda_I - lambda_ref_I) * diag(P_I_sub)_ib + * 2. eps_new = eps_ref + delta_eps + * 3. Wavefunctions unchanged (V = identity) + * 4. Compute Mi from original psi with updated Fermi weights + * + * @par Characteristics + * - Fastest approximation: O(nbands * nat) per step + * - Valid only for very small delta-lambda + * - Wavefunction mixing is neglected + * - Currently only supports nspin=2 + */ +class FirstOrderResponseEngine : public DiagonalizationEngine +{ +public: + explicit FirstOrderResponseEngine(SpinConstrain>& sc); + + DiagonalizationResult solve(int i_step) override; + bool build_subspace(const std::vector>& lambda_ref) override; + bool has_subspace() const override; + void clear_subspace() override; + std::string name() const override { return "FirstOrder"; } + DiagonalizationStrategy type() const override { return DiagonalizationStrategy::FirstOrder; } + +private: + SpinConstrain>& sc_; + SubspaceCache cache_; +}; + +/** + * @brief Factory function to create the appropriate diagonalization engine. + * + * @param strategy The desired diagonalization strategy + * @param sc Reference to the SpinConstrain instance + * @return unique_ptr to the created engine + */ +std::unique_ptr create_diagonalization_engine( + DiagonalizationStrategy strategy, + SpinConstrain>& sc); + +/** + * @brief Convert string to DiagonalizationStrategy (case-insensitive). + * + * @param s Strategy name: "full", "fullspace", "subspace", "subspace_diag", + * "first_order", "firstorder", "linear_response" + * @return Corresponding enum value + */ +DiagonalizationStrategy strategy_from_string(const std::string& s); + +/** + * @brief Convert DiagonalizationStrategy to string. + */ +std::string strategy_to_string(DiagonalizationStrategy s); + +} // namespace spinconstrain + +#endif // DIAGONALIZATION_ENGINE_H diff --git a/source/source_lcao/module_deltaspin/init_sc.cpp b/source/source_lcao/module_deltaspin/init_sc.cpp index 73da9388ec..d0335f0b6f 100644 --- a/source/source_lcao/module_deltaspin/init_sc.cpp +++ b/source/source_lcao/module_deltaspin/init_sc.cpp @@ -30,6 +30,8 @@ void spinconstrain::SpinConstrain::init_sc(double sc_thr_in, double alpha_trial_in, double sccut_in, double sc_drop_thr_in, + const std::string& sc_acceleration_mode_in, + double sc_acceleration_rms_thr_in, const UnitCell& ucell, bool direction_only_in, Parallel_Orbitals* ParaV_in, @@ -50,7 +52,14 @@ void spinconstrain::SpinConstrain::init_sc(double sc_thr_in, // - alpha_trial: initial trial step size (eV/uB^2), converted to Ry/uB^2 // - sccut: maximum lambda change per step (eV/uB), converted to Ry/uB // - sc_drop_thr: fraction of initial RMS for adaptive threshold - this->set_input_parameters(sc_thr_in, nsc_in, nsc_min_in, alpha_trial_in, sccut_in, sc_drop_thr_in); + // - sc_acceleration_mode: acceleration mode ("off", "first_order", "subspace") + // - sc_acceleration_rms_thr: RMS threshold to activate acceleration (uB) + this->set_input_parameters(sc_thr_in, nsc_in, nsc_min_in, alpha_trial_in, sccut_in, sc_drop_thr_in, + sc_acceleration_mode_in, sc_acceleration_rms_thr_in); + + this->basis_type_ = PARAM.inp.basis_type; + this->ks_solver_ = PARAM.inp.ks_solver; + this->nbands_ = PARAM.inp.nbands; // Step 2: Get atom/orbital/lnchi counts from UnitCell for indexing // atomCounts: {element_type_index -> number_of_atoms_of_this_type} @@ -79,6 +88,12 @@ void spinconstrain::SpinConstrain::init_sc(double sc_thr_in, // Without this fix, the optimizer would waste iterations trying to // drive Mx and My to their (usually non-zero) target values, which // is physically meaningless for collinear calculations. + // + // This masking causes direction_only projection to zero lambda for nspin=2: + // since only constrain.z is non-zero, the direction_only projection (which + // removes the component parallel to target direction z) removes lambda.z entirely. + // The two-phase strategy in esolver_ks_lcao.cpp handles this by temporarily + // disabling direction_only during Phase 1 for collinear calculations. if (nspin_in == 2) { for (int iat = 0; iat < static_cast(this->constrain_.size()); iat++) @@ -91,6 +106,10 @@ void spinconstrain::SpinConstrain::init_sc(double sc_thr_in, // Step 6: Set auxiliary parameters this->atomLabels_ = ucell.get_atomLabels(); // "Fe_0", "Fe_1", etc. this->direction_only_ = direction_only_in; // Only optimize spin direction + // For nspin=2 with direction_only, the two-phase strategy in + // esolver_ks_lcao.cpp temporarily disables direction_only during Phase 1 + // (controlled by sc_dir_phase1_steps). For nspin=4, direction_only + // works correctly without two-phase. this->tpiba = ucell.tpiba; // 2*pi/a lattice scaling this->pw_wfc_ = pw_wfc_in; // PW basis (PW mode only) this->set_decay_grad(); // Initialize gradient decay thresholds diff --git a/source/source_lcao/module_deltaspin/lambda_loop.cpp b/source/source_lcao/module_deltaspin/lambda_loop.cpp index 425e5d74b3..b173648c6a 100644 --- a/source/source_lcao/module_deltaspin/lambda_loop.cpp +++ b/source/source_lcao/module_deltaspin/lambda_loop.cpp @@ -9,6 +9,15 @@ #include "basic_funcs.h" #include "source_io/module_parameter/parameter.h" #include "source_base/constants.h" +#include "source_base/parallel_reduce.h" + +#ifdef __LCAO +#include "source_hsolver/hsolver_lcao.h" +#include "source_hsolver/diago_iter_assist.h" +#include "source_estate/elecstate_tools.h" +#include "source_estate/module_dm/cal_dm_psi.h" +#include "source_lcao/module_operator_lcao/dspin_lcao.h" +#endif /** * @file lambda_loop.cpp @@ -70,12 +79,401 @@ * - alpha_trial is not too small (slow convergence) * - decay_grad thresholds are not too aggressive */ +/** + * @brief Local diagnostic: compare methods near a reference lambda value. + * + * @details Builds subspace at lambda_ref, then scans lambda_ref ± 0.5 eV/uB. + * Tests hypothesis: small perturbations near converged lambda are well-approximated. + * + * Methods compared: + * A: First-order eigenvalue response + * B: Full subspace diagonalization + * C: Full HSolverLCAO diagonalization (ground truth) + * + * @param outer_step Current SCF outer iteration number + * @param lambda_ref_ry Reference lambda in Ry/uB (where subspace is built) + * @param label Label for output file + */ +template <> +void spinconstrain::SpinConstrain>::run_lambda_local_diagnostic( + int outer_step, double lambda_ref_ry, const std::string& label) +{ +#ifndef __LCAO + return; +#else + if (this->basis_type_ != "lcao") return; + if (this->nspin_ != 2) return; + + int nat = this->get_nat(); + double scan_half_range_ev = 0.5; + int nsteps = 11; + + std::cout << "\n" << std::string(80, '-') << std::endl; + std::cout << "[DS-LOCAL] === Local diagnostic: " << label << " ===" << std::endl; + std::cout << "[DS-LOCAL] Subspace built at lambda_ref = " << lambda_ref_ry * ModuleBase::Ry_to_eV << " eV/uB" << std::endl; + std::cout << "[DS-LOCAL] Scan range: lambda_ref ± " << scan_half_range_ev << " eV/uB, " << nsteps << " steps" << std::endl; + + // Set lambda to reference value and build subspace + this->free_lcao_subspace_cache(); + for (int ia = 0; ia < nat; ia++) { + for (int ic = 0; ic < 3; ic++) { + if (this->constrain_[ia][ic] != 0) + this->lambda_[ia][ic] = lambda_ref_ry; + else + this->lambda_[ia][ic] = 0.0; + } + } + + psi::Psi>* psi_t = static_cast>*>(this->psi); + hamilt::Hamilt>* hamilt_t = static_cast>*>(this->p_hamilt); + + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + + hsolver::HSolverLCAO> hsolver_t(this->ParaV, this->ks_solver_); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + // Cache subspace data at lambda_ref + const int nk = psi_t->get_nk(); + const int nbands = this->nbands_; + const int nlocal = this->ParaV->nrow; + const int nn = nbands * nbands; + this->lcao_nbands_ = nbands; + this->lcao_nk_ = nk; + this->lcao_nlocal_ = nlocal; + + delete[] this->lcao_sub_h_save; + delete[] this->lcao_sub_s_save; + this->lcao_sub_h_save = new std::complex[nk * nn]; + this->lcao_sub_s_save = new std::complex[nk * nn]; + this->lcao_PI_sub_save_.resize(nk); + this->lcao_PI_sub_diag_.resize(nk); + this->lcao_ekb_save_.resize(nk * nbands); + + std::vector>>> PI_sub_full(nk); + for (int ik = 0; ik < nk; ik++) { + PI_sub_full[ik].resize(this->get_nat()); + } + + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + this->calculate_lcao_sub_hs( + this->p_hamilt, psi_t[0], this->ParaV, + this->lcao_sub_h_save + ik * nn, + this->lcao_sub_s_save + ik * nn, + ik, nbands, nlocal); + + auto* dspin_op = dynamic_cast, double>>*>( + this->p_operator); + dspin_op->cal_PI_sub( + this->kv_.kvec_d[ik], + psi_t->get_pointer(), + nbands, + PI_sub_full[ik]); + + const int nloc_eij = this->ParaV->nrow * this->ParaV->ncol_bands; + for (int iat = 0; iat < this->get_nat(); iat++) + { + if (PI_sub_full[ik][iat].empty()) continue; + this->lcao_PI_sub_save_[ik][iat].resize(nloc_eij, {0.0, 0.0}); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global >= nbands) continue; + this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow] + = PI_sub_full[ik][iat][i_global + j_global * nbands]; + } + } + this->lcao_PI_sub_diag_[ik][iat].resize(nbands, 0.0); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global == j_global && i_global < nbands) + { + this->lcao_PI_sub_diag_[ik][iat][i_global] + = this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow].real(); + } + } + } +#ifdef __MPI + Parallel_Reduce::reduce_pool(this->lcao_PI_sub_diag_[ik][iat].data(), nbands); +#endif + } + + for (int ib = 0; ib < nbands; ib++) + this->lcao_ekb_save_[ik * nbands + ib] = this->pelec->ekb(ik, ib); + } + this->lcao_lambda_in_sub_ = this->lambda_; + this->lcao_subspace_initialized_ = true; + + // Save original psi wavefunctions at lambda_ref for restoration in each method + const int nrow = this->ParaV->nrow; + const int nloc_wfc = this->ParaV->nloc_wfc; + std::vector>> psi_save(nk); + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + psi_save[ik].assign(psi_t->get_pointer(), psi_t->get_pointer() + nloc_wfc); + } + + // Helper lambda: restore psi, optionally rotate with V, then compute Mi via full-space DMR + auto compute_mi_full_dm = [this, psi_t, nk, nbands, nrow, nloc_wfc, &psi_save]( + const std::vector>>& vcc_list) -> std::vector> + { + // Restore psi to lambda_ref state + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + std::complex* psi_ptr = psi_t->get_pointer(); + std::memcpy(psi_ptr, psi_save[ik].data(), sizeof(std::complex) * nloc_wfc); + } + + // Rotate psi = C_old * V (no-op if V is identity) + bool is_identity = true; + for (int ik = 0; ik < nk && is_identity; ik++) { + for (int ib = 0; ib < nbands; ib++) { + if (std::abs(vcc_list[ik][ib + ib * nbands] - std::complex{1.0, 0.0}) > 1e-14) { + is_identity = false; + break; + } + for (int jb = 0; jb < nbands; jb++) { + if (ib != jb && std::abs(vcc_list[ik][ib + jb * nbands]) > 1e-14) { + is_identity = false; + break; + } + } + } + } + + if (!is_identity) { + this->rotate_psi_subspace_lcao(*psi_t, this->ParaV, vcc_list, nbands, nrow, nk); + } + + // Build full-space DMK from psi and weights, then DMR + elecstate::cal_dm_psi(this->ParaV, this->pelec->wg, *psi_t, *this->dm_); + this->dm_->cal_DMR(); + + // Compute magnetic moments via real-space projection (same as cal_mi_lcao) + this->cal_mi_lcao(0); + return this->Mi_; + }; + + // Open output file + std::string fname = "local_diagnostic_" + label + ".dat"; + std::ofstream ofs_diag(fname); + ofs_diag << "# Local Diagnostic: Methods near lambda_ref = " << lambda_ref_ry * ModuleBase::Ry_to_eV << " eV/uB" << std::endl; + ofs_diag << "# Methods: (A) First-order response, (B) Subspace diag, (C) Full HSolverLCAO" << std::endl; + ofs_diag << "# Scan: Logarithmic deltas: 0, +/- 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1.0 eV/uB" << std::endl; + ofs_diag << "#" << std::endl; + ofs_diag << "# step delta_lambda_eV "; + ofs_diag << "ekb_A_ib0 ekb_B_ib0 ekb_C_ib0 | "; + ofs_diag << "max_dek_AB max_dek_AC max_dek_BC | "; + ofs_diag << "Mi_A_0 Mi_B_0 Mi_C_0 | "; + ofs_diag << "Mi_A_1 Mi_B_1 Mi_C_1 | "; + ofs_diag << "max_dMi_AB max_dMi_AC max_dMi_BC" << std::endl; + + std::vector deltas_ev = { + 0.0, + -0.00001, 0.00001, + -0.0001, 0.0001, + -0.001, 0.001, + -0.01, 0.01, + -0.1, 0.1, + -1.0, 1.0 + }; + + int step_count = 0; + for (double delta_ev : deltas_ev) { + double delta_lambda_ry = delta_ev / ModuleBase::Ry_to_eV; + + // Set lambda = lambda_ref + delta + for (int ia = 0; ia < nat; ia++) { + for (int ic = 0; ic < 3; ic++) { + if (this->constrain_[ia][ic] != 0) + this->lambda_[ia][ic] = lambda_ref_ry + delta_lambda_ry; + else + this->lambda_[ia][ic] = 0.0; + } + } + + // Method A: First-order eigenvalue response + std::vector> ekb_A(nk); + for (int ik = 0; ik < nk; ik++) { + ekb_A[ik].resize(nbands); + int spin_sign = this->get_spin_sign(ik); + for (int ib = 0; ib < nbands; ib++) { + double delta_epsilon = 0.0; + for (int iat = 0; iat < nat; iat++) { + if (this->lcao_PI_sub_diag_[ik][iat].empty()) continue; + double p_diag = this->lcao_PI_sub_diag_[ik][iat][ib]; + double dl = this->lambda_[iat].z - this->lcao_lambda_in_sub_[iat].z; + delta_epsilon += dl * p_diag; + } + ekb_A[ik][ib] = this->lcao_ekb_save_[ik * nbands + ib] - spin_sign * delta_epsilon; + } + } + // Update pelec ekb and recompute weights for method A + for (int ik = 0; ik < nk; ik++) + for (int ib = 0; ib < nbands; ib++) + this->pelec->ekb(ik, ib) = ekb_A[ik][ib]; + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + + // Method A: first-order response does not change wavefunctions (V = identity) + // Use full-space DMR approach: psi unchanged, cal_dm_psi → cal_DMR → cal_moment + std::vector>> vcc_identity(nk); + for (int ik = 0; ik < nk; ik++) { + vcc_identity[ik].assign(nbands * nbands, {0.0, 0.0}); + for (int ib = 0; ib < nbands; ib++) + vcc_identity[ik][ib + ib * nbands] = {1.0, 0.0}; + } + std::vector> Mi_A = compute_mi_full_dm(vcc_identity); + + // Method B: Full subspace diagonalization + std::vector> ekb_B(nk); + std::vector>> vcc_B(nk); + for (int ik = 0; ik < nk; ik++) { + std::vector> h_tmp(nn), s_tmp(nn); + std::memcpy(h_tmp.data(), this->lcao_sub_h_save + ik * nn, sizeof(std::complex) * nn); + std::memcpy(s_tmp.data(), this->lcao_sub_s_save + ik * nn, sizeof(std::complex) * nn); + + this->calculate_delta_hcc_lcao(h_tmp.data(), PI_sub_full[ik], + this->lambda_.data(), nbands, ik, true); + + std::vector> vcc(nn); + std::vector eigenvalues(nbands, 0.0); + std::vector> s_copy(nn); + std::memcpy(s_copy.data(), s_tmp.data(), sizeof(std::complex) * nn); + + hsolver::DiagoIterAssist>::diag_hegvd( + nbands, nbands, h_tmp.data(), s_copy.data(), nbands, + eigenvalues.data(), vcc.data()); + + vcc_B[ik].assign(vcc.data(), vcc.data() + nn); + ekb_B[ik].assign(eigenvalues.data(), eigenvalues.data() + nbands); + } + // Update pelec ekb and recompute weights for method B + for (int ik = 0; ik < nk; ik++) + for (int ib = 0; ib < nbands; ib++) + this->pelec->ekb(ik, ib) = ekb_B[ik][ib]; + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + + // Method B: subspace diagonalization gives V, rotate psi = C_old * V + // Then use full-space DMR: cal_dm_psi → cal_DMR → cal_moment + std::vector> Mi_B = compute_mi_full_dm(vcc_B); + + // Method C: Full HSolverLCAO diagonalization + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + std::vector> ekb_C(nk); + for (int ik = 0; ik < nk; ik++) { + ekb_C[ik].resize(nbands); + for (int ib = 0; ib < nbands; ib++) + ekb_C[ik][ib] = this->pelec->ekb(ik, ib); + } + this->cal_mi_lcao(0); + std::vector> Mi_C = this->Mi_; + + // Debug: print Mi comparison at delta=0 + if (std::abs(delta_ev) < 1e-10) { + std::cout << "[DS-DEBUG] delta=0 Mi comparison:" << std::endl; + for (int ia = 0; ia < nat; ia++) { + std::cout << " Atom " << ia << ": Mi_A=" << Mi_A[ia].z + << " Mi_B=" << Mi_B[ia].z << " Mi_C=" << Mi_C[ia].z << std::endl; + } + std::cout << "[DS-DEBUG] Pelec Mi (from cal_mi_lcao): "; + for (int ia = 0; ia < nat; ia++) std::cout << Mi_C[ia].z << " "; + std::cout << std::endl; + } + + // Compute differences + double max_dek_AB = 0.0, max_dek_AC = 0.0, max_dek_BC = 0.0; + for (int ik = 0; ik < nk; ik++) { + for (int ib = 0; ib < nbands; ib++) { + double dAB = std::abs(ekb_A[ik][ib] - ekb_B[ik][ib]); + double dAC = std::abs(ekb_A[ik][ib] - ekb_C[ik][ib]); + double dBC = std::abs(ekb_B[ik][ib] - ekb_C[ik][ib]); + if (dAB > max_dek_AB) max_dek_AB = dAB; + if (dAC > max_dek_AC) max_dek_AC = dAC; + if (dBC > max_dek_BC) max_dek_BC = dBC; + } + } + double max_dMi_AB = 0.0, max_dMi_AC = 0.0, max_dMi_BC = 0.0; + for (int ia = 0; ia < nat; ia++) { + double dAB = std::abs(Mi_A[ia].z - Mi_B[ia].z); + double dAC = std::abs(Mi_A[ia].z - Mi_C[ia].z); + double dBC = std::abs(Mi_B[ia].z - Mi_C[ia].z); + if (dAB > max_dMi_AB) max_dMi_AB = dAB; + if (dAC > max_dMi_AC) max_dMi_AC = dAC; + if (dBC > max_dMi_BC) max_dMi_BC = dBC; + } + + // Output + ofs_diag << std::scientific << std::setprecision(8); + ofs_diag << step_count << " " << delta_ev << " "; + ofs_diag << ekb_A[0][0] << " " << ekb_B[0][0] << " " << ekb_C[0][0] << " | "; + ofs_diag << max_dek_AB << " " << max_dek_AC << " " << max_dek_BC << " | "; + ofs_diag << Mi_A[0].z << " " << Mi_B[0].z << " " << Mi_C[0].z << " | "; + ofs_diag << Mi_A[1].z << " " << Mi_B[1].z << " " << Mi_C[1].z << " | "; + ofs_diag << max_dMi_AB << " " << max_dMi_AC << " " << max_dMi_BC << std::endl; + + std::cout << "[DS-LOCAL] delta=" << delta_ev << " eV/uB:" << std::endl; + std::cout << " max|dek| AB=" << max_dek_AB << " AC=" << max_dek_AC << " BC=" << max_dek_BC << std::endl; + std::cout << " max|dMi| AB=" << max_dMi_AB << " AC=" << max_dMi_AC << " BC=" << max_dMi_BC << std::endl; + + step_count++; + } + + ofs_diag.close(); + std::cout << "[DS-LOCAL] Results written to: " << fname << std::endl; + std::cout << std::string(80, '-') << "\n" << std::endl; +#endif +} + template <> void spinconstrain::SpinConstrain>::run_lambda_loop(int outer_step, bool rerun) { int nat = this->get_nat(); int ntype = this->get_ntype(); + // ============================================================= + // RESET ACCELERATION STATE FOR THIS SCF ITERATION + // ============================================================= + // The subspace cache (H₀_sub, S_sub, P_I_sub) is built from the + // wavefunctions and Hamiltonian at a specific lambda during a specific + // SCF iteration. When the charge density changes between SCF iterations, + // the Hamiltonian H(k) and wavefunctions C(k) change, making the cached + // subspace data STALE. Using stale data gives a frozen Mi that does not + // respond to lambda changes (zero gradient). + // + // Fix: reset the acceleration flags at the start of each lambda loop so + // the subspace is rebuilt fresh once RMS drops below the threshold. + this->acceleration_active_ = false; + this->acceleration_subspace_built_ = false; + this->subspace_just_activated_ = false; +#ifdef __LCAO + this->free_lcao_subspace_cache(); +#endif + // ============================================================= // STATE VECTORS (all sized [nat][3]) // ============================================================= @@ -140,14 +538,44 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out // Update lambda, compute new Mi, check convergence // ============================================================= - // Mask unconstrained components of delta_lambda to 0 + // Mask unconstrained components of delta_lambda to 0. + // For nspin=2 (collinear), constrain_[ia].x and constrain_[ia].y are + // forced to 0 in init_sc.cpp, so only delta_lambda.z survives. where_fill_scalar_2d(this->constrain_, 0, zero, delta_lambda); // lambda = initial_lambda + delta_lambda add_scalar_multiply_2d(initial_lambda, delta_lambda, one, this->lambda_); + // ================================================================= // [direction_only mode] Project out parallel component of lambda - // This keeps |lambda| -> 0, only constraining spin direction + // ================================================================= + // + // Physics motivation: + // The constraint energy is E_scon = -sum_i lambda_i . (M_i - M_target_i). + // The lambda vector can be decomposed into: + // lambda_parallel = (lambda . dir) * dir (along target direction) + // lambda_perp = lambda - lambda_parallel (perpendicular to target) + // - lambda_parallel controls the MAGNITUDE of M_i + // - lambda_perp controls the DIRECTION of M_i (rotation) + // + // In direction_only mode, we want to constrain only the spin DIRECTION, + // not the magnitude. So we remove lambda_parallel, leaving only + // lambda_perp to rotate the spin toward the target direction. + // + // CRITICAL: This projection has a devastating effect for nspin=2 (collinear): + // - In collinear mode, constrain_[ia].x = constrain_[ia].y = 0 (set in + // init_sc.cpp), so only lambda_z is non-zero. + // - The target magnetization for collinear mode is also purely along z: + // dir = (0, 0, 1). + // - The parallel component is: lambda . dir = lambda_z. + // - After projection: lambda_z -= lambda_z * 1 = 0. + // RESULT: lambda becomes ZERO for all components, and the constraint + // is completely disabled! + // + // Therefore: direction_only is temporarily disabled during Phase 1 + // (sc_dir_phase1_steps iterations) for collinear calculations. + // See esolver_ks_lcao.cpp for details. + // ================================================================= if(this->direction_only_) for (int ia = 0; ia < nat; ia++) { @@ -203,9 +631,32 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out // Search direction starts as the residual (steepest descent) search = delta_spin; - // [direction_only mode] Modify residual to exclude parallel component - // and adjust target direction without mutating target_mag_ - std::vector> target_mag_adj = this->target_mag_; + // ================================================================= + // [direction_only mode] Modify residual and adjust target magnitude + // ================================================================= + // + // In direction_only mode, we don't care about the MAGNITUDE error + // (|M_i| - |M_target|), only about the DIRECTION error (angle between + // M_i and M_target). This block: + // + // 1. Computes the perpendicular component of delta_spin: + // |delta_spin_perp|^2 = |delta_spin|^2 - (delta_spin . dir)^2 + // This is the error that direction_only actually tries to minimize. + // + // 2. Adjusts target_mag by adding the parallel component: + // target_mag_new = target_mag + (delta_spin . dir) * dir + // This makes the residual parallel component zero by definition, + // so the BFGS optimizer doesn't try to correct the magnitude error. + // + // For nspin=2 (collinear): + // - target direction = (0, 0, 1), delta_spin = (0, 0, Mz - Mz_target) + // - parallel = Mz - Mz_target (the entire residual) + // - |delta_spin_perp|^2 = |delta_spin|^2 - parallel^2 = 0 + // - target_mag is adjusted to include the current Mz + // RESULT: RMS error = 0, optimizer thinks it's converged immediately! + // This is another reason why direction_only is disabled during + // Phase 1 for collinear calculations. + // ================================================================= if(this->direction_only_) for (int ia = 0; ia < nat; ia++) { @@ -220,8 +671,8 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out std::pow(delta_spin[ia].z,2) - std::pow(parallel,2); temp_1[ia][1] = 0; temp_1[ia][2] = 0; - // Adjust target to include parallel component (work on copy, don't mutate target_mag_) - target_mag_adj[ia] += parallel * dir; + // Adjust target to include parallel component + this->target_mag_[ia] += parallel * dir; } else { temp_1[ia][0] = std::pow(delta_spin[ia].x,2) + @@ -242,6 +693,44 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out mean_error = sum_2d(temp_1) / nat; rms_error = std::sqrt(mean_error); + // ============================================================= + // ============================================================= + // ACCELERATION ACTIVATION CHECK (LCAO nspin=2 only) + // ============================================================= + // + // nspin=4: subspace acceleration is disabled. The pre_hr matrix + // stores I_spin structure (same value in all 4 spin blocks), + // causing pre-computed P_I_sub to lose spin-channel separation. + // Full diagonalization is always used for nspin=4. + // ============================================================= + + const bool nspin_ok = (this->nspin_ == 2); + + const bool accel_enabled = (this->basis_type_ == "lcao") && + nspin_ok && + (this->sc_acceleration_mode_ != "off") && + (this->sc_acceleration_rms_thr_ > 0.0) && + (rms_error < this->sc_acceleration_rms_thr_); + + if (accel_enabled && !this->acceleration_active_) + { + // First time crossing threshold: activate and build subspace at current lambda + this->acceleration_active_ = true; + this->acceleration_subspace_built_ = false; + this->lambda_at_acceleration_ = this->lambda_; + + // Free any cached subspace data from previous SCF iterations +#ifdef __LCAO + this->free_lcao_subspace_cache(); +#endif + + // Build fresh subspace at current lambda using full diagonalization. + // i_step=-2 triggers the special cache-build branch in cal_mw_from_lambda. + this->cal_mw_from_lambda(-2, delta_lambda.data()); + + this->acceleration_subspace_built_ = true; + } + // Set adaptive convergence threshold on first step if(i_step == 0) { @@ -265,7 +754,7 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out this->update_psi_charge(dnu_last_step.data(), rerun, true); // [PW basis] Extra verification: re-compute Mi from scratch - if(PARAM.inp.basis_type == "pw") + if(this->basis_type_ == "pw") { this->cal_mi_pw(); subtract_2d(this->Mi_, this->target_mag_, delta_spin); @@ -306,10 +795,20 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out // For i_step >= 2, compute conjugate direction if (i_step >= 2) { - // Polak-Ribiere beta = ||gradient_new||^2 / ||gradient_old||^2 - beta = mean_error / mean_error_old; - // search = delta_spin + beta * search_old (conjugate direction) - add_scalar_multiply_2d(search, search_old, beta, search); + if (this->subspace_just_activated_) + { + this->subspace_just_activated_ = false; + // Subspace activation changes Mi computation from full-space to subspace. + // The reference Mi (at lambda_ref) was computed via subspace in cal_mw_from_lambda(-2). + // Reset BFGS history to avoid mixing full-space and subspace Mi values. + mean_error_old = mean_error; + search = delta_spin; + } + else + { + beta = mean_error / mean_error_old; + add_scalar_multiply_2d(search, search_old, beta, search); + } } // Cap step size to prevent overshooting @@ -318,15 +817,27 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out // ============================================================= // CUMULATIVE STEP UPDATE // ============================================================= + // dnu is the cumulative search path integral: the total lambda change + // accumulated over all inner BFGS steps. It starts at 0 and grows as: + // dnu += alpha_trial * search (at each inner step) + // + // dnu is what gets applied to lambda at the end of the loop: + // lambda = initial_lambda + dnu dnu_last_step = dnu; // dnu = dnu + alpha_trial * search add_scalar_multiply_2d(dnu, search, alpha_trial, dnu); - // [direction_only mode] Project out parallel component from dnu - // Use target_mag_adj (copy with parallel components added) instead of mutating target_mag_ + // [direction_only] Project out parallel component from dnu. + // This prevents any accumulation of the parallel (magnitude-controlling) + // component in the cumulative step. Without this projection, small + // numerical errors in the parallel component could accumulate over + // many inner steps, eventually affecting the magnitude. + // + // For nspin=2 (collinear): this zeroes dnu.z (the only non-zero component), + // making dnu = 0. This is why direction_only is disabled during Phase 1 for collinear calculations. if(this->direction_only_) for (int ia = 0; ia < nat; ia++) { - const auto& target = target_mag_adj[ia]; + const auto& target = this->target_mag_[ia]; const double norm = std::sqrt(target.x*target.x + target.y*target.y + target.z*target.z); if (norm > 1e-8) { @@ -359,11 +870,13 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out scalar_multiply_2d(search, alpha_plus, temp_1); add_scalar_multiply_2d(dnu, temp_1, one, dnu); - // [direction_only] Project out parallel component from corrected dnu - // Use target_mag_adj (copy) instead of mutating target_mag_ + // [direction_only] Project out parallel component from corrected dnu. + // Same as above: after the optimal step correction, remove any parallel + // component that may have been introduced. + // For nspin=2 collinear: this zeroes the only non-zero component (dnu.z). if(this->direction_only_) for (int ia = 0; ia < nat; ia++) { - const auto& target = target_mag_adj[ia]; + const auto& target = this->target_mag_[ia]; const double norm = std::sqrt(target.x*target.x + target.y*target.y + target.z*target.z); if (norm > 1e-8) { @@ -413,14 +926,19 @@ void spinconstrain::SpinConstrain>::run_lambda_loop(int out * - Debugging: understanding the Mi vs lambda relationship * - Plotting: creating E(lambda) curves for analysis * - Validation: checking that Mi responds monotonically to lambda - * - * @par Output - * Results written to lambda_scan_results.dat with columns: - * step, lambda_eV_uB, Mi_x_0, Mi_y_0, Mi_z_0, Mi_x_1, ... - */ + * + * @par Output + * Results written to lambda_scan_results.dat with columns: + * step, lambda_eV_uB, Mi_x_0, Mi_y_0, Mi_z_0, Mi_x_1, ... + */ + + template <> void spinconstrain::SpinConstrain>::run_lambda_linear_scan(int outer_step) { +#ifndef __LCAO + return; +#else int nat = this->get_nat(); int ntype = this->get_ntype(); @@ -508,6 +1026,10 @@ void spinconstrain::SpinConstrain>::run_lambda_linear_scan( // Save step 0 Mi for consistency check later std::vector> mi_step0; + // Track optimal lambda (minimum RMS to target) for local diagnostic + double min_rms = std::numeric_limits::max(); + double optimal_lambda_ry = 0.0; + // ============================================================= // SCAN LOOP: sweep lambda from start to end // ============================================================= @@ -529,9 +1051,36 @@ void spinconstrain::SpinConstrain>::run_lambda_linear_scan( std::cout << "[DS-DIAG] === Scan step " << istep << "/" << nsteps << " lambda = " << lambda_val_ev << " eV/uB ===" << std::endl; - // Compute magnetic moments at current lambda + // At step 0 of each SCF iteration, force full diagonalization to refresh + // subspace cache with current wavefunctions. This avoids using stale + // subspace data from the previous SCF iteration. + if (istep == 0) { + this->free_lcao_subspace_cache(); + } + + // Compute magnetic moments using eigenvalue response method (current path) + // For istep==0: does full diagonalization and rebuilds subspace cache + // For istep>0: uses first-order eigenvalue shift with cached subspace data this->cal_mw_from_lambda(istep); + // Save response method Mi + std::vector> Mi_response = this->Mi_; + + // Restore response Mi as the official result + this->Mi_ = Mi_response; + + // Compute RMS to target and track optimal lambda + double rms = 0.0; + for (int ia = 0; ia < nat; ia++) { + ModuleBase::Vector3 diff = this->Mi_[ia] - this->target_mag_[ia]; + rms += diff * diff; + } + rms = std::sqrt(rms / nat); + if (rms < min_rms) { + min_rms = rms; + optimal_lambda_ry = lambda_val_ry; + } + // Save step 0 Mi for consistency verification if (istep == 0) { mi_step0 = this->Mi_; @@ -605,13 +1154,900 @@ void spinconstrain::SpinConstrain>::run_lambda_linear_scan( ofs_scan.close(); - // Restore original lambda values (already restored above, but explicit for clarity) + // Restore original lambda values this->lambda_ = initial_lambda; + // ============================================================= + // LOCAL DIAGNOSTIC: compare methods near optimal lambda + // Only runs once when charge density is near convergence (drho < 1e-3) + // ============================================================= +#ifdef __LCAO + if (this->basis_type_ == "lcao" && this->nspin_ == 2 + && this->last_drho_ > 0 && this->last_drho_ < 1e-3 + && !this->local_diag_run_) + { + std::cout << "\n[DS-DIAG] === LOCAL DIAGNOSTIC TRIGGERED ===" << std::endl; + std::cout << "[DS-DIAG] drho = " << this->last_drho_ << " (< 1e-3)" << std::endl; + std::cout << "[DS-DIAG] Optimal lambda from scan: " << optimal_lambda_ry * ModuleBase::Ry_to_eV << " eV/uB (RMS=" << min_rms << " uB)" << std::endl; + + // Test 1: Build subspace at optimal lambda (converged lambda), scan ±0.5 eV/uB + this->run_lambda_local_diagnostic(outer_step, optimal_lambda_ry, "at_optimal"); + + // Test 2: Build subspace at lambda=0, scan ±0.5 eV/uB (for comparison) + this->run_lambda_local_diagnostic(outer_step, 0.0, "at_zero"); + + this->local_diag_run_ = true; + std::cout << "[DS-DIAG] Local diagnostic complete.\n" << std::endl; + } +#endif + + // ============================================================= + // DIAGNOSTIC: Compare first-order response vs full subspace diag vs full diag + // Only runs when charge density is near convergence (drho < 1e-3) + // ============================================================= +#ifdef __LCAO + if (this->basis_type_ == "lcao" && this->nspin_ == 2 && this->last_drho_ > 0 && this->last_drho_ < 1e-3) + { + std::cout << "\n" << std::string(80, '=') << std::endl; + std::cout << "[DS-DIAG] === EIGENVALUE & Mi COMPARISON DIAGNOSTIC ===" << std::endl; + std::cout << "[DS-DIAG] Methods: (A) First-order response, (B) Full subspace diag, (C) Full HSolverLCAO" << std::endl; + std::cout << "[DS-DIAG] SCF convergence: drho = " << this->last_drho_ << " (< 1e-3 threshold)" << std::endl; + std::cout << std::string(80, '=') << "\n" << std::endl; + + // Force full diagonalization to build fresh subspace cache at lambda=0 + this->free_lcao_subspace_cache(); + this->lambda_ = std::vector>(nat, ModuleBase::Vector3(0.0, 0.0, 0.0)); + + psi::Psi>* psi_t = static_cast>*>(this->psi); + hamilt::Hamilt>* hamilt_t = static_cast>*>(this->p_hamilt); + + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + + hsolver::HSolverLCAO> hsolver_t(this->ParaV, this->ks_solver_); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + // Cache subspace data + const int nk = psi_t->get_nk(); + const int nbands = this->nbands_; + const int nlocal = this->ParaV->nrow; + const int nn = nbands * nbands; + this->lcao_nbands_ = nbands; + this->lcao_nk_ = nk; + this->lcao_nlocal_ = nlocal; + + delete[] this->lcao_sub_h_save; + delete[] this->lcao_sub_s_save; + this->lcao_sub_h_save = new std::complex[nk * nn]; + this->lcao_sub_s_save = new std::complex[nk * nn]; + this->lcao_PI_sub_save_.resize(nk); + this->lcao_PI_sub_diag_.resize(nk); + this->lcao_ekb_save_.resize(nk * nbands); + + std::vector>>> PI_sub_full(nk); + for (int ik = 0; ik < nk; ik++) { + PI_sub_full[ik].resize(this->get_nat()); + } + + for (int ik = 0; ik < nk; ik++) + { + psi_t->fix_k(ik); + this->calculate_lcao_sub_hs( + this->p_hamilt, psi_t[0], this->ParaV, + this->lcao_sub_h_save + ik * nn, + this->lcao_sub_s_save + ik * nn, + ik, nbands, nlocal); + + auto* dspin_op = dynamic_cast, double>>*>( + this->p_operator); + dspin_op->cal_PI_sub( + this->kv_.kvec_d[ik], + psi_t->get_pointer(), + nbands, + PI_sub_full[ik]); + + const int nloc_eij = this->ParaV->nrow * this->ParaV->ncol_bands; + for (int iat = 0; iat < this->get_nat(); iat++) + { + if (PI_sub_full[ik][iat].empty()) continue; + this->lcao_PI_sub_save_[ik][iat].resize(nloc_eij, {0.0, 0.0}); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global >= nbands) continue; + this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow] + = PI_sub_full[ik][iat][i_global + j_global * nbands]; + } + } + this->lcao_PI_sub_diag_[ik][iat].resize(nbands, 0.0); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global == j_global && i_global < nbands) + { + this->lcao_PI_sub_diag_[ik][iat][i_global] + = this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow].real(); + } + } + } +#ifdef __MPI + Parallel_Reduce::reduce_pool(this->lcao_PI_sub_diag_[ik][iat].data(), nbands); +#endif + } + + for (int ib = 0; ib < nbands; ib++) + this->lcao_ekb_save_[ik * nbands + ib] = this->pelec->ekb(ik, ib); + } + this->lcao_lambda_in_sub_ = this->lambda_; + this->lcao_subspace_initialized_ = true; + + // Save reference ekb at lambda=0 + std::vector> ekb_ref(nk); + for (int ik = 0; ik < nk; ik++) { + ekb_ref[ik].resize(nbands); + for (int ib = 0; ib < nbands; ib++) + ekb_ref[ik][ib] = this->pelec->ekb(ik, ib); + } + + // Open comparison file + std::ofstream ofs_diag("eigenvalue_mi_comparison.dat"); + ofs_diag << "# Eigenvalue and Magnetic Moment Comparison" << std::endl; + ofs_diag << "# Methods: (A) First-order response, (B) Full subspace diag, (C) Full HSolverLCAO" << std::endl; + ofs_diag << "# lambda range: " << lambda_start << " -> " << lambda_end << " eV/uB" << std::endl; + ofs_diag << "# nsteps = " << nsteps << std::endl; + ofs_diag << "#" << std::endl; + ofs_diag << "# step lambda_eV "; + // Eigenvalue section + ofs_diag << "ekb_A_ib0 ekb_B_ib0 ekb_C_ib0 | ekb_A_ib1 ekb_B_ib1 ekb_C_ib1 | "; + ofs_diag << "max_dek_AB max_dek_AC max_dek_BC | "; + // Mi section + ofs_diag << "Mi_A_0 Mi_B_0 Mi_C_0 | Mi_A_1 Mi_B_1 Mi_C_1 | "; + ofs_diag << "max_dMi_AB max_dMi_AC max_dMi_BC" << std::endl; + + double lambda_start_ry = lambda_start / ModuleBase::Ry_to_eV; + double lambda_end_ry = lambda_end / ModuleBase::Ry_to_eV; + double lambda_step_diag = (lambda_end_ry - lambda_start_ry) / (nsteps - 1); + + for (int istep = 0; istep < nsteps; istep++) + { + double lambda_val_ry = lambda_start_ry + istep * lambda_step_diag; + double lambda_val_ev = lambda_val_ry * ModuleBase::Ry_to_eV; + + // Set lambda + for (int ia = 0; ia < nat; ia++) { + for (int ic = 0; ic < 3; ic++) { + if (this->constrain_[ia][ic] != 0) + this->lambda_[ia][ic] = lambda_val_ry; + else + this->lambda_[ia][ic] = 0.0; + } + } + + // ======================================================== + // Method A: First-order eigenvalue response + // ======================================================== + std::vector> ekb_A(nk); + for (int ik = 0; ik < nk; ik++) { + ekb_A[ik].resize(nbands); + int spin_sign = this->get_spin_sign(ik); + for (int ib = 0; ib < nbands; ib++) { + double delta_epsilon = 0.0; + for (int iat = 0; iat < this->get_nat(); iat++) { + if (this->lcao_PI_sub_diag_[ik][iat].empty()) continue; + double p_diag = this->lcao_PI_sub_diag_[ik][iat][ib]; + double dl = this->lambda_[iat].z - this->lcao_lambda_in_sub_[iat].z; + delta_epsilon += dl * p_diag; + } + ekb_A[ik][ib] = this->lcao_ekb_save_[ik * nbands + ib] - spin_sign * delta_epsilon; + } + } + // Compute Mi_A using trace formula with identity V + std::vector>> vcc_identity(nk); + for (int ik = 0; ik < nk; ik++) { + vcc_identity[ik].assign(nbands * nbands, {0.0, 0.0}); + for (int ib = 0; ib < nbands; ib++) + vcc_identity[ik][ib + ib * nbands] = {1.0, 0.0}; + } + this->cal_mi_lcao_subspace(vcc_identity, nbands, nk, this->npol_); + std::vector> Mi_A = this->Mi_; + + // ======================================================== + // Method B: Full subspace diagonalization + // ======================================================== + std::vector> ekb_B(nk); + std::vector>> vcc_B(nk); + for (int ik = 0; ik < nk; ik++) { + std::vector> h_tmp(nn), s_tmp(nn); + std::memcpy(h_tmp.data(), this->lcao_sub_h_save + ik * nn, sizeof(std::complex) * nn); + std::memcpy(s_tmp.data(), this->lcao_sub_s_save + ik * nn, sizeof(std::complex) * nn); + + this->calculate_delta_hcc_lcao(h_tmp.data(), PI_sub_full[ik], + this->lambda_.data(), nbands, ik, true); + + std::vector> vcc(nn); + std::vector eigenvalues(nbands, 0.0); + std::vector> s_copy(nn); + std::memcpy(s_copy.data(), s_tmp.data(), sizeof(std::complex) * nn); + + hsolver::DiagoIterAssist>::diag_hegvd( + nbands, nbands, h_tmp.data(), s_copy.data(), nbands, + eigenvalues.data(), vcc.data()); + + vcc_B[ik].assign(vcc.data(), vcc.data() + nn); + ekb_B[ik].assign(eigenvalues.data(), eigenvalues.data() + nbands); + } + this->cal_mi_lcao_subspace(vcc_B, nbands, nk, this->npol_); + std::vector> Mi_B = this->Mi_; + + // ======================================================== + // Method C: Full HSolverLCAO diagonalization + // ======================================================== + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + std::vector> ekb_C(nk); + for (int ik = 0; ik < nk; ik++) { + ekb_C[ik].resize(nbands); + for (int ib = 0; ib < nbands; ib++) + ekb_C[ik][ib] = this->pelec->ekb(ik, ib); + } + this->cal_mi_lcao(0); + std::vector> Mi_C = this->Mi_; + + // ======================================================== + // Compute differences + // ======================================================== + double max_dek_AB = 0.0, max_dek_AC = 0.0, max_dek_BC = 0.0; + for (int ik = 0; ik < nk; ik++) { + for (int ib = 0; ib < nbands; ib++) { + double dAB = std::abs(ekb_A[ik][ib] - ekb_B[ik][ib]); + double dAC = std::abs(ekb_A[ik][ib] - ekb_C[ik][ib]); + double dBC = std::abs(ekb_B[ik][ib] - ekb_C[ik][ib]); + if (dAB > max_dek_AB) max_dek_AB = dAB; + if (dAC > max_dek_AC) max_dek_AC = dAC; + if (dBC > max_dek_BC) max_dek_BC = dBC; + } + } + double max_dMi_AB = 0.0, max_dMi_AC = 0.0, max_dMi_BC = 0.0; + for (int ia = 0; ia < nat; ia++) { + double dAB = std::abs(Mi_A[ia].z - Mi_B[ia].z); + double dAC = std::abs(Mi_A[ia].z - Mi_C[ia].z); + double dBC = std::abs(Mi_B[ia].z - Mi_C[ia].z); + if (dAB > max_dMi_AB) max_dMi_AB = dAB; + if (dAC > max_dMi_AC) max_dMi_AC = dAC; + if (dBC > max_dMi_BC) max_dMi_BC = dBC; + } + + // Output + ofs_diag << std::scientific << std::setprecision(8); + ofs_diag << istep << " " << lambda_val_ev << " "; + // ekb for first 2 bands (ik=0) + ofs_diag << ekb_A[0][0] << " " << ekb_B[0][0] << " " << ekb_C[0][0] << " | "; + ofs_diag << ekb_A[0][1] << " " << ekb_B[0][1] << " " << ekb_C[0][1] << " | "; + ofs_diag << max_dek_AB << " " << max_dek_AC << " " << max_dek_BC << " | "; + // Mi + ofs_diag << Mi_A[0].z << " " << Mi_B[0].z << " " << Mi_C[0].z << " | "; + ofs_diag << Mi_A[1].z << " " << Mi_B[1].z << " " << Mi_C[1].z << " | "; + ofs_diag << max_dMi_AB << " " << max_dMi_AC << " " << max_dMi_BC << std::endl; + + std::cout << "[DS-DIAG] step " << istep << " lambda=" << lambda_val_ev << " eV/uB:" << std::endl; + std::cout << " ekb[0] A=" << ekb_A[0][0] << " B=" << ekb_B[0][0] << " C=" << ekb_C[0][0] << std::endl; + std::cout << " max|dek| AB=" << max_dek_AB << " AC=" << max_dek_AC << " BC=" << max_dek_BC << std::endl; + std::cout << " Mi[0] A=" << Mi_A[0].z << " B=" << Mi_B[0].z << " C=" << Mi_C[0].z << std::endl; + std::cout << " max|dMi| AB=" << max_dMi_AB << " AC=" << max_dMi_AC << " BC=" << max_dMi_BC << std::endl; + } + + ofs_diag.close(); + std::cout << "\n[DS-DIAG] Comparison written to: eigenvalue_mi_comparison.dat" << std::endl; + std::cout << std::string(80, '=') << "\n" << std::endl; + } +#endif + std::cout << std::string(80, '=') << std::endl; std::cout << "[DS-DIAG] === LINEAR LAMBDA SCAN COMPLETE ===" << std::endl; std::cout << "[DS-DIAG] Results written to: lambda_scan_results.dat" << std::endl; std::cout << std::string(80, '=') << "\n" << std::endl; return; +#endif +} + +/** + * @brief Diagnostic: compare subspace Mi vs full diagonalization Mi at various lambda values. + * + * @details For nspin=2 LCAO only. At each lambda point: + * 1. Compute subspace Mi using trace formula + * 2. Compute full Mi using full diagonalization + * 3. Output both and relative error + * + * Results written to subspace_vs_full_scan.dat + */ +template <> +void spinconstrain::SpinConstrain>::run_lambda_scan_diagnostic(int outer_step) +{ +#ifndef __LCAO + return; +#else + if (this->basis_type_ != "lcao") + { + std::cout << "[DS-DIAG] scan_diagnostic: only supported for LCAO basis" << std::endl; + return; + } + if (this->nspin_ != 2) + { + std::cout << "[DS-DIAG] scan_diagnostic: only supported for nspin=2" << std::endl; + return; + } + + int nat = this->get_nat(); + + double lambda_start = PARAM.inp.sc_scan_lambda_start; + double lambda_end = PARAM.inp.sc_scan_lambda_end; + int nsteps = PARAM.inp.sc_scan_steps; + + if (nsteps <= 0) { + std::cout << "[DS-DIAG] scan_diagnostic: sc_scan_steps <= 0, skipping" << std::endl; + return; + } + + double lambda_start_ry = lambda_start / ModuleBase::Ry_to_eV; + double lambda_end_ry = lambda_end / ModuleBase::Ry_to_eV; + double lambda_step = (lambda_end_ry - lambda_start_ry) / (nsteps - 1); + + std::cout << "\n" << std::string(80, '=') << std::endl; + std::cout << "[DS-DIAG] === SUBSPACE vs FULL DIAGNOSTIC SCAN START ===" << std::endl; + std::cout << "[DS-DIAG] Scan range: " << lambda_start << " -> " << lambda_end << " eV/uB" << std::endl; + std::cout << "[DS-DIAG] Number of steps: " << nsteps << std::endl; + std::cout << std::string(80, '=') << "\n" << std::endl; + + // Save initial state + std::vector> initial_lambda = this->lambda_; + + // Open output file + std::ofstream ofs_scan; + ofs_scan.open("subspace_vs_full_scan.dat"); + ofs_scan << "# Subspace vs Full Diagonalization Diagnostic Scan" << std::endl; + ofs_scan << "# lambda range: " << lambda_start << " -> " << lambda_end << " eV/uB" << std::endl; + ofs_scan << "# nsteps = " << nsteps << std::endl; + ofs_scan << "#" << std::endl; + ofs_scan << "# step lambda_eV "; + for (int ia = 0; ia < nat; ia++) { + ofs_scan << "sub_Mz_" << ia << " full_Mz_" << ia << " rel_err_" << ia << " "; + } + ofs_scan << std::endl; + + // Step 0: full diagonalization to initialize subspace cache + std::cout << "[DS-DIAG] Step 0: Initializing subspace cache with full diagonalization..." << std::endl; + this->lambda_ = std::vector>(nat, ModuleBase::Vector3(0.0, 0.0, 0.0)); + + // Force full diagonalization path by resetting subspace + this->free_lcao_subspace_cache(); + + // Call cal_mw_from_lambda with i_step=-1 to do full diag and cache + psi::Psi>* psi_t = static_cast>*>(this->psi); + hamilt::Hamilt>* hamilt_t = static_cast>*>(this->p_hamilt); + + if (this->nspin_ == 2) + { + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + } + + hsolver::HSolverLCAO> hsolver_t(this->ParaV, this->ks_solver_); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + // Cache subspace data + const int nk = psi_t->get_nk(); + const int nbands = this->nbands_; + const int nlocal = this->ParaV->nrow; + int nn = nbands * nbands; + this->lcao_nbands_ = nbands; + this->lcao_nk_ = nk; + this->lcao_nlocal_ = nlocal; + + delete[] this->lcao_sub_h_save; + delete[] this->lcao_sub_s_save; + this->lcao_sub_h_save = new std::complex[nk * nn]; + this->lcao_sub_s_save = new std::complex[nk * nn]; + this->lcao_PI_sub_save_.resize(nk); + this->lcao_PI_sub_diag_.resize(nk); + this->lcao_ekb_save_.resize(nk * nbands); + + std::vector>>> PI_sub_full(nk); + for (int ik = 0; ik < nk; ik++) { + PI_sub_full[ik].resize(this->get_nat()); + } + + for (int ik = 0; ik < nk; ik++) + { + psi_t->fix_k(ik); + this->calculate_lcao_sub_hs( + this->p_hamilt, psi_t[0], this->ParaV, + this->lcao_sub_h_save + ik * nn, + this->lcao_sub_s_save + ik * nn, + ik, nbands, nlocal); + + if (this->nspin_ == 2) + { + auto* dspin_op = dynamic_cast, double>>*>( + this->p_operator); + dspin_op->cal_PI_sub( + this->kv_.kvec_d[ik], + psi_t->get_pointer(), + nbands, + PI_sub_full[ik]); + } + + const int nloc_eij = this->ParaV->nrow * this->ParaV->ncol_bands; + for (int iat = 0; iat < this->get_nat(); iat++) + { + if (PI_sub_full[ik][iat].empty()) continue; + this->lcao_PI_sub_save_[ik][iat].resize(nloc_eij, {0.0, 0.0}); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global >= nbands) continue; + this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow] + = PI_sub_full[ik][iat][i_global + j_global * nbands]; + } + } + this->lcao_PI_sub_diag_[ik][iat].resize(nbands, 0.0); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global == j_global && i_global < nbands) + { + this->lcao_PI_sub_diag_[ik][iat][i_global] + = this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow].real(); + } + } + } +#ifdef __MPI + Parallel_Reduce::reduce_pool(this->lcao_PI_sub_diag_[ik][iat].data(), nbands); +#endif + } + + for (int ib = 0; ib < nbands; ib++) + { + this->lcao_ekb_save_[ik * nbands + ib] = this->pelec->ekb(ik, ib); + } + } + + this->lcao_lambda_in_sub_ = this->lambda_; + this->lcao_subspace_initialized_ = true; + + // Get full Mi at lambda=0 + this->cal_mi_lcao(0); + std::vector> Mi_full_init = this->Mi_; + + std::cout << "[DS-DIAG] Full Mi at lambda=0: "; + for (int ia = 0; ia < nat; ia++) + std::cout << Mi_full_init[ia].z << " "; + std::cout << std::endl; + + // ============================================================= + // SCAN LOOP + // ============================================================= + for (int istep = 0; istep < nsteps; istep++) + { + double lambda_val_ry = lambda_start_ry + istep * lambda_step; + double lambda_val_ev = lambda_val_ry * ModuleBase::Ry_to_eV; + + // Set lambda + for (int ia = 0; ia < nat; ia++) + { + if (this->constrain_[ia].z != 0) + this->lambda_[ia].z = lambda_val_ry; + else + this->lambda_[ia].z = 0.0; + } + + std::cout << "\n[DS-DIAG] === Step " << istep << "/" << (nsteps-1) + << " lambda = " << lambda_val_ev << " eV/uB ===" << std::endl; + + // --- Subspace Mi --- + // Compute subspace Hamiltonian and diagonalize + std::vector>> vcc_all(nk); + std::vector> ekb_all(nk); + + for (int ik = 0; ik < nk; ik++) + { + std::vector> h_tmp(nn), s_tmp(nn); + std::memcpy(h_tmp.data(), this->lcao_sub_h_save + ik * nn, sizeof(std::complex) * nn); + std::memcpy(s_tmp.data(), this->lcao_sub_s_save + ik * nn, sizeof(std::complex) * nn); + + this->calculate_delta_hcc_lcao(h_tmp.data(), PI_sub_full[ik], + this->lambda_.data(), nbands, ik, true); + + std::vector> vcc(nn); + std::vector eigenvalues(nbands, 0.0); + std::vector> s_copy(nn); + std::memcpy(s_copy.data(), s_tmp.data(), sizeof(std::complex) * nn); + + hsolver::DiagoIterAssist>::diag_hegvd( + nbands, nbands, h_tmp.data(), s_copy.data(), nbands, + eigenvalues.data(), vcc.data()); + + vcc_all[ik].assign(vcc.data(), vcc.data() + nn); + ekb_all[ik] = eigenvalues; + + for (int ib = 0; ib < nbands; ib++) + { + this->pelec->ekb(ik, ib) = eigenvalues[ib]; + } + } + + // Calculate weights and subspace Mi + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + this->cal_mi_lcao_subspace(vcc_all, nbands, nk, this->npol_); + + std::vector> Mi_subspace = this->Mi_; + + std::cout << "[DS-DIAG] Subspace Mi: "; + for (int ia = 0; ia < nat; ia++) + std::cout << Mi_subspace[ia].z << " "; + std::cout << std::endl; + + // --- Full Mi --- + // Full diagonalization + if (this->nspin_ == 2) + { + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + } + + hsolver::HSolverLCAO> hsolver_full(this->ParaV, this->ks_solver_); + hsolver_full.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + this->cal_mi_lcao(0); + + std::vector> Mi_full = this->Mi_; + + std::cout << "[DS-DIAG] Full Mi: "; + for (int ia = 0; ia < nat; ia++) + std::cout << Mi_full[ia].z << " "; + std::cout << std::endl; + + // --- Compare --- + std::cout << "[DS-DIAG] Rel error(%): "; + ofs_scan << std::scientific << std::setprecision(6); + ofs_scan << istep << " " << lambda_val_ev; + + double max_rel_err = 0; + for (int ia = 0; ia < nat; ia++) + { + double rel_err = 0; + if (std::abs(Mi_full[ia].z) > 1e-10) + { + rel_err = std::abs((Mi_subspace[ia].z - Mi_full[ia].z) / Mi_full[ia].z) * 100.0; + if (rel_err > max_rel_err) max_rel_err = rel_err; + } + std::cout << rel_err << " "; + ofs_scan << " " << Mi_subspace[ia].z << " " << Mi_full[ia].z << " " << rel_err; + } + std::cout << " (max: " << max_rel_err << "%)" << std::endl; + ofs_scan << std::endl; + } + + ofs_scan.close(); + + // Restore initial state + this->lambda_ = initial_lambda; + this->free_lcao_subspace_cache(); + + std::cout << "\n" << std::string(80, '=') << std::endl; + std::cout << "[DS-DIAG] === DIAGNOSTIC SCAN COMPLETE ===" << std::endl; + std::cout << "[DS-DIAG] Results written to: subspace_vs_full_scan.dat" << std::endl; + std::cout << std::string(80, '=') << "\n" << std::endl; +#endif +} + + +template <> +void spinconstrain::SpinConstrain::run_lambda_scan_diagnostic(int outer_step) +{ + std::cout << "[DS-DIAG] scan_diagnostic: only implemented for complex (nspin=2)" << std::endl; +} + +template <> +void spinconstrain::SpinConstrain::run_lambda_local_diagnostic( + int outer_step, double lambda_ref_ry, const std::string& label) +{ +} + +/** + * @brief Diagnostic: compare three Mi computation methods at varying delta_lambda. + * + * Methods: + * A: Full HSolverLCAO diagonalization (ground truth) + * B: Subspace DMR path (rotate psi → cal_dm_psi → cal_DMR → cal_moment) + * C: Subspace trace formula (Mz = Σ_k sign × Σ_ib wg × [V†PV]_{ib,ib}) + * + * A and B/C use different code paths. B and C should be mathematically equivalent + * but may differ numerically. This test quantifies the differences to determine + * whether the trace formula can replace the DMR path. + */ +template <> +void spinconstrain::SpinConstrain>::run_trace_vs_dmr_diagnostic( + int outer_step, double lambda_ref_ry) +{ +#ifdef __LCAO + if (this->basis_type_ != "lcao") return; + if (this->nspin_ != 2) return; + + const int nat = this->get_nat(); + + // --- Step 1: Full diag at lambda_ref, build subspace cache --- + this->free_lcao_subspace_cache(); + for (int ia = 0; ia < nat; ia++) { + for (int ic = 0; ic < 3; ic++) { + this->lambda_[ia][ic] = (this->constrain_[ia][ic] != 0) ? lambda_ref_ry : 0.0; + } + } + + psi::Psi>* psi_t = static_cast>*>(this->psi); + hamilt::Hamilt>* hamilt_t = static_cast>*>(this->p_hamilt); + + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + + hsolver::HSolverLCAO> hsolver_t(this->ParaV, this->ks_solver_); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + elecstate::calEBand(this->pelec->ekb, this->pelec->wg, this->pelec->f_en); + + const int nk = psi_t->get_nk(); + const int nbands = this->nbands_; + const int nlocal = this->ParaV->nrow; + const int nn = nbands * nbands; + const int nloc_wfc = this->ParaV->nloc_wfc; + this->lcao_nbands_ = nbands; + this->lcao_nk_ = nk; + this->lcao_nlocal_ = nlocal; + + delete[] this->lcao_sub_h_save; + delete[] this->lcao_sub_s_save; + this->lcao_sub_h_save = new std::complex[nk * nn]; + this->lcao_sub_s_save = new std::complex[nk * nn]; + this->lcao_PI_sub_save_.resize(nk); + this->lcao_PI_sub_diag_.resize(nk); + this->lcao_ekb_save_.resize(nk * nbands); + + std::vector>>> PI_sub_full(nk); + for (int ik = 0; ik < nk; ik++) { + PI_sub_full[ik].resize(this->get_nat()); + } + + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + this->calculate_lcao_sub_hs(this->p_hamilt, psi_t[0], this->ParaV, + this->lcao_sub_h_save + ik * nn, this->lcao_sub_s_save + ik * nn, + ik, nbands, nlocal); + auto* dspin_op = dynamic_cast, double>>*>(this->p_operator); + dspin_op->cal_PI_sub(this->kv_.kvec_d[ik], psi_t->get_pointer(), nbands, PI_sub_full[ik]); + + const int nloc_eij = this->ParaV->nrow * this->ParaV->ncol_bands; + for (int iat = 0; iat < this->get_nat(); iat++) + { + if (PI_sub_full[ik][iat].empty()) continue; + this->lcao_PI_sub_save_[ik][iat].resize(nloc_eij, {0.0, 0.0}); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global >= nbands) continue; + this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow] + = PI_sub_full[ik][iat][i_global + j_global * nbands]; + } + } + this->lcao_PI_sub_diag_[ik][iat].resize(nbands, 0.0); + for (int j_local = 0; j_local < this->ParaV->ncol_bands; j_local++) + { + int j_global = this->ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < this->ParaV->nrow; i_local++) + { + int i_global = this->ParaV->local2global_row(i_local); + if (i_global == j_global && i_global < nbands) + { + this->lcao_PI_sub_diag_[ik][iat][i_global] + = this->lcao_PI_sub_save_[ik][iat][i_local + j_local * this->ParaV->nrow].real(); + } + } + } +#ifdef __MPI + Parallel_Reduce::reduce_pool(this->lcao_PI_sub_diag_[ik][iat].data(), nbands); +#endif + } + + for (int ib = 0; ib < nbands; ib++) + this->lcao_ekb_save_[ik * nbands + ib] = this->pelec->ekb(ik, ib); + } + this->lcao_lambda_in_sub_ = this->lambda_; + this->lcao_subspace_initialized_ = true; + + // Save reference psi + std::vector>> psi_ref(nk); + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + psi_ref[ik].assign(psi_t->get_pointer(), psi_t->get_pointer() + nloc_wfc); + } + + // --- Step 2: Scan delta_lambda values --- + std::vector deltas_ev = {0.0, 1e-5, 1e-4, 1e-3, 0.005, 0.01, 0.05, 0.1, 0.5, 1.0}; + + std::ofstream ofs("trace_vs_dmr_diagnostic.dat"); + ofs << "# Trace vs DMR Mi Diagnostic" << std::endl; + ofs << "# lambda_ref = " << lambda_ref_ry * ModuleBase::Ry_to_eV << " eV/uB" << std::endl; + ofs << "# nbands = " << nbands << ", nk = " << nk << ", nat = " << nat << std::endl; + ofs << "# Methods: A=Full diag, B=Subspace DMR, C=Subspace Trace" << std::endl; + ofs << "#" << std::endl; + ofs << "# delta_eV"; + for (int ia = 0; ia < nat; ia++) + ofs << " Mi_A_" << ia << " Mi_B_" << ia << " Mi_C_" << ia + << " |A-B|_" << ia << " |A-C|_" << ia << " |B-C|_" << ia; + ofs << std::endl; + + for (double delta_ev : deltas_ev) + { + double delta_ry = delta_ev / ModuleBase::Ry_to_eV; + + // Set lambda = lambda_ref + delta + for (int ia = 0; ia < nat; ia++) { + for (int ic = 0; ic < 3; ic++) { + this->lambda_[ia][ic] = (this->constrain_[ia][ic] != 0) + ? (lambda_ref_ry + delta_ry) : 0.0; + } + } + + // --- Method A: Full diagonalization --- + // Restore psi to reference state first + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + std::memcpy(psi_t->get_pointer(), psi_ref[ik].data(), sizeof(std::complex) * nloc_wfc); + } + dynamic_cast, double>>*>(this->p_operator) + ->update_lambda(); + hsolver_t.solve(hamilt_t, psi_t[0], this->pelec, *this->dm_, *this->pelec->charge, this->nspin_, true); + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + this->cal_mi_lcao(0); + std::vector> Mi_A = this->Mi_; + + // --- Subspace: diagonalize H_sub(lambda) --- + std::vector>> vcc_all(nk); + for (int ik = 0; ik < nk; ik++) { + std::vector> h_tmp(nn), s_tmp(nn); + std::memcpy(h_tmp.data(), this->lcao_sub_h_save + ik * nn, sizeof(std::complex) * nn); + std::memcpy(s_tmp.data(), this->lcao_sub_s_save + ik * nn, sizeof(std::complex) * nn); + this->calculate_delta_hcc_lcao(h_tmp.data(), PI_sub_full[ik], + this->lambda_.data(), nbands, ik, true); + std::vector> vcc(nn); + std::vector eigenvalues(nbands, 0.0); + std::vector> s_copy(nn); + std::memcpy(s_copy.data(), s_tmp.data(), sizeof(std::complex) * nn); + hsolver::DiagoIterAssist>::diag_hegvd( + nbands, nbands, h_tmp.data(), s_copy.data(), nbands, + eigenvalues.data(), vcc.data()); + vcc_all[ik].assign(vcc.data(), vcc.data() + nn); + for (int ib = 0; ib < nbands; ib++) + this->pelec->ekb(ik, ib) = eigenvalues[ib]; + } + elecstate::calculate_weights(this->pelec->ekb, this->pelec->wg, this->pelec->klist, + this->pelec->eferm, this->pelec->f_en, this->pelec->nelec_spin, + this->pelec->skip_weights); + + // --- Method B: DMR path --- + // Restore psi, rotate, build DMR, compute Mi, restore psi + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + std::memcpy(psi_t->get_pointer(), psi_ref[ik].data(), sizeof(std::complex) * nloc_wfc); + } + this->rotate_psi_subspace_lcao(*psi_t, this->ParaV, vcc_all, nbands, nlocal, nk); + elecstate::cal_dm_psi(this->ParaV, this->pelec->wg, *psi_t, *this->dm_); + this->dm_->cal_DMR(); + this->cal_mi_lcao(0); + std::vector> Mi_B = this->Mi_; + // Restore psi + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + std::memcpy(psi_t->get_pointer(), psi_ref[ik].data(), sizeof(std::complex) * nloc_wfc); + } + + // --- Method C: Trace formula --- + this->zero_Mi(); + for (int ik = 0; ik < nk; ik++) { + const int spin_sign = this->get_spin_sign(ik); + const std::complex* V = vcc_all[ik].data(); + for (int iat = 0; iat < nat; iat++) { + if (PI_sub_full[ik][iat].empty()) continue; + const std::complex* P = PI_sub_full[ik][iat].data(); + // Q = P * V + std::vector> Q(nn, {0.0, 0.0}); + { + const std::complex one = {1.0, 0.0}, zero_c = {0.0, 0.0}; + int n = nbands; + zgemm_("N", "N", &n, &n, &n, &one, P, &n, V, &n, &zero_c, Q.data(), &n); + } + double mz = 0.0; + for (int ib = 0; ib < nbands; ib++) { + double p_expect = 0.0; + for (int jb = 0; jb < nbands; jb++) + p_expect += (std::conj(V[jb + ib * nbands]) * Q[jb + ib * nbands]).real(); + mz += this->pelec->wg(ik, ib) * p_expect; + } + this->Mi_[iat].z += spin_sign * mz; + } + } + std::vector> Mi_C = this->Mi_; + + // --- Output --- + ofs << std::scientific << std::setprecision(10); + ofs << delta_ev; + for (int ia = 0; ia < nat; ia++) { + double ab = std::abs(Mi_A[ia].z - Mi_B[ia].z); + double ac = std::abs(Mi_A[ia].z - Mi_C[ia].z); + double bc = std::abs(Mi_B[ia].z - Mi_C[ia].z); + ofs << " " << Mi_A[ia].z << " " << Mi_B[ia].z << " " << Mi_C[ia].z + << " " << ab << " " << ac << " " << bc; + } + ofs << std::endl; + } + + ofs.close(); + this->free_lcao_subspace_cache(); + // Restore original psi + for (int ik = 0; ik < nk; ik++) { + psi_t->fix_k(ik); + std::memcpy(psi_t->get_pointer(), psi_ref[ik].data(), sizeof(std::complex) * nloc_wfc); + } +#endif +} + +template <> +void spinconstrain::SpinConstrain::run_trace_vs_dmr_diagnostic(int outer_step, double lambda_ref_ry) +{ } diff --git a/source/source_lcao/module_deltaspin/lcao_subspace.cpp b/source/source_lcao/module_deltaspin/lcao_subspace.cpp new file mode 100644 index 0000000000..941939cbc4 --- /dev/null +++ b/source/source_lcao/module_deltaspin/lcao_subspace.cpp @@ -0,0 +1,874 @@ +/** + * @file lcao_subspace.cpp + * @brief LCAO subspace diagonalization for DeltaSpin lambda loop optimization. + * + * @par Purpose + * Implements the subspace diagonalization strategy for LCAO basis in DeltaSpin, + * with mixed-precision support: hot GEMM operations can run in fp32 while + * phase-sensitive operations (folding_HR) remain in fp64. + * + * @par Mixed Precision Strategy + * - Input/Output: always complex (fp64) + * - Inner GEMM computations: complex (fp32) when enabled + * - Cast-down before GEMM, Cast-up after GEMM + * - folding_HR always in fp64 (phase-sensitive) + * - Controlled by subspace_exec_precision_ from GintPrecisionController + */ + +#include "spin_constrain.h" +#include "source_base/timer.h" +#include "source_base/tool_title.h" +#include "source_base/global_variable.h" +#include "source_hsolver/diago_iter_assist.h" +#include "source_hsolver/kernels/hegvd_op.h" +#include "source_io/module_parameter/parameter.h" +#include "source_base/parallel_reduce.h" +#include "source_base/kernels/math_kernel_op.h" +#include "source_base/module_container/base/third_party/lapack.h" +#include "source_base/module_external/blas_connector.h" +#include "source_estate/elecstate_tools.h" +#include "source_estate/module_dm/cal_dm_psi.h" +#include "source_lcao/module_operator_lcao/dspin_lcao.h" +#include "source_lcao/module_hcontainer/hcontainer_funcs.h" + +#ifdef __MPI +#include "source_base/module_external/scalapack_connector.h" +#include +#endif + +#include +#include +#include +#include +#include + +#ifdef __LCAO + +namespace spinconstrain +{ + +template <> +void SpinConstrain>::free_lcao_subspace_cache() +{ + delete[] lcao_sub_h_save; + delete[] lcao_sub_s_save; + lcao_sub_h_save = nullptr; + lcao_sub_s_save = nullptr; + lcao_PI_sub_save_.clear(); + lcao_PI_sub_diag_.clear(); + h_sub_local_buf_.clear(); + h_tmp_buf_.clear(); + s_tmp_buf_.clear(); + vcc_buf_.clear(); + s_copy_buf_.clear(); + eigenvalues_buf_.clear(); + lcao_ekb_save_.clear(); + lcao_lambda_in_sub_.clear(); + lcao_subspace_initialized_ = false; +} + +void gather_sub_matrix_to_all( + const std::complex* local_data, + const Parallel_Orbitals* ParaV, + std::complex* full_data, + int nbands) +{ +#ifdef __MPI + int nrow = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + + std::fill(full_data, full_data + nbands * nbands, std::complex(0.0, 0.0)); + + for (int j_local = 0; j_local < ncol_bands; j_local++) + { + int j_global = ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < nrow; i_local++) + { + int i_global = ParaV->local2global_row(i_local); + if (i_global >= nbands) continue; + full_data[i_global + j_global * nbands] = local_data[i_local + j_local * nrow]; + } + } + + Parallel_Reduce::reduce_pool(full_data, nbands * nbands); +#else + std::memcpy(full_data, local_data, sizeof(std::complex) * nbands * nbands); +#endif +} + +void scatter_sub_matrix_to_local( + const std::complex* full_data, + const Parallel_Orbitals* ParaV, + std::complex* local_data, + int nbands) +{ +#ifdef __MPI + int nrow = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + + std::fill(local_data, local_data + nrow * ncol_bands, std::complex(0.0, 0.0)); + + for (int j_local = 0; j_local < ncol_bands; j_local++) + { + int j_global = ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < nrow; i_local++) + { + int i_global = ParaV->local2global_row(i_local); + if (i_global >= nbands) continue; + local_data[i_local + j_local * nrow] = full_data[i_global + j_global * nbands]; + } + } +#else + std::memcpy(local_data, full_data, sizeof(std::complex) * nbands * nbands); +#endif +} + +void extract_diagonal_from_local_block( + const std::complex* local_data, + const Parallel_Orbitals* ParaV, + double* diag, + int nbands) +{ +#ifdef __MPI + int nrow = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + std::fill(diag, diag + nbands, 0.0); + for (int j_local = 0; j_local < ncol_bands; j_local++) + { + int j_global = ParaV->local2global_col(j_local); + if (j_global >= nbands) continue; + for (int i_local = 0; i_local < nrow; i_local++) + { + int i_global = ParaV->local2global_row(i_local); + if (i_global == j_global && i_global < nbands) + { + diag[i_global] = local_data[i_local + j_local * nrow].real(); + } + } + } + Parallel_Reduce::reduce_pool(diag, nbands); +#else + for (int i = 0; i < nbands; i++) + { + diag[i] = local_data[i + i * nbands].real(); + } +#endif +} + +static void cast_down_to_float(const std::complex* src, std::complex* dst, std::size_t n) +{ +#ifdef _OPENMP +#pragma omp parallel for schedule(static, 4096) +#endif + for (std::size_t i = 0; i < n; ++i) + { + dst[i] = static_cast>(src[i]); + } +} + +static void cast_up_to_double(const std::complex* src, std::complex* dst, std::size_t n) +{ +#ifdef _OPENMP +#pragma omp parallel for schedule(static, 4096) +#endif + for (std::size_t i = 0; i < n; ++i) + { + dst[i] = static_cast>(src[i]); + } +} + +static void gather_sub_matrix_to_all_float( + const std::complex* local_data, + const Parallel_Orbitals* ParaV, + std::complex* full_data, + int nbands) +{ + std::vector> local_db(ParaV->nrow * ParaV->ncol_bands); + cast_up_to_double(local_data, local_db.data(), local_db.size()); + gather_sub_matrix_to_all(local_db.data(), ParaV, full_data, nbands); +} + +static void scatter_sub_matrix_to_local_float( + const std::complex* full_data, + const Parallel_Orbitals* ParaV, + std::complex* local_data, + int nbands) +{ + int nrow = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = nrow * ncol_bands; +#ifdef __MPI + std::vector> local_db(nloc_eij_local, {0.0, 0.0}); + scatter_sub_matrix_to_local(full_data, ParaV, local_db.data(), nbands); + cast_down_to_float(local_db.data(), local_data, nloc_eij_local); +#else + std::vector> tmp(nbands * nbands); + scatter_sub_matrix_to_local(full_data, ParaV, tmp.data(), nbands); + cast_down_to_float(tmp.data(), local_data, nbands * nbands); +#endif +} + +template <> +void SpinConstrain>::calculate_lcao_sub_hs( + void* hamilt, + psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + std::complex* h_sub, + std::complex* s_sub, + int ik, int nbands, int nlocal) +{ + ModuleBase::TITLE("SpinConstrain", "calculate_lcao_sub_hs"); + ModuleBase::timer::start("SpinConstrain", "calculate_lcao_sub_hs"); + + hamilt::Hamilt>* hamilt_t + = static_cast>*>(hamilt); + + hamilt_t->updateHk(ik); + + hamilt::MatrixBlock> h_mat, s_mat; + hamilt_t->matrix(h_mat, s_mat); + + psi.fix_k(ik); + std::complex* psi_ptr = psi.get_pointer(); + + const bool use_fp32 = (subspace_exec_precision_ == ModuleGint::GintPrecision::fp32); + + if (use_fp32) + { + ModuleBase::timer::start("SpinConstrain", "calc_sub_hs_fp32"); + const std::complex one_f = {1.0f, 0.0f}; + const std::complex zero_f = {0.0f, 0.0f}; + +#ifdef __MPI + int nloc_wfc = ParaV->nloc_wfc; + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + + std::vector> h_f(ParaV->nloc, zero_f); + cast_down_to_float(h_mat.p, h_f.data(), ParaV->nloc); + std::vector> s_f(ParaV->nloc, zero_f); + cast_down_to_float(s_mat.p, s_f.data(), ParaV->nloc); + std::vector> psi_f(nloc_wfc, zero_f); + cast_down_to_float(psi_ptr, psi_f.data(), nloc_wfc); + + std::vector> temp_f(nloc_wfc, zero_f); + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one_f, h_f.data(), 1, 1, ParaV->desc, + psi_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, temp_f.data(), 1, 1, ParaV->desc_wfc); + + std::vector> h_sub_local_f(nloc_eij_local, zero_f); + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one_f, psi_f.data(), 1, 1, ParaV->desc_wfc, + temp_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, h_sub_local_f.data(), 1, 1, ParaV->desc_Eij); + + gather_sub_matrix_to_all_float(h_sub_local_f.data(), ParaV, h_sub, nbands); + + std::vector> temp_s_f(nloc_wfc, zero_f); + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one_f, s_f.data(), 1, 1, ParaV->desc, + psi_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, temp_s_f.data(), 1, 1, ParaV->desc_wfc); + + std::vector> s_sub_local_f(nloc_eij_local, zero_f); + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one_f, psi_f.data(), 1, 1, ParaV->desc_wfc, + temp_s_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, s_sub_local_f.data(), 1, 1, ParaV->desc_Eij); + + gather_sub_matrix_to_all_float(s_sub_local_f.data(), ParaV, s_sub, nbands); +#else + const std::complex one_d = {1.0, 0.0}; + const std::complex zero_d = {0.0, 0.0}; + + std::vector> h_f(nlocal * nlocal); + cast_down_to_float(h_mat.p, h_f.data(), nlocal * nlocal); + std::vector> s_f(nlocal * nlocal); + cast_down_to_float(s_mat.p, s_f.data(), nlocal * nlocal); + std::vector> psi_f(nlocal * nbands); + cast_down_to_float(psi_ptr, psi_f.data(), nlocal * nbands); + + std::vector> temp_f(nlocal * nbands, zero_f); + cgemm_("N", "N", &nlocal, &nbands, &nlocal, + &one_f, h_f.data(), &nlocal, psi_f.data(), &nlocal, &zero_f, temp_f.data(), &nlocal); + + std::vector> h_sub_f(nbands * nbands, zero_f); + cgemm_("C", "N", &nbands, &nbands, &nlocal, + &one_f, psi_f.data(), &nlocal, temp_f.data(), &nlocal, &zero_f, h_sub_f.data(), &nbands); + cast_up_to_double(h_sub_f.data(), h_sub, nbands * nbands); + + std::vector> temp_s_f(nlocal * nbands, zero_f); + cgemm_("N", "N", &nlocal, &nbands, &nlocal, + &one_f, s_f.data(), &nlocal, psi_f.data(), &nlocal, &zero_f, temp_s_f.data(), &nlocal); + + std::vector> s_sub_f(nbands * nbands, zero_f); + cgemm_("C", "N", &nbands, &nbands, &nlocal, + &one_f, psi_f.data(), &nlocal, temp_s_f.data(), &nlocal, &zero_f, s_sub_f.data(), &nbands); + cast_up_to_double(s_sub_f.data(), s_sub, nbands * nbands); +#endif + ModuleBase::timer::end("SpinConstrain", "calc_sub_hs_fp32"); + } + else + { + const std::complex one = {1.0, 0.0}; + const std::complex zero = {0.0, 0.0}; + +#ifdef __MPI + int nloc_wfc = ParaV->nloc_wfc; + std::vector> temp(nloc_wfc, zero); + + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one, h_mat.p, 1, 1, ParaV->desc, + psi_ptr, 1, 1, ParaV->desc_wfc, + zero, temp.data(), 1, 1, ParaV->desc_wfc); + + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + + std::vector> h_sub_local(nloc_eij_local, zero); + + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one, psi_ptr, 1, 1, ParaV->desc_wfc, + temp.data(), 1, 1, ParaV->desc_wfc, + zero, h_sub_local.data(), 1, 1, ParaV->desc_Eij); + + gather_sub_matrix_to_all(h_sub_local.data(), ParaV, h_sub, nbands); + + std::vector> temp_s(nloc_wfc, zero); + + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one, s_mat.p, 1, 1, ParaV->desc, + psi_ptr, 1, 1, ParaV->desc_wfc, + zero, temp_s.data(), 1, 1, ParaV->desc_wfc); + + std::vector> s_sub_local(nloc_eij_local, zero); + + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one, psi_ptr, 1, 1, ParaV->desc_wfc, + temp_s.data(), 1, 1, ParaV->desc_wfc, + zero, s_sub_local.data(), 1, 1, ParaV->desc_Eij); + + gather_sub_matrix_to_all(s_sub_local.data(), ParaV, s_sub, nbands); +#else + std::vector> temp(nlocal * nbands, zero); + zgemm_("N", "N", &nlocal, &nbands, &nlocal, + &one, h_mat.p, &nlocal, psi_ptr, &nlocal, &zero, temp.data(), &nlocal); + + zgemm_("C", "N", &nbands, &nbands, &nlocal, + &one, psi_ptr, &nlocal, temp.data(), &nlocal, &zero, h_sub, &nbands); + + std::vector> temp_s(nlocal * nbands, zero); + zgemm_("N", "N", &nlocal, &nbands, &nlocal, + &one, s_mat.p, &nlocal, psi_ptr, &nlocal, &zero, temp_s.data(), &nlocal); + + zgemm_("C", "N", &nbands, &nbands, &nlocal, + &one, psi_ptr, &nlocal, temp_s.data(), &nlocal, &zero, s_sub, &nbands); +#endif + } + + ModuleBase::timer::end("SpinConstrain", "calculate_lcao_sub_hs"); +} + +template <> +void SpinConstrain>::calculate_PI_sub_from_hr( + const hamilt::HContainer* pre_hr_iat, + psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + const ModuleBase::Vector3& kvec_d, + std::complex* PI_sub_local_out, + int nbands, int nlocal) +{ + ModuleBase::TITLE("SpinConstrain", "calculate_PI_sub_from_hr"); + ModuleBase::timer::start("SpinConstrain", "calculate_PI_sub_from_hr"); + + std::complex* psi_ptr = psi.get_pointer(); + + const bool use_fp32 = (subspace_exec_precision_ == ModuleGint::GintPrecision::fp32); + +#ifdef __MPI + int nloc = ParaV->nloc; + std::vector> PI_k_local(nloc, {0.0, 0.0}); + hamilt::folding_HR(*pre_hr_iat, PI_k_local.data(), kvec_d, ParaV->nrow, 1); + + if (use_fp32) + { + ModuleBase::timer::start("SpinConstrain", "calc_PI_sub_fp32"); + const std::complex one_f = {1.0f, 0.0f}; + const std::complex zero_f = {0.0f, 0.0f}; + int nloc_wfc = ParaV->nloc_wfc; + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + + std::vector> PI_k_f(nloc, zero_f); + cast_down_to_float(PI_k_local.data(), PI_k_f.data(), nloc); + std::vector> psi_f(nloc_wfc, zero_f); + cast_down_to_float(psi_ptr, psi_f.data(), nloc_wfc); + + std::vector> temp_f(nloc_wfc, zero_f); + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one_f, PI_k_f.data(), 1, 1, ParaV->desc, + psi_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, temp_f.data(), 1, 1, ParaV->desc_wfc); + + std::vector> PI_sub_local_f(nloc_eij_local, zero_f); + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one_f, psi_f.data(), 1, 1, ParaV->desc_wfc, + temp_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, PI_sub_local_f.data(), 1, 1, ParaV->desc_Eij); + + cast_up_to_double(PI_sub_local_f.data(), PI_sub_local_out, nloc_eij_local); + ModuleBase::timer::end("SpinConstrain", "calc_PI_sub_fp32"); + } + else +#endif + { + const std::complex one = {1.0, 0.0}; + const std::complex zero = {0.0, 0.0}; + +#ifdef __MPI + int nloc_wfc = ParaV->nloc_wfc; + std::vector> temp(nloc_wfc, zero); + + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one, PI_k_local.data(), 1, 1, ParaV->desc, + psi_ptr, 1, 1, ParaV->desc_wfc, + zero, temp.data(), 1, 1, ParaV->desc_wfc); + + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + std::vector> PI_sub_local(nloc_eij_local, zero); + + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one, psi_ptr, 1, 1, ParaV->desc_wfc, + temp.data(), 1, 1, ParaV->desc_wfc, + zero, PI_sub_local.data(), 1, 1, ParaV->desc_Eij); + + std::memcpy(PI_sub_local_out, PI_sub_local.data(), sizeof(std::complex) * nloc_eij_local); +#else + std::vector> PI_k(nlocal * nlocal, {0.0, 0.0}); + hamilt::folding_HR(*pre_hr_iat, PI_k.data(), kvec_d, nlocal, 1); + + std::vector> temp(nlocal * nbands, zero); + zgemm_("N", "N", &nlocal, &nbands, &nlocal, + &one, PI_k.data(), &nlocal, psi_ptr, &nlocal, &zero, temp.data(), &nlocal); + + zgemm_("C", "N", &nbands, &nbands, &nlocal, + &one, psi_ptr, &nlocal, temp.data(), &nlocal, &zero, PI_sub_local_out, &nbands); +#endif + } + + ModuleBase::timer::end("SpinConstrain", "calculate_PI_sub_from_hr"); +} + +template <> +void SpinConstrain>::calculate_PI_sub_from_hr( + const hamilt::HContainer>* pre_hr_iat, + psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + const ModuleBase::Vector3& kvec_d, + std::complex* PI_sub_local_out, + int nbands, int nlocal) +{ + ModuleBase::TITLE("SpinConstrain", "calculate_PI_sub_from_hr"); + ModuleBase::timer::start("SpinConstrain", "calculate_PI_sub_from_hr"); + + std::complex* psi_ptr = psi.get_pointer(); + + const bool use_fp32 = (subspace_exec_precision_ == ModuleGint::GintPrecision::fp32); + +#ifdef __MPI + int nloc = ParaV->nloc; + std::vector> PI_k_local(nloc, {0.0, 0.0}); + hamilt::folding_HR(*pre_hr_iat, PI_k_local.data(), kvec_d, ParaV->nrow, 1); + + if (use_fp32) + { + ModuleBase::timer::start("SpinConstrain", "calc_PI_sub_fp32"); + const std::complex one_f = {1.0f, 0.0f}; + const std::complex zero_f = {0.0f, 0.0f}; + int nloc_wfc = ParaV->nloc_wfc; + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + + std::vector> PI_k_f(nloc, zero_f); + cast_down_to_float(PI_k_local.data(), PI_k_f.data(), nloc); + std::vector> psi_f(nloc_wfc, zero_f); + cast_down_to_float(psi_ptr, psi_f.data(), nloc_wfc); + + std::vector> temp_f(nloc_wfc, zero_f); + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one_f, PI_k_f.data(), 1, 1, ParaV->desc, + psi_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, temp_f.data(), 1, 1, ParaV->desc_wfc); + + std::vector> PI_sub_local_f(nloc_eij_local, zero_f); + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one_f, psi_f.data(), 1, 1, ParaV->desc_wfc, + temp_f.data(), 1, 1, ParaV->desc_wfc, + zero_f, PI_sub_local_f.data(), 1, 1, ParaV->desc_Eij); + + cast_up_to_double(PI_sub_local_f.data(), PI_sub_local_out, nloc_eij_local); + ModuleBase::timer::end("SpinConstrain", "calc_PI_sub_fp32"); + } + else +#endif + { + const std::complex one = {1.0, 0.0}; + const std::complex zero = {0.0, 0.0}; + +#ifdef __MPI + int nloc_wfc = ParaV->nloc_wfc; + std::vector> temp(nloc_wfc, zero); + + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nlocal, + one, PI_k_local.data(), 1, 1, ParaV->desc, + psi_ptr, 1, 1, ParaV->desc_wfc, + zero, temp.data(), 1, 1, ParaV->desc_wfc); + + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + std::vector> PI_sub_local(nloc_eij_local, zero); + + ScalapackConnector::gemm('C', 'N', nbands, nbands, nlocal, + one, psi_ptr, 1, 1, ParaV->desc_wfc, + temp.data(), 1, 1, ParaV->desc_wfc, + zero, PI_sub_local.data(), 1, 1, ParaV->desc_Eij); + + std::memcpy(PI_sub_local_out, PI_sub_local.data(), sizeof(std::complex) * nloc_eij_local); +#else + std::vector> PI_k(nlocal * nlocal, {0.0, 0.0}); + hamilt::folding_HR(*pre_hr_iat, PI_k.data(), kvec_d, nlocal, 1); + + std::vector> temp(nlocal * nbands, zero); + zgemm_("N", "N", &nlocal, &nbands, &nlocal, + &one, PI_k.data(), &nlocal, psi_ptr, &nlocal, &zero, temp.data(), &nlocal); + + zgemm_("C", "N", &nbands, &nbands, &nlocal, + &one, psi_ptr, &nlocal, temp.data(), &nlocal, &zero, PI_sub_local_out, &nbands); +#endif + } + + ModuleBase::timer::end("SpinConstrain", "calculate_PI_sub_from_hr"); +} + +template <> +void SpinConstrain>::calculate_delta_hcc_lcao( + std::complex* h_sub_local, + const std::map>>& PI_sub_local, + const ModuleBase::Vector3* lambda, + int nbands, int ik, bool full_update, + const Parallel_Orbitals* ParaV) +{ + ModuleBase::TITLE("SpinConstrain", "calculate_delta_hcc_lcao"); + ModuleBase::timer::start("SpinConstrain", "calculate_delta_hcc_lcao"); + + const int nat = this->get_nat(); + std::vector> actual_delta; + const ModuleBase::Vector3* effective_lambda = lambda; + + if (full_update) + { + actual_delta.resize(nat); + for (int iat = 0; iat < nat; iat++) + { + actual_delta[iat] = lambda[iat] - this->lcao_lambda_in_sub_[iat]; + } + effective_lambda = actual_delta.data(); + } + + const int nloc_eij = ParaV->nrow * ParaV->ncol_bands; + + if (this->npol_ == 2) + { + const int nrow = ParaV->nrow; + const int ncol_bands = ParaV->ncol_bands; + const int N_orb = this->ParaV->get_global_row_size() / 2; + + for (const auto& [iat, pi_local] : PI_sub_local) + { + const std::complex coeff0(effective_lambda[iat][2], 0.0); + const std::complex coeff1(effective_lambda[iat][0], -effective_lambda[iat][1]); + const std::complex coeff2(effective_lambda[iat][0], effective_lambda[iat][1]); + const std::complex coeff3(-effective_lambda[iat][2], 0.0); + + const std::complex* pi_ptr = pi_local.data(); + for (int j_local = 0; j_local < ncol_bands; j_local++) + { + for (int i_local = 0; i_local < nrow; i_local++) + { + const int g_row = ParaV->local2global_row(i_local); + const int idx = i_local + j_local * nrow; + if (g_row < N_orb) + { + const int g_row_dn = g_row + N_orb; + const int i_local_dn = ParaV->global2local_row(g_row_dn); + if (i_local_dn >= 0) + { + h_sub_local[idx] += coeff0 * pi_ptr[idx] + coeff2 * pi_ptr[i_local_dn + j_local * nrow]; + } + else + { + h_sub_local[idx] += coeff0 * pi_ptr[idx]; + } + } + else + { + const int g_row_up = g_row - N_orb; + const int i_local_up = ParaV->global2local_row(g_row_up); + if (i_local_up >= 0) + { + h_sub_local[idx] += coeff1 * pi_ptr[i_local_up + j_local * nrow] + coeff3 * pi_ptr[idx]; + } + else + { + h_sub_local[idx] += coeff3 * pi_ptr[idx]; + } + } + } + } + } + } + else if (this->npol_ == 1) + { + int spin_sign = this->get_spin_sign(ik); + + for (const auto& [iat, pi_local] : PI_sub_local) + { + const std::complex coeff(effective_lambda[iat][2] * spin_sign, 0.0); + const std::complex* pi_ptr = pi_local.data(); + for (int ij = 0; ij < nloc_eij; ij++) + { + h_sub_local[ij] += coeff * pi_ptr[ij]; + } + } + } + + ModuleBase::timer::end("SpinConstrain", "calculate_delta_hcc_lcao"); +} + +template <> +void SpinConstrain>::calculate_delta_hcc_lcao( + std::complex* h_sub, + const std::vector>>& PI_sub, + const ModuleBase::Vector3* lambda, + int nbands, int ik, bool full_update) +{ + ModuleBase::TITLE("SpinConstrain", "calculate_delta_hcc_lcao"); + ModuleBase::timer::start("SpinConstrain", "calculate_delta_hcc_lcao"); + + const int nat = this->get_nat(); + std::vector> actual_delta; + const ModuleBase::Vector3* effective_lambda = lambda; + + if (full_update) + { + actual_delta.resize(nat); + for (int iat = 0; iat < nat; iat++) + { + actual_delta[iat] = lambda[iat] - this->lcao_lambda_in_sub_[iat]; + } + effective_lambda = actual_delta.data(); + } + + const int nn = nbands * nbands; + + if (this->npol_ == 2) + { + for (int iat = 0; iat < nat; iat++) + { + if (PI_sub[iat].empty()) continue; + + const std::complex coeff0(effective_lambda[iat][2], 0.0); + const std::complex* pi_ptr = PI_sub[iat].data(); + for (int ij = 0; ij < nn; ij++) + { + h_sub[ij] += coeff0 * pi_ptr[ij]; + } + } + } + else if (this->npol_ == 1) + { + int spin_sign = this->get_spin_sign(ik); + + for (int iat = 0; iat < nat; iat++) + { + if (PI_sub[iat].empty()) continue; + + const std::complex coeff(effective_lambda[iat][2] * spin_sign, 0.0); + const std::complex* pi_ptr = PI_sub[iat].data(); + for (int ij = 0; ij < nn; ij++) + { + h_sub[ij] += coeff * pi_ptr[ij]; + } + } + } + + ModuleBase::timer::end("SpinConstrain", "calculate_delta_hcc_lcao"); +} + +template <> +void SpinConstrain>::rotate_psi_subspace_lcao( + psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + const std::vector>>& vcc_all, + int nbands, int nlocal, int nk) +{ + ModuleBase::TITLE("SpinConstrain", "rotate_psi_subspace_lcao"); + ModuleBase::timer::start("SpinConstrain", "rotate_psi_subspace_lcao"); + + const bool use_fp32 = (subspace_exec_precision_ == ModuleGint::GintPrecision::fp32); + + if (use_fp32) + { + ModuleBase::timer::start("SpinConstrain", "rotate_psi_fp32"); + const std::complex one_f = {1.0f, 0.0f}; + const std::complex zero_f = {0.0f, 0.0f}; + + for (int ik = 0; ik < nk; ik++) + { + psi.fix_k(ik); + std::complex* psi_ptr = psi.get_pointer(); + +#ifdef __MPI + int nloc_wfc = ParaV->nloc_wfc; + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + + std::vector> v_local_f(nloc_eij_local, zero_f); + scatter_sub_matrix_to_local_float(vcc_all[ik].data(), ParaV, v_local_f.data(), nbands); + + std::vector> psi_f(nloc_wfc, zero_f); + cast_down_to_float(psi_ptr, psi_f.data(), nloc_wfc); + + std::vector> temp_f(nloc_wfc, zero_f); + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nbands, + one_f, psi_f.data(), 1, 1, ParaV->desc_wfc, + v_local_f.data(), 1, 1, ParaV->desc_Eij, + zero_f, temp_f.data(), 1, 1, ParaV->desc_wfc); + + cast_up_to_double(temp_f.data(), psi_ptr, nloc_wfc); +#else + std::vector> psi_f(nlocal * nbands); + cast_down_to_float(psi_ptr, psi_f.data(), nlocal * nbands); + std::vector> v_f(nbands * nbands); + cast_down_to_float(vcc_all[ik].data(), v_f.data(), nbands * nbands); + + std::vector> temp_f(nlocal * nbands, zero_f); + cgemm_("N", "N", &nlocal, &nbands, &nbands, + &one_f, psi_f.data(), &nlocal, + v_f.data(), &nbands, + &zero_f, temp_f.data(), &nlocal); + cast_up_to_double(temp_f.data(), psi_ptr, nlocal * nbands); +#endif + } + ModuleBase::timer::end("SpinConstrain", "rotate_psi_fp32"); + } + else + { + const std::complex one = {1.0, 0.0}; + const std::complex zero = {0.0, 0.0}; + + for (int ik = 0; ik < nk; ik++) + { + psi.fix_k(ik); + std::complex* psi_ptr = psi.get_pointer(); + +#ifdef __MPI + int nloc_wfc = ParaV->nloc_wfc; + int lld_Eij = ParaV->nrow; + int ncol_bands = ParaV->ncol_bands; + int nloc_eij_local = lld_Eij * ncol_bands; + + std::vector> v_local(nloc_eij_local, zero); + scatter_sub_matrix_to_local(vcc_all[ik].data(), ParaV, v_local.data(), nbands); + + std::vector> temp(nloc_wfc, zero); + + ScalapackConnector::gemm('N', 'N', nlocal, nbands, nbands, + one, psi_ptr, 1, 1, ParaV->desc_wfc, + v_local.data(), 1, 1, ParaV->desc_Eij, + zero, temp.data(), 1, 1, ParaV->desc_wfc); + + std::memcpy(psi_ptr, temp.data(), sizeof(std::complex) * nloc_wfc); +#else + std::vector> temp(nlocal * nbands); + zgemm_("N", "N", &nlocal, &nbands, &nbands, + &one, psi_ptr, &nlocal, + vcc_all[ik].data(), &nbands, + &zero, temp.data(), &nlocal); + std::memcpy(psi_ptr, temp.data(), sizeof(std::complex) * nlocal * nbands); +#endif + } + } + + ModuleBase::timer::end("SpinConstrain", "rotate_psi_subspace_lcao"); +} + +template <> +void SpinConstrain>::cal_mi_lcao_subspace( + const std::vector>>& vcc_all, + int nbands, int nk, int npol) +{ + ModuleBase::TITLE("SpinConstrain", "cal_mi_lcao_subspace"); + ModuleBase::timer::start("SpinConstrain", "cal_mi_lcao_subspace"); + +#ifdef __LCAO + psi::Psi>* psi_t + = static_cast>*>(this->psi); + + const int nrow = this->ParaV->nrow; + const int nlocal = this->ParaV->get_global_row_size(); + const int nloc_wfc = this->ParaV->nloc_wfc; + + std::vector>> psi_save(nk); + for (int ik = 0; ik < nk; ik++) + { + psi_t->fix_k(ik); + std::complex* ptr = psi_t->get_pointer(); + psi_save[ik].assign(ptr, ptr + nloc_wfc); + } + + this->rotate_psi_subspace_lcao(*psi_t, this->ParaV, vcc_all, nbands, nlocal, nk); + + if (this->subspace_exec_precision_ == ModuleGint::GintPrecision::fp32) + { + elecstate::cal_dm_psi_mixed(this->ParaV, this->pelec->wg, *psi_t, *this->dm_); + } + else + { + elecstate::cal_dm_psi(this->ParaV, this->pelec->wg, *psi_t, *this->dm_); + } + this->dm_->cal_DMR(); + + this->cal_mi_lcao(0); + + for (int ik = 0; ik < nk; ik++) + { + psi_t->fix_k(ik); + std::complex* ptr = psi_t->get_pointer(); + std::memcpy(ptr, psi_save[ik].data(), sizeof(std::complex) * nloc_wfc); + } +#else + this->zero_Mi(); + (void)vcc_all; + (void)nbands; + (void)nk; + (void)npol; +#endif + + ModuleBase::timer::end("SpinConstrain", "cal_mi_lcao_subspace"); +} + +} // namespace spinconstrain + +#endif // __LCAO diff --git a/source/source_lcao/module_deltaspin/spin_constrain.cpp b/source/source_lcao/module_deltaspin/spin_constrain.cpp index b4048b5e9f..ca5c5cea25 100644 --- a/source/source_lcao/module_deltaspin/spin_constrain.cpp +++ b/source/source_lcao/module_deltaspin/spin_constrain.cpp @@ -23,29 +23,22 @@ SpinConstrain& SpinConstrain::getScInstance() } /** - * @brief Calculate the spin constraint energy: E_scon = -sum_i (lambda_i . Mi_i). + * @brief Calculate the spin constraint energy correction: E_scon = -sum_i (lambda_i . Mi_i). * - * @details The constraint energy is the Lagrange multiplier term in the - * constrained DFT functional: - * E'[rho] = E_DFT[rho] - sum_i lambda_i . (Mi_i - M_target_i) + * @details Under the unified convention E' = E + Σ λ·(M - M_target), + * the Hamiltonian correction is H_DS = +λ·σ. This adds +sum(λ·Mi) to eband + * (since deband does not include H_DS). To recover E_DFT: + * E_DFT = E_KS - sum(λ·Mi) = E_KS + E_scon * - * IMPORTANT: Returns 0.0 if magnetic moments are NOT yet converged. - * This is because the constraint energy is only physically meaningful - * when Mi ≈ M_target. Before convergence, the lambda values are still - * adjusting and the energy would be misleading. + * Returns 0.0 if lambda_ or Mi_ have not been initialized yet. * - * @par Output meaning - * - E_scon < 0: lambda and Mi are aligned (system resists the constraint) - * - E_scon > 0: lambda and Mi are anti-aligned (constraint assists the system) - * - E_scon = 0: not converged OR all lambda = 0 (no constraint needed) - * - * @return Constraint energy in Ry (0.0 if not converged) + * @return Constraint energy in Ry */ template double SpinConstrain::cal_escon() { this->escon_ = 0.0; - if (!this->is_Mi_converged) + if (this->lambda_.empty() || this->Mi_.empty()) { return this->escon_; } @@ -126,8 +119,19 @@ template int SpinConstrain::get_spin_sign(int ik) const { if (this->npol_ == 2) return 1; - // npol == 1 (nspin == 2): isk[ik]==0 => spin-up (+1), isk[ik]==1 => spin-down (-1) - return (this->pelec->klist->isk[ik] == 0) ? 1 : -1; + // npol == 1 (nspin == 2): use kv_.isk which is properly initialized + // isk[ik]==0 => spin-up (+1), isk[ik]==1 => spin-down (-1) + // Fall back to index-based detection if isk is not properly set + int isk_val = this->kv_.isk[ik]; + if (isk_val == 0 && this->kv_.isk.size() > 1) { + // Check if all isk are 0 (improper initialization) + // For nspin=2, first nks/2 k-points are spin-up, rest are spin-down + int half_nks = this->kv_.get_nks() / 2; + if (half_nks > 0 && ik >= half_nks) { + return -1; // spin-down + } + } + return (isk_val == 0) ? 1 : -1; } /** @@ -142,7 +146,7 @@ int SpinConstrain::get_spin_sign(int ik) const * where P_at = sum_{l,m} |alpha_{l,m}>::set_input_parameters(double sc_thr_in, int nsc_min_in, double alpha_trial_in, double sccut_in, - double sc_drop_thr_in) + double sc_drop_thr_in, + const std::string& sc_acceleration_mode_in, + double sc_acceleration_rms_thr_in) { this->sc_thr_ = sc_thr_in; this->nsc_ = nsc_in; @@ -675,6 +681,8 @@ void SpinConstrain::set_input_parameters(double sc_thr_in, this->alpha_trial_ = alpha_trial_in / ModuleBase::Ry_to_eV; this->restrict_current_ = sccut_in / ModuleBase::Ry_to_eV; this->sc_drop_thr_ = sc_drop_thr_in; + this->sc_acceleration_mode_ = sc_acceleration_mode_in; + this->sc_acceleration_rms_thr_ = sc_acceleration_rms_thr_in; } /// get sc_thr diff --git a/source/source_lcao/module_deltaspin/spin_constrain.h b/source/source_lcao/module_deltaspin/spin_constrain.h index 4785e8dfe8..13ab64d94f 100644 --- a/source/source_lcao/module_deltaspin/spin_constrain.h +++ b/source/source_lcao/module_deltaspin/spin_constrain.h @@ -26,18 +26,43 @@ * * @par Spin Types * - nspin=2 (collinear): Only z-component constrained, npol=1, uses spin_sign (+1/-1) + * H_delta = lambda_z * sigma_z (diagonal, opposite sign per spin channel) * - nspin=4 (non-collinear): Full xyz components constrained, npol=2, full Pauli matrices + * H_delta = lambda . sigma (2x2 block with spin-flip terms) + * + * @par direction_only Mode and Two-Phase Strategy (collinear only) + * The direction_only flag was designed for non-collinear calculations to constrain + * only the spin DIRECTION (not magnitude). For collinear (nspin=2) mode, + * the direction_only projection mathematically zeroes lambda (see lambda_loop.cpp). + * + * The two-phase strategy in esolver_ks_lcao.cpp solves this for nspin=2: + * Phase 1 (iter 1..sc_dir_phase1_steps): BFGS with direction_only=FALSE constrains magnitude + * Phase 2 (iter > sc_dir_phase1_steps): Lambda decays to zero, system relaxes naturally + * + * For nspin=4, direction_only works correctly and uses the standard sc_scf_thr_mode gate. * * @par Convergence Criteria * - RMS error: sqrt(mean(delta_spin^2)) < sc_thr (adaptive threshold) * - Gradient decay: max(dM/dlambda) per atom type < decay_grad[itype] * - Maximum steps: nsc (default 50), minimum steps: nsc_min + * + * @par Parameter Recommendations + * - sc_scf_thr: Density error threshold for activating lambda loop. Default: 1e-3. + * Should be 10-100x larger than scf_thr. Only used when sc_scf_thr_mode="threshold". + * - sc_scf_thr_mode: "threshold" (default, activate when drho=2, for PW basis), or + * "off" (never activate, lambda used as constant constraint). + * - mixing_restart: Auto-set based on sc_scf_thr_mode. See read_input_item_elec_stru.cpp. + * - sc_dir_phase1_steps: Phase 1 duration for collinear direction_only. Default: 5. + * - sc_direction_only: Set to true for direction-only constraint. */ #ifndef SPIN_CONSTRAIN_H #define SPIN_CONSTRAIN_H #include #include +#include +#include #include #include "source_base/constants.h" @@ -51,11 +76,16 @@ #include "source_cell/unitcell.h" #include "source_hamilt/operator.h" #include "source_estate/elecstate.h" +#include "source_lcao/module_gint/gint_helper.h" #ifdef __LCAO #include "source_estate/module_dm/density_matrix.h" // mohan add 2025-11-02 +#include "source_lcao/module_operator_lcao/dspin_lcao.h" // For hamilt::DeltaSpin #endif +// Always include diagonalization_engine for type definitions (needed by template) +#include "source_lcao/module_deltaspin/diagonalization_engine.h" + namespace spinconstrain { @@ -63,11 +93,11 @@ namespace spinconstrain * @brief Convert spinor occupation matrix to magnetic moment vector using Pauli matrices. * * @details For a two-component spinor wavefunction, the spin density matrix is: - * rho = |a|^2 a*b | = | (1+Mz)/2 (Mx-iMy)/2 | - * |b*a |b|^2 | | (Mx+iMy)/2 (1-Mz)/2 | + * rho = |a|^2 a*b | = | (1+Mz)/2 (Mx+iMy)/2 | + * |b*a |b|^2 | | (Mx-iMy)/2 (1-Mz)/2 | * The magnetic moment components are extracted via Pauli matrix traces: * Mx = Tr(rho * sigma_x) = occ[1] + occ[2] (real part) - * My = Tr(rho * sigma_y) = -Im(occ[1] - occ[2]) (from sigma_y = [[0,-i],[i,0]]) + * My = Tr(rho * sigma_y) = Im(occ[1] - occ[2]) (imaginary part) * Mz = Tr(rho * sigma_z) = occ[0] - occ[3] (real part) * where occ = {|a|^2, a*b, b*a, |b|^2} from becp coefficients. * @@ -79,13 +109,18 @@ inline ModuleBase::Vector3 pauli_to_moment(const std::complex oc { return ModuleBase::Vector3( weight * (occ[1] + occ[2]).real(), - -weight * (occ[1] - occ[2]).imag(), + weight * (occ[1] - occ[2]).imag(), weight * (occ[0] - occ[3]).real() ); } struct ScAtomData; +// Forward declarations for diagonalization engine classes +class FullSpaceDiagonalizer; +class SubspaceDiagonalizer; +class FirstOrderResponseEngine; + /** * @brief Singleton class implementing spin-constrained DFT (DeltaSpin). * @@ -122,6 +157,11 @@ struct ScAtomData; template class SpinConstrain { + // Diagonalization engine classes need access to private members + friend class FullSpaceDiagonalizer; + friend class SubspaceDiagonalizer; + friend class FirstOrderResponseEngine; + public: /** * ============================================================= @@ -157,24 +197,26 @@ class SpinConstrain * @param pelec_in Pointer to electronic state (for charge, weights, ekb) * @param pw_wfc_in PW basis for wavefunction storage (PW only) */ - void init_sc(double sc_thr_in, - int nsc_in, - int nsc_min_in, - double alpha_trial_in, - double sccut_in, - double sc_drop_thr_in, - const UnitCell& ucell, - bool direction_only_in, - Parallel_Orbitals* ParaV_in, - int nspin_in, - const K_Vectors& kv_in, - void* p_hamilt_in, - void* psi_in, -#ifdef __LCAO + void init_sc(double sc_thr_in, + int nsc_in, + int nsc_min_in, + double alpha_trial_in, + double sccut_in, + double sc_drop_thr_in, + const std::string& sc_acceleration_mode_in, + double sc_acceleration_rms_thr_in, + const UnitCell& ucell, + bool direction_only_in, + Parallel_Orbitals* ParaV_in, + int nspin_in, + const K_Vectors& kv_in, + void* p_hamilt_in, + void* psi_in, + #ifdef __LCAO elecstate::DensityMatrix *dm_in, // mohan add 2025-11-02 -#endif + #endif elecstate::ElecState* pelec_in, - ModulePW::PW_Basis_K* pw_wfc_in = nullptr); + ModulePW::PW_Basis_K* pw_wfc_in = nullptr); /** * @brief Calculate atomic magnetic moments using real-space projection (LCAO basis). @@ -226,13 +268,14 @@ class SpinConstrain const ModuleBase::Vector3* delta_lambda = nullptr); /** - * @brief Calculate the spin constraint energy contribution: E_scon = -sum(lambda_i . Mi_i). + * @brief Calculate the spin constraint energy correction: E_scon = -sum(lambda_i . Mi_i). * - * @details Returns 0.0 if magnetic moments are not yet converged, because the - * constraint energy is only physically meaningful when Mi ≈ M_target. - * This energy is added to the total DFT energy in the SCF loop. + * @details Under E' = E + Σ λ·(M - M_target), H_DS = +λ·σ adds +sum(λ·Mi) + * to eband. To recover E_DFT: + * E_DFT = E_KS - sum(λ·Mi) = E_KS + E_scon + * Always computed when DeltaSpin is active, regardless of convergence. * - * @return Constraint energy in Ry (0.0 if not converged) + * @return Constraint energy in Ry */ double cal_escon(); @@ -264,22 +307,168 @@ class SpinConstrain * * @param outer_step Current SCF outer iteration number */ - void run_lambda_linear_scan(int outer_step); + void run_lambda_linear_scan(int outer_step); - /// @brief Reset DeltaSpin operator initialization state when constraints change - void reset_dspin_operator(); + /** + * @brief Diagnostic scan: compare subspace Mi vs full diagonalization Mi. + * @details For nspin=2 LCAO. At each lambda point, computes both subspace Mi + * (trace formula) and full Mi (full diagonalization), outputs comparison. + * @param outer_step Current SCF outer iteration number + */ + void run_lambda_scan_diagnostic(int outer_step); - /** - * @brief Update wavefunctions and charge density after lambda optimization. - * - * @details Dispatcher to LCAO or PW (CPU/GPU) update paths. - * For PW: performs subspace diagonalization + optional full-space refinement. - * - * @param delta_lambda Lambda change for incremental H correction - * @param pw_solve If true, run full PW solver for refinement; if false, just update weights - * @param full_update If true, apply full lambda (not delta) to H correction - */ - void update_psi_charge(const ModuleBase::Vector3* delta_lambda, bool pw_solve = true, bool full_update = false); + /** + * @brief Local diagnostic: compare methods near a reference lambda value. + * @details Builds subspace at lambda_ref, then scans lambda_ref ± 0.5 eV/uB. + * Tests hypothesis: small perturbations near converged lambda are well-approximated. + * @param outer_step Current SCF outer iteration number + * @param lambda_ref_ry Reference lambda in Ry/uB (where subspace is built) + * @param label Label for output file + */ + void run_lambda_local_diagnostic(int outer_step, double lambda_ref_ry, const std::string& label); + + /** + * @brief Diagnostic: compare DMR-path Mi vs trace-formula Mi vs full diag. + * @details At lambda_ref, builds subspace. Scans delta_lambda values. + * For each: computes Mi via (A) full diag, (B) DMR path, (C) trace formula. + * Results written to trace_vs_dmr_diagnostic.dat. + * @param outer_step SCF iteration + * @param lambda_ref_ry Reference lambda in Ry/uB + */ + void run_trace_vs_dmr_diagnostic(int outer_step, double lambda_ref_ry); + + // ================================================================= + // DiagonalizationEngine management (Phase 2 refactoring) + // ================================================================= + + /// @brief Get the currently active diagonalization strategy type + DiagonalizationStrategy get_current_strategy() const { return current_strategy_; } + + /// @brief Get the name of the currently active strategy + std::string get_current_strategy_name() const { return strategy_to_string(current_strategy_); } + + /** + * @brief Evaluate whether acceleration should be activated or deactivated. + * Default: no change. Specialized for complex in spin_constrain.cpp. + */ + + /// @brief Get or create the diagonalization engine. + template + typename std::enable_if>::value, DiagonalizationEngine&>::type + get_or_create_engine_impl(double rms_error) + { +#ifdef __LCAO + if (PARAM.inp.basis_type != "lcao") + { + static std::unique_ptr dummy_fs; + if (!dummy_fs) dummy_fs.reset(new FullSpaceDiagonalizer(*this)); + return *dummy_fs; + } + + // ================================================================= + // Evaluate acceleration switch directly (no separate method) + // ================================================================= + const bool can_accelerate = (sc_acceleration_mode_ != "off") && + (sc_acceleration_rms_thr_ > 0.0); + + int switch_decision = 0; + if (can_accelerate) + { + if (acceleration_active_ && acceleration_subspace_built_) + { + // Already active: check for fallback + double fallback_thr = sc_acceleration_rms_thr_ * 10.0; + accel_fallback_rms_thr_ = fallback_thr; + if (rms_error > fallback_thr) switch_decision = -1; + } + else if (!acceleration_active_ && rms_error < sc_acceleration_rms_thr_) + { + // Not yet active: check if should activate + switch_decision = 1; + } + } + + if (switch_decision == 1) + { + if (sc_acceleration_mode_ == "first_order") + { + diagonalization_engine_.reset(new FirstOrderResponseEngine(*this)); + current_strategy_ = DiagonalizationStrategy::FirstOrder; + } + else if (sc_acceleration_mode_ == "subspace") + { + diagonalization_engine_.reset(new SubspaceDiagonalizer(*this)); + current_strategy_ = DiagonalizationStrategy::Subspace; + } + + acceleration_active_ = true; + acceleration_subspace_built_ = false; + } + else if (switch_decision == -1) + { + throw std::runtime_error( + "DeltaSpin subspace acceleration produced catastrophically wrong Mi " + "(RMS jumped above fallback threshold). This should never happen " + "and indicates a bug. Please report this issue."); + } + + if (!diagonalization_engine_) + { + diagonalization_engine_.reset(new FullSpaceDiagonalizer(*this)); + current_strategy_ = DiagonalizationStrategy::FullSpace; + } + return *diagonalization_engine_; +#else + (void)rms_error; + static std::unique_ptr dummy; + if (!dummy) dummy.reset(new FullSpaceDiagonalizer(*this)); + return *dummy; +#endif + } + + /// @brief Default stub for non-complex specializations. + template + typename std::enable_if>::value, DiagonalizationEngine&>::type + get_or_create_engine_impl(double rms_error) + { + (void)rms_error; + static std::unique_ptr dummy; + return *dummy; + } + + /// @brief Get or create the diagonalization engine (dispatches to impl). + DiagonalizationEngine& get_or_create_engine(double rms_error) + { + return get_or_create_engine_impl(rms_error); + } + + /// @brief Build subspace cache. Default: false. + bool build_engine_subspace() { return false; } + + /// @brief Clear engine cache and reset to FullSpace. + void reset_engine() + { + diagonalization_engine_.reset(); + current_strategy_ = DiagonalizationStrategy::FullSpace; + engine_lambda_ref_.clear(); + acceleration_active_ = false; + acceleration_subspace_built_ = false; + } + + /// @brief Reset DeltaSpin operator initialization state when constraints change + void reset_dspin_operator(); + + /** + * @brief Update wavefunctions and charge density after lambda optimization. + * + * @details Dispatcher to LCAO or PW (CPU/GPU) update paths. + * For PW: performs subspace diagonalization + optional full-space refinement. + * + * @param delta_lambda Lambda change for incremental H correction + * @param pw_solve If true, run full PW solver for refinement; if false, just update weights + * @param full_update If true, apply full lambda (not delta) to H correction + */ + void update_psi_charge(const ModuleBase::Vector3* delta_lambda, bool pw_solve = true, bool full_update = false); /** * @brief Wavefunction and charge density update implementation for PW basis. @@ -322,6 +511,145 @@ class SpinConstrain const int nbands, const int nkb, const int* nh_iat, const int ik, bool full_update = false); +#ifdef __LCAO + /** + * @brief Compute H_sub = C†·H·C and S_sub = C†·S·C for LCAO subspace. + * + * @details Uses ScaLAPACK pzgemm to compute the nbands×nbands subspace + * Hamiltonian and overlap matrices from the 2D-block distributed H(k), S(k) + * and C(k). The result is gathered to all processes in the pool via reduce. + * + * @param hamilt Pointer to HamiltLCAO (type-erased, will be cast) + * @param psi Wavefunction container with 2D-block distributed C(k) + * @param ParaV Parallel orbitals distribution info + * @param h_sub Output: H_sub(k) [nbands × nbands], column-major + * @param s_sub Output: S_sub(k) [nbands × nbands], column-major + * @param ik K-point index + * @param nbands Number of bands + * @param nlocal Global basis size (NLOCAL) + */ + void calculate_lcao_sub_hs(void* hamilt, + psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + std::complex* h_sub, + std::complex* s_sub, + int ik, int nbands, int nlocal); + + /** + * @brief Compute P_I_sub(k) = C†(k) P_I(k) C(k) from real-space pre_hr. + * + * @details Uses folding_HR to assemble P_I(k) in ScaLAPACK 2D-block layout, + * then pzgemm to project into the subspace. This is consistent with how + * calculate_lcao_sub_hs computes H_sub = C†H(k)C, and ensures P_I_sub + * matches the DMR path's cal_moment exactly. + * + * @param pre_hr_iat Real-space HContainer for atom iat (from DeltaSpin::get_pre_hr) + * @param psi Wavefunction C(k) (2D-block distributed) + * @param ParaV Parallel orbitals distribution + * @param kvec_d k-point in direct coordinates + * @param PI_sub_local Output: local 2D block-cyclic block of P_I_sub(k) + * (ParaV->nrow * ParaV->ncol_bands elements, NOT the full gathered matrix) + * @param nbands Number of bands + * @param nlocal Global basis size + */ + void calculate_PI_sub_from_hr( + const hamilt::HContainer* pre_hr_iat, + psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + const ModuleBase::Vector3& kvec_d, + std::complex* PI_sub_local, + int nbands, int nlocal); + + void calculate_PI_sub_from_hr( + const hamilt::HContainer>* pre_hr_iat, + psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + const ModuleBase::Vector3& kvec_d, + std::complex* PI_sub_local, + int nbands, int nlocal); + + /** + * @brief Apply DeltaSpin correction to LCAO subspace Hamiltonian. + * + * @details H_sub_local += Σ_I lambda_I · P_I_sub_local(k) for each constrained atom I. + * The P_I_sub matrices are pre-computed by cal_PI_sub() and stored as + * local 2D block-cyclic blocks (not gathered full matrices). + * For nspin=4 (npol=2), uses Pauli matrix coefficients. + * For nspin=2 (npol=1), uses spin_sign scaling. + * + * @param h_sub_local Subspace Hamiltonian local block [nrow * ncol_bands] (modified in place) + * @param PI_sub_local Per-atom projector overlap LOCAL BLOCKS (map: iat → local block) + * @param lambda Lambda values per atom + * @param nbands Number of bands + * @param ik K-point index (for spin_sign in nspin=2) + * @param full_update If true, compute delta = lambda - lcao_lambda_in_sub_ + * @param ParaV Parallel orbitals distribution info + */ + void calculate_delta_hcc_lcao(std::complex* h_sub_local, + const std::map>>& PI_sub_local, + const ModuleBase::Vector3* lambda, + int nbands, int ik, bool full_update, + const Parallel_Orbitals* ParaV); + + /** + * @brief Backward-compatible overload using full gathered matrices. + * @details Used by diagnostic functions and DiagonalizationEngine which + * operate on full nbands×nbands matrices (not memory-optimized). + */ + void calculate_delta_hcc_lcao(std::complex* h_sub, + const std::vector>>& PI_sub, + const ModuleBase::Vector3* lambda, + int nbands, int ik, bool full_update); + + /** + * @brief Compute magnetic moments from LCAO subspace matrices. + * + * @details For each constrained atom I: + * M_I = Σ_k w_k · Tr[P_I_sub(k) · ρ_sub(k)] + * where ρ_sub(k) = V†(k) · f(k) · V(k) is the Fermi-weighted density + * matrix in the subspace basis, and P_I_sub(k) = D_I†(k) · D_I(k). + * + * For nspin=2: Mz = spin_sign · Σ_k w_k · Re(Tr[P_I_sub · ρ_sub]) + * For nspin=4: Full Pauli decomposition gives (Mx, My, Mz) + * + * @param PI_sub Per-atom, per-k-point projector matrices + * @param vcc Subspace eigenvectors [nbands × nbands] (column-major) + * @param ekb Eigenvalues [nbands] + * @param wg Band weights [nbands] + * @param nbands Number of bands + * @param nk Number of k-points + * @param npol Number of spinor components + * @param kv K-point vector list (for weights) + */ + void cal_mi_lcao_subspace( + const std::vector>>& vcc_all, + int nbands, int nk, int npol); + + /** + * @brief Free LCAO subspace cache data. + * Called at the end of a lambda loop or when starting a new SCF iteration. + */ + void free_lcao_subspace_cache(); + + /** + * @brief Rotate wavefunctions in LCAO subspace: C_new = C_old · V + * + * @details Uses ScaLAPACK pzgemm to apply the subspace rotation + * V(k) to the distributed wavefunction C(k). + * + * @param psi Wavefunction container (modified in place) + * @param ParaV Parallel orbitals distribution info + * @param vcc_all Per-k-point eigenvector matrices [nk][nbands²] + * @param nbands Number of bands + * @param nlocal Global basis size + * @param nk Number of k-points + */ + void rotate_psi_subspace_lcao(psi::Psi>& psi, + const Parallel_Orbitals* ParaV, + const std::vector>>& vcc_all, + int nbands, int nlocal, int nk); +#endif + #ifdef __LCAO /// @brief Convert orbital matrix to nested vector format [nspin][iat][iw] std::vector>> convert(const ModuleBase::matrix& orbMulP); @@ -439,10 +767,34 @@ class SpinConstrain void set_constrain(const ModuleBase::Vector3* constrain_in, int nat_in); /// get sc_lambda const std::vector>& get_sc_lambda() const; + /// get Mi (current magnetic moments) + const std::vector>& get_Mi() const { return Mi_; } /// get target_mag const std::vector>& get_target_mag() const; /// get constrain const std::vector>& get_constrain() const; + /// set lambda directly + void set_lambda(const std::vector>& v) { lambda_ = v; } + /// set direction_only mode + /// + /// direction_only controls whether the BFGS optimizer constrains only the + /// spin DIRECTION (not magnitude) of atomic magnetic moments: + /// + /// - direction_only = true: Projects out the parallel component of lambda + /// (along the target magnetization direction). Only transverse lambda + /// components remain, which rotate spin direction without changing magnitude. + /// Designed for non-collinear (nspin=4) calculations. + /// WARNING: For nspin=2 (collinear), this zeroes lambda entirely because + /// the only constrained direction (z-axis) IS the parallel direction. + /// + /// - direction_only = false: Full BFGS optimization of lambda, constraining + /// both magnitude AND direction of magnetic moments to target values. + /// Required for Phase 1 of the two-phase strategy in collinear mode. + /// + /// Usage pattern (esolver_ks_lcao.cpp): + /// Phase 1: sc.set_direction_only(false); sc.run_lambda_loop(); // magnitude constraint + /// Phase 2: sc.set_direction_only(true); // restore for reporting + void set_direction_only(bool v) { direction_only_ = v; } /// get nat int get_nat(); /// get ntype @@ -473,7 +825,9 @@ class SpinConstrain int nsc_min_in, double alpha_trial_in, double sccut_in, - double sc_drop_thr_in); + double sc_drop_thr_in, + const std::string& sc_acceleration_mode_in, + double sc_acceleration_rms_thr_in); /// get sc_thr double get_sc_thr() const; /// get nsc @@ -486,6 +840,9 @@ class SpinConstrain double get_sccut() const; /// get sc_drop_thr double get_sc_drop_thr() const; + const std::string& get_basis_type() const { return basis_type_; } + const std::string& get_ks_solver() const { return ks_solver_; } + int get_nbands() const { return nbands_; } /// @brief set orbital parallel info void set_ParaV(Parallel_Orbitals* ParaV_in); /// @brief set parameters for solver @@ -521,6 +878,10 @@ class SpinConstrain sub_h_save = nullptr; sub_s_save = nullptr; becp_save = nullptr; + delete[] lcao_sub_h_save; + delete[] lcao_sub_s_save; + lcao_sub_h_save = nullptr; + lcao_sub_s_save = nullptr; }; SpinConstrain& operator=(SpinConstrain const&) = delete; ///< Copy assignment deleted SpinConstrain& operator=(SpinConstrain &&) = delete; ///< Move assignment deleted @@ -552,15 +913,25 @@ class SpinConstrain double alpha_trial_; ///< Initial trial step size (Ry/uB^2), adaptively adjusted during loop double restrict_current_; ///< Maximum allowed lambda change per step (Ry/uB), prevents overshooting bool direction_only_ = false; ///< If true, only optimize spin direction (project out parallel lambda component) + double last_drho_ = -1.0; ///< Last observed SCF charge density error (for convergence-dependent diagnostics) public: - /// @brief Set DeltaSpin operator pointer for magnetic moment calculation (LCAO) - /// @param op_in Base pointer, actual type is DeltaSpin>* - void set_operator(hamilt::Operator* op_in); - /// @brief Set magnetic moment convergence flag - void set_mag_converged(bool is_Mi_converged_in){this->is_Mi_converged = is_Mi_converged_in;} - /// @brief Get magnetic moment convergence flag - bool mag_converged() const {return this->is_Mi_converged;} + /// @brief Set DeltaSpin operator pointer for magnetic moment calculation (LCAO) + /// @param op_in Base pointer, actual type is DeltaSpin>* + void set_operator(hamilt::Operator* op_in); + /// @brief Set magnetic moment convergence flag + void set_mag_converged(bool is_Mi_converged_in){this->is_Mi_converged = is_Mi_converged_in;} + /// @brief Get magnetic moment convergence flag + bool mag_converged() const {return this->is_Mi_converged;} + /// @brief Set the last observed SCF charge density error (drho) + void set_drho(double drho_in) { this->last_drho_ = drho_in; } + /// @brief Get the last observed SCF charge density error + double get_drho() const { return this->last_drho_; } + + void set_subspace_exec_precision(ModuleGint::GintPrecision prec) { subspace_exec_precision_ = prec; } + ModuleGint::GintPrecision get_subspace_exec_precision() const { return subspace_exec_precision_; } + /// @brief Flag: has trace vs DMR diagnostic been run this calculation? + bool local_diag_run_ = false; void set_npol(int npol); int get_npol() const; int get_nw() const; ///< Total number of orbitals across all constrained atoms @@ -597,6 +968,8 @@ class SpinConstrain hamilt::Operator* p_operator = nullptr; /// @brief Flag: has the magnetic moment converged in the current SCF iteration? bool is_Mi_converged = false; + /// @brief Execution precision for DeltaSpin subspace operations + ModuleGint::GintPrecision subspace_exec_precision_ = ModuleGint::GintPrecision::fp64; /** * ============================================================= @@ -624,7 +997,71 @@ class SpinConstrain TK* sub_s_save = nullptr; ///< Cached subspace overlap matrix for all k-points TK* becp_save = nullptr; ///< Cached becp coefficients for all k-points std::vector> lambda_in_sub_; ///< Lambda values when subspace was saved -}; + + /** + * ============================================================= + * LCAO SUBSPACE DATA CACHING + * ============================================================= + * + * @par Purpose + * In the LCAO basis, subspace diagonalization avoids full O(N³) + * diagonalization at each lambda step. H₀_sub(k) and S_sub(k) + * (both nbands×nbands) are computed once per SCF iteration and reused. + * P_I_sub(k) (projector overlaps) are computed via cal_PI_sub(). + * + * @par Layout + * - lcao_sub_h_save: H₀_sub(k) for each k-point, stored as + * [ik * nbands * nbands + i * nbands + j] (column-major) + * - lcao_sub_s_save: S_sub(k), same layout + * - lcao_PI_sub_save: P_I_sub(k) for each constrained atom and k-point + * lcao_PI_sub_save[ik][iat] = nbands×nbands Hermitian matrix + * Only filled for constrained atoms; empty for unconstrained. + * - lcao_ekb_save: eigenvalues from full diagonalization (for Fermi weights) + * + * @par Memory management + * Allocated on first cal_mw_from_lambda() LCAO subspace call, + * freed when subspace data is no longer needed (end of lambda loop or + * when a full rediagonalization is performed). + */ + bool lcao_subspace_initialized_ = false; + int lcao_nbands_ = 0; ///< Number of bands in subspace + int lcao_nk_ = 0; ///< Number of k-points + int lcao_nlocal_ = 0; ///< Global basis size (NLOCAL) + TK* lcao_sub_h_save = nullptr; ///< Cached H₀_sub(k) for all k-points [nk * nbands²] + TK* lcao_sub_s_save = nullptr; ///< Cached S_sub(k) for all k-points [nk * nbands²] + /// Per-k-point, per-constrained-atom projector overlap in subspace. + /// Stored as LOCAL 2D block-cyclic blocks (NOT gathered full matrices). + /// Key = constrained atom index; Value = local block vector. + std::vector>>> lcao_PI_sub_save_; + std::vector>> lcao_PI_sub_diag_; + std::vector> h_sub_local_buf_; + std::vector> h_tmp_buf_; + std::vector> s_tmp_buf_; + std::vector> vcc_buf_; + std::vector> s_copy_buf_; + std::vector eigenvalues_buf_; + std::vector lcao_ekb_save_; ///< Cached eigenvalues [nk * nbands] + /// Lambda values when subspace data was saved (for incremental H correction) + std::vector> lcao_lambda_in_sub_; + /// Acceleration mode parameters + std::string sc_acceleration_mode_ = "off"; ///< "off", "first_order", "subspace" + double sc_acceleration_rms_thr_ = -1.0; ///< RMS threshold (uB) to activate acceleration, <0 disables + std::string basis_type_; ///< Cached basis type for LCAO/PW branching + std::string ks_solver_; ///< Cached KS solver name + int nbands_ = 0; ///< Cached number of bands + bool acceleration_active_ = false; ///< Has acceleration been activated this SCF iteration? + bool acceleration_subspace_built_ = false; ///< Has subspace been built at activation lambda? + bool subspace_just_activated_ = false; ///< Was subspace just activated? (signals BFGS to reset search direction) + std::vector> lambda_at_acceleration_; ///< Lambda when acceleration was activated + + // ================================================================= + // DiagonalizationEngine integration (Phase 2 refactoring) + // ================================================================= + std::unique_ptr diagonalization_engine_; + DiagonalizationStrategy current_strategy_ = DiagonalizationStrategy::FullSpace; + std::vector> engine_lambda_ref_; + double accel_fallback_rms_thr_ = -1.0; + }; /** diff --git a/source/source_lcao/module_deltaspin/test/CMakeLists.txt b/source/source_lcao/module_deltaspin/test/CMakeLists.txt index c47869123a..a9f3a07868 100644 --- a/source/source_lcao/module_deltaspin/test/CMakeLists.txt +++ b/source/source_lcao/module_deltaspin/test/CMakeLists.txt @@ -27,14 +27,8 @@ AddTest( AddTest( TARGET deltaspin_pw_test - LIBS base device parameter + LIBS ${math_libs} base device parameter SOURCES deltaspin_pw_test.cpp ) -AddTest( - TARGET deltaspin_core_test - LIBS base device - SOURCES deltaspin_core_test.cpp -) - endif() diff --git a/source/source_lcao/module_deltaspin/test/deltaspin_pw_test.cpp b/source/source_lcao/module_deltaspin/test/deltaspin_pw_test.cpp index c1f67ac76b..30274d2367 100644 --- a/source/source_lcao/module_deltaspin/test/deltaspin_pw_test.cpp +++ b/source/source_lcao/module_deltaspin/test/deltaspin_pw_test.cpp @@ -86,6 +86,8 @@ TEST_F(DeltaSpinPwTest, DeltaHcc_Npol2_SingleAtom) EXPECT_NEAR(ps[0 + nkb].imag(), 0.48, 1e-12); } +// PLACEHOLDER_DELTASPIN_PW_TESTS + TEST_F(DeltaSpinPwTest, DeltaHcc_Npol2_MultiAtom) { // Two atoms: verify sum offset advances correctly @@ -177,6 +179,57 @@ TEST_F(DeltaSpinPwTest, DeltaHcc_Npol1_SignPositive) EXPECT_NEAR(ps[1].imag(), -0.25, 1e-12); } +TEST_F(DeltaSpinPwTest, DeltaHcc_Npol1_SignNegative) +{ + const int nkb = 1; + const int nbands = 1; + const int sign = -1; + const double lambda_z = 0.5; + + std::vector> becp(nbands * nkb, {0.0, 0.0}); + becp[0] = {1.0, 0.0}; + + std::vector> ps(nbands * nkb, {0.0, 0.0}); + double coeff = lambda_z * sign; + ps[0] += coeff * becp[0]; + + EXPECT_NEAR(ps[0].real(), -0.5, 1e-12); + EXPECT_NEAR(ps[0].imag(), 0.0, 1e-12); +} + +TEST_F(DeltaSpinPwTest, DeltaHcc_Npol2_ZeroLambda) +{ + // lambda = (0,0,0) => ps should remain zero + const int nkb = 2; + const int nbands = 1; + const int npol = 2; + + std::vector> becp(nbands * npol * nkb, {0.0, 0.0}); + becp[0] = {1.0, 0.5}; + becp[1] = {0.3, -0.2}; + becp[0 + nkb] = {0.7, 0.1}; + becp[1 + nkb] = {-0.4, 0.8}; + + std::vector> ps(nbands * npol * nkb, {0.0, 0.0}); + + const std::complex c0(0.0, 0.0); + const std::complex c1(0.0, 0.0); + const std::complex c2(0.0, 0.0); + const std::complex c3(0.0, 0.0); + + for(int ip = 0; ip < nkb; ip++) + { + ps[ip] += c0 * becp[ip] + c2 * becp[ip + nkb]; + ps[ip + nkb] += c1 * becp[ip] + c3 * becp[ip + nkb]; + } + + for(int i = 0; i < nbands * npol * nkb; i++) + { + EXPECT_NEAR(ps[i].real(), 0.0, 1e-15); + EXPECT_NEAR(ps[i].imag(), 0.0, 1e-15); + } +} + // ===================================================================== // cal_Mi_pw: magnetization accumulation from becp // ===================================================================== @@ -220,6 +273,24 @@ TEST_F(DeltaSpinPwTest, MiPw_Npol1_SpinUp) EXPECT_NEAR(Mi_z, 1.875, 1e-12); } +TEST_F(DeltaSpinPwTest, MiPw_Npol1_SpinDown) +{ + // spin-down (sign=-1) + const int nkb = 1; + const int nbands = 1; + const int sign = -1; + const double weight = 2.0; + + std::vector> becp(1, {0.0, 0.0}); + becp[0] = {0.6, 0.8}; // |becp|^2 = 0.36 + 0.64 = 1.0 + + double Mi_z = 0.0; + double occ = (std::conj(becp[0]) * becp[0]).real(); + Mi_z += sign * weight * occ; + + EXPECT_NEAR(Mi_z, -2.0, 1e-12); +} + TEST_F(DeltaSpinPwTest, MiPw_Npol2_PureZMag) { // npol=2: construct becp so that only z-component is nonzero @@ -406,6 +477,41 @@ TEST_F(DeltaSpinPwTest, MwFromLambda_Npol2_Accumulation) EXPECT_NEAR(Mi_y, 1.44, 1e-12); // 0.96 + 0.48 } +TEST_F(DeltaSpinPwTest, MwFromLambda_Npol1_SignHandling) +{ + // npol=1: isk[ik]=0 => sign=+1, isk[ik]=1 => sign=-1 + const int nkb = 1; + const int nbands = 1; + const int nk = 2; + const double weight = 1.0; + const int isk[2] = {0, 1}; // first k spin-up, second k spin-down + + std::vector> becp_tmp(nbands * nkb * nk, {0.0, 0.0}); + becp_tmp[0] = {0.5, 0.0}; // k=0: |becp|^2 = 0.25 + becp_tmp[1] = {0.5, 0.0}; // k=1: |becp|^2 = 0.25 + + double Mi_z = 0.0; + for(int ik = 0; ik < nk; ik++) + { + const int sign = (isk[ik] == 0) ? 1 : -1; + const std::complex* becp = &becp_tmp[ik * nbands * nkb]; + for(int ib = 0; ib < nbands; ib++) + { + double occ = 0.0; + for(int ih = 0; ih < nkb; ih++) + { + const int index = ib * nkb + ih; + occ += (std::conj(becp[index]) * becp[index]).real(); + } + Mi_z += weight * occ * sign; + } + } + + // k=0: +1 * 1.0 * 0.25 = 0.25 + // k=1: -1 * 1.0 * 0.25 = -0.25 + EXPECT_NEAR(Mi_z, 0.0, 1e-15); +} + // ===================================================================== // DeltaHcc gemm contribution: h_tmp += becp^H * ps // ===================================================================== diff --git a/source/source_lcao/module_deltaspin/test/spin_constrain_test.cpp b/source/source_lcao/module_deltaspin/test/spin_constrain_test.cpp index 56c6100d41..500bbad217 100644 --- a/source/source_lcao/module_deltaspin/test/spin_constrain_test.cpp +++ b/source/source_lcao/module_deltaspin/test/spin_constrain_test.cpp @@ -134,7 +134,7 @@ TYPED_TEST(SpinConstrainTest, SetInputParameters) double alpha_trial = 0.01; double sccut = 3.0; double sc_drop_thr = 1e-3; - this->sc.set_input_parameters(sc_thr, nsc, nsc_min, alpha_trial, sccut, sc_drop_thr); + this->sc.set_input_parameters(sc_thr, nsc, nsc_min, alpha_trial, sccut, sc_drop_thr, "none", 0.0); EXPECT_DOUBLE_EQ(this->sc.get_sc_thr(), sc_thr); EXPECT_EQ(this->sc.get_nsc(), nsc); EXPECT_EQ(this->sc.get_nsc_min(), nsc_min); diff --git a/source/source_lcao/module_dftu/dftu.cpp b/source/source_lcao/module_dftu/dftu.cpp index c3d9b8bf46..dc9e82dec2 100644 --- a/source/source_lcao/module_dftu/dftu.cpp +++ b/source/source_lcao/module_dftu/dftu.cpp @@ -85,36 +85,8 @@ void Plus_U::init(UnitCell& cell, #endif Plus_U::nspin = nspin; - Plus_U::orbital_corr = orbital_corr; - Plus_U::Yukawa = yukawa_potential; - this->yukawa_lambda = yukawa_lambda; - - this->global_readin_dir = global_readin_dir; - this->global_out_dir = global_out_dir; - this->init_chg = init_chg; this->npol = npol; - - if (pv != nullptr) - { - const int global_rows = pv->get_global_row_size(); - const int global_cols = pv->get_global_col_size(); - if (global_rows != global_cols) - { - ModuleBase::WARNING_QUIT("Plus_U::init", "Global row and column dimensions do not match"); - } - if (nlocal != global_rows) - { - ModuleBase::WARNING_QUIT("Plus_U::init", "nlocal does not match global matrix dimension"); - } - } - this->nlocal = nlocal; - - this->gamma_only_local = gamma_only_local; - this->ks_solver = ks_solver; - this->cal_force = cal_force; - this->cal_stress = cal_stress; this->device = device; - this->kpar = kpar; // mohan update 2025-11-06 Plus_U::energy_u = 0.0; @@ -131,6 +103,10 @@ void Plus_U::init(UnitCell& cell, // it:index of type of atom for (int it = 0; it < cell.ntype; ++it) { + if(!has_correlated_orbital(it)) + { + continue; + } for (int ia = 0; ia < cell.atoms[it].na; ia++) { // ia:index of atoms of this type @@ -140,14 +116,6 @@ void Plus_U::init(UnitCell& cell, locale[iat].resize(cell.atoms[it].nwl + 1); locale_save[iat].resize(cell.atoms[it].nwl + 1); - // initialize the arrry iatlnm2iwt[iat][l][n][m] - this->iatlnmipol2iwt[iat].resize(cell.atoms[it].nwl + 1); - - if(!has_correlated_orbital(it)) - { - continue; - } - const int tlp1_npol = (get_orbital_corr(it)*2+1)*npol; const int tlp1 = 2 * get_orbital_corr(it) + 1; const int elem_size = tlp1 * tlp1; @@ -160,16 +128,16 @@ void Plus_U::init(UnitCell& cell, // spin-down at eff_pot_pw[size/2 + eff_pot_pw_index[iat] + mm] // nspin=4: offset = sum(tlp1_npol^2) where tlp1_npol = (2l+1)*npol = 2*(2l+1) // each atom occupies (2*tlp1)^2 = 4*tlp1^2 entries for 4 Pauli blocks - if(nspin == 4) - { - this->eff_pot_pw_index[iat] = pot_index; - pot_index += tlp1_npol * tlp1_npol; - } - else // nspin=1 or nspin=2: one tlp1^2 block per atom per spin channel - { - this->eff_pot_pw_index[iat] = pot_index; - pot_index += elem_size; - } + if(nspin == 4) + { + this->eff_pot_pw_index[iat] = pot_index; + pot_index += tlp1_npol * tlp1_npol; + } + else // nspin=1 or nspin=2: one tlp1^2 block per atom per spin channel + { + this->eff_pot_pw_index[iat] = pot_index; + pot_index += elem_size; + } for (int l = 0; l <= cell.atoms[it].nwl; l++) { @@ -291,7 +259,7 @@ void Plus_U::init(UnitCell& cell, if (this->init_chg == "file") { std::stringstream sst; - sst << this->global_readin_dir << "dm_onsite.txt"; + sst << PARAM.globalv.global_readin_dir << "onsite.dm"; this->read_occup_m(cell, sst.str(), this->init_chg, nspin, npol); #ifdef __MPI this->local_occup_bcast(cell, nspin, npol); diff --git a/source/source_lcao/module_dftu/dftu_io.cpp b/source/source_lcao/module_dftu/dftu_io.cpp index 9be899e244..65ccd3705f 100644 --- a/source/source_lcao/module_dftu/dftu_io.cpp +++ b/source/source_lcao/module_dftu/dftu_io.cpp @@ -27,10 +27,10 @@ void Plus_U::output(const UnitCell& ucell, if (L >= get_orbital_corr(T) && has_correlated_orbital(T)) { - if (L != get_orbital_corr(T)) - { - continue; - } + if (L != get_orbital_corr(T)) + { + continue; + } if (!Yukawa) { @@ -97,11 +97,11 @@ void Plus_U::write_occup_m(const UnitCell& ucell, for (int T = 0; T < ucell.ntype; T++) { - if (!has_correlated_orbital(T)) - { - continue; - } - const int NL = ucell.atoms[T].nwl + 1; + if (!has_correlated_orbital(T)) + { + continue; + } + const int NL = ucell.atoms[T].nwl + 1; const int LC = get_orbital_corr(T); for (int I = 0; I < ucell.atoms[T].na; I++) @@ -110,10 +110,10 @@ void Plus_U::write_occup_m(const UnitCell& ucell, for (int l = 0; l < NL; l++) { - if (l != get_orbital_corr(T)) - { - continue; - } + if (l != get_orbital_corr(T)) + { + continue; + } const int N = ucell.atoms[T].l_nchi[l]; @@ -316,7 +316,14 @@ void Plus_U::read_occup_m(const UnitCell& ucell, for (int l = 0; l < NL; l++) { - if (l != get_orbital_corr(T)) + if (l != get_orbital_corr(T)) + { + continue; + } + + ifdftu >> word; + + if (strcmp("L", word) == 0) { continue; } @@ -397,10 +404,10 @@ void Plus_U::local_occup_bcast(const UnitCell& ucell, for (int T = 0; T < ucell.ntype; T++) { - if (!has_correlated_orbital(T)) - { - continue; - } + if (!has_correlated_orbital(T)) + { + continue; + } for (int I = 0; I < ucell.atoms[T].na; I++) { @@ -409,10 +416,10 @@ void Plus_U::local_occup_bcast(const UnitCell& ucell, for (int l = 0; l <= ucell.atoms[T].nwl; l++) { - if (l != get_orbital_corr(T)) - { - continue; - } + if (l != get_orbital_corr(T)) + { + continue; + } for (int n = 0; n < ucell.atoms[T].l_nchi[l]; n++) { diff --git a/source/source_lcao/module_dftu/dftu_occup.cpp b/source/source_lcao/module_dftu/dftu_occup.cpp index 13ba48c538..9abdb81a96 100644 --- a/source/source_lcao/module_dftu/dftu_occup.cpp +++ b/source/source_lcao/module_dftu/dftu_occup.cpp @@ -27,9 +27,10 @@ void Plus_U::copy_locale(const UnitCell& ucell) { const int iat = ucell.itia2iat(T, I); - if (Plus_U::nspin == 4) + if (PARAM.inp.nspin == 4) { locale_save[iat][target_l][0][0] = locale[iat][target_l][0][0]; + // nspin=4 locale matrix already contains all spin components interleaved if(this->uom_save.size() != 0) { const int size = locale[iat][target_l][0][0].nr * locale[iat][target_l][0][0].nc; @@ -39,10 +40,11 @@ void Plus_U::copy_locale(const UnitCell& ucell) } } } - else if (Plus_U::nspin == 1 || Plus_U::nspin == 2) + else if (PARAM.inp.nspin == 1 || PARAM.inp.nspin == 2) { locale_save[iat][target_l][0][0] = locale[iat][target_l][0][0]; locale_save[iat][target_l][0][1] = locale[iat][target_l][0][1]; + // save locale matrix for spin=0,1 to uom_save if(this->uom_save.size() != 0) { const int size = locale[iat][target_l][0][0].nr * locale[iat][target_l][0][0].nc; @@ -107,13 +109,15 @@ void Plus_U::mix_locale(const UnitCell& ucell, for (int T = 0; T < ucell.ntype; T++) { - int target_l = get_orbital_corr(T); - if (target_l == -1) - continue; + if (!has_correlated_orbital(T)) + { + continue; + } for (int I = 0; I < ucell.atoms[T].na; I++) { const int iat = ucell.itia2iat(T, I); + int target_l = get_orbital_corr(T); if (Plus_U::nspin == 4) { @@ -171,18 +175,18 @@ void Plus_U::set_locale(const UnitCell& ucell) for (int I = 0; I < ucell.atoms[T].na; I++) { const int iat = ucell.itia2iat(T, I); - if (Plus_U::nspin == 4) + if (PARAM.inp.nspin == 4) { for(int mm = 0; mm < locale[iat][l][0][0].nr * locale[iat][l][0][0].nc; mm++) locale[iat][l][0][0].c[mm] = this->uom_array[eff_pot_pw_index[iat] + mm]; } - else if (Plus_U::nspin == 1 || Plus_U::nspin == 2) + else if (PARAM.inp.nspin == 1 || PARAM.inp.nspin == 2) { const int half_size = this->uom_array.size() / 2; for(int mm = 0; mm < locale[iat][l][0][0].nr * locale[iat][l][0][0].nc; mm++) { locale[iat][l][0][0].c[mm] = this->uom_array[eff_pot_pw_index[iat] + mm]; - if (Plus_U::nspin == 2) + if (PARAM.inp.nspin == 2) { locale[iat][l][0][1].c[mm] = this->uom_array[half_size + eff_pot_pw_index[iat] + mm]; } diff --git a/source/source_lcao/module_dftu/dftu_pw.cpp b/source/source_lcao/module_dftu/dftu_pw.cpp index c1757f45d4..5eee9a8b73 100644 --- a/source/source_lcao/module_dftu/dftu_pw.cpp +++ b/source/source_lcao/module_dftu/dftu_pw.cpp @@ -28,6 +28,8 @@ void Plus_U::cal_occ_pw(const int iter, ModuleBase::timer::start("Plus_U", "cal_occ_pw"); this->copy_locale(cell); this->zero_locale(cell); + const int nspin = PARAM.inp.nspin; + const int kpar = PARAM.inp.kpar; if(this->device == "cpu") { @@ -37,7 +39,7 @@ void Plus_U::cal_occ_pw(const int iter, const int npol = psi_p->get_npol(); for(int ik = 0; ik < psi_p->get_nk(); ik++) { - int is = (Plus_U::nspin == 2) ? isk[ik] : 0; + int is = (nspin == 2) ? isk[ik] : 0; psi_p->fix_k(ik); onsite_p->tabulate_atomic(ik); @@ -59,7 +61,7 @@ void Plus_U::cal_occ_pw(const int iter, const int m_begin = target_l * target_l; const int tlp1 = 2 * target_l + 1; const int tlp1_2 = tlp1 * tlp1; - if(Plus_U::nspin == 4) + if(nspin == 4) { for(int ib = 0;ibget_npol(); for(int ik = 0; ik < psi_p->get_nk(); ik++) { - int is = (Plus_U::nspin == 2) ? isk[ik] : 0; + int is = (nspin == 2) ? isk[ik] : 0; + const_cast, base_device::DEVICE_GPU>*>(psi_p)->load_k_to_gpu(ik); psi_p->fix_k(ik); onsite_p->tabulate_atomic(ik); @@ -138,7 +141,7 @@ void Plus_U::cal_occ_pw(const int iter, const int m_begin = target_l * target_l; const int tlp1 = 2 * target_l + 1; const int tlp1_2 = tlp1 * tlp1; - if(Plus_U::nspin == 4) + if(nspin == 4) { for(int ib = 0;ibkpar, + Parallel_Reduce::reduce_double_allpool(kpar, GlobalV::NPROC_IN_POOL, this->locale[iat][target_l][0][0].c, size); - if(Plus_U::nspin == 2) + if(nspin == 2) { - Parallel_Reduce::reduce_double_allpool(this->kpar, + Parallel_Reduce::reduce_double_allpool(kpar, GlobalV::NPROC_IN_POOL, this->locale[iat][target_l][0][1].c, size); @@ -215,7 +218,7 @@ void Plus_U::cal_occ_pw(const int iter, } else { - Parallel_Reduce::reduce_double_allpool(this->kpar, + Parallel_Reduce::reduce_double_allpool(kpar, GlobalV::NPROC_IN_POOL, this->locale[iat][target_l][0][0].c, size * 4); @@ -228,7 +231,7 @@ void Plus_U::cal_occ_pw(const int iter, { this->uom_array[eff_pot_pw_index[iat]+mm] = this->locale[iat][target_l][0][0].c[mm]; } - if(Plus_U::nspin == 2) + if(nspin == 2) { const int half_size = this->uom_array.size() / 2; for(int mm=0;mm* vu_iat = &(this->eff_pot_pw[this->eff_pot_pw_index[iat]]); const int m_size = 2 * target_l + 1; - if(Plus_U::nspin == 4) + if(nspin == 4) { for (int m1 = 0; m1 < m_size; m1++) { @@ -309,8 +312,8 @@ void Plus_U::cal_occ_pw(const int iter, } vu_iat[index[0]] = 0.5 * (vu_tmp[0] + vu_tmp[3]); vu_iat[index[3]] = 0.5 * (vu_tmp[0] - vu_tmp[3]); - vu_iat[index[1]] = 0.5 * (vu_tmp[1] - std::complex(0.0, 1.0) * vu_tmp[2]); - vu_iat[index[2]] = 0.5 * (vu_tmp[1] + std::complex(0.0, 1.0) * vu_tmp[2]); + vu_iat[index[1]] = 0.5 * (vu_tmp[1] + std::complex(0.0, 1.0) * vu_tmp[2]); + vu_iat[index[2]] = 0.5 * (vu_tmp[1] - std::complex(0.0, 1.0) * vu_tmp[2]); } } } @@ -328,7 +331,7 @@ void Plus_U::cal_occ_pw(const int iter, } } // spin-down channel for nspin=2 - if(Plus_U::nspin == 2) + if(nspin == 2) { std::complex* vu_iat1 = &(this->eff_pot_pw[this->eff_pot_pw.size()/2 + this->eff_pot_pw_index[iat]]); for (int m1 = 0; m1 < m_size; m1++) @@ -348,3 +351,4 @@ void Plus_U::cal_occ_pw(const int iter, ModuleBase::timer::end("Plus_U", "cal_occ_pw"); } + diff --git a/source/source_lcao/module_dftu/test/CMakeLists.txt b/source/source_lcao/module_dftu/test/CMakeLists.txt index de94b19690..82d179d52b 100644 --- a/source/source_lcao/module_dftu/test/CMakeLists.txt +++ b/source/source_lcao/module_dftu/test/CMakeLists.txt @@ -1,19 +1,5 @@ -abacus_disable_feature_definitions(__CUDA) - AddTest( TARGET dftu_pw_test - LIBS base device parameter + LIBS ${math_libs} base device parameter SOURCES dftu_pw_test.cpp ) - -AddTest( - TARGET dftu_core_test - LIBS base device - SOURCES dftu_core_test.cpp -) - -AddTest( - TARGET dftu_operator_test - LIBS base device - SOURCES dftu_operator_test.cpp -) diff --git a/source/source_lcao/module_dftu/test/dftu_pw_test.cpp b/source/source_lcao/module_dftu/test/dftu_pw_test.cpp index 0a7f4f2c97..5fd0083861 100644 --- a/source/source_lcao/module_dftu/test/dftu_pw_test.cpp +++ b/source/source_lcao/module_dftu/test/dftu_pw_test.cpp @@ -7,15 +7,6 @@ /*********************************************************************** * Unit tests for DFT+U PW nspin=1/2/4 support (PR-2) * - * Test targets: - * 1. Energy weight logic: weight_eu and diag_coeff for nspin=1/2/4 - * 2. Becp index logic: different index formulas for nspin=1/2 vs nspin=4 - * 3. VU effective potential: cal_occ_pw VU calculation for all nspin modes - * 4. Energy calculation: E_U accumulation with correct weights - * 5. Locale accumulation from becp: the core loop of cal_occ_pw - * 6. Multi-atom split layout: [all_up | all_dn] layout for nspin=2 - * 7. OnsitePsOp kernel: vu application to ps for npol=1 - * * Strategy: test energy weights and becp index logic as pure * arithmetic — no need to link against full ABACUS libraries. * set_locale is tested via integration tests. @@ -29,38 +20,136 @@ class DftuPwTest : public ::testing::Test }; // ===================================================================== -// Energy weight + becp index tests (merged from 5 tests) +// Energy weight tests // ===================================================================== -TEST_F(DftuPwTest, EnergyWeightsAllNspin) +TEST_F(DftuPwTest, EnergyWeightsNspin1) { - struct Case { int nspin; double expected_weight; double expected_diag; }; - Case cases[] = {{1, 1.0, 0.5}, {2, 0.5, 0.5}, {4, 0.25, 1.0}}; - for (const auto& c : cases) { - PARAM.input.nspin = c.nspin; - double weight_eu = 1; - switch (PARAM.inp.nspin) { - case 1: weight_eu = 1.0; break; - case 2: weight_eu = 0.5; break; - case 4: weight_eu = 0.25; break; - default: break; - } - const double diag_coeff = PARAM.inp.nspin == 4 ? 1.0 : 0.5; - EXPECT_DOUBLE_EQ(weight_eu, c.expected_weight); - EXPECT_DOUBLE_EQ(diag_coeff, c.expected_diag); + PARAM.input.nspin = 1; + double weight_eu = 1; + switch(PARAM.inp.nspin) + { + case 1: weight_eu = 1.0; break; + case 2: weight_eu = 0.5; break; + case 4: weight_eu = 0.25; break; + default: break; + } + const double diag_coeff = PARAM.inp.nspin == 4 ? 1.0 : 0.5; + EXPECT_DOUBLE_EQ(weight_eu, 1.0); + EXPECT_DOUBLE_EQ(diag_coeff, 0.5); +} + +TEST_F(DftuPwTest, EnergyWeightsNspin2) +{ + PARAM.input.nspin = 2; + double weight_eu = 1; + switch(PARAM.inp.nspin) + { + case 1: weight_eu = 1.0; break; + case 2: weight_eu = 0.5; break; + case 4: weight_eu = 0.25; break; + default: break; } + const double diag_coeff = PARAM.inp.nspin == 4 ? 1.0 : 0.5; + EXPECT_DOUBLE_EQ(weight_eu, 0.5); + EXPECT_DOUBLE_EQ(diag_coeff, 0.5); } -TEST_F(DftuPwTest, BecpIndexNspin12vs4) +TEST_F(DftuPwTest, EnergyWeightsNspin4) +{ + PARAM.input.nspin = 4; + double weight_eu = 1; + switch(PARAM.inp.nspin) + { + case 1: weight_eu = 1.0; break; + case 2: weight_eu = 0.5; break; + case 4: weight_eu = 0.25; break; + default: break; + } + const double diag_coeff = PARAM.inp.nspin == 4 ? 1.0 : 0.5; + EXPECT_DOUBLE_EQ(weight_eu, 0.25); + EXPECT_DOUBLE_EQ(diag_coeff, 1.0); +} + +// ===================================================================== +// Becp index tests +// ===================================================================== + +TEST_F(DftuPwTest, OccupNspin12Index) { const int nkb = 10, begin_ih = 3, m_begin = 4, m = 2, ib = 5; // nspin=1/2: index = ib*nkb + begin_ih + m_begin + m - const int idx12 = ib * nkb + begin_ih + m_begin + m; - EXPECT_EQ(idx12, 59); - // nspin=4: index = ib*2*nkb + begin_ih + m_begin + m - const int idx4 = ib * 2 * nkb + begin_ih + m_begin + m; - EXPECT_EQ(idx4, 109); - EXPECT_NE(idx12, idx4); + const int index_nspin12 = ib * nkb + begin_ih + m_begin + m; + EXPECT_EQ(index_nspin12, 59); + // different from nspin=4 + const int index_nspin4 = ib * 2 * nkb + begin_ih + m_begin + m; + EXPECT_NE(index_nspin12, index_nspin4); +} + +TEST_F(DftuPwTest, OccupNspin4Index) +{ + const int nkb = 10, begin_ih = 3, m_begin = 4, m = 2, ib = 5; + const int index_nspin4 = ib * 2 * nkb + begin_ih + m_begin + m; + EXPECT_EQ(index_nspin4, 109); +} + +// ===================================================================== +// set_locale logic tests (pure array copy, no UnitCell needed) +// ===================================================================== + +TEST_F(DftuPwTest, SetLocaleNspin4) +{ + // Simulate set_locale for nspin=4: uom_array -> locale copy + PARAM.input.nspin = 4; + const int mat_size = 10; // (2*2+1)*2 for d-orbital with npol=2 + const int total = mat_size * mat_size; // 100 + + std::vector uom_array(total); + for(int i = 0; i < total; i++) + uom_array[i] = static_cast(i + 1); + + // Simulate locale as raw array (same as ModuleBase::matrix::c) + std::vector locale_c(total, 0.0); + + // nspin=4 branch: direct copy + for(int mm = 0; mm < total; mm++) + locale_c[mm] = uom_array[mm]; + + for(int i = 0; i < total; i++) + EXPECT_DOUBLE_EQ(locale_c[i], static_cast(i + 1)); +} + +TEST_F(DftuPwTest, SetLocaleNspin2) +{ + // Simulate set_locale for nspin=2: uom_array -> locale copy (spin-up + spin-down) + PARAM.input.nspin = 2; + const int mat_size = 5; // 2*2+1 for d-orbital + const int size_per_spin = mat_size * mat_size; // 25 + const int total = size_per_spin * 2; // 50 + + std::vector uom_array(total); + for(int i = 0; i < size_per_spin; i++) + { + uom_array[i] = static_cast(i + 1); // spin-up + uom_array[i + size_per_spin] = static_cast(i + 101); // spin-down + } + + std::vector locale_up(size_per_spin, 0.0); + std::vector locale_dn(size_per_spin, 0.0); + + // nspin=1/2 branch: copy both spin channels + const int nr_nc = size_per_spin; // locale[iat][l][0][0].nr * locale[iat][l][0][0].nc + for(int mm = 0; mm < nr_nc; mm++) + { + locale_up[mm] = uom_array[mm]; + locale_dn[mm] = uom_array[mm + nr_nc]; + } + + for(int i = 0; i < size_per_spin; i++) + { + EXPECT_DOUBLE_EQ(locale_up[i], static_cast(i + 1)); + EXPECT_DOUBLE_EQ(locale_dn[i], static_cast(i + 101)); + } } // ===================================================================== @@ -76,25 +165,59 @@ TEST_F(DftuPwTest, VUPotNspin1_DiagonalLocale) const int size = m_size * m_size; std::vector locale_c(size, 0.0); - for (int m = 0; m < m_size; m++) + for(int m = 0; m < m_size; m++) locale_c[m * m_size + m] = 0.3; // diagonal std::vector> vu(size, {0.0, 0.0}); - for (int m1 = 0; m1 < m_size; m1++) - for (int m2 = 0; m2 < m_size; m2++) - vu[m1 * m_size + m2] = U_val * (0.5 * (m1 == m2) - locale_c[m2 * m_size + m1]); + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { + const double diag_coeff = 0.5; // nspin != 4 + vu[m1 * m_size + m2] = U_val * + (diag_coeff * (m1 == m2) - locale_c[m2 * m_size + m1]); + } + } // diagonal: U*(0.5 - 0.3) = 4.0*0.2 = 0.8 - for (int m = 0; m < m_size; m++) + for(int m = 0; m < m_size; m++) EXPECT_DOUBLE_EQ(vu[m * m_size + m].real(), 0.8); + // off-diagonal: U*(0 - 0) = 0 EXPECT_DOUBLE_EQ(vu[0 * m_size + 1].real(), 0.0); EXPECT_DOUBLE_EQ(vu[1 * m_size + 0].real(), 0.0); } +TEST_F(DftuPwTest, VUPotNspin1_OffDiagonalLocale) +{ + // locale has off-diagonal elements + const double U_val = 3.0; + const int m_size = 3; // p-orbital: 2*1+1 + const int size = m_size * m_size; + + std::vector locale_c(size, 0.0); + locale_c[0 * m_size + 1] = 0.1; // locale(0,1) = 0.1 + locale_c[1 * m_size + 0] = 0.2; // locale(1,0) = 0.2 + + std::vector> vu(size, {0.0, 0.0}); + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { + vu[m1 * m_size + m2] = U_val * + (0.5 * (m1 == m2) - locale_c[m2 * m_size + m1]); + } + } + + // VU[0,1] = U * (0 - locale[1*3+0]) = 3.0 * (-0.2) = -0.6 + EXPECT_DOUBLE_EQ(vu[0 * m_size + 1].real(), -0.6); + // VU[1,0] = U * (0 - locale[0*3+1]) = 3.0 * (-0.1) = -0.3 + EXPECT_DOUBLE_EQ(vu[1 * m_size + 0].real(), -0.3); +} + TEST_F(DftuPwTest, VUPotNspin2_TwoSpinChannels) { - // nspin=2: two independent spin channels with same formula VU = U*(0.5*delta - locale) + // nspin=2: two independent spin channels with same formula const double U_val = 5.0; const int m_size = 3; const int size = m_size * m_size; @@ -150,10 +273,10 @@ TEST_F(DftuPwTest, VUPotNspin4_PauliTransform) // Energy calculation tests // ===================================================================== -TEST_F(DftuPwTest, EnergyNspin12_DiagonalLocale) +TEST_F(DftuPwTest, EnergyNspin1_DiagonalLocale) { // E_U = sum_{m1,m2} U * weight_eu * locale[m2,m1] * locale[m1,m2] - // nspin=1: weight_eu = 1.0, nspin=2: weight_eu = 0.5 + // weight_eu = 1.0 for nspin=1 const double U_val = 4.0; const int m_size = 3; const int size = m_size * m_size; @@ -163,29 +286,53 @@ TEST_F(DftuPwTest, EnergyNspin12_DiagonalLocale) locale_c[1 * m_size + 1] = 0.3; locale_c[2 * m_size + 2] = 0.2; - // nspin=1: E = U * 1.0 * (0.5^2 + 0.3^2 + 0.2^2) = 4 * 0.38 = 1.52 double energy_u = 0.0; - for (int m1 = 0; m1 < m_size; m1++) - for (int m2 = 0; m2 < m_size; m2++) - energy_u += U_val * 1.0 * locale_c[m2 * m_size + m1] * locale_c[m1 * m_size + m2]; + const double weight_eu = 1.0; + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { + energy_u += U_val * weight_eu * locale_c[m2 * m_size + m1] + * locale_c[m1 * m_size + m2]; + } + } + + // Only diagonal contributes: U * (0.5^2 + 0.3^2 + 0.2^2) = 4*(0.25+0.09+0.04) = 4*0.38 = 1.52 EXPECT_DOUBLE_EQ(energy_u, 1.52); +} + +TEST_F(DftuPwTest, EnergyNspin2_TwoChannels) +{ + // nspin=2: weight_eu = 0.5, sum over both spin channels + const double U_val = 2.0; + const int m_size = 3; + const int size = m_size * m_size; + const double weight_eu = 0.5; + + std::vector locale_up(size, 0.0); + std::vector locale_dn(size, 0.0); + locale_up[0] = 0.4; // (0,0) + locale_dn[0] = 0.6; // (0,0) - // nspin=2: two spin channels, weight_eu = 0.5 - energy_u = 0.0; - std::vector locale_up(size, 0.0), locale_dn(size, 0.0); - locale_up[0] = 0.4; locale_dn[0] = 0.6; - // Only diagonal element (0,0) is non-zero, so only m1=0, m2=0 contributes - energy_u += U_val * 0.5 * locale_up[0] * locale_up[0]; - energy_u += U_val * 0.5 * locale_dn[0] * locale_dn[0]; - // E = U*0.5*(0.4^2 + 0.6^2) = 4*0.5*(0.16+0.36) = 1.04 - EXPECT_DOUBLE_EQ(energy_u, 1.04); + double energy_u = 0.0; + // spin-up contribution + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + energy_u += U_val * weight_eu * locale_up[m2 * m_size + m1] * locale_up[m1 * m_size + m2]; + // spin-down contribution + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + energy_u += U_val * weight_eu * locale_dn[m2 * m_size + m1] * locale_dn[m1 * m_size + m2]; + + // U*0.5*(0.4^2 + 0.6^2) = 2*0.5*(0.16+0.36) = 0.52 + EXPECT_DOUBLE_EQ(energy_u, 0.52); } TEST_F(DftuPwTest, EnergyNspin4_WithOffDiagonal) { // nspin=4: weight_eu = 0.25, includes off-diagonal Pauli components const double U_val = 2.0; - const int m_size = 2; + const int m_size = 2; // simplified: s-orbital would be 1, use 2 for test const int size = m_size * m_size; const double weight_eu = 0.25; @@ -199,17 +346,22 @@ TEST_F(DftuPwTest, EnergyNspin4_WithOffDiagonal) locale_c[size + 2] = 0.0; locale_c[size + 3] = 0.2; double energy_u = 0.0; - for (int is = 0; is < 4; is++) { + for(int is = 0; is < 4; is++) + { int start = is * size; - for (int m1 = 0; m1 < m_size; m1++) - for (int m2 = 0; m2 < m_size; m2++) + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { energy_u += U_val * weight_eu * locale_c[start + m2 * m_size + m1] * locale_c[start + m1 * m_size + m2]; + } + } } - // is=0: 2*0.25*(0.5*0.5 + 0.1*0.1 + 0.1*0.1 + 0.5*0.5) = 0.26 - // is=1: 2*0.25*(0.2*0.2 + 0 + 0 + 0.2*0.2) = 0.04 + // is=0: 2*0.25*(0.5*0.5 + 0.1*0.1 + 0.1*0.1 + 0.5*0.5) = 0.5*(0.25+0.01+0.01+0.25) = 0.26 + // is=1: 2*0.25*(0.2*0.2 + 0 + 0 + 0.2*0.2) = 0.5*(0.04+0.04) = 0.04 // is=2,3: 0 EXPECT_DOUBLE_EQ(energy_u, 0.30); } @@ -221,31 +373,48 @@ TEST_F(DftuPwTest, EnergyNspin4_WithOffDiagonal) TEST_F(DftuPwTest, LocaleAccumNspin12) { // nspin=1/2: locale[m1*m_size+m2] += weight * real(conj(becp[m1]) * becp[m2]) - const int m_size = 3, nkb = 5, begin_ih = 0, m_begin = 0, nbands = 2; + const int m_size = 3; // p-orbital + const int nkb = 5; + const int begin_ih = 0; + const int m_begin = 0; // target_l=1, m_begin = 1*1 = 1... but for test simplicity use 0 + const int nbands = 2; const double weights[2] = {1.0, 0.5}; + // becp array: becp[ib*nkb + begin_ih + m_begin + m] std::vector> becp(nbands * nkb, {0.0, 0.0}); - becp[0 * nkb + 0] = {1.0, 0.0}; becp[0 * nkb + 1] = {0.0, 1.0}; becp[0 * nkb + 2] = {0.5, 0.5}; - becp[1 * nkb + 0] = {0.5, 0.0}; becp[1 * nkb + 1] = {0.5, -0.5}; becp[1 * nkb + 2] = {0.0, 1.0}; + // band 0 + becp[0 * nkb + 0] = {1.0, 0.0}; + becp[0 * nkb + 1] = {0.0, 1.0}; + becp[0 * nkb + 2] = {0.5, 0.5}; + // band 1 + becp[1 * nkb + 0] = {0.5, 0.0}; + becp[1 * nkb + 1] = {0.5, -0.5}; + becp[1 * nkb + 2] = {0.0, 1.0}; std::vector locale_c(m_size * m_size, 0.0); - for (int ib = 0; ib < nbands; ib++) { + for(int ib = 0; ib < nbands; ib++) + { + const double weight = weights[ib]; int ind_m1m2 = 0; - for (int m1 = 0; m1 < m_size; m1++) { + for(int m1 = 0; m1 < m_size; m1++) + { const int index_m1 = ib * nkb + begin_ih + m_begin + m1; - for (int m2 = 0; m2 < m_size; m2++) { + for(int m2 = 0; m2 < m_size; m2++) + { const int index_m2 = ib * nkb + begin_ih + m_begin + m2; - locale_c[ind_m1m2] += weights[ib] * (std::conj(becp[index_m1]) * becp[index_m2]).real(); + locale_c[ind_m1m2] += weight * (std::conj(becp[index_m1]) * becp[index_m2]).real(); ind_m1m2++; } } } - // band0, w=1.0: locale[0,0] = 1.0*|1|^2 = 1.0 - // band1, w=0.5: locale[0,0] = 0.5*|0.5|^2 = 0.125 - EXPECT_DOUBLE_EQ(locale_c[0], 1.125); + // band0, w=1.0: conj(becp0)*becp0 = |1|^2=1, conj(becp0)*becp1 = 1*(0,1)=(0,1)->real=0 + // locale[0,0] from band0 = 1.0*1.0 = 1.0 + // band1, w=0.5: conj(becp0)*becp0 = |0.5|^2=0.25 + // locale[0,0] from band1 = 0.5*0.25 = 0.125 + EXPECT_DOUBLE_EQ(locale_c[0], 1.125); // 1.0 + 0.125 - // locale[1,1]: band0 = 1.0*|i|^2 = 1.0, band1 = 0.5*|(0.5,-0.5)|^2 = 0.25 + // locale[1,1]: band0 = 1.0*|i|^2 = 1.0, band1 = 0.5*|(0.5,-0.5)|^2 = 0.5*0.5 = 0.25 EXPECT_DOUBLE_EQ(locale_c[4], 1.25); } @@ -260,21 +429,30 @@ TEST_F(DftuPwTest, LocaleAccumNspin4_PauliComponents) // locale[ind+size] += (occ[1]+occ[2]).real() -- sigma_x // locale[ind+2*size] += (occ[1]-occ[2]).imag() -- sigma_y // locale[ind+3*size] += (occ[0]-occ[3]).real() -- sigma_z - const int m_size = 1, nkb = 2, nbands = 1; + + const int m_size = 1; // s-orbital for simplicity + const int nkb = 2; + const int nbands = 1; const double weight = 1.0; + // becp layout: becp[ib*2*nkb + begin_ih + m] (up) + // becp[ib*2*nkb + begin_ih + m + nkb] (down) std::vector> becp(nbands * 2 * nkb, {0.0, 0.0}); - becp[0] = {0.8, 0.0}; // becp_up[m=0] - becp[nkb] = {0.0, 0.6}; // becp_dn[m=0] + // m=0 only (s-orbital) + becp[0 * 2 * nkb + 0] = {0.8, 0.0}; // becp_up[m=0] + becp[0 * 2 * nkb + 0 + nkb] = {0.0, 0.6}; // becp_dn[m=0] - const int size = m_size * m_size; + const int size = m_size * m_size; // 1 std::vector locale_c(size * 4, 0.0); - for (int ib = 0; ib < nbands; ib++) { + for(int ib = 0; ib < nbands; ib++) + { int ind_m1m2 = 0; - for (int m1 = 0; m1 < m_size; m1++) { + for(int m1 = 0; m1 < m_size; m1++) + { const int index_m1 = ib * 2 * nkb + 0 + m1; - for (int m2 = 0; m2 < m_size; m2++) { + for(int m2 = 0; m2 < m_size; m2++) + { const int index_m2 = ib * 2 * nkb + 0 + m2; std::complex occ[4]; occ[0] = weight * std::conj(becp[index_m1]) * becp[index_m2]; @@ -291,127 +469,589 @@ TEST_F(DftuPwTest, LocaleAccumNspin4_PauliComponents) } // becp_up = (0.8, 0), becp_dn = (0, 0.6) - // occ[0] = 0.64, occ[1] = (0, 0.48), occ[2] = (0, -0.48), occ[3] = 0.36 - EXPECT_DOUBLE_EQ(locale_c[0], 1.0); // charge: (0.64+0.36).real = 1.0 - EXPECT_DOUBLE_EQ(locale_c[1], 0.0); // sigma_x: (occ1+occ2).real = 0 - EXPECT_DOUBLE_EQ(locale_c[2], 0.96); // sigma_y: (occ1-occ2).imag = 0.96 - EXPECT_DOUBLE_EQ(locale_c[3], 0.28); // sigma_z: (occ0-occ3).real = 0.28 + // occ[0] = conj(0.8)*0.8 = 0.64 + // occ[1] = conj(0.8)*(0,0.6) = 0.8*(0,0.6) = (0, 0.48) + // occ[2] = conj(0,0.6)*0.8 = (0,-0.6)*0.8 = (0, -0.48) + // occ[3] = conj(0,0.6)*(0,0.6) = (0,-0.6)*(0,0.6) = 0.36 + EXPECT_DOUBLE_EQ(locale_c[0], 1.0); // (0.64+0.36).real = 1.0 (charge) + EXPECT_DOUBLE_EQ(locale_c[1], 0.0); // (occ1+occ2).real = ((0,0.48)+(0,-0.48)).real = 0 + EXPECT_DOUBLE_EQ(locale_c[2], 0.96); // (occ1-occ2).imag = ((0,0.48)-(0,-0.48)).imag = 0.96 + EXPECT_DOUBLE_EQ(locale_c[3], 0.28); // (occ0-occ3).real = (0.64-0.36) = 0.28 (sigma_z) +} + +TEST_F(DftuPwTest, CopyLocaleToUomSave_Nspin2) +{ + // Verify copy_locale logic for split layout: [all_up | all_dn] + const int m_size = 3; + const int size = m_size * m_size; + + std::vector locale_spin0(size), locale_spin1(size); + for(int i = 0; i < size; i++) + { + locale_spin0[i] = static_cast(i + 1); + locale_spin1[i] = static_cast(i + 100); + } + + std::vector uom_save(size * 2, 0.0); + const int eff_pot_index = 0; + const int half_size = uom_save.size() / 2; + for(int mm = 0; mm < size; mm++) + { + uom_save[eff_pot_index + mm] = locale_spin0[mm]; + uom_save[half_size + eff_pot_index + mm] = locale_spin1[mm]; + } + + for(int i = 0; i < size; i++) + { + EXPECT_DOUBLE_EQ(uom_save[i], static_cast(i + 1)); + EXPECT_DOUBLE_EQ(uom_save[half_size + i], static_cast(i + 100)); + } +} + +TEST_F(DftuPwTest, CopyLocaleToUomSave_Nspin4) +{ + // nspin=4: 4 blocks stored contiguously + const int m_size = 3; + const int size = m_size * m_size; + const int total = size * 4; // 4 Pauli components + + std::vector locale_c(total); + for(int i = 0; i < total; i++) + locale_c[i] = static_cast(i + 1); + + std::vector uom_save(total, 0.0); + const int eff_pot_index = 0; + for(int mm = 0; mm < size; mm++) + { + uom_save[eff_pot_index + mm] = locale_c[mm]; + uom_save[eff_pot_index + mm + size] = locale_c[mm + size]; + uom_save[eff_pot_index + mm + 2 * size] = locale_c[mm + 2 * size]; + uom_save[eff_pot_index + mm + 3 * size] = locale_c[mm + 3 * size]; + } + + for(int i = 0; i < total; i++) + EXPECT_DOUBLE_EQ(uom_save[i], static_cast(i + 1)); } // ===================================================================== -// Multi-atom split layout test for nspin=2 (simplified P0-1 bug fix) -// Verifies that the split layout [all_up | all_dn] works correctly -// with multiple correlated atoms +// Step 1: VU calculation test for nspin=2 (isolated from kernel) +// This tests the complete cal_occ_pw vu calculation path: +// becp -> locale -> vu_up/vu_dn // ===================================================================== -TEST_F(DftuPwTest, MultiAtomSplitLayout_Nspin2) +TEST_F(DftuPwTest, VU_Calculation_Nspin2_FullPath) { - // 2 correlated atoms with d-orbital (l=2) - const int nat = 2, m_size = 5, size = m_size * m_size; - const int P = nat * size, total = P * 2, half_size = P; + // Simulate complete vu calculation for nspin=2 + // This is the EXACT logic from cal_occ_pw, isolated from kernel - // eff_pot_pw_index: split layout, each atom gets `size` entries - std::vector eff_pot_pw_index = {0, size}; + const int m_size = 5; // d-orbital: 2*2+1 + const int size = m_size * m_size; // 25 + const double U_val = 5.0; + const double weight_eu = 0.5; // nspin=2 + const double diag_coeff = 0.5; - // Simulate locale values for both atoms - std::vector loc_up[2], loc_dn[2]; - for (int i = 0; i < 2; i++) { - loc_up[i].assign(size, 0.0); loc_dn[i].assign(size, 0.0); - for (int m = 0; m < m_size; m++) { - loc_up[i][m * m_size + m] = 0.8 - i * 0.1; - loc_dn[i][m * m_size + m] = 0.2 + i * 0.1; + // Simulated locale values (would normally come from becp accumulation) + std::vector locale_up(size, 0.0); + std::vector locale_dn(size, 0.0); + // Set diagonal values typical for occupied d-orbitals + for(int m = 0; m < m_size; m++) + { + locale_up[m * m_size + m] = 0.8; + locale_dn[m * m_size + m] = 0.2; + } + + // Calculate VU for spin-up + std::vector> vu_up(size, {0.0, 0.0}); + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { + vu_up[m1 * m_size + m2] = U_val * + (diag_coeff * (m1 == m2) - locale_up[m2 * m_size + m1]); } } - // --- Write to uom_array using split layout --- - std::vector uom_array(total, 0.0); - for (int iat = 0; iat < nat; iat++) - for (int mm = 0; mm < size; mm++) { - uom_array[eff_pot_pw_index[iat] + mm] = loc_up[iat][mm]; - uom_array[half_size + eff_pot_pw_index[iat] + mm] = loc_dn[iat][mm]; + // Calculate VU for spin-down + std::vector> vu_dn(size, {0.0, 0.0}); + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { + vu_dn[m1 * m_size + m2] = U_val * + (diag_coeff * (m1 == m2) - locale_dn[m2 * m_size + m1]); } + } - // Verify split layout: first half = all spin-up, second half = all spin-down - EXPECT_DOUBLE_EQ(uom_array[0], 0.8); // atom 0 up diagonal - EXPECT_DOUBLE_EQ(uom_array[size], 0.7); // atom 1 up diagonal - EXPECT_DOUBLE_EQ(uom_array[half_size], 0.2); // atom 0 dn diagonal - EXPECT_DOUBLE_EQ(uom_array[half_size + size], 0.3); // atom 1 dn diagonal + // Verify spin-up VU + // diagonal: U*(0.5 - 0.8) = 5*(-0.3) = -1.5 + for(int m = 0; m < m_size; m++) + { + EXPECT_DOUBLE_EQ(vu_up[m * m_size + m].real(), -1.5); + EXPECT_DOUBLE_EQ(vu_up[m * m_size + m].imag(), 0.0); + } + // off-diagonal: U*(0 - 0) = 0 + EXPECT_DOUBLE_EQ(vu_up[0 * m_size + 1].real(), 0.0); + EXPECT_DOUBLE_EQ(vu_up[1 * m_size + 0].real(), 0.0); - // --- Read back and verify round-trip --- - for (int iat = 0; iat < nat; iat++) - EXPECT_DOUBLE_EQ(uom_array[eff_pot_pw_index[iat]], loc_up[iat][0]); + // Verify spin-down VU + // diagonal: U*(0.5 - 0.2) = 5*(0.3) = 1.5 + for(int m = 0; m < m_size; m++) + { + EXPECT_DOUBLE_EQ(vu_dn[m * m_size + m].real(), 1.5); + EXPECT_DOUBLE_EQ(vu_dn[m * m_size + m].imag(), 0.0); + } + // off-diagonal: U*(0 - 0) = 0 + EXPECT_DOUBLE_EQ(vu_dn[0 * m_size + 1].real(), 0.0); + EXPECT_DOUBLE_EQ(vu_dn[1 * m_size + 0].real(), 0.0); - // --- VU values in split layout --- - const double U_val = 5.0; - const double diag_coeff = 0.5; - std::vector> eff_pot_pw(total, {0.0, 0.0}); + // Verify energy calculation + double energy_u = 0.0; + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + { + energy_u += U_val * weight_eu * locale_up[m2 * m_size + m1] * locale_up[m1 * m_size + m2]; + energy_u += U_val * weight_eu * locale_dn[m2 * m_size + m1] * locale_dn[m1 * m_size + m2]; + } + // Only diagonal: 5 orbitals per spin channel + // spin-up: 5 * U * weight_eu * 0.8*0.8 = 5 * 5.0 * 0.5 * 0.64 = 8.0 + // spin-down: 5 * U * weight_eu * 0.2*0.2 = 5 * 5.0 * 0.5 * 0.04 = 0.5 + // total = 8.5 + EXPECT_DOUBLE_EQ(energy_u, 8.5); +} - // atom 0 spin-up VU - std::complex* vu_up_0 = &eff_pot_pw[0]; - vu_up_0[0] = U_val * (diag_coeff - loc_up[0][0]); - // atom 0 spin-down VU (split layout: offset by half_size) - std::complex* vu_dn_0 = &eff_pot_pw[half_size]; - vu_dn_0[0] = U_val * (diag_coeff - loc_dn[0][0]); +// ===================================================================== +// Step 2: Test vu_device sync for nspin=2 +// This verifies the vu transfer from eff_pot_pw to vu_device +// ===================================================================== - EXPECT_DOUBLE_EQ(vu_up_0[0].real(), -1.5); // 5*(0.5-0.8) - EXPECT_DOUBLE_EQ(vu_dn_0[0].real(), 1.5); // 5*(0.5-0.2) +TEST_F(DftuPwTest, VU_DeviceSync_Nspin2) +{ + // Simulate eff_pot_pw layout for nspin=2 + const int m_size = 5; + const int size = m_size * m_size; + const int total_size = size * 2; // spin-up + spin-down - // Verify no overlap between atoms in VU arrays - std::complex* vu_up_1 = &eff_pot_pw[size]; - vu_up_1[0] = U_val * (diag_coeff - loc_up[1][0]); - EXPECT_NE(vu_up_0[0], vu_up_1[0]); + std::vector> eff_pot_pw(total_size); + // Initialize with known values + for(int i = 0; i < size; i++) + { + eff_pot_pw[i] = {static_cast(i + 1), 0.0}; // spin-up + eff_pot_pw[i + size] = {static_cast(i + 100), 0.0}; // spin-down + } + + // Simulate vu_device sync for spin-down (isk[ik] == 1) + const int size_eff_pot_pw = total_size / 2; + std::vector> vu_device(size_eff_pot_pw); + // memcpy from eff_pot_pw[0] + size_eff_pot_pw + for(int i = 0; i < size_eff_pot_pw; i++) + { + vu_device[i] = eff_pot_pw[i + size_eff_pot_pw]; + } + + // Verify vu_device contains spin-down values + for(int i = 0; i < size; i++) + { + EXPECT_DOUBLE_EQ(vu_device[i].real(), static_cast(i + 100)); + EXPECT_DOUBLE_EQ(vu_device[i].imag(), 0.0); + } } // ===================================================================== -// OnsitePsOp kernel test (simplified npol=1 branch) -// Tests the vu application to ps without full ABACUS integration +// Step 3: Test onsite_ps_op kernel for nspin=2 (npol=1) +// This tests the vu application to ps without full ABACUS integration // ===================================================================== TEST_F(DftuPwTest, OnsitePsOpKernel_Nspin2_Npol1) { // Simulate the npol=1 branch of onsite_ps_op kernel - const int npm = 4, tnp = 10, orb_l = 2, tlp1 = 2 * orb_l + 1, nat = 2; + const int npm = 4; // number of bands (npm/npol for npol=1) + const int npol = 1; + const int tnp = 10; // total number of projectors + const int orb_l = 2; // d-orbital + const int tlp1 = 2 * orb_l + 1; // 5 + const int nat = 2; // vu array: 2 atoms, each with tlp1*tlp1 = 25 elements std::vector> vu(nat * tlp1 * tlp1); - for (size_t i = 0; i < vu.size(); i++) + for(int i = 0; i < nat * tlp1 * tlp1; i++) vu[i] = {static_cast(i + 1), 0.0}; // ip_m: maps each projector to m index within its atom + // First atom (iat=0): projectors 0-4 map to m=0-4 + // Second atom (iat=1): projectors 5-9 map to m=0-4 std::vector ip_m = {0, 1, 2, 3, 4, 0, 1, 2, 3, 4}; std::vector ip_iat = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1}; std::vector vu_begin_iat = {0, tlp1 * tlp1}; // becp: npm * tnp std::vector> becp(npm * tnp, {0.0, 0.0}); - for (int ib = 0; ib < npm; ib++) - for (int ip = 0; ip < tnp; ip++) + // Set some non-zero becp values + for(int ib = 0; ib < npm; ib++) + for(int ip = 0; ip < tnp; ip++) becp[ib * tnp + ip] = {static_cast(ib + ip + 1), 0.0}; // ps: tnp * npm std::vector> ps(tnp * npm, {0.0, 0.0}); // Kernel logic for npol=1 (EXACT copy from onsite_op.cpp) - for (int ib = 0; ib < npm; ib++) { - for (int ip = 0; ip < tnp; ip++) { + for(int ib = 0; ib < npm; ib++) + { + for(int ip = 0; ip < tnp; ip++) + { int m1 = ip_m[ip]; - if (m1 < 0) continue; + if(m1 < 0) continue; int iat = ip_iat[ip]; const std::complex* vu_iat = vu.data() + vu_begin_iat[iat]; - int ip2_begin = ip - m1, ip2_end = ip - m1 + tlp1; + int ip2_begin = ip - m1; + int ip2_end = ip - m1 + tlp1; const int psind = ip * npm + ib; - for (int ip2 = ip2_begin; ip2 < ip2_end; ip2++) { + for(int ip2 = ip2_begin; ip2 < ip2_end; ip2++) + { + const int becpind = ib * tnp + ip2; int m2 = ip_m[ip2]; - ps[psind] += vu_iat[m1 * tlp1 + m2] * becp[ib * tnp + ip2]; + const int index_mm = m1 * tlp1 + m2; + ps[psind] += vu_iat[index_mm] * becp[becpind]; } } } - // Verify ps[0] (ib=0, ip=0, m1=0, iat=0) - // ps[0] = sum_{ip2=0..4} vu[0*tlp1+ip_m[ip2]] * becp[0*tnp+ip2] - std::complex expected = {0.0, 0.0}; - for (int ip2 = 0; ip2 < tlp1; ip2++) - expected += vu[ip2] * becp[ip2]; - EXPECT_DOUBLE_EQ(ps[0].real(), expected.real()); - EXPECT_DOUBLE_EQ(ps[0].imag(), expected.imag()); + // Verify ps[0] (ib=0, ip=0) + // m1=0, iat=0, vu_iat=vu[0..] + // ip2 from 0 to 5 + std::complex expected_ps00 = {0.0, 0.0}; + for(int ip2 = 0; ip2 < tlp1; ip2++) + { + const int becpind = 0 * tnp + ip2; + int m2 = ip_m[ip2]; + const int index_mm = 0 * tlp1 + m2; + expected_ps00 += vu[index_mm] * becp[becpind]; + } + EXPECT_DOUBLE_EQ(ps[0].real(), expected_ps00.real()); + EXPECT_DOUBLE_EQ(ps[0].imag(), expected_ps00.imag()); +} + +// ===================================================================== +// Step 4: Test spin-up only path (isolate from spin-down) +// ===================================================================== + +TEST_F(DftuPwTest, SpinUpOnly_Path_Nspin2) +{ + // Test that spin-up calculation is independent and correct + const int m_size = 5; + const int size = m_size * m_size; + const double U_val = 5.0; + const double diag_coeff = 0.5; + + // Only set spin-up locale + std::vector locale_up(size, 0.0); + for(int m = 0; m < m_size; m++) + locale_up[m * m_size + m] = 0.8; + + // Calculate VU for spin-up only + std::vector> vu_up(size, {0.0, 0.0}); + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { + vu_up[m1 * m_size + m2] = U_val * + (diag_coeff * (m1 == m2) - locale_up[m2 * m_size + m1]); + } + } + + // Verify diagonal values + for(int m = 0; m < m_size; m++) + EXPECT_DOUBLE_EQ(vu_up[m * m_size + m].real(), -1.5); // 5*(0.5-0.8) + + // Verify off-diagonal are zero + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + if(m1 != m2) + EXPECT_DOUBLE_EQ(vu_up[m1 * m_size + m2].real(), 0.0); +} + +// ===================================================================== +// Step 5: Test spin-down only path (isolate from spin-up) +// ===================================================================== + +TEST_F(DftuPwTest, SpinDownOnly_Path_Nspin2) +{ + // Test that spin-down calculation is independent and correct + const int m_size = 5; + const int size = m_size * m_size; + const double U_val = 5.0; + const double diag_coeff = 0.5; + + // Only set spin-down locale + std::vector locale_dn(size, 0.0); + for(int m = 0; m < m_size; m++) + locale_dn[m * m_size + m] = 0.2; + + // Calculate VU for spin-down only + std::vector> vu_dn(size, {0.0, 0.0}); + for(int m1 = 0; m1 < m_size; m1++) + { + for(int m2 = 0; m2 < m_size; m2++) + { + vu_dn[m1 * m_size + m2] = U_val * + (diag_coeff * (m1 == m2) - locale_dn[m2 * m_size + m1]); + } + } + + // Verify diagonal values + for(int m = 0; m < m_size; m++) + EXPECT_DOUBLE_EQ(vu_dn[m * m_size + m].real(), 1.5); // 5*(0.5-0.2) + + // Verify off-diagonal are zero + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + if(m1 != m2) + EXPECT_DOUBLE_EQ(vu_dn[m1 * m_size + m2].real(), 0.0); +} + +// ===================================================================== +// Multi-atom split layout test for nspin=2 +// Verifies that the split layout [all_up | all_dn] works correctly +// with multiple correlated atoms (the P0-1 bug fix) +// ===================================================================== + +TEST_F(DftuPwTest, MultiAtomSplitLayout_Nspin2) +{ + // 2 correlated atoms with d-orbital (l=2) + const int nat = 2; + const int m_size = 5; + const int size = m_size * m_size; // 25 per atom per spin + const int P = nat * size; // 50 = total spin-up block size + const int total = P * 2; // 100 = total array size (split: up|dn) + + // eff_pot_pw_index: split layout, each atom gets `size` entries + std::vector eff_pot_pw_index(nat); + eff_pot_pw_index[0] = 0; + eff_pot_pw_index[1] = size; // 25 + + // --- Test uom_array writing (dftu_pw.cpp logic) --- + std::vector uom_array(total, 0.0); + // Simulate locale values for both atoms + std::vector locale_up_0(size, 0.0), locale_dn_0(size, 0.0); + std::vector locale_up_1(size, 0.0), locale_dn_1(size, 0.0); + for(int m = 0; m < m_size; m++) + { + locale_up_0[m * m_size + m] = 0.8; + locale_dn_0[m * m_size + m] = 0.2; + locale_up_1[m * m_size + m] = 0.7; + locale_dn_1[m * m_size + m] = 0.3; + } + + // Write to uom_array using split layout + const int half_size = total / 2; // P = 50 + // atom 0 + for(int mm = 0; mm < size; mm++) + { + uom_array[eff_pot_pw_index[0] + mm] = locale_up_0[mm]; + uom_array[half_size + eff_pot_pw_index[0] + mm] = locale_dn_0[mm]; + } + // atom 1 + for(int mm = 0; mm < size; mm++) + { + uom_array[eff_pot_pw_index[1] + mm] = locale_up_1[mm]; + uom_array[half_size + eff_pot_pw_index[1] + mm] = locale_dn_1[mm]; + } + + // Verify split layout: first half = all spin-up, second half = all spin-down + // atom 0 up: [0..24] + EXPECT_DOUBLE_EQ(uom_array[0], 0.8); // locale_up_0 diagonal + // atom 1 up: [25..49] + EXPECT_DOUBLE_EQ(uom_array[size + 0], 0.7); // locale_up_1 diagonal + // atom 0 dn: [50..74] + EXPECT_DOUBLE_EQ(uom_array[half_size + 0], 0.2); // locale_dn_0 diagonal + // atom 1 dn: [75..99] + EXPECT_DOUBLE_EQ(uom_array[half_size + size + 0], 0.3); // locale_dn_1 diagonal + + // --- Test set_locale reading (dftu_occup.cpp logic) --- + std::vector read_up_0(size, 0.0), read_dn_0(size, 0.0); + std::vector read_up_1(size, 0.0), read_dn_1(size, 0.0); + + for(int mm = 0; mm < size; mm++) + { + // atom 0 + read_up_0[mm] = uom_array[eff_pot_pw_index[0] + mm]; + read_dn_0[mm] = uom_array[half_size + eff_pot_pw_index[0] + mm]; + // atom 1 + read_up_1[mm] = uom_array[eff_pot_pw_index[1] + mm]; + read_dn_1[mm] = uom_array[half_size + eff_pot_pw_index[1] + mm]; + } + + for(int mm = 0; mm < size; mm++) + { + EXPECT_DOUBLE_EQ(read_up_0[mm], locale_up_0[mm]); + EXPECT_DOUBLE_EQ(read_dn_0[mm], locale_dn_0[mm]); + EXPECT_DOUBLE_EQ(read_up_1[mm], locale_up_1[mm]); + EXPECT_DOUBLE_EQ(read_dn_1[mm], locale_dn_1[mm]); + } + + // --- Test VU writing (dftu_pw.cpp logic) --- + std::vector> eff_pot_pw(total, {0.0, 0.0}); + const double U_val = 5.0; + const double diag_coeff = 0.5; + + // atom 0 spin-up VU + std::complex* vu_up_0 = &eff_pot_pw[eff_pot_pw_index[0]]; + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + vu_up_0[m1 * m_size + m2] = U_val * (diag_coeff * (m1 == m2) - locale_up_0[m2 * m_size + m1]); + + // atom 0 spin-down VU (split layout: offset by half_size) + std::complex* vu_dn_0 = &eff_pot_pw[eff_pot_pw.size() / 2 + eff_pot_pw_index[0]]; + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + vu_dn_0[m1 * m_size + m2] = U_val * (diag_coeff * (m1 == m2) - locale_dn_0[m2 * m_size + m1]); + + // atom 1 spin-up VU + std::complex* vu_up_1 = &eff_pot_pw[eff_pot_pw_index[1]]; + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + vu_up_1[m1 * m_size + m2] = U_val * (diag_coeff * (m1 == m2) - locale_up_1[m2 * m_size + m1]); + + // atom 1 spin-down VU + std::complex* vu_dn_1 = &eff_pot_pw[eff_pot_pw.size() / 2 + eff_pot_pw_index[1]]; + for(int m1 = 0; m1 < m_size; m1++) + for(int m2 = 0; m2 < m_size; m2++) + vu_dn_1[m1 * m_size + m2] = U_val * (diag_coeff * (m1 == m2) - locale_dn_1[m2 * m_size + m1]); + + // Verify VU values + // atom 0 up diagonal: 5*(0.5-0.8) = -1.5 + EXPECT_DOUBLE_EQ(vu_up_0[0].real(), -1.5); + // atom 0 dn diagonal: 5*(0.5-0.2) = 1.5 + EXPECT_DOUBLE_EQ(vu_dn_0[0].real(), 1.5); + // atom 1 up diagonal: 5*(0.5-0.7) = -1.0 + EXPECT_DOUBLE_EQ(vu_up_1[0].real(), -1.0); + // atom 1 dn diagonal: 5*(0.5-0.3) = 1.0 + EXPECT_DOUBLE_EQ(vu_dn_1[0].real(), 1.0); + + // Verify no overlap between atoms in VU arrays + // atom 0 up ends at index 24, atom 1 up starts at 25 — no overlap + EXPECT_NE(vu_up_0[0], vu_up_1[0]); + // atom 0 dn starts at half_size=50, atom 1 dn starts at half_size+25=75 — no overlap + EXPECT_NE(vu_dn_0[0], vu_dn_1[0]); +} + +// ===================================================================== +// Test that split layout copy_locale/uom_save is consistent +// with set_locale/uom_array round-trip for multi-atom nspin=2 +// ===================================================================== + +TEST_F(DftuPwTest, RoundTripCopyAndSetLocale_Nspin2_MultiAtom) +{ + const int nat = 2; + const int m_size = 5; + const int size = m_size * m_size; + const int P = nat * size; + const int total = P * 2; + + std::vector eff_pot_pw_index = {0, size}; + std::vector uom_save(total, 0.0); + std::vector uom_array(total, 0.0); + + // Simulate locale values + std::vector> locale_up(nat, std::vector(size, 0.0)); + std::vector> locale_dn(nat, std::vector(size, 0.0)); + for(int iat = 0; iat < nat; iat++) + for(int m = 0; m < m_size; m++) + { + locale_up[iat][m * m_size + m] = 0.9 - iat * 0.1; + locale_dn[iat][m * m_size + m] = 0.1 + iat * 0.1; + } + + // copy_locale -> uom_save (split layout) + const int half_size = total / 2; + for(int iat = 0; iat < nat; iat++) + for(int mm = 0; mm < size; mm++) + { + uom_save[eff_pot_pw_index[iat] + mm] = locale_up[iat][mm]; + uom_save[half_size + eff_pot_pw_index[iat] + mm] = locale_dn[iat][mm]; + } + + // cal_occ_pw -> uom_array (split layout) + for(int iat = 0; iat < nat; iat++) + for(int mm = 0; mm < size; mm++) + { + uom_array[eff_pot_pw_index[iat] + mm] = locale_up[iat][mm]; + uom_array[half_size + eff_pot_pw_index[iat] + mm] = locale_dn[iat][mm]; + } + + // Mixing would compare uom_array with uom_save — verify they match + for(int i = 0; i < total; i++) + EXPECT_DOUBLE_EQ(uom_array[i], uom_save[i]); + + // set_locale reads back from uom_array + std::vector> read_up(nat, std::vector(size, 0.0)); + std::vector> read_dn(nat, std::vector(size, 0.0)); + for(int iat = 0; iat < nat; iat++) + for(int mm = 0; mm < size; mm++) + { + read_up[iat][mm] = uom_array[eff_pot_pw_index[iat] + mm]; + read_dn[iat][mm] = uom_array[half_size + eff_pot_pw_index[iat] + mm]; + } + + // Verify round-trip consistency + for(int iat = 0; iat < nat; iat++) + for(int mm = 0; mm < size; mm++) + { + EXPECT_DOUBLE_EQ(read_up[iat][mm], locale_up[iat][mm]); + EXPECT_DOUBLE_EQ(read_dn[iat][mm], locale_dn[iat][mm]); + } +} + +// ===================================================================== +// get_locale_flat / set_locale_flat logic tests (pure arithmetic) +// +// These test the nspin-dependent packing/unpacking logic without +// requiring a Plus_U instance, by simulating the same operations. +// ===================================================================== + +TEST_F(DftuPwTest, LocaleFlatPackNspin1) +{ + PARAM.input.nspin = 1; + const int tlp1 = 3; + const int size = tlp1 * tlp1; + std::vector locale_spin0(size); + for (int i = 0; i < size; i++) locale_spin0[i] = static_cast(i); + std::vector occ(size); + for (int i = 0; i < size; i++) occ[i] = locale_spin0[i]; + for (int i = 0; i < size; i++) EXPECT_DOUBLE_EQ(occ[i], static_cast(i)); +} + +TEST_F(DftuPwTest, LocaleFlatPackNspin2) +{ + PARAM.input.nspin = 2; + const int tlp1 = 3; + const int size = tlp1 * tlp1; + std::vector locale_spin0(size), locale_spin1(size); + for (int i = 0; i < size; i++) + { + locale_spin0[i] = static_cast(i); + locale_spin1[i] = static_cast(i + 100); + } + std::vector occ(2 * size); + for (int i = 0; i < size; i++) + { + occ[i] = locale_spin0[i]; + occ[size + i] = locale_spin1[i]; + } + for (int i = 0; i < size; i++) + { + EXPECT_DOUBLE_EQ(occ[i], static_cast(i)); + EXPECT_DOUBLE_EQ(occ[size + i], static_cast(i + 100)); + } +} + +TEST_F(DftuPwTest, LocaleFlatSetRoundTrip) +{ + const int tlp1 = 2; + const int size = tlp1 * tlp1; + std::vector locale_data(size, 0.0); + std::vector occ(size); + for (int i = 0; i < size; i++) occ[i] = static_cast(i + 50); + for (int i = 0; i < size; i++) locale_data[i] = occ[i]; + for (int i = 0; i < size; i++) + EXPECT_DOUBLE_EQ(locale_data[i], static_cast(i + 50)); } diff --git a/source/source_lcao/module_operator_lcao/dftu_lcao.cpp b/source/source_lcao/module_operator_lcao/dftu_lcao.cpp index 9885878c8c..2f1f99a05f 100644 --- a/source/source_lcao/module_operator_lcao/dftu_lcao.cpp +++ b/source/source_lcao/module_operator_lcao/dftu_lcao.cpp @@ -190,7 +190,7 @@ void hamilt::DFTU>::cal_nlm_all(const Parallel_Orbi * * For nspin=1: occ is scaled by 0.5 (since only one spin channel computed) * - Subsequent iterations: locale is computed fresh each iteration from updated DMR * - * Case 2: Locale IS initialized (is_locale_initialized, i.e., read from dm_onsite.txt file) + * Case 2: Locale IS initialized (is_locale_initialized, i.e., read from onsite.dm file) * - First electronic iteration: uses pre-read locale directly without DMR calculation * * Skips DMR-based occ calculation entirely * * Reads locale from stored data via get_locale() @@ -334,8 +334,8 @@ void hamilt::DFTU>::contributeHR() // BRANCH 2: Locale IS initialized (use pre-read data) // ============================================================ // This branch is taken when: - // - is_locale_initialized() == true (locale read from dm_onsite.txt file) - // - OR omc != 0 (occupation matrix control with dm_onsite_ini.txt) + // - is_locale_initialized() == true (locale read from onsite.dm file) + // - OR omc != 0 (occupation matrix control with initial_onsite.dm) // Typical scenario: first SCF iteration with file input, or restart calculation else { @@ -344,10 +344,23 @@ void hamilt::DFTU>::contributeHR() // in the matrix indices (ipol0, ipol1 for Pauli block indices) if (this->nspin == 4) { - // For nspin=4, locale is stored as 4 stacked tlp1^2 blocks - // at offsets 0, tlp1^2, 2*tlp1^2, 3*tlp1^2 for the 4 Pauli channels. - // Use get_locale_flat to read the stacked blocks directly - this->dftu->get_locale_flat(iat0, target_L, occ); + const int tlp1_local = 2 * target_L + 1; + const int m_size2_local = tlp1_local * tlp1_local; + for (int i = 0; i < static_cast(occ.size()); i++) + { + // Decode flattened index to (Pauli_block, m, m') format + const int ib = i / m_size2_local; // Pauli block index (0-3) + const int m = (i % m_size2_local) / tlp1_local; // m quantum number + const int m2_val = (i % m_size2_local) % tlp1_local; // m' quantum number + const int ipol0 = ib / npol; // Row Pauli index + const int ipol1 = ib % npol; // Column Pauli index + const int m0_all = m + ipol0 * tlp1_local; // Combined row index + const int m1_all = m2_val + ipol1 * tlp1_local; // Combined col index + // TODO: UNSAFE - get_locale indices must match storage format exactly. + // Mismatch in indexing between set_locale_flat and get_locale causes silent corruption. + // TODO: Add bounds checking for m0_all, m1_all against locale array dimensions. + occ[i] = this->dftu->get_locale(iat0, target_L, 0, 0, m0_all, m1_all); + } } // nspin=1 or nspin=2: Collinear spin case // Locale stored separately for each spin channel @@ -615,10 +628,10 @@ void hamilt::DFTU, std::complex>::~DeltaSpin() this->pre_hr.shrink_to_fit(); } -// simple functions to calculate the coefficients from lambda +// ============================================================================ +// cal_coeff_lambda: Convert lambda (Lagrange multipliers) to Hamiltonian +// coefficients for the DeltaSpin constraint term. +// +// The constrained energy functional is: +// E'[rho] = E[rho] + sum_i lambda_i . (M_i - M_target_i) +// +// Variational derivative gives the Hamiltonian correction: +// H_DS = +lambda . sigma +// +// nspin=2 (collinear, TR=double): +// H_DS |up> = +lambda_z |up> +// H_DS |dn> = -lambda_z |dn> +// Positive lambda_z increases M_z (more spin-up, less spin-down) +// +// nspin=4 (non-collinear, TR=complex): +// H_DS = | +lambda_z +lambda_x - i*lambda_y | +// | +lambda_x + i*lambda_y -lambda_z | +// Note: sigma_y = [[0,-i],[i,0]], so the off-diagonal terms get: +// H_{up,down} = lambda_x*sigma_x_{up,dn} + lambda_y*sigma_y_{up,dn} +// = lambda_x + lambda_y*(-i) = lambda_x - i*lambda_y +// H_{down,up} = lambda_x*sigma_x_{dn,up} + lambda_y*sigma_y_{dn,up} +// = lambda_x + lambda_y*(+i) = lambda_x + i*lambda_y +// ============================================================================ + inline void cal_coeff_lambda(const std::vector& current_lambda, std::vector& coefficients) { coefficients[0] = current_lambda[0]; coefficients[1] = -current_lambda[0]; } + inline void cal_coeff_lambda(const std::vector& current_lambda, std::vector>& coefficients) -{// {\lambda^{I,3}, \lambda^{I,1}-i\lambda^{I,2}, \lambda^{I,1}+i\lambda^{I,2}, -\lambda^{I,3}} +{ coefficients[0] = std::complex(current_lambda[2], 0.0); - coefficients[1] = std::complex(current_lambda[0] , -current_lambda[1]); - coefficients[2] = std::complex(current_lambda[0] , current_lambda[1]); - coefficients[3] = std::complex(-1 * current_lambda[2], 0.0); + coefficients[1] = std::complex(current_lambda[0], -current_lambda[1]); + coefficients[2] = std::complex(current_lambda[0], current_lambda[1]); + coefficients[3] = std::complex(-current_lambda[2], 0.0); } template @@ -224,8 +249,18 @@ void hamilt::DeltaSpin>::cal_pre_HR() } this->paraV = this->hR->get_paraV(); ModuleBase::timer::start("DeltaSpin", "cal_pre_HR"); + for (auto& hr : this->pre_hr) + { + delete hr; + } this->pre_hr.clear(); this->pre_hr.resize(this->ucell->nat, nullptr); + for (auto& b : this->B_I_data) + { + b.clear(); + } + this->B_I_data.clear(); + this->B_I_data.resize(this->ucell->nat); const int npol = this->ucell->get_npol(); size_t memory_cost = 0; @@ -579,17 +614,14 @@ void hamilt::DeltaSpin>::cal_PI_sub( + kvec_d.z * bi_ad.R_index.z); const std::complex phase(cos(arg), sin(arg)); - for (const auto& nlm_pair : bi_ad.nlm) + for (const auto& [iw_global, nlm_vec] : bi_ad.nlm) { - const int iw_global = nlm_pair.first; - const std::vector& nlm_vec = nlm_pair.second; // Check if this global orbital index is in our local rows const int iw_local = this->paraV->global2local_row(iw_global); if (iw_local < 0) { continue; } - // D_I[lm + jb_global * r] += nlm_vec[lm] * phase * C_k[iw_local, jb_local] - // Column-major storage for BLAS: D_I[lm + jb * r] + // D_I[lm, jb_global] += nlm_vec[lm] * phase * C_k[iw_local, jb_local] // C_k is column-major: C_k[irow, icol] = psi_k[irow + icol * lda] for (int jb_local = 0; jb_local < ncol_local; jb_local++) { @@ -597,7 +629,7 @@ void hamilt::DeltaSpin>::cal_PI_sub( const std::complex c_val = phase * psi_k[iw_local + jb_local * lda]; for (int lm = 0; lm < r; lm++) { - D_I[lm + jb_global * r] += nlm_vec[lm] * c_val; + D_I[lm * nbands_global + jb_global] += nlm_vec[lm] * c_val; } } } @@ -616,14 +648,14 @@ void hamilt::DeltaSpin>::cal_PI_sub( PI_sub[iat].resize(nbands_global * nbands_global, {0.0, 0.0}); const std::complex one = {1.0, 0.0}; const std::complex zero_c = {0.0, 0.0}; - // D_I is stored column-major: D_I[lm + jb_global * r] - // zgemm: P = D^H * D, where D is r × nbands (column-major) - // A^H: conjugate transpose of A (nbands × r) - // B: D_I (r × nbands) - // Result: nbands × nbands - zgemm_("C", "N", &nbands_global, &nbands_global, &r, - &one, D_I.data(), &r, - D_I.data(), &r, + // D_I is stored in row-major layout: D_I[lm * nbands_global + jb] + // In column-major BLAS convention, this looks like a (nbands × r) matrix. + // To compute P = D^H * D (nbands × nbands), we use: + // P = (D^T) * (D^T)^H = D_memory * D_memory^H + // where D_memory is the column-major view of row-major D_I. + zgemm_("N", "C", &nbands_global, &nbands_global, &r, + &one, D_I.data(), &nbands_global, + D_I.data(), &nbands_global, &zero_c, PI_sub[iat].data(), &nbands_global); } } diff --git a/source/source_lcao/module_operator_lcao/dspin_lcao.h b/source/source_lcao/module_operator_lcao/dspin_lcao.h index b4ea23510e..da9cf5434b 100644 --- a/source/source_lcao/module_operator_lcao/dspin_lcao.h +++ b/source/source_lcao/module_operator_lcao/dspin_lcao.h @@ -103,6 +103,13 @@ class DeltaSpin> : public OperatorLCAO const int nbands_global, std::vector>>& PI_sub) const; + /// @brief Get the pre-computed real-space projector HContainer for atom iat + /// pre_hr[iat](μ,ν;R) = Σ_lm <φ_μ(0)|α_lm(I)><α_lm(I)|φ_ν(R)> + const hamilt::HContainer* get_pre_hr(int iat) const { return pre_hr[iat]; } + + /// @brief Get the constraint atom list + const std::vector& get_constraint_atom_list() const { return constraint_atom_list; } + private: const UnitCell* ucell = nullptr; diff --git a/source/source_lcao/module_operator_lcao/operator_lcao.cpp b/source/source_lcao/module_operator_lcao/operator_lcao.cpp index 1cda36ad05..31557b438f 100644 --- a/source/source_lcao/module_operator_lcao/operator_lcao.cpp +++ b/source/source_lcao/module_operator_lcao/operator_lcao.cpp @@ -79,6 +79,14 @@ void OperatorLCAO::init(const int ik_in) { this->hR->set_zero(); } } + // propagate current_spin to next operator so all nodes in the chain + // share the same spin state, set by HamiltLCAO::updateHk via set_current_spin. + // This is done before processing this node so that children receive the + // correct spin regardless of any local toggling that may happen inside + // this operator's contributeHR(). + if (this->next_op != nullptr) { + dynamic_cast*>(this->next_op)->current_spin = this->current_spin; + } switch (this->cal_type) { case calculation_type::lcao_overlap: { // cal_type=lcao_overlap refer to overlap matrix operators, which are @@ -172,9 +180,9 @@ void OperatorLCAO::init(const int ik_in) { case calculation_type::lcao_sc_lambda: { //update HR first + // Only contribute once per SCF iteration (when hr_done=false) + // or when lambda has changed (checked inside contributeHR) this->contributeHR(); - //in cal_type=lcao_sc_mag, - //this->contributeHk(ik_in); break; } case calculation_type::lcao_exx: @@ -250,6 +258,7 @@ void OperatorLCAO::contributeHk(int ik) { const int ncol = this->hsk->get_pv()->get_col_size(); hamilt::folding_HR(*this->hR, this->hsk->get_hk(), this->kvec_d[ik], ncol, 0); } + ModuleBase::timer::end("OperatorLCAO", "contributeHk"); } // contributeHk() @@ -281,6 +290,7 @@ void OperatorLCAO::contributeHk(int ik) { hamilt::folding_HR(*this->hR, this->hsk->get_hk(), this->kvec_d[ik], ncol, 0); } } + ModuleBase::timer::end("OperatorLCAO", "contributeHk"); } diff --git a/source/source_lcao/module_operator_lcao/test/CMakeLists.txt b/source/source_lcao/module_operator_lcao/test/CMakeLists.txt index 10f7cd6185..0f99f3f955 100644 --- a/source/source_lcao/module_operator_lcao/test/CMakeLists.txt +++ b/source/source_lcao/module_operator_lcao/test/CMakeLists.txt @@ -82,7 +82,7 @@ AddTest( AddTest( TARGET MODULE_LCAO_operator_dftu_test - LIBS parameter psi base device container + LIBS parameter ${math_libs} psi base device container SOURCES test_dftu.cpp ../dftu_lcao.cpp ../../module_hcontainer/func_folding.cpp ../../module_hcontainer/base_matrix.cpp ../../module_hcontainer/hcontainer.cpp ../../module_hcontainer/atom_pair.cpp ../../../source_basis/module_ao/parallel_orbitals.cpp diff --git a/source/source_lcao/module_ri/RPA_LRI.hpp b/source/source_lcao/module_ri/RPA_LRI.hpp index 2817390201..641d6dfa2e 100644 --- a/source/source_lcao/module_ri/RPA_LRI.hpp +++ b/source/source_lcao/module_ri/RPA_LRI.hpp @@ -1290,7 +1290,7 @@ void RPA_LRI::out_coulomb_k(const UnitCell& ucell, // list_As_Vs.first, list_As_Vs.second[0], // {{"writable_Vws",true}}); -// // Vs[iat0][{iat1,cell1}] 按 (iat0,iat1) 分进程,每个进程有所有 cell1 +// // Vs[iat0][{iat1,cell1}] distributed by (iat0,iat1), each process has all cell1 // Vqs = FFT(Vs); // out_Vs(Vqs); diff --git a/source/source_lcao/module_rt/solve_propagation.cpp b/source/source_lcao/module_rt/solve_propagation.cpp index aa0a9f3837..540d16c329 100644 --- a/source/source_lcao/module_rt/solve_propagation.cpp +++ b/source/source_lcao/module_rt/solve_propagation.cpp @@ -83,7 +83,7 @@ void solve_propagation(const Parallel_Orbitals* pv, const double dt, const std::complex* Stmp, const std::complex* Htmp, - const std::complex* P_k, // <--- 接收 P_k + const std::complex* P_k, // <--- receives P_k const std::complex* psi_k_laststep, std::complex* psi_k) { diff --git a/source/source_main/driver.cpp b/source/source_main/driver.cpp index 8d88fa69f7..e22070b4c5 100644 --- a/source/source_main/driver.cpp +++ b/source/source_main/driver.cpp @@ -32,7 +32,6 @@ void Driver::init() // 2) Print the current time, since it may run a long time. time_t time_start = std::time(nullptr); - ModuleBase::timer::start(); // 3) Welcome to the atomic world! Let's do some fancy stuff here. this->atomic_world(); diff --git a/source/source_main/main.cpp b/source/source_main/main.cpp index 6ffc3c0944..d5caae0876 100644 --- a/source/source_main/main.cpp +++ b/source/source_main/main.cpp @@ -4,12 +4,12 @@ //========================================================== #include "source_main/driver.h" -#include "fftw3.h" #include "source_base/parallel_global.h" #include "source_io/parse_args.h" #include "source_io/module_parameter/parameter.h" #include "source_base/version.h" #ifdef _OPENMP +#include #include #endif @@ -93,14 +93,16 @@ int main(int argc, char** argv) DD.init(); /* - After running mpi version of abacus, release the mpi resources. + Clean up FFTW threads before MPI_Finalize to avoid OpenMPI 4.0.3 + hwloc segfault: FFTW must release its hwloc resources before MPI + finalizes and frees the shared hwloc topology. */ -#ifdef __MPI - Parallel_Global::finalize_mpi(); -#endif #ifdef _OPENMP fftw_cleanup_threads(); #endif +#ifdef __MPI + Parallel_Global::finalize_mpi(); +#endif return 0; } diff --git a/source/source_psi/CMakeLists.txt b/source/source_psi/CMakeLists.txt index 8be3a2ba39..1bc4ba02a4 100644 --- a/source/source_psi/CMakeLists.txt +++ b/source/source_psi/CMakeLists.txt @@ -2,6 +2,7 @@ add_library( psi OBJECT psi.cpp + psi_paging.cpp ) add_library( diff --git a/source/source_psi/psi.cpp b/source/source_psi/psi.cpp index 8f64b0b8ea..842c2548fa 100644 --- a/source/source_psi/psi.cpp +++ b/source/source_psi/psi.cpp @@ -7,11 +7,37 @@ #include #include +#include #include namespace psi { +namespace detail +{ +// Helper for type-aware memory copy +template +struct TypeCopy +{ + static void copy(T* dst, const T_in* src, size_t size) + { + for (size_t i = 0; i < size; ++i) + { + dst[i] = static_cast(src[i]); + } + } +}; + +template +struct TypeCopy +{ + static void copy(T* dst, const T_in* src, size_t size) + { + std::memcpy(dst, src, sizeof(T) * size); + } +}; +} + Range::Range(const size_t range_in) { k_first = true; @@ -41,6 +67,16 @@ Psi::~Psi() { delete_memory_op()(this->psi); } + + if (psi_cpu_ != nullptr && psi_cpu_owned_) + { + delete[] psi_cpu_; + } + psi_cpu_ = nullptr; + + psi_gpu_buffer_ = nullptr; + + current_k_gpu_ = -1; } // Constructor 1: @@ -160,15 +196,60 @@ Psi::Psi(const Psi& psi_in) this->current_k = psi_in.get_current_k(); this->current_b = psi_in.get_current_b(); this->k_first = psi_in.get_k_first(); - // this function will copy psi_in.psi to this->psi no matter the device types of each other. + this->storage_mode_ = psi_in.get_storage_mode(); this->resize(psi_in.get_nk(), psi_in.get_nbands(), psi_in.get_nbasis()); - base_device::memory::synchronize_memory_op()(this->psi, - psi_in.get_pointer() - psi_in.get_psi_bias(), - psi_in.size()); - this->psi_bias = psi_in.get_psi_bias(); + + if (this->storage_mode_ == PsiStorageMode::PAGED_GPU && psi_cpu_ != nullptr) + { + const size_t total_size = static_cast(this->nk) * this->nbands * this->nbasis; + const T* src_ptr = psi_in.get_pointer() - psi_in.get_psi_bias(); + + if (psi_in.get_storage_mode() == PsiStorageMode::PAGED_GPU) + { + // Source may have PAGED_GPU flag set but psi_cpu_ not yet allocated + // (e.g. after set_storage_mode() in setup_psi_pw). In that case, + // copy from the source's main buffer (psi) into our psi_cpu_. + const T* cp_ptr = psi_in.get_cpu_pointer_safe(); + if (cp_ptr != nullptr) + { + std::memcpy(this->psi_cpu_, cp_ptr, sizeof(T) * total_size); + } + else + { + // Fallback: source data is in psi buffer (ALL_GPU layout) + std::memcpy(this->psi_cpu_, src_ptr, sizeof(T) * total_size); + } + } + else if (std::is_same::value) + { + std::memcpy(this->psi_cpu_, src_ptr, sizeof(T) * total_size); + } + else + { + base_device::memory::synchronize_memory_op()( + this->psi_cpu_, src_ptr, total_size); + } + this->current_k_gpu_ = -1; + this->psi_bias = 0; + this->psi_current = this->psi; + } + else + { + if (std::is_same::value) + { + std::memcpy(this->psi, psi_in.get_pointer() - psi_in.get_psi_bias(), + sizeof(T) * psi_in.size()); + } + else + { + base_device::memory::synchronize_memory_op()( + this->psi, psi_in.get_pointer() - psi_in.get_psi_bias(), psi_in.size()); + } + this->psi_bias = psi_in.get_psi_bias(); + this->psi_current = this->psi + psi_in.get_psi_bias(); + } this->current_nbasis = psi_in.get_current_nbas(); - this->psi_current = this->psi + psi_in.get_psi_bias(); } // Constructor 2-2: @@ -184,44 +265,83 @@ Psi::Psi(const Psi& psi_in) this->current_k = psi_in.get_current_k(); this->current_b = psi_in.get_current_b(); this->k_first = psi_in.get_k_first(); - // this function will copy psi_in.psi to this->psi no matter the device types of each other. + this->storage_mode_ = psi_in.get_storage_mode(); this->resize(psi_in.get_nk(), psi_in.get_nbands(), psi_in.get_nbasis()); - // Specifically, if the Device_in type is CPU and the Device type is GPU. - // Which means we need to initialize a GPU psi from a given CPU psi. - // We first malloc a memory in CPU, then cast the memory from T_in to T in CPU. - // Finally, synchronize the memory from CPU to GPU. - // This could help to reduce the peak memory usage of device. - if (std::is_same::value && std::is_same::value) + if (this->storage_mode_ == PsiStorageMode::PAGED_GPU && psi_cpu_ != nullptr) + { + const size_t total_size = static_cast(this->nk) * this->nbands * this->nbasis; + + if (psi_in.get_storage_mode() == PsiStorageMode::PAGED_GPU) + { + // Source may have PAGED_GPU flag set but psi_cpu_ not yet allocated. + const T_in* cp_ptr = psi_in.get_cpu_pointer_safe(); + if (cp_ptr != nullptr) + { + detail::TypeCopy::value>::copy(this->psi_cpu_, cp_ptr, total_size); + } + else + { + // Fallback: source data is in main psi buffer (ALL_GPU layout) + auto* arr = (T*)malloc(sizeof(T) * total_size); + base_device::memory::cast_memory_op()( + arr, psi_in.get_pointer() - psi_in.get_psi_bias(), total_size); + std::memcpy(this->psi_cpu_, arr, sizeof(T) * total_size); + free(arr); + } + } + else + { + auto* arr = (T*)malloc(sizeof(T) * total_size); + base_device::memory::cast_memory_op()( + arr, psi_in.get_pointer() - psi_in.get_psi_bias(), total_size); + std::memcpy(this->psi_cpu_, arr, sizeof(T) * total_size); + free(arr); + } + this->current_k_gpu_ = -1; + this->psi_bias = 0; + this->psi_current = this->psi; + } + else if (std::is_same::value && std::is_same::value) { auto* arr = (T*)malloc(sizeof(T) * psi_in.size()); - // cast the memory from T_in to T in CPU base_device::memory::cast_memory_op()(arr, psi_in.get_pointer() - psi_in.get_psi_bias(), psi_in.size()); - // synchronize the memory from CPU to GPU base_device::memory::synchronize_memory_op()(this->psi, arr, psi_in.size()); free(arr); + this->psi_bias = psi_in.get_psi_bias(); + this->psi_current = this->psi + psi_in.get_psi_bias(); } else { base_device::memory::cast_memory_op()(this->psi, psi_in.get_pointer() - psi_in.get_psi_bias(), psi_in.size()); + this->psi_bias = psi_in.get_psi_bias(); + this->psi_current = this->psi + psi_in.get_psi_bias(); } - this->psi_bias = psi_in.get_psi_bias(); this->current_nbasis = psi_in.get_current_nbas(); - this->psi_current = this->psi + psi_in.get_psi_bias(); } template void Psi::set_all_psi(const T* another_pointer, const std::size_t size_in) { assert(size_in == this->size()); + if (this->storage_mode_ == PsiStorageMode::PAGED_GPU) + { + if (psi_cpu_ != nullptr) + { + const size_t total_size = static_cast(this->nk) * this->nbands * this->nbasis; + base_device::memory::synchronize_memory_op()( + this->psi_cpu_, another_pointer, total_size); + } + return; + } synchronize_memory_op()(this->psi, another_pointer, this->size()); } @@ -238,33 +358,68 @@ Psi& Psi::operator=(const Psi& psi_in) this->k_first = psi_in.get_k_first(); // this function will copy psi_in.psi to this->psi no matter the device types of each other. + this->storage_mode_ = psi_in.get_storage_mode(); this->resize(psi_in.get_nk(), psi_in.get_nbands(), psi_in.get_nbasis()); - base_device::memory::synchronize_memory_op()(this->psi, - psi_in.psi, - psi_in.size()); - this->psi_bias = psi_in.get_psi_bias(); + + if (this->storage_mode_ == PsiStorageMode::PAGED_GPU) + { + // PAGED_GPU: copy the full CPU buffer, GPU buffer stays single-k + if (psi_cpu_ != nullptr && psi_in.psi_cpu_ != nullptr) + { + const size_t total_size = static_cast(this->nk) * this->nbands * this->nbasis; + std::memcpy(this->psi_cpu_, psi_in.psi_cpu_, sizeof(T) * total_size); + } + this->current_k_gpu_ = -1; + this->psi_bias = 0; + this->psi_current = this->psi; + } + else + { + base_device::memory::synchronize_memory_op()(this->psi, + psi_in.psi, + psi_in.size()); + this->psi_bias = psi_in.get_psi_bias(); + this->psi_current = this->psi + psi_in.get_psi_bias(); + } this->current_nbasis = psi_in.get_current_nbas(); - this->psi_current = this->psi + psi_in.get_psi_bias(); return *this; } template -void Psi::resize(const int nks_in, const int nbands_in, const int nbasis_in) +void Psi::resize(const int nks_in, const int nbands_in, const int nbasis_in, const bool skip_psi_cpu_alloc) { assert(nks_in > 0 && nbands_in >= 0 && nbasis_in > 0); - // This function will delete the psi array first(if psi exist), then malloc a new memory for it. - resize_memory_op()(this->psi, nks_in * static_cast(nbands_in) * nbasis_in, "no_record"); - - // this->zero_out(); + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + const size_t total_size = static_cast(nks_in) * nbands_in * nbasis_in; + if (!skip_psi_cpu_alloc) + { + if (psi_cpu_ != nullptr) + { + delete[] psi_cpu_; + } + psi_cpu_ = new T[total_size](); + psi_cpu_owned_ = true; + } + + const size_t k_size = static_cast(nbands_in) * nbasis_in; + resize_memory_op()(this->psi, k_size, "no_record"); + + psi_gpu_buffer_ = this->psi; + current_k_gpu_ = -1; + } + else + { + resize_memory_op()(this->psi, nks_in * static_cast(nbands_in) * nbasis_in, "no_record"); + } this->nk = nks_in; this->nbands = nbands_in; this->nbasis = nbasis_in; this->current_nbasis = nbasis_in; this->psi_current = this->psi; - // GlobalV::ofs_device << "allocated xxx MB memory for psi" << std::endl; } template @@ -377,6 +532,24 @@ void Psi::fix_k(const int ik) const { this->current_b = 0; } + + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + this->psi_bias = 0; + if (this->current_k_gpu_ == ik) + { + // This k-point is loaded on GPU by load_k_to_gpu + this->psi_current = const_cast(this->psi); + } + else + { + // Read from CPU full buffer (psi_cpu_ has all k-points) + this->psi_current = const_cast(psi_cpu_ + + static_cast(ik) * this->nbands * this->nbasis); + } + return; + } + int base = this->current_b * this->nk * this->nbasis; if (ik >= this->nk) { @@ -396,6 +569,13 @@ void Psi::fix_b(const int ib) const assert(ib >= 0); this->current_b = ib; + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + this->psi_bias = 0; + this->psi_current = const_cast(this->psi); + return; + } + if (!this->k_first) { this->current_k = 0; @@ -420,6 +600,14 @@ void Psi::fix_kb(const int ik, const int ib) const assert(ik >= 0 && ib >= 0); this->current_k = ik; this->current_b = ib; + + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + this->psi_bias = 0; + this->psi_current = const_cast(this->psi); + return; + } + if (ik >= this->nk || ib >= this->nbands) { // fix to 0 this->psi_bias = 0; @@ -437,6 +625,18 @@ T& Psi::operator()(const int ikb1, const int ikb2, const int ibasis) { assert(ikb1 >= 0 && ikb2 >= 0 && ibasis >= 0); assert(this->k_first ? ikb1 < this->nk && ikb2 < this->nbands : ikb1 < this->nbands && ikb2 < this->nk); + + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + // PAGED_GPU: GPU buffer is single-k, return from GPU if loaded, else CPU + assert(psi_cpu_ != nullptr); + if (this->current_k_gpu_ == ikb1) + { + return this->psi[ikb2 * this->nbasis + ibasis]; + } + return const_cast(psi_cpu_)[(ikb1 * this->nbands + ikb2) * this->nbasis + ibasis]; + } + return this->k_first ? this->psi[(ikb1 * this->nbands + ikb2) * this->nbasis + ibasis] : this->psi[(ikb1 * this->nk + ikb2) * this->nbasis + ibasis]; } @@ -485,38 +685,68 @@ const int& Psi::get_ngk(const int ik_in) const template void Psi::zero_out() { - // this->psi.assign(this->psi.size(), T(0)); - set_memory_op()(this->psi, 0, this->size()); + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + // Zero full CPU buffer and single-k GPU buffer + if (psi_cpu_ != nullptr) + { + const size_t total_size = static_cast(this->nk) * this->nbands * this->nbasis; + std::memset(psi_cpu_, 0, sizeof(T) * total_size); + } + const size_t k_size = static_cast(this->nbands) * this->nbasis; + set_memory_op()(this->psi, 0, k_size); + } + else + { + set_memory_op()(this->psi, 0, this->size()); + } } template std::tuple Psi::to_range(const Range& range) const { - const int& i1 = range.index_1; - const int& r1 = range.range_1; - const int& r2 = range.range_2; + const size_t i1 = range.index_1; + const size_t r1 = range.range_1; + const size_t r2 = range.range_2; - if (range.k_first != this->k_first || r1 < 0 - || r2 < r1 - // || (range.k_first && (r2 >= this->nbands || i1 >= this->nk)) - // || (!range.k_first && (r2 >= this->nk || i1 >= this->nbands))) - || (range.k_first ? (i1 >= this->nk) : (i1 >= this->nbands)) // illegal index 1 - || (range.k_first ? (i1 > 0 && r2 >= this->nbands) : (i1 > 0 && r2 >= this->nk)) // illegal range of index 2 - || (range.k_first ? (i1 < 0 && r2 >= this->nk) : (i1 < 0 && r2 >= this->nbands))) // illegal range of index 1 + if (range.k_first != this->k_first || r2 < r1 + || (range.k_first ? (i1 >= static_cast(this->nk)) : (i1 >= static_cast(this->nbands))) + || (range.k_first ? (i1 > 0 && r2 >= static_cast(this->nbands)) : (i1 > 0 && r2 >= static_cast(this->nk)))) { return std::tuple(nullptr, 0); } - else if (i1 < 0) // [r1, r2] is the range of index1 with length m + else if (i1 > static_cast(std::numeric_limits::max())) { + // Sentinel case: i1 = (size_t)(-1) means a range of index1 (k-points) + // For PAGED_GPU, this is not supported since GPU buffer is single-k + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + ModuleBase::WARNING_QUIT("Psi::to_range", + "In PAGED_GPU mode, multi-k-point range is not supported"); + } const T* p = &this->psi[r1 * (k_first ? this->nbands : this->nk) * this->nbasis]; - int m = (r2 - r1 + 1) * this->get_npol(); + int m = static_cast(r2 - r1 + 1) * this->get_npol(); return std::tuple(p, m); } - else // [r1, r2] is the range of index2 with length m + else // [r1, r2] is the range of band index for a specific k-point { - const T* p = &this->psi[(i1 * (k_first ? this->nbands : this->nk) + r1) * this->nbasis]; - int m = (r2 - r1 + 1) * this->get_npol(); - return std::tuple(p, m); + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + if (k_first && static_cast(i1) != current_k) + { + ModuleBase::WARNING_QUIT("Psi::to_range", + "In PAGED_GPU mode, requested k-point must match current_k"); + } + const T* p = &this->psi[static_cast(r1) * static_cast(this->nbasis)]; + int m = static_cast(r2 - r1 + 1) * this->get_npol(); + return std::tuple(p, m); + } + else + { + const T* p = &this->psi[(i1 * (k_first ? this->nbands : this->nk) + r1) * this->nbasis]; + int m = static_cast(r2 - r1 + 1) * this->get_npol(); + return std::tuple(p, m); + } } } diff --git a/source/source_psi/psi.h b/source/source_psi/psi.h index 1aed4f46f6..24fa03d528 100644 --- a/source/source_psi/psi.h +++ b/source/source_psi/psi.h @@ -10,6 +10,13 @@ namespace psi { +enum class PsiStorageMode +{ + ALL_GPU, + ALL_CPU, + PAGED_GPU +}; + // structure for getting range of Psi // two display method: k index first or bands index first struct Range @@ -78,7 +85,7 @@ class Psi Psi& operator=(const Psi& psi_in); // allocate psi for three dimensions - void resize(const int nks_in, const int nbands_in, const int nbasis_in); + void resize(const int nks_in, const int nbands_in, const int nbasis_in, const bool skip_psi_cpu_alloc = false); // get the pointer for the 1st index T* get_pointer() const; @@ -139,6 +146,20 @@ class Psi int get_npol() const; + void set_storage_mode(PsiStorageMode mode); + PsiStorageMode get_storage_mode() const { return storage_mode_; } + + void load_k_to_gpu(int ik); + void store_k_from_gpu(int ik); + void ensure_k_on_gpu(int ik); + + void set_psi_cpu_external(T* ext_cpu_buf); + + int get_current_k_gpu() const { return current_k_gpu_; } + T* get_cpu_pointer(int ik = 0); + const T* get_cpu_pointer(int ik = 0) const; + const T* get_cpu_pointer_safe(int ik = 0) const; + private: T* psi = nullptr; // avoid using C++ STL @@ -164,6 +185,18 @@ class Psi bool allocate_inside = true; ///< whether allocate psi inside Psi class + PsiStorageMode storage_mode_ = PsiStorageMode::ALL_GPU; + T* psi_cpu_ = nullptr; + bool psi_cpu_owned_ = true; + T* psi_gpu_buffer_ = nullptr; + T* psi_gpu_transfer_buffer_ = nullptr; + int current_k_gpu_ = -1; + +#if defined(__CUDA) || defined(__ROCM) + void* compute_stream_ = nullptr; + void* transfer_stream_ = nullptr; +#endif + #ifdef __DSP using delete_memory_op = base_device::memory::delete_memory_op_mt; using resize_memory_op = base_device::memory::resize_memory_op_mt; diff --git a/source/source_psi/psi_paging.cpp b/source/source_psi/psi_paging.cpp new file mode 100644 index 0000000000..cbc1711197 --- /dev/null +++ b/source/source_psi/psi_paging.cpp @@ -0,0 +1,233 @@ +#include "psi.h" +#include "source_base/tool_quit.h" + +#include +#include + +namespace psi +{ + +namespace detail +{ +template +struct PagingTransfer +{ + static void load(T* dst, const T* src, size_t size); + static void store(T* dst, const T* src, size_t size); +}; + +template +struct PagingTransfer +{ + static void load(T* dst, const T* src, size_t size) + { + std::memcpy(dst, src, sizeof(T) * size); + } + static void store(T* dst, const T* src, size_t size) + { + std::memcpy(dst, src, sizeof(T) * size); + } +}; + +#if defined(__CUDA) || defined(__ROCM) +template +struct PagingTransfer +{ + static void load(T* dst, const T* src, size_t size) + { + base_device::memory::synchronize_memory_op()(dst, src, size); + } + static void store(T* dst, const T* src, size_t size) + { + base_device::memory::synchronize_memory_op()(dst, src, size); + } +}; +#endif +} + +template +void Psi::set_storage_mode(PsiStorageMode mode) +{ + if (mode == storage_mode_) + { + return; + } + + if (this->psi != nullptr) + { + if ((storage_mode_ == PsiStorageMode::ALL_GPU && mode == PsiStorageMode::PAGED_GPU) + || (storage_mode_ == PsiStorageMode::PAGED_GPU && mode == PsiStorageMode::ALL_GPU)) + { + ModuleBase::WARNING("Psi::set_storage_mode", + "Setting storage mode flag on already-allocated Psi for copy construction propagation."); + } + else + { + ModuleBase::WARNING_QUIT("Psi::set_storage_mode", + "Cannot change storage mode after allocation"); + } + } + + storage_mode_ = mode; +} + +template +T* Psi::get_cpu_pointer(int ik) +{ + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + if (ik < 0 || ik >= this->nk) + { + ModuleBase::WARNING_QUIT("Psi::get_cpu_pointer", "Invalid k-point index"); + } + if (psi_cpu_ == nullptr) + { + ModuleBase::WARNING_QUIT("Psi::get_cpu_pointer", + "CPU buffer not allocated in PAGED_GPU mode"); + } + return psi_cpu_ + static_cast(ik) * this->nbands * this->nbasis; + } + else + { + return this->psi + static_cast(ik) * this->nbands * this->nbasis; + } +} + +template +const T* Psi::get_cpu_pointer(int ik) const +{ + if (storage_mode_ == PsiStorageMode::PAGED_GPU) + { + if (ik < 0 || ik >= this->nk) + { + ModuleBase::WARNING_QUIT("Psi::get_cpu_pointer", "Invalid k-point index"); + } + if (psi_cpu_ == nullptr) + { + ModuleBase::WARNING_QUIT("Psi::get_cpu_pointer", + "CPU buffer not allocated in PAGED_GPU mode"); + } + return psi_cpu_ + static_cast(ik) * this->nbands * this->nbasis; + } + else + { + return this->psi + static_cast(ik) * this->nbands * this->nbasis; + } +} + +template +const T* Psi::get_cpu_pointer_safe(int ik) const +{ + if (storage_mode_ == PsiStorageMode::PAGED_GPU && psi_cpu_ != nullptr) + { + if (ik < 0 || ik >= this->nk) return nullptr; + return psi_cpu_ + static_cast(ik) * this->nbands * this->nbasis; + } + return nullptr; +} + +template +void Psi::load_k_to_gpu(int ik) +{ + if (storage_mode_ != PsiStorageMode::PAGED_GPU) + { + return; + } + + if (ik < 0 || ik >= this->nk) + { + ModuleBase::WARNING_QUIT("Psi::load_k_to_gpu", "Invalid k-point index"); + } + + if (psi_cpu_ == nullptr) + { + ModuleBase::WARNING_QUIT("Psi::load_k_to_gpu", "CPU buffer not allocated"); + } + + const size_t k_size = static_cast(this->nbands) * this->nbasis; + const T* src = psi_cpu_ + static_cast(ik) * this->nbands * this->nbasis; + + detail::PagingTransfer::load(this->psi, src, k_size); + + current_k_gpu_ = ik; + this->psi_current = this->psi; +} + +template +void Psi::store_k_from_gpu(int ik) +{ + if (storage_mode_ != PsiStorageMode::PAGED_GPU) + { + return; + } + + if (ik < 0 || ik >= this->nk) + { + ModuleBase::WARNING_QUIT("Psi::store_k_from_gpu", "Invalid k-point index"); + } + + if (psi_cpu_ == nullptr) + { + ModuleBase::WARNING_QUIT("Psi::store_k_from_gpu", "CPU buffer not allocated"); + } + + const size_t k_size = static_cast(this->nbands) * this->nbasis; + T* dst = psi_cpu_ + static_cast(ik) * this->nbands * this->nbasis; + + detail::PagingTransfer::store(dst, this->psi, k_size); +} + +template +void Psi::ensure_k_on_gpu(int ik) +{ + if (storage_mode_ != PsiStorageMode::PAGED_GPU) + { + return; + } + + if (current_k_gpu_ != ik) + { + load_k_to_gpu(ik); + } +} + +template +void Psi::set_psi_cpu_external(T* ext_cpu_buf) +{ + if (storage_mode_ != PsiStorageMode::PAGED_GPU) + { + ModuleBase::WARNING_QUIT("Psi::set_psi_cpu_external", + "Only valid in PAGED_GPU mode"); + } + if (psi_cpu_ != nullptr && psi_cpu_owned_) + { + delete[] psi_cpu_; + } + psi_cpu_ = ext_cpu_buf; + psi_cpu_owned_ = false; +} + +#define INSTANTIATE_PAGING_METHODS(T, Device) \ + template void Psi::set_storage_mode(PsiStorageMode); \ + template T* Psi::get_cpu_pointer(int); \ + template const T* Psi::get_cpu_pointer(int) const; \ + template const T* Psi::get_cpu_pointer_safe(int) const; \ + template void Psi::load_k_to_gpu(int); \ + template void Psi::store_k_from_gpu(int); \ + template void Psi::ensure_k_on_gpu(int); \ + template void Psi::set_psi_cpu_external(T*); + +INSTANTIATE_PAGING_METHODS(float, base_device::DEVICE_CPU) +INSTANTIATE_PAGING_METHODS(std::complex, base_device::DEVICE_CPU) +INSTANTIATE_PAGING_METHODS(double, base_device::DEVICE_CPU) +INSTANTIATE_PAGING_METHODS(std::complex, base_device::DEVICE_CPU) +#if ((defined __CUDA) || (defined __ROCM)) +INSTANTIATE_PAGING_METHODS(float, base_device::DEVICE_GPU) +INSTANTIATE_PAGING_METHODS(std::complex, base_device::DEVICE_GPU) +INSTANTIATE_PAGING_METHODS(double, base_device::DEVICE_GPU) +INSTANTIATE_PAGING_METHODS(std::complex, base_device::DEVICE_GPU) +#endif + +#undef INSTANTIATE_PAGING_METHODS + +} // namespace psi diff --git a/source/source_psi/psi_prepare.cpp b/source/source_psi/psi_prepare.cpp index adc10eeb3f..495c6ee065 100644 --- a/source/source_psi/psi_prepare.cpp +++ b/source/source_psi/psi_prepare.cpp @@ -176,7 +176,16 @@ void PSIPrepare::initialize_psi(Psi>* psi, this->psi_initer->init_psig(psi_cpu->get_pointer(), ik); if (psi_device->get_pointer() != psi_cpu->get_pointer()) { - syncmem_h2d_op()(psi_device->get_pointer(), psi_cpu->get_pointer(), nbands_start * nbasis); + if (kspw_psi->get_storage_mode() == psi::PsiStorageMode::PAGED_GPU) + { + T* dst_cpu = kspw_psi->get_cpu_pointer(ik); + std::memcpy(dst_cpu, psi_cpu->get_pointer(), sizeof(T) * nbands_l * nbasis); + kspw_psi->load_k_to_gpu(ik); + } + else + { + syncmem_h2d_op()(psi_device->get_pointer(), psi_cpu->get_pointer(), nbands_start * nbasis); + } } @@ -208,7 +217,13 @@ void PSIPrepare::initialize_psi(Psi>* psi, { if (psi_device->get_pointer() != kspw_psi->get_pointer()) { - syncmem_complex_op()(kspw_psi->get_pointer(), psi_device->get_pointer(), nbands_l * nbasis); + if (kspw_psi->get_storage_mode() == psi::PsiStorageMode::PAGED_GPU) + { + } + else + { + syncmem_complex_op()(kspw_psi->get_pointer(), psi_device->get_pointer(), nbands_l * nbasis); + } } } } diff --git a/source/source_psi/setup_psi_pw.cpp b/source/source_psi/setup_psi_pw.cpp index f5bc240292..a3a89ab23f 100644 --- a/source/source_psi/setup_psi_pw.cpp +++ b/source/source_psi/setup_psi_pw.cpp @@ -40,7 +40,33 @@ void Setup_Psi_pw::before_runner_impl( } if (inp.device == "gpu" || inp.precision == "single") { + const int nks = kv.get_nks(); + psi::PsiStorageMode target_mode = psi::PsiStorageMode::ALL_GPU; + if (inp.device_memory_mode == "paged") + { + target_mode = psi::PsiStorageMode::PAGED_GPU; + } + else if (inp.device_memory_mode == "full_gpu") + { + target_mode = psi::PsiStorageMode::ALL_GPU; + } + else if (nks > 10) + { + target_mode = psi::PsiStorageMode::PAGED_GPU; + } + if (target_mode != psi::PsiStorageMode::ALL_GPU) + { + this->psi_cpu->set_storage_mode(target_mode); + } + const char* mode_str = (target_mode == psi::PsiStorageMode::PAGED_GPU) ? "PAGED_GPU" : "ALL_GPU"; + GlobalV::ofs_running << " GPU memory mode for Psi: " << mode_str + << " (nks=" << nks << ", device_memory_mode=\"" + << inp.device_memory_mode << "\")" << std::endl; this->psi_t = static_cast(new psi::Psi(this->psi_cpu[0])); + if (target_mode != psi::PsiStorageMode::ALL_GPU) + { + this->psi_cpu->set_storage_mode(psi::PsiStorageMode::ALL_GPU); + } } else { this->psi_t = static_cast(reinterpret_cast*>(this->psi_cpu)); } @@ -178,9 +204,19 @@ template void Setup_Psi_pw::copy_d2h_impl() { auto* psi_t = this->get_psi_t(); - this->castmem_d2h_impl(this->psi_cpu[0].get_pointer() - this->psi_cpu[0].get_psi_bias(), - psi_t->get_pointer() - psi_t->get_psi_bias(), - this->psi_cpu[0].size()); + if (psi_t->get_storage_mode() == psi::PsiStorageMode::PAGED_GPU) + { + // PAGED_GPU: full data is on CPU in psi_cpu_, just memcpy + const size_t total_size = sizeof(T) * psi_t->get_nk() * psi_t->get_nbands() * psi_t->get_nbasis(); + std::memcpy(this->psi_cpu[0].get_pointer() - this->psi_cpu[0].get_psi_bias(), + psi_t->get_cpu_pointer(), total_size); + } + else + { + this->castmem_d2h_impl(this->psi_cpu[0].get_pointer() - this->psi_cpu[0].get_psi_bias(), + psi_t->get_pointer() - psi_t->get_psi_bias(), + this->psi_cpu[0].size()); + } } void Setup_Psi_pw::copy_d2h() diff --git a/source/source_psi/test/CMakeLists.txt b/source/source_psi/test/CMakeLists.txt index 63af5799e1..bd2ac26f49 100644 --- a/source/source_psi/test/CMakeLists.txt +++ b/source/source_psi/test/CMakeLists.txt @@ -4,6 +4,7 @@ AddTest( SOURCES psi_test.cpp ../psi.cpp + ../psi_paging.cpp ) if(ENABLE_LCAO) diff --git a/source/source_pw/module_pwdft/deltaspin_pw.cpp b/source/source_pw/module_pwdft/deltaspin_pw.cpp index 34bd515614..66d264c8f0 100644 --- a/source/source_pw/module_pwdft/deltaspin_pw.cpp +++ b/source/source_pw/module_pwdft/deltaspin_pw.cpp @@ -10,43 +10,60 @@ bool run_deltaspin_lambda_loop(const int iter, const double drho, const Input_para& inp) { - /// Return false if DeltaSpin is not enabled if (!inp.sc_mag_switch) { return false; } - /// Get the singleton instance of SpinConstrain spinconstrain::SpinConstrain>& sc = spinconstrain::SpinConstrain>::getScInstance(); - /// Case 0: linear_scan strategy - sweep lambda values for energy landscape mapping - /// This is a diagnostic/debugging mode that does NOT optimize lambda, - /// only records Mi vs lambda to lambda_scan_results.dat. if (inp.sc_lambda_strategy == "linear_scan") { + sc.set_drho(drho); sc.run_lambda_linear_scan(iter); return true; } - /// Case 1: Magnetic moments not yet converged and SCF is close to convergence. - /// This is the first time we enter the lambda loop after SCF is nearly converged. + if (inp.sc_scf_thr_mode == "immediate") + { + // "immediate" mode: activate lambda loop from second SCF iteration. + // First iteration (iter=0) is skipped because initial wavefunctions + // are not available to compute initial magnetic moments. + if (iter >= 1) + { + sc.set_drho(drho); + sc.run_lambda_loop(iter - 1); + if (!sc.mag_converged()) { sc.set_mag_converged(true); } + return true; + } + return false; + } + + if (inp.sc_scf_thr_mode == "off") + { + // "off" mode: never activate the lambda loop. + // Lambda values are loaded from STRU and used as constant constraints. + // Replaces the old convention of setting sc_scf_thr=1e-10. + return false; + } + + // "threshold" mode: activate when drho < sc_scf_thr + // drho > 0 excludes iterations where drho has not been computed. if (!sc.mag_converged() && drho > 0 && drho < inp.sc_scf_thr) { - /// Optimize lambda to get target magnetic moments + sc.set_drho(drho); sc.run_lambda_loop(iter - 1); sc.set_mag_converged(true); return true; } - /// Case 2: Magnetic moments already converged in previous iteration. - /// Re-run the lambda loop to update psi and charge density with current lambda. else if (sc.mag_converged()) { + sc.set_drho(drho); sc.run_lambda_loop(iter - 1); return true; } - /// Default: run the normal solver return false; } diff --git a/source/source_pw/module_pwdft/forces.cpp b/source/source_pw/module_pwdft/forces.cpp index 386785cf9c..2af51a4b20 100644 --- a/source/source_pw/module_pwdft/forces.cpp +++ b/source/source_pw/module_pwdft/forces.cpp @@ -53,6 +53,7 @@ void Forces::cal_force(UnitCell& ucell, ModuleBase::matrix forcecc(nat, 3); ModuleBase::matrix forcenl(nat, 3); ModuleBase::matrix forcescc(nat, 3); + ModuleBase::matrix forcepaw(nat, 3); ModuleBase::matrix forceonsite(nat, 3); // Force due to local ionic potential diff --git a/source/source_pw/module_pwdft/forces_nl.cpp b/source/source_pw/module_pwdft/forces_nl.cpp index 599121591c..bb5bfda18b 100644 --- a/source/source_pw/module_pwdft/forces_nl.cpp +++ b/source/source_pw/module_pwdft/forces_nl.cpp @@ -37,6 +37,9 @@ void Forces::cal_force_nl(ModuleBase::matrix& forcenl, const int max_nbands = wg.nc; for (int ik = 0; ik < nks; ik++) // loop k points { + // Ensure k-point is loaded to GPU for PAGED_GPU mode + const_cast, Device>*>(psi_in)->ensure_k_on_gpu(ik); + // skip zero weights to speed up int nbands_occ = wg.nc; while (wg(ik, nbands_occ - 1) == 0.0) diff --git a/source/source_pw/module_pwdft/forces_onsite.cpp b/source/source_pw/module_pwdft/forces_onsite.cpp index 255d33f943..71a480ac2b 100644 --- a/source/source_pw/module_pwdft/forces_onsite.cpp +++ b/source/source_pw/module_pwdft/forces_onsite.cpp @@ -32,6 +32,11 @@ void Forces::cal_force_onsite(ModuleBase::matrix& force_onsite, const int nks = wfc_basis->nks; for (int ik = 0; ik < nks; ik++) { + // In PAGED_GPU mode only one k-point resides on the GPU; make sure the + // wavefunction of this k-point is loaded before the onsite projector + // reads psi_ (otherwise psi_(ik,0,0) returns a host pointer that the + // GPU gemm would dereference as a device pointer -> illegal access). + const_cast, Device>*>(psi_in)->ensure_k_on_gpu(ik); int nbands_occ = wg.nc; while (wg(ik, nbands_occ - 1) == 0.0) { diff --git a/source/source_pw/module_pwdft/kernels/cuda/force_op.cu b/source/source_pw/module_pwdft/kernels/cuda/force_op.cu index cdcd477e82..5c12938725 100644 --- a/source/source_pw/module_pwdft/kernels/cuda/force_op.cu +++ b/source/source_pw/module_pwdft/kernels/cuda/force_op.cu @@ -470,23 +470,23 @@ __global__ void cal_force_onsite(int wg_nc, // kernel for DFTU force template void cal_force_nl_op::operator()(const base_device::DEVICE_GPU* ctx, - const int& nbands_occ, - const int& wg_nc, - const int& ntype, - const int& forcenl_nc, - const int& nbands, - const int& ik, - const int& nkb, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE& tpiba, - const FPTYPE* d_wg, - const std::complex* vu, - const int* orbital_corr, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* force) + const int& nbands_occ, + const int& wg_nc, + const int& ntype, + const int& forcenl_nc, + const int& nbands, + const int& ik, + const int& nkb, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE& tpiba, + const FPTYPE* d_wg, + const std::complex* vu, + const int* orbital_corr, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* force) { if (npol == 1) { @@ -532,23 +532,23 @@ void cal_force_nl_op::operator()(const base_dev // kernel for DeltaSpin force template void cal_force_nl_op::operator()(const base_device::DEVICE_GPU* ctx, - const int& nbands_occ, - const int& wg_nc, - const int& ntype, - const int& forcenl_nc, - const int& nbands, - const int& ik, - const int& nkb, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE& tpiba, - const FPTYPE* d_wg, - const FPTYPE* lambda, - const int* isk, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* force) + const int& nbands_occ, + const int& wg_nc, + const int& ntype, + const int& forcenl_nc, + const int& nbands, + const int& ik, + const int& nkb, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE& tpiba, + const FPTYPE* d_wg, + const FPTYPE* lambda, + const int* isk, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* force) { int spin_sign = 1; if (isk != nullptr && npol == 1) diff --git a/source/source_pw/module_pwdft/kernels/force_op.cpp b/source/source_pw/module_pwdft/kernels/force_op.cpp index 35483375c9..79eb5d909a 100644 --- a/source/source_pw/module_pwdft/kernels/force_op.cpp +++ b/source/source_pw/module_pwdft/kernels/force_op.cpp @@ -378,24 +378,24 @@ struct cal_force_nl_op } // end it }; - void operator()(const base_device::DEVICE_CPU* ctx, - const int& nbands_occ, - const int& wg_nc, - const int& ntype, - const int& forcenl_nc, - const int& nbands, - const int& ik, - const int& nkb, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE& tpiba, - const FPTYPE* d_wg, - const FPTYPE* lambda, - const int* isk, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* force) + void operator()(const base_device::DEVICE_CPU* ctx, + const int& nbands_occ, + const int& wg_nc, + const int& ntype, + const int& forcenl_nc, + const int& nbands, + const int& ik, + const int& nkb, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE& tpiba, + const FPTYPE* d_wg, + const FPTYPE* lambda, + const int* isk, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* force) { int iat0 = 0; int sum0 = 0; @@ -408,8 +408,8 @@ struct cal_force_nl_op int sum = sum0 + ia * nproj; const std::complex coefficients0(lambda[iat*3+2], 0.0); const std::complex coefficients1(lambda[iat*3] , lambda[iat*3+1]); - const std::complex coefficients2(lambda[iat*3] , -1 * lambda[iat*3+1]); - const std::complex coefficients3(-1 * lambda[iat*3+2], 0.0); + const std::complex coefficients2(lambda[iat*3] , -lambda[iat*3+1]); + const std::complex coefficients3(-lambda[iat*3+2], 0.0); for (int ib = 0; ib < nbands_occ; ib++) { FPTYPE local_force[3] = {0, 0, 0}; @@ -434,13 +434,8 @@ struct cal_force_nl_op } } // ip } - else if (npol == 1) - { - int spin_sign = 1; - if (isk != nullptr && isk[ik] == 1) { - spin_sign = -1; - } - for (int ip = 0; ip < nproj; ip++) + else if (npol == 1) + { for (int ip = 0; ip < nproj; ip++) { const int inkb = sum + ip; @@ -450,7 +445,7 @@ struct cal_force_nl_op const int index0 = ipol * nbands * nkb + ib * nkb + inkb; const int index1 = ib * nkb + inkb; const FPTYPE dbb = (conj(dbecp[index0]) * becp[index1]).real(); - local_force[ipol] -= fac * lambda[iat*3+2] * spin_sign * dbb; + local_force[ipol] -= fac * lambda[iat*3+2] * dbb; } } // ip } diff --git a/source/source_pw/module_pwdft/kernels/force_op.h b/source/source_pw/module_pwdft/kernels/force_op.h index b97c6688a6..558a85dd66 100644 --- a/source/source_pw/module_pwdft/kernels/force_op.h +++ b/source/source_pw/module_pwdft/kernels/force_op.h @@ -1,5 +1,6 @@ #ifndef W_ABACUS_DEVELOP_ABACUS_DEVELOP_SOURCE_source_pw_HAMILT_PWDFT_KERNELS_FORCE_OP_H #define W_ABACUS_DEVELOP_ABACUS_DEVELOP_SOURCE_source_pw_HAMILT_PWDFT_KERNELS_FORCE_OP_H +#include "source_io/module_parameter/parameter.h" #include "source_psi/psi.h" @@ -130,25 +131,25 @@ struct cal_force_nl_op const std::complex* becp, const std::complex* dbecp, FPTYPE* force); - /// kernel for DeltaSpin - void operator()(const base_device::DEVICE_CPU* ctx, - const int& nbands_occ, - const int& wg_nc, - const int& ntype, - const int& forcenl_nc, - const int& nbands, - const int& ik, - const int& nkb, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE& tpiba, - const FPTYPE* d_wg, - const FPTYPE* lambda, - const int* isk, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* force); + /// kernel for DeltaSpin + void operator()(const base_device::DEVICE_CPU* ctx, + const int& nbands_occ, + const int& wg_nc, + const int& ntype, + const int& forcenl_nc, + const int& nbands, + const int& ik, + const int& nkb, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE& tpiba, + const FPTYPE* d_wg, + const FPTYPE* lambda, + const int* isk, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* force); }; template @@ -262,25 +263,25 @@ struct cal_force_nl_op const std::complex* becp, const std::complex* dbecp, FPTYPE* force); - /// kernel for DeltaSpin - void operator()(const base_device::DEVICE_GPU* ctx, - const int& nbands_occ, - const int& wg_nc, - const int& ntype, - const int& forcenl_nc, - const int& nbands, - const int& ik, - const int& nkb, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE& tpiba, - const FPTYPE* d_wg, - const FPTYPE* lambda, - const int* isk, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* force); + /// kernel for DeltaSpin + void operator()(const base_device::DEVICE_GPU* ctx, + const int& nbands_occ, + const int& wg_nc, + const int& ntype, + const int& forcenl_nc, + const int& nbands, + const int& ik, + const int& nkb, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE& tpiba, + const FPTYPE* d_wg, + const FPTYPE* lambda, + const int* isk, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* force); }; /** diff --git a/source/source_pw/module_pwdft/kernels/stress_op.cpp b/source/source_pw/module_pwdft/kernels/stress_op.cpp index 09e04f8eac..858b089475 100644 --- a/source/source_pw/module_pwdft/kernels/stress_op.cpp +++ b/source/source_pw/module_pwdft/kernels/stress_op.cpp @@ -331,22 +331,22 @@ struct cal_stress_nl_op } // end it *stress += local_stress; }; - // kernel for DeltaSpin - void operator()(const base_device::DEVICE_CPU* ctx, - const int& nkb, - const int& nbands_occ, - const int& ntype, - const int& wg_nc, - const int& ik, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE* d_wg, - const FPTYPE* lambda, - const int* isk, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* stress) + // kernel for DeltaSpin + void operator()(const base_device::DEVICE_CPU* ctx, + const int& nkb, + const int& nbands_occ, + const int& ntype, + const int& wg_nc, + const int& ik, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE* d_wg, + const FPTYPE* lambda, + const int* isk, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* stress) { FPTYPE local_stress = 0; int iat0 = 0, sum = 0; diff --git a/source/source_pw/module_pwdft/kernels/stress_op.h b/source/source_pw/module_pwdft/kernels/stress_op.h index d107431e3d..947cc6b305 100644 --- a/source/source_pw/module_pwdft/kernels/stress_op.h +++ b/source/source_pw/module_pwdft/kernels/stress_op.h @@ -1,5 +1,6 @@ #ifndef SRC_PW_STRESS_MULTI_DEVICE_H #define SRC_PW_STRESS_MULTI_DEVICE_H +#include "source_io/module_parameter/parameter.h" #include "source_psi/psi.h" @@ -137,22 +138,22 @@ struct cal_stress_nl_op const std::complex* becp, const std::complex* dbecp, FPTYPE* stress); - // kernel for DeltaSpin - void operator()(const base_device::DEVICE_CPU* ctx, - const int& nkb, - const int& nbands_occ, - const int& ntype, - const int& wg_nc, - const int& ik, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE* d_wg, - const double* lambda, - const int* isk, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* stress); + // kernel for DeltaSpin + void operator()(const base_device::DEVICE_CPU* ctx, + const int& nkb, + const int& nbands_occ, + const int& ntype, + const int& wg_nc, + const int& ik, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE* d_wg, + const double* lambda, + const int* isk, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* stress); }; template @@ -345,22 +346,22 @@ struct cal_stress_nl_op const std::complex* becp, const std::complex* dbecp, FPTYPE* stress); - // kernel for DeltaSpin - void operator()(const base_device::DEVICE_GPU* ctx, - const int& nkb, - const int& nbands_occ, - const int& ntype, - const int& wg_nc, - const int& ik, - const int& npol, - const int* atom_nh, - const int* atom_na, - const FPTYPE* d_wg, - const double* lambda, - const int* isk, - const std::complex* becp, - const std::complex* dbecp, - FPTYPE* stress); + // kernel for DeltaSpin + void operator()(const base_device::DEVICE_GPU* ctx, + const int& nkb, + const int& nbands_occ, + const int& ntype, + const int& wg_nc, + const int& ik, + const int& npol, + const int* atom_nh, + const int* atom_na, + const FPTYPE* d_wg, + const double* lambda, + const int* isk, + const std::complex* becp, + const std::complex* dbecp, + FPTYPE* stress); }; // cpu version first, gpu version later diff --git a/source/source_pw/module_pwdft/onsite_proj.cpp b/source/source_pw/module_pwdft/onsite_proj.cpp index d4af4a7c2f..51d4e08159 100644 --- a/source/source_pw/module_pwdft/onsite_proj.cpp +++ b/source/source_pw/module_pwdft/onsite_proj.cpp @@ -291,6 +291,7 @@ void projectors::OnsiteProjector::tabulate_atomic(const int ik, const // CACHE 1 - if cache the tab_, can be reused for SCF and RELAX calculation // [in] pw_basis, ik, omega, tpiba, irow2it this->ik_ = ik; + this->becp_ready_ = false; this->npw_ = pw_basis_->npwk[ik]; this->npwx_ = pw_basis_->npwk_max; // std::vector> q(this->npw_); @@ -408,6 +409,8 @@ void projectors::OnsiteProjector::overlap_proj_psi( { syncmem_complex_d2h_op()(h_becp, this->becp, this->size_becp); } + this->becp_ready_ = true; + this->ik_becp_ = this->ik_; ModuleBase::timer::end("OnsiteProj", "overlap"); } @@ -539,6 +542,7 @@ void projectors::OnsiteProjector::cal_occupations( const int nbands = psi_in->get_nbands(); for(int ik = 0; ik < psi_in->get_nk(); ik++) { + const_cast, Device>*>(psi_in)->ensure_k_on_gpu(ik); psi_in->fix_k(ik); if(ik != 0) { diff --git a/source/source_pw/module_pwdft/onsite_proj.h b/source/source_pw/module_pwdft/onsite_proj.h index 1f6ca21ab2..fdb83355ac 100644 --- a/source/source_pw/module_pwdft/onsite_proj.h +++ b/source/source_pw/module_pwdft/onsite_proj.h @@ -86,6 +86,9 @@ namespace projectors int get_npwx() const { return npwx_; } const int& get_nh(int iat) const { return iat_nh[iat]; } + bool is_becp_ready(int ik) const { return becp_ready_ && ik_becp_ == ik; } + void invalidate_becp() { becp_ready_ = false; } + hamilt::Onsite_Proj_tools* get_fs_tools() const { return fs_tools; } /// high-level: compute DFT+U force contribution for one k-point @@ -130,6 +133,8 @@ namespace projectors int npw_ = 0; int npwx_ = 0; int ik_ = 0; + bool becp_ready_ = false; + int ik_becp_ = -1; std::vector> it2ia; std::vector rgrid; std::vector> projs; diff --git a/source/source_pw/module_pwdft/onsite_proj_tools.cpp b/source/source_pw/module_pwdft/onsite_proj_tools.cpp index 4239d8fa9e..3843835598 100644 --- a/source/source_pw/module_pwdft/onsite_proj_tools.cpp +++ b/source/source_pw/module_pwdft/onsite_proj_tools.cpp @@ -891,23 +891,23 @@ void Onsite_Proj_tools::cal_force_dspin(int ik, const int force_nc = 3; const int npol = this->ucell_->get_npol(); cal_force_nl_op()(this->ctx, - npm, - this->nbands, - this->ntype, - force_nc, - this->nbands, - ik, - nkb, - npol, - atom_nh, - atom_na, - this->ucell_->tpiba, - d_wg, - lambda_tmp, - this->kv_ ? this->kv_->isk.data() : nullptr, - becp, - dbecp, - force); + npm, + this->nbands, + this->ntype, + force_nc, + this->nbands, + ik, + nkb, + npol, + atom_nh, + atom_na, + this->ucell_->tpiba, + d_wg, + lambda_tmp, + this->kv_ ? this->kv_->isk.data() : nullptr, + becp, + dbecp, + force); #if defined(__CUDA) || defined(__ROCM) if (this->device == base_device::GpuDevice) diff --git a/source/source_pw/module_pwdft/op_pw_nl.cpp b/source/source_pw/module_pwdft/op_pw_nl.cpp index d3551808ea..5c0e6d0483 100644 --- a/source/source_pw/module_pwdft/op_pw_nl.cpp +++ b/source/source_pw/module_pwdft/op_pw_nl.cpp @@ -1,5 +1,7 @@ #include "op_pw_nl.h" +#include + #include "source_io/module_parameter/parameter.h" #include "source_base/timer.h" #include "source_base/parallel_reduce.h" @@ -34,6 +36,7 @@ template Nonlocal>::~Nonlocal() { delmem_complex_op()(this->ps); delmem_complex_op()(this->becp); + delmem_complex_h_op()(this->becp_h); } template @@ -285,7 +288,25 @@ void Nonlocal>::act( ); } - Parallel_Reduce::reduce_pool(becp, nkb * nbands); + // Copy becp from GPU to CPU for MPI reduction (only needed for GPU) + if constexpr (std::is_same::value) + { + if (this->nkb_m_h < nkb * nbands) + { + resmem_complex_h_op()(this->becp_h, nkb * nbands, "Nonlocal::becp_h"); + this->nkb_m_h = nkb * nbands; + } + syncmem_complex_d2h_op()(this->becp_h, this->becp, nkb * nbands); + + Parallel_Reduce::reduce_pool(becp_h, nkb * nbands); + + // Copy back to GPU + syncmem_complex_h2d_op()(this->becp, this->becp_h, nkb * nbands); + } + else + { + Parallel_Reduce::reduce_pool(becp, nkb * nbands); + } this->add_nonlocal_pp(tmhpsi, becp, nbands); } diff --git a/source/source_pw/module_pwdft/op_pw_nl.h b/source/source_pw/module_pwdft/op_pw_nl.h index dcdbf889a8..3ef3e4eb0c 100644 --- a/source/source_pw/module_pwdft/op_pw_nl.h +++ b/source/source_pw/module_pwdft/op_pw_nl.h @@ -98,9 +98,15 @@ class Nonlocal> : public OperatorPW using delmem_complex_op = base_device::memory::delete_memory_op; #endif using syncmem_complex_h2d_op = base_device::memory::synchronize_memory_op; + using syncmem_complex_d2h_op = base_device::memory::synchronize_memory_op; + using resmem_complex_h_op = base_device::memory::resize_memory_op; + using delmem_complex_h_op = base_device::memory::delete_memory_op; T one{1, 0}; T zero{0, 0}; + + mutable T *becp_h = nullptr; + mutable size_t nkb_m_h = 0; }; } // namespace hamilt diff --git a/source/source_pw/module_pwdft/op_pw_proj.cpp b/source/source_pw/module_pwdft/op_pw_proj.cpp index 5294a2b7de..d39d02adc8 100644 --- a/source/source_pw/module_pwdft/op_pw_proj.cpp +++ b/source/source_pw/module_pwdft/op_pw_proj.cpp @@ -164,8 +164,8 @@ void OnsiteProj>::cal_ps_delta_spin(const int npol, const { tmp_lambda_coeff[iat * 4] = std::complex(lambda[iat][2], 0.0); tmp_lambda_coeff[iat * 4 + 1] = std::complex(lambda[iat][0], lambda[iat][1]); - tmp_lambda_coeff[iat * 4 + 2] = std::complex(lambda[iat][0], -1 * lambda[iat][1]); - tmp_lambda_coeff[iat * 4 + 3] = std::complex(-1 * lambda[iat][2], 0.0); + tmp_lambda_coeff[iat * 4 + 2] = std::complex(lambda[iat][0], -lambda[iat][1]); + tmp_lambda_coeff[iat * 4 + 3] = std::complex(-lambda[iat][2], 0.0); } } syncmem_complex_h2d_op()(this->lambda_coeff, tmp_lambda_coeff.data(), this->ucell->nat * 4); diff --git a/source/source_pw/module_pwdft/setup_pot.cpp b/source/source_pw/module_pwdft/setup_pot.cpp index 46cc03e0a3..3499914198 100644 --- a/source/source_pw/module_pwdft/setup_pot.cpp +++ b/source/source_pw/module_pwdft/setup_pot.cpp @@ -99,6 +99,8 @@ void pw::setup_pot(const int istep, PARAM.inp.alpha_trial, PARAM.inp.sccut, PARAM.inp.sc_drop_thr, + PARAM.inp.sc_acceleration_mode, + PARAM.inp.sc_acceleration_rms_thr, ucell, PARAM.inp.sc_direction_only, nullptr, // parallel orbitals diff --git a/source/source_pw/module_pwdft/stress_kin.cpp b/source/source_pw/module_pwdft/stress_kin.cpp index ba30034d87..d1c003e064 100644 --- a/source/source_pw/module_pwdft/stress_kin.cpp +++ b/source/source_pw/module_pwdft/stress_kin.cpp @@ -18,9 +18,12 @@ void Stress_Func::stress_kin(ModuleBase::matrix& sigma, this->ucell = &ucell_in; - hamilt::FS_Kin_tools kin_tool(*this->ucell, p_kv, wfc_basis, wg); + hamilt::FS_Kin_tools kin_tool(*this->ucell, p_kv, wfc_basis, wg); for (int ik = 0; ik < wfc_basis->nks; ++ik) { + // Ensure k-point is loaded to GPU for PAGED_GPU mode + const_cast, Device>*>(psi_in)->ensure_k_on_gpu(ik); + int nbands_occ = wg.nc; while (wg(ik, nbands_occ - 1) == 0.0) { diff --git a/source/source_pw/module_pwdft/stress_nl.cpp b/source/source_pw/module_pwdft/stress_nl.cpp index 7b9b84925c..9cb6adea6b 100644 --- a/source/source_pw/module_pwdft/stress_nl.cpp +++ b/source/source_pw/module_pwdft/stress_nl.cpp @@ -39,6 +39,9 @@ void Stress_Func::stress_nl(ModuleBase::matrix& sigma, const int max_nbands = wg.nc; for (int ik = 0; ik < nks; ik++) // loop k points { + // Ensure k-point is loaded to GPU for PAGED_GPU mode + const_cast, Device>*>(psi_in)->ensure_k_on_gpu(ik); + // skip zero weights to speed up int nbands_occ = wg.nc; while (wg(ik, nbands_occ - 1) == 0.0) diff --git a/source/source_pw/module_pwdft/stress_onsite.cpp b/source/source_pw/module_pwdft/stress_onsite.cpp index 8223be49ef..93c60eb0c8 100644 --- a/source/source_pw/module_pwdft/stress_onsite.cpp +++ b/source/source_pw/module_pwdft/stress_onsite.cpp @@ -60,6 +60,12 @@ void Stress_Func::stress_onsite( // Loop over all k-points for (int ik = 0; ik < nks; ik++) { + // In PAGED_GPU mode only one k-point resides on the GPU; load this + // k-point's wavefunction before the onsite projector reads psi_ + // (otherwise psi_(ik,0,0) returns a host pointer used as a device + // pointer by the GPU gemm -> illegal memory access). + const_cast, Device>*>( + static_cast, Device>*>(psi_in))->ensure_k_on_gpu(ik); // Determine number of occupied bands (skip zero weights) int nbands_occ = wg.nc; diff --git a/tests/01_PW/BUG_SCF_DSPIN/INPUT b/tests/01_PW/BUG_SCF_DSPIN/INPUT index 94350f4eef..bce9b733a9 100644 --- a/tests/01_PW/BUG_SCF_DSPIN/INPUT +++ b/tests/01_PW/BUG_SCF_DSPIN/INPUT @@ -29,7 +29,6 @@ decay_grad_switch 1 # switch to control gradient break condition sc_thr 1e-7 # Convergence criterion of spin-constrained iteration (RMS) in uB nsc 150 # Maximal number of spin-constrained iteration nsc_min 2 # Minimum number of spin-constrained iteration -sc_scf_nmin 2 # Minimum number of outer scf loop before initializing lambda loop alpha_trial 0.01 # Initial trial step size for lambda in eV/uB^2 sccut 3 # Maximal step size for lambda in eV/uB sc_drop_thr 1.0e-2 # Convergence criterion ratio of lambda iteration in Spin-constrained DFT diff --git a/tests/03_NAO_multik/99_SCF_DPSIN/INPUT b/tests/03_NAO_multik/99_SCF_DPSIN/INPUT index 499059e1ff..c3a1a20aca 100644 --- a/tests/03_NAO_multik/99_SCF_DPSIN/INPUT +++ b/tests/03_NAO_multik/99_SCF_DPSIN/INPUT @@ -30,7 +30,6 @@ decay_grad_switch 1 # switch to control gradient break condition sc_thr 1e-7 # Convergence criterion of spin-constrained iteration (RMS) in uB nsc 150 # Maximal number of spin-constrained iteration nsc_min 2 # Minimum number of spin-constrained iteration -sc_scf_nmin 2 # Minimum number of outer scf loop before initializing lambda loop alpha_trial 0.01 # Initial trial step size for lambda in eV/uB^2 sccut 3 # Maximal step size for lambda in eV/uB sc_drop_thr 1.0e-2 # Convergence criterion ratio of lambda iteration in Spin-constrained DFT diff --git a/tests/17_DS_DFTU/12_PW_DS_S2_Z/INPUT b/tests/17_DS_DFTU/12_PW_DS_S2_Z/INPUT index 28530e1f7f..a7d96c094e 100644 --- a/tests/17_DS_DFTU/12_PW_DS_S2_Z/INPUT +++ b/tests/17_DS_DFTU/12_PW_DS_S2_Z/INPUT @@ -23,7 +23,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 2 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/14_PW_DS_S4_XYZ/INPUT b/tests/17_DS_DFTU/14_PW_DS_S4_XYZ/INPUT index 0d74fa0b60..d2f0ceb3cf 100644 --- a/tests/17_DS_DFTU/14_PW_DS_S4_XYZ/INPUT +++ b/tests/17_DS_DFTU/14_PW_DS_S4_XYZ/INPUT @@ -23,7 +23,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 2 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/15_PW_DS_S4_Z/INPUT b/tests/17_DS_DFTU/15_PW_DS_S4_Z/INPUT index a300c67197..77c802a1a7 100644 --- a/tests/17_DS_DFTU/15_PW_DS_S4_Z/INPUT +++ b/tests/17_DS_DFTU/15_PW_DS_S4_Z/INPUT @@ -23,7 +23,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 2 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/16_PW_DS_S4_XY/INPUT b/tests/17_DS_DFTU/16_PW_DS_S4_XY/INPUT index a300c67197..77c802a1a7 100644 --- a/tests/17_DS_DFTU/16_PW_DS_S4_XY/INPUT +++ b/tests/17_DS_DFTU/16_PW_DS_S4_XY/INPUT @@ -23,7 +23,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 2 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/18_PW_DFTU_DS_S2_Z/INPUT b/tests/17_DS_DFTU/18_PW_DFTU_DS_S2_Z/INPUT index f403abe54b..82a67ea627 100644 --- a/tests/17_DS_DFTU/18_PW_DFTU_DS_S2_Z/INPUT +++ b/tests/17_DS_DFTU/18_PW_DFTU_DS_S2_Z/INPUT @@ -30,7 +30,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 2 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/19_PW_DFTU_DS_S4_XY/INPUT b/tests/17_DS_DFTU/19_PW_DFTU_DS_S4_XY/INPUT index 34cb447147..289f9af171 100644 --- a/tests/17_DS_DFTU/19_PW_DFTU_DS_S4_XY/INPUT +++ b/tests/17_DS_DFTU/19_PW_DFTU_DS_S4_XY/INPUT @@ -30,7 +30,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 2 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/21_PW_DFTU_DS_S4_Z/INPUT b/tests/17_DS_DFTU/21_PW_DFTU_DS_S4_Z/INPUT index a8de392596..57cdf0d263 100644 --- a/tests/17_DS_DFTU/21_PW_DFTU_DS_S4_Z/INPUT +++ b/tests/17_DS_DFTU/21_PW_DFTU_DS_S4_Z/INPUT @@ -29,7 +29,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 2 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/24_LCAO_DS_S2_Z/INPUT b/tests/17_DS_DFTU/24_LCAO_DS_S2_Z/INPUT index fe803afb67..2cdc927388 100644 --- a/tests/17_DS_DFTU/24_LCAO_DS_S2_Z/INPUT +++ b/tests/17_DS_DFTU/24_LCAO_DS_S2_Z/INPUT @@ -2,32 +2,31 @@ INPUT_PARAMETERS suffix autotest calculation scf basis_type lcao -ecutwfc 20 +ecutwfc 100 gamma_only 0 -nspin 4 -noncolin 1 -#nbands 28 +nspin 2 scf_thr 1.0e-6 scf_nmax 50 out_chg 0 smearing_method gaussian smearing_sigma 0.01 mixing_type broyden -mixing_beta 0.4 +mixing_beta 0.2 ks_solver genelpa symmetry 0 - # DeltaSpin parameters sc_mag_switch 1 -sc_thr 1e-4 -nsc 100 +sc_thr 1e-5 +nsc 5 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 1e-3 -#sc_lambda_strategy linear_scan +sc_strategy fast +#sc_scf_thr 10 +#sc_acceleration_mode subspace #acceleration mode for spin-constrained DFT +#sc_acceleration_rms_thr 1e10 #RMS threshold for acceleration activation pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/26_LCAO_DS_S4_XYZ/INPUT b/tests/17_DS_DFTU/26_LCAO_DS_S4_XYZ/INPUT index b2b6ce9c8d..dc5adaf5d4 100644 --- a/tests/17_DS_DFTU/26_LCAO_DS_S4_XYZ/INPUT +++ b/tests/17_DS_DFTU/26_LCAO_DS_S4_XYZ/INPUT @@ -29,4 +29,4 @@ sc_scf_thr 1e-2 pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB -sc_lambda_strategy linear_response +sc_lambda_strategy bfgs diff --git a/tests/17_DS_DFTU/36_PW_DS_S2_ReadLam_Z/INPUT b/tests/17_DS_DFTU/36_PW_DS_S2_ReadLam_Z/INPUT index 0ff2ef9a1a..3c84efd58b 100644 --- a/tests/17_DS_DFTU/36_PW_DS_S2_ReadLam_Z/INPUT +++ b/tests/17_DS_DFTU/36_PW_DS_S2_ReadLam_Z/INPUT @@ -25,7 +25,7 @@ nsc 1 nsc_min 1 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/37_PW_DS_S4_ReadLam_XY/INPUT b/tests/17_DS_DFTU/37_PW_DS_S4_ReadLam_XY/INPUT index b5def492a6..7ee6fbfe60 100644 --- a/tests/17_DS_DFTU/37_PW_DS_S4_ReadLam_XY/INPUT +++ b/tests/17_DS_DFTU/37_PW_DS_S4_ReadLam_XY/INPUT @@ -24,7 +24,7 @@ nsc 1 nsc_min 1 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/38_PW_DS_S2_Thr1e10_Z/INPUT b/tests/17_DS_DFTU/38_PW_DS_S2_Thr1e10_Z/INPUT index 544b67acd2..b2162f936c 100644 --- a/tests/17_DS_DFTU/38_PW_DS_S2_Thr1e10_Z/INPUT +++ b/tests/17_DS_DFTU/38_PW_DS_S2_Thr1e10_Z/INPUT @@ -18,14 +18,14 @@ ks_solver dav_subspace symmetry 0 kpar 1 -# DeltaSpin -- strict convergence threshold +# DeltaSpin -- lambda loop disabled (constant lambda from STRU) sc_mag_switch 1 sc_thr 1e-4 nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 1e-10 +sc_scf_thr_mode off pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/39_PW_DS_S4_Thr1e10_XY/INPUT b/tests/17_DS_DFTU/39_PW_DS_S4_Thr1e10_XY/INPUT index adac5688d1..7adaea819b 100644 --- a/tests/17_DS_DFTU/39_PW_DS_S4_Thr1e10_XY/INPUT +++ b/tests/17_DS_DFTU/39_PW_DS_S4_Thr1e10_XY/INPUT @@ -17,14 +17,14 @@ ks_solver dav_subspace symmetry 0 kpar 2 -# DeltaSpin -- strict convergence threshold +# DeltaSpin -- lambda loop disabled (constant lambda from STRU) sc_mag_switch 1 sc_thr 1e-4 nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 1e-10 +sc_scf_thr_mode off pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/40_PW_DS_S2_Thr10_Z/INPUT b/tests/17_DS_DFTU/40_PW_DS_S2_Thr10_Z/INPUT index 18df498a74..6986479560 100644 --- a/tests/17_DS_DFTU/40_PW_DS_S2_Thr10_Z/INPUT +++ b/tests/17_DS_DFTU/40_PW_DS_S2_Thr10_Z/INPUT @@ -26,7 +26,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/41_PW_DS_S4_Thr10_XY/INPUT b/tests/17_DS_DFTU/41_PW_DS_S4_Thr10_XY/INPUT index 38276dc868..0fdf61e435 100644 --- a/tests/17_DS_DFTU/41_PW_DS_S4_Thr10_XY/INPUT +++ b/tests/17_DS_DFTU/41_PW_DS_S4_Thr10_XY/INPUT @@ -24,7 +24,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 0.1 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/42_PW_DFTU_DS_S2_Thr1e10_Z/INPUT b/tests/17_DS_DFTU/42_PW_DFTU_DS_S2_Thr1e10_Z/INPUT index e7bfa8339a..c21686d6e1 100644 --- a/tests/17_DS_DFTU/42_PW_DFTU_DS_S2_Thr1e10_Z/INPUT +++ b/tests/17_DS_DFTU/42_PW_DFTU_DS_S2_Thr1e10_Z/INPUT @@ -24,14 +24,14 @@ orbital_corr 2 hubbard_u 5.0 onsite_radius 3.0 -# DeltaSpin -- strict convergence threshold +# DeltaSpin -- lambda loop disabled (constant lambda from STRU) sc_mag_switch 1 sc_thr 1e-4 nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 1e-10 +sc_scf_thr_mode off pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/43_PW_DFTU_DS_S4_Thr1e10_XY/INPUT b/tests/17_DS_DFTU/43_PW_DFTU_DS_S4_Thr1e10_XY/INPUT index 4629ed7b77..10de3770c0 100644 --- a/tests/17_DS_DFTU/43_PW_DFTU_DS_S4_Thr1e10_XY/INPUT +++ b/tests/17_DS_DFTU/43_PW_DFTU_DS_S4_Thr1e10_XY/INPUT @@ -23,14 +23,14 @@ orbital_corr 2 hubbard_u 5.0 onsite_radius 3.0 -# DeltaSpin -- strict convergence threshold +# DeltaSpin -- lambda loop disabled (constant lambda from STRU) sc_mag_switch 1 sc_thr 1e-4 nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 1e-10 +sc_scf_thr_mode off pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/44_PW_DFTU_DS_S2_Thr10_Z/INPUT b/tests/17_DS_DFTU/44_PW_DFTU_DS_S2_Thr10_Z/INPUT index f5b277d576..615730a844 100644 --- a/tests/17_DS_DFTU/44_PW_DFTU_DS_S2_Thr10_Z/INPUT +++ b/tests/17_DS_DFTU/44_PW_DFTU_DS_S2_Thr10_Z/INPUT @@ -31,7 +31,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/45_PW_DFTU_DS_S4_Thr10_XY/INPUT b/tests/17_DS_DFTU/45_PW_DFTU_DS_S4_Thr10_XY/INPUT index bd4a2bedb7..2d7d679655 100644 --- a/tests/17_DS_DFTU/45_PW_DFTU_DS_S4_Thr10_XY/INPUT +++ b/tests/17_DS_DFTU/45_PW_DFTU_DS_S4_Thr10_XY/INPUT @@ -30,7 +30,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 0.1 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/50_FeO_O_first_Fe_second/STRU b/tests/17_DS_DFTU/50_FeO_O_first_Fe_second/STRU index 4adbbff8e5..5d4d02a4e1 100644 --- a/tests/17_DS_DFTU/50_FeO_O_first_Fe_second/STRU +++ b/tests/17_DS_DFTU/50_FeO_O_first_Fe_second/STRU @@ -1,5 +1,5 @@ ATOMIC_SPECIES -O 1.000 O_ONCV_PBE-1.0.upf +O 1.000 O.upf Fe 1.000 Fe.upf NUMERICAL_ORBITAL diff --git a/tests/17_DS_DFTU/51_FeO_Fe_first_O_second/STRU b/tests/17_DS_DFTU/51_FeO_Fe_first_O_second/STRU index 9c0edfc63a..d18fb1e38f 100644 --- a/tests/17_DS_DFTU/51_FeO_Fe_first_O_second/STRU +++ b/tests/17_DS_DFTU/51_FeO_Fe_first_O_second/STRU @@ -1,6 +1,6 @@ ATOMIC_SPECIES Fe 1.000 Fe.upf -O 1.000 O_ONCV_PBE-1.0.upf +O 1.000 O.upf NUMERICAL_ORBITAL Fe_gga_6au_100Ry_4s2p2d1f.orb diff --git a/tests/17_DS_DFTU/55_PW_DS_NSCF_S4_XY/INPUT b/tests/17_DS_DFTU/55_PW_DS_NSCF_S4_XY/INPUT index 23afec5db2..14e40ea6d1 100644 --- a/tests/17_DS_DFTU/55_PW_DS_NSCF_S4_XY/INPUT +++ b/tests/17_DS_DFTU/55_PW_DS_NSCF_S4_XY/INPUT @@ -25,7 +25,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 1 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/INPUT b/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/INPUT index b552257707..cccaf1b162 100644 --- a/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/INPUT +++ b/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/INPUT @@ -6,7 +6,7 @@ ecutwfc 20 gamma_only 0 noncolin 1 #nbands 28 -scf_thr 1.0e-8 +scf_thr 1.0e-6 scf_nmax 50 out_chg 0 smearing_method gaussian @@ -23,7 +23,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate sc_direction_only 1 kpar 1 diff --git a/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/result.ref b/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/result.ref index 1fc2ce8402..a834063a0d 100644 --- a/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/result.ref +++ b/tests/17_DS_DFTU/56_PW_DS_S4_DirectionOnly_XY/result.ref @@ -1,3 +1,3 @@ -etotref -6370.63216907 -etotperatomref -3185.31608454 +etotref -6370.63216907371 +etotperatomref -3185.3160845369 totaltimeref 4.94 diff --git a/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/INPUT b/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/INPUT index 5748790452..b9b24fa64f 100644 --- a/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/INPUT +++ b/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/INPUT @@ -6,7 +6,7 @@ ecutwfc 20 gamma_only 0 noncolin 1 -scf_thr 1.0e-8 +scf_thr 1.0e-6 scf_nmax 50 out_chg 0 smearing_method gaussian @@ -29,7 +29,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate sc_direction_only 1 kpar 1 diff --git a/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/result.ref b/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/result.ref index f6cc34b23b..8179ccd1a5 100644 --- a/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/result.ref +++ b/tests/17_DS_DFTU/57_PW_DFTU_DS_S4_DirectionOnly_XY/result.ref @@ -1,3 +1,3 @@ -etotref -6364.26586890 -etotperatomref -1591.06646723 -totaltimeref 4.94 +etotref -6364.2658688980172883 +etotperatomref -3182.1329344490 +totaltimeref 5.72 diff --git a/tests/17_DS_DFTU/60_PW_DFTU_DS_NSCF_Band_XY/INPUT b/tests/17_DS_DFTU/60_PW_DFTU_DS_NSCF_Band_XY/INPUT index aa919b587d..03c6614a66 100644 --- a/tests/17_DS_DFTU/60_PW_DFTU_DS_NSCF_Band_XY/INPUT +++ b/tests/17_DS_DFTU/60_PW_DFTU_DS_NSCF_Band_XY/INPUT @@ -2,7 +2,7 @@ INPUT_PARAMETERS suffix autotest calculation nscf basis_type pw -ecutwfc 10 +ecutwfc 20 gamma_only 0 init_chg file read_file_dir ./ @@ -32,7 +32,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate kpar 1 pseudo_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/61_LCAO_DS_NSCF_S4_XY/INPUT b/tests/17_DS_DFTU/61_LCAO_DS_NSCF_S4_XY/INPUT index deb30c6d17..c519187207 100644 --- a/tests/17_DS_DFTU/61_LCAO_DS_NSCF_S4_XY/INPUT +++ b/tests/17_DS_DFTU/61_LCAO_DS_NSCF_S4_XY/INPUT @@ -2,7 +2,7 @@ INPUT_PARAMETERS suffix autotest calculation nscf basis_type lcao -ecutwfc 5 +ecutwfc 20 gamma_only 0 init_chg file read_file_dir ./ @@ -25,7 +25,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/62_LCAO_DFTU_NSCF_Band_XY/INPUT b/tests/17_DS_DFTU/62_LCAO_DFTU_NSCF_Band_XY/INPUT index 930f1f58c9..a550e0f2d3 100644 --- a/tests/17_DS_DFTU/62_LCAO_DFTU_NSCF_Band_XY/INPUT +++ b/tests/17_DS_DFTU/62_LCAO_DFTU_NSCF_Band_XY/INPUT @@ -2,25 +2,25 @@ INPUT_PARAMETERS suffix autotest calculation scf basis_type lcao -ecutwfc 5 +ecutwfc 20 gamma_only 0 init_chg file read_file_dir ./ noncolin 1 #nbands 28 scf_thr 1.0e-6 -scf_nmax 1 -#out_chg 1 +scf_nmax 100 +out_chg 0 out_band 1 smearing_method gaussian smearing_sigma 0.01 mixing_type broyden mixing_beta 0.4 -ks_solver scalapack_gvx #genelpa +ks_solver genelpa symmetry 0 # DFT+U parameters -dft_plus_u 1 +dft_plus_u 0 orbital_corr 2 hubbard_u 5.0 onsite_radius 3.0 diff --git a/tests/17_DS_DFTU/63_LCAO_DFTU_DS_NSCF_Band_XY/INPUT b/tests/17_DS_DFTU/63_LCAO_DFTU_DS_NSCF_Band_XY/INPUT index 22c7407463..f5dbbe27b5 100644 --- a/tests/17_DS_DFTU/63_LCAO_DFTU_DS_NSCF_Band_XY/INPUT +++ b/tests/17_DS_DFTU/63_LCAO_DFTU_DS_NSCF_Band_XY/INPUT @@ -2,7 +2,7 @@ INPUT_PARAMETERS suffix autotest calculation nscf basis_type lcao -ecutwfc 5 +ecutwfc 20 gamma_only 0 init_chg file read_file_dir ./ @@ -32,7 +32,7 @@ nsc 100 nsc_min 2 alpha_trial 0.01 sccut 3.0 -sc_scf_thr 10 +sc_scf_thr_mode immediate pseudo_dir ../../PP_ORB orbital_dir ../../PP_ORB diff --git a/tests/17_DS_DFTU/64_PW_DFTU_NSCF_Band_XY/INPUT b/tests/17_DS_DFTU/64_PW_DFTU_NSCF_Band_XY/INPUT index f048ee6419..8e4de71a02 100644 --- a/tests/17_DS_DFTU/64_PW_DFTU_NSCF_Band_XY/INPUT +++ b/tests/17_DS_DFTU/64_PW_DFTU_NSCF_Band_XY/INPUT @@ -2,7 +2,7 @@ INPUT_PARAMETERS suffix autotest calculation nscf basis_type pw -ecutwfc 10 +ecutwfc 20 gamma_only 0 init_chg file read_file_dir ./ diff --git a/tests/17_DS_DFTU/CASES_CPU.txt b/tests/17_DS_DFTU/CASES_CPU.txt index fc43536515..911bea6e26 100644 --- a/tests/17_DS_DFTU/CASES_CPU.txt +++ b/tests/17_DS_DFTU/CASES_CPU.txt @@ -1,102 +1,61 @@ -# Test case list for CI testing. Lines starting with # are disabled. -# Enabled tests are listed without # prefix; disabled tests are commented out with reasons. - -# ======================== # LCAO baseline tests -# ======================== 01_LCAO_SPIN_S2_Z -# 02_LCAO_SPIN_S4_XYZ # DISABLED: Convergence / numerical stability issue with LCAO noncollinear spin - -# ======================== -# LCAO DFT+U tests -# ======================== +# 02_LCAO_SPIN_S4_XYZ 03_LCAO_DFTU_S2_Z -# 04_LCAO_DFTU_S4_XY # DISABLED: Convergence / numerical stability issue with LCAO noncollinear DFT+U -# 05_LCAO_DFTU_S4_XYZ # DISABLED: Convergence / numerical stability issue with LCAO noncollinear DFT+U - -# ======================== +# 04_LCAO_DFTU_S4_XY +# 05_LCAO_DFTU_S4_XYZ # PW baseline tests -# ======================== 06_PW_SPIN_S2_Z 07_PW_SPIN_S4_XYZ 08_PW_DFTU_S2_Z 09_PW_DFTU_S4_XY 11_PW_DFTU_S2_FeO - -# ======================== -# PW pure DeltaSpin tests -# ======================== +# PW pure DeltaSpin 12_PW_DS_S2_Z 14_PW_DS_S4_XYZ 15_PW_DS_S4_Z 16_PW_DS_S4_XY - -# ======================== -# PW DFT+U + DeltaSpin tests -# ======================== +# PW DFT+U + DeltaSpin 18_PW_DFTU_DS_S2_Z 19_PW_DFTU_DS_S4_XY 21_PW_DFTU_DS_S4_Z - -# ======================== -# LCAO pure DeltaSpin tests -# ======================== -# 24_LCAO_DS_S2_Z # DISABLED: Convergence / numerical stability issue with LCAO DeltaSpin -# 26_LCAO_DS_S4_XYZ # DISABLED: Convergence / numerical stability issue with LCAO noncollinear DeltaSpin -# 27_LCAO_DS_S4_Z # DISABLED: Convergence / numerical stability issue with LCAO noncollinear DeltaSpin -# 28_LCAO_DS_S4_XY # DISABLED: Convergence / numerical stability issue with LCAO noncollinear DeltaSpin - -# ======================== -# LCAO DFT+U + DeltaSpin tests -# ======================== -# 30_LCAO_DFTU_DS_S2_Z # DISABLED: Convergence / numerical stability issue with LCAO DFT+U+DeltaSpin -# 31_LCAO_DFTU_DS_S4_XY # DISABLED: Convergence / numerical stability issue with LCAO DFT+U+DeltaSpin -# 32_LCAO_DFTU_DS_S4_XYZ # DISABLED: Convergence / numerical stability issue with LCAO DFT+U+DeltaSpin -# 33_LCAO_DFTU_DS_S4_Z # DISABLED: Convergence / numerical stability issue with LCAO DFT+U+DeltaSpin - -# ======================== +# LCAO pure DeltaSpin +# 24_LCAO_DS_S2_Z +# 26_LCAO_DS_S4_XYZ +# 27_LCAO_DS_S4_Z +# 28_LCAO_DS_S4_XY +# LCAO DFT+U + DeltaSpin +# 30_LCAO_DFTU_DS_S2_Z +# 31_LCAO_DFTU_DS_S4_XY +# 32_LCAO_DFTU_DS_S4_XYZ +# 33_LCAO_DFTU_DS_S4_Z # ReadLam mode (nsc=1, load pre-computed lambda) -# ======================== 36_PW_DS_S2_ReadLam_Z 37_PW_DS_S4_ReadLam_XY - -# ======================== -# Lambda loop behavior: thr1e-10 = no lambda loop, load from STRU -# ======================== +# Lambda loop behavior: sc_scf_thr_mode=off (lambda loop disabled, constant from STRU) 38_PW_DS_S2_Thr1e10_Z 39_PW_DS_S4_Thr1e10_XY 42_PW_DFTU_DS_S2_Thr1e10_Z 43_PW_DFTU_DS_S4_Thr1e10_XY - -# ======================== -# Lambda loop behavior: thr10 = immediate lambda loop -# ======================== +# Lambda loop behavior: sc_scf_thr_mode=immediate (lambda loop starts from iter>=2) 40_PW_DS_S2_Thr10_Z 41_PW_DS_S4_Thr10_XY -# 44_PW_DFTU_DS_S2_Thr10_Z # DISABLED: Convergence / numerical stability issue with loose threshold - -# ======================== +# 44_PW_DFTU_DS_S2_Thr10_Z +45_PW_DFTU_DS_S4_Thr10_XY # FeO multi-element DFT+U -# ======================== 50_FeO_O_first_Fe_second 51_FeO_Fe_first_O_second - -# ======================== # NSCF (non-self-consistent) tests -# ======================== -# DISABLED: These tests use SCF+NSCF workflow (run_scf_nscf.sh) and require running SCF first. -# Run manually with: bash run_scf_nscf.sh [mpi_np] -# 55_PW_DS_NSCF_S4_XY # DISABLED: SCF+NSCF workflow test, run manually -# 60_PW_DFTU_DS_NSCF_Band_XY # DISABLED: SCF+NSCF workflow test, run manually -# 61_LCAO_DS_NSCF_S4_XY # DISABLED: SCF+NSCF workflow test, run manually -# 62_LCAO_DFTU_NSCF_Band_XY # DISABLED: SCF+NSCF workflow + convergence issue (genelpa eigenvalue inconsistency) -# 63_LCAO_DFTU_DS_NSCF_Band_XY # DISABLED: SCF+NSCF workflow test, run manually -# 64_PW_DFTU_NSCF_Band_XY # DISABLED: SCF+NSCF workflow test, run manually - -# ======================== +# Note: DFT+U NSCF requires both charge density and onsite.dm files from prior SCF +55_PW_DS_NSCF_S4_XY +60_PW_DFTU_DS_NSCF_Band_XY +61_LCAO_DS_NSCF_S4_XY +# 62_LCAO_DFTU_NSCF_Band_XY +# 63_LCAO_DFTU_DS_NSCF_Band_XY +64_PW_DFTU_NSCF_Band_XY # DirectionOnly mode (constrain direction, not magnitude) -# ======================== -# 56_PW_DS_S4_DirectionOnly_XY # DISABLED: Sensitive to SCF convergence with MPI/OMP variations -# 57_PW_DFTU_DS_S4_DirectionOnly_XY # DISABLED: Sensitive to SCF convergence with MPI/OMP variations -# 58_LCAO_DS_S4_DirectionOnly_XY # DISABLED: Convergence / numerical stability issue with LCAO DirectionOnly -# 59_LCAO_DFTU_DS_S4_DirectionOnly_XY # DISABLED: Convergence / numerical stability issue with LCAO DirectionOnly +56_PW_DS_S4_DirectionOnly_XY +57_PW_DFTU_DS_S4_DirectionOnly_XY +# 58_LCAO_DS_S4_DirectionOnly_XY +# 59_LCAO_DFTU_DS_S4_DirectionOnly_XY +# 65_LCAO_DS_S2_DirectionOnly_Z diff --git a/tests/17_DS_DFTU/CMakeLists.txt b/tests/17_DS_DFTU/CMakeLists.txt index 8eead45355..7c78260e77 100644 --- a/tests/17_DS_DFTU/CMakeLists.txt +++ b/tests/17_DS_DFTU/CMakeLists.txt @@ -1,10 +1,5 @@ enable_testing() -# TODO: Enable all tests after DeltaSpin + DFT+U code is merged into develop. -# These tests require the DeltaSpin module (source/module_hamilt_general/hamilt_deltaspin.h) -# and associated DFT+U with spin constraint functionality. -# Uncomment the add_test blocks below once the feature branch is merged. - find_program(BASH bash) if(ENABLE_ASAN) add_test( diff --git a/tests/17_DS_DFTU/README.md b/tests/17_DS_DFTU/README.md index a3b87cd3d0..dbaaab6fc3 100644 --- a/tests/17_DS_DFTU/README.md +++ b/tests/17_DS_DFTU/README.md @@ -3,7 +3,7 @@ This directory contains integration test cases for **DeltaSpin (spin-constrained DFT)** and **DFT+U** functionality in ABACUS, covering LCAO and PW basis sets, collinear/noncollinear spin, DFT+U, DeltaSpin, and their combinations. -## Test List (47 cases) +## Test List (48 cases) ### I. LCAO Spin (01-02) @@ -76,19 +76,19 @@ covering LCAO and PW basis sets, collinear/noncollinear spin, DFT+U, DeltaSpin, |---|------|------| | 36 | PW_DS_S2_ReadLam_Z | Verify correctness of `nsc=1` mode (read lambda file directly without iterative optimization), ensures DeltaSpin correctly computes magnetization in non-self-consistent lambda mode | | 37 | PW_DS_S4_ReadLam_XY | Verify `nsc=1` mode for noncollinear DeltaSpin, covers non-self-consistent lambda path under XY magnetization constraint | -| 38 | PW_DS_S2_Thr1e10_Z | Verify stability of DeltaSpin under strict convergence threshold (sc_scf_thr=1e-10), ensures iterative optimization converges to high-precision solution | -| 39 | PW_DS_S4_Thr1e10_XY | Verify stability of noncollinear DeltaSpin under strict convergence threshold (sc_scf_thr=1e-10), covers XY magnetization constraint scenario | -| 40 | PW_DS_S2_Thr10_Z | Verify behavior of DeltaSpin under loose convergence threshold (sc_scf_thr=10), tests algorithm robustness and out_alllog log output under low precision requirements | -| 41 | PW_DS_S4_Thr10_XY | Verify behavior of noncollinear DeltaSpin under loose convergence threshold (sc_scf_thr=10), covers low precision scenario with XY magnetization constraint | +| 38 | PW_DS_S2_Thr1e10_Z | Verify DeltaSpin with lambda loop disabled (`sc_scf_thr_mode=off`), lambda values from STRU are used as constant constraints without optimization | +| 39 | PW_DS_S4_Thr1e10_XY | Verify noncollinear DeltaSpin with lambda loop disabled (`sc_scf_thr_mode=off`), covers constant lambda under XY magnetization constraint | +| 40 | PW_DS_S2_Thr10_Z | Verify behavior of DeltaSpin with immediate lambda loop activation (`sc_scf_thr_mode=immediate`), tests algorithm robustness when lambda loop starts from the second SCF iteration | +| 41 | PW_DS_S4_Thr10_XY | Verify behavior of noncollinear DeltaSpin with immediate lambda loop activation (`sc_scf_thr_mode=immediate`), covers immediate activation under XY magnetization constraint | ### X. PW DFT+U + DeltaSpin Special Parameters (42-45) | # | Test Case | Description | |---|------|------| -| 42 | PW_DFTU_DS_S2_Thr1e10_Z | Verify iterative stability of DFT+U with DeltaSpin combined under strict convergence threshold (sc_scf_thr=1e-10), ensures convergence when both methods are coupled | -| 43 | PW_DFTU_DS_S4_Thr1e10_XY | Verify coupling stability of noncollinear DFT+U+DeltaSpin under strict convergence threshold (sc_scf_thr=1e-10), covers XY magnetization constraint | -| 44 | PW_DFTU_DS_S2_Thr10_Z | Verify behavior of DFT+U with DeltaSpin combined under loose convergence threshold (sc_scf_thr=10), tests coupled algorithm robustness under low precision requirements | -| 45 | PW_DFTU_DS_S4_Thr10_XY | Verify behavior of noncollinear DFT+U+DeltaSpin under loose convergence threshold (sc_scf_thr=10), covers low precision scenario with XY magnetization constraint | +| 42 | PW_DFTU_DS_S2_Thr1e10_Z | Verify DFT+U+DeltaSpin with lambda loop disabled (`sc_scf_thr_mode=off`), ensures constant lambda constraint with Hubbard U correction | +| 43 | PW_DFTU_DS_S4_Thr1e10_XY | Verify noncollinear DFT+U+DeltaSpin with lambda loop disabled (`sc_scf_thr_mode=off`), covers constant lambda under XY magnetization constraint | +| 44 | PW_DFTU_DS_S2_Thr10_Z | Verify behavior of DFT+U with DeltaSpin combined with immediate lambda loop activation (`sc_scf_thr_mode=immediate`), tests coupled algorithm robustness when lambda loop starts immediately | +| 45 | PW_DFTU_DS_S4_Thr10_XY | Verify behavior of noncollinear DFT+U+DeltaSpin with immediate lambda loop activation (`sc_scf_thr_mode=immediate`), covers immediate activation under XY magnetization constraint | ### XI. FeO Atom Ordering (50-51) @@ -99,15 +99,6 @@ covering LCAO and PW basis sets, collinear/noncollinear spin, DFT+U, DeltaSpin, ### XII. NSCF Mode (55, 60-64) -**Note:** These test cases have been converted to use a **SCF+NSCF workflow**. -The pre-converged charge density files have been removed. To run these tests: - -```bash -# Use the workflow script (runs SCF first, then NSCF) -cd tests/17_DS_DFTU/55_PW_DS_NSCF_S4_XY -bash ../run_scf_nscf.sh 4 -``` - | # | Test Case | Description | |---|------|------| | 55 | PW_DS_NSCF_S4_XY | Verify DeltaSpin functionality in non-self-consistent (nscf) calculation mode, ensures lambda constraint is applied correctly without charge update | @@ -117,13 +108,7 @@ bash ../run_scf_nscf.sh 4 | 63 | LCAO_DFTU_DS_NSCF_Band_XY | Verify LCAO DFT+U+DeltaSpin in NSCF band structure calculation, tests band output with spin constraints | | 64 | PW_DFTU_NSCF_Band_XY | Verify DFT+U (without DeltaSpin) in NSCF band structure calculation, tests band output with Hubbard U correction | -**SCF+NSCF Workflow:** -1. `scf/INPUT` — SCF input (calculation=scf, init_chg=atomic, out_chg=1) -2. `scf/STRU`, `scf/KPT` — SCF structure and k-points -3. `run_scf_nscf.sh` — Script that runs SCF, copies charge density, then runs NSCF -4. CI tests are **disabled** for these cases (see CASES_CPU.txt) - -### XIII. sc_direction_only Constraint (56-59) +### XIII. sc_direction_only Constraint (56-59, 65) | # | Test Case | Description | |---|------|------| @@ -131,6 +116,7 @@ bash ../run_scf_nscf.sh 4 | 57 | PW_DFTU_DS_S4_DirectionOnly_XY | Verify `sc_direction_only=1` combined with DFT+U, tests direction-only constraint superposition with Hubbard U correction | | 58 | LCAO_DS_S4_DirectionOnly_XY | Verify `sc_direction_only=1` in LCAO basis, ensures direction-only constraint works correctly in LCAO density matrix path | | 59 | LCAO_DFTU_DS_S4_DirectionOnly_XY | Verify `sc_direction_only=1` combined with DFT+U in LCAO basis, tests full direction-only constraint in LCAO path | +| 65 | LCAO_DS_S2_DirectionOnly_Z | Verify `sc_direction_only=1` in LCAO basis with collinear spin (nspin=2). Tests the two-phase BFGS strategy: Phase 1 (iter 1-5) constrains moment magnitude, Phase 2 (iter 6+) gradually decays lambda for natural relaxation | ## Running Tests @@ -164,21 +150,13 @@ The following test cases are disabled in `CASES_CPU.txt` (commented out with `#` | 44 | PW_DFTU_DS_S2_Thr10_Z | Convergence / numerical stability | | 58 | LCAO_DS_S4_DirectionOnly_XY | Convergence / numerical stability | | 59 | LCAO_DFTU_DS_S4_DirectionOnly_XY | Convergence / numerical stability | -| 62 | LCAO_DFTU_NSCF_Band_XY | Convergence / numerical stability; genelpa eigenvalue inconsistency across thread counts (scalapack_gvx consistent); **also disabled for SCF+NSCF workflow conversion** | -| 63 | LCAO_DFTU_DS_NSCF_Band_XY | Convergence / numerical stability; **also disabled for SCF+NSCF workflow conversion** | -| 55 | PW_DS_NSCF_S4_XY | **Disabled for SCF+NSCF workflow conversion** — run manually with `run_scf_nscf.sh` | -| 60 | PW_DFTU_DS_NSCF_Band_XY | **Disabled for SCF+NSCF workflow conversion** — run manually with `run_scf_nscf.sh` | -| 61 | LCAO_DS_NSCF_S4_XY | **Disabled for SCF+NSCF workflow conversion** — run manually with `run_scf_nscf.sh` | -| 64 | PW_DFTU_NSCF_Band_XY | **Disabled for SCF+NSCF workflow conversion** — run manually with `run_scf_nscf.sh` | +| 62 | LCAO_DFTU_NSCF_Band_XY | Convergence / numerical stability; genelpa eigenvalue inconsistency across thread counts (scalapack_gvx consistent) | +| 63 | LCAO_DFTU_DS_NSCF_Band_XY | Convergence / numerical stability | ## Test Condition Notes - 09 (PW DFT+U + noncollinear): Only supports **2-process MPI** execution, `result.ref` reference files provided - The following test cases set `kpar=2` in INPUT and require at least **2 MPI processes** to run: 11, 12, 14, 15, 16, 18, 19, 21, 37, 39, 41, 43, 45 -- 62 (LCAO_DFTU_NSCF_Band_XY): Single-thread and multi-thread results are inconsistent; investigation shows HR, HK, and SK are consistent across threads, but eigenvalues from genelpa differ; switching to scalapack_gvx produces consistent results across thread counts. Note: this test is named "NSCF" but actually runs with `calculation = scf` (`scf_nmax = 1`), using pre-shipped charge density and dm_onsite.txt files as initial guess -- All NSCF tests (55, 60, 61, 62, 63, 64) have been **converted to SCF+NSCF workflow**: - - Pre-converged `autotest-CHARGE-DENSITY.restart` and `dm_onsite.txt` files have been removed - - Each test directory contains a `scf/` subdirectory with SCF input files - - Run with: `bash ../run_scf_nscf.sh [mpi_np]` - - These tests are **disabled in CI** (commented out in CASES_CPU.txt) +- 62 (LCAO_DFTU_NSCF_Band_XY): Single-thread and multi-thread results are inconsistent; investigation shows HR, HK, and SK are consistent across threads, but eigenvalues from genelpa differ; switching to scalapack_gvx produces consistent results across thread counts. Note: this test is named "NSCF" but actually runs with `calculation = scf` (`scf_nmax = 1`), using pre-shipped charge density and onsite.dm files as initial guess +- All NSCF tests (55, 60, 61, 63, 64) and test 62 ship pre-converged `autotest-CHARGE-DENSITY.restart` files; DFT+U NSCF tests (60, 63, 64) and test 62 additionally ship pre-converged `onsite.dm` files. These files are self-contained in each test directory — no runtime dependency on other tests - All LCAO basis tests use `ks_solver = genelpa`. The genelpa eigenvalue inconsistency across thread counts observed in test 62 may potentially affect other LCAO tests as well \ No newline at end of file diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2347b02d6a..17d69cfd36 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -5,12 +5,11 @@ add_subdirectory(03_NAO_multik) add_subdirectory(04_FF) add_subdirectory(05_rtTDDFT) add_subdirectory(06_SDFT) +add_subdirectory(17_DS_DFTU) add_subdirectory(07_OFDFT) add_subdirectory(08_EXX) add_subdirectory(10_others) add_subdirectory(11_PW_GPU) -# TODO: Enable after DeltaSpin + DFT+U code is merged into develop -add_subdirectory(17_DS_DFTU) if(ENABLE_MLALGO) add_subdirectory(09_DeePKS) diff --git a/tests/PP_ORB/O.upf b/tests/PP_ORB/O.upf new file mode 100644 index 0000000000..7e7db6d66f --- /dev/null +++ b/tests/PP_ORB/O.upf @@ -0,0 +1,1224 @@ + + + + This pseudopotential file has been produced using the code + ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) + scalar-relativistic version 2.1.1, 03/26/2014 by D. R. Hamann + The code is available through a link at URL www.mat-simresearch.com. + Documentation with the package provides a full discription of the + input data below. + + + While it is not required under the terms of the GNU GPL, it is + suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) + in any publication using these pseudopotentials. + + + Copyright 2015 The Regents of the University of California + + This work is licensed under the Creative Commons Attribution-ShareAlike + 4.0 International License. To view a copy of this license, visit + http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to + Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. + + This pseudopotential is part of the Schlipf-Gygi norm-conserving + pseudopotential library. Its construction parameters were tuned to + reproduce materials of a training set with very high accuracy and + should be suitable as a general purpose pseudopotential to treat a + variety of different compounds. For details of the construction and + testing of the pseudopotential please refer to: + + [insert reference to paper here] + + We kindly ask that you include this reference in all publications + associated to this pseudopotential. + + + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 4 upf +# +# n l f energy (Ha) + 1 0 2.00 + 2 0 2.00 + 2 1 4.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 1 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.29195 -0.88057 5 8 8.98916 + 1 1.47310 -0.33187 5 8 9.14990 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 0.90330 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.51851 + 1 2 1.53631 +# +# MODEL CORE CHARGE +# icmod, fcfact + 0 0.00000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -5.00 3.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 0 +# nvcnf +# n l f + + + + + + + + + 0.0000 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 + 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300 0.1400 0.1500 + 0.1600 0.1700 0.1800 0.1900 0.2000 0.2100 0.2200 0.2300 + 0.2400 0.2500 0.2600 0.2700 0.2800 0.2900 0.3000 0.3100 + 0.3200 0.3300 0.3400 0.3500 0.3600 0.3700 0.3800 0.3900 + 0.4000 0.4100 0.4200 0.4300 0.4400 0.4500 0.4600 0.4700 + 0.4800 0.4900 0.5000 0.5100 0.5200 0.5300 0.5400 0.5500 + 0.5600 0.5700 0.5800 0.5900 0.6000 0.6100 0.6200 0.6300 + 0.6400 0.6500 0.6600 0.6700 0.6800 0.6900 0.7000 0.7100 + 0.7200 0.7300 0.7400 0.7500 0.7600 0.7700 0.7800 0.7900 + 0.8000 0.8100 0.8200 0.8300 0.8400 0.8500 0.8600 0.8700 + 0.8800 0.8900 0.9000 0.9100 0.9200 0.9300 0.9400 0.9500 + 0.9600 0.9700 0.9800 0.9900 1.0000 1.0100 1.0200 1.0300 + 1.0400 1.0500 1.0600 1.0700 1.0800 1.0900 1.1000 1.1100 + 1.1200 1.1300 1.1400 1.1500 1.1600 1.1700 1.1800 1.1900 + 1.2000 1.2100 1.2200 1.2300 1.2400 1.2500 1.2600 1.2700 + 1.2800 1.2900 1.3000 1.3100 1.3200 1.3300 1.3400 1.3500 + 1.3600 1.3700 1.3800 1.3900 1.4000 1.4100 1.4200 1.4300 + 1.4400 1.4500 1.4600 1.4700 1.4800 1.4900 1.5000 1.5100 + 1.5200 1.5300 1.5400 1.5500 1.5600 1.5700 1.5800 1.5900 + 1.6000 1.6100 1.6200 1.6300 1.6400 1.6500 1.6600 1.6700 + 1.6800 1.6900 1.7000 1.7100 1.7200 1.7300 1.7400 1.7500 + 1.7600 1.7700 1.7800 1.7900 1.8000 1.8100 1.8200 1.8300 + 1.8400 1.8500 1.8600 1.8700 1.8800 1.8900 1.9000 1.9100 + 1.9200 1.9300 1.9400 1.9500 1.9600 1.9700 1.9800 1.9900 + 2.0000 2.0100 2.0200 2.0300 2.0400 2.0500 2.0600 2.0700 + 2.0800 2.0900 2.1000 2.1100 2.1200 2.1300 2.1400 2.1500 + 2.1600 2.1700 2.1800 2.1900 2.2000 2.2100 2.2200 2.2300 + 2.2400 2.2500 2.2600 2.2700 2.2800 2.2900 2.3000 2.3100 + 2.3200 2.3300 2.3400 2.3500 2.3600 2.3700 2.3800 2.3900 + 2.4000 2.4100 2.4200 2.4300 2.4400 2.4500 2.4600 2.4700 + 2.4800 2.4900 2.5000 2.5100 2.5200 2.5300 2.5400 2.5500 + 2.5600 2.5700 2.5800 2.5900 2.6000 2.6100 2.6200 2.6300 + 2.6400 2.6500 2.6600 2.6700 2.6800 2.6900 2.7000 2.7100 + 2.7200 2.7300 2.7400 2.7500 2.7600 2.7700 2.7800 2.7900 + 2.8000 2.8100 2.8200 2.8300 2.8400 2.8500 2.8600 2.8700 + 2.8800 2.8900 2.9000 2.9100 2.9200 2.9300 2.9400 2.9500 + 2.9600 2.9700 2.9800 2.9900 3.0000 3.0100 3.0200 3.0300 + 3.0400 3.0500 3.0600 3.0700 3.0800 3.0900 3.1000 3.1100 + 3.1200 3.1300 3.1400 3.1500 3.1600 3.1700 3.1800 3.1900 + 3.2000 3.2100 3.2200 3.2300 3.2400 3.2500 3.2600 3.2700 + 3.2800 3.2900 3.3000 3.3100 3.3200 3.3300 3.3400 3.3500 + 3.3600 3.3700 3.3800 3.3900 3.4000 3.4100 3.4200 3.4300 + 3.4400 3.4500 3.4600 3.4700 3.4800 3.4900 3.5000 3.5100 + 3.5200 3.5300 3.5400 3.5500 3.5600 3.5700 3.5800 3.5900 + 3.6000 3.6100 3.6200 3.6300 3.6400 3.6500 3.6600 3.6700 + 3.6800 3.6900 3.7000 3.7100 3.7200 3.7300 3.7400 3.7500 + 3.7600 3.7700 3.7800 3.7900 3.8000 3.8100 3.8200 3.8300 + 3.8400 3.8500 3.8600 3.8700 3.8800 3.8900 3.9000 3.9100 + 3.9200 3.9300 3.9400 3.9500 3.9600 3.9700 3.9800 3.9900 + 4.0000 4.0100 4.0200 4.0300 4.0400 4.0500 4.0600 4.0700 + 4.0800 4.0900 4.1000 4.1100 4.1200 4.1300 4.1400 4.1500 + 4.1600 4.1700 4.1800 4.1900 4.2000 4.2100 4.2200 4.2300 + 4.2400 4.2500 4.2600 4.2700 4.2800 4.2900 4.3000 4.3100 + 4.3200 4.3300 4.3400 4.3500 4.3600 4.3700 4.3800 4.3900 + 4.4000 4.4100 4.4200 4.4300 4.4400 4.4500 4.4600 4.4700 + 4.4800 4.4900 4.5000 4.5100 4.5200 4.5300 4.5400 4.5500 + 4.5600 4.5700 4.5800 4.5900 4.6000 4.6100 4.6200 4.6300 + 4.6400 4.6500 4.6600 4.6700 4.6800 4.6900 4.7000 4.7100 + 4.7200 4.7300 4.7400 4.7500 4.7600 4.7700 4.7800 4.7900 + 4.8000 4.8100 4.8200 4.8300 4.8400 4.8500 4.8600 4.8700 + 4.8800 4.8900 4.9000 4.9100 4.9200 4.9300 4.9400 4.9500 + 4.9600 4.9700 4.9800 4.9900 5.0000 5.0100 5.0200 5.0300 + 5.0400 5.0500 5.0600 5.0700 5.0800 5.0900 5.1000 5.1100 + 5.1200 5.1300 5.1400 5.1500 5.1600 5.1700 5.1800 5.1900 + 5.2000 5.2100 5.2200 5.2300 5.2400 5.2500 5.2600 5.2700 + 5.2800 5.2900 5.3000 5.3100 5.3200 5.3300 5.3400 5.3500 + 5.3600 5.3700 5.3800 5.3900 5.4000 5.4100 5.4200 5.4300 + 5.4400 5.4500 5.4600 5.4700 5.4800 5.4900 5.5000 5.5100 + 5.5200 5.5300 5.5400 5.5500 5.5600 5.5700 5.5800 5.5900 + 5.6000 5.6100 5.6200 5.6300 5.6400 5.6500 5.6600 5.6700 + 5.6800 5.6900 5.7000 5.7100 5.7200 5.7300 5.7400 5.7500 + 5.7600 5.7700 5.7800 5.7900 5.8000 5.8100 5.8200 5.8300 + 5.8400 5.8500 5.8600 5.8700 5.8800 5.8900 5.9000 5.9100 + 5.9200 5.9300 5.9400 5.9500 5.9600 5.9700 5.9800 5.9900 + 6.0000 6.0100 + + + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 + + + + -2.7605700345E+01 -3.0784865229E+01 -3.2349253618E+01 -3.2751366129E+01 + -3.2443703381E+01 -3.1938024293E+01 -3.1464309182E+01 -3.1081089156E+01 + -3.0780110534E+01 -3.0537539935E+01 -3.0331510013E+01 -3.0145737072E+01 + -2.9968950315E+01 -2.9793612997E+01 -2.9614858119E+01 -2.9429745358E+01 + -2.9236754295E+01 -2.9035419392E+01 -2.8826044018E+01 -2.8609460457E+01 + -2.8386823980E+01 -2.8159440471E+01 -2.7928630453E+01 -2.7695631454E+01 + -2.7461537210E+01 -2.7227268680E+01 -2.6993569183E+01 -2.6761015821E+01 + -2.6530039202E+01 -2.6300945472E+01 -2.6073936437E+01 -2.5849125236E+01 + -2.5626546546E+01 -2.5406161554E+01 -2.5187858066E+01 -2.4971448643E+01 + -2.4756666888E+01 -2.4543166280E+01 -2.4330521781E+01 -2.4118237688E+01 + -2.3905762462E+01 -2.3692510781E+01 -2.3477892157E+01 -2.3261343931E+01 + -2.3042365424E+01 -2.2820549497E+01 -2.2595607833E+01 -2.2367387034E+01 + -2.2135873927E+01 -2.1901189722E+01 -2.1663577130E+01 -2.1423377048E+01 + -2.1181003715E+01 -2.0936919717E+01 -2.0691610496E+01 -2.0445564221E+01 + -2.0199254652E+01 -1.9953130261E+01 -1.9707605286E+01 -1.9463057569E+01 + -1.9219826157E+01 -1.8978213343E+01 -1.8738487400E+01 -1.8500884660E+01 + -1.8265614596E+01 -1.8032862583E+01 -1.7802792920E+01 -1.7575552408E+01 + -1.7351272692E+01 -1.7130071760E+01 -1.6912056036E+01 -1.6697321537E+01 + -1.6485954716E+01 -1.6278033179E+01 -1.6073625719E+01 -1.5872792819E+01 + -1.5675586595E+01 -1.5482050684E+01 -1.5292220051E+01 -1.5106120725E+01 + -1.4923769479E+01 -1.4745173477E+01 -1.4570329881E+01 -1.4399225454E+01 + -1.4231836134E+01 -1.4068126609E+01 -1.3908049886E+01 -1.3751546850E+01 + -1.3598545829E+01 -1.3448962145E+01 -1.3302697611E+01 -1.3159640031E+01 + -1.3019669910E+01 -1.2882669787E+01 -1.2748527869E+01 -1.2617137724E+01 + -1.2488398068E+01 -1.2362212574E+01 -1.2238489692E+01 -1.2117142884E+01 + -1.1998090066E+01 -1.1881253628E+01 -1.1766560302E+01 -1.1653941032E+01 + -1.1543330569E+01 -1.1434668196E+01 -1.1327896756E+01 -1.1222962743E+01 + -1.1119816109E+01 -1.1018409929E+01 -1.0918701041E+01 -1.0820648952E+01 + -1.0724215912E+01 -1.0629366457E+01 -1.0536068056E+01 -1.0444290028E+01 + -1.0354003461E+01 -1.0265180964E+01 -1.0177796938E+01 -1.0091826632E+01 + -1.0007246112E+01 -9.9240322892E+00 -9.8421624187E+00 -9.7616139299E+00 + -9.6823643703E+00 -9.6043910435E+00 -9.5276710191E+00 -9.4521810563E+00 + -9.3778971539E+00 -9.3047950086E+00 -9.2328496504E+00 -9.1620363695E+00 + -9.0923305110E+00 -9.0237077361E+00 -8.9561431451E+00 -8.8896116158E+00 + -8.8240890211E+00 -8.7595512275E+00 -8.6959740871E+00 -8.6333343002E+00 + -8.5716086751E+00 -8.5107748378E+00 -8.4508110921E+00 -8.3916960209E+00 + -8.3334097570E+00 -8.2759323779E+00 -8.2192454990E+00 -8.1633312824E+00 + -8.1081727717E+00 -8.0537547331E+00 -8.0000623436E+00 -7.9470813275E+00 + -7.8947972321E+00 -7.8431966714E+00 -7.7922661900E+00 -7.7419928953E+00 + -7.6923641381E+00 -7.6433675558E+00 -7.5949912477E+00 -7.5472233618E+00 + -7.5000526824E+00 -7.4534678545E+00 -7.4074582876E+00 -7.3620131113E+00 + -7.3171223055E+00 -7.2727754717E+00 -7.2289631023E+00 -7.1856752817E+00 + -7.1429029518E+00 -7.1006366576E+00 -7.0588677730E+00 -7.0175872653E+00 + -6.9767869231E+00 -6.9364581153E+00 -6.8965930059E+00 -6.8571833718E+00 + -6.8182217002E+00 -6.7797001743E+00 -6.7416115702E+00 -6.7039484718E+00 + -6.6667039108E+00 -6.6298708673E+00 -6.5934425974E+00 -6.5574124728E+00 + -6.5217739457E+00 -6.4865207734E+00 -6.4516465808E+00 -6.4171455001E+00 + -6.3830113137E+00 -6.3492384567E+00 -6.3158210267E+00 -6.2827535725E+00 + -6.2500305645E+00 -6.2176466374E+00 -6.1855966333E+00 -6.1538752555E+00 + -6.1224776754E+00 -6.0913987519E+00 -6.0606338291E+00 -6.0301780858E+00 + -6.0000268845E+00 -5.9701757684E+00 -5.9406201055E+00 -5.9113557302E+00 + -5.8823781953E+00 -5.8536833983E+00 -5.8252672254E+00 -5.7971255362E+00 + -5.7692545325E+00 -5.7416501530E+00 -5.7143087187E+00 -5.6872264675E+00 + -5.6603996483E+00 -5.6338248102E+00 -5.6074982583E+00 -5.5814166408E+00 + -5.5555765569E+00 -5.5299745536E+00 -5.5046075112E+00 -5.4794720848E+00 + -5.4545651655E+00 -5.4298837212E+00 -5.4054245210E+00 -5.3811847580E+00 + -5.3571614267E+00 -5.3333515869E+00 -5.3097525260E+00 -5.2863613325E+00 + -5.2631753334E+00 -5.2401918998E+00 -5.2174082208E+00 -5.1948218607E+00 + -5.1724302389E+00 -5.1502307471E+00 -5.1282210592E+00 -5.1063986772E+00 + -5.0847611945E+00 -5.0633063698E+00 -5.0420317959E+00 -5.0209352464E+00 + -5.0000145619E+00 -4.9792674276E+00 -4.9586917756E+00 -4.9382855278E+00 + -4.9180464624E+00 -4.8979726494E+00 -4.8780620924E+00 -4.8583126624E+00 + -4.8387225484E+00 -4.8192898345E+00 -4.8000124892E+00 -4.7808887980E+00 + -4.7619169283E+00 -4.7430949440E+00 -4.7244212124E+00 -4.7058939893E+00 + -4.6875114188E+00 -4.6692719493E+00 -4.6511739183E+00 -4.6332155580E+00 + -4.6153953755E+00 -4.5977117925E+00 -4.5801631296E+00 -4.5627479386E+00 + -4.5454647266E+00 -4.5283119032E+00 -4.5112880519E+00 -4.4943917650E+00 + -4.4776215414E+00 -4.4609759844E+00 -4.4444537713E+00 -4.4280534916E+00 + -4.4117737574E+00 -4.3956133298E+00 -4.3795708900E+00 -4.3636450498E+00 + -4.3478346519E+00 -4.3321384475E+00 -4.3165551080E+00 -4.3010834883E+00 + -4.2857224193E+00 -4.2704706626E+00 -4.2553270471E+00 -4.2402904912E+00 + -4.2253598492E+00 -4.2105339172E+00 -4.1958116967E+00 -4.1811921057E+00 + -4.1666739956E+00 -4.1522563551E+00 -4.1379381819E+00 -4.1237184204E+00 + -4.1095960051E+00 -4.0955700209E+00 -4.0816394841E+00 -4.0678033425E+00 + -4.0540606926E+00 -4.0404106187E+00 -4.0268521620E+00 -4.0133843475E+00 + -4.0000063484E+00 -3.9867172703E+00 -3.9735161622E+00 -3.9604021828E+00 + -3.9473745101E+00 -3.9344322882E+00 -3.9215745909E+00 -3.9088006833E+00 + -3.8961097526E+00 -3.8835009538E+00 -3.8709734686E+00 -3.8585265734E+00 + -3.8461594934E+00 -3.8338713986E+00 -3.8216615661E+00 -3.8095292837E+00 + -3.7974738126E+00 -3.7854943426E+00 -3.7735902317E+00 -3.7617607813E+00 + -3.7500052762E+00 -3.7383229617E+00 -3.7267132311E+00 -3.7151754129E+00 + -3.7037088125E+00 -3.6923127373E+00 -3.6809865997E+00 -3.6697297595E+00 + -3.6585415452E+00 -3.6474213158E+00 -3.6363685045E+00 -3.6253825007E+00 + -3.6144626587E+00 -3.6036083788E+00 -3.5928191167E+00 -3.5820942902E+00 + -3.5714332815E+00 -3.5608355222E+00 -3.5503004929E+00 -3.5398276385E+00 + -3.5294163709E+00 -3.5190661440E+00 -3.5087764652E+00 -3.4985468053E+00 + -3.4883766076E+00 -3.4782653400E+00 -3.4682125383E+00 -3.4582176981E+00 + -3.4482802961E+00 -3.4383998061E+00 -3.4285757940E+00 -3.4188077789E+00 + -3.4090952728E+00 -3.3994377480E+00 -3.3898348019E+00 -3.3802859760E+00 + -3.3707908119E+00 -3.3613487964E+00 -3.3519595367E+00 -3.3426226031E+00 + -3.3333375585E+00 -3.3241039280E+00 -3.3149213002E+00 -3.3057892823E+00 + -3.2967074576E+00 -3.2876753919E+00 -3.2786926486E+00 -3.2697588729E+00 + -3.2608736674E+00 -3.2520366348E+00 -3.2432473253E+00 -3.2345054052E+00 + -3.2258105008E+00 -3.2171622335E+00 -3.2085601965E+00 -3.2000040171E+00 + -3.1914933640E+00 -3.1830278760E+00 -3.1746071920E+00 -3.1662308963E+00 + -3.1578986987E+00 -3.1496102547E+00 -3.1413652201E+00 -3.1331632249E+00 + -3.1250039281E+00 -3.1168870307E+00 -3.1088122044E+00 -3.1007791210E+00 + -3.0927874062E+00 -3.0848367838E+00 -3.0769269476E+00 -3.0690575847E+00 + -3.0612283700E+00 -3.0534389657E+00 -3.0456891132E+00 -3.0379785141E+00 + -3.0303068700E+00 -3.0226738555E+00 -3.0150791818E+00 -3.0075225888E+00 + -3.0000037918E+00 -2.9925225065E+00 -2.9850784103E+00 -2.9776712548E+00 + -2.9703007806E+00 -2.9629667163E+00 -2.9556687906E+00 -2.9484066870E+00 + -2.9411801890E+00 -2.9339890404E+00 -2.9268329824E+00 -2.9197117526E+00 + -2.9126250543E+00 -2.9055726836E+00 -2.8985543940E+00 -2.8915699388E+00 + -2.8846190644E+00 -2.8777014940E+00 -2.8708170314E+00 -2.8639654413E+00 + -2.8571464888E+00 -2.8503599315E+00 -2.8436055055E+00 -2.8368830243E+00 + -2.8301922637E+00 -2.8235329996E+00 -2.8169050030E+00 -2.8103080169E+00 + -2.8037418662E+00 -2.7972063374E+00 -2.7907012166E+00 -2.7842262903E+00 + -2.7777813024E+00 -2.7713660913E+00 -2.7649804532E+00 -2.7586241845E+00 + -2.7522970813E+00 -2.7459989054E+00 -2.7397294879E+00 -2.7334886419E+00 + -2.7272761732E+00 -2.7210918876E+00 -2.7149355663E+00 -2.7088070278E+00 + -2.7027061039E+00 -2.6966326094E+00 -2.6905863591E+00 -2.6845671557E+00 + -2.6785748003E+00 -2.6726091446E+00 -2.6666700119E+00 -2.6607572257E+00 + -2.6548706095E+00 -2.6490099504E+00 -2.6431751131E+00 -2.6373659318E+00 + -2.6315822382E+00 -2.6258238639E+00 -2.6200906210E+00 -2.6143823457E+00 + -2.6086988964E+00 -2.6030401127E+00 -2.5974058340E+00 -2.5917958991E+00 + -2.5862101123E+00 -2.5806483565E+00 -2.5751104788E+00 -2.5695963262E+00 + -2.5641057455E+00 -2.5586385667E+00 -2.5531946375E+00 -2.5477738314E+00 + -2.5423760028E+00 -2.5370010057E+00 -2.5316486943E+00 -2.5263188926E+00 + -2.5210114847E+00 -2.5157263372E+00 -2.5104633109E+00 -2.5052222669E+00 + -2.5000030605E+00 -2.4948055297E+00 -2.4896295712E+00 -2.4844750523E+00 + -2.4793418405E+00 -2.4742298031E+00 -2.4691387940E+00 -2.4640686757E+00 + -2.4590193426E+00 -2.4539906681E+00 -2.4489825259E+00 -2.4439947896E+00 + -2.4390273136E+00 -2.4340799794E+00 -2.4291526807E+00 -2.4242452972E+00 + -2.4193577083E+00 -2.4144897934E+00 -2.4096414103E+00 -2.4048124528E+00 + -2.4000028171E+00 -2.3952123882E+00 -2.3904410511E+00 -2.3856886909E+00 + -2.3809551705E+00 -2.3762403912E+00 -2.3715442531E+00 -2.3668666465E+00 + -2.3622074621E+00 -2.3575665900E+00 -2.3529439004E+00 -2.3483392967E+00 + -2.3437526852E+00 -2.3391839614E+00 -2.3346330208E+00 -2.3300997590E+00 + -2.3255840547E+00 -2.3210858091E+00 -2.3166049363E+00 -2.3121413368E+00 + -2.3076949109E+00 -2.3032655590E+00 -2.2988531707E+00 -2.2944576400E+00 + -2.2900788908E+00 -2.2857168282E+00 -2.2813713571E+00 -2.2770423826E+00 + -2.2727298068E+00 -2.2684335124E+00 -2.2641534347E+00 -2.2598894829E+00 + -2.2556415666E+00 -2.2514095953E+00 -2.2471934785E+00 -2.2429931038E+00 + -2.2388083992E+00 -2.2346392847E+00 -2.2304856742E+00 -2.2263474813E+00 + -2.2222246197E+00 -2.2181169931E+00 -2.2140245088E+00 -2.2099471023E+00 + -2.2058846913E+00 -2.2018371933E+00 -2.1978045263E+00 -2.1937866078E+00 + -2.1897833323E+00 -2.1857946406E+00 -2.1818204576E+00 -2.1778607050E+00 + -2.1739153043E+00 -2.1699841770E+00 -2.1660672366E+00 -2.1621643955E+00 + -2.1582755972E+00 -2.1544007668E+00 -2.1505398296E+00 -2.1466927107E+00 + -2.1428593354E+00 -2.1390396118E+00 -2.1352334757E+00 -2.1314408644E+00 + -2.1276617067E+00 -2.1238959313E+00 -2.1201434667E+00 -2.1164042418E+00 + -2.1126781618E+00 -2.1089651802E+00 -2.1052652307E+00 -2.1015782452E+00 + -2.0979041558E+00 -2.0942428944E+00 -2.0905943898E+00 -2.0869585565E+00 + -2.0833353508E+00 -2.0797247079E+00 -2.0761265629E+00 -2.0725408510E+00 + -2.0689675074E+00 -2.0654064613E+00 -2.0618576366E+00 -2.0583209894E+00 + -2.0547964579E+00 -2.0512839803E+00 -2.0477834948E+00 -2.0442949396E+00 + -2.0408182464E+00 -2.0373533437E+00 -2.0339001895E+00 -2.0304587249E+00 + -2.0270288910E+00 -2.0236106288E+00 -2.0202038794E+00 -2.0168085786E+00 + -2.0134246558E+00 -2.0100520723E+00 -2.0066907719E+00 -2.0033406985E+00 + -2.0000017959E+00 -1.9966740079E+00 + + + + 0.0000000000E+00 -8.2277987587E-02 -1.6449650094E-01 -2.4659331589E-01 + -3.2850076507E-01 -4.1014315697E-01 -4.9143436126E-01 -5.7227561145E-01 + -6.5255357242E-01 -7.3213871601E-01 -8.1088404273E-01 -8.8862418182E-01 + -9.6517489579E-01 -1.0403330086E+00 -1.1138767696E+00 -1.1855666583E+00 + -1.2551466268E+00 -1.3223457701E+00 -1.3868804065E+00 -1.4484565448E+00 + -1.5067727038E+00 -1.5615230499E+00 -1.6124008059E+00 -1.6591018874E+00 + -1.7013287065E+00 -1.7387940878E+00 -1.7712252542E+00 -1.7983677872E+00 + -1.8199895278E+00 -1.8358843512E+00 -1.8458757490E+00 -1.8498201626E+00 + -1.8476100093E+00 -1.8391763180E+00 -1.8244910913E+00 -1.8035689946E+00 + -1.7764688338E+00 -1.7432942635E+00 -1.7041941790E+00 -1.6593624450E+00 + -1.6090370910E+00 -1.5534989864E+00 -1.4930699667E+00 -1.4281104400E+00 + -1.3590165014E+00 -1.2862165869E+00 -1.2101677086E+00 -1.1313513155E+00 + -1.0502688403E+00 -9.6743710159E-01 -8.8338307362E-01 -7.9863905513E-01 + -7.1373774907E-01 -6.2920651981E-01 -5.4556280508E-01 -4.6330924845E-01 + -3.8292814427E-01 -3.0487830138E-01 -2.2958906110E-01 -1.5745833560E-01 + -8.8847539142E-02 -2.4079508545E-02 3.6563691834E-02 9.2844371601E-02 + 1.4456869600E-01 1.9158861786E-01 2.3380285278E-01 2.7115554880E-01 + 3.0363571638E-01 3.3127718718E-01 3.5415591151E-01 3.7238794759E-01 + 3.8612701355E-01 3.9556147997E-01 4.0091144918E-01 4.0242475349E-01 + 4.0037331823E-01 3.9504921005E-01 3.8676054393E-01 3.7582731451E-01 + 3.6257720433E-01 3.4734141910E-01 3.3045059692E-01 3.1223083453E-01 + 2.9299986887E-01 2.7306344758E-01 2.5271191615E-01 2.3221704416E-01 + 2.1182910699E-01 1.9177423337E-01 1.7225200095E-01 1.5343329037E-01 + 1.3546088278E-01 1.1845195585E-01 1.0249965400E-01 8.7673842851E-02 + 7.4022153762E-02 6.1571422473E-02 5.0329214779E-02 4.0284462837E-02 + 3.1410783526E-02 2.3667878040E-02 1.7003522416E-02 1.1355567187E-02 + 6.6538808501E-03 2.8220678737E-03 -2.2001240793E-04 -2.5547866842E-03 + -4.2654366871E-03 -5.4349451843E-03 -6.1429431867E-03 -6.4660691080E-03 + -6.4767064284E-03 -6.2432624449E-03 -5.8262992394E-03 -5.2807905609E-03 + -4.6556441299E-03 -3.9940297562E-03 -3.3299352117E-03 -2.6921631841E-03 + -2.1041805481E-03 -1.5819270303E-03 -1.1356467997E-03 -7.7141771203E-04 + -4.9002008278E-04 -2.8685599057E-04 -1.5440700844E-04 -8.1295680504E-05 + -5.2958831332E-05 -4.9024979272E-05 -2.2654023957E-05 2.0802206378E-06 + 1.6220072646E-06 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 + + + 0.0000000000E+00 -1.1723087215E-02 -2.2970588285E-02 -3.3277762775E-02 + -4.2201369170E-02 -4.9329936250E-02 -5.4293469599E-02 -5.6772419538E-02 + -5.6505748973E-02 -5.3297954463E-02 -4.7024911330E-02 -3.7638432778E-02 + -2.5169454710E-02 -9.7297804400E-03 8.4876559486E-03 2.9210025055E-02 + 5.2087327705E-02 7.6696576823E-02 1.0254737811E-01 1.2908882978E-01 + 1.5571763119E-01 1.8178728239E-01 2.0661822255E-01 2.2950875795E-01 + 2.4974659019E-01 2.6662075364E-01 2.7943382524E-01 2.8751410085E-01 + 2.9022762150E-01 2.8698983512E-01 2.7727667838E-01 2.6063490065E-01 + 2.3669144662E-01 2.0516162976E-01 1.6585646477E-01 1.1868792319E-01 + 6.3673539750E-02 9.3865644130E-04 -6.9282296205E-02 -1.4664653237E-01 + -2.3070525508E-01 -3.2090755014E-01 -4.1660590836E-01 -5.1706326588E-01 + -6.2146146368E-01 -7.2891100660E-01 -8.3846198150E-01 -9.4911597183E-01 + -1.0598387764E+00 -1.1695734189E+00 -1.2772547958E+00 -1.3818230208E+00 + -1.4822368409E+00 -1.5774891053E+00 -1.6666187728E+00 -1.7487234696E+00 + -1.8229735575E+00 -1.8886194365E+00 -1.9450060422E+00 -1.9915764523E+00 + -2.0278831780E+00 -2.0535914046E+00 -2.0684822557E+00 -2.0724589319E+00 + -2.0655426479E+00 -2.0478740211E+00 -2.0197115502E+00 -1.9814248238E+00 + -1.9334892505E+00 -1.8764808008E+00 -1.8110656211E+00 -1.7379906968E+00 + -1.6580733899E+00 -1.5721902388E+00 -1.4812642140E+00 -1.3862522622E+00 + -1.2881324457E+00 -1.1878908963E+00 -1.0865088556E+00 -9.8494996663E-01 + -8.8414798922E-01 -7.8499509134E-01 -6.8833085835E-01 -5.9493213952E-01 + -5.0550383294E-01 -4.2067068746E-01 -3.4097017799E-01 -2.6684648767E-01 + -1.9864560686E-01 -1.3661153627E-01 -8.0883449121E-02 -3.1493861467E-02 + 1.1620322833E-02 4.8599589644E-02 7.9650226738E-02 1.0503788587E-01 + 1.2508039801E-01 1.4013995079E-01 1.5061541504E-01 1.5693366067E-01 + 1.5954043230E-01 1.5889246200E-01 1.5544945597E-01 1.4966651822E-01 + 1.4199014613E-01 1.3284299597E-01 1.2262519169E-01 1.1170778401E-01 + 1.0042928223E-01 8.9095504256E-02 7.7963775928E-02 6.7255547029E-02 + 5.7152141457E-02 4.7799764163E-02 3.9294804857E-02 3.1701123437E-02 + 2.5050278343E-02 1.9344675342E-02 1.4551822257E-02 1.0621676019E-02 + 7.4866418173E-03 5.0616443312E-03 3.2542385947E-03 1.9673338834E-03 + 1.1012904675E-03 5.6303386455E-04 2.6418408232E-04 1.2416036016E-04 + 8.3638494781E-05 8.3445532246E-05 3.9712888830E-05 -3.5905440177E-06 + -2.7996494097E-06 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 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.5860269827E-03 1.4317078272E-02 3.2112256128E-02 + 5.6837367274E-02 8.8305873299E-02 1.2628021312E-01 1.7047348950E-01 + 2.2055150919E-01 2.7613516420E-01 3.3680313934E-01 4.0209492899E-01 + 4.7151414403E-01 5.4453208758E-01 6.2059157645E-01 6.9911098297E-01 + 7.7948847033E-01 8.6110639245E-01 9.4333582837E-01 1.0255412195E+00 + 1.1070850756E+00 1.1873327175E+00 1.2656570189E+00 1.3414431144E+00 + 1.4140930355E+00 1.4830302391E+00 1.5477039940E+00 1.6075935868E+00 + 1.6622123152E+00 1.7111112337E+00 1.7538826190E+00 1.7901631245E+00 + 1.8196365952E+00 1.8420365276E+00 1.8571481070E+00 1.8648098949E+00 + 1.8649150077E+00 1.8574119504E+00 1.8423049075E+00 1.8196536236E+00 + 1.7895728317E+00 1.7522312003E+00 1.7078498355E+00 1.6567003418E+00 + 1.5991024567E+00 1.5354212770E+00 1.4660641009E+00 1.3914769134E+00 + 1.3121405542E+00 1.2285667331E+00 1.1412932403E+00 1.0508797039E+00 + 9.5790298913E-01 8.6295169350E-01 7.6662172078E-01 6.6951129918E-01 + 5.7221537424E-01 4.7532181715E-01 3.7940524579E-01 2.8502383408E-01 + 1.9271369849E-01 1.0298539150E-01 1.6320224853E-02 -6.6834318537E-02 + -1.4606648327E-01 -2.2100368547E-01 -2.9131520005E-01 -3.5671342275E-01 + -4.1695549560E-01 -4.7184486654E-01 -5.2123135255E-01 -5.6501133337E-01 + -6.0312746230E-01 -6.3556796384E-01 -6.6236527842E-01 -6.8359449970E-01 + -6.9937142322E-01 -7.0985023488E-01 -7.1522090252E-01 -7.1570630926E-01 + -7.1155917402E-01 -7.0305880711E-01 -6.9050775058E-01 -6.7422835456E-01 + -6.5455934146E-01 -6.3185241011E-01 -6.0646893131E-01 -5.7877678564E-01 + -5.4914739239E-01 -5.1795297687E-01 -4.8556415192E-01 -4.5234782509E-01 + -4.1866194064E-01 -3.8484854594E-01 -3.5122924483E-01 -3.1810273720E-01 + -2.8574272301E-01 -2.5439648427E-01 -2.2428377777E-01 -1.9559309794E-01 + -1.6848457254E-01 -1.4308867914E-01 -1.1950650654E-01 -9.7810361217E-02 + -7.8045864567E-02 -6.0228944123E-02 -4.4352023434E-02 -3.0384350338E-02 + -1.8273960617E-02 -7.9495883994E-03 6.7759973479E-04 7.7099198058E-03 + 1.3261526160E-02 1.7457218324E-02 2.0427124578E-02 2.2305646179E-02 + 2.3229681315E-02 2.3338002873E-02 2.2762351834E-02 2.1631893993E-02 + 2.0072411241E-02 1.8198596607E-02 1.6115058374E-02 1.3919754929E-02 + 1.1698898123E-02 9.5228516845E-03 7.4546618226E-03 5.5452981103E-03 + 3.8288793415E-03 2.3331720374E-03 1.0736899984E-03 5.2926998136E-05 + -7.3149996906E-04 -1.2929678601E-03 -1.6511600028E-03 -1.8297965622E-03 + -1.8585360541E-03 -1.7678438403E-03 -1.5911002682E-03 -1.3586955246E-03 + -1.1019690505E-03 -8.4702839256E-04 -6.1497715279E-04 -4.2541468309E-04 + -2.8402093044E-04 -1.9725198792E-04 -1.6029137555E-04 -1.5177315345E-04 + -8.9838576118E-05 -5.4771430827E-06 9.6147639048E-06 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 + + + 0.0000000000E+00 9.2893242255E-04 3.7019764676E-03 8.2779769445E-03 + 1.4588689808E-02 2.2539302945E-02 3.2009163013E-02 4.2852705981E-02 + 5.4900588274E-02 6.7961014587E-02 8.1821257513E-02 9.6249363136E-02 + 1.1099603565E-01 1.2579669284E-01 1.4037368313E-01 1.5443865322E-01 + 1.6769505435E-01 1.7984077312E-01 1.9057087191E-01 1.9958042202E-01 + 2.0656741042E-01 2.1123570101E-01 2.1329802783E-01 2.1247899806E-01 + 2.0851807950E-01 2.0117254726E-01 1.9022036400E-01 1.7546296384E-01 + 1.5672791414E-01 1.3387142592E-01 1.0678068413E-01 7.5375969726E-02 + 3.9612545899E-02 -5.1771162367E-04 -4.4984990254E-02 -9.3720492346E-02 + -1.4661576728E-01 -2.0352233418E-01 -2.6425172921E-01 -3.2857590175E-01 + -3.9622799242E-01 -4.6690352048E-01 -5.4026196118E-01 -6.1592871460E-01 + -6.9349745874E-01 -7.7253287529E-01 -8.5257373131E-01 -9.3313629426E-01 + -1.0137180499E+00 -1.0938015836E+00 -1.1728591565E+00 -1.2503568716E+00 + -1.3257591460E+00 -1.3985339592E+00 -1.4681572088E+00 -1.5341175221E+00 + -1.5959215886E+00 -1.6530979289E+00 -1.7052026499E+00 -1.7518226198E+00 + -1.7925806287E+00 -1.8271386946E+00 -1.8552014319E+00 -1.8765200508E+00 + -1.8908940379E+00 -1.8981739659E+00 -1.8982634918E+00 -1.8911201167E+00 + -1.8767560905E+00 -1.8552388890E+00 -1.8266905450E+00 -1.7912868237E+00 + -1.7492558153E+00 -1.7008761570E+00 -1.6464740899E+00 -1.5864208426E+00 + -1.5211291980E+00 -1.4510496961E+00 -1.3766664971E+00 -1.2984929459E+00 + -1.2170668968E+00 -1.1329458601E+00 -1.0467020356E+00 -9.5891730044E-01 + -8.7017821889E-01 -7.8107114433E-01 -6.9217748077E-01 -6.0406917196E-01 + -5.1730448344E-01 -4.3242413992E-01 -3.4994793756E-01 -2.7037179974E-01 + -1.9415879235E-01 -1.2172780433E-01 -5.3447524144E-02 1.0365478214E-02 + 6.9448141778E-02 1.2359143475E-01 1.7264050244E-01 2.1649715017E-01 + 2.5511519340E-01 2.8850025641E-01 3.1670773256E-01 3.3984027408E-01 + 3.5804463559E-01 3.7150996533E-01 3.8046133188E-01 3.8515667437E-01 + 3.8588276317E-01 3.8295243350E-01 3.7669486668E-01 3.6745451357E-01 + 3.5558583975E-01 3.4145309072E-01 3.2541361978E-01 3.0782259726E-01 + 2.8902885306E-01 2.6937446596E-01 2.4917322584E-01 2.2872577817E-01 + 2.0831749242E-01 1.8820101658E-01 1.6860103788E-01 1.4972254242E-01 + 1.3173967350E-01 1.1478834281E-01 9.8985070983E-02 8.4416837992E-02 + 7.1132442003E-02 5.9164183104E-02 4.8515945607E-02 3.9162908641E-02 + 3.1067102133E-02 2.4166226359E-02 1.8383581049E-02 1.3631066681E-02 + 9.8082692597E-03 6.8108066814E-03 4.5261412594E-03 2.8479629339E-03 + 1.6647468801E-03 8.7544647586E-04 3.8748703362E-04 1.0892680591E-04 + -2.3425222903E-05 -7.7922079727E-05 -9.4002294959E-05 -9.5906384375E-05 + -5.6988379155E-05 -3.5463910332E-06 5.9608986436E-06 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 + + + 1.9514303897E+01 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 2.7522534413E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 -9.6137176497E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 -3.2324794045E+00 + + + + + + 0.0000000000E+00 2.4555322044E-04 9.9435596078E-04 2.2826802809E-03 + 4.1704577663E-03 6.7405039734E-03 1.0097446971E-02 1.4366374033E-02 + 1.9691214178E-02 2.6232877622E-02 3.4167176269E-02 4.3682552029E-02 + 5.4977642082E-02 6.8258712011E-02 8.3736989112E-02 1.0162592925E-01 + 1.2213845080E-01 1.4548416964E-01 1.7186666804E-01 2.0148082992E-01 + 2.3451027351E-01 2.7112491013E-01 3.1147865648E-01 3.5570732483E-01 + 4.0392671304E-01 4.5623091264E-01 5.1269085328E-01 5.7335309214E-01 + 6.3823886033E-01 7.0734337238E-01 7.8063540062E-01 8.5805711439E-01 + 9.3952417996E-01 1.0249261017E+00 1.1141268534E+00 1.2069656628E+00 + 1.3032581166E+00 1.4027973581E+00 1.5053555697E+00 1.6106855669E+00 + 1.7185225365E+00 1.8285859201E+00 1.9405813920E+00 2.0542029191E+00 + 2.1691348784E+00 2.2850542133E+00 2.4016326049E+00 2.5185386399E+00 + 2.6354399503E+00 2.7520052604E+00 2.8679065939E+00 2.9828210875E+00 + 3.0964328328E+00 3.2084348565E+00 3.3185305939E+00 3.4264354515E+00 + 3.5318783577E+00 3.6346027795E+00 3.7343681356E+00 3.8309505035E+00 + 3.9241436467E+00 4.0137595888E+00 4.0996291450E+00 4.1816023622E+00 + 4.2595486912E+00 4.3333571276E+00 4.4029361120E+00 4.4682134089E+00 + 4.5291358858E+00 4.5856689029E+00 4.6377959244E+00 4.6855179084E+00 + 4.7288525836E+00 4.7678337886E+00 4.8025102209E+00 4.8329448489E+00 + 4.8592138549E+00 4.8814055976E+00 4.8996195505E+00 4.9139652152E+00 + 4.9245610181E+00 4.9315332006E+00 4.9350147101E+00 4.9351441007E+00 + 4.9320644514E+00 4.9259223085E+00 4.9168666605E+00 4.9050479496E+00 + 4.8906171284E+00 4.8737247647E+00 4.8545202011E+00 4.8331507724E+00 + 4.8097610853E+00 4.7844923629E+00 4.7574818564E+00 4.7288623255E+00 + 4.6987615887E+00 4.6673022280E+00 4.6346013382E+00 4.6007695137E+00 + 4.5659116073E+00 4.5301262966E+00 4.4935060361E+00 4.4561370652E+00 + 4.4180998488E+00 4.3794678786E+00 4.3403092049E+00 4.3006862196E+00 + 4.2606559084E+00 4.2202701844E+00 4.1795755629E+00 4.1386143513E+00 + 4.0974246608E+00 4.0560406954E+00 4.0144930190E+00 3.9728092235E+00 + 3.9310140868E+00 3.8891296584E+00 3.8471763585E+00 3.8051727118E+00 + 3.7631353587E+00 3.7210801524E+00 3.6790222306E+00 3.6369754752E+00 + 3.5949532922E+00 3.5529695496E+00 3.5110371051E+00 3.4691686011E+00 + 3.4273777892E+00 3.3856773650E+00 3.3440802075E+00 3.3026002179E+00 + 3.2612500462E+00 3.2200431162E+00 3.1789931977E+00 3.1381126416E+00 + 3.0974153228E+00 3.0569141416E+00 3.0166213097E+00 2.9765501384E+00 + 2.9367121016E+00 2.8971193603E+00 2.8577833885E+00 2.8187144722E+00 + 2.7799237680E+00 2.7414203117E+00 2.7032138975E+00 2.6653129770E+00 + 2.6277254184E+00 2.5904592077E+00 2.5535203424E+00 2.5169161760E+00 + 2.4806515332E+00 2.4447325241E+00 2.4091633992E+00 2.3739487914E+00 + 2.3390925610E+00 2.3045979624E+00 2.2704685078E+00 2.2367061977E+00 + 2.2033142099E+00 2.1702934279E+00 2.1376466921E+00 2.1053739087E+00 + 2.0734775689E+00 2.0419567389E+00 2.0108135020E+00 1.9800463428E+00 + 1.9496568192E+00 1.9196429197E+00 1.8900057747E+00 1.8607428608E+00 + 1.8318549701E+00 1.8033391361E+00 1.7751957603E+00 1.7474216534E+00 + 1.7200166764E+00 1.6929775891E+00 1.6663036438E+00 1.6399916950E+00 + 1.6140403080E+00 1.5884465799E+00 1.5632083065E+00 1.5383229695E+00 + 1.5137875184E+00 1.4895999441E+00 1.4657562937E+00 1.4422551560E+00 + 1.4190916630E+00 1.3962646344E+00 1.3737695287E+00 1.3516041505E+00 + 1.3297648393E+00 1.3082482527E+00 1.2870517468E+00 1.2661707761E+00 + 1.2456035241E+00 1.2253449792E+00 1.2053930652E+00 1.1857436665E+00 + 1.1663933299E+00 1.1473392986E+00 1.1285766929E+00 1.1101036434E+00 + 1.0919153412E+00 1.0740090637E+00 1.0563813566E+00 1.0390278824E+00 + 1.0219464881E+00 1.0051322370E+00 9.8858273586E-01 9.7229433753E-01 + 9.5626288454E-01 9.4048618717E-01 9.2495945205E-01 9.0968023104E-01 + 8.9464515722E-01 8.7984988668E-01 8.6529242529E-01 8.5096836827E-01 + 8.3687483992E-01 8.2300917666E-01 8.0936653060E-01 7.9594527075E-01 + 7.8274162686E-01 7.6975194584E-01 7.5697415488E-01 7.4440404132E-01 + 7.3203906033E-01 7.1987668706E-01 7.0791241321E-01 6.9614463944E-01 + 6.8457015681E-01 6.7318513862E-01 6.6198789975E-01 6.5097491802E-01 + 6.4014312669E-01 6.2949060514E-01 6.1901366286E-01 6.0870987684E-01 + 5.9857713213E-01 5.8861165082E-01 5.7881152804E-01 5.6917450923E-01 + 5.5969679766E-01 5.5037688431E-01 5.4121243428E-01 5.3219968832E-01 + 5.2333742019E-01 5.1462325731E-01 5.0605357159E-01 4.9762726943E-01 + 4.8934201433E-01 4.8119433956E-01 4.7318319951E-01 4.6530638099E-01 + 4.5756049431E-01 4.4994457445E-01 4.4245651371E-01 4.3509310405E-01 + 4.2785330791E-01 4.2073518522E-01 4.1373575057E-01 4.0685380826E-01 + 4.0008762412E-01 3.9343446965E-01 3.8689291717E-01 3.8046146824E-01 + 3.7413768570E-01 3.6791984300E-01 3.6180669955E-01 3.5579614205E-01 + 3.4988609008E-01 3.4407557281E-01 3.3836282768E-01 3.3274538488E-01 + 3.2722254123E-01 3.2179272713E-01 3.1645359987E-01 3.1120418021E-01 + 3.0604318897E-01 3.0096867591E-01 2.9597910956E-01 2.9107357482E-01 + 2.8625054370E-01 2.8150791508E-01 2.7684511501E-01 2.7226081425E-01 + 2.6775306980E-01 2.6332090390E-01 2.5896332932E-01 2.5467885571E-01 + 2.5046582167E-01 2.4632363995E-01 2.4225111660E-01 2.3824645700E-01 + 2.3430890125E-01 2.3043753190E-01 2.2663103075E-01 2.2288787866E-01 + 2.1920758650E-01 2.1558909889E-01 2.1203087347E-01 2.0853209698E-01 + 2.0509203703E-01 2.0170965015E-01 1.9838332245E-01 1.9511274762E-01 + 1.9189700637E-01 1.8873489405E-01 1.8562532983E-01 1.8256784638E-01 + 1.7956156317E-01 1.7660516721E-01 1.7369802148E-01 1.7083951993E-01 + 1.6802882312E-01 1.6526455844E-01 1.6254643724E-01 1.5987374760E-01 + 1.5724562162E-01 1.5466088112E-01 1.5211928277E-01 1.4962011532E-01 + 1.4716247731E-01 1.4474543496E-01 1.4236869347E-01 1.4003158209E-01 + 1.3773319599E-01 1.3547277982E-01 1.3325001085E-01 1.3106425897E-01 + 1.2891464189E-01 1.2680052175E-01 1.2472157135E-01 1.2267720085E-01 + 1.2066657246E-01 1.1868911133E-01 1.1674450739E-01 1.1483221045E-01 + 1.1295144579E-01 1.1110165375E-01 1.0928256040E-01 1.0749365423E-01 + 1.0573423961E-01 1.0400373057E-01 1.0230190533E-01 1.0062828986E-01 + 9.8982281391E-02 9.7363232570E-02 9.5770986299E-02 9.4205104640E-02 + 9.2665089253E-02 9.1150203181E-02 8.9660362635E-02 8.8195164240E-02 + 8.6754184314E-02 8.5336692055E-02 8.3942565008E-02 8.2571471377E-02 + 8.1223022254E-02 7.9896618189E-02 7.8591960933E-02 7.7308833712E-02 + 7.6046880544E-02 7.4805642086E-02 7.3584629176E-02 7.2383740506E-02 + 7.1202651131E-02 7.0041020775E-02 6.8898242541E-02 6.7774247481E-02 + 6.6668765461E-02 6.5581486791E-02 6.4511958509E-02 6.3459869402E-02 + 6.2425088961E-02 6.1407336085E-02 6.0406316994E-02 5.9421479885E-02 + 5.8452822608E-02 5.7500090972E-02 5.6563019041E-02 5.5641218020E-02 + 5.4734411156E-02 5.3842496378E-02 5.2965233586E-02 5.2102372240E-02 + 5.1253457601E-02 5.0418435755E-02 4.9597119611E-02 4.8789283548E-02 + 4.7994643509E-02 4.7212852717E-02 4.6443878327E-02 4.5687517686E-02 + 4.4943559586E-02 4.4211678082E-02 4.3491681375E-02 4.2783483184E-02 + 4.2086894267E-02 4.1401717619E-02 4.0727603994E-02 4.0064476856E-02 + 3.9412211446E-02 3.8770631668E-02 3.8139554396E-02 3.7518622579E-02 + 3.6907839114E-02 3.6307055480E-02 3.5716108368E-02 3.5134814385E-02 + 3.4562862225E-02 3.4000262270E-02 3.3446869273E-02 3.2902532276E-02 + 3.2367070616E-02 3.1840217984E-02 3.1321976903E-02 3.0812213425E-02 + 3.0310788441E-02 2.9817533657E-02 2.9332204905E-02 2.8854805910E-02 + 2.8385213523E-02 2.7923299942E-02 2.7468917225E-02 2.7021823958E-02 + 2.6582032748E-02 2.6149430718E-02 2.5723900801E-02 2.5305321709E-02 + 2.4893439431E-02 2.4488280997E-02 2.4089743440E-02 2.3697719832E-02 + 2.3312099450E-02 2.2932666819E-02 2.2559404233E-02 2.2192239239E-02 + 2.1831074449E-02 2.1475809062E-02 2.1126270265E-02 2.0782385275E-02 + 2.0444115841E-02 2.0111373508E-02 1.9784066758E-02 1.9462068697E-02 + 1.9145243997E-02 1.8833590598E-02 1.8527028380E-02 1.8225474479E-02 + 1.7928843269E-02 1.7636952905E-02 1.7349817563E-02 1.7067371509E-02 + 1.6789539913E-02 1.6516245476E-02 1.6247359808E-02 1.5982811518E-02 + 1.5722581767E-02 1.5466603166E-02 1.5214806114E-02 1.4967116953E-02 + 1.4723378333E-02 1.4483616032E-02 1.4247769523E-02 1.4015776305E-02 + 1.3787571887E-02 1.3563051106E-02 1.3342146415E-02 1.3124847757E-02 + 1.2911099151E-02 1.2700842848E-02 1.2494019314E-02 1.2290502671E-02 + 1.2090293497E-02 1.1893354059E-02 1.1699632778E-02 1.1509076483E-02 + 1.1321619331E-02 1.1137157247E-02 1.0955705606E-02 1.0777218459E-02 + 1.0601648447E-02 1.0428946789E-02 1.0259036651E-02 1.0091856576E-02 + 9.9274061406E-03 9.7656432701E-03 9.6065246281E-03 9.4500056081E-03 + 9.2960048318E-03 9.1444890831E-03 8.9954481332E-03 8.8488435842E-03 + 8.7046359123E-03 8.5627844608E-03 8.4232085626E-03 8.2858909371E-03 + 8.1508168888E-03 8.0179514903E-03 7.8872588105E-03 7.7587019092E-03 + 7.6322050317E-03 7.5077566051E-03 7.3853419925E-03 7.2649295244E-03 + 7.1464866384E-03 7.0299798746E-03 6.9153417240E-03 6.8025579795E-03 + 6.6916177587E-03 6.5824924357E-03 6.4751525918E-03 6.3695680107E-03 + 6.2656820661E-03 6.1634712357E-03 6.0629312937E-03 5.9640364449E-03 + 5.8667601907E-03 5.7710753252E-03 5.6769381537E-03 5.5843106621E-03 + 5.4931974191E-03 5.4035752507E-03 5.3154203599E-03 5.2287083230E-03 + 5.1434098717E-03 5.0594687788E-03 4.9768997803E-03 4.8956821190E-03 + 4.8157944869E-03 4.7372150220E-03 4.6599213051E-03 4.5838621307E-03 + 4.5090375337E-03 4.4354374536E-03 4.3630428668E-03 4.2918342606E-03 + 4.2217916304E-03 4.1528822007E-03 4.0850770685E-03 4.0183813155E-03 + 3.9527780072E-03 3.8882497776E-03 3.8247788275E-03 3.7623469216E-03 + 3.7009082742E-03 3.6404704082E-03 3.5810223207E-03 3.5225486012E-03 + 3.4650334570E-03 3.4084607124E-03 3.3528049178E-03 3.2980391006E-03 + 3.2441697846E-03 3.1911833332E-03 3.1390657742E-03 3.0878027987E-03 + 3.0373797587E-03 2.9877641034E-03 2.9389511875E-03 2.8909379581E-03 + 2.8437120887E-03 2.7972609573E-03 2.7515716446E-03 2.7066309326E-03 + 2.6624026263E-03 2.6188968441E-03 2.5761042605E-03 2.5340137731E-03 + 2.4926140192E-03 2.4518933742E-03 2.4118369488E-03 2.3724166399E-03 + 2.3336420418E-03 2.2955034166E-03 2.2579907985E-03 2.2210939931E-03 + 2.1848025759E-03 2.1491007974E-03 2.1139679998E-03 2.0794109580E-03 + 2.0454209566E-03 2.0119890803E-03 1.9791062132E-03 1.9467630375E-03 + 1.9149447857E-03 1.8836339902E-03 1.8528364927E-03 1.8225445192E-03 + 1.7927501202E-03 1.7634451708E-03 1.7346213692E-03 1.7062663468E-03 + 1.6783624620E-03 1.6509161204E-03 1.6239204100E-03 1.5973682657E-03 + 1.5712524689E-03 1.5455656462E-03 + + diff --git a/tests/integrate/tools/catch_properties.sh b/tests/integrate/tools/catch_properties.sh index a571c5f64f..897d91ee40 100755 --- a/tests/integrate/tools/catch_properties.sh +++ b/tests/integrate/tools/catch_properties.sh @@ -117,6 +117,7 @@ word_total_time="atomic_world" symmetry=$(get_input_key_value "symmetry" "INPUT") out_current=$(get_input_key_value "out_current" "INPUT") nspin=$(get_input_key_value "nspin" "INPUT") +has_ds=$(get_input_key_value "sc_mag_switch" "INPUT") test -e $1 && rm $1 #------------------------------------------------------------ @@ -161,7 +162,7 @@ fi # echo "has_stress:"$has_stress #------------------------------- if ! test -z "$has_stress" && [ $has_stress == 1 ]; then - grep -A6 "TOTAL-STRESS" $running_path| awk 'NF==3' | tail -3> stress.txt + grep -A6 "TOTAL-STRESS" $running_path| awk '/^[[:space:]]*-?[0-9]/' | tail -3> stress.txt total_stress=`sum_file stress.txt` rm stress.txt echo "totalstressref $total_stress" >>$1 @@ -280,7 +281,7 @@ fi if ! test -z "$has_band" && [ $has_band == 1 ]; then bandref=band.txt.ref bandcal=OUT.autotest/band.txt - python3 $COMPARE_SCRIPT $bandref $bandcal 8 + python3 $COMPARE_SCRIPT $bandref $bandcal 5 echo "CompareBand_pass $?" >>$1 fi @@ -841,6 +842,64 @@ if ! test -z "$out_alllog" && [ $out_alllog -eq 1 ]; then fi fi +#-------------------------------------------- +# DeltaSpin: atomic magnetic moments and lambda +# Extract final after-optimization values from log +#-------------------------------------------- +if ! test -z "$has_ds" && [ "$has_ds" == 1 ]; then + # Extract the last "after-optimization spin" block (final converged values) + # The block starts with "after-optimization spin" header and contains ATOM lines + # We need to find the last occurrence before "Inner optimization for lambda ends" + + # Get the line number of the last "after-optimization spin" header + last_spin_line=$(grep -n "after-optimization spin (uB)" "$running_path" | tail -1 | cut -d: -f1) + last_lambda_line=$(grep -n "after-optimization lambda (eV/uB)" "$running_path" | tail -1 | cut -d: -f1) + + if [ ! -z "$last_spin_line" ]; then + # Extract ATOM lines after the last "after-optimization spin" header + # Read until we hit a non-ATOM line (typically "Inner optimization") + spin_values=$(sed -n "$((last_spin_line + 1)),\$p" "$running_path" | awk '/^ATOM/{print; next} /^[^A]/{exit}') + + # Sum up x, y, z components for each atom and compute RMS deviation from target + if [ "$nspin" == 2 ]; then + # nspin=2: only z component + echo "$spin_values" | awk 'BEGIN{sum=0; n=0} /^ATOM/{sum+=$3*$3; n++} END{if(n>0) printf "%.10f\n", sqrt(sum/n)}' > magmom_rms.txt + magmom_rms=$(cat magmom_rms.txt) + if [ ! -z "$magmom_rms" ]; then + echo "ds_magmom_rmsref $magmom_rms" >>$1 + fi + rm -f magmom_rms.txt + elif [ "$nspin" == 4 ]; then + # nspin=4: x, y, z components + echo "$spin_values" | awk 'BEGIN{sum=0; n=0} /^ATOM/{sum+=($3*$3+$4*$4+$5*$5); n++} END{if(n>0) printf "%.10f\n", sqrt(sum/n)}' > magmom_rms.txt + magmom_rms=$(cat magmom_rms.txt) + if [ ! -z "$magmom_rms" ]; then + echo "ds_magmom_rmsref $magmom_rms" >>$1 + fi + rm -f magmom_rms.txt + fi + + # Extract individual atom magnetic moment magnitudes + echo "$spin_values" | awk '/^ATOM/{ + if(NF>=5) {mag=sqrt($3*$3+$4*$4+$5*$5)} + else {mag=$3} + printf "ds_magmom_atom%dref %.10f\n", $2, mag + }' >>$1 + fi + + if [ ! -z "$last_lambda_line" ]; then + # Extract ATOM lines after the last "after-optimization lambda" header + lambda_values=$(sed -n "$((last_lambda_line + 1)),\$p" "$running_path" | awk '/^ATOM/{print; next} /^[^A]/{exit}') + + # Extract individual atom lambda magnitudes + echo "$lambda_values" | awk '/^ATOM/{ + if(NF>=5) {lam=sqrt($3*$3+$4*$4+$5*$5)} + else {lam=$3} + printf "ds_lambda_atom%dref %.10f\n", $2, lam + }' >>$1 + fi +fi + #-------------------------------------------- # Check time information #--------------------------------------------