diff --git a/.vscode/settings.json b/.vscode/settings.json index 70e34ecb..14deeecf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "C_Cpp.errorSquiggles": "disabled" + "C_Cpp.errorSquiggles": "disabled", + "cmake.sourceDirectory": "/mlx_devbox/users/xiaojie.wu/playground/gpu4pyscf/build/lib.linux-x86_64-cpython-39/gpu4pyscf/lib" } \ No newline at end of file diff --git a/README.md b/README.md index c4c15e03..3773a7a1 100644 --- a/README.md +++ b/README.md @@ -24,20 +24,13 @@ python -m cupyx.tools.install_library --cuda 11.x --library cutensor Features -------- -Density fitting scheme -- SCF, analytical Gradient, and analytical Hessian calculations for Hartree-Fock and DFT -- LDA, GGA, mGGA without density laplacian, hybrid, and range-separated functionals -- Geometry optimization and transition state search via [geomeTRIC](https://geometric.readthedocs.io/en/latest/) -- Dispersion corrections via [DFT3](https://github.com/dftd3/simple-dftd3) and [DFT4](https://github.com/dftd4/dftd4) -- Nonlocal functional correction (vv10) for SCF and gradient -- ECP is supported and calculated on CPU - -Direct SCF scheme (experimental) -- SCF for Hartree-Fock and DFT -- LDA, GGA, mGGA without density laplacian, hybrid, and range-separated functionals -- Dispersion corrections via [DFT3](https://github.com/dftd3/simple-dftd3) and [DFT4](https://github.com/dftd4/dftd4) -- Nonlocal functional correction (vv10) for SCF and gradient -- ECP is supported and calculated on CPU +- Density fitting scheme and direct SCF scheme; +- SCF, analytical Gradient, and analytical Hessian calculations for Hartree-Fock and DFT; +- LDA, GGA, mGGA, hybrid, and range-separated functionals via [libXC](https://gitlab.com/libxc/libxc/-/tree/master/); +- Geometry optimization and transition state search via [geomeTRIC](https://geometric.readthedocs.io/en/latest/); +- Dispersion corrections via [DFT3](https://github.com/dftd3/simple-dftd3) and [DFT4](https://github.com/dftd4/dftd4); +- Nonlocal functional correction (vv10) for SCF and gradient; +- ECP is supported and calculated on CPU; Limitations -------- @@ -45,12 +38,32 @@ Limitations - Rys roots up to 9 for direct scf scheme; - Atomic basis up to g orbitals; - Auxiliary basis up to h orbitals; -- Up to ~100 atoms with def2-tzvpd basis, consuming a large amount of CPU memory; -- Gradient, Hessian and Geometry optimization are unavailable for Direct SCF yet; +- Up to ~168 atoms with def2-tzvpd basis, consuming a large amount of CPU memory; +- Hessian is unavailable for Direct SCF yet; - meta-GGA without density laplacian; - Examples -------- Find examples in gpu4pyscf/examples +Benchmarks +-------- +Speedup with GPU4PySCF v0.6.0 over Q-Chem 6.1 (Desity fitting, SCF, def2-tzvpp, def2-universal-jkfit, (99,590)) + +| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v | +|:------------------|-------:|-------:|-------:|--------:|-------:|----------:| +| 020_Vitamin_C | 20 | 2.86 | 6.09 | 13.11 | 11.58 | 17.46 | +| 031_Inosine | 31 | 13.14 | 15.87 | 16.57 | 25.89 | 26.14 | +| 033_Bisphenol_A | 33 | 12.31 | 16.88 | 16.54 | 28.45 | 28.82 | +| 037_Mg_Porphin | 37 | 13.85 | 19.03 | 20.53 | 28.31 | 30.27 | +| 042_Penicillin_V | 42 | 10.34 | 13.35 | 15.34 | 22.01 | 24.2 | +| 045_Ochratoxin_A | 45 | 13.34 | 15.3 | 19.66 | 27.08 | 25.41 | +| 052_Cetirizine | 52 | 17.79 | 17.44 | 19 | 24.41 | 25.87 | +| 057_Tamoxifen | 57 | 14.7 | 16.57 | 18.4 | 24.86 | 25.47 | +| 066_Raffinose | 66 | 13.77 | 14.2 | 20.47 | 22.94 | 25.35 | +| 084_Sphingomyelin | 84 | 14.24 | 12.82 | 15.96 | 22.11 | 24.46 | +| 095_Azadirachtin | 95 | 5.58 | 7.72 | 24.18 | 26.84 | 25.21 | +| 113_Taxol | 113 | 5.44 | 6.81 | 24.58 | 29.14 | nan | + +Find more benchmarks in gpu4pyscf/benchmarks + diff --git a/benchmarks/README.md b/benchmarks/README.md index 8b137891..82549917 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -1 +1,205 @@ +# Benchmark details +Two types of machines for the following benchmarks +- A100-SXM4-80G with Intel(R) Xeon(R) Platinum 8336C CPU @ 2.30GHz +- V100-SXM4-32G with Intel(R) Xeon(R) Platinum 8260 CPU @ 2.40GHz + +CUDA and GPU driver +- Driver Version: 450.191.01 +- CUDA Version: 11.7 + +Q-Chem is running on Intel(R) Xeon(R) Platinum 8336C CPU @ 2.30GHz + +'nan' indicates failed jobs with Q-Chem. + +negative value indicates failed jobs with GPU4PySCF. + +Raw data for density fitting can be found `benchmarks/df/organic` + +Raw data for direct SCF can be found in `benchmarks/scf/water_clusters` + +# Density fitting SCF single-point energy (v0.6.0) + +## GPU4PySCF v0.6.0 on Nvidia A100-SXM4-80G vs Q-Chem 6.1 on 32 CPU threads + +B3LYP with different basis + +| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd | +|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:| +| 020_Vitamin_C | 20 | 0.92 | 1.5 | 2.13 | 5.94 | 8.36 | +| 031_Inosine | 31 | 4.74 | 7.12 | 10.98 | 17.02 | 21.17 | +| 033_Bisphenol_A | 33 | 4.53 | 6.24 | 7 | 16.55 | 20.96 | +| 037_Mg_Porphin | 37 | 7.38 | 9.9 | 13.88 | 16.9 | 23.39 | +| 042_Penicillin_V | 42 | 5.9 | 8.19 | 11.43 | 16.41 | 20.11 | +| 045_Ochratoxin_A | 45 | 6.94 | 10.06 | 12.9 | 15.33 | 21.62 | +| 052_Cetirizine | 52 | 7.15 | 9.86 | 13.85 | 17.34 | 23.24 | +| 057_Tamoxifen | 57 | 7.48 | 8.95 | 13.19 | 19.26 | 24.22 | +| 066_Raffinose | 66 | 8.22 | 10.12 | 14.98 | 15.28 | 16.1 | +| 084_Sphingomyelin | 84 | nan | 9.69 | 14.83 | 17.82 | 20.33 | +| 095_Azadirachtin | 95 | 16.06 | 17.18 | 24.22 | 23.29 | nan | +| 113_Taxol | 113 | 20.11 | 18.04 | 23.38 | 24 | nan | +| 168_Valinomycin | 168 | 23.43 | 19.41 | nan | nan | nan | + +def2-tzvpp with different xc functionals + +| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v | +|:------------------|-------:|-------:|-------:|--------:|-------:|----------:| +| 020_Vitamin_C | 20 | 2.86 | 6.09 | 13.11 | 11.58 | 17.46 | +| 031_Inosine | 31 | 13.14 | 15.87 | 16.57 | 25.89 | 26.14 | +| 033_Bisphenol_A | 33 | 12.31 | 16.88 | 16.54 | 28.45 | 28.82 | +| 037_Mg_Porphin | 37 | 13.85 | 19.03 | 20.53 | 28.31 | 30.27 | +| 042_Penicillin_V | 42 | 10.34 | 13.35 | 15.34 | 22.01 | 24.2 | +| 045_Ochratoxin_A | 45 | 13.34 | 15.3 | 19.66 | 27.08 | 25.41 | +| 052_Cetirizine | 52 | 17.79 | 17.44 | 19 | 24.41 | 25.87 | +| 057_Tamoxifen | 57 | 14.7 | 16.57 | 18.4 | 24.86 | 25.47 | +| 066_Raffinose | 66 | 13.77 | 14.2 | 20.47 | 22.94 | 25.35 | +| 084_Sphingomyelin | 84 | 14.24 | 12.82 | 15.96 | 22.11 | 24.46 | +| 095_Azadirachtin | 95 | 5.58 | 7.72 | 24.18 | 26.84 | 25.21 | +| 113_Taxol | 113 | 5.44 | 6.81 | 24.58 | 29.14 | nan | +| 168_Valinomycin | 168 | nan | nan | nan | nan | nan | + +## GPU4PySCF v0.6.0 on Nvidia V100-SXM4-32G vs Q-Chem 6.1 on 32 CPU threads +B3LYP with different basis + +| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd | +|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:| +| 020_Vitamin_C | 20 | 0.52 | 0.93 | 1.23 | 3.98 | 4.88 | +| 031_Inosine | 31 | 0.97 | 1.92 | 3.03 | 6.79 | 8.19 | +| 033_Bisphenol_A | 33 | 1.16 | 1.89 | 2.09 | 6.72 | 8.31 | +| 037_Mg_Porphin | 37 | 1.79 | 3.55 | 4.49 | 7.64 | 10.55 | +| 042_Penicillin_V | 42 | 1.37 | 2.62 | 3.63 | 7.69 | 9.24 | +| 045_Ochratoxin_A | 45 | 1.58 | 3.23 | 4.12 | 7.27 | 9.88 | +| 052_Cetirizine | 52 | 1.83 | 3.61 | 4.72 | 8.63 | 11.32 | +| 057_Tamoxifen | 57 | 1.92 | 3.3 | 4.59 | 9.72 | 7.87 | +| 066_Raffinose | 66 | 2.31 | 4.04 | 5.75 | 6.09 | 5.54 | +| 084_Sphingomyelin | 84 | nan | 3.29 | 4.92 | 7.32 | 8 | +| 095_Azadirachtin | 95 | 4.63 | 8.46 | 10.55 | 13.83 | nan | +| 113_Taxol | 113 | 6.55 | 10.1 | 9.43 | 12.31 | nan | +| 168_Valinomycin | 168 | 9.23 | 11.66 | nan | nan | nan | + +def2-tzvpp with different xc functionals + +| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v | +|:------------------|-------:|------:|------:|--------:|------:|----------:| +| 020_Vitamin_C | 20 | 1.89 | 3.3 | 8.18 | 5.95 | 10.58 | +| 031_Inosine | 31 | 4.64 | 5.95 | 6.41 | 9.48 | 13.15 | +| 033_Bisphenol_A | 33 | 4.85 | 6.64 | 6.58 | 11.04 | 14.72 | +| 037_Mg_Porphin | 37 | 5.61 | 8.6 | 9.01 | 12.34 | 16.56 | +| 042_Penicillin_V | 42 | 4.36 | 6.17 | 7.09 | 10.62 | 14.28 | +| 045_Ochratoxin_A | 45 | 5.47 | 6.97 | 8.74 | 12.05 | 14.14 | +| 052_Cetirizine | 52 | 8.43 | 8.51 | 9.16 | 12.44 | 15.37 | +| 057_Tamoxifen | 57 | 6.79 | 8.41 | 9.98 | 13.44 | 15.67 | +| 066_Raffinose | 66 | 3.22 | 4.31 | 8.11 | 10.58 | 13.22 | +| 084_Sphingomyelin | 84 | 3.34 | 3.97 | 6.52 | 8.63 | 12.11 | +| 095_Azadirachtin | 95 | 3.35 | 4.74 | 14.29 | 16.52 | 15.05 | +| 113_Taxol | 113 | 3.12 | 4.1 | 12.59 | 15.74 | nan | +# Density fitting gradient (v0.6.0) + +## GPU4PySCF v0.6.0 on Nvidia A100-SXM4-80G vs Q-Chem 6.1 on 32 CPU threads + +B3LYP with different basis + +| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd | +|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:| +| 020_Vitamin_C | 20 | 3.13 | 4.12 | 5.98 | 9.71 | 10.7 | +| 031_Inosine | 31 | 11.42 | 9.82 | 13.23 | 16.47 | 16.16 | +| 033_Bisphenol_A | 33 | 13.28 | 10.3 | 11.94 | 16.08 | 16.02 | +| 037_Mg_Porphin | 37 | 13.75 | 10.54 | 15.87 | 18.33 | 19.89 | +| 042_Penicillin_V | 42 | 13.3 | 10.7 | 14.07 | 17.2 | 18.81 | +| 045_Ochratoxin_A | 45 | 14.68 | 11.33 | 16.28 | 19.79 | 20.94 | +| 052_Cetirizine | 52 | 21.46 | 14.62 | 19.55 | 20.51 | 21.93 | +| 057_Tamoxifen | 57 | 20.97 | 16.37 | 18.78 | 20.27 | 21.96 | +| 066_Raffinose | 66 | 25.4 | 17.78 | 25.71 | 23.88 | 22.38 | +| 084_Sphingomyelin | 84 | nan | 17.46 | 20.9 | 23.64 | 26.52 | +| 095_Azadirachtin | 95 | 39.13 | 32.27 | 40.78 | 39.94 | nan | +| 113_Taxol | 113 | 48.57 | 42.77 | 51.57 | 49.03 | nan | +| 168_Valinomycin | 168 | 87.81 | 72.58 | nan | nan | nan | + +def2-tzvpp with different xc functionals + +| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v | +|:------------------|-------:|-------:|-------:|--------:|-------:|----------:| +| 020_Vitamin_C | 20 | 5.02 | 7.04 | 10.55 | 9.28 | 11.11 | +| 031_Inosine | 31 | 7.3 | 10.03 | 15.12 | 12.62 | 13.9 | +| 033_Bisphenol_A | 33 | 7.58 | 11.1 | 15.55 | 12.64 | 14 | +| 037_Mg_Porphin | 37 | 7.47 | 11.34 | 18.05 | 15.81 | 14.85 | +| 042_Penicillin_V | 42 | 6.03 | 8.96 | 17.4 | 14.47 | 13.81 | +| 045_Ochratoxin_A | 45 | 7.51 | 9.33 | 19.51 | 17.2 | 14.55 | +| 052_Cetirizine | 52 | 8.32 | 9.7 | 20.8 | 16.46 | 15.7 | +| 057_Tamoxifen | 57 | 8.91 | 9.61 | 20.61 | 16.2 | 15 | +| 066_Raffinose | 66 | 8.52 | 9.46 | 24.2 | 18.63 | 17.13 | +| 084_Sphingomyelin | 84 | 8.51 | 9.49 | 23.62 | 21.63 | 17.66 | +| 095_Azadirachtin | 95 | 7.69 | 9.48 | 42.24 | 34.01 | 23.93 | +| 113_Taxol | 113 | 8.08 | 9.05 | 51.03 | 40.13 | nan | +| 168_Valinomycin | 168 | nan | nan | nan | nan | nan | + +## GPU4PySCF v0.6.0 on Nvidia V100-SXM4-32G vs Q-Chem 6.1 on 32 CPU threads + +B3LYP with different basis + +| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd | +|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:| +| 020_Vitamin_C | 20 | 1.43 | 2.4 | 3.3 | 5.46 | 5.54 | +| 031_Inosine | 31 | 3.01 | 4.22 | 5.14 | 7.06 | 6.84 | +| 033_Bisphenol_A | 33 | 3.31 | 4.18 | 4.38 | 6.75 | 6.89 | +| 037_Mg_Porphin | 37 | 4.13 | 5.08 | 6.42 | 7.89 | 8.54 | +| 042_Penicillin_V | 42 | 4.05 | 5.06 | 5.89 | 7.88 | 8.39 | +| 045_Ochratoxin_A | 45 | 4.59 | 5.42 | 6.8 | 8.6 | 8.93 | +| 052_Cetirizine | 52 | 6.11 | 7.04 | 7.97 | 9.13 | 9.53 | +| 057_Tamoxifen | 57 | 6.17 | 8.05 | 7.74 | 9.3 | 9.22 | +| 066_Raffinose | 66 | 7.9 | 9.49 | 10.82 | 10.51 | 9.58 | +| 084_Sphingomyelin | 84 | nan | 7.64 | 7.99 | 9.56 | 10.39 | +| 095_Azadirachtin | 95 | 13.3 | 17.59 | 16.25 | 17.93 | nan | +| 113_Taxol | 113 | 17.55 | 23.43 | 20.81 | 21.54 | nan | +| 168_Valinomycin | 168 | 31.21 | 38.79 | nan | nan | nan | + +def2-tzvpp with different xc functionals + +| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v | +|:------------------|-------:|------:|------:|--------:|------:|----------:| +| 020_Vitamin_C | 20 | 3.19 | 4.28 | 5.9 | 4.82 | 5.84 | +| 031_Inosine | 31 | 3.21 | 4.5 | 6.55 | 5.52 | 6.39 | +| 033_Bisphenol_A | 33 | 3.55 | 4.87 | 6.61 | 5.51 | 6.48 | +| 037_Mg_Porphin | 37 | 3.19 | 5.2 | 8.32 | 7.26 | 6.81 | +| 042_Penicillin_V | 42 | 3.15 | 4.35 | 8.11 | 7.23 | 6.97 | +| 045_Ochratoxin_A | 45 | 3.32 | 4.29 | 8.99 | 8.04 | 6.92 | +| 052_Cetirizine | 52 | 3.51 | 4.6 | 9.41 | 8.18 | 7.57 | +| 057_Tamoxifen | 57 | 3.86 | 4.66 | 9.56 | 8.4 | 7.51 | +| 066_Raffinose | 66 | 3.4 | 4.32 | 10.94 | 9.4 | 8.29 | +| 084_Sphingomyelin | 84 | 3.15 | 3.81 | 9.66 | 8.97 | 8.03 | +| 095_Azadirachtin | 95 | 3.32 | 4.37 | 18.47 | 16.01 | 1.68 | +| 113_Taxol | 113 | 3.12 | 1.19 | 22.53 | 16.94 | nan | + +# Density fitting hessian (v0.6.0) + +coming soon.. + +# Direct SCF single-point energy (v0.6.0) +def2-tzvpp with different xc functionals + +| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v | +|------:|-------:|-------:|-------:|--------:|-------:|----------:| +| 2 | 3 | 0.22 | 0.32 | 0.27 | 0.25 | 0.69 | +| 3 | 15 | 0.68 | 0.25 | 1.58 | 2.61 | 4.84 | +| 4 | 30 | 1.59 | 2.63 | 4.09 | 6.93 | 8.17 | +| 5 | 60 | 2.86 | 3.64 | 7.15 | 8.44 | 9.44 | +| 6 | 96 | 4.34 | 4.39 | 7.75 | 10.58 | 9.87 | +| 7 | 141 | 4.07 | 4.1 | 8.87 | 10.47 | 10.13 | +| 8 | 228 | 4.34 | 4.58 | 9.39 | 10.48 | 9.36 | +| 9 | 300 | 5.05 | 5.21 | 9.35 | 11.36 | nan | +| 10 | 417 | 4.91 | nan | nan | nan | nan | + +# Direct SCF gradient (v0.6.0) +def2-tzvpp with different xc functionals + +| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v | +|------:|-------:|-------:|-------:|--------:|-------:|----------:| +| 2 | 3 | 0.82 | 0.89 | 0.75 | 0.82 | 0.6 | +| 3 | 15 | 0.39 | 0.19 | 1.46 | 1.52 | 1.47 | +| 4 | 30 | 0.56 | 1.04 | 2.07 | 2.25 | 1.89 | +| 5 | 60 | 0.54 | 0.87 | 2.42 | 2.4 | 1.77 | +| 6 | 96 | 0.6 | 0.87 | 2.36 | 2.51 | 1.53 | +| 7 | 141 | 0.93 | 1.1 | 2.61 | 2.59 | 1.55 | +| 8 | 228 | 1.92 | 1.9 | 3.37 | 3.39 | 1.83 | +| 9 | 300 | 2.26 | 2.02 | 3.06 | 3.59 | nan | +| 10 | 417 | 2.46 | nan | nan | nan | nan | \ No newline at end of file diff --git a/benchmarks/df/dft_driver.py b/benchmarks/df/dft_driver.py new file mode 100644 index 00000000..b2682fec --- /dev/null +++ b/benchmarks/df/dft_driver.py @@ -0,0 +1,105 @@ +import os +import csv +import pyscf +import time +import argparse +from pyscf import lib +from pyscf.dft import rks + +lib.num_threads(8) + +parser = argparse.ArgumentParser(description='Run SCF, grad, and Hessian in GPU4PySCF for molecules') +parser.add_argument('--basis', type=str, default='def2-tzvpp') +parser.add_argument('--verbose', type=int, default=1) +parser.add_argument('--xc', type=str, default='B3LYP') +parser.add_argument('--device', type=str, default='GPU') +parser.add_argument('--input_path', type=str, default='./') +parser.add_argument('--output_path', type=str, default='./') +parser.add_argument('--with_hessian', type=bool, default=False) +args = parser.parse_args() +bas = args.basis +verbose = args.verbose +xc = args.xc + +if xc == 'LDA': + xc = 'LDA,VWN5' + +if not os.path.exists(args.output_path): + os.mkdir(args.output_path) + +if args.device == 'GPU': + import cupy + import gpu4pyscf + from gpu4pyscf.dft import rks + props = cupy.cuda.runtime.getDeviceProperties(0) + device = props['name'].decode('ascii') + output_file = device+'.csv' +else: + from pyscf.dft import rks + output_file = 'PySCF-16-cores-CPU.csv' +output_file = args.output_path + output_file + +def run_dft(filename): + mol = pyscf.M(atom=filename, basis=bas, max_memory=64000) + start_time = time.time() + # set verbose >= 6 for debugging timer + mol.verbose = 4 #verbose + mol.max_memory = 40000 + mf = rks.RKS(mol, xc=xc).density_fit(auxbasis='def2-universal-jkfit') + mf.grids.atom_grid = (99,590) + mf.chkfile = None + prep_time = time.time() - start_time + mf.conv_tol = 1e-9 + mf.nlcgrids.atom_grid = (50,194) + mf.max_cycle = 100 + try: + e_dft = mf.kernel() + scf_time = time.time() - start_time + except: + scf_time = -1 + e_dft = 0 + + # calculate gradient + if args.device == 'GPU': + cupy.get_default_memory_pool().free_all_blocks() + try: + start_time = time.time() + g = mf.nuc_grad_method() + g.max_memory = 40000 + g.auxbasis_response = True + f = g.kernel() + grad_time = time.time() - start_time + except: + grad_time = -1 + + # calculate hessian + if args.device == 'GPU': + cupy.get_default_memory_pool().free_all_blocks() + + hess_time = -1 + if args.with_hessian: + try: + start_time = time.time() + h = mf.Hessian() + h.auxbasis_response = 1 + h.max_memory = 40000 + hess = h.kernel() + hess_time = time.time() - start_time + except: + hess_time = -1 + + return mol.natm, mol.nao, scf_time, grad_time, hess_time, e_dft + +fields = ['mol','natm', 'nao', 't_scf', 't_gradient', 't_hessian', 'e_tot'] +csvfile = open(output_file, 'w') +csvwriter = csv.writer(csvfile) +csvwriter.writerow(fields) + +for filename in sorted(os.listdir(args.input_path)): + if filename.endswith(".xyz"): + print(f'running DFT {filename}') + info = run_dft(args.input_path+filename) + row = [filename[:-4]]+list(info) + csvwriter.writerow(row) + csvfile.flush() +csvfile.close() diff --git a/benchmarks/df/generate_tables.ipynb b/benchmarks/df/generate_tables.ipynb new file mode 100644 index 00000000..322939e5 --- /dev/null +++ b/benchmarks/df/generate_tables.ipynb @@ -0,0 +1,552 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Density fitting with difference basis" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 124, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd |\n", + "|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:|\n", + "| 020_Vitamin_C | 20 | 0.92 | 1.5 | 2.13 | 5.94 | 8.36 |\n", + "| 031_Inosine | 31 | 4.74 | 7.12 | 10.98 | 17.02 | 21.17 |\n", + "| 033_Bisphenol_A | 33 | 4.53 | 6.24 | 7 | 16.55 | 20.96 |\n", + "| 037_Mg_Porphin | 37 | 7.38 | 9.9 | 13.88 | 16.9 | 23.39 |\n", + "| 042_Penicillin_V | 42 | 5.9 | 8.19 | 11.43 | 16.41 | 20.11 |\n", + "| 045_Ochratoxin_A | 45 | 6.94 | 10.06 | 12.9 | 15.33 | 21.62 |\n", + "| 052_Cetirizine | 52 | 7.15 | 9.86 | 13.85 | 17.34 | 23.24 |\n", + "| 057_Tamoxifen | 57 | 7.48 | 8.95 | 13.19 | 19.26 | 24.22 |\n", + "| 066_Raffinose | 66 | 8.22 | 10.12 | 14.98 | 15.28 | 16.1 |\n", + "| 084_Sphingomyelin | 84 | nan | 9.69 | 14.83 | 17.82 | 20.33 |\n", + "| 095_Azadirachtin | 95 | 16.06 | 17.18 | 24.22 | 23.29 | nan |\n", + "| 113_Taxol | 113 | 20.11 | 18.04 | 23.38 | 24 | nan |\n", + "| 168_Valinomycin | 168 | 23.43 | 19.41 | nan | nan | nan |\n" + ] + } + ], + "source": [ + "A100_file = 'NVIDIA A100-SXM4-80GB.csv'\n", + "V100_file = 'Tesla V100-SXM2-32GB.csv'\n", + "qchem_file = 'qchem-32-cores-cpu.csv'\n", + "\n", + "keys = ['mol', 'natm']\n", + "empty = {'mol':[], 'natm':[]}\n", + "df_A100_scf = pd.DataFrame(empty)\n", + "df_V100_scf = pd.DataFrame(empty)\n", + "df_A100_grad = pd.DataFrame(empty)\n", + "df_V100_grad = pd.DataFrame(empty)\n", + "path = 'organic/basis/'\n", + "\n", + "for basis in ['sto-3g', '6-31g', 'def2-svp', 'def2-tzvpp', 'def2-tzvpd']:\n", + " df_qchem = pd.read_csv(path + basis + '/' + qchem_file)\n", + " df_qchem = df_qchem.rename(columns={'t_scf':'scf_qchem', 't_gradient':'grad_qchem'})\n", + " \n", + " df_A100 = pd.read_csv(path + basis + '/' + A100_file)\n", + " df_A100 = df_A100.rename(columns={'t_scf':'scf_A100', 't_gradient':'grad_A100'})\n", + " df_A100 = df_A100.merge(df_qchem, how='outer', on='mol')\n", + " \n", + " df_A100['scf_'+basis] = df_A100['scf_qchem']/df_A100['scf_A100']\n", + " df_A100['grad_'+basis] = df_A100['grad_qchem']/df_A100['grad_A100']\n", + " df_A100 = df_A100[keys+['scf_'+basis, 'grad_'+basis]]\n", + " \n", + " df_A100_scf = df_A100_scf.merge(df_A100[keys+['scf_'+basis]], how='outer', on=keys)\n", + " df_A100_grad= df_A100_grad.merge(df_A100[keys+['grad_'+basis]], how='outer', on=keys)\n", + " df_A100_scf = df_A100_scf.rename(columns={'scf_'+basis:basis})\n", + " df_A100_grad = df_A100_grad.rename(columns={'grad_'+basis:basis})\n", + " df_A100_scf[basis] = df_A100_scf[basis].apply(lambda x: round(x,2))\n", + " df_A100_grad[basis] = df_A100_grad[basis].apply(lambda x: round(x,2))\n", + "\n", + " df_V100 = pd.read_csv(path + basis + '/' + V100_file)\n", + " df_V100 = df_V100.rename(columns={'t_scf':'scf_V100', 't_gradient':'grad_V100'})\n", + " df_V100 = df_V100.merge(df_qchem, how='outer', on='mol')\n", + " df_V100['scf_'+basis] = df_V100['scf_qchem']/df_V100['scf_V100']\n", + " df_V100['grad_'+basis] = df_V100['grad_qchem']/df_V100['grad_V100']\n", + "\n", + " df_V100_scf = df_V100_scf.merge(df_V100[keys+['scf_'+basis,]], how='outer', on=keys)\n", + " df_V100_grad= df_V100_grad.merge(df_V100[keys+['grad_'+basis]], how='outer', on=keys)\n", + " df_V100_scf = df_V100_scf.rename(columns={'scf_'+basis:basis})\n", + " \n", + " df_V100_grad = df_V100_grad.rename(columns={'grad_'+basis:basis})\n", + " df_V100_scf[basis] = df_V100_scf[basis].apply(lambda x: round(x,2))\n", + " df_V100_grad[basis] = df_V100_grad[basis].apply(lambda x: round(x,2))\n", + " \n", + "print(df_A100_scf.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 126, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd |\n", + "|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:|\n", + "| 020_Vitamin_C | 20 | 0.52 | 0.93 | 1.23 | 3.98 | 4.88 |\n", + "| 031_Inosine | 31 | 0.97 | 1.92 | 3.03 | 6.79 | 8.19 |\n", + "| 033_Bisphenol_A | 33 | 1.16 | 1.89 | 2.09 | 6.72 | 8.31 |\n", + "| 037_Mg_Porphin | 37 | 1.79 | 3.55 | 4.49 | 7.64 | 10.55 |\n", + "| 042_Penicillin_V | 42 | 1.37 | 2.62 | 3.63 | 7.69 | 9.24 |\n", + "| 045_Ochratoxin_A | 45 | 1.58 | 3.23 | 4.12 | 7.27 | 9.88 |\n", + "| 052_Cetirizine | 52 | 1.83 | 3.61 | 4.72 | 8.63 | 11.32 |\n", + "| 057_Tamoxifen | 57 | 1.92 | 3.3 | 4.59 | 9.72 | 7.87 |\n", + "| 066_Raffinose | 66 | 2.31 | 4.04 | 5.75 | 6.09 | 5.54 |\n", + "| 084_Sphingomyelin | 84 | nan | 3.29 | 4.92 | 7.32 | 8 |\n", + "| 095_Azadirachtin | 95 | 4.63 | 8.46 | 10.55 | 13.83 | nan |\n", + "| 113_Taxol | 113 | 6.55 | 10.1 | 9.43 | 12.31 | nan |\n", + "| 168_Valinomycin | 168 | 9.23 | 11.66 | nan | nan | nan |\n" + ] + } + ], + "source": [ + "print(df_V100_scf.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 128, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd |\n", + "|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:|\n", + "| 020_Vitamin_C | 20 | 3.13 | 4.12 | 5.98 | 9.71 | 10.7 |\n", + "| 031_Inosine | 31 | 11.42 | 9.82 | 13.23 | 16.47 | 16.16 |\n", + "| 033_Bisphenol_A | 33 | 13.28 | 10.3 | 11.94 | 16.08 | 16.02 |\n", + "| 037_Mg_Porphin | 37 | 13.75 | 10.54 | 15.87 | 18.33 | 19.89 |\n", + "| 042_Penicillin_V | 42 | 13.3 | 10.7 | 14.07 | 17.2 | 18.81 |\n", + "| 045_Ochratoxin_A | 45 | 14.68 | 11.33 | 16.28 | 19.79 | 20.94 |\n", + "| 052_Cetirizine | 52 | 21.46 | 14.62 | 19.55 | 20.51 | 21.93 |\n", + "| 057_Tamoxifen | 57 | 20.97 | 16.37 | 18.78 | 20.27 | 21.96 |\n", + "| 066_Raffinose | 66 | 25.4 | 17.78 | 25.71 | 23.88 | 22.38 |\n", + "| 084_Sphingomyelin | 84 | nan | 17.46 | 20.9 | 23.64 | 26.52 |\n", + "| 095_Azadirachtin | 95 | 39.13 | 32.27 | 40.78 | 39.94 | nan |\n", + "| 113_Taxol | 113 | 48.57 | 42.77 | 51.57 | 49.03 | nan |\n", + "| 168_Valinomycin | 168 | 87.81 | 72.58 | nan | nan | nan |\n" + ] + } + ], + "source": [ + "print(df_A100_grad.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 130, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | sto-3g | 6-31g | def2-svp | def2-tzvpp | def2-tzvpd |\n", + "|:------------------|-------:|---------:|--------:|-----------:|-------------:|-------------:|\n", + "| 020_Vitamin_C | 20 | 1.43 | 2.4 | 3.3 | 5.46 | 5.54 |\n", + "| 031_Inosine | 31 | 3.01 | 4.22 | 5.14 | 7.06 | 6.84 |\n", + "| 033_Bisphenol_A | 33 | 3.31 | 4.18 | 4.38 | 6.75 | 6.89 |\n", + "| 037_Mg_Porphin | 37 | 4.13 | 5.08 | 6.42 | 7.89 | 8.54 |\n", + "| 042_Penicillin_V | 42 | 4.05 | 5.06 | 5.89 | 7.88 | 8.39 |\n", + "| 045_Ochratoxin_A | 45 | 4.59 | 5.42 | 6.8 | 8.6 | 8.93 |\n", + "| 052_Cetirizine | 52 | 6.11 | 7.04 | 7.97 | 9.13 | 9.53 |\n", + "| 057_Tamoxifen | 57 | 6.17 | 8.05 | 7.74 | 9.3 | 9.22 |\n", + "| 066_Raffinose | 66 | 7.9 | 9.49 | 10.82 | 10.51 | 9.58 |\n", + "| 084_Sphingomyelin | 84 | nan | 7.64 | 7.99 | 9.56 | 10.39 |\n", + "| 095_Azadirachtin | 95 | 13.3 | 17.59 | 16.25 | 17.93 | nan |\n", + "| 113_Taxol | 113 | 17.55 | 23.43 | 20.81 | 21.54 | nan |\n", + "| 168_Valinomycin | 168 | 31.21 | 38.79 | nan | nan | nan |\n" + ] + } + ], + "source": [ + "print(df_V100_grad.to_markdown(index=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Density fitting with different xc" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 132, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v |\n", + "|:------------------|-------:|-------:|-------:|--------:|-------:|----------:|\n", + "| 020_Vitamin_C | 20 | 2.86 | 6.09 | 13.11 | 11.58 | 17.46 |\n", + "| 031_Inosine | 31 | 13.14 | 15.87 | 16.57 | 25.89 | 26.14 |\n", + "| 033_Bisphenol_A | 33 | 12.31 | 16.88 | 16.54 | 28.45 | 28.82 |\n", + "| 037_Mg_Porphin | 37 | 13.85 | 19.03 | 20.53 | 28.31 | 30.27 |\n", + "| 042_Penicillin_V | 42 | 10.34 | 13.35 | 15.34 | 22.01 | 24.2 |\n", + "| 045_Ochratoxin_A | 45 | 13.34 | 15.3 | 19.66 | 27.08 | 25.41 |\n", + "| 052_Cetirizine | 52 | 17.79 | 17.44 | 19 | 24.41 | 25.87 |\n", + "| 057_Tamoxifen | 57 | 14.7 | 16.57 | 18.4 | 24.86 | 25.47 |\n", + "| 066_Raffinose | 66 | 13.77 | 14.2 | 20.47 | 22.94 | 25.35 |\n", + "| 084_Sphingomyelin | 84 | 14.24 | 12.82 | 15.96 | 22.11 | 24.46 |\n", + "| 095_Azadirachtin | 95 | 5.58 | 7.72 | 24.18 | 26.84 | 25.21 |\n", + "| 113_Taxol | 113 | 5.44 | 6.81 | 24.58 | 29.14 | nan |\n", + "| 168_Valinomycin | 168 | nan | nan | nan | nan | nan |\n" + ] + } + ], + "source": [ + "keys = ['mol', 'natm']\n", + "empty = {'mol':[], 'natm':[]}\n", + "df_A100_scf = pd.DataFrame(empty)\n", + "df_V100_scf = pd.DataFrame(empty)\n", + "df_A100_grad = pd.DataFrame(empty)\n", + "df_V100_grad = pd.DataFrame(empty)\n", + "path = 'organic/xc/'\n", + "for xc in ['LDA', 'PBE', 'B3LYP', 'M06', 'wB97m-v']:\n", + " df_qchem = pd.read_csv(path + xc + '/' + qchem_file)\n", + " df_qchem = df_qchem.rename(columns={'t_scf':'scf_qchem', 't_gradient':'grad_qchem'})\n", + " \n", + " df_A100 = pd.read_csv(path + xc + '/' + A100_file)\n", + " df_A100 = df_A100.rename(columns={'t_scf':'scf_A100', 't_gradient':'grad_A100'})\n", + " df_A100 = df_A100.merge(df_qchem, how='outer', on='mol')\n", + " \n", + " df_A100['scf_'+xc] = df_A100['scf_qchem']/df_A100['scf_A100']\n", + " df_A100['grad_'+xc] = df_A100['grad_qchem']/df_A100['grad_A100']\n", + " df_A100 = df_A100[keys+['scf_'+xc, 'grad_'+xc]]\n", + " \n", + " df_A100_scf = df_A100_scf.merge(df_A100[keys+['scf_'+xc]], how='outer', on=keys)\n", + " df_A100_grad= df_A100_grad.merge(df_A100[keys+['grad_'+xc]], how='outer', on=keys)\n", + " df_A100_scf = df_A100_scf.rename(columns={'scf_'+xc:xc})\n", + " df_A100_grad = df_A100_grad.rename(columns={'grad_'+xc:xc})\n", + " df_A100_scf[xc] = df_A100_scf[xc].apply(lambda x: round(x,2))\n", + " df_A100_grad[xc] = df_A100_grad[xc].apply(lambda x: round(x,2))\n", + "\n", + " df_V100 = pd.read_csv(path + xc + '/' + V100_file)\n", + " df_V100 = df_V100.rename(columns={'t_scf':'scf_V100', 't_gradient':'grad_V100'})\n", + " df_V100 = df_V100.merge(df_qchem, how='outer', on='mol')\n", + " df_V100['scf_'+xc] = df_V100['scf_qchem']/df_V100['scf_V100']\n", + " df_V100['grad_'+xc] = df_V100['grad_qchem']/df_V100['grad_V100']\n", + "\n", + " df_V100_scf = df_V100_scf.merge(df_V100[keys+['scf_'+xc,]], how='outer', on=keys)\n", + " df_V100_grad= df_V100_grad.merge(df_V100[keys+['grad_'+xc]], how='outer', on=keys)\n", + " df_V100_scf = df_V100_scf.rename(columns={'scf_'+xc:xc})\n", + " \n", + " df_V100_grad = df_V100_grad.rename(columns={'grad_'+xc:xc})\n", + " df_V100_scf[xc] = df_V100_scf[xc].apply(lambda x: round(x,2))\n", + " df_V100_grad[xc] = df_V100_grad[xc].apply(lambda x: round(x,2))\n", + "\n", + "print(df_A100_scf.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 134, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v |\n", + "|:------------------|-------:|------:|------:|--------:|------:|----------:|\n", + "| 020_Vitamin_C | 20 | 1.89 | 3.3 | 8.18 | 5.95 | 10.58 |\n", + "| 031_Inosine | 31 | 4.64 | 5.95 | 6.41 | 9.48 | 13.15 |\n", + "| 033_Bisphenol_A | 33 | 4.85 | 6.64 | 6.58 | 11.04 | 14.72 |\n", + "| 037_Mg_Porphin | 37 | 5.61 | 8.6 | 9.01 | 12.34 | 16.56 |\n", + "| 042_Penicillin_V | 42 | 4.36 | 6.17 | 7.09 | 10.62 | 14.28 |\n", + "| 045_Ochratoxin_A | 45 | 5.47 | 6.97 | 8.74 | 12.05 | 14.14 |\n", + "| 052_Cetirizine | 52 | 8.43 | 8.51 | 9.16 | 12.44 | 15.37 |\n", + "| 057_Tamoxifen | 57 | 6.79 | 8.41 | 9.98 | 13.44 | 15.67 |\n", + "| 066_Raffinose | 66 | 3.22 | 4.31 | 8.11 | 10.58 | 13.22 |\n", + "| 084_Sphingomyelin | 84 | 3.34 | 3.97 | 6.52 | 8.63 | 12.11 |\n", + "| 095_Azadirachtin | 95 | 3.35 | 4.74 | 14.29 | 16.52 | 15.05 |\n", + "| 113_Taxol | 113 | 3.12 | 4.1 | 12.59 | 15.74 | nan |\n" + ] + } + ], + "source": [ + "print(df_V100_scf.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v |\n", + "|:------------------|-------:|-------:|-------:|--------:|-------:|----------:|\n", + "| 020_Vitamin_C | 20 | 5.02 | 7.04 | 10.55 | 9.28 | 11.11 |\n", + "| 031_Inosine | 31 | 7.3 | 10.03 | 15.12 | 12.62 | 13.9 |\n", + "| 033_Bisphenol_A | 33 | 7.58 | 11.1 | 15.55 | 12.64 | 14 |\n", + "| 037_Mg_Porphin | 37 | 7.47 | 11.34 | 18.05 | 15.81 | 14.85 |\n", + "| 042_Penicillin_V | 42 | 6.03 | 8.96 | 17.4 | 14.47 | 13.81 |\n", + "| 045_Ochratoxin_A | 45 | 7.51 | 9.33 | 19.51 | 17.2 | 14.55 |\n", + "| 052_Cetirizine | 52 | 8.32 | 9.7 | 20.8 | 16.46 | 15.7 |\n", + "| 057_Tamoxifen | 57 | 8.91 | 9.61 | 20.61 | 16.2 | 15 |\n", + "| 066_Raffinose | 66 | 8.52 | 9.46 | 24.2 | 18.63 | 17.13 |\n", + "| 084_Sphingomyelin | 84 | 8.51 | 9.49 | 23.62 | 21.63 | 17.66 |\n", + "| 095_Azadirachtin | 95 | 7.69 | 9.48 | 42.24 | 34.01 | 23.93 |\n", + "| 113_Taxol | 113 | 8.08 | 9.05 | 51.03 | 40.13 | nan |\n", + "| 168_Valinomycin | 168 | nan | nan | nan | nan | nan |\n" + ] + } + ], + "source": [ + "print(df_A100_grad.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v |\n", + "|:------------------|-------:|------:|------:|--------:|------:|----------:|\n", + "| 020_Vitamin_C | 20 | 3.19 | 4.28 | 5.9 | 4.82 | 5.84 |\n", + "| 031_Inosine | 31 | 3.21 | 4.5 | 6.55 | 5.52 | 6.39 |\n", + "| 033_Bisphenol_A | 33 | 3.55 | 4.87 | 6.61 | 5.51 | 6.48 |\n", + "| 037_Mg_Porphin | 37 | 3.19 | 5.2 | 8.32 | 7.26 | 6.81 |\n", + "| 042_Penicillin_V | 42 | 3.15 | 4.35 | 8.11 | 7.23 | 6.97 |\n", + "| 045_Ochratoxin_A | 45 | 3.32 | 4.29 | 8.99 | 8.04 | 6.92 |\n", + "| 052_Cetirizine | 52 | 3.51 | 4.6 | 9.41 | 8.18 | 7.57 |\n", + "| 057_Tamoxifen | 57 | 3.86 | 4.66 | 9.56 | 8.4 | 7.51 |\n", + "| 066_Raffinose | 66 | 3.4 | 4.32 | 10.94 | 9.4 | 8.29 |\n", + "| 084_Sphingomyelin | 84 | 3.15 | 3.81 | 9.66 | 8.97 | 8.03 |\n", + "| 095_Azadirachtin | 95 | 3.32 | 4.37 | 18.47 | 16.01 | 1.68 |\n", + "| 113_Taxol | 113 | 3.12 | 1.19 | 22.53 | 16.94 | nan |\n" + ] + } + ], + "source": [ + "print(df_V100_grad.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Merlin (Python3 + MLSQL) [Spark 3.0]", + "language": "python", + "name": "merlin_kernel" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "Python3 with MLSQL", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "0.1" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/benchmarks/df/organic/basis/6-31g/A100-SXM-80GB.csv b/benchmarks/df/organic/basis/6-31g/A100-SXM-80GB.csv new file mode 100644 index 00000000..62814ae4 --- /dev/null +++ b/benchmarks/df/organic/basis/6-31g/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,124,4.608277797698975,0.4919087886810303,-1,-684.4557107433968 +031_Inosine,31,195,2.7226362228393555,0.4882214069366455,-1,-982.9155347453989 +033_Bisphenol_A,33,185,2.5274624824523926,0.4501316547393799,-1,-731.4592529768629 +037_Mg_Porphin,37,253,2.8547840118408203,0.8474681377410889,-1,-1188.2481589024778 +042_Penicillin_V,42,256,3.7431905269622803,0.8364019393920898,-1,-1503.7375080540155 +045_Ochratoxin_A,45,283,4.172262907028198,1.02577805519104,-1,-1663.525966991905 +052_Cetirizine,52,297,4.766071319580078,1.1338489055633545,-1,-1610.1693102376707 +057_Tamoxifen,57,310,5.07802152633667,1.141324520111084,-1,-1137.6493884240836 +066_Raffinose,66,370,6.551544189453125,1.6817245483398438,-1,-1907.7681834232199 +084_Sphingomyelin,84,403,7.91524338722229,1.9199373722076416,-1,-1809.5679366001991 +095_Azadirachtin,95,547,12.272940397262573,4.32565450668335,-1,-2562.3403172332264 +113_Taxol,113,660,18.444868803024292,6.884729385375977,-1,-2928.572392404445 +168_Valinomycin,168,882,37.01337122917175,14.150111198425293,-1,-3792.772043471883 diff --git a/benchmarks/df/organic/basis/6-31g/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/basis/6-31g/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..0814f1f9 --- /dev/null +++ b/benchmarks/df/organic/basis/6-31g/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,184,4.680042505264282,0.5047404766082764,-1,-684.6645213604809 +031_Inosine,31,290,3.2322049140930176,0.6415054798126221,-1,-983.2119879900529 +033_Bisphenol_A,33,270,3.046257495880127,0.5894784927368164,-1,-731.6275229240173 +037_Mg_Porphin,37,378,3.838784694671631,1.1502361297607422,-1,-1188.4918251530944 +042_Penicillin_V,42,376,4.883107662200928,1.102980136871338,-1,-1504.089994687125 +045_Ochratoxin_A,45,418,5.26718807220459,1.3482749462127686,-1,-1663.8683699106805 +052_Cetirizine,52,432,6.492026329040527,1.4921181201934814,-1,-1610.4805475897251 +057_Tamoxifen,57,450,6.812292814254761,1.544680118560791,-1,-1137.911748912134 +066_Raffinose,66,540,8.891000986099243,2.2964015007019043,-1,-1908.3234058984917 +084_Sphingomyelin,84,568,10.732957601547241,2.3929738998413086,-1,-1810.1763282989473 +095_Azadirachtin,95,802,17.69058609008789,5.607578992843628,-1,-2563.117707989838 +113_Taxol,113,970,27.82247757911682,9.0927095413208,-1,-2929.3905280208473 +168_Valinomycin,168,1272,58.2225227355957,18.247328996658325,-1,-3793.9202343628604 diff --git a/benchmarks/df/organic/basis/6-31g/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/basis/6-31g/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..006a3b53 --- /dev/null +++ b/benchmarks/df/organic/basis/6-31g/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,124,7.497422695159912,0.8649909496307373,-1,-684.4557107433968 +031_Inosine,31,195,11.948939800262451,1.4942827224731445,-1,-982.9155347453993 +033_Bisphenol_A,33,185,10.029215574264526,1.451491117477417,-1,-731.4592529768634 +037_Mg_Porphin,37,253,10.693403482437134,2.384176731109619,-1,-1188.2481589024774 +042_Penicillin_V,42,256,15.25686264038086,2.331570863723755,-1,-1503.7375080540169 +045_Ochratoxin_A,45,283,16.395840883255005,2.8147506713867188,-1,-1663.525966991905 +052_Cetirizine,52,297,17.720090627670288,3.1010515689849854,-1,-1610.1693102376698 +057_Tamoxifen,57,310,18.46334171295166,3.141953468322754,-1,-1137.6493884240858 +066_Raffinose,66,370,22.278468370437622,4.3040931224823,-1,-1907.768183423219 +084_Sphingomyelin,84,403,31.638314723968506,5.470108985900879,-1,-1809.5679366001973 +095_Azadirachtin,95,547,35.93686127662659,10.28779911994934,-1,-2562.3403172332246 +113_Taxol,113,660,49.680076122283936,16.596692323684692,-1,-2928.5723924044505 +168_Valinomycin,168,882,96.90761160850525,34.14221692085266,-1,-3792.772043471883 diff --git a/benchmarks/df/organic/basis/6-31g/qchem-32-cores-cpu.csv b/benchmarks/df/organic/basis/6-31g/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..ea6d0e2e --- /dev/null +++ b/benchmarks/df/organic/basis/6-31g/qchem-32-cores-cpu.csv @@ -0,0 +1,14 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,7.0,2.08,-684.4557106286 +031_Inosine,23.0,6.3,-982.9155453015 +033_Bisphenol_A,19.0,6.07,-731.4592542587 +037_Mg_Porphin,38.0,12.12,-1188.2481651629 +042_Penicillin_V,40.0,11.8,-1503.7375598048 +045_Ochratoxin_A,53.0,15.27,-1663.5260142082 +052_Cetirizine,64.0,21.82,-1610.1693348384 +057_Tamoxifen,61.0,25.28,-1137.6494270196 +066_Raffinose,90.0,40.84,-1907.7682613849 +084_Sphingomyelin,104.0,41.77,-1809.5680211517 +095_Azadirachtin,304.0,180.98,-2562.3404484657 +113_Taxol,502.0,388.94,-2928.5726079375 +168_Valinomycin,1130.0,1324.46,-3792.7725532994 diff --git a/benchmarks/df/organic/basis/def2-svp/A100-SXM-80GB.csv b/benchmarks/df/organic/basis/def2-svp/A100-SXM-80GB.csv new file mode 100644 index 00000000..e5eab95b --- /dev/null +++ b/benchmarks/df/organic/basis/def2-svp/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,208,5.571452856063843,0.5950183868408203,-1,-684.188129714639 +031_Inosine,31,326,3.982928991317749,0.7104775905609131,-1,-982.5227175495484 +033_Bisphenol_A,33,318,2.913531541824341,0.6623127460479736,-1,-731.1227139679804 +037_Mg_Porphin,37,414,5.25773811340332,1.176598072052002,-1,-1187.7543053199015 +042_Penicillin_V,42,430,4.716869831085205,1.2208878993988037,-1,-1503.2030492202234 +045_Ochratoxin_A,45,472,5.158869743347168,1.4054603576660156,-1,-1662.896149353448 +052_Cetirizine,52,507,6.172307014465332,1.687089443206787,-1,-1609.547890083631 +057_Tamoxifen,57,537,6.463549375534058,1.8418858051300049,-1,-1137.1212356049973 +066_Raffinose,66,636,8.732872486114502,2.637019395828247,-1,-1907.009111580206 +084_Sphingomyelin,84,721,10.769162893295288,2.9709110260009766,-1,-1809.0152777779826 +095_Azadirachtin,95,934,18.074316263198853,6.7069244384765625,-1,-2561.3061045288187 +113_Taxol,113,1123,29.4821720123291,10.809048891067505,-1,-2927.334202494234 +168_Valinomycin,168,1542,78.70354056358337,22.958770751953125,-1,-3791.169347528201 diff --git a/benchmarks/df/organic/basis/def2-svp/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/basis/def2-svp/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..6b4d0361 --- /dev/null +++ b/benchmarks/df/organic/basis/def2-svp/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,208,4.6874213218688965,0.5549466609954834,-1,-684.1881297146392 +031_Inosine,31,326,3.2785484790802,0.6766877174377441,-1,-982.5227175495488 +033_Bisphenol_A,33,318,3.1449086666107178,0.6597239971160889,-1,-731.1227139679811 +037_Mg_Porphin,37,414,3.961493492126465,1.1308743953704834,-1,-1187.7543053199029 +042_Penicillin_V,42,430,5.164047956466675,1.1697602272033691,-1,-1503.2030492202234 +045_Ochratoxin_A,45,472,5.660542249679565,1.3970353603363037,-1,-1662.896149353448 +052_Cetirizine,52,507,6.571918487548828,1.6308255195617676,-1,-1609.5478900836329 +057_Tamoxifen,57,537,7.049911737442017,1.76767897605896,-1,-1137.121235604996 +066_Raffinose,66,636,9.546670913696289,2.519256114959717,-1,-1907.009111580206 +084_Sphingomyelin,84,721,12.070258378982544,2.762742757797241,-1,-1809.01527777798 +095_Azadirachtin,95,934,20.108874559402466,6.237654685974121,-1,-2561.3061045288187 +113_Taxol,113,1123,32.24514365196228,10.200969696044922,-1,-2927.3342024942376 +168_Valinomycin,168,1542,83.81017708778381,21.43537998199463,-1,-3791.1693475282227 diff --git a/benchmarks/df/organic/basis/def2-svp/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/basis/def2-svp/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..c51be9ba --- /dev/null +++ b/benchmarks/df/organic/basis/def2-svp/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,208,8.160551071166992,1.0070991516113281,-1,-684.1881297146388 +031_Inosine,31,326,11.888460874557495,1.7420969009399414,-1,-982.5227175495497 +033_Bisphenol_A,33,318,10.503359317779541,1.7978541851043701,-1,-731.1227139679806 +037_Mg_Porphin,37,414,12.260337352752686,2.7967472076416016,-1,-1187.7543053199024 +042_Penicillin_V,42,430,16.261521339416504,2.7961485385894775,-1,-1503.203049220223 +045_Ochratoxin_A,45,472,17.70514750480652,3.3417317867279053,-1,-1662.896149353448 +052_Cetirizine,52,507,19.28774070739746,4.001626968383789,-1,-1609.5478900836329 +057_Tamoxifen,57,537,20.240687608718872,4.287323236465454,-1,-1137.121235604996 +066_Raffinose,66,636,24.872922658920288,5.987769842147827,-1,-1907.0091115802052 +084_Sphingomyelin,84,721,36.35357451438904,7.227047920227051,-1,-1809.0152777779817 +095_Azadirachtin,95,934,46.181217193603516,15.65786600112915,-1,-2561.306104528813 +113_Taxol,113,1123,79.93216848373413,25.2760910987854,-1,-2927.3342024942394 +168_Valinomycin,168,1542,167.11498260498047,52.99009823799133,-1,-3791.169347528212 diff --git a/benchmarks/df/organic/basis/def2-svp/qchem-32-cores-cpu.csv b/benchmarks/df/organic/basis/def2-svp/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..33f6638f --- /dev/null +++ b/benchmarks/df/organic/basis/def2-svp/qchem-32-cores-cpu.csv @@ -0,0 +1,13 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,10.0,3.32,-684.188129083 +031_Inosine,36.0,8.95,-982.5227300706 +033_Bisphenol_A,22.0,7.88,-731.122714897 +037_Mg_Porphin,55.0,17.95,-1187.7543125061 +042_Penicillin_V,59.0,16.46,-1503.2030863089 +045_Ochratoxin_A,73.0,22.74,-1662.8961799823 +052_Cetirizine,91.0,31.88,-1609.5479126364 +057_Tamoxifen,93.0,33.19,-1137.1212528816 +066_Raffinose,143.0,64.76,-1907.0091675761 +084_Sphingomyelin,179.0,57.75,-1809.015318981 +095_Azadirachtin,487.0,254.39,-2561.3062000994 +113_Taxol,754.0,526.02,-2927.3343490348 diff --git a/benchmarks/df/organic/basis/def2-tzvpd/A100-SXM-80GB.csv b/benchmarks/df/organic/basis/def2-tzvpd/A100-SXM-80GB.csv new file mode 100644 index 00000000..c59edfb2 --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpd/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,534,6.654919862747192,1.303596019744873,-1,-684.9983656551171 +031_Inosine,31,826,6.409037351608276,2.4522085189819336,-1,-983.6539685687085 +033_Bisphenol_A,33,779,5.486630916595459,2.2625789642333984,-1,-731.9381014226267 +037_Mg_Porphin,37,1031,8.949623107910156,4.466444969177246,-1,-1188.8813483933504 +042_Penicillin_V,42,1074,12.623379230499268,4.779623985290527,-1,-1504.5935660538344 +045_Ochratoxin_A,45,1185,12.752293348312378,5.559885740280151,-1,-1664.4010279739869 +052_Cetirizine,52,1242,14.83137321472168,6.753576755523682,-1,-1610.9848133288647 +057_Tamoxifen,57,1300,15.52376675605774,7.169055461883545,-1,-1138.3630201787519 +066_Raffinose,66,1594,25.88677406311035,11.580754518508911,-1,-1909.2468719836588 +084_Sphingomyelin,84,1701,28.53906273841858,10.400691270828247,-1,-1810.8907909413742 +095_Azadirachtin,95,2331,136.24109745025635,33.603240966796875,-1,-2564.188899140331 +113_Taxol,113,2795,149.87984943389893,54.820167541503906,-1,-2930.586435443578 +168_Valinomycin,168,3750,399.5483500957489,125.97111797332764,-1,-3795.552665125142 diff --git a/benchmarks/df/organic/basis/def2-tzvpd/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/basis/def2-tzvpd/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..10f8f0ae --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpd/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,534,5.743236780166626,1.1048574447631836,-1,-684.9983656551174 +031_Inosine,31,826,6.614603757858276,2.201477527618408,-1,-983.6539685687085 +033_Bisphenol_A,33,779,5.724342107772827,2.133068084716797,-1,-731.9381014226274 +037_Mg_Porphin,37,1031,8.4637770652771,3.8849453926086426,-1,-1188.881348393351 +042_Penicillin_V,42,1074,11.684978246688843,4.180841445922852,-1,-1504.5935660538335 +045_Ochratoxin_A,45,1185,13.413384199142456,5.01957106590271,-1,-1664.4010279739869 +052_Cetirizine,52,1242,16.134130001068115,6.146965265274048,-1,-1610.9848133288638 +057_Tamoxifen,57,1300,16.390201568603516,6.641704082489014,-1,-1138.363020178751 +066_Raffinose,66,1594,26.651982069015503,10.789607048034668,-1,-1909.2468719836625 +084_Sphingomyelin,84,1701,31.68465304374695,9.601499557495117,-1,-1810.8907909413706 +095_Azadirachtin,95,2331,145.98889756202698,31.632495403289795,-1,-2564.188899140322 +113_Taxol,113,2795,161.56011819839478,51.75374984741211,-1,-2930.5864354435707 +168_Valinomycin,168,3750,418.6258087158203,119.92009735107422,-1,-3795.5526651251457 diff --git a/benchmarks/df/organic/basis/def2-tzvpd/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/basis/def2-tzvpd/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..82a84ab1 --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpd/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,534,9.826927900314331,2.132695436477661,-1,-684.9983656551178 +031_Inosine,31,826,17.102701902389526,5.200197696685791,-1,-983.6539685687089 +033_Bisphenol_A,33,779,14.44143533706665,4.956775903701782,-1,-731.9381014226262 +037_Mg_Porphin,37,1031,18.759718656539917,9.046519756317139,-1,-1188.8813483933504 +042_Penicillin_V,42,1074,25.439067363739014,9.380114555358887,-1,-1504.5935660538348 +045_Ochratoxin_A,45,1185,29.345699787139893,11.767349481582642,-1,-1664.4010279739887 +052_Cetirizine,52,1242,33.13221502304077,14.145078659057617,-1,-1610.984813328862 +057_Tamoxifen,57,1300,50.43429255485535,15.826147079467773,-1,-1138.3630201787519 +066_Raffinose,66,1594,77.37730360031128,25.20444893836975,-1,-1909.2468719836634 +084_Sphingomyelin,84,1701,80.45511722564697,24.50955820083618,-1,-1810.8907909413724 +095_Azadirachtin,95,2331,245.97679138183594,74.33054566383362,-1,-2564.1888991403293 +113_Taxol,113,2795,313.03466963768005,120.719167470932,-1,-2930.586435443567 diff --git a/benchmarks/df/organic/basis/def2-tzvpd/qchem-32-cores-cpu.csv b/benchmarks/df/organic/basis/def2-tzvpd/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..93ed84c9 --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpd/qchem-32-cores-cpu.csv @@ -0,0 +1,11 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,48.0,11.82,-684.9983661771 +031_Inosine,140.0,35.57,-983.6539694766 +033_Bisphenol_A,120.0,34.17,-731.9380966403 +037_Mg_Porphin,198.0,77.26,-1188.8813566693 +042_Penicillin_V,235.0,78.66,-1504.593561826 +045_Ochratoxin_A,290.0,105.09,-1664.4010310483 +052_Cetirizine,375.0,134.78,-1610.9848201789 +057_Tamoxifen,397.0,145.84,-1138.3630235374 +066_Raffinose,429.0,241.49,-1909.2468694109 +084_Sphingomyelin,644.0,254.59,-1810.8907979228 diff --git a/benchmarks/df/organic/basis/def2-tzvpp/A100-SXM-80GB.csv b/benchmarks/df/organic/basis/def2-tzvpp/A100-SXM-80GB.csv new file mode 100644 index 00000000..936ea720 --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpp/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,5.566343784332275,1.0092358589172363,-1,-684.9998712304978 +031_Inosine,31,757,5.4314470291137695,1.8568284511566162,-1,-983.6545622284157 +033_Bisphenol_A,33,751,5.112223386764526,1.8574542999267578,-1,-731.9425812607694 +037_Mg_Porphin,37,944,6.796313524246216,3.2722911834716797,-1,-1188.8834346155813 +042_Penicillin_V,42,1007,9.460737943649292,3.4848668575286865,-1,-1504.5970074372067 +045_Ochratoxin_A,45,1100,10.295934677124023,4.1023268699646,-1,-1664.4047770134857 +052_Cetirizine,52,1198,13.065029382705688,5.3568878173828125,-1,-1610.9899034451623 +057_Tamoxifen,57,1274,13.886844635009766,5.926028490066528,-1,-1138.3713903576554 +066_Raffinose,66,1502,20.67488145828247,8.696324110031128,-1,-1909.253574965227 +084_Sphingomyelin,84,1748,24.92488718032837,8.768393993377686,-1,-1810.9032955330708 +095_Azadirachtin,95,2197,92.76208138465881,24.107633590698242,-1,-2564.198712061071 +113_Taxol,113,2636,147.91346430778503,39.64811635017395,-1,-2930.5984200568655 +168_Valinomycin,168,3678,1150.1053104400635,988.2313795089722,-1,-3795.5874330220067 diff --git a/benchmarks/df/organic/basis/def2-tzvpp/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/basis/def2-tzvpp/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..38075153 --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpp/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,5.556931257247925,1.0200526714324951,-1,-684.9998712304982 +031_Inosine,31,757,6.112112522125244,1.8068022727966309,-1,-983.6545622284152 +033_Bisphenol_A,33,751,5.680012941360474,1.829089641571045,-1,-731.9425812607697 +037_Mg_Porphin,37,944,7.5740807056427,3.0772857666015625,-1,-1188.8834346155818 +042_Penicillin_V,42,1007,10.663032293319702,3.3250420093536377,-1,-1504.597007437209 +045_Ochratoxin_A,45,1100,12.26717734336853,3.895185947418213,-1,-1664.4047770134857 +052_Cetirizine,52,1198,14.766838788986206,5.110014915466309,-1,-1610.9899034451623 +057_Tamoxifen,57,1274,15.469822645187378,5.6486732959747314,-1,-1138.3713903576554 +066_Raffinose,66,1502,22.839627027511597,8.166324138641357,-1,-1909.2535749652252 +084_Sphingomyelin,84,1748,29.39814805984497,8.214901447296143,-1,-1810.9032955330708 +095_Azadirachtin,95,2197,100.23631596565247,23.491753339767456,-1,-2564.1987120610765 +113_Taxol,113,2636,157.4899492263794,37.64330840110779,-1,-2930.59842005686 +168_Valinomycin,168,3678,355.8271896839142,78.65090155601501,-1,-3795.587433022025 diff --git a/benchmarks/df/organic/basis/def2-tzvpp/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/basis/def2-tzvpp/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..1e6c402f --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpp/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,8.298742532730103,1.8147852420806885,-1,-684.9998712304971 +031_Inosine,31,757,15.306780815124512,4.217100381851196,-1,-983.6545622284152 +033_Bisphenol_A,33,751,13.980681419372559,4.3560755252838135,-1,-731.9425812607706 +037_Mg_Porphin,37,944,16.75301480293274,7.147723197937012,-1,-1188.8834346155822 +042_Penicillin_V,42,1007,22.7495539188385,7.258328199386597,-1,-1504.5970074372058 +045_Ochratoxin_A,45,1100,25.875207662582397,8.960210800170898,-1,-1664.4047770134866 +052_Cetirizine,52,1198,29.674678087234497,11.486072778701782,-1,-1610.9899034451623 +057_Tamoxifen,57,1274,30.656619548797607,12.306862354278564,-1,-1138.3713903576554 +066_Raffinose,66,1502,57.27416181564331,18.546212673187256,-1,-1909.253574965228 +084_Sphingomyelin,84,1748,71.57202792167664,20.325098514556885,-1,-1810.90329553307 +095_Azadirachtin,95,2197,168.8704252243042,52.33920741081238,-1,-2564.1987120610693 +113_Taxol,113,2636,307.03701853752136,85.68509697914124,-1,-2930.598420056862 diff --git a/benchmarks/df/organic/basis/def2-tzvpp/qchem-32-cores-cpu.csv b/benchmarks/df/organic/basis/def2-tzvpp/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..d7bcee75 --- /dev/null +++ b/benchmarks/df/organic/basis/def2-tzvpp/qchem-32-cores-cpu.csv @@ -0,0 +1,13 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,33.0,9.9,-684.9998717845 +031_Inosine,104.0,29.76,-983.6545630427 +033_Bisphenol_A,94.0,29.41,-731.9425766448 +037_Mg_Porphin,128.0,56.41,-1188.8834428997 +042_Penicillin_V,175.0,57.2,-1504.5970055807 +045_Ochratoxin_A,188.0,77.07,-1664.4047846776 +052_Cetirizine,256.0,104.83,-1610.9899118452 +057_Tamoxifen,298.0,114.5,-1138.3713951255 +066_Raffinose,349.0,194.98,-1909.2535813929 +084_Sphingomyelin,524.0,194.21,-1810.9033107333 +095_Azadirachtin,2335.0,938.36,-2564.1987343228 +113_Taxol,3780.0,1845.47,-2930.5984454016 diff --git a/benchmarks/df/organic/basis/sto-3g/A100-SXM-80GB.csv b/benchmarks/df/organic/basis/sto-3g/A100-SXM-80GB.csv new file mode 100644 index 00000000..50faac13 --- /dev/null +++ b/benchmarks/df/organic/basis/sto-3g/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,68,4.280375003814697,0.3823843002319336,-1,-675.5191427445507 +031_Inosine,31,107,2.392287015914917,0.3562748432159424,-1,-970.3601703535096 +033_Bisphenol_A,33,101,2.2256898880004883,0.34991025924682617,-1,-722.4575094545305 +037_Mg_Porphin,37,141,2.6677324771881104,0.5486934185028076,-1,-1173.7927754921366 +042_Penicillin_V,42,142,3.179009199142456,0.5451009273529053,-1,-1485.464968373929 +045_Ochratoxin_A,45,157,3.6462783813476562,0.6953268051147461,-1,-1643.4719863900064 +052_Cetirizine,52,164,3.9863054752349854,0.7237148284912109,-1,-1591.0513291828852 +057_Tamoxifen,57,169,4.125242471694946,0.7896935939788818,-1,-1123.9167963056725 +066_Raffinose,66,202,5.120527267456055,1.1471302509307861,-1,-1882.988055475049 +084_Sphingomyelin,84,220,10.285906076431274,1.2866826057434082,-1,-1787.5270517444555 +095_Azadirachtin,95,299,9.472655057907104,2.8504865169525146,-1,-2530.024523612373 +113_Taxol,113,361,12.340314865112305,4.723545789718628,-1,-2891.8561844202995 +168_Valinomycin,168,480,24.36805534362793,10.147969722747803,-1,-3744.9223643736477 diff --git a/benchmarks/df/organic/basis/sto-3g/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/basis/sto-3g/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..a9d0933a --- /dev/null +++ b/benchmarks/df/organic/basis/sto-3g/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,68,4.334577322006226,0.3771357536315918,-1,-675.5191427445507 +031_Inosine,31,107,2.5327394008636475,0.33897876739501953,-1,-970.3601703535105 +033_Bisphenol_A,33,101,2.4269118309020996,0.32376623153686523,-1,-722.4575094545303 +037_Mg_Porphin,37,141,2.5749151706695557,0.5360629558563232,-1,-1173.7927754921357 +042_Penicillin_V,42,142,3.392273426055908,0.5647890567779541,-1,-1485.4649683739299 +045_Ochratoxin_A,45,157,3.7472238540649414,0.6721327304840088,-1,-1643.4719863900054 +052_Cetirizine,52,164,4.3383002281188965,0.6924264430999756,-1,-1591.0513291828806 +057_Tamoxifen,57,169,4.410161018371582,0.7650091648101807,-1,-1123.9167963056748 +066_Raffinose,66,202,5.353307247161865,1.0840356349945068,-1,-1882.9880554750453 +084_Sphingomyelin,84,220,12.073735475540161,1.2556653022766113,-1,-1787.5270517444574 +095_Azadirachtin,95,299,10.272052764892578,2.6534860134124756,-1,-2530.024523612371 +113_Taxol,113,361,13.37483525276184,4.468937397003174,-1,-2891.8561844203196 +168_Valinomycin,168,480,26.158811807632446,9.459513664245605,-1,-3744.9223643736404 diff --git a/benchmarks/df/organic/basis/sto-3g/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/basis/sto-3g/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..18603814 --- /dev/null +++ b/benchmarks/df/organic/basis/sto-3g/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,68,7.735399961471558,0.8264245986938477,-1,-675.5191427445513 +031_Inosine,31,107,12.40164589881897,1.2864620685577393,-1,-970.3601703535105 +033_Bisphenol_A,33,101,9.470605850219727,1.3010294437408447,-1,-722.4575094545307 +037_Mg_Porphin,37,141,10.585906982421875,1.7864344120025635,-1,-1173.7927754921361 +042_Penicillin_V,42,142,14.566765546798706,1.8530471324920654,-1,-1485.4649683739317 +045_Ochratoxin_A,45,157,16.409618377685547,2.151444673538208,-1,-1643.4719863900054 +052_Cetirizine,52,164,16.940945386886597,2.433612108230591,-1,-1591.0513291828825 +057_Tamoxifen,57,169,17.164642333984375,2.5976877212524414,-1,-1123.9167963056734 +066_Raffinose,66,202,19.061853408813477,3.485790491104126,-1,-1882.9880554750498 +084_Sphingomyelin,84,220,70.13539099693298,4.33745265007019,-1,-1787.52705174446 +095_Azadirachtin,95,299,35.65800380706787,7.805527210235596,-1,-2530.024523612371 +113_Taxol,113,361,41.06178140640259,12.37047815322876,-1,-2891.8561844202995 +168_Valinomycin,168,480,66.3832175731659,26.61207914352417,-1,-3744.922364373644 diff --git a/benchmarks/df/organic/basis/sto-3g/qchem-32-cores-cpu.csv b/benchmarks/df/organic/basis/sto-3g/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..cdcaf2eb --- /dev/null +++ b/benchmarks/df/organic/basis/sto-3g/qchem-32-cores-cpu.csv @@ -0,0 +1,13 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,4.0,1.18,-675.5191462951 +031_Inosine,12.0,3.87,-970.360227244 +033_Bisphenol_A,11.0,4.3,-722.4575492056 +037_Mg_Porphin,19.0,7.37,-1173.792785933 +042_Penicillin_V,20.0,7.51,-1485.4650864849 +045_Ochratoxin_A,26.0,9.87,-1643.4720905903 +052_Cetirizine,31.0,14.86,-1591.0513973537 +057_Tamoxifen,33.0,16.04,-1123.9168986001 +066_Raffinose,44.0,27.53,-1882.9882698522 +095_Azadirachtin,165.0,103.83,-2530.0249114909 +113_Taxol,269.0,217.06,-2891.8568650227 +168_Valinomycin,613.0,830.6,-3744.923289617 diff --git a/benchmarks/df/organic/xc/B3LYP/A100-SXM-80GB.csv b/benchmarks/df/organic/xc/B3LYP/A100-SXM-80GB.csv new file mode 100644 index 00000000..836eb134 --- /dev/null +++ b/benchmarks/df/organic/xc/B3LYP/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,6.536693334579468,1.0687551498413086,-1,-684.9998712304978 +031_Inosine,31,757,5.713192701339722,1.979923963546753,-1,-983.6545622284157 +033_Bisphenol_A,33,751,5.495375156402588,2.103788137435913,-1,-731.9425812607694 +037_Mg_Porphin,37,944,7.37791895866394,3.194030284881592,-1,-1188.8834346155813 +042_Penicillin_V,42,1007,9.944793939590454,3.687964916229248,-1,-1504.5970074372067 +045_Ochratoxin_A,45,1100,10.987479209899902,4.178173542022705,-1,-1664.4047770134857 +052_Cetirizine,52,1198,13.89931058883667,5.559612035751343,-1,-1610.9899034451623 +057_Tamoxifen,57,1274,14.530046463012695,5.978527545928955,-1,-1138.3713903576554 +066_Raffinose,66,1502,20.843673706054688,8.777323961257935,-1,-1909.253574965227 +084_Sphingomyelin,84,1748,25.394211530685425,8.950069427490234,-1,-1810.9032955330708 +095_Azadirachtin,95,2197,92.36969590187073,24.318066358566284,-1,-2564.198712061071 +113_Taxol,113,2636,149.23795580863953,39.57716727256775,-1,-2930.5984200568655 +168_Valinomycin,168,3678,344.27114701271057,84.33262896537781,-1,-3795.5874330220067 diff --git a/benchmarks/df/organic/xc/B3LYP/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/xc/B3LYP/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..ec26b49f --- /dev/null +++ b/benchmarks/df/organic/xc/B3LYP/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,5.492899417877197,1.01948881149292,-1,-684.9998712304978 +031_Inosine,31,757,5.912674903869629,1.829479455947876,-1,-983.6545622284157 +033_Bisphenol_A,33,751,5.440834283828735,1.826728343963623,-1,-731.9425812607694 +037_Mg_Porphin,37,944,7.304898738861084,3.2838988304138184,-1,-1188.8834346155813 +042_Penicillin_V,42,1007,10.433107852935791,3.393378496170044,-1,-1504.5970074372067 +045_Ochratoxin_A,45,1100,11.496653318405151,4.0517518520355225,-1,-1664.4047770134857 +052_Cetirizine,52,1198,14.367682695388794,5.144760608673096,-1,-1610.9899034451623 +057_Tamoxifen,57,1274,16.633729457855225,5.695083379745483,-1,-1138.3713903576554 +066_Raffinose,66,1502,22.467423677444458,8.366443872451782,-1,-1909.253574965227 +084_Sphingomyelin,84,1748,29.06774377822876,8.300293207168579,-1,-1810.9032955330708 +095_Azadirachtin,95,2197,99.11934089660645,22.951361656188965,-1,-2564.198712061071 +113_Taxol,113,2636,156.1254711151123,37.49601125717163,-1,-2930.5984200568655 +168_Valinomycin,168,3678,353.55037093162537,79.85253310203552,-1,-3795.5874330220067 diff --git a/benchmarks/df/organic/xc/B3LYP/PySCF-16-cores-CPU.csv b/benchmarks/df/organic/xc/B3LYP/PySCF-16-cores-CPU.csv new file mode 100644 index 00000000..31060b74 --- /dev/null +++ b/benchmarks/df/organic/xc/B3LYP/PySCF-16-cores-CPU.csv @@ -0,0 +1,2 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,166.60069680213928,28.479886293411255,-1,-684.9998712303525 diff --git a/benchmarks/df/organic/xc/B3LYP/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/xc/B3LYP/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..28c08b15 --- /dev/null +++ b/benchmarks/df/organic/xc/B3LYP/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,8.800972700119019,1.8244855403900146,-1,-684.9998712304971 +031_Inosine,31,757,15.298340559005737,4.22208046913147,-1,-983.6545622284152 +033_Bisphenol_A,33,751,13.67347502708435,4.29579758644104,-1,-731.9425812607706 +037_Mg_Porphin,37,944,16.657176971435547,7.128359317779541,-1,-1188.8834346155822 +042_Penicillin_V,42,1007,22.56564474105835,7.278250694274902,-1,-1504.5970074372058 +045_Ochratoxin_A,45,1100,25.849337577819824,8.798875570297241,-1,-1664.4047770134866 +052_Cetirizine,52,1198,29.810972690582275,11.371991157531738,-1,-1610.9899034451623 +057_Tamoxifen,57,1274,30.65237545967102,12.279793977737427,-1,-1138.3713903576554 +066_Raffinose,66,1502,56.71444773674011,18.516536712646484,-1,-1909.253574965228 +084_Sphingomyelin,84,1748,71.15179228782654,20.308568716049194,-1,-1810.90329553307 +095_Azadirachtin,95,2197,167.69542574882507,52.49988389015198,-1,-2564.1987120610693 +113_Taxol,113,2636,304.86932730674744,84.91861462593079,-1,-2930.598420056862 diff --git a/benchmarks/df/organic/xc/B3LYP/qchem-32-cores-cpu.csv b/benchmarks/df/organic/xc/B3LYP/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..7f714f18 --- /dev/null +++ b/benchmarks/df/organic/xc/B3LYP/qchem-32-cores-cpu.csv @@ -0,0 +1,13 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,72.0,10.76,-684.61987682 +031_Inosine,98.0,27.66,-983.6545630427 +033_Bisphenol_A,90.0,28.4,-731.9425766448 +037_Mg_Porphin,150.0,59.28,-1188.8834428997 +042_Penicillin_V,160.0,59.04,-1504.5970055807 +045_Ochratoxin_A,226.0,79.06,-1664.4047846776 +052_Cetirizine,273.0,106.99,-1610.9899118452 +057_Tamoxifen,306.0,117.37,-1138.3713951255 +066_Raffinose,460.0,202.49,-1909.2535813929 +084_Sphingomyelin,464.0,196.09,-1810.9033107333 +095_Azadirachtin,2397.0,969.47,-2564.1987343228 +113_Taxol,3837.0,1913.29,-2930.5984454016 diff --git a/benchmarks/df/organic/xc/LDA/A100-SXM-80GB.csv b/benchmarks/df/organic/xc/LDA/A100-SXM-80GB.csv new file mode 100644 index 00000000..ca92b52e --- /dev/null +++ b/benchmarks/df/organic/xc/LDA/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,5.19031834602356,0.6805047988891602,-1,-679.7314731884483 +031_Inosine,31,757,3.6360390186309814,1.1433203220367432,-1,-975.8114573030061 +033_Bisphenol_A,33,751,4.0101823806762695,1.1337347030639648,-1,-725.553770260623 +037_Mg_Porphin,37,944,4.718317270278931,1.972421407699585,-1,-1179.2748822516655 +042_Penicillin_V,42,1007,6.077786445617676,2.0127060413360596,-1,-1494.1035822615622 +045_Ochratoxin_A,45,1100,6.620861530303955,2.403964042663574,-1,-1652.835274633937 +052_Cetirizine,52,1198,7.524308204650879,3.0865039825439453,-1,-1599.592093044906 +057_Tamoxifen,57,1274,8.839669942855835,3.4637794494628906,-1,-1128.1503244194819 +066_Raffinose,66,1502,11.437867403030396,4.90704083442688,-1,-1894.4282941469082 +084_Sphingomyelin,84,1748,12.170867681503296,4.969562292098999,-1,-1796.8793662974263 +095_Azadirachtin,95,2197,86.44375610351562,15.016737222671509,-1,-2543.536233345826 +113_Taxol,113,2636,142.75920486450195,23.587186574935913,-1,-2906.270698339109 +168_Valinomycin,168,3678,300.4492816925049,96.7083010673523,-1,-3763.957449182213 diff --git a/benchmarks/df/organic/xc/LDA/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/xc/LDA/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..5d7adf5a --- /dev/null +++ b/benchmarks/df/organic/xc/LDA/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,4.8870251178741455,0.7088582515716553,-1,-679.7314731884483 +031_Inosine,31,757,3.7281572818756104,1.0899417400360107,-1,-975.8114573030061 +033_Bisphenol_A,33,751,3.735625743865967,1.1728365421295166,-1,-725.553770260623 +037_Mg_Porphin,37,944,4.76511025428772,1.892608880996704,-1,-1179.2748822516655 +042_Penicillin_V,42,1007,6.189059495925903,2.262063980102539,-1,-1494.1035822615622 +045_Ochratoxin_A,45,1100,7.0473151206970215,2.3621344566345215,-1,-1652.835274633937 +052_Cetirizine,52,1198,7.927794456481934,2.8812005519866943,-1,-1599.592093044906 +057_Tamoxifen,57,1274,8.841269493103027,3.150391101837158,-1,-1128.1503244194819 +066_Raffinose,66,1502,11.544088363647461,4.533247232437134,-1,-1894.4282941469082 +084_Sphingomyelin,84,1748,12.709854125976562,4.437111854553223,-1,-1796.8793662974263 +095_Azadirachtin,95,2197,90.11724829673767,14.147114038467407,-1,-2543.536233345826 +113_Taxol,113,2636,149.7301163673401,21.684542894363403,-1,-2906.270698339109 +168_Valinomycin,168,3678,305.1583340167999,46.39772653579712,-1,-3763.957449182213 diff --git a/benchmarks/df/organic/xc/LDA/PySCF-16-cores-CPU.csv b/benchmarks/df/organic/xc/LDA/PySCF-16-cores-CPU.csv new file mode 100644 index 00000000..738bed97 --- /dev/null +++ b/benchmarks/df/organic/xc/LDA/PySCF-16-cores-CPU.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,98.72748970985413,11.381302833557129,-1,-673.5663565948323 +031_Inosine,31,757,228.59019231796265,37.56609106063843,-1,-966.5178206724472 +033_Bisphenol_A,33,751,192.921062707901,39.41037964820862,-1,-717.6724309321194 +037_Mg_Porphin,37,944,230.14748692512512,64.43460512161255,-1,-1167.9169240469942 +042_Penicillin_V,42,1007,325.2209725379944,75.25960993766785,-1,-1481.8185642023986 +045_Ochratoxin_A,45,1100,372.61192440986633,95.17283821105957,-1,-1639.3603917983983 +052_Cetirizine,52,1198,406.4650754928589,132.0047106742859,-1,-1586.0250650347375 +057_Tamoxifen,57,1274,404.77607583999634,156.75579738616943,-1,-1115.3312859200018 +066_Raffinose,66,1502,489.996458530426,245.18819570541382,-1,-1876.6273634358213 +084_Sphingomyelin,84,1748,777.8037655353546,254.25671195983887,-1,-1779.4236365141664 +095_Azadirachtin,95,2197,1359.784873008728,771.6812634468079,-1,-2518.3629919709592 +113_Taxol,113,2636,1860.3732132911682,1313.059279680252,-1,-2876.665653644961 +168_Valinomycin,168,3678,3258.148581504822,3444.401253938675,-1,-3724.7814430309736 diff --git a/benchmarks/df/organic/xc/LDA/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/xc/LDA/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..7e681e4d --- /dev/null +++ b/benchmarks/df/organic/xc/LDA/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,7.407944440841675,1.1166906356811523,-1,-679.7314731884478 +031_Inosine,31,757,10.551367998123169,2.482494831085205,-1,-975.8114573030061 +033_Bisphenol_A,33,751,9.474869966506958,2.5017004013061523,-1,-725.553770260623 +037_Mg_Porphin,37,944,11.756503105163574,4.437911748886108,-1,-1179.2748822516646 +042_Penicillin_V,42,1007,14.69340968132019,4.336089134216309,-1,-1494.1035822615618 +045_Ochratoxin_A,45,1100,17.199308156967163,5.34029746055603,-1,-1652.835274633937 +052_Cetirizine,52,1198,16.72532558441162,6.831871509552002,-1,-1599.592093044906 +057_Tamoxifen,57,1274,19.13835573196411,7.274401903152466,-1,-1128.1503244194819 +066_Raffinose,66,1502,49.35603308677673,11.364518404006958,-1,-1894.42829414691 +084_Sphingomyelin,84,1748,54.22067070007324,11.977006673812866,-1,-1796.879366297428 +095_Azadirachtin,95,2197,149.97830390930176,32.74151802062988,-1,-2543.536233345817 +113_Taxol,113,2636,261.5021336078644,56.135865211486816,-1,-2906.2706983391035 diff --git a/benchmarks/df/organic/xc/LDA/qchem-32-cores-cpu.csv b/benchmarks/df/organic/xc/LDA/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..9a2de937 --- /dev/null +++ b/benchmarks/df/organic/xc/LDA/qchem-32-cores-cpu.csv @@ -0,0 +1,13 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,14.0,3.56,-679.7314745086 +031_Inosine,49.0,7.96,-975.8114577115 +033_Bisphenol_A,46.0,8.89,-725.553763622 +037_Mg_Porphin,66.0,14.14,-1179.2748793144 +042_Penicillin_V,64.0,13.64,-1494.103579632 +045_Ochratoxin_A,94.0,17.73,-1652.8352834053 +052_Cetirizine,141.0,23.98,-1599.5921033435 +057_Tamoxifen,130.0,28.07,-1128.1503311128 +066_Raffinose,159.0,38.63,-1894.4283011989 +084_Sphingomyelin,181.0,37.76,-1796.8793820306 +095_Azadirachtin,503.0,108.83,-2543.5362671667 +113_Taxol,815.0,175.2,-2906.2707301461 diff --git a/benchmarks/df/organic/xc/M06/A100-SXM-80GB.csv b/benchmarks/df/organic/xc/M06/A100-SXM-80GB.csv new file mode 100644 index 00000000..4a8c54bc --- /dev/null +++ b/benchmarks/df/organic/xc/M06/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,7.239452362060547,1.2442829608917236,-1,-684.619869515845 +031_Inosine,31,757,7.898204565048218,2.2871077060699463,-1,-983.0547589104604 +033_Bisphenol_A,33,751,6.983739376068115,2.3445489406585693,-1,-731.4091463101108 +037_Mg_Porphin,37,944,9.93832015991211,3.951474666595459,-1,-1188.1212310147703 +042_Penicillin_V,42,1007,14.46263074874878,4.66741156578064,-1,-1503.858948674962 +045_Ochratoxin_A,45,1100,14.88665509223938,5.082300901412964,-1,-1663.5696830251036 +052_Cetirizine,52,1198,20.831133365631104,6.881482362747192,-1,-1610.140238148088 +057_Tamoxifen,57,1274,21.605111598968506,7.628223896026611,-1,-1137.4845527071766 +066_Raffinose,66,1502,30.967734575271606,11.079029083251953,-1,-1908.1931821866547 +084_Sphingomyelin,84,1748,31.8246169090271,9.770634651184082,-1,-1809.8210465003963 +095_Azadirachtin,95,2197,111.95785093307495,28.64066791534424,-1,-2562.691519186691 +113_Taxol,113,2636,179.175772190094,45.65501952171326,-1,-2928.7606872249544 +168_Valinomycin,168,3678,402.1519751548767,95.37574505805969,-1,-3793.2016369712983 diff --git a/benchmarks/df/organic/xc/M06/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/xc/M06/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..fb0c8e1a --- /dev/null +++ b/benchmarks/df/organic/xc/M06/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,6.38824725151062,1.1219229698181152,-1,-684.619869515845 +031_Inosine,31,757,7.5703113079071045,2.168393611907959,-1,-983.0547589104604 +033_Bisphenol_A,33,751,7.170833349227905,2.2604305744171143,-1,-731.4091463101108 +037_Mg_Porphin,37,944,10.137072801589966,3.741095781326294,-1,-1188.1212310147703 +042_Penicillin_V,42,1007,14.67328405380249,4.221444845199585,-1,-1503.858948674962 +045_Ochratoxin_A,45,1100,14.957886219024658,4.712314128875732,-1,-1663.5696830251036 +052_Cetirizine,52,1198,21.75391912460327,6.525522708892822,-1,-1610.140238148088 +057_Tamoxifen,57,1274,23.0108802318573,7.200787305831909,-1,-1137.4845527071766 +066_Raffinose,66,1502,31.956539392471313,10.537749767303467,-1,-1908.1931821866547 +084_Sphingomyelin,84,1748,35.147979497909546,9.277905225753784,-1,-1809.8210465003963 +095_Azadirachtin,95,2197,121.20170712471008,27.361077070236206,-1,-2562.691519186691 +113_Taxol,113,2636,186.93862509727478,44.07694101333618,-1,-2928.7606872249544 +168_Valinomycin,168,3678,414.9386417865753,91.17277765274048,-1,-3793.2016369712983 diff --git a/benchmarks/df/organic/xc/M06/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/xc/M06/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..21027257 --- /dev/null +++ b/benchmarks/df/organic/xc/M06/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,12.437044858932495,2.1609699726104736,-1,-684.6198695158453 +031_Inosine,31,757,20.66638159751892,4.955613374710083,-1,-983.0547589104599 +033_Bisphenol_A,33,751,18.485742568969727,5.183716773986816,-1,-731.4091463101092 +037_Mg_Porphin,37,944,23.25464677810669,8.151477813720703,-1,-1188.1212310147698 +042_Penicillin_V,42,1007,30.408202648162842,8.447172164916992,-1,-1503.858948674963 +045_Ochratoxin_A,45,1100,33.617873191833496,10.075827836990356,-1,-1663.5696830251045 +052_Cetirizine,52,1198,42.68663263320923,13.130903959274292,-1,-1610.140238148087 +057_Tamoxifen,57,1274,42.551064014434814,13.890989065170288,-1,-1137.4845527071761 +066_Raffinose,66,1502,69.30276298522949,20.872440814971924,-1,-1908.1931821866538 +084_Sphingomyelin,84,1748,90.0351390838623,22.381996154785156,-1,-1809.8210465004 +095_Azadirachtin,95,2197,196.9105498790741,58.10214638710022,-1,-2562.6915191866965 +113_Taxol,113,2636,345.9941246509552,104.40749049186707,-1,-2928.7606872249507 diff --git a/benchmarks/df/organic/xc/M06/qchem-32-cores-cpu.csv b/benchmarks/df/organic/xc/M06/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..ce078ccb --- /dev/null +++ b/benchmarks/df/organic/xc/M06/qchem-32-cores-cpu.csv @@ -0,0 +1,13 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,74.0,10.41,-684.61987682 +031_Inosine,196.0,27.36,-983.0547854079 +033_Bisphenol_A,204.0,28.58,-731.4091575791 +037_Mg_Porphin,287.0,59.16,-1188.1215069298 +042_Penicillin_V,323.0,61.1,-1503.858955122 +045_Ochratoxin_A,405.0,81.04,-1663.569666002 +052_Cetirizine,531.0,107.38,-1610.1402651215 +057_Tamoxifen,572.0,116.63,-1137.4845310101 +066_Raffinose,733.0,196.28,-1908.1931526222 +084_Sphingomyelin,777.0,200.71,-1809.8210431462 +095_Azadirachtin,3253.0,930.45,-2562.6915510995 +113_Taxol,5447.0,1768.82,-2928.7607429852 diff --git a/benchmarks/df/organic/xc/PBE/A100-SXM-80GB.csv b/benchmarks/df/organic/xc/PBE/A100-SXM-80GB.csv new file mode 100644 index 00000000..d00e81f8 --- /dev/null +++ b/benchmarks/df/organic/xc/PBE/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,6.961557388305664,0.991546630859375,-1,-684.2574240082379 +031_Inosine,31,757,5.6712257862091064,1.8366539478302002,-1,-982.5686273049541 +033_Bisphenol_A,33,751,4.852174997329712,1.7802679538726807,-1,-731.0147406494493 +037_Mg_Porphin,37,944,6.25937294960022,2.7324182987213135,-1,-1187.5447279965138 +042_Penicillin_V,42,1007,9.47238302230835,3.1186983585357666,-1,-1503.130556521959 +045_Ochratoxin_A,45,1100,9.140993595123291,3.7543253898620605,-1,-1662.7850791530736 +052_Cetirizine,52,1198,10.354186534881592,4.69004487991333,-1,-1609.366529016344 +057_Tamoxifen,57,1274,12.039185047149658,5.076211452484131,-1,-1136.8847058776219 +066_Raffinose,66,1502,16.18307614326477,7.3085174560546875,-1,-1907.112294895277 +084_Sphingomyelin,84,1748,17.68308401107788,7.188992500305176,-1,-1808.775538584849 +095_Azadirachtin,95,2197,93.63990569114685,19.67312526702881,-1,-2561.2687911203766 +113_Taxol,113,2636,156.57277917861938,30.20958161354065,-1,-2927.1162449211824 +168_Valinomycin,168,3678,357.24370884895325,109.15746283531189,-1,-3790.885012787334 diff --git a/benchmarks/df/organic/xc/PBE/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/xc/PBE/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..150747d9 --- /dev/null +++ b/benchmarks/df/organic/xc/PBE/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,5.5862135887146,0.9870169162750244,-1,-684.2574240082379 +031_Inosine,31,757,5.732322931289673,1.5905745029449463,-1,-982.5686273049541 +033_Bisphenol_A,33,751,5.03624153137207,1.619131088256836,-1,-731.0147406494493 +037_Mg_Porphin,37,944,6.461896657943726,2.6558828353881836,-1,-1187.5447279965138 +042_Penicillin_V,42,1007,9.360698699951172,2.9013607501983643,-1,-1503.130556521959 +045_Ochratoxin_A,45,1100,9.610546350479126,3.3021762371063232,-1,-1662.7850791530736 +052_Cetirizine,52,1198,11.40823745727539,4.345647573471069,-1,-1609.366529016344 +057_Tamoxifen,57,1274,13.521334886550903,4.767632007598877,-1,-1136.8847058776219 +066_Raffinose,66,1502,17.822139739990234,6.789742469787598,-1,-1907.112294895277 +084_Sphingomyelin,84,1748,21.762745141983032,6.569229364395142,-1,-1808.775538584849 +095_Azadirachtin,95,2197,100.73956489562988,18.331065893173218,-1,-2561.2687911203766 +113_Taxol,113,2636,164.95471501350403,28.685845613479614,-1,-2927.1162449211824 +168_Valinomycin,168,3678,353.69052505493164,56.79609656333923,-1,-3790.885012787334 diff --git a/benchmarks/df/organic/xc/PBE/PySCF-16-cores-CPU.csv b/benchmarks/df/organic/xc/PBE/PySCF-16-cores-CPU.csv new file mode 100644 index 00000000..be5e9b77 --- /dev/null +++ b/benchmarks/df/organic/xc/PBE/PySCF-16-cores-CPU.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,127.77058172225952,22.720113039016724,-1,-684.2574240072397 +031_Inosine,31,757,281.0171639919281,69.74131369590759,-1,-982.5686273053839 +033_Bisphenol_A,33,751,235.67442345619202,69.46034455299377,-1,-731.0147406493556 +037_Mg_Porphin,37,944,290.7133102416992,111.29512572288513,-1,-1187.5447279978862 +042_Penicillin_V,42,1007,419.4401741027832,129.7432074546814,-1,-1503.1305565301836 +045_Ochratoxin_A,45,1100,502.1398868560791,163.81242108345032,-1,-1662.7850791611536 +052_Cetirizine,52,1198,482.6661548614502,229.73909282684326,-1,-1609.366529018504 +057_Tamoxifen,57,1274,517.4850268363953,277.17779302597046,-1,-1136.8847058774309 +066_Raffinose,66,1502,598.8673341274261,420.49633145332336,-1,-1907.1122948952207 +084_Sphingomyelin,84,1748,974.6237545013428,424.8226993083954,-1,-1808.7755385849691 +095_Azadirachtin,95,2197,1631.4011478424072,1277.4062144756317,-1,-2561.2687911199764 +113_Taxol,113,2636,2369.557379961014,2175.742966890335,-1,-2927.1162449197564 +168_Valinomycin,168,3678,3851.094472885132,5654.397842407227,-1,-3790.8850127873957 diff --git a/benchmarks/df/organic/xc/PBE/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/xc/PBE/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..5f7b55e1 --- /dev/null +++ b/benchmarks/df/organic/xc/PBE/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,10.308462142944336,1.6231467723846436,-1,-684.2574240082379 +031_Inosine,31,757,15.287026643753052,3.5448477268218994,-1,-982.5686273049541 +033_Bisphenol_A,33,751,12.796265840530396,3.6957123279571533,-1,-731.0147406494491 +037_Mg_Porphin,37,944,14.30986475944519,5.791215658187866,-1,-1187.5447279965133 +042_Penicillin_V,42,1007,20.26565909385681,5.973749160766602,-1,-1503.13055652196 +045_Ochratoxin_A,45,1100,21.085000038146973,7.1822357177734375,-1,-1662.7850791530745 +052_Cetirizine,52,1198,23.37704873085022,9.17398715019226,-1,-1609.366529016344 +057_Tamoxifen,57,1274,26.621222496032715,9.831178426742554,-1,-1136.8847058776214 +066_Raffinose,66,1502,58.76239728927612,14.858367919921875,-1,-1907.112294895277 +084_Sphingomyelin,84,1748,70.2571325302124,16.36003875732422,-1,-1808.775538584849 +095_Azadirachtin,95,2197,164.3051815032959,39.811671018600464,-1,-2561.2687911203766 +113_Taxol,113,2636,273.7968969345093,218.1352825164795,-1,-2927.1162449211806 diff --git a/benchmarks/df/organic/xc/PBE/qchem-32-cores-cpu.csv b/benchmarks/df/organic/xc/PBE/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..7aad6be9 --- /dev/null +++ b/benchmarks/df/organic/xc/PBE/qchem-32-cores-cpu.csv @@ -0,0 +1,13 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,34.0,6.95,-684.2574253061 +031_Inosine,91.0,15.96,-982.5686273584 +033_Bisphenol_A,85.0,17.98,-731.0147356624 +037_Mg_Porphin,123.0,30.12,-1187.5447187696 +042_Penicillin_V,125.0,26.01,-1503.1305540488 +045_Ochratoxin_A,147.0,30.81,-1662.7850882275 +052_Cetirizine,199.0,42.17,-1609.3665402156 +057_Tamoxifen,224.0,45.81,-1136.8847138391 +066_Raffinose,253.0,64.25,-1907.1123038637 +084_Sphingomyelin,279.0,62.31,-1808.7755554378 +095_Azadirachtin,778.0,173.82,-2561.2688203759 +113_Taxol,1123.0,259.63,-2927.1162746272 diff --git a/benchmarks/df/organic/xc/wB97m-v/A100-SXM-80GB.csv b/benchmarks/df/organic/xc/wB97m-v/A100-SXM-80GB.csv new file mode 100644 index 00000000..b4699f98 --- /dev/null +++ b/benchmarks/df/organic/xc/wB97m-v/A100-SXM-80GB.csv @@ -0,0 +1,14 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,10.226790189743042,1.9927737712860107,-1,-684.7972152992588 +031_Inosine,31,757,15.368789434432983,3.730320692062378,-1,-983.3589054987574 +033_Bisphenol_A,33,751,12.893135070800781,3.7566306591033936,-1,-731.659867656484 +037_Mg_Porphin,37,944,18.265013217926025,6.181380987167358,-1,-1188.5125072746082 +042_Penicillin_V,42,1007,25.301137924194336,6.9786598682403564,-1,-1504.2057687451456 +045_Ochratoxin_A,45,1100,29.1102192401886,7.967437505722046,-1,-1663.9748731525679 +052_Cetirizine,52,1198,33.73243761062622,10.424139022827148,-1,-1610.52602950548 +057_Tamoxifen,57,1274,38.2678804397583,11.776172161102295,-1,-1137.893595241635 +066_Raffinose,66,1502,51.070985317230225,17.83376908302307,-1,-1908.6726444847072 +084_Sphingomyelin,84,1748,63.58804726600647,18.02516770362854,-1,-1810.191885221709 +095_Azadirachtin,95,2197,171.3449671268463,47.00850176811218,-1,-2563.4535097374346 +113_Taxol,113,2636,299.15999937057495,75.36923575401306,-1,-2929.7011090075484 +168_Valinomycin,168,3678,619.5976231098175,161.8357379436493,-1,-3794.241422302097 diff --git a/benchmarks/df/organic/xc/wB97m-v/NVIDIA A100-SXM4-80GB.csv b/benchmarks/df/organic/xc/wB97m-v/NVIDIA A100-SXM4-80GB.csv new file mode 100644 index 00000000..afe31119 --- /dev/null +++ b/benchmarks/df/organic/xc/wB97m-v/NVIDIA A100-SXM4-80GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,8.306372880935669,1.6222960948944092,-1,-684.7972152992588 +031_Inosine,31,757,14.118914127349854,3.446458578109741,-1,-983.3589054987574 +033_Bisphenol_A,33,751,12.283555507659912,3.576833724975586,-1,-731.659867656484 +037_Mg_Porphin,37,944,17.476016998291016,5.948699951171875,-1,-1188.5125072746082 +042_Penicillin_V,42,1007,26.030335903167725,6.651940107345581,-1,-1504.2057687451456 +045_Ochratoxin_A,45,1100,27.8575758934021,7.650293827056885,-1,-1663.9748731525679 +052_Cetirizine,52,1198,34.436506032943726,10.142845153808594,-1,-1610.52602950548 +057_Tamoxifen,57,1274,38.94625115394592,11.39339303970337,-1,-1137.893595241635 +066_Raffinose,66,1502,51.84050464630127,16.5187931060791,-1,-1908.6726444847072 +084_Sphingomyelin,84,1748,65.87429904937744,17.404941082000732,-1,-1810.191885221709 +095_Azadirachtin,95,2197,184.05396628379822,46.17947554588318,-1,-2563.4535097374346 +113_Taxol,113,2636,308.77606081962585,74.03803372383118,-1,-2929.7011090075484 diff --git a/benchmarks/df/organic/xc/wB97m-v/Tesla V100-SXM2-32GB.csv b/benchmarks/df/organic/xc/wB97m-v/Tesla V100-SXM2-32GB.csv new file mode 100644 index 00000000..5f209ca2 --- /dev/null +++ b/benchmarks/df/organic/xc/wB97m-v/Tesla V100-SXM2-32GB.csv @@ -0,0 +1,13 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +020_Vitamin_C,20,484,13.700514078140259,3.0849950313568115,-1,-684.7972152992584 +031_Inosine,31,757,28.050696849822998,7.492033004760742,-1,-983.3589054987569 +033_Bisphenol_A,33,751,24.049904584884644,7.726109981536865,-1,-731.6598676564843 +037_Mg_Porphin,37,944,31.93869709968567,12.972524642944336,-1,-1188.5125072746068 +042_Penicillin_V,42,1007,44.11505150794983,13.188591480255127,-1,-1504.2057687451465 +045_Ochratoxin_A,45,1100,50.081422328948975,16.08480668067932,-1,-1663.974873152567 +052_Cetirizine,52,1198,57.978368043899536,21.047912120819092,-1,-1610.526029505481 +057_Tamoxifen,57,1274,63.315815925598145,22.768672227859497,-1,-1137.893595241636 +066_Raffinose,66,1502,99.42343378067017,34.120665550231934,-1,-1908.6726444847045 +084_Sphingomyelin,84,1748,133.0005910396576,38.268571615219116,-1,-1810.19188522171 +095_Azadirachtin,95,2197,308.25982427597046,657.9918072223663,-1,-2563.4535097374364 +113_Taxol,113,2636,951.182473897934,160.49217677116394,-1,-2929.701109007554 diff --git a/benchmarks/df/organic/xc/wB97m-v/qchem-32-cores-cpu.csv b/benchmarks/df/organic/xc/wB97m-v/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..9c073f87 --- /dev/null +++ b/benchmarks/df/organic/xc/wB97m-v/qchem-32-cores-cpu.csv @@ -0,0 +1,12 @@ +mol,t_scf,t_gradient,e_tot +020_Vitamin_C,145.0,18.02,-684.7972133571 +031_Inosine,369.0,47.9,-983.3589087847 +033_Bisphenol_A,354.0,50.07,-731.6598706948 +037_Mg_Porphin,529.0,88.31,-1188.5125126395 +042_Penicillin_V,630.0,91.89,-1504.2057720624 +045_Ochratoxin_A,708.0,111.31,-1663.9748783999 +052_Cetirizine,891.0,159.25,-1610.5260449011 +057_Tamoxifen,992.0,170.94,-1137.8935914288 +066_Raffinose,1314.0,282.92,-1908.6726436361 +084_Sphingomyelin,1611.0,307.38,-1810.1919027972 +095_Azadirachtin,4640.0,1105.14,-2563.4535091472 diff --git a/benchmarks/df/qchem.py b/benchmarks/df/qchem.py new file mode 100644 index 00000000..9225997a --- /dev/null +++ b/benchmarks/df/qchem.py @@ -0,0 +1,78 @@ +import os +import csv +import argparse +import subprocess + +parser = argparse.ArgumentParser(description='Run SCF, grad with Q-Chem for molecules') +parser.add_argument('--basis', type=str, default='def2-tzvpp') +parser.add_argument('--xc', type=str, default='B3LYP') +parser.add_argument('--input_path', type=str, default='./') +parser.add_argument('--output_path', type=str, default='./') +args = parser.parse_args() +bas = args.basis +xc = args.xc + +if not os.path.exists(args.output_path): + os.mkdir(args.output_path) + +def run_dft(filename): + with open(filename, 'r') as xyz_file: + coords = xyz_file.readlines()[2:] + + with open('qchem_input.in', "w") as input: + input.write("$molecule\n") + input.write("0 1\n") + for line in coords: + input.write(line) + input.write("\n$end") + input.write("\n") + + input.write("$rem\n") + input.write("JOBTYPE force\n") + input.write("METHOD " + args.xc + "\n") + input.write("BASIS " + args.basis + "\n") + input.write("SYMMETRY FALSE\n") + input.write("SYM_IGNORE TRUE\n") + input.write("XC_GRID 000099000590\n") + input.write("NL_GRID 000050000194\n") + input.write("MAX_SCF_CYCLES 100\n") + input.write("ri_j True\n") + input.write("ri_k True\n") + input.write("aux_basis RIJK-def2-tzvp\n") + input.write("SCF_CONVERGENCE 9\n") + input.write("THRESH 14\n") + input.write("BASIS_LIN_DEP_THRESH 12\n") + input.write("$end\n") + + filename = args.xc + '_' + args.basis + subprocess.run(['qchem', '-np', '32', 'qchem_input.in', filename]) + with open(filename, 'w') as output_file: + lines = output_file.readlines() + for line in lines: + if line[:16] == " SCF time: CPU": + info = line[16:].split(' ')[4] + scf_time = float(info[:-1]) + if line[:20] == " Gradient time: CPU": + info = line[20:].split(' ')[5] + gradient_time = float(info) + energy_line = ' Total energy in the final basis set =' + if energy_line in line: + info = line.replace(energy_line, '') + e_tot = float(info) + return scf_time, gradient_time, e_tot + +fields = ['mol', 't_scf', 't_gradient', 'e_tot'] +output_file = 'qchem-32-cores-cpu.csv' +output_file = args.output_path + output_file +csvfile = open(output_file, 'w') +csvwriter = csv.writer(csvfile) +csvwriter.writerow(fields) + +for filename in os.listdir(args.input_path): + if filename.endswith(".xyz"): + print(f'running DFT {filename}') + info = run_dft(args.input_path+filename) + row = [filename[:-4]]+list(info) + csvwriter.writerow(row) + csvfile.flush() +csvfile.close() diff --git a/benchmarks/df/run_gpu4pyscf.sh b/benchmarks/df/run_gpu4pyscf.sh new file mode 100644 index 00000000..c3c5dc6b --- /dev/null +++ b/benchmarks/df/run_gpu4pyscf.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +DIR="./organic/xc" +[ ! -d "$DIR" ] && mkdir -p "$DIR" +for xc in LDA PBE B3LYP M06 wB97m-v +do + python3 dft_driver.py --input_path ../molecules/organic/ --output_path ./organic/xc/$xc/ --xc $xc +done +exit + +DIR="./organic/basis" +[ ! -d "$DIR" ] && mkdir -p "$DIR" + +for basis in def2-svp def2-tzvpp def2-tzvpd sto-3g 6-31g +do + python3 dft_driver.py --input_path ../molecules/organic/ --output_path ./organic/basis/$basis/ --basis $basis +done diff --git a/benchmarks/df/run_pyscf.sh b/benchmarks/df/run_pyscf.sh new file mode 100644 index 00000000..739f38ea --- /dev/null +++ b/benchmarks/df/run_pyscf.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +DIR="./organic/xc" +[ ! -d "$DIR" ] && mkdir -p "$DIR" +for xc in LDA PBE B3LYP M06 wB97m-v +do + python3 dft_driver.py --input_path ../molecules/organic/ --output_path ./organic/xc/$xc/ --xc $xc --device CPU +done + +DIR="./organic/basis" +[ ! -d "$DIR" ] && mkdir -p "$DIR" + +for basis in def2-svp def2-tzvpp def2-tzvpd sto-3g 6-31g +do + python3 dft_driver.py --input_path ../molecules/organic/ --output_path ./organic/basis/$basis/ --basis $basis --deivce CPU +done diff --git a/benchmarks/df/run_qchem.sh b/benchmarks/df/run_qchem.sh new file mode 100644 index 00000000..adc8731f --- /dev/null +++ b/benchmarks/df/run_qchem.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +DIR="./organic/xc" +[ ! -d "$DIR" ] && mkdir -p "$DIR" + +DIR="./organic/basis" +[ ! -d "$DIR" ] && mkdir -p "$DIR" + +#for xc in LDA PBE B3LYP M06 wB97m-v +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/xc/LDA/ --xc LDA && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/xc/PBE/ --xc PBE && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/xc/B3LYP/ --xc B3LYP && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/xc/M06/ --xc M06 && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/xc/wB97m-v/ --xc wB97m-v && + +#for basis in def2-svp def2-tzvpp def2-tzvpd sto-3g 6-31g 6-31g* +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/basis/def2-svp/ --basis def2-svp && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/basis/def2-tzvpp/ --basis def2-tzvpp && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/basis/def2-tzvpd/ --basis def2-tzvpd && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/basis/sto-3g/ --basis sto-3g && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/basis/6-31g/ --basis 6-31g && +run --cpu 64 --memory 128 --gpu 0 -- python3 qchem.py --input_path ../molecules/organic/ --output_path ./organic/basis/6-31g*/ --basis 6-31g* diff --git a/benchmarks/molecules/gly/gly100.xyz b/benchmarks/molecules/gly/gly100.xyz new file mode 100644 index 00000000..6fdbdd94 --- /dev/null +++ b/benchmarks/molecules/gly/gly100.xyz @@ -0,0 +1,705 @@ +703 + +N 0.00000 0.00000 0.00000 +C 1.44675 0.00000 0.00000 +C 1.96825 0.00000 1.43350 +O 1.23855 0.00000 2.42187 +H 1.79887 -0.89599 -0.52238 +H 1.79973 0.89301 -0.52356 +H -0.47223 -0.00252 0.89965 +H -0.50800 0.07669 -0.87653 +N 3.28785 -0.00000 1.66639 +C 3.78246 0.00022 3.02597 +C 5.30787 0.00017 3.02597 +O 5.98722 -0.00002 2.00234 +H 3.41197 0.89631 3.53531 +H 3.41109 -0.89269 3.53683 +H 3.97186 0.00237 0.91504 +N 5.97787 0.00035 4.18645 +C 7.42462 0.00009 4.18645 +C 7.94612 0.00037 5.61994 +O 7.21641 0.00075 6.60831 +H 7.77658 -0.89610 3.66430 +H 7.77776 0.89290 3.66265 +H 5.50563 -0.00185 5.08610 +N 9.26572 0.00019 5.85284 +C 9.76033 0.00067 7.21242 +C 11.28573 0.00034 7.21242 +O 11.96509 -0.00024 6.18879 +H 9.39000 0.89695 7.72152 +H 9.38879 -0.89204 7.72351 +H 9.94972 0.00224 5.10149 +N 11.95573 0.00070 8.37289 +C 13.40249 0.00018 8.37289 +C 13.92398 0.00073 9.80639 +O 13.19428 0.00151 10.79476 +H 13.75428 -0.89621 7.85098 +H 13.75579 0.89279 7.84887 +H 11.48350 -0.00118 9.27255 +N 15.24359 0.00037 10.03929 +C 15.73819 0.00112 11.39887 +C 17.26360 0.00052 11.39887 +O 17.94295 -0.00046 10.37523 +H 15.36803 0.89760 11.90774 +H 15.36650 -0.89139 11.91018 +H 15.92759 0.00211 9.28794 +N 17.93360 0.00105 12.55934 +C 19.38036 0.00027 12.55934 +C 19.90185 0.00110 13.99284 +O 19.17215 0.00226 14.98121 +H 19.73199 -0.89632 12.03766 +H 19.73382 0.89267 12.03508 +H 17.46137 -0.00051 13.45900 +N 21.22146 0.00056 14.22573 +C 21.71606 0.00157 15.58531 +C 23.24147 0.00069 15.58531 +O 23.92082 -0.00067 14.56168 +H 21.34606 0.89825 16.09395 +H 21.34421 -0.89074 16.09686 +H 21.90546 0.00198 13.47438 +N 23.91147 0.00141 16.74579 +C 25.35822 0.00036 16.74579 +C 25.87972 0.00146 18.17928 +O 25.15002 0.00302 19.16765 +H 25.70969 -0.89643 16.22434 +H 25.71185 0.89256 16.22130 +H 23.43923 0.00016 17.64544 +N 27.19932 0.00075 18.41218 +C 27.69393 0.00202 19.77176 +C 29.21934 0.00086 19.77176 +O 29.89869 -0.00089 18.74813 +H 27.32409 0.89890 20.28017 +H 27.32191 -0.89009 20.28354 +H 27.88333 0.00184 17.66083 +N 29.88934 0.00176 20.93223 +C 31.33609 0.00044 20.93224 +C 31.85759 0.00183 22.36573 +O 31.12788 0.00377 23.35410 +H 31.68740 -0.89654 20.41102 +H 31.68988 0.89245 20.40752 +H 29.41710 0.00083 21.83189 +N 33.17719 0.00093 22.59863 +C 33.67180 0.00246 23.95821 +C 35.19720 0.00103 23.95821 +O 35.87656 -0.00110 22.93458 +H 33.30212 0.89955 24.46638 +H 33.29962 -0.88944 24.47022 +H 33.86119 0.00171 21.84728 +N 35.86720 0.00211 25.11868 +C 37.31396 0.00053 25.11868 +C 37.83545 0.00219 26.55218 +O 37.10575 0.00453 27.54055 +H 37.66510 -0.89665 24.59770 +H 37.66791 0.89234 24.59373 +H 35.39497 0.00150 26.01834 +N 39.15506 0.00112 26.78507 +C 39.64966 0.00291 28.14465 +C 41.17507 0.00121 28.14466 +O 41.85442 -0.00132 27.12102 +H 39.28015 0.90019 28.65260 +H 39.27732 -0.88879 28.65690 +H 39.83906 0.00158 26.03372 +N 41.84507 0.00246 29.30513 +C 43.29182 0.00062 29.30513 +C 43.81332 0.00256 30.73862 +O 43.08362 0.00528 31.72699 +H 43.64281 -0.89676 28.78438 +H 43.64594 0.89223 28.77995 +H 41.37284 0.00217 30.20478 +N 45.13293 0.00131 30.97152 +C 45.62753 0.00336 32.33110 +C 47.15294 0.00138 32.33110 +O 47.83229 -0.00154 31.30747 +H 45.25818 0.90084 32.83881 +H 45.25503 -0.88814 32.84357 +H 45.81693 0.00145 30.22017 +N 47.82294 0.00281 33.49157 +C 49.26969 0.00071 33.49158 +C 49.79119 0.00293 34.92507 +O 49.06149 0.00603 35.91344 +H 49.62051 -0.89687 32.97106 +H 49.62396 0.89212 32.96616 +H 47.35070 0.00284 34.39123 +N 51.11079 0.00149 35.15797 +C 51.60540 0.00381 36.51755 +C 53.13081 0.00155 36.51755 +O 53.81016 -0.00175 35.49392 +H 51.23621 0.90149 37.02502 +H 51.23273 -0.88749 37.03025 +H 51.79480 0.00131 34.40662 +N 53.80081 0.00316 37.67802 +C 55.24756 0.00080 37.67802 +C 55.76906 0.00329 39.11152 +O 55.03936 0.00679 40.09988 +H 55.59822 -0.89698 37.15774 +H 55.60199 0.89201 37.15238 +H 53.32857 0.00351 38.57768 +N 57.08866 0.00168 39.34442 +C 57.58327 0.00426 40.70399 +C 59.10867 0.00172 40.70400 +O 59.78802 -0.00197 39.68037 +H 57.21424 0.90214 41.21124 +H 57.21044 -0.88684 41.21693 +H 57.77266 0.00118 38.59307 +N 59.77868 0.00352 41.86447 +C 61.22543 0.00089 41.86447 +C 61.74692 0.00366 43.29796 +O 61.01722 0.00754 44.28633 +H 61.57592 -0.89709 41.34442 +H 61.58002 0.89189 41.33860 +H 59.30644 0.00418 42.76412 +N 63.06653 0.00187 43.53086 +C 63.56114 0.00471 44.89044 +C 65.08654 0.00190 44.89044 +O 65.76589 -0.00219 43.86682 +H 63.19227 0.90279 45.39745 +H 63.18815 -0.88619 45.40361 +H 63.75053 0.00105 42.77951 +N 65.75654 0.00387 46.05092 +C 67.20329 0.00098 46.05092 +C 67.72479 0.00402 47.48441 +O 66.99509 0.00830 48.47278 +H 67.55362 -0.89720 45.53110 +H 67.55805 0.89178 45.52481 +H 65.28431 0.00485 46.95057 +N 69.04439 0.00205 47.71731 +C 69.53900 0.00516 49.07689 +C 71.06441 0.00207 49.07689 +O 71.74376 -0.00240 48.05327 +H 69.17030 0.90343 49.58367 +H 69.16585 -0.88554 49.59028 +H 69.72840 0.00092 46.96596 +N 71.73441 0.00422 50.23736 +C 73.18116 0.00107 50.23737 +C 73.70266 0.00439 51.67086 +O 72.97296 0.00905 52.65922 +H 73.53133 -0.89731 49.71778 +H 73.53608 0.89167 49.71103 +H 71.26217 0.00552 51.13702 +N 75.02226 0.00224 51.90376 +C 75.51687 0.00561 53.26333 +C 77.04228 0.00224 53.26334 +O 77.72162 -0.00262 52.23971 +H 75.14833 0.90408 53.76988 +H 75.14356 -0.88489 53.77696 +H 75.70627 0.00079 51.15241 +N 77.71228 0.00457 54.42381 +C 79.15903 0.00116 54.42381 +C 79.68053 0.00476 55.85730 +O 78.95083 0.00981 56.84567 +H 79.50903 -0.89741 53.90446 +H 79.51411 0.89156 53.89725 +H 77.24004 0.00619 55.32346 +N 81.00013 0.00243 56.09020 +C 81.49474 0.00606 57.44978 +C 83.02014 0.00241 57.44979 +O 83.69949 -0.00283 56.42616 +H 81.12636 0.90473 57.95609 +H 81.12127 -0.88424 57.96364 +H 81.68413 0.00065 55.33886 +N 83.69015 0.00492 58.61026 +C 85.13689 0.00125 58.61026 +C 85.65839 0.00512 60.04375 +O 84.92870 0.01056 61.03211 +H 85.48674 -0.89752 58.09114 +H 85.49214 0.89145 58.08346 +H 83.21791 0.00686 59.50991 +N 86.97800 0.00261 60.27665 +C 87.47261 0.00651 61.63623 +C 88.99801 0.00259 61.63623 +O 89.67735 -0.00305 60.61261 +H 87.10439 0.90538 62.14231 +H 87.09897 -0.88359 62.15031 +H 87.66200 0.00052 59.52530 +N 89.66801 0.00527 62.79670 +C 91.11476 0.00133 62.79671 +C 91.63626 0.00549 64.23020 +O 90.90657 0.01132 65.21856 +H 91.46444 -0.89763 62.27782 +H 91.47017 0.89134 62.26968 +H 89.19578 0.00753 63.69636 +N 92.95586 0.00280 64.46310 +C 93.45047 0.00696 65.82267 +C 94.97588 0.00276 65.82268 +O 95.65522 -0.00327 64.79906 +H 93.08243 0.90602 66.32852 +H 93.07668 -0.88294 66.33699 +H 93.63987 0.00039 63.71175 +N 95.64588 0.00562 66.98315 +C 97.09263 0.00142 66.98316 +C 97.61413 0.00585 68.41664 +O 96.88444 0.01207 69.40500 +H 97.44214 -0.89774 66.46450 +H 97.44819 0.89122 66.45590 +H 95.17365 0.00820 67.88280 +N 98.93373 0.00299 68.64955 +C 99.42834 0.00741 70.00912 +C 100.95374 0.00293 70.00913 +O 101.63309 -0.00348 68.98551 +H 99.06046 0.90667 70.51473 +H 99.05438 -0.88229 70.52367 +H 99.61773 0.00026 67.89820 +N 101.62375 0.00598 71.16959 +C 103.07049 0.00151 71.16961 +C 103.59200 0.00622 72.60309 +O 102.86230 0.01282 73.59145 +H 103.41985 -0.89785 70.65118 +H 103.42622 0.89111 70.64212 +H 101.15152 0.00887 72.06925 +N 104.91160 0.00317 72.83599 +C 105.40621 0.00786 74.19556 +C 106.93161 0.00310 74.19557 +O 107.61095 -0.00370 73.17196 +H 105.03849 0.90732 74.70095 +H 105.03209 -0.88164 74.71034 +H 105.59560 0.00013 72.08465 +N 107.60162 0.00633 75.35604 +C 109.04836 0.00160 75.35605 +C 109.56986 0.00658 76.78954 +O 108.84017 0.01358 77.77789 +H 109.39755 -0.89796 74.83787 +H 109.40425 0.89100 74.82833 +H 107.12938 0.00955 76.25569 +N 110.88947 0.00336 77.02244 +C 111.38408 0.00831 78.38201 +C 112.90948 0.00328 78.38202 +O 113.58882 -0.00391 77.35841 +H 111.01652 0.90796 78.88716 +H 111.00980 -0.88099 78.89702 +H 111.57347 -0.00001 76.27110 +N 113.57948 0.00668 79.54249 +C 115.02623 0.00169 79.54250 +C 115.54773 0.00695 80.97598 +O 114.81804 0.01433 81.96434 +H 115.37525 -0.89807 79.02455 +H 115.38228 0.89089 79.01455 +H 113.10725 0.01022 80.44214 +N 116.86733 0.00355 81.20889 +C 117.36195 0.00875 82.56846 +C 118.88735 0.00345 82.56847 +O 119.56668 -0.00413 81.54486 +H 116.99455 0.90861 83.07337 +H 116.98750 -0.88034 83.08370 +H 117.55133 -0.00014 80.45754 +N 119.55735 0.00703 83.72893 +C 121.00410 0.00178 83.72895 +C 121.52560 0.00732 85.16243 +O 120.79591 0.01509 86.15078 +H 121.35296 -0.89818 83.21123 +H 121.36031 0.89077 83.20077 +H 119.08512 0.01089 84.62858 +N 122.84520 0.00373 85.39534 +C 123.33982 0.00920 86.75490 +C 124.86521 0.00362 86.75492 +O 125.54455 -0.00435 85.73131 +H 122.97258 0.90926 87.25958 +H 122.96521 -0.87969 87.27037 +H 123.52920 -0.00027 84.64399 +N 125.53522 0.00738 87.91538 +C 126.98196 0.00187 87.91540 +C 127.50347 0.00768 89.34888 +O 126.77378 0.01584 90.33723 +H 127.33066 -0.89828 87.39791 +H 127.33834 0.89066 87.38698 +H 125.06299 0.01156 88.81503 +N 128.82307 0.00392 89.58178 +C 129.31768 0.00965 90.94135 +C 130.84308 0.00379 90.94136 +O 131.52242 -0.00456 89.91776 +H 128.95061 0.90990 91.44580 +H 128.94292 -0.87904 91.45705 +H 129.50707 -0.00040 88.83044 +N 131.51309 0.00773 92.10183 +C 132.95983 0.00196 92.10184 +C 133.48134 0.00805 93.53532 +O 132.75165 0.01660 94.52367 +H 133.30836 -0.89839 91.58459 +H 133.31636 0.89055 91.57320 +H 131.04086 0.01223 93.00148 +N 134.80093 0.00411 93.76823 +C 135.29555 0.01010 95.12779 +C 136.82095 0.00397 95.12781 +O 137.50028 -0.00478 94.10421 +H 134.92865 0.91055 95.63201 +H 134.92062 -0.87839 95.64373 +H 135.48493 -0.00054 93.01689 +N 137.49096 0.00809 96.28827 +C 138.93770 0.00205 96.28829 +C 139.45920 0.00841 97.72177 +O 138.72952 0.01735 98.71011 +H 139.28607 -0.89850 95.77127 +H 139.29439 0.89044 95.75942 +H 137.01873 0.01290 97.18792 +N 140.77880 0.00429 97.95468 +C 141.27342 0.01055 99.31424 +C 142.79881 0.00414 99.31426 +O 143.47815 -0.00500 98.29065 +H 140.90668 0.91120 99.81822 +H 140.89833 -0.87774 99.83040 +H 141.46280 -0.00067 97.20334 +N 143.46882 0.00844 100.47472 +C 144.91556 0.00214 100.47474 +C 145.43707 0.00878 101.90822 +O 144.70739 0.01810 102.89656 +H 145.26377 -0.89861 99.95795 +H 145.27242 0.89032 99.94564 +H 142.99659 0.01357 101.37437 +N 146.75667 0.00448 102.14113 +C 147.25129 0.01100 103.50069 +C 148.77668 0.00431 103.50071 +O 149.45601 -0.00521 102.47710 +H 146.88471 0.91184 104.00443 +H 146.87604 -0.87709 104.01708 +H 147.44066 -0.00080 101.38979 +N 149.44669 0.00879 104.66117 +C 150.89343 0.00222 104.66119 +C 151.41494 0.00915 106.09466 +O 150.68526 0.01886 107.08300 +H 151.24147 -0.89872 104.14463 +H 151.25045 0.89021 104.13186 +H 148.97446 0.01424 105.56081 +N 152.73454 0.00467 106.32757 +C 153.22916 0.01145 107.68713 +C 154.75455 0.00448 107.68715 +O 155.43388 -0.00543 106.66356 +H 152.86274 0.91249 108.19065 +H 152.85375 -0.87644 108.20375 +H 153.41853 -0.00093 105.57624 +N 155.42456 0.00914 108.84761 +C 156.87130 0.00231 108.84764 +C 157.39281 0.00951 110.28111 +O 156.66313 0.01961 111.26945 +H 157.21918 -0.89883 108.33132 +H 157.22847 0.89010 108.31807 +H 154.95233 0.01491 109.74726 +N 158.71240 0.00485 110.51402 +C 159.20702 0.01190 111.87358 +C 160.73242 0.00465 111.87360 +O 161.41174 -0.00564 110.85001 +H 158.84077 0.91314 112.37686 +H 158.83145 -0.87578 112.39043 +H 159.39640 -0.00106 109.76269 +N 161.40243 0.00949 113.03406 +C 162.84916 0.00240 113.03408 +C 163.37068 0.00988 114.46756 +O 162.64100 0.02037 115.45589 +H 163.19688 -0.89893 112.51800 +H 163.20650 0.88998 112.50429 +H 160.93020 0.01558 113.93370 +N 164.69027 0.00504 114.70047 +C 165.18489 0.01235 116.06002 +C 166.71028 0.00483 116.06005 +O 167.38961 -0.00586 115.03646 +H 164.81880 0.91378 116.56307 +H 164.80916 -0.87513 116.57711 +H 165.37426 -0.00120 113.94913 +N 167.38029 0.00984 117.22051 +C 168.82703 0.00249 117.22053 +C 169.34854 0.01024 118.65400 +O 168.61887 0.02112 119.64233 +H 169.17458 -0.89904 116.70468 +H 169.18453 0.88987 116.69051 +H 166.90807 0.01625 118.12015 +N 170.66814 0.00523 118.88692 +C 171.16276 0.01280 120.24647 +C 172.68815 0.00500 120.24650 +O 173.36747 -0.00608 119.22291 +H 170.79684 0.91443 120.74928 +H 170.78687 -0.87448 120.76378 +H 171.35213 -0.00133 118.13558 +N 173.35816 0.01019 121.40695 +C 174.80490 0.00258 121.40698 +C 175.32641 0.01061 122.84045 +O 174.59674 0.02188 123.82878 +H 175.15229 -0.89915 120.89136 +H 175.16256 0.88976 120.87673 +H 172.88594 0.01692 122.30659 +N 176.64600 0.00541 123.07336 +C 177.14063 0.01325 124.43291 +C 178.66602 0.00517 124.43295 +O 179.34534 -0.00629 123.40936 +H 176.77487 0.91507 124.93549 +H 176.76457 -0.87383 124.95046 +H 177.32999 -0.00146 122.32203 +N 179.33603 0.01055 125.59340 +C 180.78276 0.00267 125.59343 +C 181.30428 0.01097 127.02689 +O 180.57461 0.02263 128.01522 +H 181.12999 -0.89926 125.07804 +H 181.14058 0.88964 125.06295 +H 178.86381 0.01759 126.49303 +N 182.62387 0.00560 127.25981 +C 183.11850 0.01370 128.61936 +C 184.64388 0.00534 128.61939 +O 185.32320 -0.00651 127.59581 +H 182.75290 0.91572 129.12171 +H 182.74228 -0.87318 129.13713 +H 183.30786 -0.00159 126.50848 +N 185.31390 0.01090 129.77984 +C 186.76063 0.00276 129.77988 +C 187.28215 0.01134 131.21334 +O 186.55248 0.02339 132.20166 +H 187.10769 -0.89936 129.26473 +H 187.11861 0.88953 129.24917 +H 184.84168 0.01826 130.67948 +N 188.60174 0.00579 131.44626 +C 189.09637 0.01415 132.80581 +C 190.62175 0.00552 132.80584 +O 191.30107 -0.00672 131.78226 +H 188.73093 0.91636 133.30792 +H 188.71999 -0.87253 133.32381 +H 189.28573 -0.00173 130.69493 +N 191.29177 0.01125 133.96629 +C 192.73849 0.00285 133.96633 +C 193.26002 0.01171 135.39979 +O 192.53035 0.02414 136.38810 +H 193.08539 -0.89947 133.45141 +H 193.09664 0.88942 133.43538 +H 190.81955 0.01893 134.86592 +N 194.57960 0.00597 135.63271 +C 195.07423 0.01459 136.99225 +C 196.59962 0.00569 136.99229 +O 197.27893 -0.00694 135.96871 +H 194.70896 0.91701 137.49413 +H 194.69770 -0.87188 137.51048 +H 195.26359 -0.00186 134.88138 +N 197.26963 0.01160 138.15274 +C 198.71636 0.00294 138.15278 +C 199.23788 0.01207 139.58623 +O 198.50822 0.02489 140.57455 +H 199.06310 -0.89958 137.63809 +H 199.07467 0.88930 137.62160 +H 196.79742 0.01960 139.05237 +N 200.55747 0.00616 139.81915 +C 201.05210 0.01504 141.17870 +C 202.57748 0.00586 141.17874 +O 203.25680 -0.00716 140.15516 +H 200.68700 0.91766 141.68034 +H 200.67540 -0.87122 141.69716 +H 201.24146 -0.00199 139.06783 +N 203.24750 0.01195 142.33918 +C 204.69423 0.00303 142.33922 +C 205.21575 0.01244 143.77268 +O 204.48609 0.02565 144.76099 +H 205.04080 -0.89969 141.82477 +H 205.05269 0.88919 141.80782 +H 202.77529 0.02027 143.23881 +N 206.53534 0.00635 144.00560 +C 207.02997 0.01549 145.36514 +C 208.55535 0.00603 145.36518 +O 209.23466 -0.00737 144.34161 +H 206.66503 0.91830 145.86655 +H 206.65311 -0.87057 145.88383 +H 207.21932 -0.00212 143.25428 +N 209.22537 0.01230 146.52563 +C 210.67209 0.00311 146.52567 +C 211.19362 0.01280 147.95912 +O 210.46396 0.02640 148.94743 +H 211.01850 -0.89979 146.01145 +H 211.03072 0.88908 145.99404 +H 208.75315 0.02094 147.42526 +N 212.51321 0.00653 148.19205 +C 213.00784 0.01594 149.55159 +C 214.53322 0.00621 149.55163 +O 215.21252 -0.00759 148.52806 +H 212.64306 0.91895 150.05276 +H 212.63082 -0.86992 150.07051 +H 213.19719 -0.00225 147.44073 +N 215.20324 0.01266 150.71208 +C 216.64996 0.00320 150.71212 +C 217.17149 0.01317 152.14557 +O 216.44183 0.02716 153.13388 +H 216.99620 -0.89990 150.19814 +H 217.00875 0.88896 150.18026 +H 214.73102 0.02161 151.61170 +N 218.49107 0.00672 152.37850 +C 218.98571 0.01639 153.73803 +C 220.51108 0.00638 153.73808 +O 221.19039 -0.00781 152.71451 +H 218.62109 0.91959 154.23898 +H 218.60853 -0.86927 154.25718 +H 219.17505 -0.00239 151.62718 +N 221.18111 0.01301 154.89852 +C 222.62783 0.00329 154.89857 +C 223.14936 0.01354 156.33202 +O 222.41970 0.02791 157.32032 +H 222.97391 -0.90001 154.38482 +H 222.98678 0.88885 154.36648 +H 220.70889 0.02228 155.79814 +N 224.46894 0.00691 156.56495 +C 224.96358 0.01684 157.92448 +C 226.48895 0.00655 157.92453 +O 227.16825 -0.00802 156.90097 +H 224.59913 0.92024 158.42519 +H 224.58624 -0.86861 158.44386 +H 225.15292 -0.00252 155.81363 +N 227.15897 0.01336 159.08497 +C 228.60569 0.00338 159.08502 +C 229.12722 0.01390 160.51846 +O 228.39757 0.02867 161.50676 +H 228.95161 -0.90011 158.57150 +H 228.96480 0.88873 158.55270 +H 226.68676 0.02295 159.98459 +N 230.44681 0.00709 160.75139 +C 230.94145 0.01729 162.11092 +C 232.46682 0.00672 162.11098 +O 233.14612 -0.00824 161.08742 +H 230.57716 0.92088 162.61140 +H 230.56394 -0.86796 162.63053 +H 231.13078 -0.00265 160.00008 +N 233.13684 0.01371 163.27141 +C 234.58356 0.00347 163.27147 +C 235.10509 0.01427 164.70491 +O 234.37544 0.02942 165.69320 +H 234.92931 -0.90022 162.75819 +H 234.94283 0.88862 162.73892 +H 232.66463 0.02362 164.17103 +N 236.42467 0.00728 164.93784 +C 236.91932 0.01774 166.29737 +C 238.44468 0.00690 166.29742 +O 239.12398 -0.00845 165.27387 +H 236.55519 0.92153 166.79761 +H 236.54165 -0.86731 166.81721 +H 237.10865 -0.00278 164.18653 +N 239.11471 0.01406 167.45786 +C 240.56142 0.00356 167.45792 +C 241.08296 0.01463 168.89136 +O 240.35331 0.03017 169.87964 +H 240.90701 -0.90033 166.94487 +H 240.92086 0.88851 166.92514 +H 238.64250 0.02429 168.35747 +N 242.40254 0.00747 169.12429 +C 242.89718 0.01819 170.48381 +C 244.42255 0.00707 170.48387 +O 245.10185 -0.00867 169.46032 +H 242.53322 0.92217 170.98382 +H 242.51936 -0.86666 171.00388 +H 243.08651 -0.00291 168.37298 +N 245.09258 0.01441 171.64431 +C 246.53929 0.00365 171.64436 +C 247.06083 0.01500 173.07780 +O 246.33118 0.03093 174.06609 +H 246.88472 -0.90043 171.13155 +H 246.89888 0.88839 171.11136 +H 244.62037 0.02496 172.54392 +N 248.38041 0.00765 173.31074 +C 248.87505 0.01864 174.67026 +C 250.40042 0.00724 174.67032 +O 251.07971 -0.00889 173.64677 +H 248.51126 0.92282 175.17003 +H 248.49707 -0.86600 175.19056 +H 249.06438 -0.00305 172.55943 +N 251.07045 0.01476 175.83075 +C 252.51716 0.00374 175.83081 +C 253.03870 0.01536 177.26425 +O 252.30905 0.03168 178.25253 +H 252.86242 -0.90054 175.31824 +H 252.87691 0.88828 175.29758 +H 250.59824 0.02563 176.73036 +N 254.35827 0.00784 177.49718 +C 254.85292 0.01909 178.85670 +C 256.37828 0.00741 178.85677 +O 257.05757 -0.00910 177.83323 +H 254.48929 0.92346 179.35624 +H 254.47478 -0.86535 179.37723 +H 255.04224 -0.00318 176.74588 +N 257.04831 0.01512 180.01720 +C 258.49502 0.00383 180.01726 +C 259.01656 0.01573 181.45069 +O 258.28693 0.03244 182.43897 +H 258.84012 -0.90065 179.50492 +H 258.85494 0.88816 179.48380 +H 256.57611 0.02630 180.91680 +N 260.33614 0.00803 181.68363 +C 260.83079 0.01954 183.04315 +C 262.35615 0.00759 183.04322 +O 263.03544 -0.00932 182.01968 +H 260.46732 0.92411 183.54245 +H 260.45249 -0.86470 183.56390 +H 261.02011 -0.00331 180.93233 +N 263.02618 0.01547 184.20364 +C 264.47289 0.00392 184.20371 +C 264.99443 0.01610 185.63714 +O 264.26480 0.03319 186.62541 +H 264.81782 -0.90075 183.69160 +H 264.83296 0.88805 183.67002 +H 262.55398 0.02697 185.10325 +N 266.31401 0.00821 185.87008 +C 266.80866 0.01999 187.22959 +C 268.33402 0.00776 187.22966 +O 269.01330 -0.00953 186.20613 +H 266.44536 0.92475 187.72866 +H 266.43019 -0.86405 187.75058 +H 266.99797 -0.00344 185.11879 +N 269.00405 0.01582 188.39009 +C 270.45076 0.00400 188.39016 +C 270.97230 0.01646 189.82358 +O 270.24267 0.03395 190.81185 +H 270.79552 -0.90086 187.87829 +H 270.81099 0.88793 187.85624 +H 268.53185 0.02764 189.28969 +N 272.29187 0.00840 190.05653 +C 272.78653 0.02043 191.41604 +C 274.31188 0.00793 191.41611 +O 274.99116 -0.00975 190.39258 +H 272.42339 0.92540 191.91487 +H 272.40790 -0.86339 191.93725 +H 272.97584 -0.00358 189.30524 +N 274.98192 0.01617 192.57654 +C 276.42862 0.00409 192.57661 +C 276.95017 0.01683 194.01003 +O 276.22054 0.03470 194.99829 +H 276.77322 -0.90097 192.06497 +H 276.78902 0.88782 192.04246 +H 274.50972 0.02832 193.47613 +N 278.26974 0.00859 194.24298 +C 278.76440 0.02088 195.60248 +C 280.28975 0.00810 195.60256 +O 280.96903 -0.00997 194.57904 +H 278.40142 0.92604 196.10108 +H 278.38561 -0.86274 196.12393 +H 278.95370 -0.00371 193.49169 +N 280.95979 0.01652 196.76298 +C 282.40649 0.00418 196.76306 +C 282.92804 0.01719 198.19648 +O 282.19841 0.03545 199.18473 +H 282.75093 -0.90107 196.25165 +H 282.76704 0.88770 196.22868 +H 280.48759 0.02899 197.66258 +N 284.24761 0.00877 198.42942 +C 284.74227 0.02133 199.78893 +C 286.26762 0.00828 199.78901 +O 286.94689 -0.01018 198.76549 +H 284.37946 0.92668 200.28729 +H 284.36332 -0.86209 200.31060 +H 284.93157 -0.00384 197.67814 +N 286.93765 0.01687 200.94943 +C 288.38435 0.00427 200.94951 +C 288.90591 0.01756 202.38292 +O 288.17628 0.03621 203.37118 +H 288.72863 -0.90118 200.43834 +H 288.74507 0.88759 200.41490 +H 286.46546 0.02966 201.84902 +N 290.22547 0.00896 202.61587 +C 290.72013 0.02178 203.97537 +C 292.24548 0.00845 203.97546 +O 292.92475 -0.01040 202.95194 +H 290.35749 0.92733 204.47350 +H 290.34103 -0.86143 204.49727 +H 290.90943 -0.00397 201.86459 +N 292.91552 0.01723 205.13587 +C 294.36222 0.00436 205.13596 +C 294.88377 0.01792 206.56937 +O 294.15415 0.03696 207.55762 +H 294.70633 -0.90128 204.62502 +H 294.72309 0.88747 204.60112 +H 292.44334 0.03033 206.03546 +N 296.20334 0.00915 206.80232 +C 296.69800 0.02223 208.16182 +C 298.22335 0.00862 208.16190 +O 298.90262 -0.01061 207.13840 +H 296.33552 0.92797 208.65971 +H 296.31874 -0.86078 208.68395 +H 296.88729 -0.00410 206.05104 +O 298.82471 0.01882 209.37164 +H 298.23643 0.03548 210.25806 diff --git a/benchmarks/molecules/gly/gly110.xyz b/benchmarks/molecules/gly/gly110.xyz new file mode 100644 index 00000000..1a43212b --- /dev/null +++ b/benchmarks/molecules/gly/gly110.xyz @@ -0,0 +1,775 @@ +773 + +N 0.00000 0.00000 0.00000 +C 1.44675 0.00000 0.00000 +C 1.96825 0.00000 1.43350 +O 1.23855 0.00000 2.42187 +H 1.79887 -0.89599 -0.52238 +H 1.79973 0.89301 -0.52356 +H -0.47223 -0.00252 0.89965 +H -0.50800 0.07669 -0.87653 +N 3.28785 -0.00000 1.66639 +C 3.78246 0.00022 3.02597 +C 5.30787 0.00017 3.02597 +O 5.98722 -0.00002 2.00234 +H 3.41197 0.89631 3.53531 +H 3.41109 -0.89269 3.53683 +H 3.97186 0.00237 0.91504 +N 5.97787 0.00035 4.18645 +C 7.42462 0.00009 4.18645 +C 7.94612 0.00037 5.61994 +O 7.21641 0.00075 6.60831 +H 7.77658 -0.89610 3.66430 +H 7.77776 0.89290 3.66265 +H 5.50563 -0.00185 5.08610 +N 9.26572 0.00019 5.85284 +C 9.76033 0.00067 7.21242 +C 11.28573 0.00034 7.21242 +O 11.96509 -0.00024 6.18879 +H 9.39000 0.89695 7.72152 +H 9.38879 -0.89204 7.72351 +H 9.94972 0.00224 5.10149 +N 11.95573 0.00070 8.37289 +C 13.40249 0.00018 8.37289 +C 13.92398 0.00073 9.80639 +O 13.19428 0.00151 10.79476 +H 13.75428 -0.89621 7.85098 +H 13.75579 0.89279 7.84887 +H 11.48350 -0.00118 9.27255 +N 15.24359 0.00037 10.03929 +C 15.73819 0.00112 11.39887 +C 17.26360 0.00052 11.39887 +O 17.94295 -0.00046 10.37523 +H 15.36803 0.89760 11.90774 +H 15.36650 -0.89139 11.91018 +H 15.92759 0.00211 9.28794 +N 17.93360 0.00105 12.55934 +C 19.38036 0.00027 12.55934 +C 19.90185 0.00110 13.99284 +O 19.17215 0.00226 14.98121 +H 19.73199 -0.89632 12.03766 +H 19.73382 0.89267 12.03508 +H 17.46137 -0.00051 13.45900 +N 21.22146 0.00056 14.22573 +C 21.71606 0.00157 15.58531 +C 23.24147 0.00069 15.58531 +O 23.92082 -0.00067 14.56168 +H 21.34606 0.89825 16.09395 +H 21.34421 -0.89074 16.09686 +H 21.90546 0.00198 13.47438 +N 23.91147 0.00141 16.74579 +C 25.35822 0.00036 16.74579 +C 25.87972 0.00146 18.17928 +O 25.15002 0.00302 19.16765 +H 25.70969 -0.89643 16.22434 +H 25.71185 0.89256 16.22130 +H 23.43923 0.00016 17.64544 +N 27.19932 0.00075 18.41218 +C 27.69393 0.00202 19.77176 +C 29.21934 0.00086 19.77176 +O 29.89869 -0.00089 18.74813 +H 27.32409 0.89890 20.28017 +H 27.32191 -0.89009 20.28354 +H 27.88333 0.00184 17.66083 +N 29.88934 0.00176 20.93223 +C 31.33609 0.00044 20.93224 +C 31.85759 0.00183 22.36573 +O 31.12788 0.00377 23.35410 +H 31.68740 -0.89654 20.41102 +H 31.68988 0.89245 20.40752 +H 29.41710 0.00083 21.83189 +N 33.17719 0.00093 22.59863 +C 33.67180 0.00246 23.95821 +C 35.19720 0.00103 23.95821 +O 35.87656 -0.00110 22.93458 +H 33.30212 0.89955 24.46638 +H 33.29962 -0.88944 24.47022 +H 33.86119 0.00171 21.84728 +N 35.86720 0.00211 25.11868 +C 37.31396 0.00053 25.11868 +C 37.83545 0.00219 26.55218 +O 37.10575 0.00453 27.54055 +H 37.66510 -0.89665 24.59770 +H 37.66791 0.89234 24.59373 +H 35.39497 0.00150 26.01834 +N 39.15506 0.00112 26.78507 +C 39.64966 0.00291 28.14465 +C 41.17507 0.00121 28.14466 +O 41.85442 -0.00132 27.12102 +H 39.28015 0.90019 28.65260 +H 39.27732 -0.88879 28.65690 +H 39.83906 0.00158 26.03372 +N 41.84507 0.00246 29.30513 +C 43.29182 0.00062 29.30513 +C 43.81332 0.00256 30.73862 +O 43.08362 0.00528 31.72699 +H 43.64281 -0.89676 28.78438 +H 43.64594 0.89223 28.77995 +H 41.37284 0.00217 30.20478 +N 45.13293 0.00131 30.97152 +C 45.62753 0.00336 32.33110 +C 47.15294 0.00138 32.33110 +O 47.83229 -0.00154 31.30747 +H 45.25818 0.90084 32.83881 +H 45.25503 -0.88814 32.84357 +H 45.81693 0.00145 30.22017 +N 47.82294 0.00281 33.49157 +C 49.26969 0.00071 33.49158 +C 49.79119 0.00293 34.92507 +O 49.06149 0.00603 35.91344 +H 49.62051 -0.89687 32.97106 +H 49.62396 0.89212 32.96616 +H 47.35070 0.00284 34.39123 +N 51.11079 0.00149 35.15797 +C 51.60540 0.00381 36.51755 +C 53.13081 0.00155 36.51755 +O 53.81016 -0.00175 35.49392 +H 51.23621 0.90149 37.02502 +H 51.23273 -0.88749 37.03025 +H 51.79480 0.00131 34.40662 +N 53.80081 0.00316 37.67802 +C 55.24756 0.00080 37.67802 +C 55.76906 0.00329 39.11152 +O 55.03936 0.00679 40.09988 +H 55.59822 -0.89698 37.15774 +H 55.60199 0.89201 37.15238 +H 53.32857 0.00351 38.57768 +N 57.08866 0.00168 39.34442 +C 57.58327 0.00426 40.70399 +C 59.10867 0.00172 40.70400 +O 59.78802 -0.00197 39.68037 +H 57.21424 0.90214 41.21124 +H 57.21044 -0.88684 41.21693 +H 57.77266 0.00118 38.59307 +N 59.77868 0.00352 41.86447 +C 61.22543 0.00089 41.86447 +C 61.74692 0.00366 43.29796 +O 61.01722 0.00754 44.28633 +H 61.57592 -0.89709 41.34442 +H 61.58002 0.89189 41.33860 +H 59.30644 0.00418 42.76412 +N 63.06653 0.00187 43.53086 +C 63.56114 0.00471 44.89044 +C 65.08654 0.00190 44.89044 +O 65.76589 -0.00219 43.86682 +H 63.19227 0.90279 45.39745 +H 63.18815 -0.88619 45.40361 +H 63.75053 0.00105 42.77951 +N 65.75654 0.00387 46.05092 +C 67.20329 0.00098 46.05092 +C 67.72479 0.00402 47.48441 +O 66.99509 0.00830 48.47278 +H 67.55362 -0.89720 45.53110 +H 67.55805 0.89178 45.52481 +H 65.28431 0.00485 46.95057 +N 69.04439 0.00205 47.71731 +C 69.53900 0.00516 49.07689 +C 71.06441 0.00207 49.07689 +O 71.74376 -0.00240 48.05327 +H 69.17030 0.90343 49.58367 +H 69.16585 -0.88554 49.59028 +H 69.72840 0.00092 46.96596 +N 71.73441 0.00422 50.23736 +C 73.18116 0.00107 50.23737 +C 73.70266 0.00439 51.67086 +O 72.97296 0.00905 52.65922 +H 73.53133 -0.89731 49.71778 +H 73.53608 0.89167 49.71103 +H 71.26217 0.00552 51.13702 +N 75.02226 0.00224 51.90376 +C 75.51687 0.00561 53.26333 +C 77.04228 0.00224 53.26334 +O 77.72162 -0.00262 52.23971 +H 75.14833 0.90408 53.76988 +H 75.14356 -0.88489 53.77696 +H 75.70627 0.00079 51.15241 +N 77.71228 0.00457 54.42381 +C 79.15903 0.00116 54.42381 +C 79.68053 0.00476 55.85730 +O 78.95083 0.00981 56.84567 +H 79.50903 -0.89741 53.90446 +H 79.51411 0.89156 53.89725 +H 77.24004 0.00619 55.32346 +N 81.00013 0.00243 56.09020 +C 81.49474 0.00606 57.44978 +C 83.02014 0.00241 57.44979 +O 83.69949 -0.00283 56.42616 +H 81.12636 0.90473 57.95609 +H 81.12127 -0.88424 57.96364 +H 81.68413 0.00065 55.33886 +N 83.69015 0.00492 58.61026 +C 85.13689 0.00125 58.61026 +C 85.65839 0.00512 60.04375 +O 84.92870 0.01056 61.03211 +H 85.48674 -0.89752 58.09114 +H 85.49214 0.89145 58.08346 +H 83.21791 0.00686 59.50991 +N 86.97800 0.00261 60.27665 +C 87.47261 0.00651 61.63623 +C 88.99801 0.00259 61.63623 +O 89.67735 -0.00305 60.61261 +H 87.10439 0.90538 62.14231 +H 87.09897 -0.88359 62.15031 +H 87.66200 0.00052 59.52530 +N 89.66801 0.00527 62.79670 +C 91.11476 0.00133 62.79671 +C 91.63626 0.00549 64.23020 +O 90.90657 0.01132 65.21856 +H 91.46444 -0.89763 62.27782 +H 91.47017 0.89134 62.26968 +H 89.19578 0.00753 63.69636 +N 92.95586 0.00280 64.46310 +C 93.45047 0.00696 65.82267 +C 94.97588 0.00276 65.82268 +O 95.65522 -0.00327 64.79906 +H 93.08243 0.90602 66.32852 +H 93.07668 -0.88294 66.33699 +H 93.63987 0.00039 63.71175 +N 95.64588 0.00562 66.98315 +C 97.09263 0.00142 66.98316 +C 97.61413 0.00585 68.41664 +O 96.88444 0.01207 69.40500 +H 97.44214 -0.89774 66.46450 +H 97.44819 0.89122 66.45590 +H 95.17365 0.00820 67.88280 +N 98.93373 0.00299 68.64955 +C 99.42834 0.00741 70.00912 +C 100.95374 0.00293 70.00913 +O 101.63309 -0.00348 68.98551 +H 99.06046 0.90667 70.51473 +H 99.05438 -0.88229 70.52367 +H 99.61773 0.00026 67.89820 +N 101.62375 0.00598 71.16959 +C 103.07049 0.00151 71.16961 +C 103.59200 0.00622 72.60309 +O 102.86230 0.01282 73.59145 +H 103.41985 -0.89785 70.65118 +H 103.42622 0.89111 70.64212 +H 101.15152 0.00887 72.06925 +N 104.91160 0.00317 72.83599 +C 105.40621 0.00786 74.19556 +C 106.93161 0.00310 74.19557 +O 107.61095 -0.00370 73.17196 +H 105.03849 0.90732 74.70095 +H 105.03209 -0.88164 74.71034 +H 105.59560 0.00013 72.08465 +N 107.60162 0.00633 75.35604 +C 109.04836 0.00160 75.35605 +C 109.56986 0.00658 76.78954 +O 108.84017 0.01358 77.77789 +H 109.39755 -0.89796 74.83787 +H 109.40425 0.89100 74.82833 +H 107.12938 0.00955 76.25569 +N 110.88947 0.00336 77.02244 +C 111.38408 0.00831 78.38201 +C 112.90948 0.00328 78.38202 +O 113.58882 -0.00391 77.35841 +H 111.01652 0.90796 78.88716 +H 111.00980 -0.88099 78.89702 +H 111.57347 -0.00001 76.27110 +N 113.57948 0.00668 79.54249 +C 115.02623 0.00169 79.54250 +C 115.54773 0.00695 80.97598 +O 114.81804 0.01433 81.96434 +H 115.37525 -0.89807 79.02455 +H 115.38228 0.89089 79.01455 +H 113.10725 0.01022 80.44214 +N 116.86733 0.00355 81.20889 +C 117.36195 0.00875 82.56846 +C 118.88735 0.00345 82.56847 +O 119.56668 -0.00413 81.54486 +H 116.99455 0.90861 83.07337 +H 116.98750 -0.88034 83.08370 +H 117.55133 -0.00014 80.45754 +N 119.55735 0.00703 83.72893 +C 121.00410 0.00178 83.72895 +C 121.52560 0.00732 85.16243 +O 120.79591 0.01509 86.15078 +H 121.35296 -0.89818 83.21123 +H 121.36031 0.89077 83.20077 +H 119.08512 0.01089 84.62858 +N 122.84520 0.00373 85.39534 +C 123.33982 0.00920 86.75490 +C 124.86521 0.00362 86.75492 +O 125.54455 -0.00435 85.73131 +H 122.97258 0.90926 87.25958 +H 122.96521 -0.87969 87.27037 +H 123.52920 -0.00027 84.64399 +N 125.53522 0.00738 87.91538 +C 126.98196 0.00187 87.91540 +C 127.50347 0.00768 89.34888 +O 126.77378 0.01584 90.33723 +H 127.33066 -0.89828 87.39791 +H 127.33834 0.89066 87.38698 +H 125.06299 0.01156 88.81503 +N 128.82307 0.00392 89.58178 +C 129.31768 0.00965 90.94135 +C 130.84308 0.00379 90.94136 +O 131.52242 -0.00456 89.91776 +H 128.95061 0.90990 91.44580 +H 128.94292 -0.87904 91.45705 +H 129.50707 -0.00040 88.83044 +N 131.51309 0.00773 92.10183 +C 132.95983 0.00196 92.10184 +C 133.48134 0.00805 93.53532 +O 132.75165 0.01660 94.52367 +H 133.30836 -0.89839 91.58459 +H 133.31636 0.89055 91.57320 +H 131.04086 0.01223 93.00148 +N 134.80093 0.00411 93.76823 +C 135.29555 0.01010 95.12779 +C 136.82095 0.00397 95.12781 +O 137.50028 -0.00478 94.10421 +H 134.92865 0.91055 95.63201 +H 134.92062 -0.87839 95.64373 +H 135.48493 -0.00054 93.01689 +N 137.49096 0.00809 96.28827 +C 138.93770 0.00205 96.28829 +C 139.45920 0.00841 97.72177 +O 138.72952 0.01735 98.71011 +H 139.28607 -0.89850 95.77127 +H 139.29439 0.89044 95.75942 +H 137.01873 0.01290 97.18792 +N 140.77880 0.00429 97.95468 +C 141.27342 0.01055 99.31424 +C 142.79881 0.00414 99.31426 +O 143.47815 -0.00500 98.29065 +H 140.90668 0.91120 99.81822 +H 140.89833 -0.87774 99.83040 +H 141.46280 -0.00067 97.20334 +N 143.46882 0.00844 100.47472 +C 144.91556 0.00214 100.47474 +C 145.43707 0.00878 101.90822 +O 144.70739 0.01810 102.89656 +H 145.26377 -0.89861 99.95795 +H 145.27242 0.89032 99.94564 +H 142.99659 0.01357 101.37437 +N 146.75667 0.00448 102.14113 +C 147.25129 0.01100 103.50069 +C 148.77668 0.00431 103.50071 +O 149.45601 -0.00521 102.47710 +H 146.88471 0.91184 104.00443 +H 146.87604 -0.87709 104.01708 +H 147.44066 -0.00080 101.38979 +N 149.44669 0.00879 104.66117 +C 150.89343 0.00222 104.66119 +C 151.41494 0.00915 106.09466 +O 150.68526 0.01886 107.08300 +H 151.24147 -0.89872 104.14463 +H 151.25045 0.89021 104.13186 +H 148.97446 0.01424 105.56081 +N 152.73454 0.00467 106.32757 +C 153.22916 0.01145 107.68713 +C 154.75455 0.00448 107.68715 +O 155.43388 -0.00543 106.66356 +H 152.86274 0.91249 108.19065 +H 152.85375 -0.87644 108.20375 +H 153.41853 -0.00093 105.57624 +N 155.42456 0.00914 108.84761 +C 156.87130 0.00231 108.84764 +C 157.39281 0.00951 110.28111 +O 156.66313 0.01961 111.26945 +H 157.21918 -0.89883 108.33132 +H 157.22847 0.89010 108.31807 +H 154.95233 0.01491 109.74726 +N 158.71240 0.00485 110.51402 +C 159.20702 0.01190 111.87358 +C 160.73242 0.00465 111.87360 +O 161.41174 -0.00564 110.85001 +H 158.84077 0.91314 112.37686 +H 158.83145 -0.87578 112.39043 +H 159.39640 -0.00106 109.76269 +N 161.40243 0.00949 113.03406 +C 162.84916 0.00240 113.03408 +C 163.37068 0.00988 114.46756 +O 162.64100 0.02037 115.45589 +H 163.19688 -0.89893 112.51800 +H 163.20650 0.88998 112.50429 +H 160.93020 0.01558 113.93370 +N 164.69027 0.00504 114.70047 +C 165.18489 0.01235 116.06002 +C 166.71028 0.00483 116.06005 +O 167.38961 -0.00586 115.03646 +H 164.81880 0.91378 116.56307 +H 164.80916 -0.87513 116.57711 +H 165.37426 -0.00120 113.94913 +N 167.38029 0.00984 117.22051 +C 168.82703 0.00249 117.22053 +C 169.34854 0.01024 118.65400 +O 168.61887 0.02112 119.64233 +H 169.17458 -0.89904 116.70468 +H 169.18453 0.88987 116.69051 +H 166.90807 0.01625 118.12015 +N 170.66814 0.00523 118.88692 +C 171.16276 0.01280 120.24647 +C 172.68815 0.00500 120.24650 +O 173.36747 -0.00608 119.22291 +H 170.79684 0.91443 120.74928 +H 170.78687 -0.87448 120.76378 +H 171.35213 -0.00133 118.13558 +N 173.35816 0.01019 121.40695 +C 174.80490 0.00258 121.40698 +C 175.32641 0.01061 122.84045 +O 174.59674 0.02188 123.82878 +H 175.15229 -0.89915 120.89136 +H 175.16256 0.88976 120.87673 +H 172.88594 0.01692 122.30659 +N 176.64600 0.00541 123.07336 +C 177.14063 0.01325 124.43291 +C 178.66602 0.00517 124.43295 +O 179.34534 -0.00629 123.40936 +H 176.77487 0.91507 124.93549 +H 176.76457 -0.87383 124.95046 +H 177.32999 -0.00146 122.32203 +N 179.33603 0.01055 125.59340 +C 180.78276 0.00267 125.59343 +C 181.30428 0.01097 127.02689 +O 180.57461 0.02263 128.01522 +H 181.12999 -0.89926 125.07804 +H 181.14058 0.88964 125.06295 +H 178.86381 0.01759 126.49303 +N 182.62387 0.00560 127.25981 +C 183.11850 0.01370 128.61936 +C 184.64388 0.00534 128.61939 +O 185.32320 -0.00651 127.59581 +H 182.75290 0.91572 129.12171 +H 182.74228 -0.87318 129.13713 +H 183.30786 -0.00159 126.50848 +N 185.31390 0.01090 129.77984 +C 186.76063 0.00276 129.77988 +C 187.28215 0.01134 131.21334 +O 186.55248 0.02339 132.20166 +H 187.10769 -0.89936 129.26473 +H 187.11861 0.88953 129.24917 +H 184.84168 0.01826 130.67948 +N 188.60174 0.00579 131.44626 +C 189.09637 0.01415 132.80581 +C 190.62175 0.00552 132.80584 +O 191.30107 -0.00672 131.78226 +H 188.73093 0.91636 133.30792 +H 188.71999 -0.87253 133.32381 +H 189.28573 -0.00173 130.69493 +N 191.29177 0.01125 133.96629 +C 192.73849 0.00285 133.96633 +C 193.26002 0.01171 135.39979 +O 192.53035 0.02414 136.38810 +H 193.08539 -0.89947 133.45141 +H 193.09664 0.88942 133.43538 +H 190.81955 0.01893 134.86592 +N 194.57960 0.00597 135.63271 +C 195.07423 0.01459 136.99225 +C 196.59962 0.00569 136.99229 +O 197.27893 -0.00694 135.96871 +H 194.70896 0.91701 137.49413 +H 194.69770 -0.87188 137.51048 +H 195.26359 -0.00186 134.88138 +N 197.26963 0.01160 138.15274 +C 198.71636 0.00294 138.15278 +C 199.23788 0.01207 139.58623 +O 198.50822 0.02489 140.57455 +H 199.06310 -0.89958 137.63809 +H 199.07467 0.88930 137.62160 +H 196.79742 0.01960 139.05237 +N 200.55747 0.00616 139.81915 +C 201.05210 0.01504 141.17870 +C 202.57748 0.00586 141.17874 +O 203.25680 -0.00716 140.15516 +H 200.68700 0.91766 141.68034 +H 200.67540 -0.87122 141.69716 +H 201.24146 -0.00199 139.06783 +N 203.24750 0.01195 142.33918 +C 204.69423 0.00303 142.33922 +C 205.21575 0.01244 143.77268 +O 204.48609 0.02565 144.76099 +H 205.04080 -0.89969 141.82477 +H 205.05269 0.88919 141.80782 +H 202.77529 0.02027 143.23881 +N 206.53534 0.00635 144.00560 +C 207.02997 0.01549 145.36514 +C 208.55535 0.00603 145.36518 +O 209.23466 -0.00737 144.34161 +H 206.66503 0.91830 145.86655 +H 206.65311 -0.87057 145.88383 +H 207.21932 -0.00212 143.25428 +N 209.22537 0.01230 146.52563 +C 210.67209 0.00311 146.52567 +C 211.19362 0.01280 147.95912 +O 210.46396 0.02640 148.94743 +H 211.01850 -0.89979 146.01145 +H 211.03072 0.88908 145.99404 +H 208.75315 0.02094 147.42526 +N 212.51321 0.00653 148.19205 +C 213.00784 0.01594 149.55159 +C 214.53322 0.00621 149.55163 +O 215.21252 -0.00759 148.52806 +H 212.64306 0.91895 150.05276 +H 212.63082 -0.86992 150.07051 +H 213.19719 -0.00225 147.44073 +N 215.20324 0.01266 150.71208 +C 216.64996 0.00320 150.71212 +C 217.17149 0.01317 152.14557 +O 216.44183 0.02716 153.13388 +H 216.99620 -0.89990 150.19814 +H 217.00875 0.88896 150.18026 +H 214.73102 0.02161 151.61170 +N 218.49107 0.00672 152.37850 +C 218.98571 0.01639 153.73803 +C 220.51108 0.00638 153.73808 +O 221.19039 -0.00781 152.71451 +H 218.62109 0.91959 154.23898 +H 218.60853 -0.86927 154.25718 +H 219.17505 -0.00239 151.62718 +N 221.18111 0.01301 154.89852 +C 222.62783 0.00329 154.89857 +C 223.14936 0.01354 156.33202 +O 222.41970 0.02791 157.32032 +H 222.97391 -0.90001 154.38482 +H 222.98678 0.88885 154.36648 +H 220.70889 0.02228 155.79814 +N 224.46894 0.00691 156.56495 +C 224.96358 0.01684 157.92448 +C 226.48895 0.00655 157.92453 +O 227.16825 -0.00802 156.90097 +H 224.59913 0.92024 158.42519 +H 224.58624 -0.86861 158.44386 +H 225.15292 -0.00252 155.81363 +N 227.15897 0.01336 159.08497 +C 228.60569 0.00338 159.08502 +C 229.12722 0.01390 160.51846 +O 228.39757 0.02867 161.50676 +H 228.95161 -0.90011 158.57150 +H 228.96480 0.88873 158.55270 +H 226.68676 0.02295 159.98459 +N 230.44681 0.00709 160.75139 +C 230.94145 0.01729 162.11092 +C 232.46682 0.00672 162.11098 +O 233.14612 -0.00824 161.08742 +H 230.57716 0.92088 162.61140 +H 230.56394 -0.86796 162.63053 +H 231.13078 -0.00265 160.00008 +N 233.13684 0.01371 163.27141 +C 234.58356 0.00347 163.27147 +C 235.10509 0.01427 164.70491 +O 234.37544 0.02942 165.69320 +H 234.92931 -0.90022 162.75819 +H 234.94283 0.88862 162.73892 +H 232.66463 0.02362 164.17103 +N 236.42467 0.00728 164.93784 +C 236.91932 0.01774 166.29737 +C 238.44468 0.00690 166.29742 +O 239.12398 -0.00845 165.27387 +H 236.55519 0.92153 166.79761 +H 236.54165 -0.86731 166.81721 +H 237.10865 -0.00278 164.18653 +N 239.11471 0.01406 167.45786 +C 240.56142 0.00356 167.45792 +C 241.08296 0.01463 168.89136 +O 240.35331 0.03017 169.87964 +H 240.90701 -0.90033 166.94487 +H 240.92086 0.88851 166.92514 +H 238.64250 0.02429 168.35747 +N 242.40254 0.00747 169.12429 +C 242.89718 0.01819 170.48381 +C 244.42255 0.00707 170.48387 +O 245.10185 -0.00867 169.46032 +H 242.53322 0.92217 170.98382 +H 242.51936 -0.86666 171.00388 +H 243.08651 -0.00291 168.37298 +N 245.09258 0.01441 171.64431 +C 246.53929 0.00365 171.64436 +C 247.06083 0.01500 173.07780 +O 246.33118 0.03093 174.06609 +H 246.88472 -0.90043 171.13155 +H 246.89888 0.88839 171.11136 +H 244.62037 0.02496 172.54392 +N 248.38041 0.00765 173.31074 +C 248.87505 0.01864 174.67026 +C 250.40042 0.00724 174.67032 +O 251.07971 -0.00889 173.64677 +H 248.51126 0.92282 175.17003 +H 248.49707 -0.86600 175.19056 +H 249.06438 -0.00305 172.55943 +N 251.07045 0.01476 175.83075 +C 252.51716 0.00374 175.83081 +C 253.03870 0.01536 177.26425 +O 252.30905 0.03168 178.25253 +H 252.86242 -0.90054 175.31824 +H 252.87691 0.88828 175.29758 +H 250.59824 0.02563 176.73036 +N 254.35827 0.00784 177.49718 +C 254.85292 0.01909 178.85670 +C 256.37828 0.00741 178.85677 +O 257.05757 -0.00910 177.83323 +H 254.48929 0.92346 179.35624 +H 254.47478 -0.86535 179.37723 +H 255.04224 -0.00318 176.74588 +N 257.04831 0.01512 180.01720 +C 258.49502 0.00383 180.01726 +C 259.01656 0.01573 181.45069 +O 258.28693 0.03244 182.43897 +H 258.84012 -0.90065 179.50492 +H 258.85494 0.88816 179.48380 +H 256.57611 0.02630 180.91680 +N 260.33614 0.00803 181.68363 +C 260.83079 0.01954 183.04315 +C 262.35615 0.00759 183.04322 +O 263.03544 -0.00932 182.01968 +H 260.46732 0.92411 183.54245 +H 260.45249 -0.86470 183.56390 +H 261.02011 -0.00331 180.93233 +N 263.02618 0.01547 184.20364 +C 264.47289 0.00392 184.20371 +C 264.99443 0.01610 185.63714 +O 264.26480 0.03319 186.62541 +H 264.81782 -0.90075 183.69160 +H 264.83296 0.88805 183.67002 +H 262.55398 0.02697 185.10325 +N 266.31401 0.00821 185.87008 +C 266.80866 0.01999 187.22959 +C 268.33402 0.00776 187.22966 +O 269.01330 -0.00953 186.20613 +H 266.44536 0.92475 187.72866 +H 266.43019 -0.86405 187.75058 +H 266.99797 -0.00344 185.11879 +N 269.00405 0.01582 188.39009 +C 270.45076 0.00400 188.39016 +C 270.97230 0.01646 189.82358 +O 270.24267 0.03395 190.81185 +H 270.79552 -0.90086 187.87829 +H 270.81099 0.88793 187.85624 +H 268.53185 0.02764 189.28969 +N 272.29187 0.00840 190.05653 +C 272.78653 0.02043 191.41604 +C 274.31188 0.00793 191.41611 +O 274.99116 -0.00975 190.39258 +H 272.42339 0.92540 191.91487 +H 272.40790 -0.86339 191.93725 +H 272.97584 -0.00358 189.30524 +N 274.98192 0.01617 192.57654 +C 276.42862 0.00409 192.57661 +C 276.95017 0.01683 194.01003 +O 276.22054 0.03470 194.99829 +H 276.77322 -0.90097 192.06497 +H 276.78902 0.88782 192.04246 +H 274.50972 0.02832 193.47613 +N 278.26974 0.00859 194.24298 +C 278.76440 0.02088 195.60248 +C 280.28975 0.00810 195.60256 +O 280.96903 -0.00997 194.57904 +H 278.40142 0.92604 196.10108 +H 278.38561 -0.86274 196.12393 +H 278.95370 -0.00371 193.49169 +N 280.95979 0.01652 196.76298 +C 282.40649 0.00418 196.76306 +C 282.92804 0.01719 198.19648 +O 282.19841 0.03545 199.18473 +H 282.75093 -0.90107 196.25165 +H 282.76704 0.88770 196.22868 +H 280.48759 0.02899 197.66258 +N 284.24761 0.00877 198.42942 +C 284.74227 0.02133 199.78893 +C 286.26762 0.00828 199.78901 +O 286.94689 -0.01018 198.76549 +H 284.37946 0.92668 200.28729 +H 284.36332 -0.86209 200.31060 +H 284.93157 -0.00384 197.67814 +N 286.93765 0.01687 200.94943 +C 288.38435 0.00427 200.94951 +C 288.90591 0.01756 202.38292 +O 288.17628 0.03621 203.37118 +H 288.72863 -0.90118 200.43834 +H 288.74507 0.88759 200.41490 +H 286.46546 0.02966 201.84902 +N 290.22547 0.00896 202.61587 +C 290.72013 0.02178 203.97537 +C 292.24548 0.00845 203.97546 +O 292.92475 -0.01040 202.95194 +H 290.35749 0.92733 204.47350 +H 290.34103 -0.86143 204.49727 +H 290.90943 -0.00397 201.86459 +N 292.91552 0.01723 205.13587 +C 294.36222 0.00436 205.13596 +C 294.88377 0.01792 206.56937 +O 294.15415 0.03696 207.55762 +H 294.70633 -0.90128 204.62502 +H 294.72309 0.88747 204.60112 +H 292.44334 0.03033 206.03546 +N 296.20334 0.00915 206.80232 +C 296.69800 0.02223 208.16182 +C 298.22335 0.00862 208.16190 +O 298.90262 -0.01061 207.13840 +H 296.33552 0.92797 208.65971 +H 296.31874 -0.86078 208.68395 +H 296.88729 -0.00410 206.05104 +N 298.89339 0.01758 209.32232 +C 300.34008 0.00445 209.32241 +C 300.86164 0.01829 210.75581 +O 300.13203 0.03772 211.74406 +H 300.68403 -0.90139 208.81170 +H 300.70112 0.88736 208.78734 +H 298.42121 0.03100 210.22190 +N 302.18121 0.00933 210.98877 +C 302.67587 0.02268 212.34826 +C 304.20122 0.00879 212.34835 +O 304.88048 -0.01083 211.32485 +H 302.31356 0.92862 212.84592 +H 302.29645 -0.86013 212.87062 +H 302.86516 -0.00424 210.23749 +N 304.87126 0.01793 213.50877 +C 306.31795 0.00454 213.50886 +C 306.83951 0.01866 214.94226 +O 306.10990 0.03847 215.93050 +H 306.66173 -0.90150 212.99839 +H 306.67915 0.88724 212.97356 +H 304.39908 0.03167 214.40835 +N 308.15907 0.00952 215.17522 +C 308.65374 0.02313 216.53471 +C 310.17908 0.00897 216.53480 +O 310.85834 -0.01105 215.51130 +H 308.29159 0.92926 217.03213 +H 308.27415 -0.85947 217.05729 +H 308.84302 -0.00437 214.42394 +N 310.84913 0.01828 217.69521 +C 312.29582 0.00463 217.69530 +C 312.81738 0.01902 219.12870 +O 312.08777 0.03923 220.11694 +H 312.63943 -0.90160 217.18507 +H 312.65717 0.88713 217.15978 +H 310.37695 0.03234 218.59479 +N 314.13694 0.00971 219.36166 +C 314.63161 0.02358 220.72115 +C 316.15695 0.00914 220.72125 +O 316.83621 -0.01126 219.69776 +H 314.26962 0.92990 221.21834 +H 314.25186 -0.85882 221.24397 +H 314.82089 -0.00450 218.61040 +N 316.82700 0.01863 221.88166 +C 318.27368 0.00472 221.88175 +C 318.79525 0.01939 223.31515 +O 318.06564 0.03998 224.30338 +H 318.61713 -0.90171 221.37176 +H 318.63520 0.88701 221.34600 +H 316.35482 0.03301 222.78123 +N 320.11481 0.00989 223.54811 +C 320.60948 0.02403 224.90759 +C 322.13482 0.00931 224.90770 +O 322.81407 -0.01148 223.88421 +H 320.24766 0.93055 225.40455 +H 320.22957 -0.85817 225.43064 +H 320.79875 -0.00463 222.79685 +N 322.80486 0.01898 226.06810 +C 324.25155 0.00481 226.06820 +C 324.77312 0.01975 227.50160 +O 324.04351 0.04073 228.48982 +H 324.59484 -0.90181 225.55844 +H 324.61322 0.88690 225.53222 +H 322.33269 0.03368 226.96767 +N 326.09267 0.01008 227.73456 +C 326.58735 0.02448 229.09404 +C 328.11268 0.00948 229.09415 +O 328.79193 -0.01170 228.07066 +H 326.22569 0.93119 229.59076 +H 326.20728 -0.85751 229.61731 +H 326.77662 -0.00476 226.98330 +O 328.71406 0.02071 230.30387 +H 328.12579 0.03905 231.19026 diff --git a/benchmarks/molecules/gly/gly120.xyz b/benchmarks/molecules/gly/gly120.xyz new file mode 100644 index 00000000..6ef3c463 --- /dev/null +++ b/benchmarks/molecules/gly/gly120.xyz @@ -0,0 +1,845 @@ +843 + +N 0.00000 0.00000 0.00000 +C 1.44675 0.00000 0.00000 +C 1.96825 0.00000 1.43350 +O 1.23855 0.00000 2.42187 +H 1.79887 -0.89599 -0.52238 +H 1.79973 0.89301 -0.52356 +H -0.47223 -0.00252 0.89965 +H -0.50800 0.07669 -0.87653 +N 3.28785 -0.00000 1.66639 +C 3.78246 0.00022 3.02597 +C 5.30787 0.00017 3.02597 +O 5.98722 -0.00002 2.00234 +H 3.41197 0.89631 3.53531 +H 3.41109 -0.89269 3.53683 +H 3.97186 0.00237 0.91504 +N 5.97787 0.00035 4.18645 +C 7.42462 0.00009 4.18645 +C 7.94612 0.00037 5.61994 +O 7.21641 0.00075 6.60831 +H 7.77658 -0.89610 3.66430 +H 7.77776 0.89290 3.66265 +H 5.50563 -0.00185 5.08610 +N 9.26572 0.00019 5.85284 +C 9.76033 0.00067 7.21242 +C 11.28573 0.00034 7.21242 +O 11.96509 -0.00024 6.18879 +H 9.39000 0.89695 7.72152 +H 9.38879 -0.89204 7.72351 +H 9.94972 0.00224 5.10149 +N 11.95573 0.00070 8.37289 +C 13.40249 0.00018 8.37289 +C 13.92398 0.00073 9.80639 +O 13.19428 0.00151 10.79476 +H 13.75428 -0.89621 7.85098 +H 13.75579 0.89279 7.84887 +H 11.48350 -0.00118 9.27255 +N 15.24359 0.00037 10.03929 +C 15.73819 0.00112 11.39887 +C 17.26360 0.00052 11.39887 +O 17.94295 -0.00046 10.37523 +H 15.36803 0.89760 11.90774 +H 15.36650 -0.89139 11.91018 +H 15.92759 0.00211 9.28794 +N 17.93360 0.00105 12.55934 +C 19.38036 0.00027 12.55934 +C 19.90185 0.00110 13.99284 +O 19.17215 0.00226 14.98121 +H 19.73199 -0.89632 12.03766 +H 19.73382 0.89267 12.03508 +H 17.46137 -0.00051 13.45900 +N 21.22146 0.00056 14.22573 +C 21.71606 0.00157 15.58531 +C 23.24147 0.00069 15.58531 +O 23.92082 -0.00067 14.56168 +H 21.34606 0.89825 16.09395 +H 21.34421 -0.89074 16.09686 +H 21.90546 0.00198 13.47438 +N 23.91147 0.00141 16.74579 +C 25.35822 0.00036 16.74579 +C 25.87972 0.00146 18.17928 +O 25.15002 0.00302 19.16765 +H 25.70969 -0.89643 16.22434 +H 25.71185 0.89256 16.22130 +H 23.43923 0.00016 17.64544 +N 27.19932 0.00075 18.41218 +C 27.69393 0.00202 19.77176 +C 29.21934 0.00086 19.77176 +O 29.89869 -0.00089 18.74813 +H 27.32409 0.89890 20.28017 +H 27.32191 -0.89009 20.28354 +H 27.88333 0.00184 17.66083 +N 29.88934 0.00176 20.93223 +C 31.33609 0.00044 20.93224 +C 31.85759 0.00183 22.36573 +O 31.12788 0.00377 23.35410 +H 31.68740 -0.89654 20.41102 +H 31.68988 0.89245 20.40752 +H 29.41710 0.00083 21.83189 +N 33.17719 0.00093 22.59863 +C 33.67180 0.00246 23.95821 +C 35.19720 0.00103 23.95821 +O 35.87656 -0.00110 22.93458 +H 33.30212 0.89955 24.46638 +H 33.29962 -0.88944 24.47022 +H 33.86119 0.00171 21.84728 +N 35.86720 0.00211 25.11868 +C 37.31396 0.00053 25.11868 +C 37.83545 0.00219 26.55218 +O 37.10575 0.00453 27.54055 +H 37.66510 -0.89665 24.59770 +H 37.66791 0.89234 24.59373 +H 35.39497 0.00150 26.01834 +N 39.15506 0.00112 26.78507 +C 39.64966 0.00291 28.14465 +C 41.17507 0.00121 28.14466 +O 41.85442 -0.00132 27.12102 +H 39.28015 0.90019 28.65260 +H 39.27732 -0.88879 28.65690 +H 39.83906 0.00158 26.03372 +N 41.84507 0.00246 29.30513 +C 43.29182 0.00062 29.30513 +C 43.81332 0.00256 30.73862 +O 43.08362 0.00528 31.72699 +H 43.64281 -0.89676 28.78438 +H 43.64594 0.89223 28.77995 +H 41.37284 0.00217 30.20478 +N 45.13293 0.00131 30.97152 +C 45.62753 0.00336 32.33110 +C 47.15294 0.00138 32.33110 +O 47.83229 -0.00154 31.30747 +H 45.25818 0.90084 32.83881 +H 45.25503 -0.88814 32.84357 +H 45.81693 0.00145 30.22017 +N 47.82294 0.00281 33.49157 +C 49.26969 0.00071 33.49158 +C 49.79119 0.00293 34.92507 +O 49.06149 0.00603 35.91344 +H 49.62051 -0.89687 32.97106 +H 49.62396 0.89212 32.96616 +H 47.35070 0.00284 34.39123 +N 51.11079 0.00149 35.15797 +C 51.60540 0.00381 36.51755 +C 53.13081 0.00155 36.51755 +O 53.81016 -0.00175 35.49392 +H 51.23621 0.90149 37.02502 +H 51.23273 -0.88749 37.03025 +H 51.79480 0.00131 34.40662 +N 53.80081 0.00316 37.67802 +C 55.24756 0.00080 37.67802 +C 55.76906 0.00329 39.11152 +O 55.03936 0.00679 40.09988 +H 55.59822 -0.89698 37.15774 +H 55.60199 0.89201 37.15238 +H 53.32857 0.00351 38.57768 +N 57.08866 0.00168 39.34442 +C 57.58327 0.00426 40.70399 +C 59.10867 0.00172 40.70400 +O 59.78802 -0.00197 39.68037 +H 57.21424 0.90214 41.21124 +H 57.21044 -0.88684 41.21693 +H 57.77266 0.00118 38.59307 +N 59.77868 0.00352 41.86447 +C 61.22543 0.00089 41.86447 +C 61.74692 0.00366 43.29796 +O 61.01722 0.00754 44.28633 +H 61.57592 -0.89709 41.34442 +H 61.58002 0.89189 41.33860 +H 59.30644 0.00418 42.76412 +N 63.06653 0.00187 43.53086 +C 63.56114 0.00471 44.89044 +C 65.08654 0.00190 44.89044 +O 65.76589 -0.00219 43.86682 +H 63.19227 0.90279 45.39745 +H 63.18815 -0.88619 45.40361 +H 63.75053 0.00105 42.77951 +N 65.75654 0.00387 46.05092 +C 67.20329 0.00098 46.05092 +C 67.72479 0.00402 47.48441 +O 66.99509 0.00830 48.47278 +H 67.55362 -0.89720 45.53110 +H 67.55805 0.89178 45.52481 +H 65.28431 0.00485 46.95057 +N 69.04439 0.00205 47.71731 +C 69.53900 0.00516 49.07689 +C 71.06441 0.00207 49.07689 +O 71.74376 -0.00240 48.05327 +H 69.17030 0.90343 49.58367 +H 69.16585 -0.88554 49.59028 +H 69.72840 0.00092 46.96596 +N 71.73441 0.00422 50.23736 +C 73.18116 0.00107 50.23737 +C 73.70266 0.00439 51.67086 +O 72.97296 0.00905 52.65922 +H 73.53133 -0.89731 49.71778 +H 73.53608 0.89167 49.71103 +H 71.26217 0.00552 51.13702 +N 75.02226 0.00224 51.90376 +C 75.51687 0.00561 53.26333 +C 77.04228 0.00224 53.26334 +O 77.72162 -0.00262 52.23971 +H 75.14833 0.90408 53.76988 +H 75.14356 -0.88489 53.77696 +H 75.70627 0.00079 51.15241 +N 77.71228 0.00457 54.42381 +C 79.15903 0.00116 54.42381 +C 79.68053 0.00476 55.85730 +O 78.95083 0.00981 56.84567 +H 79.50903 -0.89741 53.90446 +H 79.51411 0.89156 53.89725 +H 77.24004 0.00619 55.32346 +N 81.00013 0.00243 56.09020 +C 81.49474 0.00606 57.44978 +C 83.02014 0.00241 57.44979 +O 83.69949 -0.00283 56.42616 +H 81.12636 0.90473 57.95609 +H 81.12127 -0.88424 57.96364 +H 81.68413 0.00065 55.33886 +N 83.69015 0.00492 58.61026 +C 85.13689 0.00125 58.61026 +C 85.65839 0.00512 60.04375 +O 84.92870 0.01056 61.03211 +H 85.48674 -0.89752 58.09114 +H 85.49214 0.89145 58.08346 +H 83.21791 0.00686 59.50991 +N 86.97800 0.00261 60.27665 +C 87.47261 0.00651 61.63623 +C 88.99801 0.00259 61.63623 +O 89.67735 -0.00305 60.61261 +H 87.10439 0.90538 62.14231 +H 87.09897 -0.88359 62.15031 +H 87.66200 0.00052 59.52530 +N 89.66801 0.00527 62.79670 +C 91.11476 0.00133 62.79671 +C 91.63626 0.00549 64.23020 +O 90.90657 0.01132 65.21856 +H 91.46444 -0.89763 62.27782 +H 91.47017 0.89134 62.26968 +H 89.19578 0.00753 63.69636 +N 92.95586 0.00280 64.46310 +C 93.45047 0.00696 65.82267 +C 94.97588 0.00276 65.82268 +O 95.65522 -0.00327 64.79906 +H 93.08243 0.90602 66.32852 +H 93.07668 -0.88294 66.33699 +H 93.63987 0.00039 63.71175 +N 95.64588 0.00562 66.98315 +C 97.09263 0.00142 66.98316 +C 97.61413 0.00585 68.41664 +O 96.88444 0.01207 69.40500 +H 97.44214 -0.89774 66.46450 +H 97.44819 0.89122 66.45590 +H 95.17365 0.00820 67.88280 +N 98.93373 0.00299 68.64955 +C 99.42834 0.00741 70.00912 +C 100.95374 0.00293 70.00913 +O 101.63309 -0.00348 68.98551 +H 99.06046 0.90667 70.51473 +H 99.05438 -0.88229 70.52367 +H 99.61773 0.00026 67.89820 +N 101.62375 0.00598 71.16959 +C 103.07049 0.00151 71.16961 +C 103.59200 0.00622 72.60309 +O 102.86230 0.01282 73.59145 +H 103.41985 -0.89785 70.65118 +H 103.42622 0.89111 70.64212 +H 101.15152 0.00887 72.06925 +N 104.91160 0.00317 72.83599 +C 105.40621 0.00786 74.19556 +C 106.93161 0.00310 74.19557 +O 107.61095 -0.00370 73.17196 +H 105.03849 0.90732 74.70095 +H 105.03209 -0.88164 74.71034 +H 105.59560 0.00013 72.08465 +N 107.60162 0.00633 75.35604 +C 109.04836 0.00160 75.35605 +C 109.56986 0.00658 76.78954 +O 108.84017 0.01358 77.77789 +H 109.39755 -0.89796 74.83787 +H 109.40425 0.89100 74.82833 +H 107.12938 0.00955 76.25569 +N 110.88947 0.00336 77.02244 +C 111.38408 0.00831 78.38201 +C 112.90948 0.00328 78.38202 +O 113.58882 -0.00391 77.35841 +H 111.01652 0.90796 78.88716 +H 111.00980 -0.88099 78.89702 +H 111.57347 -0.00001 76.27110 +N 113.57948 0.00668 79.54249 +C 115.02623 0.00169 79.54250 +C 115.54773 0.00695 80.97598 +O 114.81804 0.01433 81.96434 +H 115.37525 -0.89807 79.02455 +H 115.38228 0.89089 79.01455 +H 113.10725 0.01022 80.44214 +N 116.86733 0.00355 81.20889 +C 117.36195 0.00875 82.56846 +C 118.88735 0.00345 82.56847 +O 119.56668 -0.00413 81.54486 +H 116.99455 0.90861 83.07337 +H 116.98750 -0.88034 83.08370 +H 117.55133 -0.00014 80.45754 +N 119.55735 0.00703 83.72893 +C 121.00410 0.00178 83.72895 +C 121.52560 0.00732 85.16243 +O 120.79591 0.01509 86.15078 +H 121.35296 -0.89818 83.21123 +H 121.36031 0.89077 83.20077 +H 119.08512 0.01089 84.62858 +N 122.84520 0.00373 85.39534 +C 123.33982 0.00920 86.75490 +C 124.86521 0.00362 86.75492 +O 125.54455 -0.00435 85.73131 +H 122.97258 0.90926 87.25958 +H 122.96521 -0.87969 87.27037 +H 123.52920 -0.00027 84.64399 +N 125.53522 0.00738 87.91538 +C 126.98196 0.00187 87.91540 +C 127.50347 0.00768 89.34888 +O 126.77378 0.01584 90.33723 +H 127.33066 -0.89828 87.39791 +H 127.33834 0.89066 87.38698 +H 125.06299 0.01156 88.81503 +N 128.82307 0.00392 89.58178 +C 129.31768 0.00965 90.94135 +C 130.84308 0.00379 90.94136 +O 131.52242 -0.00456 89.91776 +H 128.95061 0.90990 91.44580 +H 128.94292 -0.87904 91.45705 +H 129.50707 -0.00040 88.83044 +N 131.51309 0.00773 92.10183 +C 132.95983 0.00196 92.10184 +C 133.48134 0.00805 93.53532 +O 132.75165 0.01660 94.52367 +H 133.30836 -0.89839 91.58459 +H 133.31636 0.89055 91.57320 +H 131.04086 0.01223 93.00148 +N 134.80093 0.00411 93.76823 +C 135.29555 0.01010 95.12779 +C 136.82095 0.00397 95.12781 +O 137.50028 -0.00478 94.10421 +H 134.92865 0.91055 95.63201 +H 134.92062 -0.87839 95.64373 +H 135.48493 -0.00054 93.01689 +N 137.49096 0.00809 96.28827 +C 138.93770 0.00205 96.28829 +C 139.45920 0.00841 97.72177 +O 138.72952 0.01735 98.71011 +H 139.28607 -0.89850 95.77127 +H 139.29439 0.89044 95.75942 +H 137.01873 0.01290 97.18792 +N 140.77880 0.00429 97.95468 +C 141.27342 0.01055 99.31424 +C 142.79881 0.00414 99.31426 +O 143.47815 -0.00500 98.29065 +H 140.90668 0.91120 99.81822 +H 140.89833 -0.87774 99.83040 +H 141.46280 -0.00067 97.20334 +N 143.46882 0.00844 100.47472 +C 144.91556 0.00214 100.47474 +C 145.43707 0.00878 101.90822 +O 144.70739 0.01810 102.89656 +H 145.26377 -0.89861 99.95795 +H 145.27242 0.89032 99.94564 +H 142.99659 0.01357 101.37437 +N 146.75667 0.00448 102.14113 +C 147.25129 0.01100 103.50069 +C 148.77668 0.00431 103.50071 +O 149.45601 -0.00521 102.47710 +H 146.88471 0.91184 104.00443 +H 146.87604 -0.87709 104.01708 +H 147.44066 -0.00080 101.38979 +N 149.44669 0.00879 104.66117 +C 150.89343 0.00222 104.66119 +C 151.41494 0.00915 106.09466 +O 150.68526 0.01886 107.08300 +H 151.24147 -0.89872 104.14463 +H 151.25045 0.89021 104.13186 +H 148.97446 0.01424 105.56081 +N 152.73454 0.00467 106.32757 +C 153.22916 0.01145 107.68713 +C 154.75455 0.00448 107.68715 +O 155.43388 -0.00543 106.66356 +H 152.86274 0.91249 108.19065 +H 152.85375 -0.87644 108.20375 +H 153.41853 -0.00093 105.57624 +N 155.42456 0.00914 108.84761 +C 156.87130 0.00231 108.84764 +C 157.39281 0.00951 110.28111 +O 156.66313 0.01961 111.26945 +H 157.21918 -0.89883 108.33132 +H 157.22847 0.89010 108.31807 +H 154.95233 0.01491 109.74726 +N 158.71240 0.00485 110.51402 +C 159.20702 0.01190 111.87358 +C 160.73242 0.00465 111.87360 +O 161.41174 -0.00564 110.85001 +H 158.84077 0.91314 112.37686 +H 158.83145 -0.87578 112.39043 +H 159.39640 -0.00106 109.76269 +N 161.40243 0.00949 113.03406 +C 162.84916 0.00240 113.03408 +C 163.37068 0.00988 114.46756 +O 162.64100 0.02037 115.45589 +H 163.19688 -0.89893 112.51800 +H 163.20650 0.88998 112.50429 +H 160.93020 0.01558 113.93370 +N 164.69027 0.00504 114.70047 +C 165.18489 0.01235 116.06002 +C 166.71028 0.00483 116.06005 +O 167.38961 -0.00586 115.03646 +H 164.81880 0.91378 116.56307 +H 164.80916 -0.87513 116.57711 +H 165.37426 -0.00120 113.94913 +N 167.38029 0.00984 117.22051 +C 168.82703 0.00249 117.22053 +C 169.34854 0.01024 118.65400 +O 168.61887 0.02112 119.64233 +H 169.17458 -0.89904 116.70468 +H 169.18453 0.88987 116.69051 +H 166.90807 0.01625 118.12015 +N 170.66814 0.00523 118.88692 +C 171.16276 0.01280 120.24647 +C 172.68815 0.00500 120.24650 +O 173.36747 -0.00608 119.22291 +H 170.79684 0.91443 120.74928 +H 170.78687 -0.87448 120.76378 +H 171.35213 -0.00133 118.13558 +N 173.35816 0.01019 121.40695 +C 174.80490 0.00258 121.40698 +C 175.32641 0.01061 122.84045 +O 174.59674 0.02188 123.82878 +H 175.15229 -0.89915 120.89136 +H 175.16256 0.88976 120.87673 +H 172.88594 0.01692 122.30659 +N 176.64600 0.00541 123.07336 +C 177.14063 0.01325 124.43291 +C 178.66602 0.00517 124.43295 +O 179.34534 -0.00629 123.40936 +H 176.77487 0.91507 124.93549 +H 176.76457 -0.87383 124.95046 +H 177.32999 -0.00146 122.32203 +N 179.33603 0.01055 125.59340 +C 180.78276 0.00267 125.59343 +C 181.30428 0.01097 127.02689 +O 180.57461 0.02263 128.01522 +H 181.12999 -0.89926 125.07804 +H 181.14058 0.88964 125.06295 +H 178.86381 0.01759 126.49303 +N 182.62387 0.00560 127.25981 +C 183.11850 0.01370 128.61936 +C 184.64388 0.00534 128.61939 +O 185.32320 -0.00651 127.59581 +H 182.75290 0.91572 129.12171 +H 182.74228 -0.87318 129.13713 +H 183.30786 -0.00159 126.50848 +N 185.31390 0.01090 129.77984 +C 186.76063 0.00276 129.77988 +C 187.28215 0.01134 131.21334 +O 186.55248 0.02339 132.20166 +H 187.10769 -0.89936 129.26473 +H 187.11861 0.88953 129.24917 +H 184.84168 0.01826 130.67948 +N 188.60174 0.00579 131.44626 +C 189.09637 0.01415 132.80581 +C 190.62175 0.00552 132.80584 +O 191.30107 -0.00672 131.78226 +H 188.73093 0.91636 133.30792 +H 188.71999 -0.87253 133.32381 +H 189.28573 -0.00173 130.69493 +N 191.29177 0.01125 133.96629 +C 192.73849 0.00285 133.96633 +C 193.26002 0.01171 135.39979 +O 192.53035 0.02414 136.38810 +H 193.08539 -0.89947 133.45141 +H 193.09664 0.88942 133.43538 +H 190.81955 0.01893 134.86592 +N 194.57960 0.00597 135.63271 +C 195.07423 0.01459 136.99225 +C 196.59962 0.00569 136.99229 +O 197.27893 -0.00694 135.96871 +H 194.70896 0.91701 137.49413 +H 194.69770 -0.87188 137.51048 +H 195.26359 -0.00186 134.88138 +N 197.26963 0.01160 138.15274 +C 198.71636 0.00294 138.15278 +C 199.23788 0.01207 139.58623 +O 198.50822 0.02489 140.57455 +H 199.06310 -0.89958 137.63809 +H 199.07467 0.88930 137.62160 +H 196.79742 0.01960 139.05237 +N 200.55747 0.00616 139.81915 +C 201.05210 0.01504 141.17870 +C 202.57748 0.00586 141.17874 +O 203.25680 -0.00716 140.15516 +H 200.68700 0.91766 141.68034 +H 200.67540 -0.87122 141.69716 +H 201.24146 -0.00199 139.06783 +N 203.24750 0.01195 142.33918 +C 204.69423 0.00303 142.33922 +C 205.21575 0.01244 143.77268 +O 204.48609 0.02565 144.76099 +H 205.04080 -0.89969 141.82477 +H 205.05269 0.88919 141.80782 +H 202.77529 0.02027 143.23881 +N 206.53534 0.00635 144.00560 +C 207.02997 0.01549 145.36514 +C 208.55535 0.00603 145.36518 +O 209.23466 -0.00737 144.34161 +H 206.66503 0.91830 145.86655 +H 206.65311 -0.87057 145.88383 +H 207.21932 -0.00212 143.25428 +N 209.22537 0.01230 146.52563 +C 210.67209 0.00311 146.52567 +C 211.19362 0.01280 147.95912 +O 210.46396 0.02640 148.94743 +H 211.01850 -0.89979 146.01145 +H 211.03072 0.88908 145.99404 +H 208.75315 0.02094 147.42526 +N 212.51321 0.00653 148.19205 +C 213.00784 0.01594 149.55159 +C 214.53322 0.00621 149.55163 +O 215.21252 -0.00759 148.52806 +H 212.64306 0.91895 150.05276 +H 212.63082 -0.86992 150.07051 +H 213.19719 -0.00225 147.44073 +N 215.20324 0.01266 150.71208 +C 216.64996 0.00320 150.71212 +C 217.17149 0.01317 152.14557 +O 216.44183 0.02716 153.13388 +H 216.99620 -0.89990 150.19814 +H 217.00875 0.88896 150.18026 +H 214.73102 0.02161 151.61170 +N 218.49107 0.00672 152.37850 +C 218.98571 0.01639 153.73803 +C 220.51108 0.00638 153.73808 +O 221.19039 -0.00781 152.71451 +H 218.62109 0.91959 154.23898 +H 218.60853 -0.86927 154.25718 +H 219.17505 -0.00239 151.62718 +N 221.18111 0.01301 154.89852 +C 222.62783 0.00329 154.89857 +C 223.14936 0.01354 156.33202 +O 222.41970 0.02791 157.32032 +H 222.97391 -0.90001 154.38482 +H 222.98678 0.88885 154.36648 +H 220.70889 0.02228 155.79814 +N 224.46894 0.00691 156.56495 +C 224.96358 0.01684 157.92448 +C 226.48895 0.00655 157.92453 +O 227.16825 -0.00802 156.90097 +H 224.59913 0.92024 158.42519 +H 224.58624 -0.86861 158.44386 +H 225.15292 -0.00252 155.81363 +N 227.15897 0.01336 159.08497 +C 228.60569 0.00338 159.08502 +C 229.12722 0.01390 160.51846 +O 228.39757 0.02867 161.50676 +H 228.95161 -0.90011 158.57150 +H 228.96480 0.88873 158.55270 +H 226.68676 0.02295 159.98459 +N 230.44681 0.00709 160.75139 +C 230.94145 0.01729 162.11092 +C 232.46682 0.00672 162.11098 +O 233.14612 -0.00824 161.08742 +H 230.57716 0.92088 162.61140 +H 230.56394 -0.86796 162.63053 +H 231.13078 -0.00265 160.00008 +N 233.13684 0.01371 163.27141 +C 234.58356 0.00347 163.27147 +C 235.10509 0.01427 164.70491 +O 234.37544 0.02942 165.69320 +H 234.92931 -0.90022 162.75819 +H 234.94283 0.88862 162.73892 +H 232.66463 0.02362 164.17103 +N 236.42467 0.00728 164.93784 +C 236.91932 0.01774 166.29737 +C 238.44468 0.00690 166.29742 +O 239.12398 -0.00845 165.27387 +H 236.55519 0.92153 166.79761 +H 236.54165 -0.86731 166.81721 +H 237.10865 -0.00278 164.18653 +N 239.11471 0.01406 167.45786 +C 240.56142 0.00356 167.45792 +C 241.08296 0.01463 168.89136 +O 240.35331 0.03017 169.87964 +H 240.90701 -0.90033 166.94487 +H 240.92086 0.88851 166.92514 +H 238.64250 0.02429 168.35747 +N 242.40254 0.00747 169.12429 +C 242.89718 0.01819 170.48381 +C 244.42255 0.00707 170.48387 +O 245.10185 -0.00867 169.46032 +H 242.53322 0.92217 170.98382 +H 242.51936 -0.86666 171.00388 +H 243.08651 -0.00291 168.37298 +N 245.09258 0.01441 171.64431 +C 246.53929 0.00365 171.64436 +C 247.06083 0.01500 173.07780 +O 246.33118 0.03093 174.06609 +H 246.88472 -0.90043 171.13155 +H 246.89888 0.88839 171.11136 +H 244.62037 0.02496 172.54392 +N 248.38041 0.00765 173.31074 +C 248.87505 0.01864 174.67026 +C 250.40042 0.00724 174.67032 +O 251.07971 -0.00889 173.64677 +H 248.51126 0.92282 175.17003 +H 248.49707 -0.86600 175.19056 +H 249.06438 -0.00305 172.55943 +N 251.07045 0.01476 175.83075 +C 252.51716 0.00374 175.83081 +C 253.03870 0.01536 177.26425 +O 252.30905 0.03168 178.25253 +H 252.86242 -0.90054 175.31824 +H 252.87691 0.88828 175.29758 +H 250.59824 0.02563 176.73036 +N 254.35827 0.00784 177.49718 +C 254.85292 0.01909 178.85670 +C 256.37828 0.00741 178.85677 +O 257.05757 -0.00910 177.83323 +H 254.48929 0.92346 179.35624 +H 254.47478 -0.86535 179.37723 +H 255.04224 -0.00318 176.74588 +N 257.04831 0.01512 180.01720 +C 258.49502 0.00383 180.01726 +C 259.01656 0.01573 181.45069 +O 258.28693 0.03244 182.43897 +H 258.84012 -0.90065 179.50492 +H 258.85494 0.88816 179.48380 +H 256.57611 0.02630 180.91680 +N 260.33614 0.00803 181.68363 +C 260.83079 0.01954 183.04315 +C 262.35615 0.00759 183.04322 +O 263.03544 -0.00932 182.01968 +H 260.46732 0.92411 183.54245 +H 260.45249 -0.86470 183.56390 +H 261.02011 -0.00331 180.93233 +N 263.02618 0.01547 184.20364 +C 264.47289 0.00392 184.20371 +C 264.99443 0.01610 185.63714 +O 264.26480 0.03319 186.62541 +H 264.81782 -0.90075 183.69160 +H 264.83296 0.88805 183.67002 +H 262.55398 0.02697 185.10325 +N 266.31401 0.00821 185.87008 +C 266.80866 0.01999 187.22959 +C 268.33402 0.00776 187.22966 +O 269.01330 -0.00953 186.20613 +H 266.44536 0.92475 187.72866 +H 266.43019 -0.86405 187.75058 +H 266.99797 -0.00344 185.11879 +N 269.00405 0.01582 188.39009 +C 270.45076 0.00400 188.39016 +C 270.97230 0.01646 189.82358 +O 270.24267 0.03395 190.81185 +H 270.79552 -0.90086 187.87829 +H 270.81099 0.88793 187.85624 +H 268.53185 0.02764 189.28969 +N 272.29187 0.00840 190.05653 +C 272.78653 0.02043 191.41604 +C 274.31188 0.00793 191.41611 +O 274.99116 -0.00975 190.39258 +H 272.42339 0.92540 191.91487 +H 272.40790 -0.86339 191.93725 +H 272.97584 -0.00358 189.30524 +N 274.98192 0.01617 192.57654 +C 276.42862 0.00409 192.57661 +C 276.95017 0.01683 194.01003 +O 276.22054 0.03470 194.99829 +H 276.77322 -0.90097 192.06497 +H 276.78902 0.88782 192.04246 +H 274.50972 0.02832 193.47613 +N 278.26974 0.00859 194.24298 +C 278.76440 0.02088 195.60248 +C 280.28975 0.00810 195.60256 +O 280.96903 -0.00997 194.57904 +H 278.40142 0.92604 196.10108 +H 278.38561 -0.86274 196.12393 +H 278.95370 -0.00371 193.49169 +N 280.95979 0.01652 196.76298 +C 282.40649 0.00418 196.76306 +C 282.92804 0.01719 198.19648 +O 282.19841 0.03545 199.18473 +H 282.75093 -0.90107 196.25165 +H 282.76704 0.88770 196.22868 +H 280.48759 0.02899 197.66258 +N 284.24761 0.00877 198.42942 +C 284.74227 0.02133 199.78893 +C 286.26762 0.00828 199.78901 +O 286.94689 -0.01018 198.76549 +H 284.37946 0.92668 200.28729 +H 284.36332 -0.86209 200.31060 +H 284.93157 -0.00384 197.67814 +N 286.93765 0.01687 200.94943 +C 288.38435 0.00427 200.94951 +C 288.90591 0.01756 202.38292 +O 288.17628 0.03621 203.37118 +H 288.72863 -0.90118 200.43834 +H 288.74507 0.88759 200.41490 +H 286.46546 0.02966 201.84902 +N 290.22547 0.00896 202.61587 +C 290.72013 0.02178 203.97537 +C 292.24548 0.00845 203.97546 +O 292.92475 -0.01040 202.95194 +H 290.35749 0.92733 204.47350 +H 290.34103 -0.86143 204.49727 +H 290.90943 -0.00397 201.86459 +N 292.91552 0.01723 205.13587 +C 294.36222 0.00436 205.13596 +C 294.88377 0.01792 206.56937 +O 294.15415 0.03696 207.55762 +H 294.70633 -0.90128 204.62502 +H 294.72309 0.88747 204.60112 +H 292.44334 0.03033 206.03546 +N 296.20334 0.00915 206.80232 +C 296.69800 0.02223 208.16182 +C 298.22335 0.00862 208.16190 +O 298.90262 -0.01061 207.13840 +H 296.33552 0.92797 208.65971 +H 296.31874 -0.86078 208.68395 +H 296.88729 -0.00410 206.05104 +N 298.89339 0.01758 209.32232 +C 300.34008 0.00445 209.32241 +C 300.86164 0.01829 210.75581 +O 300.13203 0.03772 211.74406 +H 300.68403 -0.90139 208.81170 +H 300.70112 0.88736 208.78734 +H 298.42121 0.03100 210.22190 +N 302.18121 0.00933 210.98877 +C 302.67587 0.02268 212.34826 +C 304.20122 0.00879 212.34835 +O 304.88048 -0.01083 211.32485 +H 302.31356 0.92862 212.84592 +H 302.29645 -0.86013 212.87062 +H 302.86516 -0.00424 210.23749 +N 304.87126 0.01793 213.50877 +C 306.31795 0.00454 213.50886 +C 306.83951 0.01866 214.94226 +O 306.10990 0.03847 215.93050 +H 306.66173 -0.90150 212.99839 +H 306.67915 0.88724 212.97356 +H 304.39908 0.03167 214.40835 +N 308.15907 0.00952 215.17522 +C 308.65374 0.02313 216.53471 +C 310.17908 0.00897 216.53480 +O 310.85834 -0.01105 215.51130 +H 308.29159 0.92926 217.03213 +H 308.27415 -0.85947 217.05729 +H 308.84302 -0.00437 214.42394 +N 310.84913 0.01828 217.69521 +C 312.29582 0.00463 217.69530 +C 312.81738 0.01902 219.12870 +O 312.08777 0.03923 220.11694 +H 312.63943 -0.90160 217.18507 +H 312.65717 0.88713 217.15978 +H 310.37695 0.03234 218.59479 +N 314.13694 0.00971 219.36166 +C 314.63161 0.02358 220.72115 +C 316.15695 0.00914 220.72125 +O 316.83621 -0.01126 219.69776 +H 314.26962 0.92990 221.21834 +H 314.25186 -0.85882 221.24397 +H 314.82089 -0.00450 218.61040 +N 316.82700 0.01863 221.88166 +C 318.27368 0.00472 221.88175 +C 318.79525 0.01939 223.31515 +O 318.06564 0.03998 224.30338 +H 318.61713 -0.90171 221.37176 +H 318.63520 0.88701 221.34600 +H 316.35482 0.03301 222.78123 +N 320.11481 0.00989 223.54811 +C 320.60948 0.02403 224.90759 +C 322.13482 0.00931 224.90770 +O 322.81407 -0.01148 223.88421 +H 320.24766 0.93055 225.40455 +H 320.22957 -0.85817 225.43064 +H 320.79875 -0.00463 222.79685 +N 322.80486 0.01898 226.06810 +C 324.25155 0.00481 226.06820 +C 324.77312 0.01975 227.50160 +O 324.04351 0.04073 228.48982 +H 324.59484 -0.90181 225.55844 +H 324.61322 0.88690 225.53222 +H 322.33269 0.03368 226.96767 +N 326.09267 0.01008 227.73456 +C 326.58735 0.02448 229.09404 +C 328.11268 0.00948 229.09415 +O 328.79193 -0.01170 228.07066 +H 326.22569 0.93119 229.59076 +H 326.20728 -0.85751 229.61731 +H 326.77662 -0.00476 226.98330 +N 328.78273 0.01933 230.25455 +C 330.22941 0.00489 230.25465 +C 330.75098 0.02012 231.68804 +O 330.02139 0.04149 232.67626 +H 330.57254 -0.90192 229.74513 +H 330.59125 0.88678 229.71844 +H 328.31056 0.03435 231.15411 +N 332.07054 0.01027 231.92101 +C 332.56522 0.02493 233.28048 +C 334.09055 0.00965 233.28059 +O 334.76979 -0.01191 232.25712 +H 332.20372 0.93183 233.77697 +H 332.18499 -0.85686 233.80399 +H 332.75448 -0.00490 231.16975 +N 334.76060 0.01969 234.44100 +C 336.20728 0.00498 234.44110 +C 336.72885 0.02049 235.87449 +O 335.99926 0.04224 236.86270 +H 336.55024 -0.90202 233.93181 +H 336.56928 0.88667 233.90466 +H 334.28843 0.03502 235.34056 +N 338.04841 0.01045 236.10746 +C 338.54309 0.02538 237.46693 +C 340.06842 0.00983 237.46704 +O 340.74766 -0.01213 236.44357 +H 338.18176 0.93248 237.96318 +H 338.16270 -0.85620 237.99066 +H 338.73234 -0.00503 235.35620 +N 340.73847 0.02004 238.62744 +C 342.18514 0.00507 238.62755 +C 342.70672 0.02085 240.06093 +O 341.97713 0.04300 241.04914 +H 342.52794 -0.90213 238.11850 +H 342.54730 0.88655 238.09088 +H 340.26630 0.03569 239.52700 +N 344.02627 0.01064 240.29390 +C 344.52096 0.02582 241.65337 +C 346.04628 0.01000 241.65349 +O 346.72552 -0.01234 240.63002 +H 344.15979 0.93312 242.14939 +H 344.14041 -0.85555 242.17733 +H 344.71021 -0.00516 239.54266 +N 346.71634 0.02039 242.81389 +C 348.16301 0.00516 242.81400 +C 348.68459 0.02122 244.24738 +O 347.95500 0.04375 245.23558 +H 348.50564 -0.90223 242.30518 +H 348.52533 0.88643 242.27710 +H 346.24417 0.03636 243.71344 +N 350.00414 0.01083 244.48035 +C 350.49883 0.02627 245.83982 +C 352.02415 0.01017 245.83994 +O 352.70338 -0.01256 244.81648 +H 350.13783 0.93376 246.33560 +H 350.11812 -0.85490 246.36400 +H 350.68807 -0.00529 243.72911 +N 352.69421 0.02074 247.00033 +C 354.14088 0.00525 247.00045 +C 354.66246 0.02158 248.43382 +O 353.93288 0.04451 249.42202 +H 354.48334 -0.90234 246.49186 +H 354.50335 0.88632 246.46333 +H 352.22204 0.03703 247.89988 +N 355.98201 0.01101 248.66680 +C 356.47670 0.02672 250.02626 +C 358.00202 0.01034 250.02639 +O 358.68124 -0.01278 249.00293 +H 356.11586 0.93441 250.52181 +H 356.09583 -0.85424 250.55068 +H 356.66593 -0.00542 247.91556 +O 358.60340 0.02259 251.23609 +H 358.01515 0.04262 252.12247 diff --git a/benchmarks/molecules/gly/gly30.xyz b/benchmarks/molecules/gly/gly30.xyz new file mode 100644 index 00000000..f5edd6c5 --- /dev/null +++ b/benchmarks/molecules/gly/gly30.xyz @@ -0,0 +1,215 @@ +213 +Frame 1 +N -92.9031 -10.1231 -0.0000 +C -91.4564 -10.1231 -0.0000 +C -90.9349 -10.1231 1.4335 +O -91.6646 -10.1231 2.4219 +H -91.1043 -11.0191 -0.5224 +H -91.1034 -9.2301 -0.5236 +H -93.3754 -10.1256 0.8996 +H -93.4111 -10.0464 -0.8765 +N -89.6153 -10.1231 1.6664 +C -89.1207 -10.1229 3.0260 +C -87.5953 -10.1229 3.0260 +O -86.9159 -10.1231 2.0023 +H -89.4912 -9.2268 3.5353 +H -89.4921 -11.0158 3.5368 +H -88.9313 -10.1207 0.9150 +N -86.9253 -10.1228 4.1865 +C -85.4785 -10.1230 4.1865 +C -84.9570 -10.1227 5.6199 +O -85.6867 -10.1223 6.6083 +H -85.1266 -11.0192 3.6643 +H -85.1254 -9.2302 3.6627 +H -87.3975 -10.1250 5.0861 +N -83.6374 -10.1229 5.8528 +C -83.1428 -10.1224 7.2124 +C -81.6174 -10.1228 7.2124 +O -80.9380 -10.1233 6.1888 +H -83.5131 -9.2261 7.7215 +H -83.5143 -11.0151 7.7235 +H -82.9534 -10.1209 5.1015 +N -80.9474 -10.1224 8.3729 +C -79.5006 -10.1229 8.3729 +C -78.9791 -10.1224 9.8064 +O -79.7088 -10.1216 10.7948 +H -79.1488 -11.0193 7.8510 +H -79.1473 -9.2303 7.8489 +H -81.4196 -10.1243 9.2725 +N -77.6596 -10.1227 10.0393 +C -77.1649 -10.1220 11.3989 +C -75.6395 -10.1226 11.3989 +O -74.9602 -10.1236 10.3752 +H -77.5351 -9.2255 11.9077 +H -77.5366 -11.0145 11.9102 +H -76.9755 -10.1210 9.2879 +N -74.9695 -10.1220 12.5593 +C -73.5228 -10.1228 12.5593 +C -73.0013 -10.1220 13.9928 +O -73.7310 -10.1208 14.9812 +H -73.1712 -11.0194 12.0377 +H -73.1693 -9.2304 12.0351 +H -75.4418 -10.1236 13.4590 +N -71.6817 -10.1225 14.2257 +C -71.1871 -10.1215 15.5853 +C -69.6617 -10.1224 15.5853 +O -68.9823 -10.1238 14.5617 +H -71.5571 -9.2248 16.0940 +H -71.5589 -11.0138 16.0969 +H -70.9977 -10.1211 13.4744 +N -68.9917 -10.1217 16.7458 +C -67.5449 -10.1227 16.7458 +C -67.0234 -10.1216 18.1793 +O -67.7531 -10.1201 19.1677 +H -67.1934 -11.0195 16.2243 +H -67.1913 -9.2305 16.2213 +H -69.4639 -10.1229 17.6454 +N -65.7038 -10.1223 18.4122 +C -65.2092 -10.1211 19.7718 +C -63.6838 -10.1222 19.7718 +O -63.0045 -10.1240 18.7481 +H -65.5790 -9.2242 20.2802 +H -65.5812 -11.0132 20.2835 +H -65.0198 -10.1213 17.6608 +N -63.0138 -10.1213 20.9322 +C -61.5670 -10.1227 20.9322 +C -61.0456 -10.1213 22.3657 +O -61.7752 -10.1193 23.3541 +H -61.2157 -11.0196 20.4110 +H -61.2133 -9.2306 20.4075 +H -63.4860 -10.1223 21.8319 +N -59.7259 -10.1222 22.5986 +C -59.2313 -10.1206 23.9582 +C -57.7059 -10.1221 23.9582 +O -57.0266 -10.1242 22.9346 +H -59.6010 -9.2235 24.4664 +H -59.6035 -11.0125 24.4702 +H -59.0419 -10.1214 21.8473 +N -57.0359 -10.1210 25.1187 +C -55.5892 -10.1226 25.1187 +C -55.0677 -10.1209 26.5522 +O -55.7974 -10.1186 27.5406 +H -55.2380 -11.0197 24.5977 +H -55.2352 -9.2308 24.5937 +H -57.5082 -10.1216 26.0183 +N -53.7481 -10.1220 26.7851 +C -53.2535 -10.1202 28.1446 +C -51.7281 -10.1219 28.1447 +O -51.0487 -10.1244 27.1210 +H -53.6230 -9.2229 28.6526 +H -53.6258 -11.0119 28.6569 +H -53.0641 -10.1215 26.0337 +N -51.0581 -10.1206 29.3051 +C -49.6113 -10.1225 29.3051 +C -49.0898 -10.1205 30.7386 +O -49.8195 -10.1178 31.7270 +H -49.2603 -11.0198 28.7844 +H -49.2572 -9.2309 28.7799 +H -51.5303 -10.1209 30.2048 +N -47.7702 -10.1218 30.9715 +C -47.2756 -10.1197 32.3311 +C -45.7502 -10.1217 32.3311 +O -45.0709 -10.1246 31.3075 +H -47.6450 -9.2222 32.8388 +H -47.6481 -11.0112 32.8436 +H -47.0862 -10.1216 30.2202 +N -45.0802 -10.1203 33.4916 +C -43.6334 -10.1224 33.4916 +C -43.1119 -10.1202 34.9251 +O -43.8416 -10.1171 35.9134 +H -43.2826 -11.0200 32.9711 +H -43.2792 -9.2310 32.9662 +H -45.5524 -10.1203 34.3912 +N -41.7923 -10.1216 35.1580 +C -41.2977 -10.1193 36.5176 +C -39.7723 -10.1215 36.5176 +O -39.0930 -10.1249 35.4939 +H -41.6669 -9.2216 37.0250 +H -41.6704 -11.0106 37.0303 +H -41.1083 -10.1218 34.4066 +N -39.1023 -10.1199 37.6780 +C -37.6556 -10.1223 37.6780 +C -37.1341 -10.1198 39.1115 +O -37.8638 -10.1163 40.0999 +H -37.3049 -11.0201 37.1577 +H -37.3011 -9.2311 37.1524 +H -39.5746 -10.1196 38.5777 +N -35.8145 -10.1214 39.3444 +C -35.3199 -10.1188 40.7040 +C -33.7945 -10.1214 40.7040 +O -33.1151 -10.1251 39.6804 +H -35.6889 -9.2210 41.2112 +H -35.6927 -11.0099 41.2169 +H -35.1305 -10.1219 38.5931 +N -33.1245 -10.1196 41.8645 +C -31.6777 -10.1222 41.8645 +C -31.1562 -10.1194 43.2980 +O -31.8859 -10.1156 44.2863 +H -31.3272 -11.0202 41.3444 +H -31.3231 -9.2312 41.3386 +H -33.5967 -10.1189 42.7641 +N -29.8366 -10.1212 43.5309 +C -29.3420 -10.1184 44.8904 +C -27.8166 -10.1212 44.8904 +O -27.1373 -10.1253 43.8668 +H -29.7109 -9.2203 45.3974 +H -29.7150 -11.0093 45.4036 +H -29.1526 -10.1221 42.7795 +N -27.1466 -10.1192 46.0509 +C -25.6998 -10.1221 46.0509 +C -25.1783 -10.1191 47.4844 +O -25.9080 -10.1148 48.4728 +H -25.3495 -11.0203 45.5311 +H -25.3451 -9.2313 45.5248 +H -27.6188 -10.1182 46.9506 +N -23.8587 -10.1210 47.7173 +C -23.3641 -10.1179 49.0769 +C -21.8387 -10.1210 49.0769 +O -21.1594 -10.1255 48.0533 +H -23.7328 -9.2197 49.5837 +H -23.7373 -11.0086 49.5903 +H -23.1747 -10.1222 46.9660 +N -21.1687 -10.1189 50.2374 +C -19.7220 -10.1220 50.2374 +C -19.2005 -10.1187 51.6709 +O -19.9302 -10.1140 52.6592 +H -19.3718 -11.0204 49.7178 +H -19.3671 -9.2314 49.7110 +H -21.6410 -10.1176 51.1370 +N -17.8809 -10.1209 51.9038 +C -17.3863 -10.1175 53.2633 +C -15.8609 -10.1209 53.2633 +O -15.1815 -10.1257 52.2397 +H -17.7548 -9.2190 53.7699 +H -17.7596 -11.0080 53.7770 +H -17.1969 -10.1223 51.1524 +N -15.1909 -10.1185 54.4238 +C -13.7441 -10.1219 54.4238 +C -13.2226 -10.1183 55.8573 +O -13.9523 -10.1133 56.8457 +H -13.3941 -11.0205 53.9045 +H -13.3890 -9.2315 53.8973 +H -15.6631 -10.1169 55.3235 +N -11.9030 -10.1207 56.0902 +C -11.4084 -10.1170 57.4498 +C -9.8830 -10.1207 57.4498 +O -9.2037 -10.1259 56.4262 +H -11.7768 -9.2184 57.9561 +H -11.7819 -11.0073 57.9636 +H -11.2190 -10.1224 55.3389 +N -9.2130 -10.1182 58.6103 +C -7.7662 -10.1219 58.6103 +C -7.2447 -10.1180 60.0438 +O -7.9744 -10.1125 61.0321 +H -7.4164 -11.0206 58.0911 +H -7.4110 -9.2317 58.0835 +H -9.6852 -10.1162 59.5099 +N -5.9251 -10.1205 60.2766 +C -5.4305 -10.1166 61.6362 +C -3.9051 -10.1205 61.6362 +O -3.2258 -10.1262 60.6126 +H -5.7987 -9.2177 62.1423 +H -5.8042 -11.0067 62.1503 +H -5.2411 -10.1226 59.5253 +O -3.3038 -10.1175 62.8460 +H -3.8922 -10.1126 63.7326 diff --git a/benchmarks/molecules/gly/gly40.xyz b/benchmarks/molecules/gly/gly40.xyz new file mode 100644 index 00000000..93c9097f --- /dev/null +++ b/benchmarks/molecules/gly/gly40.xyz @@ -0,0 +1,285 @@ +283 +Frame 1 +N 0.0000 0.0000 0.0000 +C 1.4468 0.0000 0.0000 +C 1.9683 0.0000 1.4335 +O 1.2385 0.0000 2.4219 +H 1.7989 -0.8960 -0.5224 +H 1.7997 0.8930 -0.5236 +H -0.4722 -0.0025 0.8996 +H -0.5080 0.0767 -0.8765 +N 3.2878 -0.0000 1.6664 +C 3.7825 0.0002 3.0260 +C 5.3079 0.0002 3.0260 +O 5.9872 -0.0000 2.0023 +H 3.4120 0.8963 3.5353 +H 3.4111 -0.8927 3.5368 +H 3.9719 0.0024 0.9150 +N 5.9779 0.0003 4.1865 +C 7.4246 0.0001 4.1865 +C 7.9461 0.0004 5.6199 +O 7.2164 0.0008 6.6083 +H 7.7766 -0.8961 3.6643 +H 7.7778 0.8929 3.6627 +H 5.5056 -0.0019 5.0861 +N 9.2657 0.0002 5.8528 +C 9.7603 0.0007 7.2124 +C 11.2857 0.0003 7.2124 +O 11.9651 -0.0002 6.1888 +H 9.3900 0.8970 7.7215 +H 9.3888 -0.8920 7.7235 +H 9.9497 0.0022 5.1015 +N 11.9557 0.0007 8.3729 +C 13.4025 0.0002 8.3729 +C 13.9240 0.0007 9.8064 +O 13.1943 0.0015 10.7948 +H 13.7543 -0.8962 7.8510 +H 13.7558 0.8928 7.8489 +H 11.4835 -0.0012 9.2725 +N 15.2436 0.0004 10.0393 +C 15.7382 0.0011 11.3989 +C 17.2636 0.0005 11.3989 +O 17.9429 -0.0005 10.3752 +H 15.3680 0.8976 11.9077 +H 15.3665 -0.8914 11.9102 +H 15.9276 0.0021 9.2879 +N 17.9336 0.0010 12.5593 +C 19.3804 0.0003 12.5593 +C 19.9018 0.0011 13.9928 +O 19.1721 0.0023 14.9812 +H 19.7320 -0.8963 12.0377 +H 19.7338 0.8927 12.0351 +H 17.4614 -0.0005 13.4590 +N 21.2215 0.0006 14.2257 +C 21.7161 0.0016 15.5853 +C 23.2415 0.0007 15.5853 +O 23.9208 -0.0007 14.5617 +H 21.3461 0.8982 16.0940 +H 21.3442 -0.8907 16.0969 +H 21.9055 0.0020 13.4744 +N 23.9115 0.0014 16.7458 +C 25.3582 0.0004 16.7458 +C 25.8797 0.0015 18.1793 +O 25.1500 0.0030 19.1677 +H 25.7097 -0.8964 16.2243 +H 25.7118 0.8926 16.2213 +H 23.4392 0.0002 17.6454 +N 27.1993 0.0008 18.4122 +C 27.6939 0.0020 19.7718 +C 29.2193 0.0009 19.7718 +O 29.8987 -0.0009 18.7481 +H 27.3241 0.8989 20.2802 +H 27.3219 -0.8901 20.2835 +H 27.8833 0.0018 17.6608 +N 29.8893 0.0018 20.9322 +C 31.3361 0.0004 20.9322 +C 31.8576 0.0018 22.3657 +O 31.1279 0.0038 23.3541 +H 31.6874 -0.8965 20.4110 +H 31.6899 0.8924 20.4075 +H 29.4171 0.0008 21.8319 +N 33.1772 0.0009 22.5986 +C 33.6718 0.0025 23.9582 +C 35.1972 0.0010 23.9582 +O 35.8766 -0.0011 22.9346 +H 33.3021 0.8996 24.4664 +H 33.2996 -0.8894 24.4702 +H 33.8612 0.0017 21.8473 +N 35.8672 0.0021 25.1187 +C 37.3140 0.0005 25.1187 +C 37.8354 0.0022 26.5522 +O 37.1058 0.0045 27.5406 +H 37.6651 -0.8967 24.5977 +H 37.6679 0.8923 24.5937 +H 35.3950 0.0015 26.0183 +N 39.1551 0.0011 26.7851 +C 39.6497 0.0029 28.1446 +C 41.1751 0.0012 28.1447 +O 41.8544 -0.0013 27.1210 +H 39.2802 0.9002 28.6526 +H 39.2773 -0.8888 28.6569 +H 39.8391 0.0016 26.0337 +N 41.8451 0.0025 29.3051 +C 43.2918 0.0006 29.3051 +C 43.8133 0.0026 30.7386 +O 43.0836 0.0053 31.7270 +H 43.6428 -0.8968 28.7844 +H 43.6459 0.8922 28.7799 +H 41.3728 0.0022 30.2048 +N 45.1329 0.0013 30.9715 +C 45.6275 0.0034 32.3311 +C 47.1529 0.0014 32.3311 +O 47.8323 -0.0015 31.3075 +H 45.2582 0.9008 32.8388 +H 45.2550 -0.8881 32.8436 +H 45.8169 0.0014 30.2202 +N 47.8229 0.0028 33.4916 +C 49.2697 0.0007 33.4916 +C 49.7912 0.0029 34.9251 +O 49.0615 0.0060 35.9134 +H 49.6205 -0.8969 32.9711 +H 49.6240 0.8921 32.9662 +H 47.3507 0.0028 34.3912 +N 51.1108 0.0015 35.1580 +C 51.6054 0.0038 36.5176 +C 53.1308 0.0016 36.5176 +O 53.8102 -0.0018 35.4939 +H 51.2362 0.9015 37.0250 +H 51.2327 -0.8875 37.0303 +H 51.7948 0.0013 34.4066 +N 53.8008 0.0032 37.6780 +C 55.2476 0.0008 37.6780 +C 55.7691 0.0033 39.1115 +O 55.0394 0.0068 40.0999 +H 55.5982 -0.8970 37.1577 +H 55.6020 0.8920 37.1524 +H 53.3286 0.0035 38.5777 +N 57.0887 0.0017 39.3444 +C 57.5833 0.0043 40.7040 +C 59.1087 0.0017 40.7040 +O 59.7880 -0.0020 39.6804 +H 57.2142 0.9021 41.2112 +H 57.2104 -0.8868 41.2169 +H 57.7727 0.0012 38.5931 +N 59.7787 0.0035 41.8645 +C 61.2254 0.0009 41.8645 +C 61.7469 0.0037 43.2980 +O 61.0172 0.0075 44.2863 +H 61.5759 -0.8971 41.3444 +H 61.5800 0.8919 41.3386 +H 59.3064 0.0042 42.7641 +N 63.0665 0.0019 43.5309 +C 63.5611 0.0047 44.8904 +C 65.0865 0.0019 44.8904 +O 65.7659 -0.0022 43.8668 +H 63.1923 0.9028 45.3974 +H 63.1881 -0.8862 45.4036 +H 63.7505 0.0010 42.7795 +N 65.7565 0.0039 46.0509 +C 67.2033 0.0010 46.0509 +C 67.7248 0.0040 47.4844 +O 66.9951 0.0083 48.4728 +H 67.5536 -0.8972 45.5311 +H 67.5581 0.8918 45.5248 +H 65.2843 0.0049 46.9506 +N 69.0444 0.0021 47.7173 +C 69.5390 0.0052 49.0769 +C 71.0644 0.0021 49.0769 +O 71.7438 -0.0024 48.0533 +H 69.1703 0.9034 49.5837 +H 69.1658 -0.8855 49.5903 +H 69.7284 0.0009 46.9660 +N 71.7344 0.0042 50.2374 +C 73.1812 0.0011 50.2374 +C 73.7027 0.0044 51.6709 +O 72.9730 0.0091 52.6592 +H 73.5313 -0.8973 49.7178 +H 73.5361 0.8917 49.7110 +H 71.2622 0.0055 51.1370 +N 75.0223 0.0022 51.9038 +C 75.5169 0.0056 53.2633 +C 77.0423 0.0022 53.2633 +O 77.7216 -0.0026 52.2397 +H 75.1483 0.9041 53.7699 +H 75.1436 -0.8849 53.7770 +H 75.7063 0.0008 51.1524 +N 77.7123 0.0046 54.4238 +C 79.1590 0.0012 54.4238 +C 79.6805 0.0048 55.8573 +O 78.9508 0.0098 56.8457 +H 79.5090 -0.8974 53.9045 +H 79.5141 0.8916 53.8973 +H 77.2400 0.0062 55.3235 +N 81.0001 0.0024 56.0902 +C 81.4947 0.0061 57.4498 +C 83.0201 0.0024 57.4498 +O 83.6995 -0.0028 56.4262 +H 81.1264 0.9047 57.9561 +H 81.1213 -0.8842 57.9636 +H 81.6841 0.0007 55.3389 +N 83.6901 0.0049 58.6103 +C 85.1369 0.0012 58.6103 +C 85.6584 0.0051 60.0438 +O 84.9287 0.0106 61.0321 +H 85.4867 -0.8975 58.0911 +H 85.4921 0.8914 58.0835 +H 83.2179 0.0069 59.5099 +N 86.9780 0.0026 60.2766 +C 87.4726 0.0065 61.6362 +C 88.9980 0.0026 61.6362 +O 89.6774 -0.0030 60.6126 +H 87.1044 0.9054 62.1423 +H 87.0990 -0.8836 62.1503 +H 87.6620 0.0005 59.5253 +N 89.6680 0.0053 62.7967 +C 91.1148 0.0013 62.7967 +C 91.6363 0.0055 64.2302 +O 90.9066 0.0113 65.2186 +H 91.4644 -0.8976 62.2778 +H 91.4702 0.8913 62.2697 +H 89.1958 0.0075 63.6964 +N 92.9559 0.0028 64.4631 +C 93.4505 0.0070 65.8227 +C 94.9759 0.0028 65.8227 +O 95.6552 -0.0033 64.7991 +H 93.0824 0.9060 66.3285 +H 93.0767 -0.8829 66.3370 +H 93.6399 0.0004 63.7118 +N 95.6459 0.0056 66.9831 +C 97.0926 0.0014 66.9832 +C 97.6141 0.0058 68.4166 +O 96.8844 0.0121 69.4050 +H 97.4421 -0.8977 66.4645 +H 97.4482 0.8912 66.4559 +H 95.1737 0.0082 67.8828 +N 98.9337 0.0030 68.6496 +C 99.4283 0.0074 70.0091 +C 100.9537 0.0029 70.0091 +O 101.6331 -0.0035 68.9855 +H 99.0605 0.9067 70.5147 +H 99.0544 -0.8823 70.5237 +H 99.6177 0.0003 67.8982 +N 101.6237 0.0060 71.1696 +C 103.0705 0.0015 71.1696 +C 103.5920 0.0062 72.6031 +O 102.8623 0.0128 73.5915 +H 103.4199 -0.8978 70.6512 +H 103.4262 0.8911 70.6421 +H 101.1515 0.0089 72.0693 +N 104.9116 0.0032 72.8360 +C 105.4062 0.0079 74.1956 +C 106.9316 0.0031 74.1956 +O 107.6109 -0.0037 73.1720 +H 105.0385 0.9073 74.7010 +H 105.0321 -0.8816 74.7103 +H 105.5956 0.0001 72.0846 +N 107.6016 0.0063 75.3560 +C 109.0484 0.0016 75.3560 +C 109.5699 0.0066 76.7895 +O 108.8402 0.0136 77.7779 +H 109.3976 -0.8980 74.8379 +H 109.4043 0.8910 74.8283 +H 107.1294 0.0095 76.2557 +N 110.8895 0.0034 77.0224 +C 111.3841 0.0083 78.3820 +C 112.9095 0.0033 78.3820 +O 113.5888 -0.0039 77.3584 +H 111.0165 0.9080 78.8872 +H 111.0098 -0.8810 78.8970 +H 111.5735 -0.0000 76.2711 +N 113.5795 0.0067 79.5425 +C 115.0262 0.0017 79.5425 +C 115.5477 0.0069 80.9760 +O 114.8180 0.0143 81.9643 +H 115.3753 -0.8981 79.0246 +H 115.3823 0.8909 79.0145 +H 113.1072 0.0102 80.4421 +N 116.8673 0.0036 81.2089 +C 117.3620 0.0088 82.5685 +C 118.8874 0.0034 82.5685 +O 119.5667 -0.0041 81.5449 +H 116.9946 0.9086 83.0734 +H 116.9875 -0.8803 83.0837 +H 117.5513 -0.0001 80.4575 +O 119.4887 0.0075 83.7783 +H 118.9003 0.0141 84.6648 diff --git a/benchmarks/molecules/gly/gly50.xyz b/benchmarks/molecules/gly/gly50.xyz new file mode 100644 index 00000000..30daa813 --- /dev/null +++ b/benchmarks/molecules/gly/gly50.xyz @@ -0,0 +1,355 @@ +353 +Frame 1 +N 0.0000 0.0000 0.0000 +C 1.4468 0.0000 0.0000 +C 1.9683 0.0000 1.4335 +O 1.2385 0.0000 2.4219 +H 1.7989 -0.8960 -0.5224 +H 1.7997 0.8930 -0.5236 +H -0.4722 -0.0025 0.8996 +H -0.5080 0.0767 -0.8765 +N 3.2878 -0.0000 1.6664 +C 3.7825 0.0002 3.0260 +C 5.3079 0.0002 3.0260 +O 5.9872 -0.0000 2.0023 +H 3.4120 0.8963 3.5353 +H 3.4111 -0.8927 3.5368 +H 3.9719 0.0024 0.9150 +N 5.9779 0.0003 4.1865 +C 7.4246 0.0001 4.1865 +C 7.9461 0.0004 5.6199 +O 7.2164 0.0008 6.6083 +H 7.7766 -0.8961 3.6643 +H 7.7778 0.8929 3.6627 +H 5.5056 -0.0019 5.0861 +N 9.2657 0.0002 5.8528 +C 9.7603 0.0007 7.2124 +C 11.2857 0.0003 7.2124 +O 11.9651 -0.0002 6.1888 +H 9.3900 0.8970 7.7215 +H 9.3888 -0.8920 7.7235 +H 9.9497 0.0022 5.1015 +N 11.9557 0.0007 8.3729 +C 13.4025 0.0002 8.3729 +C 13.9240 0.0007 9.8064 +O 13.1943 0.0015 10.7948 +H 13.7543 -0.8962 7.8510 +H 13.7558 0.8928 7.8489 +H 11.4835 -0.0012 9.2725 +N 15.2436 0.0004 10.0393 +C 15.7382 0.0011 11.3989 +C 17.2636 0.0005 11.3989 +O 17.9429 -0.0005 10.3752 +H 15.3680 0.8976 11.9077 +H 15.3665 -0.8914 11.9102 +H 15.9276 0.0021 9.2879 +N 17.9336 0.0010 12.5593 +C 19.3804 0.0003 12.5593 +C 19.9018 0.0011 13.9928 +O 19.1721 0.0023 14.9812 +H 19.7320 -0.8963 12.0377 +H 19.7338 0.8927 12.0351 +H 17.4614 -0.0005 13.4590 +N 21.2215 0.0006 14.2257 +C 21.7161 0.0016 15.5853 +C 23.2415 0.0007 15.5853 +O 23.9208 -0.0007 14.5617 +H 21.3461 0.8982 16.0940 +H 21.3442 -0.8907 16.0969 +H 21.9055 0.0020 13.4744 +N 23.9115 0.0014 16.7458 +C 25.3582 0.0004 16.7458 +C 25.8797 0.0015 18.1793 +O 25.1500 0.0030 19.1677 +H 25.7097 -0.8964 16.2243 +H 25.7118 0.8926 16.2213 +H 23.4392 0.0002 17.6454 +N 27.1993 0.0008 18.4122 +C 27.6939 0.0020 19.7718 +C 29.2193 0.0009 19.7718 +O 29.8987 -0.0009 18.7481 +H 27.3241 0.8989 20.2802 +H 27.3219 -0.8901 20.2835 +H 27.8833 0.0018 17.6608 +N 29.8893 0.0018 20.9322 +C 31.3361 0.0004 20.9322 +C 31.8576 0.0018 22.3657 +O 31.1279 0.0038 23.3541 +H 31.6874 -0.8965 20.4110 +H 31.6899 0.8924 20.4075 +H 29.4171 0.0008 21.8319 +N 33.1772 0.0009 22.5986 +C 33.6718 0.0025 23.9582 +C 35.1972 0.0010 23.9582 +O 35.8766 -0.0011 22.9346 +H 33.3021 0.8996 24.4664 +H 33.2996 -0.8894 24.4702 +H 33.8612 0.0017 21.8473 +N 35.8672 0.0021 25.1187 +C 37.3140 0.0005 25.1187 +C 37.8354 0.0022 26.5522 +O 37.1058 0.0045 27.5406 +H 37.6651 -0.8967 24.5977 +H 37.6679 0.8923 24.5937 +H 35.3950 0.0015 26.0183 +N 39.1551 0.0011 26.7851 +C 39.6497 0.0029 28.1446 +C 41.1751 0.0012 28.1447 +O 41.8544 -0.0013 27.1210 +H 39.2802 0.9002 28.6526 +H 39.2773 -0.8888 28.6569 +H 39.8391 0.0016 26.0337 +N 41.8451 0.0025 29.3051 +C 43.2918 0.0006 29.3051 +C 43.8133 0.0026 30.7386 +O 43.0836 0.0053 31.7270 +H 43.6428 -0.8968 28.7844 +H 43.6459 0.8922 28.7799 +H 41.3728 0.0022 30.2048 +N 45.1329 0.0013 30.9715 +C 45.6275 0.0034 32.3311 +C 47.1529 0.0014 32.3311 +O 47.8323 -0.0015 31.3075 +H 45.2582 0.9008 32.8388 +H 45.2550 -0.8881 32.8436 +H 45.8169 0.0014 30.2202 +N 47.8229 0.0028 33.4916 +C 49.2697 0.0007 33.4916 +C 49.7912 0.0029 34.9251 +O 49.0615 0.0060 35.9134 +H 49.6205 -0.8969 32.9711 +H 49.6240 0.8921 32.9662 +H 47.3507 0.0028 34.3912 +N 51.1108 0.0015 35.1580 +C 51.6054 0.0038 36.5176 +C 53.1308 0.0016 36.5176 +O 53.8102 -0.0018 35.4939 +H 51.2362 0.9015 37.0250 +H 51.2327 -0.8875 37.0303 +H 51.7948 0.0013 34.4066 +N 53.8008 0.0032 37.6780 +C 55.2476 0.0008 37.6780 +C 55.7691 0.0033 39.1115 +O 55.0394 0.0068 40.0999 +H 55.5982 -0.8970 37.1577 +H 55.6020 0.8920 37.1524 +H 53.3286 0.0035 38.5777 +N 57.0887 0.0017 39.3444 +C 57.5833 0.0043 40.7040 +C 59.1087 0.0017 40.7040 +O 59.7880 -0.0020 39.6804 +H 57.2142 0.9021 41.2112 +H 57.2104 -0.8868 41.2169 +H 57.7727 0.0012 38.5931 +N 59.7787 0.0035 41.8645 +C 61.2254 0.0009 41.8645 +C 61.7469 0.0037 43.2980 +O 61.0172 0.0075 44.2863 +H 61.5759 -0.8971 41.3444 +H 61.5800 0.8919 41.3386 +H 59.3064 0.0042 42.7641 +N 63.0665 0.0019 43.5309 +C 63.5611 0.0047 44.8904 +C 65.0865 0.0019 44.8904 +O 65.7659 -0.0022 43.8668 +H 63.1923 0.9028 45.3974 +H 63.1881 -0.8862 45.4036 +H 63.7505 0.0010 42.7795 +N 65.7565 0.0039 46.0509 +C 67.2033 0.0010 46.0509 +C 67.7248 0.0040 47.4844 +O 66.9951 0.0083 48.4728 +H 67.5536 -0.8972 45.5311 +H 67.5581 0.8918 45.5248 +H 65.2843 0.0049 46.9506 +N 69.0444 0.0021 47.7173 +C 69.5390 0.0052 49.0769 +C 71.0644 0.0021 49.0769 +O 71.7438 -0.0024 48.0533 +H 69.1703 0.9034 49.5837 +H 69.1658 -0.8855 49.5903 +H 69.7284 0.0009 46.9660 +N 71.7344 0.0042 50.2374 +C 73.1812 0.0011 50.2374 +C 73.7027 0.0044 51.6709 +O 72.9730 0.0091 52.6592 +H 73.5313 -0.8973 49.7178 +H 73.5361 0.8917 49.7110 +H 71.2622 0.0055 51.1370 +N 75.0223 0.0022 51.9038 +C 75.5169 0.0056 53.2633 +C 77.0423 0.0022 53.2633 +O 77.7216 -0.0026 52.2397 +H 75.1483 0.9041 53.7699 +H 75.1436 -0.8849 53.7770 +H 75.7063 0.0008 51.1524 +N 77.7123 0.0046 54.4238 +C 79.1590 0.0012 54.4238 +C 79.6805 0.0048 55.8573 +O 78.9508 0.0098 56.8457 +H 79.5090 -0.8974 53.9045 +H 79.5141 0.8916 53.8973 +H 77.2400 0.0062 55.3235 +N 81.0001 0.0024 56.0902 +C 81.4947 0.0061 57.4498 +C 83.0201 0.0024 57.4498 +O 83.6995 -0.0028 56.4262 +H 81.1264 0.9047 57.9561 +H 81.1213 -0.8842 57.9636 +H 81.6841 0.0007 55.3389 +N 83.6901 0.0049 58.6103 +C 85.1369 0.0012 58.6103 +C 85.6584 0.0051 60.0438 +O 84.9287 0.0106 61.0321 +H 85.4867 -0.8975 58.0911 +H 85.4921 0.8914 58.0835 +H 83.2179 0.0069 59.5099 +N 86.9780 0.0026 60.2766 +C 87.4726 0.0065 61.6362 +C 88.9980 0.0026 61.6362 +O 89.6774 -0.0030 60.6126 +H 87.1044 0.9054 62.1423 +H 87.0990 -0.8836 62.1503 +H 87.6620 0.0005 59.5253 +N 89.6680 0.0053 62.7967 +C 91.1148 0.0013 62.7967 +C 91.6363 0.0055 64.2302 +O 90.9066 0.0113 65.2186 +H 91.4644 -0.8976 62.2778 +H 91.4702 0.8913 62.2697 +H 89.1958 0.0075 63.6964 +N 92.9559 0.0028 64.4631 +C 93.4505 0.0070 65.8227 +C 94.9759 0.0028 65.8227 +O 95.6552 -0.0033 64.7991 +H 93.0824 0.9060 66.3285 +H 93.0767 -0.8829 66.3370 +H 93.6399 0.0004 63.7118 +N 95.6459 0.0056 66.9831 +C 97.0926 0.0014 66.9832 +C 97.6141 0.0058 68.4166 +O 96.8844 0.0121 69.4050 +H 97.4421 -0.8977 66.4645 +H 97.4482 0.8912 66.4559 +H 95.1737 0.0082 67.8828 +N 98.9337 0.0030 68.6496 +C 99.4283 0.0074 70.0091 +C 100.9537 0.0029 70.0091 +O 101.6331 -0.0035 68.9855 +H 99.0605 0.9067 70.5147 +H 99.0544 -0.8823 70.5237 +H 99.6177 0.0003 67.8982 +N 101.6237 0.0060 71.1696 +C 103.0705 0.0015 71.1696 +C 103.5920 0.0062 72.6031 +O 102.8623 0.0128 73.5915 +H 103.4199 -0.8978 70.6512 +H 103.4262 0.8911 70.6421 +H 101.1515 0.0089 72.0693 +N 104.9116 0.0032 72.8360 +C 105.4062 0.0079 74.1956 +C 106.9316 0.0031 74.1956 +O 107.6109 -0.0037 73.1720 +H 105.0385 0.9073 74.7010 +H 105.0321 -0.8816 74.7103 +H 105.5956 0.0001 72.0846 +N 107.6016 0.0063 75.3560 +C 109.0484 0.0016 75.3560 +C 109.5699 0.0066 76.7895 +O 108.8402 0.0136 77.7779 +H 109.3976 -0.8980 74.8379 +H 109.4043 0.8910 74.8283 +H 107.1294 0.0095 76.2557 +N 110.8895 0.0034 77.0224 +C 111.3841 0.0083 78.3820 +C 112.9095 0.0033 78.3820 +O 113.5888 -0.0039 77.3584 +H 111.0165 0.9080 78.8872 +H 111.0098 -0.8810 78.8970 +H 111.5735 -0.0000 76.2711 +N 113.5795 0.0067 79.5425 +C 115.0262 0.0017 79.5425 +C 115.5477 0.0069 80.9760 +O 114.8180 0.0143 81.9643 +H 115.3753 -0.8981 79.0246 +H 115.3823 0.8909 79.0145 +H 113.1072 0.0102 80.4421 +N 116.8673 0.0036 81.2089 +C 117.3620 0.0088 82.5685 +C 118.8874 0.0034 82.5685 +O 119.5667 -0.0041 81.5449 +H 116.9946 0.9086 83.0734 +H 116.9875 -0.8803 83.0837 +H 117.5513 -0.0001 80.4575 +N 119.5574 0.0070 83.7289 +C 121.0041 0.0018 83.7290 +C 121.5256 0.0073 85.1624 +O 120.7959 0.0151 86.1508 +H 121.3530 -0.8982 83.2112 +H 121.3603 0.8908 83.2008 +H 119.0851 0.0109 84.6286 +N 122.8452 0.0037 85.3953 +C 123.3398 0.0092 86.7549 +C 124.8652 0.0036 86.7549 +O 125.5445 -0.0044 85.7313 +H 122.9726 0.9093 87.2596 +H 122.9652 -0.8797 87.2704 +H 123.5292 -0.0003 84.6440 +N 125.5352 0.0074 87.9154 +C 126.9820 0.0019 87.9154 +C 127.5035 0.0077 89.3489 +O 126.7738 0.0158 90.3372 +H 127.3307 -0.8983 87.3979 +H 127.3383 0.8907 87.3870 +H 125.0630 0.0116 88.8150 +N 128.8231 0.0039 89.5818 +C 129.3177 0.0097 90.9414 +C 130.8431 0.0038 90.9414 +O 131.5224 -0.0046 89.9178 +H 128.9506 0.9099 91.4458 +H 128.9429 -0.8790 91.4570 +H 129.5071 -0.0004 88.8304 +N 131.5131 0.0077 92.1018 +C 132.9598 0.0020 92.1018 +C 133.4813 0.0081 93.5353 +O 132.7516 0.0166 94.5237 +H 133.3084 -0.8984 91.5846 +H 133.3164 0.8906 91.5732 +H 131.0409 0.0122 93.0015 +N 134.8009 0.0041 93.7682 +C 135.2955 0.0101 95.1278 +C 136.8210 0.0040 95.1278 +O 137.5003 -0.0048 94.1042 +H 134.9286 0.9105 95.6320 +H 134.9206 -0.8784 95.6437 +H 135.4849 -0.0005 93.0169 +N 137.4910 0.0081 96.2883 +C 138.9377 0.0021 96.2883 +C 139.4592 0.0084 97.7218 +O 138.7295 0.0173 98.7101 +H 139.2861 -0.8985 95.7713 +H 139.2944 0.8904 95.7594 +H 137.0187 0.0129 97.1879 +N 140.7788 0.0043 97.9547 +C 141.2734 0.0105 99.3142 +C 142.7988 0.0041 99.3143 +O 143.4781 -0.0050 98.2906 +H 140.9067 0.9112 99.8182 +H 140.8983 -0.8777 99.8304 +H 141.4628 -0.0007 97.2033 +N 143.4688 0.0084 100.4747 +C 144.9156 0.0021 100.4747 +C 145.4371 0.0088 101.9082 +O 144.7074 0.0181 102.8966 +H 145.2638 -0.8986 99.9579 +H 145.2724 0.8903 99.9456 +H 142.9966 0.0136 101.3744 +N 146.7567 0.0045 102.1411 +C 147.2513 0.0110 103.5007 +C 148.7767 0.0043 103.5007 +O 149.4560 -0.0052 102.4771 +H 146.8847 0.9118 104.0044 +H 146.8760 -0.8771 104.0171 +H 147.4407 -0.0008 101.3898 +O 149.3780 0.0094 104.7105 +H 148.7897 0.0177 105.5970 diff --git a/benchmarks/molecules/gly/gly60.xyz b/benchmarks/molecules/gly/gly60.xyz new file mode 100644 index 00000000..bfeda008 --- /dev/null +++ b/benchmarks/molecules/gly/gly60.xyz @@ -0,0 +1,425 @@ +423 +Frame 1 +N 0.0000 0.0000 0.0000 +C 1.4468 0.0000 0.0000 +C 1.9683 0.0000 1.4335 +O 1.2385 0.0000 2.4219 +H 1.7989 -0.8960 -0.5224 +H 1.7997 0.8930 -0.5236 +H -0.4722 -0.0025 0.8996 +H -0.5080 0.0767 -0.8765 +N 3.2878 -0.0000 1.6664 +C 3.7825 0.0002 3.0260 +C 5.3079 0.0002 3.0260 +O 5.9872 -0.0000 2.0023 +H 3.4120 0.8963 3.5353 +H 3.4111 -0.8927 3.5368 +H 3.9719 0.0024 0.9150 +N 5.9779 0.0003 4.1865 +C 7.4246 0.0001 4.1865 +C 7.9461 0.0004 5.6199 +O 7.2164 0.0008 6.6083 +H 7.7766 -0.8961 3.6643 +H 7.7778 0.8929 3.6627 +H 5.5056 -0.0019 5.0861 +N 9.2657 0.0002 5.8528 +C 9.7603 0.0007 7.2124 +C 11.2857 0.0003 7.2124 +O 11.9651 -0.0002 6.1888 +H 9.3900 0.8970 7.7215 +H 9.3888 -0.8920 7.7235 +H 9.9497 0.0022 5.1015 +N 11.9557 0.0007 8.3729 +C 13.4025 0.0002 8.3729 +C 13.9240 0.0007 9.8064 +O 13.1943 0.0015 10.7948 +H 13.7543 -0.8962 7.8510 +H 13.7558 0.8928 7.8489 +H 11.4835 -0.0012 9.2725 +N 15.2436 0.0004 10.0393 +C 15.7382 0.0011 11.3989 +C 17.2636 0.0005 11.3989 +O 17.9429 -0.0005 10.3752 +H 15.3680 0.8976 11.9077 +H 15.3665 -0.8914 11.9102 +H 15.9276 0.0021 9.2879 +N 17.9336 0.0010 12.5593 +C 19.3804 0.0003 12.5593 +C 19.9018 0.0011 13.9928 +O 19.1721 0.0023 14.9812 +H 19.7320 -0.8963 12.0377 +H 19.7338 0.8927 12.0351 +H 17.4614 -0.0005 13.4590 +N 21.2215 0.0006 14.2257 +C 21.7161 0.0016 15.5853 +C 23.2415 0.0007 15.5853 +O 23.9208 -0.0007 14.5617 +H 21.3461 0.8982 16.0940 +H 21.3442 -0.8907 16.0969 +H 21.9055 0.0020 13.4744 +N 23.9115 0.0014 16.7458 +C 25.3582 0.0004 16.7458 +C 25.8797 0.0015 18.1793 +O 25.1500 0.0030 19.1677 +H 25.7097 -0.8964 16.2243 +H 25.7118 0.8926 16.2213 +H 23.4392 0.0002 17.6454 +N 27.1993 0.0008 18.4122 +C 27.6939 0.0020 19.7718 +C 29.2193 0.0009 19.7718 +O 29.8987 -0.0009 18.7481 +H 27.3241 0.8989 20.2802 +H 27.3219 -0.8901 20.2835 +H 27.8833 0.0018 17.6608 +N 29.8893 0.0018 20.9322 +C 31.3361 0.0004 20.9322 +C 31.8576 0.0018 22.3657 +O 31.1279 0.0038 23.3541 +H 31.6874 -0.8965 20.4110 +H 31.6899 0.8924 20.4075 +H 29.4171 0.0008 21.8319 +N 33.1772 0.0009 22.5986 +C 33.6718 0.0025 23.9582 +C 35.1972 0.0010 23.9582 +O 35.8766 -0.0011 22.9346 +H 33.3021 0.8996 24.4664 +H 33.2996 -0.8894 24.4702 +H 33.8612 0.0017 21.8473 +N 35.8672 0.0021 25.1187 +C 37.3140 0.0005 25.1187 +C 37.8354 0.0022 26.5522 +O 37.1058 0.0045 27.5406 +H 37.6651 -0.8967 24.5977 +H 37.6679 0.8923 24.5937 +H 35.3950 0.0015 26.0183 +N 39.1551 0.0011 26.7851 +C 39.6497 0.0029 28.1446 +C 41.1751 0.0012 28.1447 +O 41.8544 -0.0013 27.1210 +H 39.2802 0.9002 28.6526 +H 39.2773 -0.8888 28.6569 +H 39.8391 0.0016 26.0337 +N 41.8451 0.0025 29.3051 +C 43.2918 0.0006 29.3051 +C 43.8133 0.0026 30.7386 +O 43.0836 0.0053 31.7270 +H 43.6428 -0.8968 28.7844 +H 43.6459 0.8922 28.7799 +H 41.3728 0.0022 30.2048 +N 45.1329 0.0013 30.9715 +C 45.6275 0.0034 32.3311 +C 47.1529 0.0014 32.3311 +O 47.8323 -0.0015 31.3075 +H 45.2582 0.9008 32.8388 +H 45.2550 -0.8881 32.8436 +H 45.8169 0.0014 30.2202 +N 47.8229 0.0028 33.4916 +C 49.2697 0.0007 33.4916 +C 49.7912 0.0029 34.9251 +O 49.0615 0.0060 35.9134 +H 49.6205 -0.8969 32.9711 +H 49.6240 0.8921 32.9662 +H 47.3507 0.0028 34.3912 +N 51.1108 0.0015 35.1580 +C 51.6054 0.0038 36.5176 +C 53.1308 0.0016 36.5176 +O 53.8102 -0.0018 35.4939 +H 51.2362 0.9015 37.0250 +H 51.2327 -0.8875 37.0303 +H 51.7948 0.0013 34.4066 +N 53.8008 0.0032 37.6780 +C 55.2476 0.0008 37.6780 +C 55.7691 0.0033 39.1115 +O 55.0394 0.0068 40.0999 +H 55.5982 -0.8970 37.1577 +H 55.6020 0.8920 37.1524 +H 53.3286 0.0035 38.5777 +N 57.0887 0.0017 39.3444 +C 57.5833 0.0043 40.7040 +C 59.1087 0.0017 40.7040 +O 59.7880 -0.0020 39.6804 +H 57.2142 0.9021 41.2112 +H 57.2104 -0.8868 41.2169 +H 57.7727 0.0012 38.5931 +N 59.7787 0.0035 41.8645 +C 61.2254 0.0009 41.8645 +C 61.7469 0.0037 43.2980 +O 61.0172 0.0075 44.2863 +H 61.5759 -0.8971 41.3444 +H 61.5800 0.8919 41.3386 +H 59.3064 0.0042 42.7641 +N 63.0665 0.0019 43.5309 +C 63.5611 0.0047 44.8904 +C 65.0865 0.0019 44.8904 +O 65.7659 -0.0022 43.8668 +H 63.1923 0.9028 45.3974 +H 63.1881 -0.8862 45.4036 +H 63.7505 0.0010 42.7795 +N 65.7565 0.0039 46.0509 +C 67.2033 0.0010 46.0509 +C 67.7248 0.0040 47.4844 +O 66.9951 0.0083 48.4728 +H 67.5536 -0.8972 45.5311 +H 67.5581 0.8918 45.5248 +H 65.2843 0.0049 46.9506 +N 69.0444 0.0021 47.7173 +C 69.5390 0.0052 49.0769 +C 71.0644 0.0021 49.0769 +O 71.7438 -0.0024 48.0533 +H 69.1703 0.9034 49.5837 +H 69.1658 -0.8855 49.5903 +H 69.7284 0.0009 46.9660 +N 71.7344 0.0042 50.2374 +C 73.1812 0.0011 50.2374 +C 73.7027 0.0044 51.6709 +O 72.9730 0.0091 52.6592 +H 73.5313 -0.8973 49.7178 +H 73.5361 0.8917 49.7110 +H 71.2622 0.0055 51.1370 +N 75.0223 0.0022 51.9038 +C 75.5169 0.0056 53.2633 +C 77.0423 0.0022 53.2633 +O 77.7216 -0.0026 52.2397 +H 75.1483 0.9041 53.7699 +H 75.1436 -0.8849 53.7770 +H 75.7063 0.0008 51.1524 +N 77.7123 0.0046 54.4238 +C 79.1590 0.0012 54.4238 +C 79.6805 0.0048 55.8573 +O 78.9508 0.0098 56.8457 +H 79.5090 -0.8974 53.9045 +H 79.5141 0.8916 53.8973 +H 77.2400 0.0062 55.3235 +N 81.0001 0.0024 56.0902 +C 81.4947 0.0061 57.4498 +C 83.0201 0.0024 57.4498 +O 83.6995 -0.0028 56.4262 +H 81.1264 0.9047 57.9561 +H 81.1213 -0.8842 57.9636 +H 81.6841 0.0007 55.3389 +N 83.6901 0.0049 58.6103 +C 85.1369 0.0012 58.6103 +C 85.6584 0.0051 60.0438 +O 84.9287 0.0106 61.0321 +H 85.4867 -0.8975 58.0911 +H 85.4921 0.8914 58.0835 +H 83.2179 0.0069 59.5099 +N 86.9780 0.0026 60.2766 +C 87.4726 0.0065 61.6362 +C 88.9980 0.0026 61.6362 +O 89.6774 -0.0030 60.6126 +H 87.1044 0.9054 62.1423 +H 87.0990 -0.8836 62.1503 +H 87.6620 0.0005 59.5253 +N 89.6680 0.0053 62.7967 +C 91.1148 0.0013 62.7967 +C 91.6363 0.0055 64.2302 +O 90.9066 0.0113 65.2186 +H 91.4644 -0.8976 62.2778 +H 91.4702 0.8913 62.2697 +H 89.1958 0.0075 63.6964 +N 92.9559 0.0028 64.4631 +C 93.4505 0.0070 65.8227 +C 94.9759 0.0028 65.8227 +O 95.6552 -0.0033 64.7991 +H 93.0824 0.9060 66.3285 +H 93.0767 -0.8829 66.3370 +H 93.6399 0.0004 63.7118 +N 95.6459 0.0056 66.9831 +C 97.0926 0.0014 66.9832 +C 97.6141 0.0058 68.4166 +O 96.8844 0.0121 69.4050 +H 97.4421 -0.8977 66.4645 +H 97.4482 0.8912 66.4559 +H 95.1737 0.0082 67.8828 +N 98.9337 0.0030 68.6496 +C 99.4283 0.0074 70.0091 +C 100.9537 0.0029 70.0091 +O 101.6331 -0.0035 68.9855 +H 99.0605 0.9067 70.5147 +H 99.0544 -0.8823 70.5237 +H 99.6177 0.0003 67.8982 +N 101.6237 0.0060 71.1696 +C 103.0705 0.0015 71.1696 +C 103.5920 0.0062 72.6031 +O 102.8623 0.0128 73.5915 +H 103.4199 -0.8978 70.6512 +H 103.4262 0.8911 70.6421 +H 101.1515 0.0089 72.0693 +N 104.9116 0.0032 72.8360 +C 105.4062 0.0079 74.1956 +C 106.9316 0.0031 74.1956 +O 107.6109 -0.0037 73.1720 +H 105.0385 0.9073 74.7010 +H 105.0321 -0.8816 74.7103 +H 105.5956 0.0001 72.0846 +N 107.6016 0.0063 75.3560 +C 109.0484 0.0016 75.3560 +C 109.5699 0.0066 76.7895 +O 108.8402 0.0136 77.7779 +H 109.3976 -0.8980 74.8379 +H 109.4043 0.8910 74.8283 +H 107.1294 0.0095 76.2557 +N 110.8895 0.0034 77.0224 +C 111.3841 0.0083 78.3820 +C 112.9095 0.0033 78.3820 +O 113.5888 -0.0039 77.3584 +H 111.0165 0.9080 78.8872 +H 111.0098 -0.8810 78.8970 +H 111.5735 -0.0000 76.2711 +N 113.5795 0.0067 79.5425 +C 115.0262 0.0017 79.5425 +C 115.5477 0.0069 80.9760 +O 114.8180 0.0143 81.9643 +H 115.3753 -0.8981 79.0246 +H 115.3823 0.8909 79.0145 +H 113.1072 0.0102 80.4421 +N 116.8673 0.0036 81.2089 +C 117.3620 0.0088 82.5685 +C 118.8874 0.0034 82.5685 +O 119.5667 -0.0041 81.5449 +H 116.9946 0.9086 83.0734 +H 116.9875 -0.8803 83.0837 +H 117.5513 -0.0001 80.4575 +N 119.5574 0.0070 83.7289 +C 121.0041 0.0018 83.7290 +C 121.5256 0.0073 85.1624 +O 120.7959 0.0151 86.1508 +H 121.3530 -0.8982 83.2112 +H 121.3603 0.8908 83.2008 +H 119.0851 0.0109 84.6286 +N 122.8452 0.0037 85.3953 +C 123.3398 0.0092 86.7549 +C 124.8652 0.0036 86.7549 +O 125.5445 -0.0044 85.7313 +H 122.9726 0.9093 87.2596 +H 122.9652 -0.8797 87.2704 +H 123.5292 -0.0003 84.6440 +N 125.5352 0.0074 87.9154 +C 126.9820 0.0019 87.9154 +C 127.5035 0.0077 89.3489 +O 126.7738 0.0158 90.3372 +H 127.3307 -0.8983 87.3979 +H 127.3383 0.8907 87.3870 +H 125.0630 0.0116 88.8150 +N 128.8231 0.0039 89.5818 +C 129.3177 0.0097 90.9414 +C 130.8431 0.0038 90.9414 +O 131.5224 -0.0046 89.9178 +H 128.9506 0.9099 91.4458 +H 128.9429 -0.8790 91.4570 +H 129.5071 -0.0004 88.8304 +N 131.5131 0.0077 92.1018 +C 132.9598 0.0020 92.1018 +C 133.4813 0.0081 93.5353 +O 132.7516 0.0166 94.5237 +H 133.3084 -0.8984 91.5846 +H 133.3164 0.8906 91.5732 +H 131.0409 0.0122 93.0015 +N 134.8009 0.0041 93.7682 +C 135.2955 0.0101 95.1278 +C 136.8210 0.0040 95.1278 +O 137.5003 -0.0048 94.1042 +H 134.9286 0.9105 95.6320 +H 134.9206 -0.8784 95.6437 +H 135.4849 -0.0005 93.0169 +N 137.4910 0.0081 96.2883 +C 138.9377 0.0021 96.2883 +C 139.4592 0.0084 97.7218 +O 138.7295 0.0173 98.7101 +H 139.2861 -0.8985 95.7713 +H 139.2944 0.8904 95.7594 +H 137.0187 0.0129 97.1879 +N 140.7788 0.0043 97.9547 +C 141.2734 0.0105 99.3142 +C 142.7988 0.0041 99.3143 +O 143.4781 -0.0050 98.2906 +H 140.9067 0.9112 99.8182 +H 140.8983 -0.8777 99.8304 +H 141.4628 -0.0007 97.2033 +N 143.4688 0.0084 100.4747 +C 144.9156 0.0021 100.4747 +C 145.4371 0.0088 101.9082 +O 144.7074 0.0181 102.8966 +H 145.2638 -0.8986 99.9579 +H 145.2724 0.8903 99.9456 +H 142.9966 0.0136 101.3744 +N 146.7567 0.0045 102.1411 +C 147.2513 0.0110 103.5007 +C 148.7767 0.0043 103.5007 +O 149.4560 -0.0052 102.4771 +H 146.8847 0.9118 104.0044 +H 146.8760 -0.8771 104.0171 +H 147.4407 -0.0008 101.3898 +N 149.4467 0.0088 104.6612 +C 150.8934 0.0022 104.6612 +C 151.4149 0.0092 106.0947 +O 150.6853 0.0189 107.0830 +H 151.2415 -0.8987 104.1446 +H 151.2504 0.8902 104.1319 +H 148.9745 0.0142 105.5608 +N 152.7345 0.0047 106.3276 +C 153.2292 0.0115 107.6871 +C 154.7545 0.0045 107.6871 +O 155.4339 -0.0054 106.6636 +H 152.8627 0.9125 108.1907 +H 152.8537 -0.8764 108.2038 +H 153.4185 -0.0009 105.5762 +N 155.4246 0.0091 108.8476 +C 156.8713 0.0023 108.8476 +C 157.3928 0.0095 110.2811 +O 156.6631 0.0196 111.2694 +H 157.2192 -0.8988 108.3313 +H 157.2285 0.8901 108.3181 +H 154.9523 0.0149 109.7473 +N 158.7124 0.0049 110.5140 +C 159.2070 0.0119 111.8736 +C 160.7324 0.0047 111.8736 +O 161.4117 -0.0056 110.8500 +H 158.8408 0.9131 112.3769 +H 158.8315 -0.8758 112.3904 +H 159.3964 -0.0011 109.7627 +N 161.4024 0.0095 113.0341 +C 162.8492 0.0024 113.0341 +C 163.3707 0.0099 114.4676 +O 162.6410 0.0204 115.4559 +H 163.1969 -0.8989 112.5180 +H 163.2065 0.8900 112.5043 +H 160.9302 0.0156 113.9337 +N 164.6903 0.0050 114.7005 +C 165.1849 0.0124 116.0600 +C 166.7103 0.0048 116.0601 +O 167.3896 -0.0059 115.0365 +H 164.8188 0.9138 116.5631 +H 164.8092 -0.8751 116.5771 +H 165.3743 -0.0012 113.9491 +N 167.3803 0.0098 117.2205 +C 168.8270 0.0025 117.2205 +C 169.3485 0.0102 118.6540 +O 168.6189 0.0211 119.6423 +H 169.1746 -0.8990 116.7047 +H 169.1845 0.8899 116.6905 +H 166.9081 0.0162 118.1201 +N 170.6681 0.0052 118.8869 +C 171.1628 0.0128 120.2465 +C 172.6882 0.0050 120.2465 +O 173.3675 -0.0061 119.2229 +H 170.7968 0.9144 120.7493 +H 170.7869 -0.8745 120.7638 +H 171.3521 -0.0013 118.1356 +N 173.3582 0.0102 121.4070 +C 174.8049 0.0026 121.4070 +C 175.3264 0.0106 122.8404 +O 174.5967 0.0219 123.8288 +H 175.1523 -0.8992 120.8914 +H 175.1626 0.8898 120.8767 +H 172.8859 0.0169 122.3066 +N 176.6460 0.0054 123.0734 +C 177.1406 0.0132 124.4329 +C 178.6660 0.0052 124.4330 +O 179.3453 -0.0063 123.4094 +H 176.7749 0.9151 124.9355 +H 176.7646 -0.8738 124.9505 +H 177.3300 -0.0015 122.3220 +O 179.2673 0.0113 125.6427 +H 178.6790 0.0212 126.5292 diff --git a/benchmarks/molecules/gly/gly70.xyz b/benchmarks/molecules/gly/gly70.xyz new file mode 100644 index 00000000..4af76de4 --- /dev/null +++ b/benchmarks/molecules/gly/gly70.xyz @@ -0,0 +1,495 @@ +493 +Frame 1 +N 0.0000 0.0000 0.0000 +C 1.4468 0.0000 0.0000 +C 1.9683 0.0000 1.4335 +O 1.2385 0.0000 2.4219 +H 1.7989 -0.8960 -0.5224 +H 1.7997 0.8930 -0.5236 +H -0.4722 -0.0025 0.8996 +H -0.5080 0.0767 -0.8765 +N 3.2878 -0.0000 1.6664 +C 3.7825 0.0002 3.0260 +C 5.3079 0.0002 3.0260 +O 5.9872 -0.0000 2.0023 +H 3.4120 0.8963 3.5353 +H 3.4111 -0.8927 3.5368 +H 3.9719 0.0024 0.9150 +N 5.9779 0.0003 4.1865 +C 7.4246 0.0001 4.1865 +C 7.9461 0.0004 5.6199 +O 7.2164 0.0008 6.6083 +H 7.7766 -0.8961 3.6643 +H 7.7778 0.8929 3.6627 +H 5.5056 -0.0019 5.0861 +N 9.2657 0.0002 5.8528 +C 9.7603 0.0007 7.2124 +C 11.2857 0.0003 7.2124 +O 11.9651 -0.0002 6.1888 +H 9.3900 0.8970 7.7215 +H 9.3888 -0.8920 7.7235 +H 9.9497 0.0022 5.1015 +N 11.9557 0.0007 8.3729 +C 13.4025 0.0002 8.3729 +C 13.9240 0.0007 9.8064 +O 13.1943 0.0015 10.7948 +H 13.7543 -0.8962 7.8510 +H 13.7558 0.8928 7.8489 +H 11.4835 -0.0012 9.2725 +N 15.2436 0.0004 10.0393 +C 15.7382 0.0011 11.3989 +C 17.2636 0.0005 11.3989 +O 17.9429 -0.0005 10.3752 +H 15.3680 0.8976 11.9077 +H 15.3665 -0.8914 11.9102 +H 15.9276 0.0021 9.2879 +N 17.9336 0.0010 12.5593 +C 19.3804 0.0003 12.5593 +C 19.9018 0.0011 13.9928 +O 19.1721 0.0023 14.9812 +H 19.7320 -0.8963 12.0377 +H 19.7338 0.8927 12.0351 +H 17.4614 -0.0005 13.4590 +N 21.2215 0.0006 14.2257 +C 21.7161 0.0016 15.5853 +C 23.2415 0.0007 15.5853 +O 23.9208 -0.0007 14.5617 +H 21.3461 0.8982 16.0940 +H 21.3442 -0.8907 16.0969 +H 21.9055 0.0020 13.4744 +N 23.9115 0.0014 16.7458 +C 25.3582 0.0004 16.7458 +C 25.8797 0.0015 18.1793 +O 25.1500 0.0030 19.1677 +H 25.7097 -0.8964 16.2243 +H 25.7118 0.8926 16.2213 +H 23.4392 0.0002 17.6454 +N 27.1993 0.0008 18.4122 +C 27.6939 0.0020 19.7718 +C 29.2193 0.0009 19.7718 +O 29.8987 -0.0009 18.7481 +H 27.3241 0.8989 20.2802 +H 27.3219 -0.8901 20.2835 +H 27.8833 0.0018 17.6608 +N 29.8893 0.0018 20.9322 +C 31.3361 0.0004 20.9322 +C 31.8576 0.0018 22.3657 +O 31.1279 0.0038 23.3541 +H 31.6874 -0.8965 20.4110 +H 31.6899 0.8924 20.4075 +H 29.4171 0.0008 21.8319 +N 33.1772 0.0009 22.5986 +C 33.6718 0.0025 23.9582 +C 35.1972 0.0010 23.9582 +O 35.8766 -0.0011 22.9346 +H 33.3021 0.8996 24.4664 +H 33.2996 -0.8894 24.4702 +H 33.8612 0.0017 21.8473 +N 35.8672 0.0021 25.1187 +C 37.3140 0.0005 25.1187 +C 37.8354 0.0022 26.5522 +O 37.1058 0.0045 27.5406 +H 37.6651 -0.8967 24.5977 +H 37.6679 0.8923 24.5937 +H 35.3950 0.0015 26.0183 +N 39.1551 0.0011 26.7851 +C 39.6497 0.0029 28.1446 +C 41.1751 0.0012 28.1447 +O 41.8544 -0.0013 27.1210 +H 39.2802 0.9002 28.6526 +H 39.2773 -0.8888 28.6569 +H 39.8391 0.0016 26.0337 +N 41.8451 0.0025 29.3051 +C 43.2918 0.0006 29.3051 +C 43.8133 0.0026 30.7386 +O 43.0836 0.0053 31.7270 +H 43.6428 -0.8968 28.7844 +H 43.6459 0.8922 28.7799 +H 41.3728 0.0022 30.2048 +N 45.1329 0.0013 30.9715 +C 45.6275 0.0034 32.3311 +C 47.1529 0.0014 32.3311 +O 47.8323 -0.0015 31.3075 +H 45.2582 0.9008 32.8388 +H 45.2550 -0.8881 32.8436 +H 45.8169 0.0014 30.2202 +N 47.8229 0.0028 33.4916 +C 49.2697 0.0007 33.4916 +C 49.7912 0.0029 34.9251 +O 49.0615 0.0060 35.9134 +H 49.6205 -0.8969 32.9711 +H 49.6240 0.8921 32.9662 +H 47.3507 0.0028 34.3912 +N 51.1108 0.0015 35.1580 +C 51.6054 0.0038 36.5176 +C 53.1308 0.0016 36.5176 +O 53.8102 -0.0018 35.4939 +H 51.2362 0.9015 37.0250 +H 51.2327 -0.8875 37.0303 +H 51.7948 0.0013 34.4066 +N 53.8008 0.0032 37.6780 +C 55.2476 0.0008 37.6780 +C 55.7691 0.0033 39.1115 +O 55.0394 0.0068 40.0999 +H 55.5982 -0.8970 37.1577 +H 55.6020 0.8920 37.1524 +H 53.3286 0.0035 38.5777 +N 57.0887 0.0017 39.3444 +C 57.5833 0.0043 40.7040 +C 59.1087 0.0017 40.7040 +O 59.7880 -0.0020 39.6804 +H 57.2142 0.9021 41.2112 +H 57.2104 -0.8868 41.2169 +H 57.7727 0.0012 38.5931 +N 59.7787 0.0035 41.8645 +C 61.2254 0.0009 41.8645 +C 61.7469 0.0037 43.2980 +O 61.0172 0.0075 44.2863 +H 61.5759 -0.8971 41.3444 +H 61.5800 0.8919 41.3386 +H 59.3064 0.0042 42.7641 +N 63.0665 0.0019 43.5309 +C 63.5611 0.0047 44.8904 +C 65.0865 0.0019 44.8904 +O 65.7659 -0.0022 43.8668 +H 63.1923 0.9028 45.3974 +H 63.1881 -0.8862 45.4036 +H 63.7505 0.0010 42.7795 +N 65.7565 0.0039 46.0509 +C 67.2033 0.0010 46.0509 +C 67.7248 0.0040 47.4844 +O 66.9951 0.0083 48.4728 +H 67.5536 -0.8972 45.5311 +H 67.5581 0.8918 45.5248 +H 65.2843 0.0049 46.9506 +N 69.0444 0.0021 47.7173 +C 69.5390 0.0052 49.0769 +C 71.0644 0.0021 49.0769 +O 71.7438 -0.0024 48.0533 +H 69.1703 0.9034 49.5837 +H 69.1658 -0.8855 49.5903 +H 69.7284 0.0009 46.9660 +N 71.7344 0.0042 50.2374 +C 73.1812 0.0011 50.2374 +C 73.7027 0.0044 51.6709 +O 72.9730 0.0091 52.6592 +H 73.5313 -0.8973 49.7178 +H 73.5361 0.8917 49.7110 +H 71.2622 0.0055 51.1370 +N 75.0223 0.0022 51.9038 +C 75.5169 0.0056 53.2633 +C 77.0423 0.0022 53.2633 +O 77.7216 -0.0026 52.2397 +H 75.1483 0.9041 53.7699 +H 75.1436 -0.8849 53.7770 +H 75.7063 0.0008 51.1524 +N 77.7123 0.0046 54.4238 +C 79.1590 0.0012 54.4238 +C 79.6805 0.0048 55.8573 +O 78.9508 0.0098 56.8457 +H 79.5090 -0.8974 53.9045 +H 79.5141 0.8916 53.8973 +H 77.2400 0.0062 55.3235 +N 81.0001 0.0024 56.0902 +C 81.4947 0.0061 57.4498 +C 83.0201 0.0024 57.4498 +O 83.6995 -0.0028 56.4262 +H 81.1264 0.9047 57.9561 +H 81.1213 -0.8842 57.9636 +H 81.6841 0.0007 55.3389 +N 83.6901 0.0049 58.6103 +C 85.1369 0.0012 58.6103 +C 85.6584 0.0051 60.0438 +O 84.9287 0.0106 61.0321 +H 85.4867 -0.8975 58.0911 +H 85.4921 0.8914 58.0835 +H 83.2179 0.0069 59.5099 +N 86.9780 0.0026 60.2766 +C 87.4726 0.0065 61.6362 +C 88.9980 0.0026 61.6362 +O 89.6774 -0.0030 60.6126 +H 87.1044 0.9054 62.1423 +H 87.0990 -0.8836 62.1503 +H 87.6620 0.0005 59.5253 +N 89.6680 0.0053 62.7967 +C 91.1148 0.0013 62.7967 +C 91.6363 0.0055 64.2302 +O 90.9066 0.0113 65.2186 +H 91.4644 -0.8976 62.2778 +H 91.4702 0.8913 62.2697 +H 89.1958 0.0075 63.6964 +N 92.9559 0.0028 64.4631 +C 93.4505 0.0070 65.8227 +C 94.9759 0.0028 65.8227 +O 95.6552 -0.0033 64.7991 +H 93.0824 0.9060 66.3285 +H 93.0767 -0.8829 66.3370 +H 93.6399 0.0004 63.7118 +N 95.6459 0.0056 66.9831 +C 97.0926 0.0014 66.9832 +C 97.6141 0.0058 68.4166 +O 96.8844 0.0121 69.4050 +H 97.4421 -0.8977 66.4645 +H 97.4482 0.8912 66.4559 +H 95.1737 0.0082 67.8828 +N 98.9337 0.0030 68.6496 +C 99.4283 0.0074 70.0091 +C 100.9537 0.0029 70.0091 +O 101.6331 -0.0035 68.9855 +H 99.0605 0.9067 70.5147 +H 99.0544 -0.8823 70.5237 +H 99.6177 0.0003 67.8982 +N 101.6237 0.0060 71.1696 +C 103.0705 0.0015 71.1696 +C 103.5920 0.0062 72.6031 +O 102.8623 0.0128 73.5915 +H 103.4199 -0.8978 70.6512 +H 103.4262 0.8911 70.6421 +H 101.1515 0.0089 72.0693 +N 104.9116 0.0032 72.8360 +C 105.4062 0.0079 74.1956 +C 106.9316 0.0031 74.1956 +O 107.6109 -0.0037 73.1720 +H 105.0385 0.9073 74.7010 +H 105.0321 -0.8816 74.7103 +H 105.5956 0.0001 72.0846 +N 107.6016 0.0063 75.3560 +C 109.0484 0.0016 75.3560 +C 109.5699 0.0066 76.7895 +O 108.8402 0.0136 77.7779 +H 109.3976 -0.8980 74.8379 +H 109.4043 0.8910 74.8283 +H 107.1294 0.0095 76.2557 +N 110.8895 0.0034 77.0224 +C 111.3841 0.0083 78.3820 +C 112.9095 0.0033 78.3820 +O 113.5888 -0.0039 77.3584 +H 111.0165 0.9080 78.8872 +H 111.0098 -0.8810 78.8970 +H 111.5735 -0.0000 76.2711 +N 113.5795 0.0067 79.5425 +C 115.0262 0.0017 79.5425 +C 115.5477 0.0069 80.9760 +O 114.8180 0.0143 81.9643 +H 115.3753 -0.8981 79.0246 +H 115.3823 0.8909 79.0145 +H 113.1072 0.0102 80.4421 +N 116.8673 0.0036 81.2089 +C 117.3620 0.0088 82.5685 +C 118.8874 0.0034 82.5685 +O 119.5667 -0.0041 81.5449 +H 116.9946 0.9086 83.0734 +H 116.9875 -0.8803 83.0837 +H 117.5513 -0.0001 80.4575 +N 119.5574 0.0070 83.7289 +C 121.0041 0.0018 83.7290 +C 121.5256 0.0073 85.1624 +O 120.7959 0.0151 86.1508 +H 121.3530 -0.8982 83.2112 +H 121.3603 0.8908 83.2008 +H 119.0851 0.0109 84.6286 +N 122.8452 0.0037 85.3953 +C 123.3398 0.0092 86.7549 +C 124.8652 0.0036 86.7549 +O 125.5445 -0.0044 85.7313 +H 122.9726 0.9093 87.2596 +H 122.9652 -0.8797 87.2704 +H 123.5292 -0.0003 84.6440 +N 125.5352 0.0074 87.9154 +C 126.9820 0.0019 87.9154 +C 127.5035 0.0077 89.3489 +O 126.7738 0.0158 90.3372 +H 127.3307 -0.8983 87.3979 +H 127.3383 0.8907 87.3870 +H 125.0630 0.0116 88.8150 +N 128.8231 0.0039 89.5818 +C 129.3177 0.0097 90.9414 +C 130.8431 0.0038 90.9414 +O 131.5224 -0.0046 89.9178 +H 128.9506 0.9099 91.4458 +H 128.9429 -0.8790 91.4570 +H 129.5071 -0.0004 88.8304 +N 131.5131 0.0077 92.1018 +C 132.9598 0.0020 92.1018 +C 133.4813 0.0081 93.5353 +O 132.7516 0.0166 94.5237 +H 133.3084 -0.8984 91.5846 +H 133.3164 0.8906 91.5732 +H 131.0409 0.0122 93.0015 +N 134.8009 0.0041 93.7682 +C 135.2955 0.0101 95.1278 +C 136.8210 0.0040 95.1278 +O 137.5003 -0.0048 94.1042 +H 134.9286 0.9105 95.6320 +H 134.9206 -0.8784 95.6437 +H 135.4849 -0.0005 93.0169 +N 137.4910 0.0081 96.2883 +C 138.9377 0.0021 96.2883 +C 139.4592 0.0084 97.7218 +O 138.7295 0.0173 98.7101 +H 139.2861 -0.8985 95.7713 +H 139.2944 0.8904 95.7594 +H 137.0187 0.0129 97.1879 +N 140.7788 0.0043 97.9547 +C 141.2734 0.0105 99.3142 +C 142.7988 0.0041 99.3143 +O 143.4781 -0.0050 98.2906 +H 140.9067 0.9112 99.8182 +H 140.8983 -0.8777 99.8304 +H 141.4628 -0.0007 97.2033 +N 143.4688 0.0084 100.4747 +C 144.9156 0.0021 100.4747 +C 145.4371 0.0088 101.9082 +O 144.7074 0.0181 102.8966 +H 145.2638 -0.8986 99.9579 +H 145.2724 0.8903 99.9456 +H 142.9966 0.0136 101.3744 +N 146.7567 0.0045 102.1411 +C 147.2513 0.0110 103.5007 +C 148.7767 0.0043 103.5007 +O 149.4560 -0.0052 102.4771 +H 146.8847 0.9118 104.0044 +H 146.8760 -0.8771 104.0171 +H 147.4407 -0.0008 101.3898 +N 149.4467 0.0088 104.6612 +C 150.8934 0.0022 104.6612 +C 151.4149 0.0092 106.0947 +O 150.6853 0.0189 107.0830 +H 151.2415 -0.8987 104.1446 +H 151.2504 0.8902 104.1319 +H 148.9745 0.0142 105.5608 +N 152.7345 0.0047 106.3276 +C 153.2292 0.0115 107.6871 +C 154.7545 0.0045 107.6871 +O 155.4339 -0.0054 106.6636 +H 152.8627 0.9125 108.1907 +H 152.8537 -0.8764 108.2038 +H 153.4185 -0.0009 105.5762 +N 155.4246 0.0091 108.8476 +C 156.8713 0.0023 108.8476 +C 157.3928 0.0095 110.2811 +O 156.6631 0.0196 111.2694 +H 157.2192 -0.8988 108.3313 +H 157.2285 0.8901 108.3181 +H 154.9523 0.0149 109.7473 +N 158.7124 0.0049 110.5140 +C 159.2070 0.0119 111.8736 +C 160.7324 0.0047 111.8736 +O 161.4117 -0.0056 110.8500 +H 158.8408 0.9131 112.3769 +H 158.8315 -0.8758 112.3904 +H 159.3964 -0.0011 109.7627 +N 161.4024 0.0095 113.0341 +C 162.8492 0.0024 113.0341 +C 163.3707 0.0099 114.4676 +O 162.6410 0.0204 115.4559 +H 163.1969 -0.8989 112.5180 +H 163.2065 0.8900 112.5043 +H 160.9302 0.0156 113.9337 +N 164.6903 0.0050 114.7005 +C 165.1849 0.0124 116.0600 +C 166.7103 0.0048 116.0601 +O 167.3896 -0.0059 115.0365 +H 164.8188 0.9138 116.5631 +H 164.8092 -0.8751 116.5771 +H 165.3743 -0.0012 113.9491 +N 167.3803 0.0098 117.2205 +C 168.8270 0.0025 117.2205 +C 169.3485 0.0102 118.6540 +O 168.6189 0.0211 119.6423 +H 169.1746 -0.8990 116.7047 +H 169.1845 0.8899 116.6905 +H 166.9081 0.0162 118.1201 +N 170.6681 0.0052 118.8869 +C 171.1628 0.0128 120.2465 +C 172.6882 0.0050 120.2465 +O 173.3675 -0.0061 119.2229 +H 170.7968 0.9144 120.7493 +H 170.7869 -0.8745 120.7638 +H 171.3521 -0.0013 118.1356 +N 173.3582 0.0102 121.4070 +C 174.8049 0.0026 121.4070 +C 175.3264 0.0106 122.8404 +O 174.5967 0.0219 123.8288 +H 175.1523 -0.8992 120.8914 +H 175.1626 0.8898 120.8767 +H 172.8859 0.0169 122.3066 +N 176.6460 0.0054 123.0734 +C 177.1406 0.0132 124.4329 +C 178.6660 0.0052 124.4330 +O 179.3453 -0.0063 123.4094 +H 176.7749 0.9151 124.9355 +H 176.7646 -0.8738 124.9505 +H 177.3300 -0.0015 122.3220 +N 179.3360 0.0105 125.5934 +C 180.7828 0.0027 125.5934 +C 181.3043 0.0110 127.0269 +O 180.5746 0.0226 128.0152 +H 181.1300 -0.8993 125.0780 +H 181.1406 0.8896 125.0630 +H 178.8638 0.0176 126.4930 +N 182.6239 0.0056 127.2598 +C 183.1185 0.0137 128.6194 +C 184.6439 0.0053 128.6194 +O 185.3232 -0.0065 127.5958 +H 182.7529 0.9157 129.1217 +H 182.7423 -0.8732 129.1371 +H 183.3079 -0.0016 126.5085 +N 185.3139 0.0109 129.7798 +C 186.7606 0.0028 129.7799 +C 187.2822 0.0113 131.2133 +O 186.5525 0.0234 132.2017 +H 187.1077 -0.8994 129.2647 +H 187.1186 0.8895 129.2492 +H 184.8417 0.0183 130.6795 +N 188.6017 0.0058 131.4463 +C 189.0964 0.0142 132.8058 +C 190.6217 0.0055 132.8058 +O 191.3011 -0.0067 131.7823 +H 188.7309 0.9164 133.3079 +H 188.7200 -0.8725 133.3238 +H 189.2857 -0.0017 130.6949 +N 191.2918 0.0113 133.9663 +C 192.7385 0.0029 133.9663 +C 193.2600 0.0117 135.3998 +O 192.5303 0.0241 136.3881 +H 193.0854 -0.8995 133.4514 +H 193.0966 0.8894 133.4354 +H 190.8195 0.0189 134.8659 +N 194.5796 0.0060 135.6327 +C 195.0742 0.0146 136.9922 +C 196.5996 0.0057 136.9923 +O 197.2789 -0.0069 135.9687 +H 194.7090 0.9170 137.4941 +H 194.6977 -0.8719 137.5105 +H 195.2636 -0.0019 134.8814 +N 197.2696 0.0116 138.1527 +C 198.7164 0.0029 138.1528 +C 199.2379 0.0121 139.5862 +O 198.5082 0.0249 140.5746 +H 199.0631 -0.8996 137.6381 +H 199.0747 0.8893 137.6216 +H 196.7974 0.0196 139.0524 +N 200.5575 0.0062 139.8192 +C 201.0521 0.0150 141.1787 +C 202.5775 0.0059 141.1787 +O 203.2568 -0.0072 140.1552 +H 200.6870 0.9177 141.6803 +H 200.6754 -0.8712 141.6972 +H 201.2415 -0.0020 139.0678 +N 203.2475 0.0120 142.3392 +C 204.6942 0.0030 142.3392 +C 205.2157 0.0124 143.7727 +O 204.4861 0.0257 144.7610 +H 205.0408 -0.8997 141.8248 +H 205.0527 0.8892 141.8078 +H 202.7753 0.0203 143.2388 +N 206.5353 0.0063 144.0056 +C 207.0300 0.0155 145.3651 +C 208.5553 0.0060 145.3652 +O 209.2347 -0.0074 144.3416 +H 206.6650 0.9183 145.8665 +H 206.6531 -0.8706 145.8838 +H 207.2193 -0.0021 143.2543 +O 209.1567 0.0132 146.5750 +H 208.5684 0.0248 147.4614 diff --git a/benchmarks/molecules/gly/gly80.xyz b/benchmarks/molecules/gly/gly80.xyz new file mode 100644 index 00000000..8bb7b79d --- /dev/null +++ b/benchmarks/molecules/gly/gly80.xyz @@ -0,0 +1,565 @@ +563 +Frame 1 +N 0.0000 0.0000 0.0000 +C 1.4468 0.0000 0.0000 +C 1.9683 0.0000 1.4335 +O 1.2385 0.0000 2.4219 +H 1.7989 -0.8960 -0.5224 +H 1.7997 0.8930 -0.5236 +H -0.4722 -0.0025 0.8996 +H -0.5080 0.0767 -0.8765 +N 3.2878 -0.0000 1.6664 +C 3.7825 0.0002 3.0260 +C 5.3079 0.0002 3.0260 +O 5.9872 -0.0000 2.0023 +H 3.4120 0.8963 3.5353 +H 3.4111 -0.8927 3.5368 +H 3.9719 0.0024 0.9150 +N 5.9779 0.0003 4.1865 +C 7.4246 0.0001 4.1865 +C 7.9461 0.0004 5.6199 +O 7.2164 0.0008 6.6083 +H 7.7766 -0.8961 3.6643 +H 7.7778 0.8929 3.6627 +H 5.5056 -0.0019 5.0861 +N 9.2657 0.0002 5.8528 +C 9.7603 0.0007 7.2124 +C 11.2857 0.0003 7.2124 +O 11.9651 -0.0002 6.1888 +H 9.3900 0.8970 7.7215 +H 9.3888 -0.8920 7.7235 +H 9.9497 0.0022 5.1015 +N 11.9557 0.0007 8.3729 +C 13.4025 0.0002 8.3729 +C 13.9240 0.0007 9.8064 +O 13.1943 0.0015 10.7948 +H 13.7543 -0.8962 7.8510 +H 13.7558 0.8928 7.8489 +H 11.4835 -0.0012 9.2725 +N 15.2436 0.0004 10.0393 +C 15.7382 0.0011 11.3989 +C 17.2636 0.0005 11.3989 +O 17.9429 -0.0005 10.3752 +H 15.3680 0.8976 11.9077 +H 15.3665 -0.8914 11.9102 +H 15.9276 0.0021 9.2879 +N 17.9336 0.0010 12.5593 +C 19.3804 0.0003 12.5593 +C 19.9018 0.0011 13.9928 +O 19.1721 0.0023 14.9812 +H 19.7320 -0.8963 12.0377 +H 19.7338 0.8927 12.0351 +H 17.4614 -0.0005 13.4590 +N 21.2215 0.0006 14.2257 +C 21.7161 0.0016 15.5853 +C 23.2415 0.0007 15.5853 +O 23.9208 -0.0007 14.5617 +H 21.3461 0.8982 16.0940 +H 21.3442 -0.8907 16.0969 +H 21.9055 0.0020 13.4744 +N 23.9115 0.0014 16.7458 +C 25.3582 0.0004 16.7458 +C 25.8797 0.0015 18.1793 +O 25.1500 0.0030 19.1677 +H 25.7097 -0.8964 16.2243 +H 25.7118 0.8926 16.2213 +H 23.4392 0.0002 17.6454 +N 27.1993 0.0008 18.4122 +C 27.6939 0.0020 19.7718 +C 29.2193 0.0009 19.7718 +O 29.8987 -0.0009 18.7481 +H 27.3241 0.8989 20.2802 +H 27.3219 -0.8901 20.2835 +H 27.8833 0.0018 17.6608 +N 29.8893 0.0018 20.9322 +C 31.3361 0.0004 20.9322 +C 31.8576 0.0018 22.3657 +O 31.1279 0.0038 23.3541 +H 31.6874 -0.8965 20.4110 +H 31.6899 0.8924 20.4075 +H 29.4171 0.0008 21.8319 +N 33.1772 0.0009 22.5986 +C 33.6718 0.0025 23.9582 +C 35.1972 0.0010 23.9582 +O 35.8766 -0.0011 22.9346 +H 33.3021 0.8996 24.4664 +H 33.2996 -0.8894 24.4702 +H 33.8612 0.0017 21.8473 +N 35.8672 0.0021 25.1187 +C 37.3140 0.0005 25.1187 +C 37.8354 0.0022 26.5522 +O 37.1058 0.0045 27.5406 +H 37.6651 -0.8967 24.5977 +H 37.6679 0.8923 24.5937 +H 35.3950 0.0015 26.0183 +N 39.1551 0.0011 26.7851 +C 39.6497 0.0029 28.1446 +C 41.1751 0.0012 28.1447 +O 41.8544 -0.0013 27.1210 +H 39.2802 0.9002 28.6526 +H 39.2773 -0.8888 28.6569 +H 39.8391 0.0016 26.0337 +N 41.8451 0.0025 29.3051 +C 43.2918 0.0006 29.3051 +C 43.8133 0.0026 30.7386 +O 43.0836 0.0053 31.7270 +H 43.6428 -0.8968 28.7844 +H 43.6459 0.8922 28.7799 +H 41.3728 0.0022 30.2048 +N 45.1329 0.0013 30.9715 +C 45.6275 0.0034 32.3311 +C 47.1529 0.0014 32.3311 +O 47.8323 -0.0015 31.3075 +H 45.2582 0.9008 32.8388 +H 45.2550 -0.8881 32.8436 +H 45.8169 0.0014 30.2202 +N 47.8229 0.0028 33.4916 +C 49.2697 0.0007 33.4916 +C 49.7912 0.0029 34.9251 +O 49.0615 0.0060 35.9134 +H 49.6205 -0.8969 32.9711 +H 49.6240 0.8921 32.9662 +H 47.3507 0.0028 34.3912 +N 51.1108 0.0015 35.1580 +C 51.6054 0.0038 36.5176 +C 53.1308 0.0016 36.5176 +O 53.8102 -0.0018 35.4939 +H 51.2362 0.9015 37.0250 +H 51.2327 -0.8875 37.0303 +H 51.7948 0.0013 34.4066 +N 53.8008 0.0032 37.6780 +C 55.2476 0.0008 37.6780 +C 55.7691 0.0033 39.1115 +O 55.0394 0.0068 40.0999 +H 55.5982 -0.8970 37.1577 +H 55.6020 0.8920 37.1524 +H 53.3286 0.0035 38.5777 +N 57.0887 0.0017 39.3444 +C 57.5833 0.0043 40.7040 +C 59.1087 0.0017 40.7040 +O 59.7880 -0.0020 39.6804 +H 57.2142 0.9021 41.2112 +H 57.2104 -0.8868 41.2169 +H 57.7727 0.0012 38.5931 +N 59.7787 0.0035 41.8645 +C 61.2254 0.0009 41.8645 +C 61.7469 0.0037 43.2980 +O 61.0172 0.0075 44.2863 +H 61.5759 -0.8971 41.3444 +H 61.5800 0.8919 41.3386 +H 59.3064 0.0042 42.7641 +N 63.0665 0.0019 43.5309 +C 63.5611 0.0047 44.8904 +C 65.0865 0.0019 44.8904 +O 65.7659 -0.0022 43.8668 +H 63.1923 0.9028 45.3974 +H 63.1881 -0.8862 45.4036 +H 63.7505 0.0010 42.7795 +N 65.7565 0.0039 46.0509 +C 67.2033 0.0010 46.0509 +C 67.7248 0.0040 47.4844 +O 66.9951 0.0083 48.4728 +H 67.5536 -0.8972 45.5311 +H 67.5581 0.8918 45.5248 +H 65.2843 0.0049 46.9506 +N 69.0444 0.0021 47.7173 +C 69.5390 0.0052 49.0769 +C 71.0644 0.0021 49.0769 +O 71.7438 -0.0024 48.0533 +H 69.1703 0.9034 49.5837 +H 69.1658 -0.8855 49.5903 +H 69.7284 0.0009 46.9660 +N 71.7344 0.0042 50.2374 +C 73.1812 0.0011 50.2374 +C 73.7027 0.0044 51.6709 +O 72.9730 0.0091 52.6592 +H 73.5313 -0.8973 49.7178 +H 73.5361 0.8917 49.7110 +H 71.2622 0.0055 51.1370 +N 75.0223 0.0022 51.9038 +C 75.5169 0.0056 53.2633 +C 77.0423 0.0022 53.2633 +O 77.7216 -0.0026 52.2397 +H 75.1483 0.9041 53.7699 +H 75.1436 -0.8849 53.7770 +H 75.7063 0.0008 51.1524 +N 77.7123 0.0046 54.4238 +C 79.1590 0.0012 54.4238 +C 79.6805 0.0048 55.8573 +O 78.9508 0.0098 56.8457 +H 79.5090 -0.8974 53.9045 +H 79.5141 0.8916 53.8973 +H 77.2400 0.0062 55.3235 +N 81.0001 0.0024 56.0902 +C 81.4947 0.0061 57.4498 +C 83.0201 0.0024 57.4498 +O 83.6995 -0.0028 56.4262 +H 81.1264 0.9047 57.9561 +H 81.1213 -0.8842 57.9636 +H 81.6841 0.0007 55.3389 +N 83.6901 0.0049 58.6103 +C 85.1369 0.0012 58.6103 +C 85.6584 0.0051 60.0438 +O 84.9287 0.0106 61.0321 +H 85.4867 -0.8975 58.0911 +H 85.4921 0.8914 58.0835 +H 83.2179 0.0069 59.5099 +N 86.9780 0.0026 60.2766 +C 87.4726 0.0065 61.6362 +C 88.9980 0.0026 61.6362 +O 89.6774 -0.0030 60.6126 +H 87.1044 0.9054 62.1423 +H 87.0990 -0.8836 62.1503 +H 87.6620 0.0005 59.5253 +N 89.6680 0.0053 62.7967 +C 91.1148 0.0013 62.7967 +C 91.6363 0.0055 64.2302 +O 90.9066 0.0113 65.2186 +H 91.4644 -0.8976 62.2778 +H 91.4702 0.8913 62.2697 +H 89.1958 0.0075 63.6964 +N 92.9559 0.0028 64.4631 +C 93.4505 0.0070 65.8227 +C 94.9759 0.0028 65.8227 +O 95.6552 -0.0033 64.7991 +H 93.0824 0.9060 66.3285 +H 93.0767 -0.8829 66.3370 +H 93.6399 0.0004 63.7118 +N 95.6459 0.0056 66.9831 +C 97.0926 0.0014 66.9832 +C 97.6141 0.0058 68.4166 +O 96.8844 0.0121 69.4050 +H 97.4421 -0.8977 66.4645 +H 97.4482 0.8912 66.4559 +H 95.1737 0.0082 67.8828 +N 98.9337 0.0030 68.6496 +C 99.4283 0.0074 70.0091 +C 100.9537 0.0029 70.0091 +O 101.6331 -0.0035 68.9855 +H 99.0605 0.9067 70.5147 +H 99.0544 -0.8823 70.5237 +H 99.6177 0.0003 67.8982 +N 101.6237 0.0060 71.1696 +C 103.0705 0.0015 71.1696 +C 103.5920 0.0062 72.6031 +O 102.8623 0.0128 73.5915 +H 103.4199 -0.8978 70.6512 +H 103.4262 0.8911 70.6421 +H 101.1515 0.0089 72.0693 +N 104.9116 0.0032 72.8360 +C 105.4062 0.0079 74.1956 +C 106.9316 0.0031 74.1956 +O 107.6109 -0.0037 73.1720 +H 105.0385 0.9073 74.7010 +H 105.0321 -0.8816 74.7103 +H 105.5956 0.0001 72.0846 +N 107.6016 0.0063 75.3560 +C 109.0484 0.0016 75.3560 +C 109.5699 0.0066 76.7895 +O 108.8402 0.0136 77.7779 +H 109.3976 -0.8980 74.8379 +H 109.4043 0.8910 74.8283 +H 107.1294 0.0095 76.2557 +N 110.8895 0.0034 77.0224 +C 111.3841 0.0083 78.3820 +C 112.9095 0.0033 78.3820 +O 113.5888 -0.0039 77.3584 +H 111.0165 0.9080 78.8872 +H 111.0098 -0.8810 78.8970 +H 111.5735 -0.0000 76.2711 +N 113.5795 0.0067 79.5425 +C 115.0262 0.0017 79.5425 +C 115.5477 0.0069 80.9760 +O 114.8180 0.0143 81.9643 +H 115.3753 -0.8981 79.0246 +H 115.3823 0.8909 79.0145 +H 113.1072 0.0102 80.4421 +N 116.8673 0.0036 81.2089 +C 117.3620 0.0088 82.5685 +C 118.8874 0.0034 82.5685 +O 119.5667 -0.0041 81.5449 +H 116.9946 0.9086 83.0734 +H 116.9875 -0.8803 83.0837 +H 117.5513 -0.0001 80.4575 +N 119.5574 0.0070 83.7289 +C 121.0041 0.0018 83.7290 +C 121.5256 0.0073 85.1624 +O 120.7959 0.0151 86.1508 +H 121.3530 -0.8982 83.2112 +H 121.3603 0.8908 83.2008 +H 119.0851 0.0109 84.6286 +N 122.8452 0.0037 85.3953 +C 123.3398 0.0092 86.7549 +C 124.8652 0.0036 86.7549 +O 125.5445 -0.0044 85.7313 +H 122.9726 0.9093 87.2596 +H 122.9652 -0.8797 87.2704 +H 123.5292 -0.0003 84.6440 +N 125.5352 0.0074 87.9154 +C 126.9820 0.0019 87.9154 +C 127.5035 0.0077 89.3489 +O 126.7738 0.0158 90.3372 +H 127.3307 -0.8983 87.3979 +H 127.3383 0.8907 87.3870 +H 125.0630 0.0116 88.8150 +N 128.8231 0.0039 89.5818 +C 129.3177 0.0097 90.9414 +C 130.8431 0.0038 90.9414 +O 131.5224 -0.0046 89.9178 +H 128.9506 0.9099 91.4458 +H 128.9429 -0.8790 91.4570 +H 129.5071 -0.0004 88.8304 +N 131.5131 0.0077 92.1018 +C 132.9598 0.0020 92.1018 +C 133.4813 0.0081 93.5353 +O 132.7516 0.0166 94.5237 +H 133.3084 -0.8984 91.5846 +H 133.3164 0.8906 91.5732 +H 131.0409 0.0122 93.0015 +N 134.8009 0.0041 93.7682 +C 135.2955 0.0101 95.1278 +C 136.8210 0.0040 95.1278 +O 137.5003 -0.0048 94.1042 +H 134.9286 0.9105 95.6320 +H 134.9206 -0.8784 95.6437 +H 135.4849 -0.0005 93.0169 +N 137.4910 0.0081 96.2883 +C 138.9377 0.0021 96.2883 +C 139.4592 0.0084 97.7218 +O 138.7295 0.0173 98.7101 +H 139.2861 -0.8985 95.7713 +H 139.2944 0.8904 95.7594 +H 137.0187 0.0129 97.1879 +N 140.7788 0.0043 97.9547 +C 141.2734 0.0105 99.3142 +C 142.7988 0.0041 99.3143 +O 143.4781 -0.0050 98.2906 +H 140.9067 0.9112 99.8182 +H 140.8983 -0.8777 99.8304 +H 141.4628 -0.0007 97.2033 +N 143.4688 0.0084 100.4747 +C 144.9156 0.0021 100.4747 +C 145.4371 0.0088 101.9082 +O 144.7074 0.0181 102.8966 +H 145.2638 -0.8986 99.9579 +H 145.2724 0.8903 99.9456 +H 142.9966 0.0136 101.3744 +N 146.7567 0.0045 102.1411 +C 147.2513 0.0110 103.5007 +C 148.7767 0.0043 103.5007 +O 149.4560 -0.0052 102.4771 +H 146.8847 0.9118 104.0044 +H 146.8760 -0.8771 104.0171 +H 147.4407 -0.0008 101.3898 +N 149.4467 0.0088 104.6612 +C 150.8934 0.0022 104.6612 +C 151.4149 0.0092 106.0947 +O 150.6853 0.0189 107.0830 +H 151.2415 -0.8987 104.1446 +H 151.2504 0.8902 104.1319 +H 148.9745 0.0142 105.5608 +N 152.7345 0.0047 106.3276 +C 153.2292 0.0115 107.6871 +C 154.7545 0.0045 107.6871 +O 155.4339 -0.0054 106.6636 +H 152.8627 0.9125 108.1907 +H 152.8537 -0.8764 108.2038 +H 153.4185 -0.0009 105.5762 +N 155.4246 0.0091 108.8476 +C 156.8713 0.0023 108.8476 +C 157.3928 0.0095 110.2811 +O 156.6631 0.0196 111.2694 +H 157.2192 -0.8988 108.3313 +H 157.2285 0.8901 108.3181 +H 154.9523 0.0149 109.7473 +N 158.7124 0.0049 110.5140 +C 159.2070 0.0119 111.8736 +C 160.7324 0.0047 111.8736 +O 161.4117 -0.0056 110.8500 +H 158.8408 0.9131 112.3769 +H 158.8315 -0.8758 112.3904 +H 159.3964 -0.0011 109.7627 +N 161.4024 0.0095 113.0341 +C 162.8492 0.0024 113.0341 +C 163.3707 0.0099 114.4676 +O 162.6410 0.0204 115.4559 +H 163.1969 -0.8989 112.5180 +H 163.2065 0.8900 112.5043 +H 160.9302 0.0156 113.9337 +N 164.6903 0.0050 114.7005 +C 165.1849 0.0124 116.0600 +C 166.7103 0.0048 116.0601 +O 167.3896 -0.0059 115.0365 +H 164.8188 0.9138 116.5631 +H 164.8092 -0.8751 116.5771 +H 165.3743 -0.0012 113.9491 +N 167.3803 0.0098 117.2205 +C 168.8270 0.0025 117.2205 +C 169.3485 0.0102 118.6540 +O 168.6189 0.0211 119.6423 +H 169.1746 -0.8990 116.7047 +H 169.1845 0.8899 116.6905 +H 166.9081 0.0162 118.1201 +N 170.6681 0.0052 118.8869 +C 171.1628 0.0128 120.2465 +C 172.6882 0.0050 120.2465 +O 173.3675 -0.0061 119.2229 +H 170.7968 0.9144 120.7493 +H 170.7869 -0.8745 120.7638 +H 171.3521 -0.0013 118.1356 +N 173.3582 0.0102 121.4070 +C 174.8049 0.0026 121.4070 +C 175.3264 0.0106 122.8404 +O 174.5967 0.0219 123.8288 +H 175.1523 -0.8992 120.8914 +H 175.1626 0.8898 120.8767 +H 172.8859 0.0169 122.3066 +N 176.6460 0.0054 123.0734 +C 177.1406 0.0132 124.4329 +C 178.6660 0.0052 124.4330 +O 179.3453 -0.0063 123.4094 +H 176.7749 0.9151 124.9355 +H 176.7646 -0.8738 124.9505 +H 177.3300 -0.0015 122.3220 +N 179.3360 0.0105 125.5934 +C 180.7828 0.0027 125.5934 +C 181.3043 0.0110 127.0269 +O 180.5746 0.0226 128.0152 +H 181.1300 -0.8993 125.0780 +H 181.1406 0.8896 125.0630 +H 178.8638 0.0176 126.4930 +N 182.6239 0.0056 127.2598 +C 183.1185 0.0137 128.6194 +C 184.6439 0.0053 128.6194 +O 185.3232 -0.0065 127.5958 +H 182.7529 0.9157 129.1217 +H 182.7423 -0.8732 129.1371 +H 183.3079 -0.0016 126.5085 +N 185.3139 0.0109 129.7798 +C 186.7606 0.0028 129.7799 +C 187.2822 0.0113 131.2133 +O 186.5525 0.0234 132.2017 +H 187.1077 -0.8994 129.2647 +H 187.1186 0.8895 129.2492 +H 184.8417 0.0183 130.6795 +N 188.6017 0.0058 131.4463 +C 189.0964 0.0142 132.8058 +C 190.6217 0.0055 132.8058 +O 191.3011 -0.0067 131.7823 +H 188.7309 0.9164 133.3079 +H 188.7200 -0.8725 133.3238 +H 189.2857 -0.0017 130.6949 +N 191.2918 0.0113 133.9663 +C 192.7385 0.0029 133.9663 +C 193.2600 0.0117 135.3998 +O 192.5303 0.0241 136.3881 +H 193.0854 -0.8995 133.4514 +H 193.0966 0.8894 133.4354 +H 190.8195 0.0189 134.8659 +N 194.5796 0.0060 135.6327 +C 195.0742 0.0146 136.9922 +C 196.5996 0.0057 136.9923 +O 197.2789 -0.0069 135.9687 +H 194.7090 0.9170 137.4941 +H 194.6977 -0.8719 137.5105 +H 195.2636 -0.0019 134.8814 +N 197.2696 0.0116 138.1527 +C 198.7164 0.0029 138.1528 +C 199.2379 0.0121 139.5862 +O 198.5082 0.0249 140.5746 +H 199.0631 -0.8996 137.6381 +H 199.0747 0.8893 137.6216 +H 196.7974 0.0196 139.0524 +N 200.5575 0.0062 139.8192 +C 201.0521 0.0150 141.1787 +C 202.5775 0.0059 141.1787 +O 203.2568 -0.0072 140.1552 +H 200.6870 0.9177 141.6803 +H 200.6754 -0.8712 141.6972 +H 201.2415 -0.0020 139.0678 +N 203.2475 0.0120 142.3392 +C 204.6942 0.0030 142.3392 +C 205.2157 0.0124 143.7727 +O 204.4861 0.0257 144.7610 +H 205.0408 -0.8997 141.8248 +H 205.0527 0.8892 141.8078 +H 202.7753 0.0203 143.2388 +N 206.5353 0.0063 144.0056 +C 207.0300 0.0155 145.3651 +C 208.5553 0.0060 145.3652 +O 209.2347 -0.0074 144.3416 +H 206.6650 0.9183 145.8665 +H 206.6531 -0.8706 145.8838 +H 207.2193 -0.0021 143.2543 +N 209.2254 0.0123 146.5256 +C 210.6721 0.0031 146.5257 +C 211.1936 0.0128 147.9591 +O 210.4640 0.0264 148.9474 +H 211.0185 -0.8998 146.0114 +H 211.0307 0.8891 145.9940 +H 208.7531 0.0209 147.4253 +N 212.5132 0.0065 148.1920 +C 213.0078 0.0159 149.5516 +C 214.5332 0.0062 149.5516 +O 215.2125 -0.0076 148.5281 +H 212.6431 0.9190 150.0528 +H 212.6308 -0.8699 150.0705 +H 213.1972 -0.0022 147.4407 +N 215.2032 0.0127 150.7121 +C 216.6500 0.0032 150.7121 +C 217.1715 0.0132 152.1456 +O 216.4418 0.0272 153.1339 +H 216.9962 -0.8999 150.1981 +H 217.0087 0.8890 150.1803 +H 214.7310 0.0216 151.6117 +N 218.4911 0.0067 152.3785 +C 218.9857 0.0164 153.7380 +C 220.5111 0.0064 153.7381 +O 221.1904 -0.0078 152.7145 +H 218.6211 0.9196 154.2390 +H 218.6085 -0.8693 154.2572 +H 219.1750 -0.0024 151.6272 +N 221.1811 0.0130 154.8985 +C 222.6278 0.0033 154.8986 +C 223.1494 0.0135 156.3320 +O 222.4197 0.0279 157.3203 +H 222.9739 -0.9000 154.3848 +H 222.9868 0.8888 154.3665 +H 220.7089 0.0223 155.7981 +N 224.4689 0.0069 156.5650 +C 224.9636 0.0168 157.9245 +C 226.4890 0.0066 157.9245 +O 227.1682 -0.0080 156.9010 +H 224.5991 0.9202 158.4252 +H 224.5862 -0.8686 158.4439 +H 225.1529 -0.0025 155.8136 +N 227.1590 0.0134 159.0850 +C 228.6057 0.0034 159.0850 +C 229.1272 0.0139 160.5185 +O 228.3976 0.0287 161.5068 +H 228.9516 -0.9001 158.5715 +H 228.9648 0.8887 158.5527 +H 226.6868 0.0229 159.9846 +N 230.4468 0.0071 160.7514 +C 230.9415 0.0173 162.1109 +C 232.4668 0.0067 162.1110 +O 233.1461 -0.0082 161.0874 +H 230.5772 0.9209 162.6114 +H 230.5639 -0.8680 162.6305 +H 231.1308 -0.0026 160.0001 +N 233.1368 0.0137 163.2714 +C 234.5836 0.0035 163.2715 +C 235.1051 0.0143 164.7049 +O 234.3754 0.0294 165.6932 +H 234.9293 -0.9002 162.7582 +H 234.9428 0.8886 162.7389 +H 232.6646 0.0236 164.1710 +N 236.4247 0.0073 164.9378 +C 236.9193 0.0177 166.2974 +C 238.4447 0.0069 166.2974 +O 239.1240 -0.0084 165.2739 +H 236.5552 0.9215 166.7976 +H 236.5417 -0.8673 166.8172 +H 237.1086 -0.0028 164.1865 +O 239.0460 0.0151 167.5072 +H 238.4577 0.0283 168.3936 diff --git a/benchmarks/molecules/gly/gly90.xyz b/benchmarks/molecules/gly/gly90.xyz new file mode 100644 index 00000000..eb1b8dc9 --- /dev/null +++ b/benchmarks/molecules/gly/gly90.xyz @@ -0,0 +1,635 @@ +633 +Frame 1 +N 0.0000 0.0000 0.0000 +C 1.4468 0.0000 0.0000 +C 1.9683 0.0000 1.4335 +O 1.2385 0.0000 2.4219 +H 1.7989 -0.8960 -0.5224 +H 1.7997 0.8930 -0.5236 +H -0.4722 -0.0025 0.8996 +H -0.5080 0.0767 -0.8765 +N 3.2878 -0.0000 1.6664 +C 3.7825 0.0002 3.0260 +C 5.3079 0.0002 3.0260 +O 5.9872 -0.0000 2.0023 +H 3.4120 0.8963 3.5353 +H 3.4111 -0.8927 3.5368 +H 3.9719 0.0024 0.9150 +N 5.9779 0.0003 4.1865 +C 7.4246 0.0001 4.1865 +C 7.9461 0.0004 5.6199 +O 7.2164 0.0008 6.6083 +H 7.7766 -0.8961 3.6643 +H 7.7778 0.8929 3.6627 +H 5.5056 -0.0019 5.0861 +N 9.2657 0.0002 5.8528 +C 9.7603 0.0007 7.2124 +C 11.2857 0.0003 7.2124 +O 11.9651 -0.0002 6.1888 +H 9.3900 0.8970 7.7215 +H 9.3888 -0.8920 7.7235 +H 9.9497 0.0022 5.1015 +N 11.9557 0.0007 8.3729 +C 13.4025 0.0002 8.3729 +C 13.9240 0.0007 9.8064 +O 13.1943 0.0015 10.7948 +H 13.7543 -0.8962 7.8510 +H 13.7558 0.8928 7.8489 +H 11.4835 -0.0012 9.2725 +N 15.2436 0.0004 10.0393 +C 15.7382 0.0011 11.3989 +C 17.2636 0.0005 11.3989 +O 17.9429 -0.0005 10.3752 +H 15.3680 0.8976 11.9077 +H 15.3665 -0.8914 11.9102 +H 15.9276 0.0021 9.2879 +N 17.9336 0.0010 12.5593 +C 19.3804 0.0003 12.5593 +C 19.9018 0.0011 13.9928 +O 19.1721 0.0023 14.9812 +H 19.7320 -0.8963 12.0377 +H 19.7338 0.8927 12.0351 +H 17.4614 -0.0005 13.4590 +N 21.2215 0.0006 14.2257 +C 21.7161 0.0016 15.5853 +C 23.2415 0.0007 15.5853 +O 23.9208 -0.0007 14.5617 +H 21.3461 0.8982 16.0940 +H 21.3442 -0.8907 16.0969 +H 21.9055 0.0020 13.4744 +N 23.9115 0.0014 16.7458 +C 25.3582 0.0004 16.7458 +C 25.8797 0.0015 18.1793 +O 25.1500 0.0030 19.1677 +H 25.7097 -0.8964 16.2243 +H 25.7118 0.8926 16.2213 +H 23.4392 0.0002 17.6454 +N 27.1993 0.0008 18.4122 +C 27.6939 0.0020 19.7718 +C 29.2193 0.0009 19.7718 +O 29.8987 -0.0009 18.7481 +H 27.3241 0.8989 20.2802 +H 27.3219 -0.8901 20.2835 +H 27.8833 0.0018 17.6608 +N 29.8893 0.0018 20.9322 +C 31.3361 0.0004 20.9322 +C 31.8576 0.0018 22.3657 +O 31.1279 0.0038 23.3541 +H 31.6874 -0.8965 20.4110 +H 31.6899 0.8924 20.4075 +H 29.4171 0.0008 21.8319 +N 33.1772 0.0009 22.5986 +C 33.6718 0.0025 23.9582 +C 35.1972 0.0010 23.9582 +O 35.8766 -0.0011 22.9346 +H 33.3021 0.8996 24.4664 +H 33.2996 -0.8894 24.4702 +H 33.8612 0.0017 21.8473 +N 35.8672 0.0021 25.1187 +C 37.3140 0.0005 25.1187 +C 37.8354 0.0022 26.5522 +O 37.1058 0.0045 27.5406 +H 37.6651 -0.8967 24.5977 +H 37.6679 0.8923 24.5937 +H 35.3950 0.0015 26.0183 +N 39.1551 0.0011 26.7851 +C 39.6497 0.0029 28.1446 +C 41.1751 0.0012 28.1447 +O 41.8544 -0.0013 27.1210 +H 39.2802 0.9002 28.6526 +H 39.2773 -0.8888 28.6569 +H 39.8391 0.0016 26.0337 +N 41.8451 0.0025 29.3051 +C 43.2918 0.0006 29.3051 +C 43.8133 0.0026 30.7386 +O 43.0836 0.0053 31.7270 +H 43.6428 -0.8968 28.7844 +H 43.6459 0.8922 28.7799 +H 41.3728 0.0022 30.2048 +N 45.1329 0.0013 30.9715 +C 45.6275 0.0034 32.3311 +C 47.1529 0.0014 32.3311 +O 47.8323 -0.0015 31.3075 +H 45.2582 0.9008 32.8388 +H 45.2550 -0.8881 32.8436 +H 45.8169 0.0014 30.2202 +N 47.8229 0.0028 33.4916 +C 49.2697 0.0007 33.4916 +C 49.7912 0.0029 34.9251 +O 49.0615 0.0060 35.9134 +H 49.6205 -0.8969 32.9711 +H 49.6240 0.8921 32.9662 +H 47.3507 0.0028 34.3912 +N 51.1108 0.0015 35.1580 +C 51.6054 0.0038 36.5176 +C 53.1308 0.0016 36.5176 +O 53.8102 -0.0018 35.4939 +H 51.2362 0.9015 37.0250 +H 51.2327 -0.8875 37.0303 +H 51.7948 0.0013 34.4066 +N 53.8008 0.0032 37.6780 +C 55.2476 0.0008 37.6780 +C 55.7691 0.0033 39.1115 +O 55.0394 0.0068 40.0999 +H 55.5982 -0.8970 37.1577 +H 55.6020 0.8920 37.1524 +H 53.3286 0.0035 38.5777 +N 57.0887 0.0017 39.3444 +C 57.5833 0.0043 40.7040 +C 59.1087 0.0017 40.7040 +O 59.7880 -0.0020 39.6804 +H 57.2142 0.9021 41.2112 +H 57.2104 -0.8868 41.2169 +H 57.7727 0.0012 38.5931 +N 59.7787 0.0035 41.8645 +C 61.2254 0.0009 41.8645 +C 61.7469 0.0037 43.2980 +O 61.0172 0.0075 44.2863 +H 61.5759 -0.8971 41.3444 +H 61.5800 0.8919 41.3386 +H 59.3064 0.0042 42.7641 +N 63.0665 0.0019 43.5309 +C 63.5611 0.0047 44.8904 +C 65.0865 0.0019 44.8904 +O 65.7659 -0.0022 43.8668 +H 63.1923 0.9028 45.3974 +H 63.1881 -0.8862 45.4036 +H 63.7505 0.0010 42.7795 +N 65.7565 0.0039 46.0509 +C 67.2033 0.0010 46.0509 +C 67.7248 0.0040 47.4844 +O 66.9951 0.0083 48.4728 +H 67.5536 -0.8972 45.5311 +H 67.5581 0.8918 45.5248 +H 65.2843 0.0049 46.9506 +N 69.0444 0.0021 47.7173 +C 69.5390 0.0052 49.0769 +C 71.0644 0.0021 49.0769 +O 71.7438 -0.0024 48.0533 +H 69.1703 0.9034 49.5837 +H 69.1658 -0.8855 49.5903 +H 69.7284 0.0009 46.9660 +N 71.7344 0.0042 50.2374 +C 73.1812 0.0011 50.2374 +C 73.7027 0.0044 51.6709 +O 72.9730 0.0091 52.6592 +H 73.5313 -0.8973 49.7178 +H 73.5361 0.8917 49.7110 +H 71.2622 0.0055 51.1370 +N 75.0223 0.0022 51.9038 +C 75.5169 0.0056 53.2633 +C 77.0423 0.0022 53.2633 +O 77.7216 -0.0026 52.2397 +H 75.1483 0.9041 53.7699 +H 75.1436 -0.8849 53.7770 +H 75.7063 0.0008 51.1524 +N 77.7123 0.0046 54.4238 +C 79.1590 0.0012 54.4238 +C 79.6805 0.0048 55.8573 +O 78.9508 0.0098 56.8457 +H 79.5090 -0.8974 53.9045 +H 79.5141 0.8916 53.8973 +H 77.2400 0.0062 55.3235 +N 81.0001 0.0024 56.0902 +C 81.4947 0.0061 57.4498 +C 83.0201 0.0024 57.4498 +O 83.6995 -0.0028 56.4262 +H 81.1264 0.9047 57.9561 +H 81.1213 -0.8842 57.9636 +H 81.6841 0.0007 55.3389 +N 83.6901 0.0049 58.6103 +C 85.1369 0.0012 58.6103 +C 85.6584 0.0051 60.0438 +O 84.9287 0.0106 61.0321 +H 85.4867 -0.8975 58.0911 +H 85.4921 0.8914 58.0835 +H 83.2179 0.0069 59.5099 +N 86.9780 0.0026 60.2766 +C 87.4726 0.0065 61.6362 +C 88.9980 0.0026 61.6362 +O 89.6774 -0.0030 60.6126 +H 87.1044 0.9054 62.1423 +H 87.0990 -0.8836 62.1503 +H 87.6620 0.0005 59.5253 +N 89.6680 0.0053 62.7967 +C 91.1148 0.0013 62.7967 +C 91.6363 0.0055 64.2302 +O 90.9066 0.0113 65.2186 +H 91.4644 -0.8976 62.2778 +H 91.4702 0.8913 62.2697 +H 89.1958 0.0075 63.6964 +N 92.9559 0.0028 64.4631 +C 93.4505 0.0070 65.8227 +C 94.9759 0.0028 65.8227 +O 95.6552 -0.0033 64.7991 +H 93.0824 0.9060 66.3285 +H 93.0767 -0.8829 66.3370 +H 93.6399 0.0004 63.7118 +N 95.6459 0.0056 66.9831 +C 97.0926 0.0014 66.9832 +C 97.6141 0.0058 68.4166 +O 96.8844 0.0121 69.4050 +H 97.4421 -0.8977 66.4645 +H 97.4482 0.8912 66.4559 +H 95.1737 0.0082 67.8828 +N 98.9337 0.0030 68.6496 +C 99.4283 0.0074 70.0091 +C 100.9537 0.0029 70.0091 +O 101.6331 -0.0035 68.9855 +H 99.0605 0.9067 70.5147 +H 99.0544 -0.8823 70.5237 +H 99.6177 0.0003 67.8982 +N 101.6237 0.0060 71.1696 +C 103.0705 0.0015 71.1696 +C 103.5920 0.0062 72.6031 +O 102.8623 0.0128 73.5915 +H 103.4199 -0.8978 70.6512 +H 103.4262 0.8911 70.6421 +H 101.1515 0.0089 72.0693 +N 104.9116 0.0032 72.8360 +C 105.4062 0.0079 74.1956 +C 106.9316 0.0031 74.1956 +O 107.6109 -0.0037 73.1720 +H 105.0385 0.9073 74.7010 +H 105.0321 -0.8816 74.7103 +H 105.5956 0.0001 72.0846 +N 107.6016 0.0063 75.3560 +C 109.0484 0.0016 75.3560 +C 109.5699 0.0066 76.7895 +O 108.8402 0.0136 77.7779 +H 109.3976 -0.8980 74.8379 +H 109.4043 0.8910 74.8283 +H 107.1294 0.0095 76.2557 +N 110.8895 0.0034 77.0224 +C 111.3841 0.0083 78.3820 +C 112.9095 0.0033 78.3820 +O 113.5888 -0.0039 77.3584 +H 111.0165 0.9080 78.8872 +H 111.0098 -0.8810 78.8970 +H 111.5735 -0.0000 76.2711 +N 113.5795 0.0067 79.5425 +C 115.0262 0.0017 79.5425 +C 115.5477 0.0069 80.9760 +O 114.8180 0.0143 81.9643 +H 115.3753 -0.8981 79.0246 +H 115.3823 0.8909 79.0145 +H 113.1072 0.0102 80.4421 +N 116.8673 0.0036 81.2089 +C 117.3620 0.0088 82.5685 +C 118.8874 0.0034 82.5685 +O 119.5667 -0.0041 81.5449 +H 116.9946 0.9086 83.0734 +H 116.9875 -0.8803 83.0837 +H 117.5513 -0.0001 80.4575 +N 119.5574 0.0070 83.7289 +C 121.0041 0.0018 83.7290 +C 121.5256 0.0073 85.1624 +O 120.7959 0.0151 86.1508 +H 121.3530 -0.8982 83.2112 +H 121.3603 0.8908 83.2008 +H 119.0851 0.0109 84.6286 +N 122.8452 0.0037 85.3953 +C 123.3398 0.0092 86.7549 +C 124.8652 0.0036 86.7549 +O 125.5445 -0.0044 85.7313 +H 122.9726 0.9093 87.2596 +H 122.9652 -0.8797 87.2704 +H 123.5292 -0.0003 84.6440 +N 125.5352 0.0074 87.9154 +C 126.9820 0.0019 87.9154 +C 127.5035 0.0077 89.3489 +O 126.7738 0.0158 90.3372 +H 127.3307 -0.8983 87.3979 +H 127.3383 0.8907 87.3870 +H 125.0630 0.0116 88.8150 +N 128.8231 0.0039 89.5818 +C 129.3177 0.0097 90.9414 +C 130.8431 0.0038 90.9414 +O 131.5224 -0.0046 89.9178 +H 128.9506 0.9099 91.4458 +H 128.9429 -0.8790 91.4570 +H 129.5071 -0.0004 88.8304 +N 131.5131 0.0077 92.1018 +C 132.9598 0.0020 92.1018 +C 133.4813 0.0081 93.5353 +O 132.7516 0.0166 94.5237 +H 133.3084 -0.8984 91.5846 +H 133.3164 0.8906 91.5732 +H 131.0409 0.0122 93.0015 +N 134.8009 0.0041 93.7682 +C 135.2955 0.0101 95.1278 +C 136.8210 0.0040 95.1278 +O 137.5003 -0.0048 94.1042 +H 134.9286 0.9105 95.6320 +H 134.9206 -0.8784 95.6437 +H 135.4849 -0.0005 93.0169 +N 137.4910 0.0081 96.2883 +C 138.9377 0.0021 96.2883 +C 139.4592 0.0084 97.7218 +O 138.7295 0.0173 98.7101 +H 139.2861 -0.8985 95.7713 +H 139.2944 0.8904 95.7594 +H 137.0187 0.0129 97.1879 +N 140.7788 0.0043 97.9547 +C 141.2734 0.0105 99.3142 +C 142.7988 0.0041 99.3143 +O 143.4781 -0.0050 98.2906 +H 140.9067 0.9112 99.8182 +H 140.8983 -0.8777 99.8304 +H 141.4628 -0.0007 97.2033 +N 143.4688 0.0084 100.4747 +C 144.9156 0.0021 100.4747 +C 145.4371 0.0088 101.9082 +O 144.7074 0.0181 102.8966 +H 145.2638 -0.8986 99.9579 +H 145.2724 0.8903 99.9456 +H 142.9966 0.0136 101.3744 +N 146.7567 0.0045 102.1411 +C 147.2513 0.0110 103.5007 +C 148.7767 0.0043 103.5007 +O 149.4560 -0.0052 102.4771 +H 146.8847 0.9118 104.0044 +H 146.8760 -0.8771 104.0171 +H 147.4407 -0.0008 101.3898 +N 149.4467 0.0088 104.6612 +C 150.8934 0.0022 104.6612 +C 151.4149 0.0092 106.0947 +O 150.6853 0.0189 107.0830 +H 151.2415 -0.8987 104.1446 +H 151.2504 0.8902 104.1319 +H 148.9745 0.0142 105.5608 +N 152.7345 0.0047 106.3276 +C 153.2292 0.0115 107.6871 +C 154.7545 0.0045 107.6871 +O 155.4339 -0.0054 106.6636 +H 152.8627 0.9125 108.1907 +H 152.8537 -0.8764 108.2038 +H 153.4185 -0.0009 105.5762 +N 155.4246 0.0091 108.8476 +C 156.8713 0.0023 108.8476 +C 157.3928 0.0095 110.2811 +O 156.6631 0.0196 111.2694 +H 157.2192 -0.8988 108.3313 +H 157.2285 0.8901 108.3181 +H 154.9523 0.0149 109.7473 +N 158.7124 0.0049 110.5140 +C 159.2070 0.0119 111.8736 +C 160.7324 0.0047 111.8736 +O 161.4117 -0.0056 110.8500 +H 158.8408 0.9131 112.3769 +H 158.8315 -0.8758 112.3904 +H 159.3964 -0.0011 109.7627 +N 161.4024 0.0095 113.0341 +C 162.8492 0.0024 113.0341 +C 163.3707 0.0099 114.4676 +O 162.6410 0.0204 115.4559 +H 163.1969 -0.8989 112.5180 +H 163.2065 0.8900 112.5043 +H 160.9302 0.0156 113.9337 +N 164.6903 0.0050 114.7005 +C 165.1849 0.0124 116.0600 +C 166.7103 0.0048 116.0601 +O 167.3896 -0.0059 115.0365 +H 164.8188 0.9138 116.5631 +H 164.8092 -0.8751 116.5771 +H 165.3743 -0.0012 113.9491 +N 167.3803 0.0098 117.2205 +C 168.8270 0.0025 117.2205 +C 169.3485 0.0102 118.6540 +O 168.6189 0.0211 119.6423 +H 169.1746 -0.8990 116.7047 +H 169.1845 0.8899 116.6905 +H 166.9081 0.0162 118.1201 +N 170.6681 0.0052 118.8869 +C 171.1628 0.0128 120.2465 +C 172.6882 0.0050 120.2465 +O 173.3675 -0.0061 119.2229 +H 170.7968 0.9144 120.7493 +H 170.7869 -0.8745 120.7638 +H 171.3521 -0.0013 118.1356 +N 173.3582 0.0102 121.4070 +C 174.8049 0.0026 121.4070 +C 175.3264 0.0106 122.8404 +O 174.5967 0.0219 123.8288 +H 175.1523 -0.8992 120.8914 +H 175.1626 0.8898 120.8767 +H 172.8859 0.0169 122.3066 +N 176.6460 0.0054 123.0734 +C 177.1406 0.0132 124.4329 +C 178.6660 0.0052 124.4330 +O 179.3453 -0.0063 123.4094 +H 176.7749 0.9151 124.9355 +H 176.7646 -0.8738 124.9505 +H 177.3300 -0.0015 122.3220 +N 179.3360 0.0105 125.5934 +C 180.7828 0.0027 125.5934 +C 181.3043 0.0110 127.0269 +O 180.5746 0.0226 128.0152 +H 181.1300 -0.8993 125.0780 +H 181.1406 0.8896 125.0630 +H 178.8638 0.0176 126.4930 +N 182.6239 0.0056 127.2598 +C 183.1185 0.0137 128.6194 +C 184.6439 0.0053 128.6194 +O 185.3232 -0.0065 127.5958 +H 182.7529 0.9157 129.1217 +H 182.7423 -0.8732 129.1371 +H 183.3079 -0.0016 126.5085 +N 185.3139 0.0109 129.7798 +C 186.7606 0.0028 129.7799 +C 187.2822 0.0113 131.2133 +O 186.5525 0.0234 132.2017 +H 187.1077 -0.8994 129.2647 +H 187.1186 0.8895 129.2492 +H 184.8417 0.0183 130.6795 +N 188.6017 0.0058 131.4463 +C 189.0964 0.0142 132.8058 +C 190.6217 0.0055 132.8058 +O 191.3011 -0.0067 131.7823 +H 188.7309 0.9164 133.3079 +H 188.7200 -0.8725 133.3238 +H 189.2857 -0.0017 130.6949 +N 191.2918 0.0113 133.9663 +C 192.7385 0.0029 133.9663 +C 193.2600 0.0117 135.3998 +O 192.5303 0.0241 136.3881 +H 193.0854 -0.8995 133.4514 +H 193.0966 0.8894 133.4354 +H 190.8195 0.0189 134.8659 +N 194.5796 0.0060 135.6327 +C 195.0742 0.0146 136.9922 +C 196.5996 0.0057 136.9923 +O 197.2789 -0.0069 135.9687 +H 194.7090 0.9170 137.4941 +H 194.6977 -0.8719 137.5105 +H 195.2636 -0.0019 134.8814 +N 197.2696 0.0116 138.1527 +C 198.7164 0.0029 138.1528 +C 199.2379 0.0121 139.5862 +O 198.5082 0.0249 140.5746 +H 199.0631 -0.8996 137.6381 +H 199.0747 0.8893 137.6216 +H 196.7974 0.0196 139.0524 +N 200.5575 0.0062 139.8192 +C 201.0521 0.0150 141.1787 +C 202.5775 0.0059 141.1787 +O 203.2568 -0.0072 140.1552 +H 200.6870 0.9177 141.6803 +H 200.6754 -0.8712 141.6972 +H 201.2415 -0.0020 139.0678 +N 203.2475 0.0120 142.3392 +C 204.6942 0.0030 142.3392 +C 205.2157 0.0124 143.7727 +O 204.4861 0.0257 144.7610 +H 205.0408 -0.8997 141.8248 +H 205.0527 0.8892 141.8078 +H 202.7753 0.0203 143.2388 +N 206.5353 0.0063 144.0056 +C 207.0300 0.0155 145.3651 +C 208.5553 0.0060 145.3652 +O 209.2347 -0.0074 144.3416 +H 206.6650 0.9183 145.8665 +H 206.6531 -0.8706 145.8838 +H 207.2193 -0.0021 143.2543 +N 209.2254 0.0123 146.5256 +C 210.6721 0.0031 146.5257 +C 211.1936 0.0128 147.9591 +O 210.4640 0.0264 148.9474 +H 211.0185 -0.8998 146.0114 +H 211.0307 0.8891 145.9940 +H 208.7531 0.0209 147.4253 +N 212.5132 0.0065 148.1920 +C 213.0078 0.0159 149.5516 +C 214.5332 0.0062 149.5516 +O 215.2125 -0.0076 148.5281 +H 212.6431 0.9190 150.0528 +H 212.6308 -0.8699 150.0705 +H 213.1972 -0.0022 147.4407 +N 215.2032 0.0127 150.7121 +C 216.6500 0.0032 150.7121 +C 217.1715 0.0132 152.1456 +O 216.4418 0.0272 153.1339 +H 216.9962 -0.8999 150.1981 +H 217.0087 0.8890 150.1803 +H 214.7310 0.0216 151.6117 +N 218.4911 0.0067 152.3785 +C 218.9857 0.0164 153.7380 +C 220.5111 0.0064 153.7381 +O 221.1904 -0.0078 152.7145 +H 218.6211 0.9196 154.2390 +H 218.6085 -0.8693 154.2572 +H 219.1750 -0.0024 151.6272 +N 221.1811 0.0130 154.8985 +C 222.6278 0.0033 154.8986 +C 223.1494 0.0135 156.3320 +O 222.4197 0.0279 157.3203 +H 222.9739 -0.9000 154.3848 +H 222.9868 0.8888 154.3665 +H 220.7089 0.0223 155.7981 +N 224.4689 0.0069 156.5650 +C 224.9636 0.0168 157.9245 +C 226.4890 0.0066 157.9245 +O 227.1682 -0.0080 156.9010 +H 224.5991 0.9202 158.4252 +H 224.5862 -0.8686 158.4439 +H 225.1529 -0.0025 155.8136 +N 227.1590 0.0134 159.0850 +C 228.6057 0.0034 159.0850 +C 229.1272 0.0139 160.5185 +O 228.3976 0.0287 161.5068 +H 228.9516 -0.9001 158.5715 +H 228.9648 0.8887 158.5527 +H 226.6868 0.0229 159.9846 +N 230.4468 0.0071 160.7514 +C 230.9415 0.0173 162.1109 +C 232.4668 0.0067 162.1110 +O 233.1461 -0.0082 161.0874 +H 230.5772 0.9209 162.6114 +H 230.5639 -0.8680 162.6305 +H 231.1308 -0.0026 160.0001 +N 233.1368 0.0137 163.2714 +C 234.5836 0.0035 163.2715 +C 235.1051 0.0143 164.7049 +O 234.3754 0.0294 165.6932 +H 234.9293 -0.9002 162.7582 +H 234.9428 0.8886 162.7389 +H 232.6646 0.0236 164.1710 +N 236.4247 0.0073 164.9378 +C 236.9193 0.0177 166.2974 +C 238.4447 0.0069 166.2974 +O 239.1240 -0.0084 165.2739 +H 236.5552 0.9215 166.7976 +H 236.5417 -0.8673 166.8172 +H 237.1086 -0.0028 164.1865 +N 239.1147 0.0141 167.4579 +C 240.5614 0.0036 167.4579 +C 241.0830 0.0146 168.8914 +O 240.3533 0.0302 169.8796 +H 240.9070 -0.9003 166.9449 +H 240.9209 0.8885 166.9251 +H 238.6425 0.0243 168.3575 +N 242.4025 0.0075 169.1243 +C 242.8972 0.0182 170.4838 +C 244.4225 0.0071 170.4839 +O 245.1019 -0.0087 169.4603 +H 242.5332 0.9222 170.9838 +H 242.5194 -0.8667 171.0039 +H 243.0865 -0.0029 168.3730 +N 245.0926 0.0144 171.6443 +C 246.5393 0.0037 171.6444 +C 247.0608 0.0150 173.0778 +O 246.3312 0.0309 174.0661 +H 246.8847 -0.9004 171.1315 +H 246.8989 0.8884 171.1114 +H 244.6204 0.0250 172.5439 +N 248.3804 0.0077 173.3107 +C 248.8750 0.0186 174.6703 +C 250.4004 0.0072 174.6703 +O 251.0797 -0.0089 173.6468 +H 248.5113 0.9228 175.1700 +H 248.4971 -0.8660 175.1906 +H 249.0644 -0.0030 172.5594 +N 251.0704 0.0148 175.8307 +C 252.5172 0.0037 175.8308 +C 253.0387 0.0154 177.2643 +O 252.3091 0.0317 178.2525 +H 252.8624 -0.9005 175.3182 +H 252.8769 0.8883 175.2976 +H 250.5982 0.0256 176.7304 +N 254.3583 0.0078 177.4972 +C 254.8529 0.0191 178.8567 +C 256.3783 0.0074 178.8568 +O 257.0576 -0.0091 177.8332 +H 254.4893 0.9235 179.3562 +H 254.4748 -0.8654 179.3772 +H 255.0422 -0.0032 176.7459 +N 257.0483 0.0151 180.0172 +C 258.4950 0.0038 180.0173 +C 259.0166 0.0157 181.4507 +O 258.2869 0.0324 182.4390 +H 258.8401 -0.9007 179.5049 +H 258.8549 0.8882 179.4838 +H 256.5761 0.0263 180.9168 +N 260.3362 0.0080 181.6836 +C 260.8308 0.0195 183.0432 +C 262.3561 0.0076 183.0432 +O 263.0354 -0.0093 182.0197 +H 260.4673 0.9241 183.5424 +H 260.4525 -0.8647 183.5639 +H 261.0201 -0.0033 180.9323 +N 263.0262 0.0155 184.2036 +C 264.4729 0.0039 184.2037 +C 264.9944 0.0161 185.6371 +O 264.2648 0.0332 186.6254 +H 264.8178 -0.9007 183.6916 +H 264.8329 0.8881 183.6700 +H 262.5540 0.0270 185.1033 +N 266.3140 0.0082 185.8701 +C 266.8087 0.0200 187.2296 +C 268.3340 0.0078 187.2297 +O 269.0133 -0.0095 186.2061 +H 266.4454 0.9247 187.7287 +H 266.4302 -0.8640 187.7506 +H 266.9980 -0.0034 185.1188 +O 268.9354 0.0169 188.4394 +H 268.3471 0.0319 189.3259 diff --git a/benchmarks/molecules/organic/020_Vitamin_C.xyz b/benchmarks/molecules/organic/020_Vitamin_C.xyz new file mode 100644 index 00000000..e119c6d3 --- /dev/null +++ b/benchmarks/molecules/organic/020_Vitamin_C.xyz @@ -0,0 +1,22 @@ +20 +Vitamin C +C -0.07551087 1.68127663 -0.10745193 +O 1.33621755 1.87147409 -0.39326987 +C 1.67074668 2.95729545 0.49387976 +C 0.41740763 3.77281969 0.78495878 +C -0.60481480 3.07572636 0.28906224 +H -0.19316298 1.01922455 0.72486113 +O 0.35092043 5.03413298 1.45545728 +H 0.42961487 5.74279041 0.81264173 +O -1.95331750 3.53349874 0.15912025 +H -2.55333895 2.78846397 0.23972698 +O 2.81976302 3.20110148 0.94542226 +C -0.81772499 1.09230218 -1.32146482 +H -0.70955636 1.74951833 -2.15888136 +C -2.31163857 0.93420736 -0.98260166 +H -2.72575463 1.89080093 -0.74107186 +H -2.41980721 0.27699120 -0.14518512 +O -0.26428017 -0.18613595 -1.64425697 +H -0.72695910 -0.55328886 -2.40104423 +O -3.00083741 0.38730252 -2.10989934 +H -3.93210821 0.28874990 -1.89865997 diff --git a/benchmarks/molecules/organic/031_Inosine.xyz b/benchmarks/molecules/organic/031_Inosine.xyz new file mode 100644 index 00000000..923dc7d5 --- /dev/null +++ b/benchmarks/molecules/organic/031_Inosine.xyz @@ -0,0 +1,33 @@ +31 +Inosine +C -0.84925689 1.19426748 0.00000000 +O 0.58111411 1.19426748 0.00000000 +C 1.08310511 2.53365748 0.00000000 +C -0.09344989 3.50382448 -0.00000100 +C -1.34480089 2.63646648 -0.00000100 +H -1.17341789 0.63528848 0.91513200 +H 1.71994411 2.64115648 0.91536000 +H -0.06206089 4.16301548 -0.90190500 +H -1.97307989 2.83841948 -0.90190500 +O -0.05328805 4.34730633 1.15404640 +H -0.02922706 5.26656976 0.87840928 +O -2.14872719 2.89488055 1.15404608 +H -3.07612353 2.89074011 0.90601607 +C -1.29487091 0.42585647 -1.25800344 +H -2.36057357 0.33005726 -1.25860833 +H -0.98433839 0.96058082 -2.13123848 +O -0.69940910 -0.87426857 -1.25830689 +H -1.15722348 -1.43626839 -1.88772107 +N 1.95854804 2.68143304 -1.25831716 +C 3.40750745 2.83869936 -1.24831720 +C 1.52513756 2.69033382 -2.59758791 +C 3.83177447 2.94266783 -2.62652798 +H 0.49017157 2.59129990 -2.92355570 +C 5.16750068 3.10114669 -2.93617186 +C 5.68858554 3.05790761 -0.55874621 +H 6.43570855 3.10532282 0.24755786 +N 2.63327508 2.84671184 -3.45064980 +N 4.33322006 2.89644875 -0.22604840 +N 6.09645965 3.15797838 -1.88374496 +H 6.74393404 2.41331683 -2.04578224 +O 5.60770510 3.20620138 -4.29266866 diff --git a/benchmarks/molecules/organic/033_Bisphenol_A.xyz b/benchmarks/molecules/organic/033_Bisphenol_A.xyz new file mode 100644 index 00000000..451e0708 --- /dev/null +++ b/benchmarks/molecules/organic/033_Bisphenol_A.xyz @@ -0,0 +1,35 @@ +33 +Bisphenol A +C 0.17302217 -0.05367870 0.02060230 +C 0.68636442 0.67471439 1.27659722 +H 0.33130807 1.68408369 1.27366248 +H 0.32809533 0.17314097 2.15122134 +H 1.75636261 0.67300961 1.27757926 +C 0.68636436 0.66983803 -1.23820799 +H 1.75636429 0.67015162 -1.23801986 +H 0.32999896 0.16352848 -2.11087880 +H 0.32940246 1.67853700 -1.24035286 +C -1.36697783 -0.05365972 0.02060230 +C -2.06451416 -1.26192666 0.02294888 +C -2.06446856 1.15425163 0.01836764 +C -3.45922608 -1.26218837 0.02237872 +H -1.51433285 -2.21405130 0.02393307 +C -3.45960644 1.15416501 0.01879292 +H -1.51485954 2.10664659 0.01669790 +C -4.15704263 -0.05377385 0.02065983 +H -4.00910069 -2.21451865 0.02359421 +H -4.00927970 2.10670462 0.01744603 +C 0.68633788 -1.50560812 0.02341767 +C 0.91946288 -2.16536088 -1.18358293 +C 0.91831096 -2.16106624 1.23259561 +C 1.38381298 -3.48050177 -1.18131091 +H 0.73574920 -1.64859280 -2.13670508 +C 1.38374179 -3.47627650 1.23504147 +H 0.73479448 -1.64116737 2.18399242 +C 1.61638160 -4.13609396 0.02836974 +H 1.56698980 -4.00080229 -2.13264163 +H 1.56694472 -3.99268549 2.18857840 +O 2.09255288 -5.48448444 0.03037417 +H 3.05255142 -5.48531759 0.03182891 +O -5.58704242 -0.05436711 0.02015267 +H -5.90797050 0.43788494 0.77929237 diff --git a/benchmarks/molecules/organic/037_Mg_Porphin.xyz b/benchmarks/molecules/organic/037_Mg_Porphin.xyz new file mode 100644 index 00000000..5b3303d0 --- /dev/null +++ b/benchmarks/molecules/organic/037_Mg_Porphin.xyz @@ -0,0 +1,39 @@ +37 +Mg Porphin +C -1.41478807 -1.38673987 -0.27546855 +C 0.10179343 -1.53458053 -0.07889229 +C 0.53408642 -0.37025944 0.45145190 +C -0.67562941 0.57796327 0.46559768 +H 0.69507620 -2.39648436 -0.30089545 +H 1.52737697 -0.14599081 0.78086417 +C -0.62370820 1.96362793 0.78635139 +H 0.21323483 2.35384028 1.32735933 +C -2.29970743 -2.44324831 -0.63702830 +H -1.91393373 -3.32969289 -1.09683478 +C -1.64052102 2.84486117 0.32186518 +C -3.52932141 3.58449372 -0.59511281 +C -2.59214132 4.79754521 -0.48499553 +H -2.78843501 5.79301664 -0.82737225 +C -1.48137242 4.36442701 0.14972837 +N -2.86612663 2.50908907 -0.12553285 +N -1.74741954 -0.12018577 0.04126910 +H -0.64679525 4.95921480 0.45645615 +C -3.68393396 -2.35600549 -0.31223368 +C -4.63005393 -3.55629325 -0.15598101 +N -4.37818634 -1.24301980 -0.00220836 +C -5.78557755 -3.06857539 0.34505536 +H -4.41027665 -4.57910031 -0.38223928 +C -5.63589939 -1.53901637 0.37901842 +H -6.64304239 -3.63441062 0.64304078 +C -6.68305631 -0.62113443 0.67405446 +H -7.56136499 -0.96043354 1.18328735 +C -6.60122370 0.72696467 0.22471451 +C -7.80292122 1.66378985 0.02269080 +N -5.49689043 1.38542695 -0.17958107 +C -7.32644297 2.77323824 -0.58189005 +H -8.81986259 1.46790799 0.29231039 +C -5.79921052 2.61414176 -0.64211669 +H -7.89795710 3.60669127 -0.93279659 +C -4.88433877 3.63473378 -1.03220086 +H -5.22991618 4.47158073 -1.60163868 +Mg -3.62049120 0.63120563 -0.10251958 diff --git a/benchmarks/molecules/organic/042_Penicillin_V.xyz b/benchmarks/molecules/organic/042_Penicillin_V.xyz new file mode 100644 index 00000000..7861c57c --- /dev/null +++ b/benchmarks/molecules/organic/042_Penicillin_V.xyz @@ -0,0 +1,44 @@ +42 +Penicillin V +C -0.77452336 -0.08132633 1.74172506 +C -0.26411504 -0.11129929 0.43692360 +C -0.35397350 1.02601929 -0.37692764 +C -0.95424489 2.19330919 0.11402082 +C -1.46465579 2.22328125 1.41882131 +C -1.37479443 1.08596370 2.23267366 +H -0.70591476 -0.94969444 2.36311840 +H 0.03573621 1.00313485 -1.37317189 +H -1.02285582 3.06167644 -0.50737346 +H -1.92297618 3.11453305 1.79367143 +H -1.76450608 1.10884747 3.22891718 +O 0.34840202 -1.30241314 -0.06404605 +C 1.35270587 -0.95567870 -1.02115052 +H 2.09459791 -0.34266532 -0.55348523 +H 0.90396901 -0.41799437 -1.83011950 +C 2.01233961 -2.23841673 -1.56065630 +O 2.09302887 -3.25968240 -0.82985109 +N 2.54773286 -2.26985691 -2.92932924 +H 3.50527213 -1.98172537 -2.91939174 +C 2.45289144 -3.63693794 -3.46130165 +C 3.06213638 -3.98156820 -4.81429695 +C 3.20775770 -4.83278916 -2.92168779 +H 1.41330079 -3.88850264 -3.43186598 +H 2.21258260 -3.95040754 -5.46405646 +O 3.42944279 -5.30612203 -1.77696850 +N 3.67522246 -5.14821806 -4.31096996 +C 3.66579173 -6.10484804 -5.36714016 +H 4.49655524 -6.75828572 -5.20055325 +C 3.84517881 -5.06783193 -6.57540908 +C 4.72191908 -5.64179240 -7.70390186 +H 4.27386857 -6.53609107 -8.08387642 +H 4.80563701 -4.92235784 -8.49149645 +H 5.69541534 -5.86571901 -7.32041536 +C 2.45462245 -4.72770184 -7.14309246 +H 2.00895589 -5.61186346 -7.54872716 +H 1.83452668 -4.34238508 -6.36084427 +H 2.55421902 -3.99253283 -7.91413529 +S 4.42031248 -3.49330876 -5.80985222 +C 2.41628932 -6.97906376 -5.58182741 +O 1.24772273 -6.54739905 -5.20566321 +O 2.52902641 -8.14944067 -6.13940253 +H 3.39110571 -8.46788950 -6.41690875 diff --git a/benchmarks/molecules/organic/045_Ochratoxin_A.xyz b/benchmarks/molecules/organic/045_Ochratoxin_A.xyz new file mode 100644 index 00000000..21f65e21 --- /dev/null +++ b/benchmarks/molecules/organic/045_Ochratoxin_A.xyz @@ -0,0 +1,47 @@ +45 +Ochratoxin A +C -2.81999319 2.42808848 0.54098799 +C -1.48506359 2.12574154 0.24053959 +C -0.57560888 3.15808633 -0.02458108 +C -1.00054575 4.49301108 0.01119766 +C -2.33541234 4.79564647 0.31151005 +C -3.24524285 3.76302115 0.57613058 +H -3.51427777 1.63974701 0.74369099 +H 0.44352769 2.92714554 -0.25417935 +H -0.30609255 5.28106112 -0.19052950 +H -2.66014056 5.81490526 0.33906034 +H -4.26458005 3.99396043 0.80476437 +C -1.01732442 0.65950815 0.20185290 +H -0.67533111 0.36853591 1.17285734 +H -1.83249438 0.03203052 -0.09154374 +C 0.13235379 0.51505962 -0.81252046 +H -0.21019462 0.80566498 -1.78314105 +C 1.30596367 1.41901641 -0.39114863 +C 1.67510534 -1.02185697 -1.82127087 +N 0.57986576 -0.88420978 -0.85050744 +H -0.18284568 -1.47067933 -1.12333537 +C 2.75580261 -2.09988547 -1.61482923 +C 2.69427195 -2.95177434 -0.50654721 +C 3.79955020 -2.23324053 -2.53790490 +C 3.70091458 -3.90483765 -0.30182990 +H 1.88147807 -2.87383893 0.18522781 +C 4.78600353 -3.21184574 -2.34716707 +H 3.84167861 -1.59151423 -3.39308111 +C 4.77253365 -4.00413187 -1.20130033 +C 5.85248621 -3.42589670 -3.42542028 +C 5.90561132 -5.00024671 -0.90103115 +C 6.77658910 -5.27533663 -2.15038566 +H 6.54653968 -4.59705454 -0.14509272 +O 2.17311788 1.97320056 -1.38357913 +H 2.51483540 2.81560975 -1.07582854 +O 1.50162390 1.66968264 0.82605442 +O 1.72973935 -0.25904981 -2.82056879 +C 7.73469993 -6.47923452 -2.09043925 +H 7.25757496 -7.33559502 -2.51759025 +H 8.62396559 -6.25453714 -2.64131193 +H 7.98803284 -6.68347394 -1.07133620 +Cl 3.62524241 -4.97417462 1.09396391 +O 5.79027817 -2.75121797 -4.48594121 +O 6.90897033 -4.37928239 -3.27178983 +H 5.46196268 -5.90980388 -0.55344219 +H 7.47765424 -4.60305065 -1.70382804 diff --git a/benchmarks/molecules/organic/052_Cetirizine.xyz b/benchmarks/molecules/organic/052_Cetirizine.xyz new file mode 100644 index 00000000..67f0b0e1 --- /dev/null +++ b/benchmarks/molecules/organic/052_Cetirizine.xyz @@ -0,0 +1,54 @@ +52 +Cetirizine +C -1.31610737 2.63679048 -0.00084644 +C 0.07905007 2.63934168 -0.00004682 +C 0.77437809 3.84836613 0.00070992 +C 0.07451596 5.05559768 -0.00053176 +C -1.32030606 5.05296923 -0.00181022 +C -2.01569681 3.84348937 -0.00157112 +H -1.86412404 1.68346969 -0.00099299 +H 1.87405556 3.85045682 0.00197421 +H 0.62297373 6.00874516 0.00000598 +H -1.87216801 6.00424292 -0.00279707 +H -3.11529902 3.84166168 -0.00238130 +C 0.85103942 1.30681443 0.00184158 +H 1.79337581 1.43985720 -0.48724099 +C 0.41505987 -0.48736387 1.68199576 +C 2.57473964 0.77351617 1.72731358 +C 0.69110348 -1.01300628 3.07592768 +H 0.78959033 -1.22526334 0.92463509 +H -0.69101600 -0.38321987 1.53238838 +C 2.85074861 0.24863316 3.12155937 +H 3.05729485 0.09861578 0.97233225 +H 3.03204876 1.79032016 1.61147100 +H 0.23490280 -2.03043373 3.19085261 +H 0.20695056 -0.33927459 3.83095099 +H 3.95676021 0.14403431 3.27103621 +H 2.47681583 0.98744831 3.87839265 +N 1.08617979 0.85184124 1.45418741 +N 2.17897791 -1.08989652 3.35069584 +C 0.03162829 0.23777883 -0.74470266 +C 0.56867017 -0.39587510 -1.86565767 +C -1.24736307 -0.09709064 -0.30018981 +C -0.17344898 -1.36368445 -2.54228606 +H 1.57672684 -0.13109474 -2.21630694 +C -1.98945087 -1.06588037 -0.97632740 +H -1.67071899 0.40210131 0.58338598 +C -1.45278973 -1.69908441 -2.09730218 +H 0.24953934 -1.86273063 -3.42621495 +H -2.99769071 -1.33000002 -0.62537518 +Cl -2.38893911 -2.92048839 -2.95134941 +C 2.78094574 -2.08721982 2.45410174 +H 2.02278564 -2.75673563 2.10504323 +H 3.23055355 -1.59117358 1.61942159 +C 3.85566305 -2.88236770 3.21851166 +H 3.99860784 -3.83253439 2.74771441 +H 4.77651636 -2.33753632 3.20913280 +C 4.26802920 -4.18276315 5.33113825 +H 3.99105398 -4.28769779 6.35932766 +H 5.29898799 -3.90383432 5.26615610 +C 4.05157947 -5.52181188 4.60196201 +O 4.49897618 -6.59036968 5.09348105 +O 3.33974189 -5.55104438 3.36206979 +H 3.28517852 -6.45557385 3.04513244 +O 3.39930599 -3.09413546 4.67401592 diff --git a/benchmarks/molecules/organic/057_Tamoxifen.xyz b/benchmarks/molecules/organic/057_Tamoxifen.xyz new file mode 100644 index 00000000..b51df6f5 --- /dev/null +++ b/benchmarks/molecules/organic/057_Tamoxifen.xyz @@ -0,0 +1,59 @@ +57 +Tamoxifen +C -1.42666665 1.35988349 0.01780185 +C -0.75139234 2.53486079 0.01780185 +C -2.96666665 1.35988349 0.01780185 +C -3.66418809 0.15160568 0.01780185 +C -3.66417225 2.56778831 0.01791304 +C -5.05890001 0.15132789 0.01723115 +H -3.11399504 -0.80051230 0.01693694 +C -5.05931013 2.56768367 0.01833813 +H -3.11457497 3.52019148 0.01809296 +C -5.75673144 1.35973487 0.01785909 +H -5.60876287 -0.80100973 0.01659711 +H -5.60899513 3.52021733 0.01884114 +H -6.85641138 1.35926586 0.01746817 +C -1.51874951 3.87006226 0.01780185 +C -1.63823871 4.60590036 -1.16149287 +C -2.09440347 4.34371845 1.19670832 +C -2.33266580 5.81544273 -1.16163975 +H -1.18363273 4.23258432 -2.09058400 +C -2.78991814 5.55312706 1.19651365 +H -2.00047584 3.76380313 2.12622693 +C -2.90901419 6.28907563 0.01764434 +H -2.42635385 6.39580205 -2.09099551 +H -3.24404320 5.92613353 2.12608927 +C 0.78860766 2.53486079 0.01780185 +C 1.48612910 3.74313859 0.01780185 +C 1.48611327 1.32695597 0.01791304 +C 2.88084102 3.74341639 0.01723115 +H 0.93593606 4.69525658 0.01693694 +C 2.88125115 1.32706060 0.01833813 +H 0.93651599 0.37455279 0.01809296 +C 3.57867246 2.53500940 0.01785909 +H 3.43070389 4.69575400 0.01659711 +H 3.43093615 0.37452694 0.01884114 +H 4.67835240 2.53547842 0.01746817 +C -0.65930948 0.02468201 0.01780185 +H -0.04466478 -0.03344716 -0.85611628 +H -0.04386363 -0.03298673 0.89118649 +C -1.66236338 -1.14385651 0.01856968 +H -2.27713573 -1.08561745 0.89239069 +H -2.27768159 -1.08629703 -0.85491210 +H -1.12919956 -2.07156136 0.01876393 +O -3.62101473 7.52921876 0.01715974 +C -2.69982994 8.60858726 0.19402752 +H -2.03011871 8.64615667 -0.63962434 +H -2.14108178 8.45680900 1.09384076 +C -3.47584819 9.93535894 0.28927757 +H -4.05456450 10.07469158 -0.59986462 +H -4.12694690 9.90759901 1.13792346 +C -1.65137806 10.90285045 1.72438609 +H -2.24764703 10.40869908 2.46274761 +H -0.79110440 10.30633800 1.50302183 +H -1.33836538 11.85545774 2.09783276 +C -3.25771829 12.42866058 0.53449492 +H -2.56611180 13.24181825 0.60767325 +H -3.86037095 12.55070987 -0.34118410 +H -3.88574784 12.41553739 1.40069735 +N -2.48185199 11.10154878 0.44281205 diff --git a/benchmarks/molecules/organic/066_Raffinose.xyz b/benchmarks/molecules/organic/066_Raffinose.xyz new file mode 100644 index 00000000..058c3910 --- /dev/null +++ b/benchmarks/molecules/organic/066_Raffinose.xyz @@ -0,0 +1,68 @@ +66 +Raffinose +C -1.42958937 -1.01658249 2.44831265 +C -1.54149463 -0.27943595 1.12935913 +C -2.95243912 1.47129501 2.22492550 +C -2.84134324 0.73400280 3.54388810 +C -1.55797242 -0.06742235 3.62210684 +H -0.66497820 0.41085733 1.01283439 +H -0.44314689 -1.54644194 2.49994231 +H -3.93813646 2.00251835 2.17350554 +H -3.71865156 0.04459988 3.66018043 +H -0.68133448 0.63238265 3.63327796 +O -1.92499204 2.46279929 2.14636482 +C -1.46076301 4.67520648 3.08258818 +C -1.65192906 4.60593616 4.58432062 +H -0.74117334 5.43388332 2.85565168 +C -3.37658473 6.27667868 2.91318631 +C -2.26541279 5.88367074 5.11970508 +H -2.31747310 3.73866848 4.83580579 +C -3.56636040 6.20921206 4.41472333 +H -4.36600055 6.45426127 2.41719619 +H -1.54350069 6.73075622 4.97913735 +H -4.32958469 5.42429404 4.65913754 +O -2.52952388 7.38269576 2.59051909 +C -3.31900286 8.44866624 2.05635630 +C -3.26458455 9.66301263 2.97202724 +C -2.80523815 10.85434814 2.14390783 +H -4.26911658 9.86120175 3.42267320 +C -2.45049436 10.34868118 0.75291070 +H -1.92149828 11.34764146 2.62047963 +H -3.01626404 10.91739387 -0.02697788 +C -4.76356005 7.92754855 1.94107026 +H -4.78266313 7.06714393 1.30527236 +H -5.12531018 7.66145994 2.91227245 +O -2.82580898 0.52071700 1.05150767 +C -0.93849427 3.31732760 2.57761263 +H -0.77727115 3.36776157 1.52103158 +H -0.01653199 3.08491476 3.06839754 +C -1.49224313 -1.28985314 -0.03177454 +H -0.58145107 -1.84899344 0.02037852 +H -2.32526415 -1.95746693 0.04080516 +C -0.95163774 10.56175833 0.47072820 +H -0.66603955 9.99216789 -0.38886496 +H -0.38034325 10.24135666 1.31681648 +O -1.55044662 -0.58860344 -1.27666860 +H -1.40118565 -1.20385620 -1.99832308 +O -2.45542951 -2.00981905 2.52598600 +H -2.07814582 -2.83668451 2.83509848 +O -1.53066740 -0.81010098 4.84381994 +H -0.61998842 -0.98424670 5.09269150 +O -2.88646987 1.67226139 4.62209700 +H -3.42291955 1.31644411 5.33428785 +O -0.39050984 4.37790095 5.21813565 +H -0.43907755 4.65272412 6.13667438 +O -2.50206790 5.74947404 6.52358741 +H -2.24542728 6.55931660 6.97067871 +O -4.06906224 7.46048270 4.89065678 +H -4.76357327 7.30283533 5.53439721 +O -2.76235824 4.99928466 2.37789525 +O -5.59594331 8.94915410 1.38576835 +H -6.48998576 8.61436213 1.28476127 +O -2.79571817 8.86766013 0.68976834 +O -2.35757225 9.42976003 4.05268533 +H -2.22828280 10.24429373 4.54402949 +O -3.84292711 11.83519815 2.06622328 +H -3.45759742 12.71343457 2.10890596 +O -0.70503591 11.94904429 0.22675035 +H 0.04258943 12.04182451 -0.36826913 diff --git a/benchmarks/molecules/organic/084_Sphingomyelin.xyz b/benchmarks/molecules/organic/084_Sphingomyelin.xyz new file mode 100644 index 00000000..e031c92e --- /dev/null +++ b/benchmarks/molecules/organic/084_Sphingomyelin.xyz @@ -0,0 +1,86 @@ +84 +Sphingomyelin +C -7.49315956 -1.43773119 -5.92299552 +H -7.94182211 -2.40858579 -5.95529496 +H -7.95636393 -0.85617992 -5.15348929 +H -7.62668554 -0.95153649 -6.86675689 +C -5.79642037 -2.27443704 -4.26611112 +H -6.24577738 -3.24503611 -4.29637197 +H -4.75102405 -2.37166315 -4.05972888 +H -6.25894988 -1.69106781 -3.49757564 +C -5.32241415 -2.41652735 -6.73175378 +H -5.45614320 -1.93219937 -7.67644576 +H -4.27697469 -2.51320533 -6.52533261 +H -5.77127293 -3.38735843 -6.76196670 +C -5.34230471 -0.18003416 -5.58198519 +H -5.80528977 0.40321281 -4.81363123 +H -5.47564419 0.30434483 -6.52670609 +C -3.83777346 -0.31946968 -5.28442266 +H -3.37486869 -0.90308305 -6.05254674 +H -3.70443723 -0.80345768 -4.33950093 +O -3.19138412 1.07764258 -5.24131661 +O -1.08666761 2.23553569 -4.90355336 +O -1.06813532 0.15822874 -5.97009968 +O -1.50879854 0.29141327 -3.68074512 +N -5.98857475 -1.57718235 -5.62571128 +C 0.31042939 2.10678634 -4.62706904 +H 0.77368465 1.52318382 -5.39499004 +H 0.44389576 1.62311344 -3.68200436 +C 0.95616173 3.50421186 -4.58427124 +H 0.49289614 4.08781851 -3.81635961 +N 0.77281830 4.16868977 -5.88263725 +C 1.54573854 5.24091768 -6.23123101 +H 0.07949519 3.81992495 -6.49108736 +O 2.42345554 5.69243391 -5.47559455 +C 1.24369185 5.83589104 -7.61916994 +H 1.38780673 5.08532476 -8.36802317 +H 0.23032024 6.17818782 -7.64764610 +H 1.90308508 6.65755098 -7.80618734 +C 2.46072393 3.36555987 -4.28649918 +H 2.81093231 4.25132556 -3.79898177 +H 2.62197169 2.52066581 -3.65006128 +C 3.22917105 3.16808327 -5.60638252 +H 2.71745824 3.26576104 -6.54099958 +C 4.55128586 2.87101548 -5.58821090 +H 5.06299867 2.77333771 -4.65359384 +P -1.68688011 0.93821529 -4.94361253 +C 5.31973298 2.67353888 -6.90809424 +H 5.50187069 3.62584722 -7.36068089 +H 4.73852105 2.06839074 -7.57208852 +C 6.66254822 1.97641122 -6.62093532 +H 7.23864011 2.57569669 -5.94723283 +H 6.48011089 1.01887673 -6.17963685 +C 7.43879459 1.79489451 -7.93854423 +H 7.60827107 2.75133158 -8.38732686 +H 6.86923187 1.18328757 -8.60670234 +C 8.79086565 1.11708026 -7.64859306 +H 9.33478428 1.00070210 -8.56265469 +H 8.62122899 0.15610604 -7.20967171 +C 9.60424993 1.98984817 -6.67479524 +H 9.31147739 1.77019553 -5.66934163 +H 9.41944065 3.02310864 -6.88244478 +C 11.10499458 1.69162880 -6.84923923 +H 11.41365563 1.97843059 -7.83279049 +H 11.27894526 0.64483722 -6.71187639 +C 11.91113852 2.48722658 -5.80580446 +H 11.72501028 3.53319241 -5.93312987 +H 11.61354107 2.18914178 -4.82219823 +C 13.41348542 2.20643447 -5.99477425 +H 13.59898733 1.15986871 -5.87152995 +H 13.71197645 2.50833327 -6.97694542 +C 14.21924372 2.99740615 -4.94753151 +H 14.03182008 4.04381613 -5.06918080 +H 13.92251458 2.69373112 -3.96537404 +C 15.72181966 2.71939448 -5.13877756 +H 15.90913955 1.67288842 -5.01779686 +H 16.01869462 3.02369321 -6.12069789 +C 16.52751640 3.50960658 -4.09091421 +H 16.33925543 4.55603385 -4.21111315 +H 16.23150563 3.20443884 -3.10900267 +C 18.03020202 3.23295881 -4.28327314 +H 18.21842532 2.18649741 -4.16331260 +H 18.32626477 3.53834869 -5.26509994 +C 18.83587717 4.02290009 -3.23518901 +H 19.87999516 3.83124105 -3.36929500 +H 18.64710066 5.06931441 -3.35469007 +H 18.54032269 3.71699987 -2.25336795 diff --git a/benchmarks/molecules/organic/095_Azadirachtin.xyz b/benchmarks/molecules/organic/095_Azadirachtin.xyz new file mode 100644 index 00000000..8c03f7bb --- /dev/null +++ b/benchmarks/molecules/organic/095_Azadirachtin.xyz @@ -0,0 +1,97 @@ +95 +Azadirachtin +C 0.24028400 -0.96854600 0.05735800 +C 1.49955800 -0.38999400 0.79976500 +C 1.84405900 1.11309900 0.52612700 +C 0.61115200 2.06994900 0.41027500 +C -0.38718900 1.44909800 -0.58288900 +C -0.81198100 0.11367700 0.01403200 +H 1.34464500 -0.48336800 1.89667000 +H 0.90815500 3.09474100 0.10955200 +H 0.07146500 1.40030200 -1.59457300 +H -1.08538000 0.33936800 1.09841400 +O -0.03234300 2.14051500 1.69756400 +H 0.43832200 2.76739400 2.27637900 +O -1.64345600 2.15598600 -0.77527600 +C -2.74935800 1.17918600 -0.75355500 +H -3.33770900 1.41858200 0.14457000 +H -3.31820200 1.39744800 -1.66649800 +C -2.11058900 -0.22990000 -0.71994400 +C 2.72998200 1.32748400 -0.70483200 +H 2.81316800 2.38444500 -0.97758400 +H 3.74960400 0.95856700 -0.53283000 +H 2.35200700 0.78104000 -1.58051000 +C 2.60140000 -1.34386400 0.30659000 +C 0.84678200 -1.40613600 -1.29617000 +H 0.88274800 -0.59319600 -2.03951200 +H 0.38815200 -2.30137400 -1.74034600 +O 2.22547600 -1.78168600 -1.02946800 +C -0.42290800 -2.19363100 0.75277400 +H -0.32012900 -3.08353500 0.10236100 +C -1.91400700 -2.00763500 1.11237500 +H -2.33420900 -2.99527800 1.38379200 +H -1.98093100 -1.38866600 2.03106200 +C -2.81353800 -1.37055100 0.02719800 +H -3.12020000 -2.14713900 -0.69849000 +C -1.82661295 -0.68751599 -2.16270012 +O -1.03585236 -0.24261727 -2.99355789 +O -2.59156054 -1.74766325 -2.52650357 +C -2.29916153 -2.14198817 -3.86960099 +H -2.96290254 -2.92828960 -4.16299137 +H -2.42740743 -1.30452633 -4.52313804 +H -1.28838658 -2.48820275 -3.92764814 +O -4.01986539 -0.90962471 0.64138134 +C -4.89301012 -1.93494775 0.80793745 +O -4.54153100 -3.05110585 0.42818050 +C -6.20834727 -1.48087047 1.46771166 +H -6.70958996 -0.78829922 0.82428269 +H -6.83594045 -2.33131805 1.63434212 +H -5.99341406 -1.00749899 2.40292455 +O 0.29104226 -2.52037085 1.94793763 +C 0.31248536 -3.86361432 2.13937213 +O -0.25336168 -4.56806573 1.30443072 +C 1.07328546 -4.25938123 3.41849362 +C 1.18469713 -5.56341278 3.77014145 +H 0.75137836 -6.32562659 3.15681858 +C 1.70966559 -3.16955354 4.30104443 +H 2.52793619 -2.72004059 3.77829081 +H 0.97813456 -2.42251044 4.52839648 +H 2.06508607 -3.60889199 5.20964665 +C 1.93754031 -5.94957419 5.05688405 +H 1.46239499 -5.49165555 5.89917107 +H 1.92238977 -7.01309886 5.17344190 +H 2.95091533 -5.61227499 4.99207421 +C 3.99823568 -0.71610148 0.14421916 +O 4.54063921 0.18499764 0.78248292 +O 4.69984280 -1.27738694 -0.87269582 +O 2.69271189 -2.53050618 1.09933364 +H 3.60067733 -2.84219679 1.10624230 +C 5.98847134 -0.66885730 -0.99113633 +H 6.49970371 -0.73075570 -0.05320774 +H 6.55618159 -1.17887968 -1.74112449 +H 5.87374685 0.35839671 -1.26770006 +C 2.63486992 1.58151749 1.76176538 +C 2.13434327 2.21842175 3.11643757 +C 3.90461234 2.45387090 1.74128354 +O 2.44467967 0.78466796 2.96396625 +C 3.35337126 2.98709450 3.79243900 +C 0.74513758 2.60743687 3.44136489 +O 5.00327683 3.19196370 1.11718214 +C 4.47769203 2.16352749 3.16877423 +H 3.15573566 3.35599353 1.51547111 +C 3.84794511 4.41584726 3.25643717 +H 3.24116904 2.99889070 4.88162906 +H 0.00697023 1.93995296 2.97068106 +H 0.55491721 2.57388288 4.52449549 +H 0.54134467 3.63458255 3.09753074 +C 4.84981258 4.42246076 1.92099071 +H 4.49637929 1.09030804 3.43212004 +H 5.51163803 2.50195502 3.32489990 +C 4.76579887 5.04464694 4.26535741 +O 2.75093022 5.20578033 2.83652107 +H 4.60685318 5.22136931 1.20459035 +O 6.17282363 4.70855901 2.47193815 +H 4.42807865 5.31783232 5.24674785 +C 6.01838353 5.12565144 3.78006571 +H 2.50011685 5.87405238 3.50751412 +H 6.95619123 5.44887224 4.20308201 diff --git a/benchmarks/molecules/organic/113_Taxol.xyz b/benchmarks/molecules/organic/113_Taxol.xyz new file mode 100644 index 00000000..e472fda3 --- /dev/null +++ b/benchmarks/molecules/organic/113_Taxol.xyz @@ -0,0 +1,115 @@ + 113 + + C -3.78400 3.91800 3.08500 + O -4.61300 4.80300 2.94200 + C 6.71300 1.23300 4.89600 + C -5.60200 2.29400 3.72100 + C -6.05000 1.05200 4.18300 + C -5.13000 0.05200 4.50500 + C -3.76400 0.29300 4.34500 + C -3.32300 1.53700 3.88500 + C -4.23400 2.55300 3.57300 + C 5.67500 0.94800 3.84600 + C 2.37100 0.84900 2.62900 + C 3.10500 -0.12600 3.21600 + C 1.03100 1.22200 3.23900 + C 0.28800 -0.09400 3.59500 + C 1.16700 -1.28400 4.12700 + C 2.60800 -0.78500 4.51100 + C 3.43500 -1.97000 5.13400 + C 2.60600 0.31200 5.64300 + C 2.73200 1.62200 1.37000 + C 1.10300 -2.50000 3.10700 + C 1.79900 -2.32400 1.70000 + C 3.30800 -2.77100 1.51300 + C 3.49500 -4.31700 1.69500 + C 4.37200 -2.13300 2.41400 + O 5.24200 -2.81400 2.93800 + C 4.41900 -0.64300 2.66300 + C 3.72500 -2.34100 0.06800 + C 2.99700 -3.14600 -1.03900 + C 1.46100 -3.21500 -0.83100 + C 0.84800 -2.79300 0.53600 + C 0.29500 -4.23600 0.67300 + O 1.01800 -4.54200 -0.52000 + O -0.29100 -1.91800 0.36400 + O 0.12900 1.93600 2.35400 + C 0.33500 3.25800 2.23100 + O 1.17100 3.88700 2.86000 + C -0.56900 3.95300 1.24000 + O -0.32500 5.36800 1.25200 + C -2.07200 3.65200 1.50300 + C -2.91400 4.25500 0.36500 + N -2.51800 4.22500 2.79400 + C -0.02700 -0.74400 -0.23000 + O 1.05900 -0.43700 -0.69700 + C -1.19800 0.19400 -0.31800 + O 5.14800 -2.36500 -0.15400 + O 5.47500 -0.35700 3.60400 + O 0.49900 -1.68300 5.34200 + O -0.30500 -2.72300 2.83100 + C -1.05000 -3.31600 3.77500 + O -0.56400 -3.88100 4.74200 + C -2.55500 -3.28300 3.61300 + C -3.13100 -2.57300 2.55300 + C -4.51900 -2.53100 2.39800 + C -5.34300 -3.21000 3.30000 + C -4.77400 -3.91900 4.36200 + C -3.38600 -3.95500 4.51800 + C -3.21900 5.62000 0.36700 + C -3.98100 6.17900 -0.66400 + C -4.44900 5.37200 -1.70500 + C -4.15200 4.00700 -1.71000 + C -3.39100 3.45200 -0.67800 + O 5.07500 1.85100 3.28400 + H 7.65600 0.72800 4.63700 + H 6.35900 0.85900 5.86800 + H 6.90100 2.31400 4.97700 + H -6.33500 3.05700 3.47700 + H -7.11300 0.86500 4.29300 + H -5.47500 -0.90600 4.88100 + H -3.04600 -0.48600 4.58000 + H -2.25800 1.69900 3.77900 + H 1.15700 1.83600 4.14200 + H -0.25400 -0.39000 2.68600 + H -0.48800 0.16600 4.33300 + H 3.04900 -2.24700 6.12600 + H 3.41800 -2.89600 4.55900 + H 4.48300 -1.68700 5.29600 + H 3.18300 0.03600 6.53800 + H 3.06600 1.25300 5.30500 + H 1.58900 0.52100 6.00500 + H 3.55600 1.24200 0.76000 + H 1.87100 1.65200 0.68700 + H 2.99500 2.65100 1.65000 + H 1.49200 -3.43200 3.53200 + H 1.78900 -1.25500 1.51200 + H 2.84900 -4.92100 1.05300 + H 4.52100 -4.63300 1.46000 + H 3.30100 -4.62300 2.73100 + H 4.77700 -0.23200 1.71600 + H 3.47200 -1.28000 -0.08100 + H 3.20600 -2.65900 -2.00600 + H 3.40700 -4.16400 -1.10900 + H 0.87600 -2.86500 -1.69900 + H 0.59700 -4.82300 1.55300 + H -0.79000 -4.31300 0.49800 + H -0.29700 3.59300 0.23500 + H -0.50800 5.75400 2.10300 + H -2.21100 2.56000 1.50700 + H -1.85600 3.97900 3.61000 + H -1.75600 0.19900 0.62900 + H -0.85000 1.21600 -0.53100 + H -1.86900 -0.13200 -1.12700 + H 5.52800 -3.23500 -0.12600 + H 0.81500 -2.49000 5.73000 + H -2.50600 -2.04400 1.84200 + H -4.95700 -1.97200 1.57800 + H -6.42200 -3.18500 3.17700 + H -5.41400 -4.44300 5.06600 + H -2.95900 -4.50700 5.34800 + H -2.86800 6.25900 1.17000 + H -4.21000 7.24000 -0.65500 + H -5.04000 5.80500 -2.50600 + H -4.51500 3.37800 -2.51700 + H -3.17400 2.38900 -0.69700 \ No newline at end of file diff --git a/benchmarks/molecules/organic/168_Valinomycin.xyz b/benchmarks/molecules/organic/168_Valinomycin.xyz new file mode 100644 index 00000000..953e74ea --- /dev/null +++ b/benchmarks/molecules/organic/168_Valinomycin.xyz @@ -0,0 +1,170 @@ +168 + +N -4.092316 -1.000975 -0.370529 +C -4.323298 -0.263368 -1.612788 +C -3.205279 0.755290 -1.724502 +C -4.333065 -1.195831 -2.804809 +C -5.534893 -2.195586 -2.747894 +C -4.391021 -0.411072 -4.124619 +O -2.022551 0.513260 -1.614742 +O -3.685654 1.972297 -2.032800 +C -2.674446 3.003316 -2.308876 +C -2.061835 3.479071 -0.971537 +C -3.443134 4.164203 -2.942180 +O -0.982616 4.138519 -1.109289 +N -2.562361 3.191384 0.172976 +C -1.922153 3.625377 1.414867 +C -0.521384 3.059577 1.425755 +C -2.660285 3.195460 2.693552 +C -4.031723 3.921459 2.671174 +C -1.882265 3.476688 3.916073 +O -0.237963 1.915325 1.170709 +O 0.405568 3.987667 1.716328 +C 1.781787 3.582552 1.870413 +C 2.481074 3.382195 0.575318 +C 2.480996 4.611227 2.746627 +C 2.470890 5.974202 2.063195 +C 1.863565 4.691095 4.116433 +O 3.676679 3.042497 0.627604 +N 1.882065 3.634190 -0.570600 +C 2.598479 3.416843 -1.822129 +C 3.040290 1.970656 -1.862391 +C 1.746343 3.771275 -3.063258 +C 1.427287 5.251532 -3.043648 +C 2.444655 3.420207 -4.345496 +O 2.308863 0.995380 -1.690734 +O 4.353206 1.844014 -2.141135 +C 4.912975 0.501695 -2.282755 +C 4.866954 -0.251241 -0.969886 +C 6.363862 0.653789 -2.723359 +O 4.889152 -1.491995 -0.988352 +N 4.852304 0.411828 0.187274 +C 4.863721 -0.320530 1.453267 +C 3.640496 -1.203917 1.497502 +C 4.913635 0.624865 2.635648 +C 6.173744 1.508032 2.600330 +C 4.932395 -0.156748 3.950794 +O 2.510720 -0.842020 1.236281 +O 3.945608 -2.457328 1.878505 +C 2.828097 -3.372211 2.031960 +C 2.445551 -4.040763 0.771740 +C 3.254346 -4.422058 3.076046 +C 4.485963 -5.179990 2.732181 +C 3.328906 -3.808486 4.458682 +O 1.510141 -4.859848 0.766457 +N 3.020005 -3.732477 -0.410699 +C 2.468904 -4.259053 -1.664600 +C 1.005575 -3.799167 -1.749489 +C 3.268214 -3.838849 -2.880780 +C 4.693123 -4.426191 -2.823146 +C 2.559891 -4.254352 -4.172416 +O 0.635499 -2.673457 -1.581456 +O 0.196730 -4.821967 -2.053653 +C -1.207969 -4.498197 -2.246260 +C -1.919179 -4.182296 -0.920514 +C -1.832879 -5.699367 -2.974726 +O -3.059153 -3.717116 -0.961162 +N -1.303471 -4.547234 0.218128 +C -1.982414 -4.214913 1.486175 +C -2.200782 -2.712629 1.511514 +C -1.134918 -4.689135 2.671762 +C -0.944827 -6.191286 2.623437 +C -1.829816 -4.316462 3.967327 +O -1.385866 -1.900600 1.279362 +O -3.460876 -2.442907 1.878543 +C -3.804869 -1.044508 2.117691 +C -4.050817 -0.299492 0.783208 +C -5.016031 -1.022831 3.027983 +C -6.211473 -1.582777 2.357053 +C -5.252923 0.363926 3.607945 +O -4.233373 0.913002 0.812934 +H -4.825052 -1.677193 -0.281154 +H -5.217026 0.186571 -1.599372 +H -3.479308 -1.715455 -2.769455 +H -5.508697 -2.792601 -3.549257 +H -6.393354 -1.681530 -2.740600 +H -5.468672 -2.745980 -1.915801 +H -4.394290 -1.049299 -4.894845 +H -3.590140 0.186846 -4.194563 +H -5.225516 0.143589 -4.147272 +H -1.941915 2.666583 -2.901546 +H -2.806324 4.905979 -3.158884 +H -4.135677 4.492828 -2.303388 +H -3.887482 3.852542 -3.781836 +H -3.485062 3.580046 0.182699 +H -1.927597 4.624579 1.428033 +H -2.790440 2.201843 2.715678 +H -4.555076 3.671645 3.487594 +H -4.539107 3.649591 1.856395 +H -3.884359 4.909505 2.658473 +H -2.397552 3.181021 4.719518 +H -1.703444 4.460941 3.979504 +H -1.011857 2.981721 3.879574 +H 1.807192 2.684489 2.310092 +H 3.430162 4.320142 2.868487 +H 2.930026 6.643402 2.642400 +H 1.526351 6.263032 1.907788 +H 2.948100 5.912261 1.184104 +H 2.346361 5.375005 4.664527 +H 1.934535 3.796949 4.566903 +H 0.900706 4.946579 4.034185 +H 1.064858 3.062686 -0.602928 +H 3.389388 4.028458 -1.850492 +H 0.906884 3.231889 -3.020692 +H 0.875632 5.481426 -3.847705 +H 2.276787 5.774253 -3.061772 +H 0.915762 5.470666 -2.216102 +H 1.859529 3.668329 -5.120102 +H 2.629183 2.440334 -4.368647 +H 3.304846 3.923639 -4.404726 +H 4.379382 -0.016050 -2.953946 +H 6.778208 -0.252132 -2.830428 +H 6.872358 1.169804 -2.034528 +H 6.401161 1.139812 -3.594077 +H 5.654846 1.007647 0.191146 +H 5.688734 -0.885157 1.507712 +H 4.098100 1.195862 2.574451 +H 6.173595 2.119258 3.394792 +H 6.176517 2.055384 1.762697 +H 6.990721 0.931248 2.624915 +H 4.963944 0.484942 4.718965 +H 5.737428 -0.749023 3.979542 +H 4.106880 -0.714856 4.021343 +H 2.017946 -2.856984 2.316729 +H 2.532306 -5.110371 3.074232 +H 4.687279 -5.836148 3.462200 +H 5.250346 -4.546334 2.632862 +H 4.342276 -5.672236 1.871730 +H 3.607288 -4.506348 5.120102 +H 2.432946 -3.447169 4.712392 +H 4.000576 -3.066883 4.456643 +H 3.001830 -2.736612 -0.484910 +H 2.523818 -5.256397 -1.663438 +H 3.338853 -2.839418 -2.879074 +H 5.208256 -4.142571 -3.633434 +H 4.639769 -5.426967 -2.799486 +H 5.158021 -4.099125 -2.001722 +H 3.105690 -3.967766 -4.960551 +H 1.661957 -3.821054 -4.213784 +H 2.450854 -5.248405 -4.187410 +H -1.307259 -3.664356 -2.791012 +H -2.805490 -5.528762 -3.131782 +H -1.727941 -6.522351 -2.411801 +H -1.373006 -5.834787 -3.850316 +H -1.185777 -5.539039 0.189424 +H -2.868035 -4.680768 1.554632 +H -0.239333 -4.245968 2.624327 +H -0.389239 -6.483047 3.400717 +H -0.481563 -6.441532 1.772248 +H -1.838177 -6.643402 2.663197 +H -1.275974 -4.622937 4.742494 +H -2.727713 -4.754904 4.006495 +H -1.943531 -3.322490 4.015512 +H -3.048477 -0.563112 2.562609 +H -4.828053 -1.619266 3.807471 +H -6.990721 -1.552747 2.981064 +H -6.033213 -2.529521 2.093305 +H -6.424515 -1.044284 1.539849 +H -6.059472 0.344963 4.201915 +H -5.404125 1.013925 2.864268 +H -4.452484 0.643772 4.140208 \ No newline at end of file diff --git a/benchmarks/molecules/water_clusters/002.xyz b/benchmarks/molecules/water_clusters/002.xyz new file mode 100644 index 00000000..8c50538d --- /dev/null +++ b/benchmarks/molecules/water_clusters/002.xyz @@ -0,0 +1,5 @@ +3 + +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 diff --git a/benchmarks/molecules/water_clusters/003.xyz b/benchmarks/molecules/water_clusters/003.xyz new file mode 100644 index 00000000..f0bdd6dd --- /dev/null +++ b/benchmarks/molecules/water_clusters/003.xyz @@ -0,0 +1,17 @@ +15 + +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 diff --git a/benchmarks/molecules/water_clusters/004.xyz b/benchmarks/molecules/water_clusters/004.xyz new file mode 100644 index 00000000..8a06164f --- /dev/null +++ b/benchmarks/molecules/water_clusters/004.xyz @@ -0,0 +1,32 @@ +30 + +O 97.873900000 103.017000000 100.816000000 +H 98.128600000 103.038000000 99.848800000 +H 97.173800000 102.317000000 100.960000000 +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 100.747000000 100.164000000 103.736000000 +H 100.658000000 100.628000000 102.855000000 +H 100.105000000 99.398600000 103.776000000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 98.548000000 101.265000000 97.248600000 +H 98.688900000 102.140000000 97.711000000 +H 97.919900000 101.391000000 96.480800000 +O 102.891000000 100.842000000 97.477600000 +H 103.837000000 100.662000000 97.209700000 +H 102.868000000 101.166000000 98.423400000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 101.836000000 97.446700000 102.110000000 +H 100.860000000 97.397400000 101.898000000 +H 101.991000000 97.133400000 103.047000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 diff --git a/benchmarks/molecules/water_clusters/005.xyz b/benchmarks/molecules/water_clusters/005.xyz new file mode 100644 index 00000000..976e8f74 --- /dev/null +++ b/benchmarks/molecules/water_clusters/005.xyz @@ -0,0 +1,62 @@ +60 + +O 97.873900000 103.017000000 100.816000000 +H 98.128600000 103.038000000 99.848800000 +H 97.173800000 102.317000000 100.960000000 +O 100.645000000 100.169000000 95.891500000 +H 101.491000000 100.305000000 96.406200000 +H 99.888700000 100.618000000 96.367800000 +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 100.747000000 100.164000000 103.736000000 +H 100.658000000 100.628000000 102.855000000 +H 100.105000000 99.398600000 103.776000000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 98.548000000 101.265000000 97.248600000 +H 98.688900000 102.140000000 97.711000000 +H 97.919900000 101.391000000 96.480800000 +O 103.898000000 98.427900000 99.984500000 +H 103.015000000 98.654900000 99.573700000 +H 104.128000000 97.477300000 99.776100000 +O 99.166600000 96.442100000 101.723000000 +H 98.843200000 97.206600000 101.166000000 +H 99.643900000 95.783700000 101.141000000 +O 102.891000000 100.842000000 97.477600000 +H 103.837000000 100.662000000 97.209700000 +H 102.868000000 101.166000000 98.423400000 +O 96.227200000 100.990000000 101.698000000 +H 96.148800000 100.422000000 102.517000000 +H 95.313600000 101.237000000 101.375000000 +O 98.864800000 98.222500000 103.917000000 +H 98.949800000 97.463000000 103.272000000 +H 99.054800000 97.896400000 104.843000000 +O 104.578000000 100.035000000 101.952000000 +H 104.419000000 101.011000000 101.802000000 +H 104.206000000 99.514900000 101.184000000 +O 102.429000000 104.060000000 101.348000000 +H 101.757000000 103.665000000 101.974000000 +H 102.209000000 105.021000000 101.185000000 +O 98.708200000 103.752000000 98.244300000 +H 98.397100000 104.234000000 97.425400000 +H 99.598500000 104.111000000 98.524400000 +O 95.630300000 99.996600000 98.245400000 +H 96.540400000 100.410000000 98.268900000 +H 94.982900000 100.638000000 97.834500000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 101.836000000 97.446700000 102.110000000 +H 100.860000000 97.397400000 101.898000000 +H 101.991000000 97.133400000 103.047000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 +O 99.984700000 103.272000000 102.307000000 +H 99.640700000 103.104000000 103.231000000 +H 99.216500000 103.453000000 101.693000000 diff --git a/benchmarks/molecules/water_clusters/006.xyz b/benchmarks/molecules/water_clusters/006.xyz new file mode 100644 index 00000000..ed702f3d --- /dev/null +++ b/benchmarks/molecules/water_clusters/006.xyz @@ -0,0 +1,98 @@ +96 + +O 97.873900000 103.017000000 100.816000000 +H 98.128600000 103.038000000 99.848800000 +H 97.173800000 102.317000000 100.960000000 +O 101.099000000 104.850000000 99.030700000 +H 101.483000000 104.260000000 99.740500000 +H 101.829000000 105.396000000 98.619700000 +O 100.645000000 100.169000000 95.891500000 +H 101.491000000 100.305000000 96.406200000 +H 99.888700000 100.618000000 96.367800000 +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 100.747000000 100.164000000 103.736000000 +H 100.658000000 100.628000000 102.855000000 +H 100.105000000 99.398600000 103.776000000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 96.373500000 99.168100000 103.663000000 +H 96.032600000 99.385200000 104.578000000 +H 97.337900000 98.909800000 103.720000000 +O 96.740700000 101.641000000 95.246600000 +H 95.765200000 101.625000000 95.027600000 +H 97.256100000 101.957000000 94.450300000 +O 103.969000000 95.809900000 100.611000000 +H 104.656000000 95.771500000 101.336000000 +H 103.152000000 96.276300000 100.950000000 +O 98.548000000 101.265000000 97.248600000 +H 98.688900000 102.140000000 97.711000000 +H 97.919900000 101.391000000 96.480800000 +O 104.764000000 102.907000000 101.929000000 +H 104.157000000 103.650000000 101.648000000 +H 105.597000000 103.289000000 102.328000000 +O 103.898000000 98.427900000 99.984500000 +H 103.015000000 98.654900000 99.573700000 +H 104.128000000 97.477300000 99.776100000 +O 99.166600000 96.442100000 101.723000000 +H 98.843200000 97.206600000 101.166000000 +H 99.643900000 95.783700000 101.141000000 +O 102.891000000 100.842000000 97.477600000 +H 103.837000000 100.662000000 97.209700000 +H 102.868000000 101.166000000 98.423400000 +O 96.227200000 100.990000000 101.698000000 +H 96.148800000 100.422000000 102.517000000 +H 95.313600000 101.237000000 101.375000000 +O 95.278100000 97.169000000 98.965800000 +H 95.144800000 97.377000000 99.934800000 +H 95.587900000 97.991100000 98.488100000 +O 98.864800000 98.222500000 103.917000000 +H 98.949800000 97.463000000 103.272000000 +H 99.054800000 97.896400000 104.843000000 +O 104.578000000 100.035000000 101.952000000 +H 104.419000000 101.011000000 101.802000000 +H 104.206000000 99.514900000 101.184000000 +O 102.429000000 104.060000000 101.348000000 +H 101.757000000 103.665000000 101.974000000 +H 102.209000000 105.021000000 101.185000000 +O 95.118700000 97.700600000 101.797000000 +H 94.171300000 97.423600000 101.957000000 +H 95.377300000 98.403200000 102.460000000 +O 98.708200000 103.752000000 98.244300000 +H 98.397100000 104.234000000 97.425400000 +H 99.598500000 104.111000000 98.524400000 +O 103.454000000 97.589900000 96.421800000 +H 103.885000000 98.135100000 95.702500000 +H 104.142000000 97.009800000 96.857500000 +O 95.630300000 99.996600000 98.245400000 +H 96.540400000 100.410000000 98.268900000 +H 94.982900000 100.638000000 97.834500000 +O 99.505700000 94.600000000 99.762000000 +H 98.915000000 94.230400000 99.044800000 +H 100.455000000 94.596700000 99.446700000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 99.128800000 95.980100000 96.602100000 +H 99.037300000 96.941600000 96.861200000 +H 100.097000000 95.729200000 96.588100000 +O 103.544000000 99.038500000 104.412000000 +H 104.182000000 99.184200000 103.655000000 +H 102.605000000 99.102500000 104.073000000 +O 103.133000000 101.981000000 104.535000000 +H 103.581000000 102.216000000 103.673000000 +H 102.678000000 101.095000000 104.444000000 +O 101.836000000 97.446700000 102.110000000 +H 100.860000000 97.397400000 101.898000000 +H 101.991000000 97.133400000 103.047000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 +O 99.984700000 103.272000000 102.307000000 +H 99.640700000 103.104000000 103.231000000 +H 99.216500000 103.453000000 101.693000000 diff --git a/benchmarks/molecules/water_clusters/007.xyz b/benchmarks/molecules/water_clusters/007.xyz new file mode 100644 index 00000000..4c949fcc --- /dev/null +++ b/benchmarks/molecules/water_clusters/007.xyz @@ -0,0 +1,143 @@ +141 + +O 101.140000000 103.233000000 105.698000000 +H 101.800000000 103.577000000 106.365000000 +H 101.619000000 102.707000000 104.996000000 +O 103.662000000 102.962000000 95.665500000 +H 104.569000000 102.981000000 96.087800000 +H 103.118000000 102.230000000 96.076400000 +O 97.873900000 103.017000000 100.816000000 +H 98.128600000 103.038000000 99.848800000 +H 97.173800000 102.317000000 100.960000000 +O 101.099000000 104.850000000 99.030700000 +H 101.483000000 104.260000000 99.740500000 +H 101.829000000 105.396000000 98.619700000 +O 100.645000000 100.169000000 95.891500000 +H 101.491000000 100.305000000 96.406200000 +H 99.888700000 100.618000000 96.367800000 +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 100.747000000 100.164000000 103.736000000 +H 100.658000000 100.628000000 102.855000000 +H 100.105000000 99.398600000 103.776000000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 96.373500000 99.168100000 103.663000000 +H 96.032600000 99.385200000 104.578000000 +H 97.337900000 98.909800000 103.720000000 +O 96.740700000 101.641000000 95.246600000 +H 95.765200000 101.625000000 95.027600000 +H 97.256100000 101.957000000 94.450300000 +O 96.855700000 95.639100000 102.759000000 +H 96.157300000 96.250200000 102.386000000 +H 97.741700000 95.856700000 102.349000000 +O 103.969000000 95.809900000 100.611000000 +H 104.656000000 95.771500000 101.336000000 +H 103.152000000 96.276300000 100.950000000 +O 98.463200000 103.644000000 104.855000000 +H 99.448900000 103.710000000 105.009000000 +H 98.023000000 103.265000000 105.669000000 +O 98.548000000 101.265000000 97.248600000 +H 98.688900000 102.140000000 97.711000000 +H 97.919900000 101.391000000 96.480800000 +O 104.764000000 102.907000000 101.929000000 +H 104.157000000 103.650000000 101.648000000 +H 105.597000000 103.289000000 102.328000000 +O 104.727000000 95.435700000 98.038700000 +H 103.947000000 95.065800000 97.535100000 +H 104.496000000 95.504800000 99.009000000 +O 103.898000000 98.427900000 99.984500000 +H 103.015000000 98.654900000 99.573700000 +H 104.128000000 97.477300000 99.776100000 +O 99.166600000 96.442100000 101.723000000 +H 98.843200000 97.206600000 101.166000000 +H 99.643900000 95.783700000 101.141000000 +O 102.891000000 100.842000000 97.477600000 +H 103.837000000 100.662000000 97.209700000 +H 102.868000000 101.166000000 98.423400000 +O 96.227200000 100.990000000 101.698000000 +H 96.148800000 100.422000000 102.517000000 +H 95.313600000 101.237000000 101.375000000 +O 95.278100000 97.169000000 98.965800000 +H 95.144800000 97.377000000 99.934800000 +H 95.587900000 97.991100000 98.488100000 +O 98.864800000 98.222500000 103.917000000 +H 98.949800000 97.463000000 103.272000000 +H 99.054800000 97.896400000 104.843000000 +O 104.578000000 100.035000000 101.952000000 +H 104.419000000 101.011000000 101.802000000 +H 104.206000000 99.514900000 101.184000000 +O 102.429000000 104.060000000 101.348000000 +H 101.757000000 103.665000000 101.974000000 +H 102.209000000 105.021000000 101.185000000 +O 96.798000000 93.944200000 100.568000000 +H 97.508200000 94.486700000 100.119000000 +H 96.982400000 93.900400000 101.550000000 +O 95.118700000 97.700600000 101.797000000 +H 94.171300000 97.423600000 101.957000000 +H 95.377300000 98.403200000 102.460000000 +O 105.654000000 100.606000000 97.050900000 +H 105.817000000 99.917100000 96.344600000 +H 105.599000000 100.160000000 97.944500000 +O 98.708200000 103.752000000 98.244300000 +H 98.397100000 104.234000000 97.425400000 +H 99.598500000 104.111000000 98.524400000 +O 99.468000000 105.283000000 95.690500000 +H 100.395000000 104.911000000 95.651600000 +H 99.511900000 106.279000000 95.772300000 +O 102.160000000 94.349500000 98.747200000 +H 102.527000000 93.534300000 98.299300000 +H 102.436000000 94.354600000 99.708300000 +O 98.771600000 100.739000000 106.197000000 +H 99.398100000 101.178000000 106.840000000 +H 99.297200000 100.231000000 105.514000000 +O 103.454000000 97.589900000 96.421800000 +H 103.885000000 98.135100000 95.702500000 +H 104.142000000 97.009800000 96.857500000 +O 95.630300000 99.996600000 98.245400000 +H 96.540400000 100.410000000 98.268900000 +H 94.982900000 100.638000000 97.834500000 +O 99.505700000 94.600000000 99.762000000 +H 98.915000000 94.230400000 99.044800000 +H 100.455000000 94.596700000 99.446700000 +O 93.723900000 101.482000000 100.592000000 +H 93.285300000 102.174000000 100.019000000 +H 93.374700000 100.577000000 100.347000000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 99.128800000 95.980100000 96.602100000 +H 99.037300000 96.941600000 96.861200000 +H 100.097000000 95.729200000 96.588100000 +O 103.544000000 99.038500000 104.412000000 +H 104.182000000 99.184200000 103.655000000 +H 102.605000000 99.102500000 104.073000000 +O 99.482600000 98.237100000 94.256600000 +H 98.968300000 98.764500000 93.580400000 +H 100.018000000 98.859300000 94.827300000 +O 97.111700000 105.889000000 101.284000000 +H 97.802500000 106.403000000 101.792000000 +H 97.487600000 105.002000000 101.014000000 +O 103.133000000 101.981000000 104.535000000 +H 103.581000000 102.216000000 103.673000000 +H 102.678000000 101.095000000 104.444000000 +O 101.858000000 95.959800000 104.565000000 +H 102.487000000 95.187200000 104.478000000 +H 100.951000000 95.624200000 104.818000000 +O 106.341000000 99.341900000 99.395500000 +H 105.471000000 98.930500000 99.666400000 +H 107.040000000 99.120000000 100.075000000 +O 101.836000000 97.446700000 102.110000000 +H 100.860000000 97.397400000 101.898000000 +H 101.991000000 97.133400000 103.047000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 +O 99.984700000 103.272000000 102.307000000 +H 99.640700000 103.104000000 103.231000000 +H 99.216500000 103.453000000 101.693000000 diff --git a/benchmarks/molecules/water_clusters/008.xyz b/benchmarks/molecules/water_clusters/008.xyz new file mode 100644 index 00000000..9682cc4e --- /dev/null +++ b/benchmarks/molecules/water_clusters/008.xyz @@ -0,0 +1,230 @@ +228 + +O 96.287700000 105.219000000 103.893000000 +H 96.781000000 104.419000000 104.235000000 +H 96.485600000 105.342000000 102.921000000 +O 101.140000000 103.233000000 105.698000000 +H 101.800000000 103.577000000 106.365000000 +H 101.619000000 102.707000000 104.996000000 +O 93.054300000 101.153000000 103.187000000 +H 93.153500000 102.024000000 103.669000000 +H 93.282100000 101.279000000 102.221000000 +O 103.662000000 102.962000000 95.665500000 +H 104.569000000 102.981000000 96.087800000 +H 103.118000000 102.230000000 96.076400000 +O 101.495000000 96.997200000 93.049900000 +H 100.616000000 97.208900000 93.477800000 +H 101.533000000 96.022200000 92.831100000 +O 97.873900000 103.017000000 100.816000000 +H 98.128600000 103.038000000 99.848800000 +H 97.173800000 102.317000000 100.960000000 +O 103.316000000 100.168000000 106.766000000 +H 103.471000000 99.766300000 105.864000000 +H 103.282000000 101.164000000 106.687000000 +O 101.099000000 104.850000000 99.030700000 +H 101.483000000 104.260000000 99.740500000 +H 101.829000000 105.396000000 98.619700000 +O 100.645000000 100.169000000 95.891500000 +H 101.491000000 100.305000000 96.406200000 +H 99.888700000 100.618000000 96.367800000 +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 100.747000000 100.164000000 103.736000000 +H 100.658000000 100.628000000 102.855000000 +H 100.105000000 99.398600000 103.776000000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 99.241500000 107.096000000 102.899000000 +H 99.533400000 106.810000000 103.812000000 +H 99.798300000 107.871000000 102.599000000 +O 96.373500000 99.168100000 103.663000000 +H 96.032600000 99.385200000 104.578000000 +H 97.337900000 98.909800000 103.720000000 +O 92.236600000 98.969600000 99.830200000 +H 92.257200000 98.492300000 100.709000000 +H 92.125400000 98.304300000 99.091900000 +O 96.740700000 101.641000000 95.246600000 +H 95.765200000 101.625000000 95.027600000 +H 97.256100000 101.957000000 94.450300000 +O 96.855700000 95.639100000 102.759000000 +H 96.157300000 96.250200000 102.386000000 +H 97.741700000 95.856700000 102.349000000 +O 97.209000000 95.906800000 94.278900000 +H 97.087400000 95.813100000 93.290800000 +H 98.015300000 96.468800000 94.463700000 +O 103.969000000 95.809900000 100.611000000 +H 104.656000000 95.771500000 101.336000000 +H 103.152000000 96.276300000 100.950000000 +O 106.587000000 100.034000000 103.851000000 +H 105.829000000 100.104000000 103.203000000 +H 107.394000000 100.487000000 103.470000000 +O 98.463200000 103.644000000 104.855000000 +H 99.448900000 103.710000000 105.009000000 +H 98.023000000 103.265000000 105.669000000 +O 101.993000000 104.014000000 93.998500000 +H 102.580000000 103.877000000 94.796800000 +H 102.066000000 103.222000000 93.391700000 +O 98.548000000 101.265000000 97.248600000 +H 98.688900000 102.140000000 97.711000000 +H 97.919900000 101.391000000 96.480800000 +O 99.706100000 94.287900000 105.534000000 +H 98.709100000 94.214400000 105.511000000 +H 100.042000000 93.988200000 106.427000000 +O 104.764000000 102.907000000 101.929000000 +H 104.157000000 103.650000000 101.648000000 +H 105.597000000 103.289000000 102.328000000 +O 104.727000000 95.435700000 98.038700000 +H 103.947000000 95.065800000 97.535100000 +H 104.496000000 95.504800000 99.009000000 +O 103.898000000 98.427900000 99.984500000 +H 103.015000000 98.654900000 99.573700000 +H 104.128000000 97.477300000 99.776100000 +O 99.166600000 96.442100000 101.723000000 +H 98.843200000 97.206600000 101.166000000 +H 99.643900000 95.783700000 101.141000000 +O 94.272300000 104.861000000 98.027200000 +H 93.274400000 104.806000000 97.992700000 +H 94.652300000 104.579000000 97.146100000 +O 94.408300000 105.314000000 100.701000000 +H 94.396800000 105.021000000 99.744600000 +H 95.353500000 105.456000000 100.995000000 +O 106.040000000 95.593700000 102.478000000 +H 105.762000000 96.182200000 103.237000000 +H 106.867000000 95.091200000 102.732000000 +O 102.891000000 100.842000000 97.477600000 +H 103.837000000 100.662000000 97.209700000 +H 102.868000000 101.166000000 98.423400000 +O 96.227200000 100.990000000 101.698000000 +H 96.148800000 100.422000000 102.517000000 +H 95.313600000 101.237000000 101.375000000 +O 95.278100000 97.169000000 98.965800000 +H 95.144800000 97.377000000 99.934800000 +H 95.587900000 97.991100000 98.488100000 +O 98.864800000 98.222500000 103.917000000 +H 98.949800000 97.463000000 103.272000000 +H 99.054800000 97.896400000 104.843000000 +O 104.578000000 100.035000000 101.952000000 +H 104.419000000 101.011000000 101.802000000 +H 104.206000000 99.514900000 101.184000000 +O 102.027000000 106.876000000 101.138000000 +H 102.200000000 106.695000000 100.170000000 +H 101.515000000 107.729000000 101.232000000 +O 102.429000000 104.060000000 101.348000000 +H 101.757000000 103.665000000 101.974000000 +H 102.209000000 105.021000000 101.185000000 +O 96.798000000 93.944200000 100.568000000 +H 97.508200000 94.486700000 100.119000000 +H 96.982400000 93.900400000 101.550000000 +O 95.118700000 97.700600000 101.797000000 +H 94.171300000 97.423600000 101.957000000 +H 95.377300000 98.403200000 102.460000000 +O 99.231100000 93.154200000 102.821000000 +H 99.331300000 93.817000000 103.563000000 +H 100.104000000 93.053400000 102.344000000 +O 103.867000000 98.228800000 93.492200000 +H 103.007000000 97.732700000 93.371700000 +H 103.971000000 98.898600000 92.757000000 +O 105.654000000 100.606000000 97.050900000 +H 105.817000000 99.917100000 96.344600000 +H 105.599000000 100.160000000 97.944500000 +O 98.708200000 103.752000000 98.244300000 +H 98.397100000 104.234000000 97.425400000 +H 99.598500000 104.111000000 98.524400000 +O 95.933300000 100.069000000 106.486000000 +H 95.896800000 99.719700000 107.422000000 +H 96.887400000 100.192000000 106.213000000 +O 97.164700000 94.924300000 105.416000000 +H 96.958600000 95.152200000 104.464000000 +H 96.312500000 94.858500000 105.935000000 +O 97.960300000 99.738400000 92.323200000 +H 98.025100000 99.203100000 91.481000000 +H 97.432100000 100.570000000 92.149900000 +O 106.052000000 98.653800000 95.236000000 +H 106.528000000 97.778800000 95.148400000 +H 105.747000000 98.958900000 94.333900000 +O 99.468000000 105.283000000 95.690500000 +H 100.395000000 104.911000000 95.651600000 +H 99.511900000 106.279000000 95.772300000 +O 103.065000000 106.418000000 98.404100000 +H 102.945000000 107.087000000 97.670300000 +H 103.919000000 106.605000000 98.888900000 +O 100.125000000 101.870000000 92.894300000 +H 99.428600000 101.298000000 92.459700000 +H 99.896600000 101.996000000 93.859700000 +O 102.160000000 94.349500000 98.747200000 +H 102.527000000 93.534300000 98.299300000 +H 102.436000000 94.354600000 99.708300000 +O 101.909000000 92.717000000 101.661000000 +H 102.638000000 93.177700000 102.168000000 +H 102.284000000 91.918600000 101.190000000 +O 97.894300000 93.636500000 97.704600000 +H 96.921800000 93.462300000 97.549500000 +H 98.231600000 94.279000000 97.016600000 +O 98.771600000 100.739000000 106.197000000 +H 99.398100000 101.178000000 106.840000000 +H 99.297200000 100.231000000 105.514000000 +O 94.443800000 94.651000000 99.373500000 +H 95.293900000 94.301900000 99.767700000 +H 94.463600000 95.650800000 99.370600000 +O 103.454000000 97.589900000 96.421800000 +H 103.885000000 98.135100000 95.702500000 +H 104.142000000 97.009800000 96.857500000 +O 97.663000000 103.755000000 93.716600000 +H 97.878200000 104.678000000 94.035900000 +H 98.124000000 103.587000000 92.845200000 +O 95.630300000 99.996600000 98.245400000 +H 96.540400000 100.410000000 98.268900000 +H 94.982900000 100.638000000 97.834500000 +O 99.505700000 94.600000000 99.762000000 +H 98.915000000 94.230400000 99.044800000 +H 100.455000000 94.596700000 99.446700000 +O 93.723900000 101.482000000 100.592000000 +H 93.285300000 102.174000000 100.019000000 +H 93.374700000 100.577000000 100.347000000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 99.128800000 95.980100000 96.602100000 +H 99.037300000 96.941600000 96.861200000 +H 100.097000000 95.729200000 96.588100000 +O 103.544000000 99.038500000 104.412000000 +H 104.182000000 99.184200000 103.655000000 +H 102.605000000 99.102500000 104.073000000 +O 99.482600000 98.237100000 94.256600000 +H 98.968300000 98.764500000 93.580400000 +H 100.018000000 98.859300000 94.827300000 +O 97.111700000 105.889000000 101.284000000 +H 97.802500000 106.403000000 101.792000000 +H 97.487600000 105.002000000 101.014000000 +O 103.133000000 101.981000000 104.535000000 +H 103.581000000 102.216000000 103.673000000 +H 102.678000000 101.095000000 104.444000000 +O 101.858000000 95.959800000 104.565000000 +H 102.487000000 95.187200000 104.478000000 +H 100.951000000 95.624200000 104.818000000 +O 106.341000000 99.341900000 99.395500000 +H 105.471000000 98.930500000 99.666400000 +H 107.040000000 99.120000000 100.075000000 +O 101.744000000 97.726000000 106.886000000 +H 102.077000000 97.166200000 106.128000000 +H 102.140000000 98.642000000 106.824000000 +O 95.154200000 95.840000000 96.171700000 +H 95.973800000 95.821000000 95.599100000 +H 95.413800000 96.026700000 97.119200000 +O 101.836000000 97.446700000 102.110000000 +H 100.860000000 97.397400000 101.898000000 +H 101.991000000 97.133400000 103.047000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 +O 99.984700000 103.272000000 102.307000000 +H 99.640700000 103.104000000 103.231000000 +H 99.216500000 103.453000000 101.693000000 +O 98.710500000 97.265300000 106.544000000 +H 99.310200000 97.423100000 107.329000000 +H 98.159900000 96.446100000 106.705000000 diff --git a/benchmarks/molecules/water_clusters/009.xyz b/benchmarks/molecules/water_clusters/009.xyz new file mode 100644 index 00000000..7ac20eb1 --- /dev/null +++ b/benchmarks/molecules/water_clusters/009.xyz @@ -0,0 +1,302 @@ +300 + +O 104.008000000 103.223000000 106.729000000 +H 105.001000000 103.340000000 106.712000000 +H 103.694000000 102.910000000 105.833000000 +O 96.287700000 105.219000000 103.893000000 +H 96.781000000 104.419000000 104.235000000 +H 96.485600000 105.342000000 102.921000000 +O 101.140000000 103.233000000 105.698000000 +H 101.800000000 103.577000000 106.365000000 +H 101.619000000 102.707000000 104.996000000 +O 95.023600000 104.404000000 95.147300000 +H 94.639700000 103.512000000 94.908900000 +H 95.948400000 104.479000000 94.774200000 +O 93.054300000 101.153000000 103.187000000 +H 93.153500000 102.024000000 103.669000000 +H 93.282100000 101.279000000 102.221000000 +O 103.662000000 102.962000000 95.665500000 +H 104.569000000 102.981000000 96.087800000 +H 103.118000000 102.230000000 96.076400000 +O 101.495000000 96.997200000 93.049900000 +H 100.616000000 97.208900000 93.477800000 +H 101.533000000 96.022200000 92.831100000 +O 97.873900000 103.017000000 100.816000000 +H 98.128600000 103.038000000 99.848800000 +H 97.173800000 102.317000000 100.960000000 +O 103.316000000 100.168000000 106.766000000 +H 103.471000000 99.766300000 105.864000000 +H 103.282000000 101.164000000 106.687000000 +O 101.099000000 104.850000000 99.030700000 +H 101.483000000 104.260000000 99.740500000 +H 101.829000000 105.396000000 98.619700000 +O 96.773600000 102.808000000 107.170000000 +H 96.854200000 102.589000000 108.142000000 +H 96.421400000 102.013000000 106.676000000 +O 105.665000000 96.993900000 105.027000000 +H 104.749000000 97.393500000 104.997000000 +H 106.330000000 97.657600000 104.684000000 +O 100.645000000 100.169000000 95.891500000 +H 101.491000000 100.305000000 96.406200000 +H 99.888700000 100.618000000 96.367800000 +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 100.747000000 100.164000000 103.736000000 +H 100.658000000 100.628000000 102.855000000 +H 100.105000000 99.398600000 103.776000000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 99.241500000 107.096000000 102.899000000 +H 99.533400000 106.810000000 103.812000000 +H 99.798300000 107.871000000 102.599000000 +O 96.373500000 99.168100000 103.663000000 +H 96.032600000 99.385200000 104.578000000 +H 97.337900000 98.909800000 103.720000000 +O 92.236600000 98.969600000 99.830200000 +H 92.257200000 98.492300000 100.709000000 +H 92.125400000 98.304300000 99.091900000 +O 96.740700000 101.641000000 95.246600000 +H 95.765200000 101.625000000 95.027600000 +H 97.256100000 101.957000000 94.450300000 +O 106.873000000 103.046000000 96.266300000 +H 106.397000000 102.273000000 96.684800000 +H 107.190000000 102.788000000 95.353900000 +O 96.855700000 95.639100000 102.759000000 +H 96.157300000 96.250200000 102.386000000 +H 97.741700000 95.856700000 102.349000000 +O 97.209000000 95.906800000 94.278900000 +H 97.087400000 95.813100000 93.290800000 +H 98.015300000 96.468800000 94.463700000 +O 103.969000000 95.809900000 100.611000000 +H 104.656000000 95.771500000 101.336000000 +H 103.152000000 96.276300000 100.950000000 +O 106.587000000 100.034000000 103.851000000 +H 105.829000000 100.104000000 103.203000000 +H 107.394000000 100.487000000 103.470000000 +O 98.463200000 103.644000000 104.855000000 +H 99.448900000 103.710000000 105.009000000 +H 98.023000000 103.265000000 105.669000000 +O 101.993000000 104.014000000 93.998500000 +H 102.580000000 103.877000000 94.796800000 +H 102.066000000 103.222000000 93.391700000 +O 98.548000000 101.265000000 97.248600000 +H 98.688900000 102.140000000 97.711000000 +H 97.919900000 101.391000000 96.480800000 +O 99.706100000 94.287900000 105.534000000 +H 98.709100000 94.214400000 105.511000000 +H 100.042000000 93.988200000 106.427000000 +O 104.764000000 102.907000000 101.929000000 +H 104.157000000 103.650000000 101.648000000 +H 105.597000000 103.289000000 102.328000000 +O 104.727000000 95.435700000 98.038700000 +H 103.947000000 95.065800000 97.535100000 +H 104.496000000 95.504800000 99.009000000 +O 103.898000000 98.427900000 99.984500000 +H 103.015000000 98.654900000 99.573700000 +H 104.128000000 97.477300000 99.776100000 +O 99.166600000 96.442100000 101.723000000 +H 98.843200000 97.206600000 101.166000000 +H 99.643900000 95.783700000 101.141000000 +O 94.272300000 104.861000000 98.027200000 +H 93.274400000 104.806000000 97.992700000 +H 94.652300000 104.579000000 97.146100000 +O 107.544000000 95.677300000 98.777200000 +H 106.627000000 95.279200000 98.760300000 +H 107.707000000 96.101300000 99.668000000 +O 94.408300000 105.314000000 100.701000000 +H 94.396800000 105.021000000 99.744600000 +H 95.353500000 105.456000000 100.995000000 +O 106.040000000 95.593700000 102.478000000 +H 105.762000000 96.182200000 103.237000000 +H 106.867000000 95.091200000 102.732000000 +O 102.891000000 100.842000000 97.477600000 +H 103.837000000 100.662000000 97.209700000 +H 102.868000000 101.166000000 98.423400000 +O 107.589000000 103.376000000 102.668000000 +H 107.461000000 104.111000000 103.335000000 +H 107.934000000 103.760000000 101.812000000 +O 96.227200000 100.990000000 101.698000000 +H 96.148800000 100.422000000 102.517000000 +H 95.313600000 101.237000000 101.375000000 +O 107.826000000 96.984100000 101.113000000 +H 108.466000000 97.497100000 101.685000000 +H 107.058000000 96.670200000 101.672000000 +O 92.639000000 96.955600000 97.829000000 +H 93.628900000 97.092800000 97.866000000 +H 92.443100000 96.008400000 97.575100000 +O 95.278100000 97.169000000 98.965800000 +H 95.144800000 97.377000000 99.934800000 +H 95.587900000 97.991100000 98.488100000 +O 98.864800000 98.222500000 103.917000000 +H 98.949800000 97.463000000 103.272000000 +H 99.054800000 97.896400000 104.843000000 +O 104.578000000 100.035000000 101.952000000 +H 104.419000000 101.011000000 101.802000000 +H 104.206000000 99.514900000 101.184000000 +O 102.027000000 106.876000000 101.138000000 +H 102.200000000 106.695000000 100.170000000 +H 101.515000000 107.729000000 101.232000000 +O 102.429000000 104.060000000 101.348000000 +H 101.757000000 103.665000000 101.974000000 +H 102.209000000 105.021000000 101.185000000 +O 96.798000000 93.944200000 100.568000000 +H 97.508200000 94.486700000 100.119000000 +H 96.982400000 93.900400000 101.550000000 +O 95.118700000 97.700600000 101.797000000 +H 94.171300000 97.423600000 101.957000000 +H 95.377300000 98.403200000 102.460000000 +O 99.231100000 93.154200000 102.821000000 +H 99.331300000 93.817000000 103.563000000 +H 100.104000000 93.053400000 102.344000000 +O 103.395000000 93.763800000 96.088800000 +H 102.541000000 93.361100000 95.758700000 +H 103.753000000 94.395700000 95.401500000 +O 103.867000000 98.228800000 93.492200000 +H 103.007000000 97.732700000 93.371700000 +H 103.971000000 98.898600000 92.757000000 +O 99.725400000 101.618000000 108.746000000 +H 99.296300000 102.517000000 108.650000000 +H 100.719000000 101.725000000 108.777000000 +O 105.654000000 100.606000000 97.050900000 +H 105.817000000 99.917100000 96.344600000 +H 105.599000000 100.160000000 97.944500000 +O 98.708200000 103.752000000 98.244300000 +H 98.397100000 104.234000000 97.425400000 +H 99.598500000 104.111000000 98.524400000 +O 104.529000000 95.238500000 94.088100000 +H 104.552000000 94.923200000 93.139400000 +H 104.087000000 96.134100000 94.131500000 +O 95.933300000 100.069000000 106.486000000 +H 95.896800000 99.719700000 107.422000000 +H 96.887400000 100.192000000 106.213000000 +O 97.164700000 94.924300000 105.416000000 +H 96.958600000 95.152200000 104.464000000 +H 96.312500000 94.858500000 105.935000000 +O 97.960300000 99.738400000 92.323200000 +H 98.025100000 99.203100000 91.481000000 +H 97.432100000 100.570000000 92.149900000 +O 95.964200000 107.132000000 98.369800000 +H 96.229400000 107.195000000 99.332000000 +H 95.398600000 106.319000000 98.232100000 +O 103.231000000 106.520000000 103.603000000 +H 102.896000000 106.662000000 102.672000000 +H 102.458000000 106.505000000 104.237000000 +O 92.780100000 95.010400000 101.424000000 +H 92.910900000 94.266600000 102.079000000 +H 93.220200000 94.772800000 100.558000000 +O 99.794600000 91.488300000 100.023000000 +H 100.445000000 92.220600000 100.224000000 +H 98.904700000 91.885300000 99.798800000 +O 106.052000000 98.653800000 95.236000000 +H 106.528000000 97.778800000 95.148400000 +H 105.747000000 98.958900000 94.333900000 +O 99.468000000 105.283000000 95.690500000 +H 100.395000000 104.911000000 95.651600000 +H 99.511900000 106.279000000 95.772300000 +O 103.065000000 106.418000000 98.404100000 +H 102.945000000 107.087000000 97.670300000 +H 103.919000000 106.605000000 98.888900000 +O 100.125000000 101.870000000 92.894300000 +H 99.428600000 101.298000000 92.459700000 +H 99.896600000 101.996000000 93.859700000 +O 92.131300000 97.642300000 102.177000000 +H 91.317000000 97.791400000 102.738000000 +H 92.266500000 96.661000000 102.040000000 +O 102.160000000 94.349500000 98.747200000 +H 102.527000000 93.534300000 98.299300000 +H 102.436000000 94.354600000 99.708300000 +O 101.909000000 92.717000000 101.661000000 +H 102.638000000 93.177700000 102.168000000 +H 102.284000000 91.918600000 101.190000000 +O 101.195000000 106.928000000 105.456000000 +H 101.206000000 106.434000000 106.325000000 +H 100.871000000 107.862000000 105.607000000 +O 97.894300000 93.636500000 97.704600000 +H 96.921800000 93.462300000 97.549500000 +H 98.231600000 94.279000000 97.016600000 +O 98.771600000 100.739000000 106.197000000 +H 99.398100000 101.178000000 106.840000000 +H 99.297200000 100.231000000 105.514000000 +O 94.443800000 94.651000000 99.373500000 +H 95.293900000 94.301900000 99.767700000 +H 94.463600000 95.650800000 99.370600000 +O 103.454000000 97.589900000 96.421800000 +H 103.885000000 98.135100000 95.702500000 +H 104.142000000 97.009800000 96.857500000 +O 97.663000000 103.755000000 93.716600000 +H 97.878200000 104.678000000 94.035900000 +H 98.124000000 103.587000000 92.845200000 +O 93.470000000 98.898100000 105.386000000 +H 93.191400000 99.414300000 104.576000000 +H 94.083300000 99.457800000 105.943000000 +O 92.500500000 101.454000000 96.905900000 +H 92.032300000 101.750000000 97.738200000 +H 92.354500000 100.473000000 96.773000000 +O 95.630300000 99.996600000 98.245400000 +H 96.540400000 100.410000000 98.268900000 +H 94.982900000 100.638000000 97.834500000 +O 103.773000000 93.788800000 103.794000000 +H 103.865000000 93.694200000 104.785000000 +H 104.676000000 93.734600000 103.368000000 +O 105.714000000 105.895000000 99.861500000 +H 105.704000000 106.458000000 100.688000000 +H 106.647000000 105.580000000 99.685100000 +O 99.505700000 94.600000000 99.762000000 +H 98.915000000 94.230400000 99.044800000 +H 100.455000000 94.596700000 99.446700000 +O 93.723900000 101.482000000 100.592000000 +H 93.285300000 102.174000000 100.019000000 +H 93.374700000 100.577000000 100.347000000 +O 92.515400000 104.356000000 102.399000000 +H 92.834800000 104.698000000 103.283000000 +H 93.169800000 104.611000000 101.687000000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 99.128800000 95.980100000 96.602100000 +H 99.037300000 96.941600000 96.861200000 +H 100.097000000 95.729200000 96.588100000 +O 103.544000000 99.038500000 104.412000000 +H 104.182000000 99.184200000 103.655000000 +H 102.605000000 99.102500000 104.073000000 +O 99.482600000 98.237100000 94.256600000 +H 98.968300000 98.764500000 93.580400000 +H 100.018000000 98.859300000 94.827300000 +O 97.111700000 105.889000000 101.284000000 +H 97.802500000 106.403000000 101.792000000 +H 97.487600000 105.002000000 101.014000000 +O 103.133000000 101.981000000 104.535000000 +H 103.581000000 102.216000000 103.673000000 +H 102.678000000 101.095000000 104.444000000 +O 101.858000000 95.959800000 104.565000000 +H 102.487000000 95.187200000 104.478000000 +H 100.951000000 95.624200000 104.818000000 +O 106.341000000 99.341900000 99.395500000 +H 105.471000000 98.930500000 99.666400000 +H 107.040000000 99.120000000 100.075000000 +O 101.744000000 97.726000000 106.886000000 +H 102.077000000 97.166200000 106.128000000 +H 102.140000000 98.642000000 106.824000000 +O 95.154200000 95.840000000 96.171700000 +H 95.973800000 95.821000000 95.599100000 +H 95.413800000 96.026700000 97.119200000 +O 101.836000000 97.446700000 102.110000000 +H 100.860000000 97.397400000 101.898000000 +H 101.991000000 97.133400000 103.047000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 +O 99.984700000 103.272000000 102.307000000 +H 99.640700000 103.104000000 103.231000000 +H 99.216500000 103.453000000 101.693000000 +O 94.116000000 101.973000000 94.712100000 +H 93.626400000 101.369000000 94.082700000 +H 93.593800000 102.064000000 95.560000000 +O 98.710500000 97.265300000 106.544000000 +H 99.310200000 97.423100000 107.329000000 +H 98.159900000 96.446100000 106.705000000 diff --git a/benchmarks/molecules/water_clusters/010.xyz b/benchmarks/molecules/water_clusters/010.xyz new file mode 100644 index 00000000..ddf34b4e --- /dev/null +++ b/benchmarks/molecules/water_clusters/010.xyz @@ -0,0 +1,419 @@ +417 + +O 104.008000000 103.223000000 106.729000000 +H 105.001000000 103.340000000 106.712000000 +H 103.694000000 102.910000000 105.833000000 +O 96.287700000 105.219000000 103.893000000 +H 96.781000000 104.419000000 104.235000000 +H 96.485600000 105.342000000 102.921000000 +O 101.140000000 103.233000000 105.698000000 +H 101.800000000 103.577000000 106.365000000 +H 101.619000000 102.707000000 104.996000000 +O 95.023600000 104.404000000 95.147300000 +H 94.639700000 103.512000000 94.908900000 +H 95.948400000 104.479000000 94.774200000 +O 96.652200000 92.863600000 94.168600000 +H 96.603500000 93.849000000 94.005100000 +H 95.732400000 92.507100000 94.332700000 +O 93.054300000 101.153000000 103.187000000 +H 93.153500000 102.024000000 103.669000000 +H 93.282100000 101.279000000 102.221000000 +O 100.056000000 104.833000000 91.780500000 +H 100.663000000 104.400000000 92.446900000 +H 99.761600000 105.723000000 92.126900000 +O 103.662000000 102.962000000 95.665500000 +H 104.569000000 102.981000000 96.087800000 +H 103.118000000 102.230000000 96.076400000 +O 101.495000000 96.997200000 93.049900000 +H 100.616000000 97.208900000 93.477800000 +H 101.533000000 96.022200000 92.831100000 +O 97.873900000 103.017000000 100.816000000 +H 98.128600000 103.038000000 99.848800000 +H 97.173800000 102.317000000 100.960000000 +O 103.316000000 100.168000000 106.766000000 +H 103.471000000 99.766300000 105.864000000 +H 103.282000000 101.164000000 106.687000000 +O 101.099000000 104.850000000 99.030700000 +H 101.483000000 104.260000000 99.740500000 +H 101.829000000 105.396000000 98.619700000 +O 96.773600000 102.808000000 107.170000000 +H 96.854200000 102.589000000 108.142000000 +H 96.421400000 102.013000000 106.676000000 +O 105.665000000 96.993900000 105.027000000 +H 104.749000000 97.393500000 104.997000000 +H 106.330000000 97.657600000 104.684000000 +O 92.694200000 96.495000000 105.409000000 +H 91.854100000 96.418200000 104.872000000 +H 92.964700000 97.455900000 105.469000000 +O 105.279000000 92.275800000 100.558000000 +H 104.667000000 91.493800000 100.676000000 +H 105.767000000 92.188100000 99.689400000 +O 100.645000000 100.169000000 95.891500000 +H 101.491000000 100.305000000 96.406200000 +H 99.888700000 100.618000000 96.367800000 +O 99.814000000 100.835000000 101.232000000 +H 99.329200000 99.976800000 101.063000000 +H 99.151600000 101.561000000 101.414000000 +O 98.804000000 98.512200000 97.758100000 +H 99.782100000 98.646900000 97.916700000 +H 98.421800000 99.326500000 97.321300000 +O 100.747000000 100.164000000 103.736000000 +H 100.658000000 100.628000000 102.855000000 +H 100.105000000 99.398600000 103.776000000 +O 98.070300000 98.516900000 100.438000000 +H 97.172800000 98.878600000 100.690000000 +H 98.194000000 98.592200000 99.448100000 +O 99.241500000 107.096000000 102.899000000 +H 99.533400000 106.810000000 103.812000000 +H 99.798300000 107.871000000 102.599000000 +O 101.321000000 92.439600000 94.597100000 +H 100.828000000 92.917700000 93.869600000 +H 100.676000000 91.895200000 95.133600000 +O 97.511000000 109.183000000 97.591000000 +H 97.971100000 109.344000000 98.464100000 +H 97.118900000 108.263000000 97.585400000 +O 96.373500000 99.168100000 103.663000000 +H 96.032600000 99.385200000 104.578000000 +H 97.337900000 98.909800000 103.720000000 +O 98.712300000 104.348000000 108.710000000 +H 99.403100000 105.010000000 108.418000000 +H 97.801400000 104.702000000 108.498000000 +O 92.236600000 98.969600000 99.830200000 +H 92.257200000 98.492300000 100.709000000 +H 92.125400000 98.304300000 99.091900000 +O 96.740700000 101.641000000 95.246600000 +H 95.765200000 101.625000000 95.027600000 +H 97.256100000 101.957000000 94.450300000 +O 103.992000000 93.621500000 106.488000000 +H 103.820000000 92.924200000 107.184000000 +H 104.711000000 94.239300000 106.806000000 +O 93.812300000 95.791400000 93.897200000 +H 93.511100000 94.848700000 93.753200000 +H 94.305800000 95.854800000 94.764600000 +O 105.589000000 107.064000000 102.225000000 +H 104.796000000 106.766000000 102.758000000 +H 105.511000000 108.041000000 102.031000000 +O 94.447800000 93.062900000 97.104400000 +H 94.685200000 93.846500000 96.530300000 +H 94.118000000 93.387100000 97.991100000 +O 106.873000000 103.046000000 96.266300000 +H 106.397000000 102.273000000 96.684800000 +H 107.190000000 102.788000000 95.353900000 +O 96.855700000 95.639100000 102.759000000 +H 96.157300000 96.250200000 102.386000000 +H 97.741700000 95.856700000 102.349000000 +O 97.209000000 95.906800000 94.278900000 +H 97.087400000 95.813100000 93.290800000 +H 98.015300000 96.468800000 94.463700000 +O 103.969000000 95.809900000 100.611000000 +H 104.656000000 95.771500000 101.336000000 +H 103.152000000 96.276300000 100.950000000 +O 106.587000000 100.034000000 103.851000000 +H 105.829000000 100.104000000 103.203000000 +H 107.394000000 100.487000000 103.470000000 +O 97.068600000 95.759300000 91.564500000 +H 97.632500000 96.221500000 90.880200000 +H 97.128400000 94.769800000 91.432600000 +O 100.377000000 94.639000000 92.016300000 +H 100.540000000 94.798900000 91.042700000 +H 99.775700000 93.847800000 92.128000000 +O 98.463200000 103.644000000 104.855000000 +H 99.448900000 103.710000000 105.009000000 +H 98.023000000 103.265000000 105.669000000 +O 101.993000000 104.014000000 93.998500000 +H 102.580000000 103.877000000 94.796800000 +H 102.066000000 103.222000000 93.391700000 +O 91.476100000 103.263000000 99.076600000 +H 91.525700000 104.257000000 98.982100000 +H 90.519400000 102.973000000 99.050700000 +O 98.548000000 101.265000000 97.248600000 +H 98.688900000 102.140000000 97.711000000 +H 97.919900000 101.391000000 96.480800000 +O 99.706100000 94.287900000 105.534000000 +H 98.709100000 94.214400000 105.511000000 +H 100.042000000 93.988200000 106.427000000 +O 104.764000000 102.907000000 101.929000000 +H 104.157000000 103.650000000 101.648000000 +H 105.597000000 103.289000000 102.328000000 +O 104.727000000 95.435700000 98.038700000 +H 103.947000000 95.065800000 97.535100000 +H 104.496000000 95.504800000 99.009000000 +O 103.898000000 98.427900000 99.984500000 +H 103.015000000 98.654900000 99.573700000 +H 104.128000000 97.477300000 99.776100000 +O 108.743000000 100.423000000 97.268200000 +H 107.828000000 100.128000000 97.542100000 +H 109.219000000 99.663600000 96.823800000 +O 99.166600000 96.442100000 101.723000000 +H 98.843200000 97.206600000 101.166000000 +H 99.643900000 95.783700000 101.141000000 +O 94.272300000 104.861000000 98.027200000 +H 93.274400000 104.806000000 97.992700000 +H 94.652300000 104.579000000 97.146100000 +O 107.544000000 95.677300000 98.777200000 +H 106.627000000 95.279200000 98.760300000 +H 107.707000000 96.101300000 99.668000000 +O 94.408300000 105.314000000 100.701000000 +H 94.396800000 105.021000000 99.744600000 +H 95.353500000 105.456000000 100.995000000 +O 106.040000000 95.593700000 102.478000000 +H 105.762000000 96.182200000 103.237000000 +H 106.867000000 95.091200000 102.732000000 +O 102.891000000 100.842000000 97.477600000 +H 103.837000000 100.662000000 97.209700000 +H 102.868000000 101.166000000 98.423400000 +O 106.874000000 99.683900000 106.428000000 +H 106.236000000 100.310000000 106.876000000 +H 106.818000000 99.803900000 105.436000000 +O 107.589000000 103.376000000 102.668000000 +H 107.461000000 104.111000000 103.335000000 +H 107.934000000 103.760000000 101.812000000 +O 96.227200000 100.990000000 101.698000000 +H 96.148800000 100.422000000 102.517000000 +H 95.313600000 101.237000000 101.375000000 +O 107.826000000 96.984100000 101.113000000 +H 108.466000000 97.497100000 101.685000000 +H 107.058000000 96.670200000 101.672000000 +O 92.639000000 96.955600000 97.829000000 +H 93.628900000 97.092800000 97.866000000 +H 92.443100000 96.008400000 97.575100000 +O 95.278100000 97.169000000 98.965800000 +H 95.144800000 97.377000000 99.934800000 +H 95.587900000 97.991100000 98.488100000 +O 100.904000000 98.618600000 90.342100000 +H 101.764000000 98.307000000 89.937000000 +H 100.795000000 98.208600000 91.247600000 +O 98.864800000 98.222500000 103.917000000 +H 98.949800000 97.463000000 103.272000000 +H 99.054800000 97.896400000 104.843000000 +O 104.578000000 100.035000000 101.952000000 +H 104.419000000 101.011000000 101.802000000 +H 104.206000000 99.514900000 101.184000000 +O 102.027000000 106.876000000 101.138000000 +H 102.200000000 106.695000000 100.170000000 +H 101.515000000 107.729000000 101.232000000 +O 102.429000000 104.060000000 101.348000000 +H 101.757000000 103.665000000 101.974000000 +H 102.209000000 105.021000000 101.185000000 +O 109.444000000 101.526000000 99.560200000 +H 109.322000000 101.267000000 98.601900000 +H 110.317000000 102.000000000 99.669500000 +O 96.798000000 93.944200000 100.568000000 +H 97.508200000 94.486700000 100.119000000 +H 96.982400000 93.900400000 101.550000000 +O 108.101000000 103.927000000 99.741400000 +H 108.585000000 103.064000000 99.882900000 +H 108.116000000 104.162000000 98.769500000 +O 95.118700000 97.700600000 101.797000000 +H 94.171300000 97.423600000 101.957000000 +H 95.377300000 98.403200000 102.460000000 +O 99.231100000 93.154200000 102.821000000 +H 99.331300000 93.817000000 103.563000000 +H 100.104000000 93.053400000 102.344000000 +O 103.395000000 93.763800000 96.088800000 +H 102.541000000 93.361100000 95.758700000 +H 103.753000000 94.395700000 95.401500000 +O 103.867000000 98.228800000 93.492200000 +H 103.007000000 97.732700000 93.371700000 +H 103.971000000 98.898600000 92.757000000 +O 99.725400000 101.618000000 108.746000000 +H 99.296300000 102.517000000 108.650000000 +H 100.719000000 101.725000000 108.777000000 +O 105.654000000 100.606000000 97.050900000 +H 105.817000000 99.917100000 96.344600000 +H 105.599000000 100.160000000 97.944500000 +O 98.708200000 103.752000000 98.244300000 +H 98.397100000 104.234000000 97.425400000 +H 99.598500000 104.111000000 98.524400000 +O 93.574900000 105.539000000 104.514000000 +H 93.322000000 106.507000000 104.525000000 +H 94.568500000 105.454000000 104.587000000 +O 104.529000000 95.238500000 94.088100000 +H 104.552000000 94.923200000 93.139400000 +H 104.087000000 96.134100000 94.131500000 +O 100.150000000 108.297000000 95.202800000 +H 101.071000000 108.189000000 95.577600000 +H 99.689000000 109.055000000 95.663400000 +O 97.590800000 90.988100000 102.432000000 +H 96.888100000 91.054500000 101.724000000 +H 98.094000000 91.850700000 102.484000000 +O 95.933300000 100.069000000 106.486000000 +H 95.896800000 99.719700000 107.422000000 +H 96.887400000 100.192000000 106.213000000 +O 97.164700000 94.924300000 105.416000000 +H 96.958600000 95.152200000 104.464000000 +H 96.312500000 94.858500000 105.935000000 +O 97.960300000 99.738400000 92.323200000 +H 98.025100000 99.203100000 91.481000000 +H 97.432100000 100.570000000 92.149900000 +O 95.964200000 107.132000000 98.369800000 +H 96.229400000 107.195000000 99.332000000 +H 95.398600000 106.319000000 98.232100000 +O 103.231000000 106.520000000 103.603000000 +H 102.896000000 106.662000000 102.672000000 +H 102.458000000 106.505000000 104.237000000 +O 92.780100000 95.010400000 101.424000000 +H 92.910900000 94.266600000 102.079000000 +H 93.220200000 94.772800000 100.558000000 +O 99.794600000 91.488300000 100.023000000 +H 100.445000000 92.220600000 100.224000000 +H 98.904700000 91.885300000 99.798800000 +O 106.052000000 98.653800000 95.236000000 +H 106.528000000 97.778800000 95.148400000 +H 105.747000000 98.958900000 94.333900000 +O 98.547200000 109.727000000 100.061000000 +H 98.227700000 109.627000000 101.003000000 +H 98.884800000 110.658000000 99.920200000 +O 98.521800000 99.296300000 109.570000000 +H 99.206400000 98.567900000 109.543000000 +H 98.932100000 100.151000000 109.251000000 +O 99.468000000 105.283000000 95.690500000 +H 100.395000000 104.911000000 95.651600000 +H 99.511900000 106.279000000 95.772300000 +O 103.065000000 106.418000000 98.404100000 +H 102.945000000 107.087000000 97.670300000 +H 103.919000000 106.605000000 98.888900000 +O 100.125000000 101.870000000 92.894300000 +H 99.428600000 101.298000000 92.459700000 +H 99.896600000 101.996000000 93.859700000 +O 92.131300000 97.642300000 102.177000000 +H 91.317000000 97.791400000 102.738000000 +H 92.266500000 96.661000000 102.040000000 +O 102.160000000 94.349500000 98.747200000 +H 102.527000000 93.534300000 98.299300000 +H 102.436000000 94.354600000 99.708300000 +O 101.909000000 92.717000000 101.661000000 +H 102.638000000 93.177700000 102.168000000 +H 102.284000000 91.918600000 101.190000000 +O 93.189700000 99.957300000 93.042600000 +H 92.585400000 99.291400000 93.479900000 +H 93.929500000 99.477100000 92.571400000 +O 97.613900000 109.323000000 102.431000000 +H 98.079300000 108.566000000 102.889000000 +H 97.464100000 110.066000000 103.084000000 +O 101.195000000 106.928000000 105.456000000 +H 101.206000000 106.434000000 106.325000000 +H 100.871000000 107.862000000 105.607000000 +O 97.894300000 93.636500000 97.704600000 +H 96.921800000 93.462300000 97.549500000 +H 98.231600000 94.279000000 97.016600000 +O 98.771600000 100.739000000 106.197000000 +H 99.398100000 101.178000000 106.840000000 +H 99.297200000 100.231000000 105.514000000 +O 96.613800000 101.997000000 91.481900000 +H 96.731600000 102.040000000 90.489800000 +H 96.070000000 102.779000000 91.787000000 +O 94.443800000 94.651000000 99.373500000 +H 95.293900000 94.301900000 99.767700000 +H 94.463600000 95.650800000 99.370600000 +O 102.486000000 102.214000000 109.341000000 +H 103.154000000 101.634000000 109.808000000 +H 102.963000000 102.838000000 108.721000000 +O 103.454000000 97.589900000 96.421800000 +H 103.885000000 98.135100000 95.702500000 +H 104.142000000 97.009800000 96.857500000 +O 97.663000000 103.755000000 93.716600000 +H 97.878200000 104.678000000 94.035900000 +H 98.124000000 103.587000000 92.845200000 +O 94.716800000 95.339500000 106.730000000 +H 94.731500000 95.780000000 107.628000000 +H 94.004900000 95.757200000 106.165000000 +O 100.740000000 109.200000000 101.978000000 +H 100.530000000 109.974000000 102.574000000 +H 100.204000000 109.272000000 101.137000000 +O 108.674000000 100.948000000 102.346000000 +H 108.614000000 100.958000000 101.348000000 +H 108.378000000 101.833000000 102.706000000 +O 104.383000000 100.426000000 91.793300000 +H 103.614000000 101.043000000 91.624700000 +H 105.239000000 100.940000000 91.747600000 +O 93.470000000 98.898100000 105.386000000 +H 93.191400000 99.414300000 104.576000000 +H 94.083300000 99.457800000 105.943000000 +O 92.500500000 101.454000000 96.905900000 +H 92.032300000 101.750000000 97.738200000 +H 92.354500000 100.473000000 96.773000000 +O 95.630300000 99.996600000 98.245400000 +H 96.540400000 100.410000000 98.268900000 +H 94.982900000 100.638000000 97.834500000 +O 91.348100000 98.770100000 96.465200000 +H 91.788200000 98.003500000 96.932700000 +H 90.438200000 98.918700000 96.852400000 +O 103.773000000 93.788800000 103.794000000 +H 103.865000000 93.694200000 104.785000000 +H 104.676000000 93.734600000 103.368000000 +O 105.714000000 105.895000000 99.861500000 +H 105.704000000 106.458000000 100.688000000 +H 106.647000000 105.580000000 99.685100000 +O 99.505700000 94.600000000 99.762000000 +H 98.915000000 94.230400000 99.044800000 +H 100.455000000 94.596700000 99.446700000 +O 93.723900000 101.482000000 100.592000000 +H 93.285300000 102.174000000 100.019000000 +H 93.374700000 100.577000000 100.347000000 +O 92.515400000 104.356000000 102.399000000 +H 92.834800000 104.698000000 103.283000000 +H 93.169800000 104.611000000 101.687000000 +O 102.360000000 101.551000000 99.964500000 +H 102.675000000 102.370000000 100.444000000 +H 101.556000000 101.180000000 100.430000000 +O 99.128800000 95.980100000 96.602100000 +H 99.037300000 96.941600000 96.861200000 +H 100.097000000 95.729200000 96.588100000 +O 95.836300000 91.031200000 100.005000000 +H 95.675500000 91.876800000 99.496200000 +H 95.236400000 91.004200000 100.805000000 +O 100.395000000 90.892200000 97.253800000 +H 99.729500000 90.724800000 97.981200000 +H 101.269000000 91.162100000 97.657400000 +O 103.544000000 99.038500000 104.412000000 +H 104.182000000 99.184200000 103.655000000 +H 102.605000000 99.102500000 104.073000000 +O 99.482600000 98.237100000 94.256600000 +H 98.968300000 98.764500000 93.580400000 +H 100.018000000 98.859300000 94.827300000 +O 97.111700000 105.889000000 101.284000000 +H 97.802500000 106.403000000 101.792000000 +H 97.487600000 105.002000000 101.014000000 +O 103.133000000 101.981000000 104.535000000 +H 103.581000000 102.216000000 103.673000000 +H 102.678000000 101.095000000 104.444000000 +O 101.858000000 95.959800000 104.565000000 +H 102.487000000 95.187200000 104.478000000 +H 100.951000000 95.624200000 104.818000000 +O 102.969000000 107.814000000 95.734000000 +H 102.874000000 108.030000000 94.762400000 +H 103.931000000 107.884000000 95.998000000 +O 106.341000000 99.341900000 99.395500000 +H 105.471000000 98.930500000 99.666400000 +H 107.040000000 99.120000000 100.075000000 +O 101.744000000 97.726000000 106.886000000 +H 102.077000000 97.166200000 106.128000000 +H 102.140000000 98.642000000 106.824000000 +O 95.154200000 95.840000000 96.171700000 +H 95.973800000 95.821000000 95.599100000 +H 95.413800000 96.026700000 97.119200000 +O 101.836000000 97.446700000 102.110000000 +H 100.860000000 97.397400000 101.898000000 +H 101.991000000 97.133400000 103.047000000 +O 101.665000000 98.316100000 98.319400000 +H 101.904000000 99.233800000 98.002000000 +H 102.224000000 97.640900000 97.837700000 +O 99.984700000 103.272000000 102.307000000 +H 99.640700000 103.104000000 103.231000000 +H 99.216500000 103.453000000 101.693000000 +O 92.533800000 103.109000000 105.488000000 +H 92.597100000 102.910000000 106.466000000 +H 93.148200000 103.865000000 105.261000000 +O 94.116000000 101.973000000 94.712100000 +H 93.626400000 101.369000000 94.082700000 +H 93.593800000 102.064000000 95.560000000 +O 96.662300000 107.245000000 105.890000000 +H 96.449100000 106.611000000 105.147000000 +H 96.367500000 106.851000000 106.761000000 +O 102.243000000 102.219000000 91.223000000 +H 102.226000000 102.797000000 90.406800000 +H 101.309000000 102.079000000 91.551900000 +O 98.710500000 97.265300000 106.544000000 +H 99.310200000 97.423100000 107.329000000 +H 98.159900000 96.446100000 106.705000000 diff --git a/benchmarks/scf/dft_driver.py b/benchmarks/scf/dft_driver.py new file mode 100644 index 00000000..0a63d350 --- /dev/null +++ b/benchmarks/scf/dft_driver.py @@ -0,0 +1,103 @@ +import os +import csv +import pyscf +import time +import argparse +from pyscf import lib +from pyscf.dft import rks + +lib.num_threads(8) + +parser = argparse.ArgumentParser(description='Run SCF, grad, and Hessian in GPU4PySCF for molecules') +parser.add_argument('--basis', type=str, default='def2-tzvpp') +parser.add_argument('--verbose', type=int, default=1) +parser.add_argument('--xc', type=str, default='B3LYP') +parser.add_argument('--device', type=str, default='GPU') +parser.add_argument('--input_path', type=str, default='./') +parser.add_argument('--output_path', type=str, default='./') +parser.add_argument('--with_hessian', type=bool, default=False) +args = parser.parse_args() +bas = args.basis +verbose = args.verbose +xc = args.xc + +if xc == 'LDA': + xc = 'LDA,VWN5' + +if not os.path.exists(args.output_path): + os.mkdir(args.output_path) + +if args.device == 'GPU': + import cupy + import gpu4pyscf + from gpu4pyscf.dft import rks + props = cupy.cuda.runtime.getDeviceProperties(0) + device = props['name'].decode('ascii') + output_file = device+'.csv' +else: + from pyscf.dft import rks + output_file = 'PySCF-16-cores-CPU.csv' +output_file = args.output_path + output_file + +def run_dft(filename): + mol = pyscf.M(atom=filename, basis=bas, max_memory=64000) + start_time = time.time() + # set verbose >= 6 for debugging timer + mol.verbose = 4 #verbose + mol.max_memory = 40000 + mf = rks.RKS(mol, xc=xc) + mf.grids.atom_grid = (99,590) + mf.chkfile = None + prep_time = time.time() - start_time + mf.conv_tol = 1e-9 + mf.nlcgrids.atom_grid = (50,194) + mf.max_cycle = 100 + try: + e_dft = mf.kernel() + scf_time = time.time() - start_time + except: + scf_time = -1 + e_dft = 0 + + # calculate gradient + if args.device == 'GPU': + cupy.get_default_memory_pool().free_all_blocks() + try: + start_time = time.time() + g = mf.nuc_grad_method() + g.max_memory = 40000 + f = g.kernel() + grad_time = time.time() - start_time + except: + grad_time = -1 + + # calculate hessian + if args.device == 'GPU': + cupy.get_default_memory_pool().free_all_blocks() + + hess_time = -1 + if args.with_hessian: + try: + start_time = time.time() + h = mf.Hessian() + h.max_memory = 40000 + hess = h.kernel() + hess_time = time.time() - start_time + except: + hess_time = -1 + + return mol.natm, mol.nao, scf_time, grad_time, hess_time, e_dft + +fields = ['mol','natm', 'nao', 't_scf', 't_gradient', 't_hessian', 'e_tot'] +csvfile = open(output_file, 'w') +csvwriter = csv.writer(csvfile) +csvwriter.writerow(fields) + +for filename in sorted(os.listdir(args.input_path)): + if filename.endswith(".xyz"): + print(f'running DFT {filename}') + info = run_dft(args.input_path+filename) + row = [filename[:-4]]+list(info) + csvwriter.writerow(row) + csvfile.flush() +csvfile.close() diff --git a/benchmarks/scf/generate_tables.ipynb b/benchmarks/scf/generate_tables.ipynb new file mode 100644 index 00000000..e49ae7cc --- /dev/null +++ b/benchmarks/scf/generate_tables.ipynb @@ -0,0 +1,235 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Direct SCF with different xc" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v |\n", + "|------:|-------:|-------:|-------:|--------:|-------:|----------:|\n", + "| 2 | 3 | 0.22 | 0.32 | 0.13 | 0.24 | 0.69 |\n", + "| 3 | 15 | 0.81 | 1.35 | 1.45 | 1.8 | 4.85 |\n", + "| 4 | 30 | 1.83 | 2.76 | 4.1 | 6.66 | 7.61 |\n", + "| 5 | 60 | 2.88 | 3.71 | 7.24 | 8.36 | 9.44 |\n", + "| 6 | 96 | 4.27 | 4.48 | 7.73 | 10 | 9.79 |\n", + "| 7 | 141 | 3.94 | 4.07 | 8.57 | 10.39 | 9.39 |\n", + "| 8 | 228 | nan | nan | nan | nan | nan |\n", + "| 9 | 300 | nan | nan | nan | nan | nan |\n", + "| 10 | 417 | nan | nan | nan | nan | nan |\n" + ] + } + ], + "source": [ + "A100_file = 'A100-SXM-80GB.csv'\n", + "qchem_file = 'qchem-32-cores-cpu.csv'\n", + "\n", + "keys = ['mol', 'natm']\n", + "empty = {'mol':[], 'natm':[]}\n", + "df_A100_scf = pd.DataFrame(empty)\n", + "df_V100_scf = pd.DataFrame(empty)\n", + "df_A100_grad = pd.DataFrame(empty)\n", + "df_V100_grad = pd.DataFrame(empty)\n", + "path = 'water_clusters/xc/'\n", + "for xc in ['LDA', 'PBE', 'B3LYP', 'M06', 'wB97m-v']:\n", + " df_qchem = pd.read_csv(path + xc + '/' + qchem_file)\n", + " df_qchem = df_qchem.rename(columns={'t_scf':'scf_qchem', 't_gradient':'grad_qchem'})\n", + " \n", + " df_A100 = pd.read_csv(path + xc + '/' + A100_file)\n", + " df_A100 = df_A100.rename(columns={'t_scf':'scf_A100', 't_gradient':'grad_A100'})\n", + " df_A100 = df_A100.merge(df_qchem, how='outer', on='mol')\n", + " \n", + " df_A100['scf_'+xc] = df_A100['scf_qchem']/df_A100['scf_A100']\n", + " df_A100['grad_'+xc] = df_A100['grad_qchem']/df_A100['grad_A100']\n", + " df_A100 = df_A100[keys+['scf_'+xc, 'grad_'+xc]]\n", + " \n", + " df_A100_scf = df_A100_scf.merge(df_A100[keys+['scf_'+xc]], how='outer', on=keys)\n", + " df_A100_grad= df_A100_grad.merge(df_A100[keys+['grad_'+xc]], how='outer', on=keys)\n", + " df_A100_scf = df_A100_scf.rename(columns={'scf_'+xc:xc})\n", + " df_A100_grad = df_A100_grad.rename(columns={'grad_'+xc:xc})\n", + " df_A100_scf[xc] = df_A100_scf[xc].apply(lambda x: round(x,2))\n", + " df_A100_grad[xc] = df_A100_grad[xc].apply(lambda x: round(x,2))\n", + "\n", + "print(df_A100_scf.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| mol | natm | LDA | PBE | B3LYP | M06 | wB97m-v |\n", + "|------:|-------:|-------:|-------:|--------:|-------:|----------:|\n", + "| 2 | 3 | 0.85 | 0.84 | 0.77 | 0.74 | 0.57 |\n", + "| 3 | 15 | 0.56 | 0.89 | 1.44 | 1.57 | 1.52 |\n", + "| 4 | 30 | 0.59 | 1.03 | 2.13 | 2.08 | 1.9 |\n", + "| 5 | 60 | 0.53 | 0.87 | 2.45 | 2.35 | 1.73 |\n", + "| 6 | 96 | 0.61 | 0.87 | 2.43 | 2.37 | 1.59 |\n", + "| 7 | 141 | 0.92 | 1.08 | 2.61 | 2.62 | 1.53 |\n", + "| 8 | 228 | nan | nan | nan | nan | nan |\n", + "| 9 | 300 | nan | nan | nan | nan | nan |\n", + "| 10 | 417 | nan | nan | nan | nan | nan |\n" + ] + } + ], + "source": [ + "print(df_A100_grad.to_markdown(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Merlin (Python3 + MLSQL) [Spark 3.0]", + "language": "python", + "name": "merlin_kernel" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "Python3 with MLSQL", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "0.1" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/benchmarks/scf/qchem.py b/benchmarks/scf/qchem.py new file mode 100644 index 00000000..fe5eeb39 --- /dev/null +++ b/benchmarks/scf/qchem.py @@ -0,0 +1,89 @@ +import os +import csv +import argparse +import subprocess + +parser = argparse.ArgumentParser(description='Run SCF, grad with Q-Chem for molecules') +parser.add_argument('--basis', type=str, default='def2-tzvpp') +parser.add_argument('--xc', type=str, default='B3LYP') +parser.add_argument('--input_path', type=str, default='./') +parser.add_argument('--output_path', type=str, default='./') +args = parser.parse_args() +bas = args.basis +xc = args.xc + +if not os.path.exists(args.output_path): + os.mkdir(args.output_path) + +os.environ['QCSCRATCH'] = '/tmp/' + +def run_dft(filename): + with open(filename, 'r') as xyz_file: + coords = xyz_file.readlines()[2:] + + with open('qchem_input.in', "w") as input: + input.write("$molecule\n") + input.write("0 1\n") + for line in coords: + input.write(line) + input.write("\n$end") + input.write("\n") + + input.write("$rem\n") + input.write("JOBTYPE force\n") + input.write("MEM_STATIC 10000\n") + input.write("METHOD " + args.xc + "\n") + input.write("BASIS " + args.basis + "\n") + input.write("SYMMETRY FALSE\n") + input.write("SYM_IGNORE TRUE\n") + input.write("XC_GRID 000099000590\n") + input.write("NL_GRID 000050000194\n") + input.write("MAX_SCF_CYCLES 100\n") + input.write("SCF_CONVERGENCE 9\n") + input.write("THRESH 14\n") + input.write("INCDFT_DENDIFF_THRESH 14\n") + input.write("INCDFT_GRIDDIFF_THRESH 14\n") + input.write("BASIS_LIN_DEP_THRESH 12\n") + input.write("$end\n") + + import tempfile + temp = tempfile.NamedTemporaryFile() + filename = temp.name + + import os + print(f'creating a temp file named {filename}') + os.system('qchem -nt 32 qchem_input.in > ' + filename) + + with open(filename, 'r') as output_file: + lines = output_file.readlines() + for line in lines: + if line[:16] == " SCF time: CPU": + info = line[16:].split(' ')[4] + scf_time = float(info[:-1]) + if line[:20] == " Gradient time: CPU": + info = line[20:].split(' ')[5] + gradient_time = float(info) + energy_line = ' Total energy in the final basis set =' + if energy_line in line: + info = line.replace(energy_line, '') + e_tot = float(info) + return scf_time, gradient_time, e_tot + +fields = ['mol', 't_scf', 't_gradient', 'e_tot'] +output_file = 'qchem-32-cores-cpu.csv' +output_file = args.output_path + output_file +csvfile = open(output_file, 'w') +csvwriter = csv.writer(csvfile) +csvwriter.writerow(fields) + +for filename in os.listdir(args.input_path): + if filename.endswith(".xyz"): + print(f'running DFT {filename}') + try: + info = run_dft(args.input_path+filename) + row = [filename[:-4]]+list(info) + csvwriter.writerow(row) + csvfile.flush() + except: + continue +csvfile.close() diff --git a/benchmarks/scf/run_gpu4pyscf.sh b/benchmarks/scf/run_gpu4pyscf.sh new file mode 100644 index 00000000..5009b40f --- /dev/null +++ b/benchmarks/scf/run_gpu4pyscf.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +DIR="./water_clusters/xc" +[ ! -d "$DIR" ] && mkdir -p "$DIR" +for xc in B3LYP M06 wB97m-v +do + python3 dft_driver.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/xc/$xc/ --xc $xc +done + +DIR="./water_clusters/basis" +[ ! -d "$DIR" ] && mkdir -p "$DIR" + +for basis in def2-svp def2-tzvpp def2-tzvpd sto-3g 6-31g +do + python3 dft_driver.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/basis/$basis/ --basis $basis +done diff --git a/benchmarks/scf/run_qchem.sh b/benchmarks/scf/run_qchem.sh new file mode 100644 index 00000000..702a86ab --- /dev/null +++ b/benchmarks/scf/run_qchem.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +DIR="./water_clusters/xc" +[ ! -d "$DIR" ] && mkdir -p "$DIR" + +DIR="./water_clusters/basis" +[ ! -d "$DIR" ] && mkdir -p "$DIR" + +#for xc in LDA PBE B3LYP M06 wB97m-v +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/xc/LDA/ --xc LDA && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/xc/PBE/ --xc PBE && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/xc/B3LYP/ --xc B3LYP && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/xc/M06/ --xc M06 && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/xc/wB97m-v/ --xc wB97m-v && + +#for basis in def2-svp def2-tzvpp def2-tzvpd sto-3g 6-31g 6-31g* +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/basis/def2-svp/ --basis def2-svp && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/basis/def2-tzvpp/ --basis def2-tzvpp && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/basis/def2-tzvpd/ --basis def2-tzvpd && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/basis/sto-3g/ --basis sto-3g && +run --cpu 64 --memory 256 --gpu 0 -- python3 qchem.py --input_path ../molecules/water_clusters/ --output_path ./water_clusters/basis/6-31g/ --basis 6-31g diff --git a/benchmarks/scf/water_clusters/basis/def2-svp/A100-SXM-80GB.csv b/benchmarks/scf/water_clusters/basis/def2-svp/A100-SXM-80GB.csv new file mode 100644 index 00000000..653f42cb --- /dev/null +++ b/benchmarks/scf/water_clusters/basis/def2-svp/A100-SXM-80GB.csv @@ -0,0 +1,10 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +002,3,24,4.148226022720337,0.3080751895904541,-1,-76.35507825399924 +003,15,120,3.6573052406311035,0.4902074337005615,-1,-381.8380528962804 +004,30,240,5.5983216762542725,0.9368572235107422,-1,-763.6788774841843 +005,60,480,13.53732705116272,3.472562313079834,-1,-1527.417027558146 +006,96,768,22.537059783935547,9.176054954528809,-1,-2443.9474650967923 +007,141,1128,42.59495186805725,20.909643173217773,-1,-3589.549673810101 +008,228,1824,134.44798135757446,57.621416091918945,-1,-5804.445984225651 +009,300,2400,210.6200053691864,100.0945954322815,-1,-7637.513698651397 +010,417,3336,433.1721432209015,202.22071170806885,-1,-10616.193625522421 diff --git a/benchmarks/scf/water_clusters/basis/def2-tzvpp/A100-SXM-80GB.csv b/benchmarks/scf/water_clusters/basis/def2-tzvpp/A100-SXM-80GB.csv new file mode 100644 index 00000000..5abbfc2f --- /dev/null +++ b/benchmarks/scf/water_clusters/basis/def2-tzvpp/A100-SXM-80GB.csv @@ -0,0 +1,7 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +002,3,59,8.470207452774048,1.4737763404846191,-1,-76.46322544495135 +003,15,295,8.816063165664673,3.085206985473633,-1,-382.357205914378 +004,30,590,20.10008144378662,8.881540536880493,-1,-764.7067284397813 +005,60,1180,80.48115015029907,46.26161599159241,-1,-1529.4310604217367 +006,96,1888,193.53197193145752,140.9103033542633,-1,-2447.1438293049277 +007,141,2773,427.13886523246765,334.8242115974426,-1,-3594.237230008426 diff --git a/benchmarks/scf/water_clusters/xc/B3LYP/A100-SXM-80GB.csv b/benchmarks/scf/water_clusters/xc/B3LYP/A100-SXM-80GB.csv new file mode 100644 index 00000000..e4fdea98 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/B3LYP/A100-SXM-80GB.csv @@ -0,0 +1,10 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +002,3,59,7.446745872497559,1.4890987873077393,-1,-76.46322544495138 +003,15,295,8.20776653289795,3.088024616241455,-1,-382.357205914378 +004,30,590,19.075977563858032,8.805874824523926,-1,-764.7067284397813 +005,60,1180,78.91655683517456,46.418694734573364,-1,-1529.4310604217358 +006,96,1888,191.31885242462158,139.2458095550537,-1,-2447.1438293049323 +007,141,2773,423.7260158061981,335.1603214740753,-1,-3594.2372300084335 +008,228,4484,1316.6078534126282,957.1870391368866,-1,-5812.014703235804 +009,300,5900,2345.5859880447388,1839.9111471176147,-1,-7647.445922746505 +010,417,8201,4981.907049417496,-1,-1,-10630.000430916734 diff --git a/benchmarks/scf/water_clusters/xc/B3LYP/qchem-32-cores-cpu.csv b/benchmarks/scf/water_clusters/xc/B3LYP/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..a02a55ed --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/B3LYP/qchem-32-cores-cpu.csv @@ -0,0 +1,9 @@ +mol,t_scf,t_gradient,e_tot +002,2.0,1.11,-76.463225456 +003,13.0,4.51,-382.3572057405 +004,78.0,18.25,-764.7067300035 +005,564.0,112.33,-1529.4310619108 +006,1482.0,329.04,-2447.1438297879 +007,3758.0,875.37,-3594.237253658 +008,12363.0,3228.61,-5812.0148173975 +009,21922.0,5630.13,-7647.4461469752 diff --git a/benchmarks/scf/water_clusters/xc/LDA/A100-SXM-80GB.csv b/benchmarks/scf/water_clusters/xc/LDA/A100-SXM-80GB.csv new file mode 100644 index 00000000..39dadef4 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/LDA/A100-SXM-80GB.csv @@ -0,0 +1,10 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +002,3,59,9.225790977478027,1.4185154438018799,-1,-75.90268906696716 +003,15,295,7.397925138473511,2.8502917289733887,-1,-379.5797340893446 +004,30,590,16.355782747268677,8.106590747833252,-1,-759.1648944538588 +005,60,1180,67.11810564994812,42.11477756500244,-1,-1518.4136174508121 +006,96,1888,150.1366548538208,123.72907543182373,-1,-2429.5441191728487 +007,141,2773,343.5950632095337,294.0564568042755,-1,-3568.3923493779457 +008,228,4484,1115.31450009346,830.5021951198578,-1,-5770.235412520906 +009,300,5900,1818.3365054130554,1541.8647923469543,-1,-7592.496654636234 +010,417,8201,3969.0601046085358,3079.625981092453,-1,-10553.62557808817 diff --git a/benchmarks/scf/water_clusters/xc/LDA/qchem-32-cores-cpu.csv b/benchmarks/scf/water_clusters/xc/LDA/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..89982020 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/LDA/qchem-32-cores-cpu.csv @@ -0,0 +1,10 @@ +mol,t_scf,t_gradient,e_tot +002,2.0,1.16,-75.9026890798 +003,5.0,1.11,-379.5797340245 +004,26.0,4.57,-759.1648953711 +005,192.0,22.83,-1518.413619284 +006,652.0,73.78,-2429.5441182967 +007,1397.0,272.44,-3568.392370216 +008,4837.0,1597.4,-5770.2355466345 +009,9183.0,3477.07,-7592.4969199839 +010,19493.0,7588.13,-10553.6261407037 diff --git a/benchmarks/scf/water_clusters/xc/M06/A100-SXM-80GB.csv b/benchmarks/scf/water_clusters/xc/M06/A100-SXM-80GB.csv new file mode 100644 index 00000000..111d5cb4 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/M06/A100-SXM-80GB.csv @@ -0,0 +1,10 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +002,3,59,8.018011093139648,1.4549763202667236,-1,-76.42230995745035 +003,15,295,8.033772468566895,3.0619895458221436,-1,-382.15281612639114 +004,30,590,17.61726713180542,9.003378868103027,-1,-764.3001897093113 +005,60,1180,81.65214920043945,47.97585415840149,-1,-1528.6342026318757 +006,96,1888,203.2343192100525,141.86565041542053,-1,-2445.8771856718595 +007,141,2773,454.99277329444885,342.3325181007385,-1,-3592.384902761716 +008,228,4484,1482.6199061870575,973.8926177024841,-1,-5809.019196158548 +009,300,5900,2313.471456050873,1839.8394575119019,-1,-7643.512481718673 +010,417,8201,5401.685059785843,-1,-1,-10624.527652349374 diff --git a/benchmarks/scf/water_clusters/xc/M06/qchem-32-cores-cpu.csv b/benchmarks/scf/water_clusters/xc/M06/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..e812b2b3 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/M06/qchem-32-cores-cpu.csv @@ -0,0 +1,9 @@ +mol,t_scf,t_gradient,e_tot +002,2.0,1.19,-76.4223108992 +003,21.0,4.65,-382.152812227 +004,122.0,20.25,-764.3002346074 +005,689.0,115.14,-1528.6342165681 +006,2151.0,356.58,-2445.8771639475 +007,4765.0,888.11,-3592.3849002142 +008,15544.0,3302.29,-5809.0193494868 +009,26273.0,6603.01,-7643.5126043516 diff --git a/benchmarks/scf/water_clusters/xc/PBE/A100-SXM-80GB.csv b/benchmarks/scf/water_clusters/xc/PBE/A100-SXM-80GB.csv new file mode 100644 index 00000000..565b0c67 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/PBE/A100-SXM-80GB.csv @@ -0,0 +1,9 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +002,3,59,9.291892051696777,1.4225475788116455,-1,-76.37766746751761 +003,15,295,8.156267642974854,2.935978889465332,-1,-381.9348034197885 +004,30,590,15.962292432785034,8.48238229751587,-1,-763.8652659637253 +005,60,1180,72.18495297431946,43.69742465019226,-1,-1527.7567909450809 +006,96,1888,179.55721712112427,128.3840160369873,-1,-2444.4690727239595 +007,141,2773,417.78475403785706,303.23629927635193,-1,-3590.311141797014 +008,228,4484,1193.5109581947327,849.2616429328918,-1,-5805.667819160899 +009,300,5900,1949.8315885066986,1573.4793248176575,-1,-7639.10075269956 diff --git a/benchmarks/scf/water_clusters/xc/PBE/qchem-32-cores-cpu.csv b/benchmarks/scf/water_clusters/xc/PBE/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..2b84da77 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/PBE/qchem-32-cores-cpu.csv @@ -0,0 +1,10 @@ +mol,t_scf,t_gradient,e_tot +002,3.0,1.27,-76.3776674546 +003,2.0,0.56,-76.4223108992 +004,42.0,8.79,-763.865266486 +005,263.0,38.15,-1527.7567927732 +006,788.0,111.71,-2444.4690716504 +007,1714.0,332.76,-3590.3111630938 +008,5461.0,1612.37,-5805.6679517032 +009,10163.0,3177.01,-7639.1010198948 +010,19784.0,7948.14,-10618.4038040287 diff --git a/benchmarks/scf/water_clusters/xc/wB97m-v/A100-SXM-80GB.csv b/benchmarks/scf/water_clusters/xc/wB97m-v/A100-SXM-80GB.csv new file mode 100644 index 00000000..accd128a --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/wB97m-v/A100-SXM-80GB.csv @@ -0,0 +1,8 @@ +mol,natm,nao,t_scf,t_gradient,t_hessian,e_tot +002,3,59,8.755343914031982,2.7149200439453125,-1,-76.42962896737262 +003,15,295,12.602488994598389,5.6929285526275635,-1,-382.1935089484747 +004,30,590,34.28473353385925,17.03866934776306,-1,-764.38419323472 +005,60,1180,137.12103152275085,89.90183711051941,-1,-1528.8072112200903 +006,96,1888,360.53807830810547,272.61835861206055,-1,-2446.1569735127805 +007,141,2773,805.6741592884064,655.3605453968048,-1,-3592.7988171011075 +008,228,4484,2325.739989757538,1879.468992471695,-1,-5809.700870753863 diff --git a/benchmarks/scf/water_clusters/xc/wB97m-v/qchem-32-cores-cpu.csv b/benchmarks/scf/water_clusters/xc/wB97m-v/qchem-32-cores-cpu.csv new file mode 100644 index 00000000..0497b835 --- /dev/null +++ b/benchmarks/scf/water_clusters/xc/wB97m-v/qchem-32-cores-cpu.csv @@ -0,0 +1,8 @@ +mol,t_scf,t_gradient,e_tot +002,6.0,1.62,-76.4296290258 +003,61.0,8.37,-382.1935086065 +004,280.0,32.13,-764.3841960213 +005,1294.0,159.2,-1528.8072072633 +006,3559.0,417.08,-2446.1569577984 +007,8163.0,1016.0,-3592.7988029841 +008,21767.0,3444.87,-5809.7009024698 diff --git a/examples/00-h2o.py b/examples/00-h2o.py index 1f509a37..622a8194 100644 --- a/examples/00-h2o.py +++ b/examples/00-h2o.py @@ -24,7 +24,7 @@ H 0.7570000000 0.0000000000 -0.4696000000 ''' -xc='B3LYP' +xc='LDA' bas='def2-tzvpp' auxbasis='def2-tzvpp-jkfit' scf_tol = 1e-10 diff --git a/examples/06-h2o_hf.py b/examples/06-h2o_hf.py index fdb42fc8..342435dc 100644 --- a/examples/06-h2o_hf.py +++ b/examples/06-h2o_hf.py @@ -1,3 +1,18 @@ +# Copyright 2023 The GPU4PySCF Authors. All Rights Reserved. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + from pyscf import gto, scf, grad import numpy as np @@ -11,14 +26,29 @@ verbose=4) mf = scf.hf.RHF(mol) -mf.direct_scf_tol = 1e-10 -mf.kernel() +mf.direct_scf_tol = 1e-14 +mf.conv_tol = 1e-12 +e_cpu = mf.kernel() cpu_gradient = grad.rhf.Gradients(mf) cpu_gradient.kernel() +from gpu4pyscf import scf import gpu4pyscf + +mf = scf.hf.RHF(mol) +mf.direct_scf_tol = 1e-14 +mf.conv_tol = 1e-12 +e_gpu = mf.kernel() gpu_gradient = gpu4pyscf.grad.rhf.Gradients(mf) gpu_gradient.kernel() -assert(np.max(np.abs(cpu_gradient.de - gpu_gradient.de)) < 1e-10) +cpu_de = cpu_gradient.de +print(cpu_de) +print(gpu_gradient.de) + +cpu_de -= np.sum(cpu_de, axis=0)/mol.natm +print('e diff = ', e_cpu - e_gpu) +print('g diff = \n', cpu_de - gpu_gradient.de) + +assert np.max(np.abs(cpu_de - gpu_gradient.de)) < 1e-6 diff --git a/examples/dft_driver.py b/examples/dft_driver.py index 410fe13e..0a7073cf 100644 --- a/examples/dft_driver.py +++ b/examples/dft_driver.py @@ -35,14 +35,14 @@ basis=bas, max_memory=32000) # set verbose >= 6 for debugging timer -mol.verbose = 1 +mol.verbose = 6 print(mol.nao) mf_df = rks.RKS(mol, xc='HYB_GGA_XC_B3LYP').density_fit(auxbasis=args.auxbasis) -mf_df.grids.level = 1 +mf_df.grids.atom_grid = (99,590) mf_df.kernel() print('compute time for energy: {}s'.format((time.time() - start_time))) - +exit() start_time = time.time() g = mf_df.nuc_grad_method() g.auxbasis_response = True diff --git a/gpu4pyscf/__init__.py b/gpu4pyscf/__init__.py index ef7eb44d..e0e70192 100644 --- a/gpu4pyscf/__init__.py +++ b/gpu4pyscf/__init__.py @@ -1 +1,2 @@ +from . import lib, grad, hessian, solvent, scf, dft __version__ = '0.6.0' diff --git a/gpu4pyscf/df/df.py b/gpu4pyscf/df/df.py index e24f7406..88e8df80 100644 --- a/gpu4pyscf/df/df.py +++ b/gpu4pyscf/df/df.py @@ -130,8 +130,8 @@ def get_blksize(self, extra=0, nao=None): raise RuntimeError("Not enough GPU memory") return blksize - - def loop(self, blksize=None): + + def loop(self, blksize=None, unpack=True): ''' loop over all cderi and unpack ''' @@ -160,9 +160,12 @@ def loop(self, blksize=None): if isinstance(cderi_sparse, np.ndarray) and p1 < p2: buf_prefetch.set(cderi_sparse[p1:p2,:]) stop_event = data_stream.record() - buf2 = cupy.zeros([p1-p0,nao,nao]) - buf2[:p1-p0,rows,cols] = buf - buf2[:p1-p0,cols,rows] = buf + if unpack: + buf2 = cupy.zeros([p1-p0,nao,nao]) + buf2[:p1-p0,rows,cols] = buf + buf2[:p1-p0,cols,rows] = buf + else: + buf2 = None yield buf2, buf.T compute_stream.wait_event(stop_event) cupy.cuda.Device().synchronize() diff --git a/gpu4pyscf/df/df_jk.py b/gpu4pyscf/df/df_jk.py index e6d40994..e3243b3b 100644 --- a/gpu4pyscf/df/df_jk.py +++ b/gpu4pyscf/df/df_jk.py @@ -162,10 +162,10 @@ def get_veff(self, mol=None, dm=None, dm_last=None, vhf_last=0, hermi=1): ''' if mol is None: mol = self.mol if dm is None: dm = self.make_rdm1() - + # for DFT if mf_class == rks.RKS: - return rks._get_veff(self, dm=dm) + return rks.get_veff(self, dm=dm) if self.direct_scf: ddm = cupy.asarray(dm) - dm_last @@ -246,7 +246,9 @@ def get_jk(dfobj, dms_tag, hermi=1, with_j=True, with_k=True, direct_scf_tol=1e- ''' get jk with density fitting outputs and input are on the same device + TODO: separate into three cases: j only, k only, j and k ''' + log = logger.new_logger(dfobj.mol, dfobj.verbose) out_shape = dms_tag.shape out_cupy = isinstance(dms_tag, cupy.ndarray) @@ -276,23 +278,25 @@ def get_jk(dfobj, dms_tag, hermi=1, with_j=True, with_k=True, direct_scf_tol=1e- dm_sparse = dms[:,rows,cols] dm_sparse[:, dfobj.intopt.cderi_diag] *= .5 vj = cupy.zeros_like(dms) + vj_tmp = cupy.zeros_like(dms) + + if with_k: + vk = cupy.zeros_like(dms) def get_j(cderi_sparse): rhoj = 2.0*dm_sparse.dot(cderi_sparse) vj_sparse = cupy.dot(rhoj, cderi_sparse.T) - vj_tmp = cupy.zeros_like(dms) vj_tmp[:,rows,cols] = vj_sparse vj_tmp[:,cols,rows] = vj_sparse vj_sparse = None return vj_tmp - - vk = cupy.zeros_like(dms) + # SCF K matrix with occ if nset == 1 and hasattr(dms_tag, 'occ_coeff'): occ_coeff = cupy.asarray(dms_tag.occ_coeff[ao_idx, :], order='C') nocc = occ_coeff.shape[1] blksize = dfobj.get_blksize(extra=nao*nocc) - for cderi, cderi_sparse in dfobj.loop(blksize=blksize): + for cderi, cderi_sparse in dfobj.loop(blksize=blksize, unpack=with_k): # leading dimension is 1 if with_j: vj += get_j(cderi_sparse) @@ -300,7 +304,8 @@ def get_j(cderi_sparse): rhok = contract('Lij,jk->Lki', cderi, occ_coeff) #vk[0] += contract('Lki,Lkj->ij', rhok, rhok) contract('Lki,Lkj->ij', rhok, rhok, alpha=1.0, beta=1.0, out=vk[0]) - vk *= 2.0 + if with_k: + vk *= 2.0 # CP-HF K matrix elif hasattr(dms_tag, 'mo1'): mo1 = dms_tag.mo1[:,ao_idx,:] @@ -308,7 +313,7 @@ def get_j(cderi_sparse): # 2.0 due to rhok and rhok1, put it here for symmetry occ_coeff = dms_tag.occ_coeff[ao_idx,:] * 2.0 blksize = dfobj.get_blksize(extra=2*nao*nocc) - for cderi, cderi_sparse in dfobj.loop(blksize=blksize): + for cderi, cderi_sparse in dfobj.loop(blksize=blksize, unpack=with_k): if with_j: vj += get_j(cderi_sparse) if with_k: @@ -318,11 +323,12 @@ def get_j(cderi_sparse): vk[i] += contract('Lki,Lkj->ij', rhok, rhok1) #contract('Lki,Lkj->ij', rhok, rhok1, alpha=1.0, beta=1.0, out=vk[i]) occ_coeff = rhok1 = rhok = mo1 = None - vk = vk + vk.transpose(0,2,1) + if with_k: + vk = vk + vk.transpose(0,2,1) # general K matrix with density matrix else: blksize = dfobj.get_blksize() - for cderi, cderi_sparse in dfobj.loop(blksize=blksize): + for cderi, cderi_sparse in dfobj.loop(blksize=blksize, unpack=with_k): if with_j: vj += get_j(cderi_sparse) if with_k: @@ -331,7 +337,7 @@ def get_j(cderi_sparse): vk[k] += contract('Lki,Lkj->ij', cderi, rhok) rhok = None - rev_ao_idx = numpy.argsort(dfobj.intopt.sph_ao_idx) + rev_ao_idx = dfobj.intopt.rev_ao_idx if with_j: vj = take_last2d(vj, rev_ao_idx) vj = vj.reshape(out_shape) @@ -380,3 +386,5 @@ def get_j(dfobj, dm, hermi=1, direct_scf_tol=1e-13): rhoj *= 2.0 vj = int3c2e.get_j_int3c2e_pass2(intopt, rhoj) return vj + +density_fit = _density_fit \ No newline at end of file diff --git a/gpu4pyscf/df/grad/rhf.py b/gpu4pyscf/df/grad/rhf.py index c0d39b9a..5214a62a 100644 --- a/gpu4pyscf/df/grad/rhf.py +++ b/gpu4pyscf/df/grad/rhf.py @@ -33,9 +33,7 @@ def get_jk(mf_grad, mol=None, dm0=None, hermi=0, with_j=True, with_k=True, omega if mol is None: mol = mf_grad.mol #TODO: dm has to be the SCF density matrix in this version. dm should be # extended to any 1-particle density matrix - # TODO: fix this - #with_j = True; with_k = True - + if(dm0 is None): dm0 = mf_grad.base.make_rdm1() mf = mf_grad.base if omega is None: diff --git a/gpu4pyscf/df/grad/rks.py b/gpu4pyscf/df/grad/rks.py index 1ccf6ca6..ba307509 100644 --- a/gpu4pyscf/df/grad/rks.py +++ b/gpu4pyscf/df/grad/rks.py @@ -16,8 +16,8 @@ import numpy import cupy +import pyscf from pyscf import lib -from pyscf.df.grad import rks from gpu4pyscf.grad import rks as rks_grad from gpu4pyscf.df.grad.rhf import get_jk, grad_elec from gpu4pyscf.lib.cupy_helper import contract, tag_array @@ -39,8 +39,7 @@ def get_veff(ks_grad, mol=None, dm=None): grids = mf.grids if grids.coords is None: - grids.build(sort_grids=False) - #grids.build(with_non0tab=True) + grids.build(with_non0tab=False) nlcgrids = None if mf.nlc or ni.libxc.is_nlc(mf.xc): @@ -49,7 +48,7 @@ def get_veff(ks_grad, mol=None, dm=None): else: nlcgrids = mf.nlcgrids if nlcgrids.coords is None: - nlcgrids.build(sort_grids=False) + nlcgrids.build(with_non0tab=False) if mf.nlc != '': raise NotImplementedError @@ -116,7 +115,7 @@ def get_veff(ks_grad, mol=None, dm=None): vxc = tag_array(vxc, aux=e1_aux) return vxc -class Gradients(rks.Gradients): +class Gradients(rks_grad.Gradients): from gpu4pyscf.lib.utils import to_cpu, to_gpu, device get_jk = get_jk @@ -130,28 +129,7 @@ def get_j(self, mol=None, dm=None, hermi=0, omega=None): def get_k(self, mol=None, dm=None, hermi=0, omega=None): _, vk, _, vkaux = self.get_jk(mol, dm, with_j=False, omega=omega) return vk, vkaux - - def get_dispersion(self): - if self.base.disp[:2].upper() == 'D3': - from pyscf import lib - with lib.with_omp_threads(1): - import dftd3.pyscf as disp - d3 = disp.DFTD3Dispersion(self.mol, xc=self.base.xc, version=self.base.disp) - _, g_d3 = d3.kernel() - return g_d3 - - if self.base.disp[:2].upper() == 'D4': - from pyscf.data.elements import charge - atoms = numpy.array([ charge(a[0]) for a in self.mol._atom]) - coords = self.mol.atom_coords() - - from pyscf import lib - with lib.with_omp_threads(1): - from dftd4.interface import DampingParam, DispersionModel - model = DispersionModel(atoms, coords) - res = model.get_dispersion(DampingParam(method=self.base.xc), grad=True) - return res.get("gradient") - + def extra_force(self, atom_id, envs): if self.auxbasis_response: return envs['dvhf'].aux[atom_id] diff --git a/gpu4pyscf/df/int3c2e.py b/gpu4pyscf/df/int3c2e.py index c3998ad8..9f01ac3b 100644 --- a/gpu4pyscf/df/int3c2e.py +++ b/gpu4pyscf/df/int3c2e.py @@ -236,6 +236,7 @@ def build(self, cutoff=1e-14, group_size=None, nsph = sph_ao_loc[-1] self.cart2sph = block_c2s_diag(ncart, nsph, self.angular, l_ctr_counts) inv_idx = np.argsort(self.sph_ao_idx, kind='stable').astype(np.int32) + self.rev_ao_idx = inv_idx self.coeff = self.cart2sph[:, inv_idx] # pairing auxiliary basis with fake basis set @@ -1398,7 +1399,8 @@ def _split_l_ctr_groups(uniq_l_ctr, l_ctr_counts, group_size): for l_ctr, counts in zip(uniq_l_ctr, l_ctr_counts): l = l_ctr[0] nf = (l + 1) * (l + 2) // 2 - max_shells = max(group_size // nf, 2) + aligned_size = (group_size // nf // 1) * 1 + max_shells = max(aligned_size, 2) if l > LMAX_ON_GPU or counts <= max_shells: _l_ctrs.append(l_ctr) _l_ctr_counts.append(counts) diff --git a/gpu4pyscf/df/tests/test_df_ecp.py b/gpu4pyscf/df/tests/test_df_ecp.py index e13e2ef3..e6614d53 100644 --- a/gpu4pyscf/df/tests/test_df_ecp.py +++ b/gpu4pyscf/df/tests/test_df_ecp.py @@ -24,8 +24,8 @@ xc='pbe0' bas='def2-tzvpp' auxbasis='def2-tzvpp-jkfit' -grids_level = 5 -eps=1e-4 +grids_level = 6 +eps=0.001 def setUpModule(): global mol @@ -45,10 +45,6 @@ def tearDownModule(): mol.stdout.close() del mol -def tearDownModule(): - global mol - del mol - def run_dft(xc): mf = rks.RKS(mol, xc=xc).density_fit(auxbasis=auxbasis) mf.grids.level = grids_level @@ -80,17 +76,11 @@ def _check_grad(grid_response=False, tol=1e-5): mol.build() e0 = f_scanner(mol) - mf = rks.RKS(mol, xc=xc).density_fit(auxbasis=auxbasis) - mf.grids.level = grids_level - coords[i,j] -= 2.0 * eps mol.set_geom_(coords, unit='Bohr') mol.build() e1 = f_scanner(mol) - mf = rks.RKS(mol, xc=xc).density_fit(auxbasis=auxbasis) - mf.grids.level = grids_level - coords[i,j] += eps mol.set_geom_(coords, unit='Bohr') grad_fd[i,j] = (e0-e1)/2.0/eps @@ -122,7 +112,7 @@ def _check_dft_hessian(disp=None, ix=0, iy=0, tol=1e-3): pmol.set_geom_(coords + v, unit='Bohr') pmol.build() _, g0 = g_scanner(pmol) - + pmol.set_geom_(coords - v, unit='Bohr') pmol.build() _, g1 = g_scanner(pmol) @@ -160,7 +150,6 @@ def test_rks_hessian(self): _check_dft_hessian(ix=0, iy=0) _check_dft_hessian(ix=0, iy=1) - if __name__ == "__main__": print("Full Tests for DF ECP") unittest.main() diff --git a/gpu4pyscf/df/tests/test_df_grad.py b/gpu4pyscf/df/tests/test_df_grad.py index 4e70018f..ade19e87 100644 --- a/gpu4pyscf/df/tests/test_df_grad.py +++ b/gpu4pyscf/df/tests/test_df_grad.py @@ -79,17 +79,11 @@ def _check_grad(grid_response=False, xc=xc0, disp=disp0, tol=1e-6): mol.build() e0 = f_scanner(mol) - mf = rks.RKS(mol, xc=xc, disp=disp).density_fit(auxbasis=auxbasis0) - mf.grids.level = grids_level - coords[i,j] -= 2.0 * eps mol.set_geom_(coords, unit='Bohr') mol.build() e1 = f_scanner(mol) - mf = rks.RKS(mol, xc=xc, disp=disp).density_fit(auxbasis=auxbasis0) - mf.grids.level = grids_level - coords[i,j] += eps mol.set_geom_(coords, unit='Bohr') grad_fd[i,j] = (e0-e1)/2.0/eps diff --git a/gpu4pyscf/df/tests/test_jk.py b/gpu4pyscf/df/tests/test_jk.py index 6f057a90..6fb3ed86 100644 --- a/gpu4pyscf/df/tests/test_jk.py +++ b/gpu4pyscf/df/tests/test_jk.py @@ -34,14 +34,17 @@ bas='ccpvdz' -mol = pyscf.M(atom=atom, basis=bas, max_memory=32000) -mol.build() -mol.verbose = 1 -auxmol = df.addons.make_auxmol(mol, auxbasis='sto3g') - +def setUpModule(): + global mol, auxmol + mol = pyscf.M(atom=atom, basis=bas, max_memory=32000) + mol.output = '/dev/null' + mol.build() + mol.verbose = 1 + auxmol = df.addons.make_auxmol(mol, auxbasis='sto3g') + def tearDownModule(): - global mol - del mol + global mol, auxmol + del mol, auxmol class KnownValues(unittest.TestCase): diff --git a/gpu4pyscf/dft/__init__.py b/gpu4pyscf/dft/__init__.py new file mode 100644 index 00000000..f42a3a7f --- /dev/null +++ b/gpu4pyscf/dft/__init__.py @@ -0,0 +1 @@ +from . import rks \ No newline at end of file diff --git a/gpu4pyscf/dft/gen_grid.py b/gpu4pyscf/dft/gen_grid.py index 09358fca..8e70d549 100644 --- a/gpu4pyscf/dft/gen_grid.py +++ b/gpu4pyscf/dft/gen_grid.py @@ -42,50 +42,9 @@ libdft = lib.load_library('libdft') libgdft = load_library('libgdft') -GROUP_BOX_SIZE = 1.2 -GROUP_BOUNDARY_PENALTY = 4.2 -# Padding grids to make the AO value generated by eval_gto aligned in memory -ALIGNMENT_UNIT = 8 -NELEC_ERROR_TOL = getattr(__config__, 'dft_rks_prune_error_tol', 0.02) - -# ~= (L+1)**2/3 -LEBEDEV_ORDER = { - 0 : 1 , - 3 : 6 , - 5 : 14 , - 7 : 26 , - 9 : 38 , - 11 : 50 , - 13 : 74 , - 15 : 86 , - 17 : 110 , - 19 : 146 , - 21 : 170 , - 23 : 194 , - 25 : 230 , - 27 : 266 , - 29 : 302 , - 31 : 350 , - 35 : 434 , - 41 : 590 , - 47 : 770 , - 53 : 974 , - 59 : 1202, - 65 : 1454, - 71 : 1730, - 77 : 2030, - 83 : 2354, - 89 : 2702, - 95 : 3074, - 101: 3470, - 107: 3890, - 113: 4334, - 119: 4802, - 125: 5294, - 131: 5810 -} -LEBEDEV_NGRID = numpy.array(list(LEBEDEV_ORDER.values())) +from pyscf.dft.gen_grid import GROUP_BOX_SIZE, GROUP_BOUNDARY_PENALTY, NELEC_ERROR_TOL, LEBEDEV_ORDER, LEBEDEV_NGRID +ALIGNMENT_UNIT = 32 # SG0 # S. Chien and P. Gill, J. Comput. Chem. 27 (2006) 730-739. @@ -301,16 +260,9 @@ def gen_atomic_grids(mol, atom_grid={}, radi_method=radi.gauss_chebyshev, idx = numpy.where(angs==n)[0] coords.append(cupy.einsum('i,jk->jik', rad[idx], grid[:,:3]).reshape(-1,3)) vol.append(cupy.einsum('i,j->ji', rad_weight[idx], grid[:,3]).ravel()) - ''' - for i0, i1 in lib.prange(0, len(idx), 12): # 12 radi-grids as a group - coords.append(numpy.einsum('i,jk->jik',rad[idx[i0:i1]], - grid[:,:3]).reshape(-1,3)) - vol.append(numpy.einsum('i,j->ji', rad_weight[idx[i0:i1]], - grid[:,3]).ravel()) - ''' - atom_grids_tab[symb] = (cupy.vstack(coords), cupy.hstack(vol)) - #print(atom_grids_tab[symb][0].shape, atom_grids_tab[symb][1].shape) + atom_grids_tab[symb] = (cupy.vstack(coords), cupy.hstack(vol)) + return atom_grids_tab def get_partition(mol, atom_grids_tab, @@ -450,16 +402,14 @@ def arg_group_grids(mol, coords, box_size=GROUP_BOX_SIZE): tot_boxes = numpy.prod(boxes + 2) logger.debug(mol, 'tot_boxes %d, boxes in each direction %s', tot_boxes, boxes) # box_size is the length of each edge of the box - box_size = (boundary[1] - boundary[0]) / boxes - frac_coords = (coords - boundary[0]) * (1./box_size) - box_ids = numpy.floor(frac_coords).astype(int) + box_size = cupy.asarray((boundary[1] - boundary[0]) / boxes) + frac_coords = (coords - cupy.asarray(boundary[0])) * (1./box_size) + box_ids = cupy.floor(frac_coords).astype(int) box_ids[box_ids<-1] = -1 box_ids[box_ids[:,0] > boxes[0], 0] = boxes[0] box_ids[box_ids[:,1] > boxes[1], 1] = boxes[1] box_ids[box_ids[:,2] > boxes[2], 2] = boxes[2] - - rev_idx, counts = numpy.unique(box_ids, axis=0, return_inverse=True, - return_counts=True)[1:3] + rev_idx = numpy.unique(box_ids.get(), axis=0, return_inverse=True)[1] return rev_idx.argsort(kind='stable') def _load_conf(mod, name, default): @@ -551,7 +501,7 @@ class Grids(lib.StreamObject): alignment = ALIGNMENT_UNIT cutoff = CUTOFF - + def __init__(self, mol): self.mol = mol self.stdout = mol.stdout diff --git a/gpu4pyscf/dft/numint.py b/gpu4pyscf/dft/numint.py index 389f8cd9..f2806a3c 100644 --- a/gpu4pyscf/dft/numint.py +++ b/gpu4pyscf/dft/numint.py @@ -160,53 +160,54 @@ def eval_rho2(mol, ao, mo_coeff, mo_occ, non0tab=None, xctype='LDA', shls_slice = (0, mol.nbas) ao_loc = mol.ao_loc_nr() - if True: - cpos = cupy.einsum('ij,j->ij', mo_coeff[:,mo_occ>0], cupy.sqrt(mo_occ[mo_occ>0])) - if xctype == 'LDA' or xctype == 'HF': - c0 = _dot_ao_dm(mol, ao, cpos, non0tab, shls_slice, ao_loc) - #:rho = numpy.einsum('pi,pi->p', c0, c0) - rho = _contract_rho(c0, c0) - elif xctype in ('GGA', 'NLC'): - rho = cupy.empty((4,ngrids)) - c0 = _dot_ao_dm(mol, ao[0], cpos, non0tab, shls_slice, ao_loc) - #:rho[0] = numpy.einsum('pi,pi->p', c0, c0) - rho[0] = _contract_rho(c0, c0) - for i in range(1, 4): - c1 = _dot_ao_dm(mol, ao[i], cpos, non0tab, shls_slice, ao_loc) - #:rho[i] = numpy.einsum('pi,pi->p', c0, c1) * 2 # *2 for +c.c. - rho[i] = _contract_rho(c0, c1) * 2 - else: # meta-GGA - if with_lapl: - # rho[4] = \nabla^2 rho, rho[5] = 1/2 |nabla f|^2 - rho = cupy.empty((6,ngrids)) - tau_idx = 5 - else: - rho = cupy.empty((5,ngrids)) - tau_idx = 4 - c0 = _dot_ao_dm(mol, ao[0], cpos, non0tab, shls_slice, ao_loc) - #:rho[0] = numpy.einsum('pi,pi->p', c0, c0) - rho[0] = _contract_rho(c0, c0) + + #cpos = cupy.einsum('ij,j->ij', mo_coeff[:,mo_occ>0], cupy.sqrt(mo_occ[mo_occ>0])) + cpos = mo_coeff[:,mo_occ>0] * cupy.sqrt(mo_occ[mo_occ>0]) + if xctype == 'LDA' or xctype == 'HF': + c0 = _dot_ao_dm(mol, ao, cpos, non0tab, shls_slice, ao_loc) + #:rho = numpy.einsum('pi,pi->p', c0, c0) + rho = _contract_rho(c0, c0) + elif xctype in ('GGA', 'NLC'): + rho = cupy.empty((4,ngrids)) + c0 = _dot_ao_dm(mol, ao[0], cpos, non0tab, shls_slice, ao_loc) + #:rho[0] = numpy.einsum('pi,pi->p', c0, c0) + rho[0] = _contract_rho(c0, c0) + for i in range(1, 4): + c1 = _dot_ao_dm(mol, ao[i], cpos, non0tab, shls_slice, ao_loc) + #:rho[i] = numpy.einsum('pi,pi->p', c0, c1) * 2 # *2 for +c.c. + rho[i] = _contract_rho(c0, c1) * 2 + else: # meta-GGA + if with_lapl: + # rho[4] = \nabla^2 rho, rho[5] = 1/2 |nabla f|^2 + rho = cupy.empty((6,ngrids)) + tau_idx = 5 + else: + rho = cupy.empty((5,ngrids)) + tau_idx = 4 + c0 = _dot_ao_dm(mol, ao[0], cpos, non0tab, shls_slice, ao_loc) + #:rho[0] = numpy.einsum('pi,pi->p', c0, c0) + rho[0] = _contract_rho(c0, c0) - rho[tau_idx] = 0 - for i in range(1, 4): - c1 = _dot_ao_dm(mol, ao[i], cpos, non0tab, shls_slice, ao_loc) - #:rho[i] = numpy.einsum('pi,pi->p', c0, c1) * 2 # *2 for +c.c. - #:rho[5] += numpy.einsum('pi,pi->p', c1, c1) - rho[i] = _contract_rho(c0, c1) * 2 - rho[tau_idx] += _contract_rho(c1, c1) - - if with_lapl: - if ao.shape[0] > 4: - XX, YY, ZZ = 4, 7, 9 - ao2 = ao[XX] + ao[YY] + ao[ZZ] - c1 = _dot_ao_dm(mol, ao2, cpos, non0tab, shls_slice, ao_loc) - #:rho[4] = numpy.einsum('pi,pi->p', c0, c1) - rho[4] = _contract_rho(c0, c1) - rho[4] += rho[5] - rho[4] *= 2 - else: - rho[4] = 0 - rho[tau_idx] *= .5 + rho[tau_idx] = 0 + for i in range(1, 4): + c1 = _dot_ao_dm(mol, ao[i], cpos, non0tab, shls_slice, ao_loc) + #:rho[i] = numpy.einsum('pi,pi->p', c0, c1) * 2 # *2 for +c.c. + #:rho[5] += numpy.einsum('pi,pi->p', c1, c1) + rho[i] = _contract_rho(c0, c1) * 2 + rho[tau_idx] += _contract_rho(c1, c1) + + if with_lapl: + if ao.shape[0] > 4: + XX, YY, ZZ = 4, 7, 9 + ao2 = ao[XX] + ao[YY] + ao[ZZ] + c1 = _dot_ao_dm(mol, ao2, cpos, non0tab, shls_slice, ao_loc) + #:rho[4] = numpy.einsum('pi,pi->p', c0, c1) + rho[4] = _contract_rho(c0, c1) + rho[4] += rho[5] + rho[4] *= 2 + else: + rho[4] = 0 + rho[tau_idx] *= .5 return rho def eval_rho3(mol, ao, c0, mo1, non0tab=None, xctype='LDA', @@ -382,15 +383,9 @@ def nr_rks(ni, mol, grids, xc_code, dms, relativity=0, hermi=1, dms = [coeff @ dm @ coeff.T for dm in dms.reshape(-1,nao0,nao0)] nset = len(dms) ao_loc = mol.ao_loc_nr() - - #print(mo_coeff is not None, mo_occ is not None) - if mo_coeff is not None: mo_coeff = coeff @ mo_coeff - def _make_rho(ao_value, dm, xctype=None): - if mo_coeff is not None and mo_occ is not None: - rho = eval_rho2(mol, ao, mo_coeff, mo_occ, None, xctype) - else: - rho = eval_rho(mol, ao_value, dm, xctype=xctype, hermi=1) - return rho + + if mo_coeff is not None: + mo_coeff = coeff @ mo_coeff nelec = cupy.zeros(nset) excsum = cupy.zeros(nset) @@ -409,11 +404,42 @@ def _make_rho(ao_value, dm, xctype=None): ao_deriv = 0 else: ao_deriv = 1 - for ao, sindex, weight, coords in ni.block_loop(mol, grids, nao, ao_deriv): + + block_id = 0 + for ao, sindex, weight, _ in ni.block_loop(mol, grids, nao, ao_deriv, blksize=ni.grid_blksize): + if ni.grid_blksize is None: + ni.grid_blksize = weight.shape[0] + + # cache ao indices + if block_id not in ni.non0ao_idx: + t0 = (logger.process_clock(), logger.perf_counter()) + if xctype == 'LDA': + mask = cupy.any(cupy.abs(ao) > AO_THRESHOLD, axis=[1]) + idx = cupy.argwhere(mask).astype(np.int32)[:,0] + ao_mask = ao[idx,:] + else: + mask = cupy.any(cupy.abs(ao) > AO_THRESHOLD, axis=[0,2]) + idx = cupy.argwhere(mask).astype(np.int32)[:,0] + ao_mask = ao[:,idx,:] + ni.non0ao_idx[block_id] = idx + t1 = log.timer_debug1('initialize ao sparsity', *t0) + else: + idx = ni.non0ao_idx[block_id] + if xctype == 'LDA': + ao_mask = ao[idx,:] + else: + ao_mask = ao[:,idx,:] + block_id += 1 for i in range(nset): t0 = (logger.process_clock(), logger.perf_counter()) #rho = eval_rho(opt.mol, ao, dms[i], xctype=xctype, hermi=1) - rho = _make_rho(ao, dms[i], xctype=xctype) + #rho = _make_rho(ao, dms[i], xctype=xctype) + if mo_coeff is None: + rho = eval_rho(mol, ao, dms[i], xctype=xctype, hermi=1) + else: + mo_coeff_mask = mo_coeff[idx,:] + rho = eval_rho2(mol, ao_mask, mo_coeff_mask, mo_occ, None, xctype) + t1 = log.timer_debug1('eval rho', *t0) exc, vxc = ni.eval_xc_eff(xc_code, rho, deriv=1, xctype=xctype)[:2] vxc = cupy.asarray(vxc, order='C') @@ -428,11 +454,8 @@ def _make_rho(ao_value, dm, xctype=None): _dot_ao_ao_sparse(ao, ao, wv, nbins, sindex, ao_loc, pair2shls_full, pairs_locs_full, vmat[i]) elif USE_SPARSITY == 2: - mask = cupy.any(cupy.abs(ao) > AO_THRESHOLD, axis=[1]) - idx = cupy.argwhere(mask).astype(np.int32)[:,0] - ao_mask = ao[idx,:] aow = _scale_ao(ao_mask, wv) - #vmat[i][cupy.ix_(mask, mask)] += ao_mask.dot(aow.T) + # vmat[i][cupy.ix_(mask, mask)] += ao_mask.dot(aow.T) add_sparse(vmat[i], ao_mask.dot(aow.T), idx) else: raise NotImplementedError('Not implemented yet') @@ -447,9 +470,6 @@ def _make_rho(ao_value, dm, xctype=None): _dot_ao_ao_sparse(ao[0], aow, None, nbins, sindex, ao_loc, pair2shls_full, pairs_locs_full, vmat[i]) elif USE_SPARSITY == 2: - mask = cupy.any(cupy.abs(ao) > AO_THRESHOLD, axis=[0,2]) - idx = cupy.argwhere(mask).astype(np.int32)[:,0] - ao_mask = ao[:,idx,:] aow = _scale_ao(ao_mask, wv) #vmat[i][cupy.ix_(mask, mask)] += ao_mask[0].dot(aow.T) add_sparse(vmat[i], ao_mask[0].dot(aow.T), idx) @@ -471,9 +491,6 @@ def _make_rho(ao_value, dm, xctype=None): _tau_dot_sparse(ao, ao, wv[4], nbins, sindex, ao_loc, pair2shls_full, pairs_locs_full, vmat[i]) else: - mask = cupy.any(cupy.abs(ao) > AO_THRESHOLD, axis=[0,2]) - idx = cupy.argwhere(mask).astype(np.int32)[:,0] - ao_mask = ao[:,idx,:] aow = _scale_ao(ao_mask, wv[:4]) vtmp = ao_mask[0].dot(aow.T) vtmp+= _tau_dot(ao_mask, ao_mask, wv[4]) @@ -1061,7 +1078,9 @@ def _block_loop(ni, mol, grids, nao=None, deriv=0, max_memory=2000, coords = grids.coords[ip0:ip1] weight = grids.weights[ip0:ip1] sindex = None#ni.screen_index[ip0//GRID_BLKSIZE:] + t0 = (logger.process_clock(), logger.perf_counter()) ao = eval_ao(ni, mol, coords, deriv) + log.timer_debug1('eval ao', *t0) yield ao, sindex, weight, coords class NumInt(numint.NumInt): @@ -1090,6 +1109,11 @@ def build(self, mol, coords): screen_index = make_screen_index(pmol, coords, blksize=GRID_BLKSIZE) screen_index = screen_index.reshape(-1, nbas4, BAS_ALIGNED).max(axis=2) self.screen_index = np.asarray(screen_index, dtype=np.uint8) + elif USE_SPARSITY == 2: + # blocksize will be fixed, once it is determined, + # nonzero ao index will be saved + self.grid_blksize = None + self.non0ao_idx = {} return self get_rho = get_rho diff --git a/gpu4pyscf/dft/rks.py b/gpu4pyscf/dft/rks.py index 868c4b2d..8c33ee95 100644 --- a/gpu4pyscf/dft/rks.py +++ b/gpu4pyscf/dft/rks.py @@ -20,10 +20,9 @@ import cupy from pyscf import lib -from pyscf.scf import hf as pyscf_hf from pyscf.dft import rks -from gpu4pyscf.scf import diis +from gpu4pyscf import scf from gpu4pyscf.lib import logger from gpu4pyscf.dft import numint, gen_grid from gpu4pyscf.scf.hf import RHF @@ -70,8 +69,7 @@ def initialize_grids(ks, mol=None, dm=None): if mol is None: mol = ks.mol if ks.grids.coords is None: t0 = (logger.process_clock(), logger.perf_counter()) - ks.grids.build(sort_grids=False) - # do not support sparsity yet + ks.grids.build() #ks.grids.build(with_non0tab=True) ks.grids.weights = cupy.asarray(ks.grids.weights) ks.grids.coords = cupy.asarray(ks.grids.coords) @@ -87,7 +85,7 @@ def initialize_grids(ks, mol=None, dm=None): if ks.nlcgrids.coords is None: t0 = (logger.process_clock(), logger.perf_counter()) #ks.nlcgrids.build(with_non0tab=True) - ks.nlcgrids.build(sort_grids=False) + ks.nlcgrids.build() ks.nlcgrids.weights = cupy.asarray(ks.nlcgrids.weights) ks.nlcgrids.coords = cupy.asarray(ks.nlcgrids.coords) if (ks.small_rho_cutoff > 1e-20 and @@ -202,7 +200,7 @@ def get_veff(ks, mol=None, dm=None, dm_last=0, vhf_last=0, hermi=1): vxc = tag_array(vxc, ecoul=ecoul, exc=exc, vj=vj, vk=vk) return vxc -class RKS(rks.RKS): +class RKS(scf.hf.RHF, rks.RKS): from gpu4pyscf.lib.utils import to_cpu, to_gpu, device def __init__(self, mol, xc='LDA,VWN', disp=None): @@ -237,7 +235,7 @@ def get_dispersion(self): return res.get("energy") def reset(self, mol=None): - pyscf_hf.SCF.reset(self, mol) + super().reset(mol) self.grids.reset(mol) self.nlcgrids.reset(mol) self._numint.gdftopt = None @@ -260,6 +258,10 @@ def energy_tot(self, dm, h1e, vhf=None): self.scf_summary['nuc'] = nuc.real return e_tot + def nuc_grad_method(self): + from gpu4pyscf.grad import rks as rks_grad + return rks_grad.Gradients(self) + get_jk = RHF.get_jk get_veff = get_veff _eigh = RHF._eigh diff --git a/gpu4pyscf/grad/__init__.py b/gpu4pyscf/grad/__init__.py new file mode 100644 index 00000000..fae01045 --- /dev/null +++ b/gpu4pyscf/grad/__init__.py @@ -0,0 +1,2 @@ +from .rhf import Gradients as RHF +from .rks import Gradients as RKS \ No newline at end of file diff --git a/gpu4pyscf/grad/rhf.py b/gpu4pyscf/grad/rhf.py index 79fd4976..59a3aeac 100644 --- a/gpu4pyscf/grad/rhf.py +++ b/gpu4pyscf/grad/rhf.py @@ -31,6 +31,7 @@ BINSIZE = 128 libgvhf = load_library('libgvhf') +''' def get_jk(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None, verbose=None): @@ -247,9 +248,9 @@ def _get_jk(gradient_object, mol=None, dm=None, hermi=1, with_j=True, with_k=Tru vj, vk = get_jk(mol, dm, hermi, vhfopt, with_j, with_k, omega, verbose=log) log.timer('vj and vk gradient on gpu', *cput0) return vj, vk +''' - -def get_veff(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None, +def get_jk(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None, verbose=None, atmlst=None): if atmlst is None: atmlst = range(mol.natm) @@ -279,6 +280,7 @@ def get_veff(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None vj = vk = None vj_ptr = vk_ptr = lib.c_null_ptr() + vj_per_atom = vk_per_atom = None if with_j: vj = cupy.zeros([vhfopt.mol.nbas, 3]) vj_per_atom = cupy.zeros([len(atmlst), 3]) @@ -326,7 +328,7 @@ def get_veff(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None dm_shl = cupy.asarray(np.log(dm_shl)) nshls = dm_shl.shape[0] t0 = time.perf_counter() - + if hermi != 1: dm_ctr_cond = (dm_ctr_cond + dm_ctr_cond.T) * .5 fn = libgvhf.GINTget_veff_ip1 @@ -345,7 +347,7 @@ def get_veff(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None ll = vhfopt.uniq_l_ctr[cpl,0] if lk > LMAX_ON_GPU or ll > LMAX_ON_GPU or log_q_kl.size == 0: continue - + # TODO: determine cutoff based on the relevant maximum value of dm blocks? sub_dm_cond = max(dm_ctr_cond[cpi,cpj], dm_ctr_cond[cpk,cpl], dm_ctr_cond[cpi,cpk], dm_ctr_cond[cpj,cpk], @@ -386,7 +388,8 @@ def get_veff(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None ctypes.cast(dm_shl.data.ptr, ctypes.c_void_p), ctypes.c_int(nshls), ctypes.cast(log_q_ij.data.ptr, ctypes.c_void_p), - ctypes.cast(log_q_kl.data.ptr, ctypes.c_void_p)) + ctypes.cast(log_q_kl.data.ptr, ctypes.c_void_p) + ) if err != 0: detail = f'CUDA Error for ({l_symb[li]}{l_symb[lj]}|{l_symb[lk]}{l_symb[ll]})' raise RuntimeError(detail) @@ -413,16 +416,20 @@ def get_veff(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None coeff = dms = None cupy.get_default_memory_pool().free_all_blocks() + #if vj is not None: vj_per_atom = vj_per_atom.T + #if vk is not None: vk_per_atom = vk_per_atom.T if out_cupy: return vj_per_atom, vk_per_atom else: return vj_per_atom.get() if vj is not None else None, \ vk_per_atom.get() if vk is not None else None -def _get_veff(gradient_object, mol, dm): +def _get_jk(gradient_object, mol=None, dm=None, hermi=1, with_j=True, with_k=True, + omega=None): mf = gradient_object.base cput0 = (logger.process_clock(), logger.perf_counter()) log = logger.new_logger(gradient_object) + log.debug3('apply get_grad_jk on gpu') if hasattr(mf, '_opt_gpu'): vhfopt = mf._opt_gpu else: @@ -432,10 +439,12 @@ def _get_veff(gradient_object, mol, dm): getattr(mf.opt, '_dmcondname', 'CVHFsetnr_direct_scf_dm')) vhfopt.build(mf.direct_scf_tol) mf._opt_gpu = vhfopt - - vj, vk = get_veff(mol, dm, vhfopt=vhfopt) + vj, vk = get_jk(mol, dm, hermi, vhfopt, with_j, with_k, omega, verbose=log) log.timer('vj and vk gradient on gpu', *cput0) + return vj, vk +def get_veff(mf_grad, mol, dm): + vj, vk = mf_grad.get_jk(mol, dm) return vj - vk * .5 def get_dh1e_ecp(mol, dm): @@ -489,7 +498,6 @@ def grad_elec(mf_grad, mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None): mo_energy = cupy.asarray(mo_energy) mo_occ = cupy.asarray(mo_occ) mo_coeff = cupy.asarray(mo_coeff) - dm0 = mf.make_rdm1(mo_coeff, mo_occ) dme0 = mf_grad.make_rdm1e(mo_energy, mo_coeff, mo_occ) @@ -553,3 +561,17 @@ class Gradients(rhf.Gradients): grad_nuc = grad_nuc get_veff = get_veff get_jk = _get_jk + + def get_j(self, mol=None, dm=None, hermi=0, omega=None): + vj, _ = self.get_jk(mol, dm, with_k=False, omega=omega) + return vj + + def get_k(self, mol=None, dm=None, hermi=0, omega=None): + _, vk = self.get_jk(mol, dm, with_j=False, omega=omega) + return vk + + def extra_force(self, atom_id, envs): + ''' + grid response is implemented get_veff + ''' + return 0 \ No newline at end of file diff --git a/gpu4pyscf/grad/rks.py b/gpu4pyscf/grad/rks.py index 041a4f5d..8695927c 100644 --- a/gpu4pyscf/grad/rks.py +++ b/gpu4pyscf/grad/rks.py @@ -19,24 +19,101 @@ '''Non-relativistic RKS analytical nuclear gradients''' import numpy import cupy +import pyscf from pyscf import lib, gto from pyscf.lib import logger -from pyscf.dft import radi, gen_grid -from gpu4pyscf.dft import numint, xc_deriv +from pyscf.dft import radi +from gpu4pyscf.lib.utils import patch_cpu_kernel +from gpu4pyscf.grad import rhf as rhf_grad +from gpu4pyscf.dft import numint, xc_deriv, rks from gpu4pyscf.dft.numint import _GDFTOpt, AO_THRESHOLD -from gpu4pyscf.lib.cupy_helper import contract, get_avail_mem, add_sparse +from gpu4pyscf.lib.cupy_helper import contract, get_avail_mem, add_sparse, tag_array from pyscf import __config__ MIN_BLK_SIZE = getattr(__config__, 'min_grid_blksize', 128*128) ALIGNED = getattr(__config__, 'grid_aligned', 16*16) +def _get_veff(ks_grad, mol=None, dm=None): + ''' + First order derivative of DFT effective potential matrix (wrt electron coordinates) + + Args: + ks_grad : grad.uhf.Gradients or grad.uks.Gradients object + ''' + if mol is None: mol = ks_grad.mol + if dm is None: dm = ks_grad.base.make_rdm1() + t0 = (logger.process_clock(), logger.perf_counter()) + + mf = ks_grad.base + ni = mf._numint + if ks_grad.grids is not None: + grids = ks_grad.grids + else: + grids = mf.grids + + if grids.coords is None: + grids.build(sort_grids=True) + + nlcgrids = None + if mf.nlc or ni.libxc.is_nlc(mf.xc): + if ks_grad.nlcgrids is not None: + nlcgrids = ks_grad.nlcgrids + else: + nlcgrids = mf.nlcgrids + if nlcgrids.coords is None: + nlcgrids.build(sort_grids=True) + + mem_now = lib.current_memory()[0] + max_memory = max(2000, ks_grad.max_memory*.9-mem_now) + if ks_grad.grid_response: + exc, vxc = get_vxc_full_response(ni, mol, grids, mf.xc, dm, + max_memory=max_memory, + verbose=ks_grad.verbose) + if mf.nlc or ni.libxc.is_nlc(mf.xc): + raise NotImplementedError + else: + exc, vxc = get_vxc(ni, mol, grids, mf.xc, dm, + max_memory=max_memory, verbose=ks_grad.verbose) + if mf.nlc or ni.libxc.is_nlc(mf.xc): + if ni.libxc.is_nlc(mf.xc): + xc = mf.xc + else: + xc = mf.nlc + enlc, vnlc = get_nlc_vxc( + ni, mol, nlcgrids, xc, dm, + max_memory=max_memory, verbose=ks_grad.verbose) + vxc += vnlc + t0 = logger.timer(ks_grad, 'vxc', *t0) + + # this can be moved into vxc calculations + occ_coeff = cupy.asarray(mf.mo_coeff[:, mf.mo_occ>0.5], order='C') + tmp = contract('nij,jk->nik', vxc, occ_coeff) + vxc = 2.0*contract('nik,ik->ni', tmp, occ_coeff) + + aoslices = mol.aoslice_by_atom() + vxc = [vxc[:,p0:p1].sum(axis=1) for p0, p1 in aoslices[:,2:]] + vxc = cupy.asarray(vxc) + omega, alpha, hyb = ni.rsh_and_hybrid_coeff(mf.xc, spin=mol.spin) + if abs(hyb) < 1e-10 and abs(alpha) < 1e-10: + vj = ks_grad.get_j(mol, dm) + vxc += vj + else: + vj, vk = ks_grad.get_jk(mol, dm) + vk *= hyb + if abs(omega) > 1e-10: # For range separated Coulomb operator + vk_lr = ks_grad.get_k(mol, dm, omega=omega) + vk += vk_lr * (alpha - hyb) + vxc += vj - vk * .5 + return vxc + def get_vxc(ni, mol, grids, xc_code, dms, relativity=0, hermi=1, max_memory=2000, verbose=None): log = logger.new_logger(mol, verbose) xctype = ni._xc_type(xc_code) opt = getattr(ni, 'gdftopt', None) if opt is None: - opt = ni.gdftopt = _GDFTOpt(mol) + ni.build(mol, grids.coords) + opt = ni.gdftopt mo_occ = cupy.asarray(dms.mo_occ) mo_coeff = cupy.asarray(dms.mo_coeff) @@ -139,7 +216,8 @@ def get_nlc_vxc(ni, mol, grids, xc_code, dms, relativity=0, hermi=1, xctype = ni._xc_type(xc_code) opt = getattr(ni, 'gdftopt', None) if opt is None: - opt = ni.gdftopt = _GDFTOpt(mol) + ni.build(mol, grids.coords) + opt = ni.gdftopt mo_occ = cupy.asarray(dms.mo_occ) mo_coeff = cupy.asarray(dms.mo_coeff) @@ -240,7 +318,8 @@ def get_vxc_full_response(ni, mol, grids, xc_code, dms, relativity=0, hermi=1, xctype = ni._xc_type(xc_code) opt = getattr(ni, 'gdftopt', None) if opt is None: - opt = ni.gdftopt = _GDFTOpt(mol) + ni.build(mol, grids.coords) + opt = ni.gdftopt coeff = cupy.asarray(opt.coeff) nao, nao0 = coeff.shape dms = cupy.asarray(dms) @@ -420,3 +499,28 @@ def get_du(ia, ib): # JCP 98, 5612 (1993); (B10) w1 *= vol w0 = vol * pbecke[ia] * z yield coords, w0, w1 + +class Gradients(rhf_grad.Gradients, pyscf.grad.rks.Gradients): + device = 'gpu' + get_veff = patch_cpu_kernel(pyscf.grad.rks.Gradients.get_veff)(_get_veff) + + def get_dispersion(self): + if self.base.disp[:2].upper() == 'D3': + from pyscf import lib + with lib.with_omp_threads(1): + import dftd3.pyscf as disp + d3 = disp.DFTD3Dispersion(self.mol, xc=self.base.xc, version=self.base.disp) + _, g_d3 = d3.kernel() + return g_d3 + + if self.base.disp[:2].upper() == 'D4': + from pyscf.data.elements import charge + atoms = numpy.array([ charge(a[0]) for a in self.mol._atom]) + coords = self.mol.atom_coords() + + from pyscf import lib + with lib.with_omp_threads(1): + from dftd4.interface import DampingParam, DispersionModel + model = DispersionModel(atoms, coords) + res = model.get_dispersion(DampingParam(method=self.base.xc), grad=True) + return res.get("gradient") \ No newline at end of file diff --git a/gpu4pyscf/grad/tests/test_rhf_grad.py b/gpu4pyscf/grad/tests/test_rhf_grad.py new file mode 100644 index 00000000..14c74d3b --- /dev/null +++ b/gpu4pyscf/grad/tests/test_rhf_grad.py @@ -0,0 +1,62 @@ +# Copyright 2023 The GPU4PySCF Authors. All Rights Reserved. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import pyscf +import numpy as np +import unittest +import gpu4pyscf +from pyscf import scf + +atom = ''' +O 0.0000000000 -0.0000000000 0.1174000000 +H -0.7570000000 -0.0000000000 -0.4696000000 +H 0.7570000000 0.0000000000 -0.4696000000 +''' + +bas0='cc-pvtz' + +def setUpModule(): + global mol + mol = pyscf.M(atom=atom, basis=bas0, max_memory=32000) + mol.output = '/dev/null' + mol.build() + mol.verbose = 1 + +def tearDownModule(): + global mol + mol.stdout.close() + del mol + +def _check_grad(tol=1e-6): + mf = scf.hf.RHF(mol) + mf.direct_scf_tol = 1e-10 + mf.kernel() + + cpu_gradient = pyscf.grad.RHF(mf) + g_cpu = cpu_gradient.kernel() + + # TODO: use to_gpu function + mf.__class__ = gpu4pyscf.scf.hf.RHF + gpu_gradient = gpu4pyscf.grad.RHF(mf) + g_gpu = gpu_gradient.kernel() + assert(np.linalg.norm(g_cpu - g_gpu) < tol) + +class KnownValues(unittest.TestCase): + def test_grad_rhf(self): + _check_grad(tol=1e-6) + +if __name__ == "__main__": + print("Full Tests for Gradient") + unittest.main() diff --git a/gpu4pyscf/grad/tests/test_grad.py b/gpu4pyscf/grad/tests/test_rks_grad.py similarity index 54% rename from gpu4pyscf/grad/tests/test_grad.py rename to gpu4pyscf/grad/tests/test_rks_grad.py index 298613dc..04d7c7c8 100644 --- a/gpu4pyscf/grad/tests/test_grad.py +++ b/gpu4pyscf/grad/tests/test_rks_grad.py @@ -15,12 +15,10 @@ import pyscf import cupy -import numpy as np import unittest -from pyscf import lib -from gpu4pyscf.dft import rks - -lib.num_threads(8) +from pyscf.dft import rks +import gpu4pyscf +from gpu4pyscf.dft import numint atom = ''' O 0.0000000000 -0.0000000000 0.1174000000 @@ -28,92 +26,73 @@ H 0.7570000000 0.0000000000 -0.4696000000 ''' -xc0='B3LYP' bas0='def2-tzvpp' -disp0='d3bj' -grids_level = 6 +grids_level = 5 +nlcgrids_level = 3 def setUpModule(): global mol mol = pyscf.M(atom=atom, basis=bas0, max_memory=32000) mol.output = '/dev/null' mol.build() mol.verbose = 1 - -eps = 1.0/1024 def tearDownModule(): global mol mol.stdout.close() del mol -def _check_grad(grid_response=False, xc=xc0, disp=disp0, tol=1e-6): - mf = rks.RKS(mol, xc=xc, disp=disp) - mf.device = 'gpu' +def _check_grad(grid_response=False, xc='B3LYP', disp='d3bj', tol=1e-6): + mf = rks.RKS(mol, xc=xc) + mf.direct_scf_tol = 1e-14 mf.grids.level = grids_level - mf.conv_tol = 1e-12 - e_tot = mf.kernel() - g = mf.nuc_grad_method() - g.grid_response = grid_response - - g_scanner = g.as_scanner() - g_analy = g_scanner(mol)[1] - print('analytical gradient:') - print(g_analy) - - f_scanner = mf.as_scanner() - coords = mol.atom_coords() - grad_fd = np.zeros_like(coords) - for i in range(len(coords)): - for j in range(3): - coords = mol.atom_coords() - coords[i,j] += eps - mol.set_geom_(coords, unit='Bohr') - mol.build() - e0 = f_scanner(mol) - - mf = rks.RKS(mol, xc=xc, disp=disp) - mf.device = 'gpu' - mf.grids.level = grids_level + mf.grids.prune = None + mf.grids.small_rho_cutoff = 1e-30 + if mf._numint.libxc.is_nlc(mf.xc): + mf.nlcgrids.level = nlcgrids_level + mf.kernel() - coords[i,j] -= 2.0 * eps - mol.set_geom_(coords, unit='Bohr') - mol.build() - e1 = f_scanner(mol) - - mf = rks.RKS(mol, xc=xc, disp=disp) - mf.device = 'gpu' - mf.grids.level = grids_level + cpu_gradient = pyscf.grad.RKS(mf) + cpu_gradient.grid_response = grid_response + g_cpu = cpu_gradient.kernel() + - coords[i,j] += eps - mol.set_geom_(coords, unit='Bohr') - grad_fd[i,j] = (e0-e1)/2.0/eps - grad_fd = np.array(grad_fd).reshape(-1,3) - print('finite difference gradient:') - print(grad_fd) - print('difference between analytical and finite difference gradient:', cupy.linalg.norm(g_analy - grad_fd)) - assert(cupy.linalg.norm(g_analy - grad_fd) < tol) + # TODO: use to_gpu functionality + mf.__class__ = gpu4pyscf.dft.rks.RKS + mf._numint = numint.NumInt(xc=xc) + mf.grids = gpu4pyscf.dft.gen_grid.Grids(mol) + mf.grids.level = grids_level + mf.grids.prune = None + mf.grids.small_rho_cutoff = 1e-30 + if mf._numint.libxc.is_nlc(mf.xc): + mf.nlcgrids = gpu4pyscf.dft.gen_grid.Grids(mol) + mf.nlcgrids.level = nlcgrids_level + + gpu_gradient = gpu4pyscf.grad.RKS(mf) + gpu_gradient.grid_response = grid_response + g_gpu = gpu_gradient.kernel() + assert(cupy.linalg.norm(g_cpu - g_gpu) < tol) class KnownValues(unittest.TestCase): def test_grad_with_grids_response(self): print("-----testing DFT gradient with grids response----") - _check_grad(grid_response=True) + _check_grad(grid_response=True, tol=1e-5) def test_grad_without_grids_response(self): print('-----testing DFT gradient without grids response----') - _check_grad(grid_response=False) + _check_grad(grid_response=False, tol=1e-5) def test_grad_lda(self): print("-----LDA testing-------") - _check_grad(xc='LDA', disp=None, tol=1e-6) + _check_grad(xc='LDA', disp=None, tol=1e-5) def test_grad_gga(self): print('-----GGA testing-------') - _check_grad(xc='PBE', disp=None, tol=1e-6) + _check_grad(xc='PBE', disp=None, tol=1e-5) def test_grad_hybrid(self): print('------hybrid GGA testing--------') - _check_grad(xc='B3LYP', disp=None, tol=1e-6) + _check_grad(xc='B3LYP', disp=None, tol=1e-5) def test_grad_mgga(self): print('-------mGGA testing-------------') @@ -125,7 +104,7 @@ def test_grad_rsh(self): def test_grad_nlc(self): print('--------nlc testing-------------') - _check_grad(xc='HYB_MGGA_XC_WB97M_V', disp=None, tol=1e-6) + _check_grad(xc='HYB_MGGA_XC_WB97M_V', disp=None, tol=1e-5) if __name__ == "__main__": print("Full Tests for Gradient") diff --git a/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1.cu b/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1.cu index f0dad5e0..eb6ff512 100644 --- a/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1.cu +++ b/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1.cu @@ -42,7 +42,7 @@ static void GINTint2e_get_veff_ip1_kernel(GINTEnvVars envs, int i, j, k, l, f; double norm = envs.fac; - + double omega = envs.omega; int nprim_ij = envs.nprim_ij; int nprim_kl = envs.nprim_kl; int prim_ij = offsets.primitive_ij + task_ij * nprim_ij; @@ -128,10 +128,12 @@ static void GINTint2e_get_veff_ip1_kernel(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); GINTrys_root(x, uw); - + GINTscale_u(uw, theta); GINTg0_2e_2d4d_ip1(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); @@ -201,10 +203,12 @@ static void GINTint2e_get_veff_ip1_kernel(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); GINTrys_root(x, uw); - + GINTscale_u(uw, theta); GINTg0_2e_2d4d_ip1(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); @@ -282,9 +286,12 @@ static void GINTint2e_get_veff_ip1_kernel(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); GINTrys_root(x, uw); + GINTscale_u(uw, theta); GINTg0_2e_2d4d_ip1(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); @@ -364,7 +371,7 @@ GINTint2e_get_veff_ip1_kernel_0000(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; - + double omega = envs.omega; int nprim_ij = envs.nprim_ij; int nprim_kl = envs.nprim_kl; int prim_ij = offsets.primitive_ij + task_ij * nprim_ij; @@ -427,11 +434,13 @@ GINTint2e_get_veff_ip1_kernel_0000(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); - + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); double root0, weight0; - + if (x < 3.e-7) { root0 = 0.5; weight0 = 1.; @@ -444,7 +453,7 @@ GINTint2e_get_veff_ip1_kernel_0000(GINTEnvVars envs, double fmt1 = b * (fmt0 - e); root0 = fmt1 / (fmt0 - fmt1); } - + root0 /= root0 + 1 - root0 * theta; double u2 = a0 * root0; double tmp2 = akl * u2 / (u2 * aijkl + a1); double c00x = xij - xi - tmp2 * xijxkl; diff --git a/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1_root2.cu b/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1_root2.cu index fd1c70dc..4ca7c9b0 100644 --- a/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1_root2.cu +++ b/gpu4pyscf/lib/gvhf/g2e_get_veff_ip1_root2.cu @@ -32,6 +32,7 @@ static void GINTint2e_get_veff_ip1_kernel0010(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -113,10 +114,14 @@ static void GINTint2e_get_veff_ip1_kernel0010(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double gz0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -312,6 +317,7 @@ static void GINTint2e_get_veff_ip1_kernel0011(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -431,10 +437,14 @@ static void GINTint2e_get_veff_ip1_kernel0011(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double gz0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -847,6 +857,7 @@ static void GINTint2e_get_veff_ip1_kernel0020(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -946,10 +957,14 @@ static void GINTint2e_get_veff_ip1_kernel0020(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double gz0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -1253,6 +1268,7 @@ static void GINTint2e_get_veff_ip1_kernel1000(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -1332,10 +1348,14 @@ static void GINTint2e_get_veff_ip1_kernel1000(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double gz0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -1525,6 +1545,7 @@ static void GINTint2e_get_veff_ip1_kernel1010(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -1642,10 +1663,14 @@ static void GINTint2e_get_veff_ip1_kernel1010(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double gz0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -2043,6 +2068,7 @@ static void GINTint2e_get_veff_ip1_kernel1100(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -2158,10 +2184,14 @@ static void GINTint2e_get_veff_ip1_kernel1100(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double gz0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -2553,6 +2583,7 @@ static void GINTint2e_get_veff_ip1_kernel2000(GINTEnvVars envs, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -2650,10 +2681,14 @@ static void GINTint2e_get_veff_ip1_kernel2000(GINTEnvVars envs, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double gz0 = rw[irys+2] * fac; double root0 = rw[irys]; diff --git a/gpu4pyscf/lib/gvhf/g2e_ip1.cu b/gpu4pyscf/lib/gvhf/g2e_ip1.cu index 5d64a8d8..c22c7ec4 100644 --- a/gpu4pyscf/lib/gvhf/g2e_ip1.cu +++ b/gpu4pyscf/lib/gvhf/g2e_ip1.cu @@ -807,7 +807,7 @@ static void GINTint2e_ip1_jk_kernel(GINTEnvVars envs, JKMatrix jk, BasisProdOffs double v_jk_x, v_jk_y, v_jk_z, v_jl_x, v_jl_y, v_jl_z; double norm = envs.fac; - + double omega = envs.omega; int nprim_ij = envs.nprim_ij; int nprim_kl = envs.nprim_kl; int prim_ij = offsets.primitive_ij + task_ij * nprim_ij; @@ -903,9 +903,11 @@ static void GINTint2e_ip1_jk_kernel(GINTEnvVars envs, JKMatrix jk, BasisProdOffs double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); GINTrys_root(x, uw); - + GINTscale_u(uw, theta); GINTg0_2e_2d4d_ip1(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); buf_ij = gout; @@ -986,9 +988,11 @@ static void GINTint2e_ip1_jk_kernel(GINTEnvVars envs, JKMatrix jk, BasisProdOffs double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); GINTrys_root(x, uw); - + GINTscale_u(uw, theta); GINTg0_2e_2d4d_ip1(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); dm = jk.dm; @@ -1150,9 +1154,11 @@ static void GINTint2e_ip1_jk_kernel(GINTEnvVars envs, JKMatrix jk, BasisProdOffs double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); GINTrys_root(x, uw); - + GINTscale_u(uw, theta); GINTg0_2e_2d4d_ip1(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); dm = jk.dm; @@ -1279,7 +1285,7 @@ GINTint2e_ip1_jk_kernel_0000(GINTEnvVars envs, JKMatrix jk, BasisProdOffsets off int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; - + double omega = envs.omega; int nprim_ij = envs.nprim_ij; int nprim_kl = envs.nprim_kl; int prim_ij = offsets.primitive_ij + task_ij * nprim_ij; @@ -1346,8 +1352,12 @@ GINTint2e_ip1_jk_kernel_0000(GINTEnvVars envs, JKMatrix jk, BasisProdOffsets off double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); double root0, weight0; @@ -1363,7 +1373,7 @@ GINTint2e_ip1_jk_kernel_0000(GINTEnvVars envs, JKMatrix jk, BasisProdOffsets off double fmt1 = b * (fmt0 - e); root0 = fmt1 / (fmt0 - fmt1); } - + root0 /= root0 + 1 - root0 * theta; double u2 = a0 * root0; double tmp2 = akl * u2 / (u2 * aijkl + a1); double c00x = xij - xi - tmp2 * xijxkl; @@ -1461,7 +1471,7 @@ void GINTint2e_ip1_jk_kernel<4, NABLAGOUTSIZE4>(GINTEnvVars envs, JKMatrix jk, int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; - + double omega = envs.omega; int nprim_ij = envs.nprim_ij; int nprim_kl = envs.nprim_kl; int prim_ij = offsets.primitive_ij + task_ij * nprim_ij; @@ -1519,8 +1529,12 @@ void GINTint2e_ip1_jk_kernel<4, NABLAGOUTSIZE4>(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); + GINTrys_root<4>(x, uw); + GINTscale_u<4>(uw, theta); GINTg0_2e_2d4d_ip1<4>(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); GINTgout2e_ip1<4>(envs, gout, g, ai, aj); } @@ -1549,7 +1563,7 @@ void GINTint2e_ip1_jk_kernel<5, NABLAGOUTSIZE5>(GINTEnvVars envs, JKMatrix jk, int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; - + double omega = envs.omega; int nprim_ij = envs.nprim_ij; int nprim_kl = envs.nprim_kl; int prim_ij = offsets.primitive_ij + task_ij * nprim_ij; @@ -1607,8 +1621,11 @@ void GINTint2e_ip1_jk_kernel<5, NABLAGOUTSIZE5>(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); GINTrys_root<5>(x, uw); + GINTscale_u<5>(uw, theta); GINTg0_2e_2d4d_ip1<5>(envs, g, uw, norm, as_ish, as_jsh, as_ksh, as_lsh, ij, kl); GINTgout2e_ip1<5>(envs, gout, g, ai, aj); } diff --git a/gpu4pyscf/lib/gvhf/g2e_ip1_root2.cu b/gpu4pyscf/lib/gvhf/g2e_ip1_root2.cu index 7f3b9a97..3cf95b9a 100644 --- a/gpu4pyscf/lib/gvhf/g2e_ip1_root2.cu +++ b/gpu4pyscf/lib/gvhf/g2e_ip1_root2.cu @@ -31,6 +31,7 @@ static void GINTint2e_ip1_jk_kernel_0010(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -111,10 +112,14 @@ static void GINTint2e_ip1_jk_kernel_0010(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); - + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double weight0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -247,6 +252,7 @@ static void GINTint2e_ip1_jk_kernel_0011(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -365,10 +371,14 @@ static void GINTint2e_ip1_jk_kernel_0011(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double weight0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -581,6 +591,7 @@ static void GINTint2e_ip1_jk_kernel_0020(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -679,10 +690,14 @@ static void GINTint2e_ip1_jk_kernel_0020(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double weight0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -872,6 +887,7 @@ static void GINTint2e_ip1_jk_kernel_1000(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -950,10 +966,14 @@ static void GINTint2e_ip1_jk_kernel_1000(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double weight0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -1093,6 +1113,7 @@ static void GINTint2e_ip1_jk_kernel_1010(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -1209,10 +1230,14 @@ static void GINTint2e_ip1_jk_kernel_1010(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double weight0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -1440,6 +1465,7 @@ static void GINTint2e_ip1_jk_kernel_1100(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -1554,10 +1580,14 @@ static void GINTint2e_ip1_jk_kernel_1100(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double weight0 = rw[irys+2] * fac; double root0 = rw[irys]; @@ -1798,6 +1828,7 @@ static void GINTint2e_ip1_jk_kernel_2000(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -1894,10 +1925,14 @@ static void GINTint2e_ip1_jk_kernel_2000(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<2>(x, rw); + GINTscale_u<2>(rw, theta); for (irys = 0; irys < 2; ++irys) { double weight0 = rw[irys+2] * fac; double root0 = rw[irys]; diff --git a/gpu4pyscf/lib/gvhf/g2e_ip1_root3.cu b/gpu4pyscf/lib/gvhf/g2e_ip1_root3.cu index 175ad323..49152851 100644 --- a/gpu4pyscf/lib/gvhf/g2e_ip1_root3.cu +++ b/gpu4pyscf/lib/gvhf/g2e_ip1_root3.cu @@ -31,6 +31,7 @@ static void GINTint2e_ip1_jk_kernel_0021(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -204,10 +205,14 @@ static void GINTint2e_ip1_jk_kernel_0021(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -542,6 +547,7 @@ static void GINTint2e_ip1_jk_kernel_0022(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -823,10 +829,14 @@ static void GINTint2e_ip1_jk_kernel_0022(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -1364,6 +1374,7 @@ static void GINTint2e_ip1_jk_kernel_0030(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -1487,10 +1498,14 @@ static void GINTint2e_ip1_jk_kernel_0030(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -1757,6 +1772,7 @@ static void GINTint2e_ip1_jk_kernel_0031(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -2002,10 +2018,14 @@ static void GINTint2e_ip1_jk_kernel_0031(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -2501,6 +2521,7 @@ static void GINTint2e_ip1_jk_kernel_1011(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -2728,10 +2749,14 @@ static void GINTint2e_ip1_jk_kernel_1011(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -3153,6 +3178,7 @@ static void GINTint2e_ip1_jk_kernel_1020(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -3324,10 +3350,14 @@ static void GINTint2e_ip1_jk_kernel_1020(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -3683,6 +3713,7 @@ static void GINTint2e_ip1_jk_kernel_1021(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -4072,10 +4103,14 @@ static void GINTint2e_ip1_jk_kernel_1021(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -4777,6 +4812,7 @@ static void GINTint2e_ip1_jk_kernel_1030(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -5020,10 +5056,14 @@ static void GINTint2e_ip1_jk_kernel_1030(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -5552,6 +5592,7 @@ static void GINTint2e_ip1_jk_kernel_1110(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -5777,10 +5818,14 @@ static void GINTint2e_ip1_jk_kernel_1110(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -6209,6 +6254,7 @@ static void GINTint2e_ip1_jk_kernel_1111(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -6760,10 +6806,14 @@ static void GINTint2e_ip1_jk_kernel_1111(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -7660,6 +7710,7 @@ static void GINTint2e_ip1_jk_kernel_1120(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -8047,10 +8098,14 @@ static void GINTint2e_ip1_jk_kernel_1120(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -8761,6 +8816,7 @@ static void GINTint2e_ip1_jk_kernel_2010(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -8932,10 +8988,14 @@ static void GINTint2e_ip1_jk_kernel_2010(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -9300,6 +9360,7 @@ static void GINTint2e_ip1_jk_kernel_2011(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -9689,10 +9750,14 @@ static void GINTint2e_ip1_jk_kernel_2011(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -10414,6 +10479,7 @@ static void GINTint2e_ip1_jk_kernel_2020(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -10693,10 +10759,14 @@ static void GINTint2e_ip1_jk_kernel_2020(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -11298,6 +11368,7 @@ static void GINTint2e_ip1_jk_kernel_2100(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -11467,10 +11538,14 @@ static void GINTint2e_ip1_jk_kernel_2100(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -11854,6 +11929,7 @@ static void GINTint2e_ip1_jk_kernel_2110(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -12241,10 +12317,14 @@ static void GINTint2e_ip1_jk_kernel_2110(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -12972,6 +13052,7 @@ static void GINTint2e_ip1_jk_kernel_2200(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -13249,10 +13330,14 @@ static void GINTint2e_ip1_jk_kernel_2200(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -13900,6 +13985,7 @@ static void GINTint2e_ip1_jk_kernel_3000(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -14021,10 +14107,14 @@ static void GINTint2e_ip1_jk_kernel_3000(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -14321,6 +14411,7 @@ static void GINTint2e_ip1_jk_kernel_3010(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -14564,10 +14655,14 @@ static void GINTint2e_ip1_jk_kernel_3010(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; @@ -15118,6 +15213,7 @@ static void GINTint2e_ip1_jk_kernel_3100(GINTEnvVars envs, JKMatrix jk, int bas_ij = offsets.bas_ij + task_ij; int bas_kl = offsets.bas_kl + task_kl; double norm = envs.fac; + double omega = envs.omega; int *bas_pair2bra = c_bpcache.bas_pair2bra; int *bas_pair2ket = c_bpcache.bas_pair2ket; int ish = bas_pair2bra[bas_ij]; @@ -15359,10 +15455,14 @@ static void GINTint2e_ip1_jk_kernel_3100(GINTEnvVars envs, JKMatrix jk, double aijkl = aij + akl; double a1 = aij * akl; double a0 = a1 / aijkl; + double theta = omega > 0.0 ? omega * omega / (omega * omega + a0) : 1.0; + a0 *= theta; double x = a0 * (xijxkl * xijxkl + yijykl * yijykl + zijzkl * zijzkl); - double fac = norm * eij * ekl / (sqrt(aijkl) * a1); + double fac = norm * eij * ekl * sqrt(a0 / (a1 * a1 * a1)); + //double fac = norm * eij * ekl / (sqrt(aijkl) * a1); GINTrys_root<3>(x, rw); + GINTscale_u<3>(rw, theta); for (irys = 0; irys < 3; ++irys) { double weight0 = rw[irys+3] * fac; double root0 = rw[irys]; diff --git a/gpu4pyscf/lib/utils.py b/gpu4pyscf/lib/utils.py index bbe3d2df..4489fab3 100644 --- a/gpu4pyscf/lib/utils.py +++ b/gpu4pyscf/lib/utils.py @@ -34,11 +34,14 @@ def hybrid_kernel(method, *args, **kwargs): def to_cpu(method): # Search for the class in pyscf closest to the one defined in gpu4pyscf for pyscf_cls in method.__class__.__mro__: - if 'gpu4pyscf' not in pyscf_cls: + if 'gpu4pyscf' not in pyscf_cls.__module__: break method = method.view(pyscf_cls) - keys = [cls._keys for cls in pyscf_cls.__mro__[:-1] if hasattr(cls, '_keys')] + keys = set() + for cls in pyscf_cls.__mro__[:-1]: + if hasattr(cls, '_keys'): + keys.update(cls._keys) if keys: keys = set(keys).intersection(method.__dict__) diff --git a/gpu4pyscf/scf/hf.py b/gpu4pyscf/scf/hf.py index 833919ec..49378c69 100644 --- a/gpu4pyscf/scf/hf.py +++ b/gpu4pyscf/scf/hf.py @@ -214,11 +214,13 @@ def get_jk(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None, if with_j: vj1[:,idy,idx] = vj1[:,idx,idy] + vj1 = cupy.asarray(vj1) for i, v in enumerate(vj1): vj[i] += coeff.T.dot(v).dot(coeff) if with_k: if hermi: vk1[:,idy,idx] = vk1[:,idx,idy] + vk1 = cupy.asarray(vk1) for i, v in enumerate(vk1): vk[i] += coeff.T.dot(v).dot(coeff) cput0 = log.timer_debug1('get_jk pass 2 for l>4 basis on cpu', *cput0) @@ -240,8 +242,11 @@ def get_jk(mol, dm, hermi=1, vhfopt=None, with_j=True, with_k=True, omega=None, if out_cupy: return vj, vk else: - return vj.get() if vj else None, vk.get() if vk else None - + if with_j: + vj = vj.get() + if with_k: + vk = vk.get() + return vj, vk def _get_jk(mf, mol=None, dm=None, hermi=1, with_j=True, with_k=True, omega=None): @@ -359,13 +364,14 @@ def _kernel(mf, conv_tol=1e-10, conv_tol_grad=None, if(dm0 is None): dm0 = mf.get_init_guess(mol) + dm = cupy.asarray(dm0, order='C') - if hasattr(dm0, 'occ_coeff') and hasattr(dm0, 'mo_occ'): + if hasattr(dm0, 'mo_coeff') and hasattr(dm0, 'mo_occ'): mo_coeff = cupy.asarray(dm0.mo_coeff) mo_occ = cupy.asarray(dm0.mo_occ) occ_coeff = cupy.asarray(mo_coeff[:,mo_occ>0]) dm = tag_array(dm, occ_coeff=occ_coeff, mo_occ=mo_occ, mo_coeff=mo_coeff) - + # use optimized workflow if possible if hasattr(mf, 'init_workflow'): mf.init_workflow(dm0=dm) @@ -534,6 +540,8 @@ def _quad_moment(mf, mol=None, dm=None, unit='Debye-Ang'): mol_quad *= nist.AU2DEBYE * nist.BOHR return mol_quad +def _eigh(mf, h, s): + return eigh(h, s) class RHF(hf.RHF): from gpu4pyscf.lib.utils import to_cpu, to_gpu, device @@ -541,7 +549,8 @@ class RHF(hf.RHF): screen_tol = 1e-14 DIIS = diis.SCF_DIIS get_jk = _get_jk - _eigh = staticmethod(eigh) + #_eigh = staticmethod(_eigh) + _eigh = _eigh make_rdm1 = make_rdm1 get_fock = get_fock get_occ = get_occ @@ -575,12 +584,29 @@ def scf(self, dm0=None, **kwargs): return self.e_tot kernel = pyscf_lib.alias(scf, alias_name='kernel') + def reset(self, mol=None): + if mol is not None: + self.mol = mol + self._opt_gpu = None + self._opt_gpu_omega = None + self._eri = None + return self + + def nuc_grad_method(self): + from gpu4pyscf.grad import rhf + return rhf.Gradients(self) + + def density_fit(self, auxbasis=None, with_df=None, only_dfj=False): + import gpu4pyscf.df.df_jk + return gpu4pyscf.df.df_jk.density_fit(self, auxbasis, with_df, only_dfj) + class _VHFOpt(_vhf.VHFOpt): from gpu4pyscf.lib.utils import to_cpu, to_gpu, device def __init__(self, mol, intor, prescreen='CVHFnoscreen', qcondname='CVHFsetnr_direct_scf', dmcondname=None): self.mol, self.coeff = basis_seg_contraction(mol) + self.coeff = cupy.asarray(self.coeff) # Note mol._bas will be sorted in .build() method. VHFOpt should be # initialized after mol._bas updated. self._intor = intor diff --git a/gpu4pyscf/solvent/grad/pcm.py b/gpu4pyscf/solvent/grad/pcm.py index 68b87229..a1f2b689 100644 --- a/gpu4pyscf/solvent/grad/pcm.py +++ b/gpu4pyscf/solvent/grad/pcm.py @@ -153,12 +153,10 @@ def grad_kernel(pcmobj, dm): gridslice = pcmobj.surface['gslice_by_atom'] grid_coords = pcmobj.surface['grid_coords'] exponents = pcmobj.surface['charge_exp'] - switch_fun = pcmobj.surface['switch_fun'] v_grids = pcmobj._intermediates['v_grids'] A = pcmobj._intermediates['A'] D = pcmobj._intermediates['D'] S = pcmobj._intermediates['S'] - R = pcmobj._intermediates['R'] K = pcmobj._intermediates['K'] q = pcmobj._intermediates['q'] q_sym = pcmobj._intermediates['q_sym'] diff --git a/gpu4pyscf/solvent/pcm.py b/gpu4pyscf/solvent/pcm.py index ddfc515c..aaed5922 100644 --- a/gpu4pyscf/solvent/pcm.py +++ b/gpu4pyscf/solvent/pcm.py @@ -47,35 +47,35 @@ def pcm_for_scf(mf, solvent_obj=None, dm=None): # TABLE II, J. Chem. Phys. 122, 194110 (2005) XI = { -6: 4.84566077868, -14: 4.86458714334, -26: 4.85478226219, -38: 4.90105812685, -50: 4.89250673295, -86: 4.89741372580, -110: 4.90101060987, -146: 4.89825187392, -170: 4.90685517725, -194: 4.90337644248, -302: 4.90498088169, -350: 4.86879474832, -434: 4.90567349080, -590: 4.90624071359, -770: 4.90656435779, -974: 4.90685167998, -1202: 4.90704098216, -1454: 4.90721023869, -1730: 4.90733270691, -2030: 4.90744499142, -2354: 4.90753082825, -2702: 4.90760972766, -3074: 4.90767282394, -3470: 4.90773141371, -3890: 4.90777965981, -4334: 4.90782469526, -4802: 4.90749125553, -5294: 4.90762073452, -5810: 4.90792902522, + 6: 4.84566077868, + 14: 4.86458714334, + 26: 4.85478226219, + 38: 4.90105812685, + 50: 4.89250673295, + 86: 4.89741372580, + 110: 4.90101060987, + 146: 4.89825187392, + 170: 4.90685517725, + 194: 4.90337644248, + 302: 4.90498088169, + 350: 4.86879474832, + 434: 4.90567349080, + 590: 4.90624071359, + 770: 4.90656435779, + 974: 4.90685167998, + 1202: 4.90704098216, + 1454: 4.90721023869, + 1730: 4.90733270691, + 2030: 4.90744499142, + 2354: 4.90753082825, + 2702: 4.90760972766, + 3074: 4.90767282394, + 3470: 4.90773141371, + 3890: 4.90777965981, + 4334: 4.90782469526, + 4802: 4.90749125553, + 5294: 4.90762073452, + 5810: 4.90792902522, } Bondi = radii.VDW @@ -325,12 +325,10 @@ def grad_kernel(pcmobj, dm): gridslice = pcmobj.surface['gslice_by_atom'] grid_coords = pcmobj.surface['grid_coords'] exponents = pcmobj.surface['charge_exp'] - switch_fun = pcmobj.surface['switch_fun'] v_grids = pcmobj._intermediates['v_grids'] A = pcmobj._intermediates['A'] D = pcmobj._intermediates['D'] S = pcmobj._intermediates['S'] - R = pcmobj._intermediates['R'] K = pcmobj._intermediates['K'] q = pcmobj._intermediates['q'] q_sym = pcmobj._intermediates['q_sym'] @@ -550,10 +548,8 @@ def _get_vind(self, dms): if not self._intermediates or self.grids.coords is None: self.build() - mol = self.mol nao = dms.shape[-1] dms = dms.reshape(-1,nao,nao) - n_dm = dms.shape[0] K = self._intermediates['K'] R = self._intermediates['R'] @@ -609,11 +605,8 @@ def _get_v(self, surface, dms): def _get_vmat(self, q): mol = self.mol nao = mol.nao - atom_coords = mol.atom_coords(unit='B') - atom_charges = mol.atom_charges() grid_coords = self.surface['grid_coords'] exponents = self.surface['charge_exp'] - max_memory = self.max_memory - lib.current_memory()[0] blksize = int(max(max_memory*.9e6/8/nao**2, 400)) ngrids = grid_coords.shape[0]