diff --git a/.deepsource.toml b/.deepsource.toml deleted file mode 100644 index fba5f600..00000000 --- a/.deepsource.toml +++ /dev/null @@ -1,11 +0,0 @@ -version = 1 - -[[analyzers]] -name = "shell" - -[[analyzers]] -name = "python" - - [analyzers.meta] - runtime_version = "3.x.x" - max_line_length = 100 diff --git a/.github/requirements-old.txt b/.github/requirements-old.txt new file mode 100644 index 00000000..a080ec76 --- /dev/null +++ b/.github/requirements-old.txt @@ -0,0 +1,5 @@ +# Keep this file in sync with the minimal versions specified in +# pyproject.toml and docs/install.rst +numpy==1.26.4 +scipy==1.13.1 +attrs==21.3.0 diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index ce2785b7..312149bf 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -5,35 +5,45 @@ on: # Run tests for change on the main branch ... - main tags-ignore: - # ... but not for tags (avoids duplicate work). + # ... but not for tags (avoids duplicate work) ... - '**' + paths: + # ... and only if files relevant to the code have changed. + - '.github/requirements-old.txt' + - '.github/workflows/pytest.yaml' + - 'iodata/**' + - 'pyproject.toml' pull_request: - # Run tests on pull requests + # Run tests on pull requests ... + paths: + # ... only if files relevant to the code have changed. + - '.github/requirements-old.txt' + - '.github/workflows/pytest.yaml' + - 'iodata/**' + - 'pyproject.toml' jobs: tests: strategy: matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] - exclude: - # only test 3.13 for MacOS and Windows - - os: macos-latest - python-version: '3.9' - - os: macos-latest + include: + # Test all Python versions on Ubuntu + - os: ubuntu-latest python-version: '3.10' - - os: macos-latest + - os: ubuntu-latest python-version: '3.11' - - os: macos-latest + - os: ubuntu-latest python-version: '3.12' + - os: ubuntu-latest + python-version: '3.13' + - os: ubuntu-latest + python-version: '3.14' + # Test only Python 3.14 on MacOS + - os: macos-latest + python-version: '3.14' + # Test only Python 3.14 on Windows - os: windows-latest - python-version: '3.9' - - os: windows-latest - python-version: '3.10' - - os: windows-latest - python-version: '3.11' - - os: windows-latest - python-version: '3.12' + python-version: '3.14' runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -42,15 +52,13 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Install oldest versions of supported dependencies - if: ${{ matrix.python-version == '3.9'}} - # Ensure changes to these dependencies are reflected - # in pyproject.toml and docs/install.rst - run: pip install numpy==1.26.4 scipy==1.13.1 attrs==21.3.0 + if: ${{ matrix.python-version == '3.10' }} + run: pip install -r .github/requirements-old.txt - name: Install development version run: pip install -e .[dev] # If some tests are slow against expectations, pytest will abort due to timeout. - name: Run pytest WITH coverage for fast tests - if: ${{ matrix.os == 'ubuntu-latest'}} + if: ${{ matrix.os == 'ubuntu-latest' }} run: > pytest -vv @@ -59,14 +67,6 @@ jobs: --cov=iodata --cov-report=xml --cov-report=term-missing - - name: Upload coverage report to Deepsource - if: ${{ matrix.os == 'ubuntu-latest' && env.DEEPSOURCE_DSN != '' }} - # See https://docs.deepsource.com/docs/analyzers-test-coverage#python - env: - DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }} - run: | - curl https://deepsource.io/cli | sh - ./bin/deepsource report --analyzer test-coverage --key python --value-file ./coverage.xml - name: Upload coverage reports to Codecov if: ${{ matrix.os == 'ubuntu-latest' && env.CODECOV_TOKEN != '' }} env: @@ -79,7 +79,7 @@ jobs: -n 'fast'-${{ github.run_id }} \ -F fast -f coverage.xml - name: Run pytest WITHOUT coverage for fast tests - if: ${{ matrix.os != 'ubuntu-latest'}} + if: ${{ matrix.os != 'ubuntu-latest' }} run: pytest -vv -m "not slow" --timeout=60 - name: Run pytest WITHOUT coverage for slow tests run: pytest -vv -m slow diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 417a02db..3f0e5fe0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,11 +1,27 @@ # This workflow is adapted from: # https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/ -# Changed made: +# Changes made: # - Remove emoticons # - Update some actions to more recent versions name: release -on: push +on: + push: + branches: + # Run release workflow for changes on the main branch ... + - main + tags: + # ... or if a tag is pushed ... + - 'v*' + paths: + # ... but only if files relevant to the release have changed. + # (This list must be consistent with MANIFEST.in.) + - '.github/workflows/release.yaml' + - 'iodata/**' + - 'LICENSE.txt' + - 'MANIFEST.in' + - 'pyproject.toml' + - 'README.md' env: # This is not critical @@ -103,7 +119,7 @@ jobs: publish-to-testpypi: name: Publish Python distribution to TestPyPI - if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'theochem'}} + if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'theochem' }} needs: - build runs-on: ubuntu-latest diff --git a/.github/workflows/sphinx.yaml b/.github/workflows/sphinx.yaml index 763ca0f4..5490ec06 100644 --- a/.github/workflows/sphinx.yaml +++ b/.github/workflows/sphinx.yaml @@ -1,4 +1,4 @@ -# Base on examples in https://github.com/actions/starter-workflows/blob/main/pages/ +# Based on examples in https://github.com/actions/starter-workflows/blob/main/pages/ # For this workflow, you need to enable GitHub pages in the repository settings, # using the "GitHub Actions" option. @@ -6,13 +6,29 @@ name: sphinx on: push: branches: - # Run tests for change on the main branch ... + # Run tests for changes on the main branch ... - main tags-ignore: - # ... but not for tags (avoids duplicate work). + # ... but not for tags (avoids duplicate work) ... - '**' + paths: + # ... and only if files relevant to documentation have changed. + - '.github/workflows/sphinx.yaml' + - 'CONTRIBUTING.rst' + - 'docs/**' + - 'iodata/**' + - 'MANIFEST.in' + - 'pyproject.toml' pull_request: - # Run tests on pull requests + # Build documentation on pull requests ... + paths: + # ... if files relevant to documentation have changed. + - '.github/workflows/sphinx.yaml' + - 'CONTRIBUTING.rst' + - 'docs/**' + - 'iodata/**' + - 'MANIFEST.in' + - 'pyproject.toml' # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: @@ -36,7 +52,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-python@v5 with: - python-version: 3.x + python-version: "3.12" - name: Setup Pages id: pages uses: actions/configure-pages@v5 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e9f82b39..b489875d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ exclude: 'iodata/test/data/.*' repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files args: ["--maxkb=100"] @@ -29,12 +29,12 @@ repos: - id: remove-crlf exclude_types: [binary] - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.31.3 + rev: 0.34.1 hooks: - id: check-github-workflows - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.10.0 + rev: v0.14.1 hooks: - id: ruff-format - - id: ruff + - id: ruff-check args: ["--fix", "--show-fixes"] diff --git a/docs/conf.py b/docs/conf.py index a798232e..2dbd91e6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -9,6 +9,8 @@ from intersphinx_registry import get_intersphinx_mapping from packaging.version import Version +from setuptools_scm import Configuration +from setuptools_scm._get_version_impl import _get_version from sphinx.ext.apidoc import main as main_api_doc sys.path.append(os.path.dirname(__file__)) @@ -118,9 +120,6 @@ def setup(app): def _get_version_info(): """Get the version as defined in pyproject.toml""" - from setuptools_scm import Configuration - from setuptools_scm._get_version_impl import _get_version - config = Configuration.from_file("../pyproject.toml", "./") verinfo = Version(_get_version(config, force_write_version_files=False)) return f"{verinfo.major}.{verinfo.minor}", str(verinfo) diff --git a/docs/gen_formats_tab.py b/docs/gen_formats_tab.py index bedb152e..ec156259 100755 --- a/docs/gen_formats_tab.py +++ b/docs/gen_formats_tab.py @@ -21,7 +21,6 @@ import inspect from collections import defaultdict -from typing import Optional, Union import iodata @@ -144,7 +143,7 @@ def write_rst_table(table: list[list[str]], nhead: int = 1): """ - def format_cell(cell: Optional[str]) -> str: + def format_cell(cell: str | None) -> str: """Format a single cell.""" if cell is None or len(cell.strip()) == 0: return "\\ " @@ -156,7 +155,7 @@ def format_cell(cell: Optional[str]) -> str: for icell, cell in enumerate(row): widths[icell] = max(widths.get(icell, 2), len(format_cell(cell))) - def format_row(cells: list[Union[str, None]], margin: str) -> str: + def format_row(cells: list[str | None], margin: str) -> str: """Format a row of cells.""" return " ".join( margin + format_cell(cell).rjust(widths[icell]) + margin diff --git a/docs/install.rst b/docs/install.rst index 4abbc76f..3e25aa86 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -32,10 +32,10 @@ In addition, IOData has the following dependencies: .. Ensure changes to these dependencies are reflected - in pyproject.toml and .github/workflows/pytest.yaml + in pyproject.toml and .github/requirements-old.txt - numpy >= 1.26.4: https://numpy.org/ -- scipy >= 1.11.1: https://scipy.org/ +- scipy >= 1.13.1: https://scipy.org/ - attrs >= 21.3.0: https://www.attrs.org/en/stable/index.html Normally, you don't need to install these dependencies manually. They will be diff --git a/iodata/__main__.py b/iodata/__main__.py index 47f5f49c..670624d5 100755 --- a/iodata/__main__.py +++ b/iodata/__main__.py @@ -20,7 +20,6 @@ """CLI for file conversion.""" import argparse -from typing import Optional import numpy as np @@ -108,8 +107,8 @@ def convert( infn: str, outfn: str, many: bool = False, - infmt: Optional[str] = None, - outfmt: Optional[str] = None, + infmt: str | None = None, + outfmt: str | None = None, allow_changes: bool = False, ): """Convert file from one format to another. diff --git a/iodata/api.py b/iodata/api.py index afcc81a9..caa4646f 100644 --- a/iodata/api.py +++ b/iodata/api.py @@ -20,12 +20,11 @@ import os import warnings -from collections.abc import Iterable, Iterator +from collections.abc import Callable, Iterable, Iterator from fnmatch import fnmatch from importlib import import_module from pkgutil import iter_modules from types import ModuleType -from typing import Callable, Optional from .iodata import IOData from .utils import ( @@ -54,7 +53,7 @@ def _find_format_modules(): FORMAT_MODULES = _find_format_modules() -def _select_format_module(filename: str, attrname: str, fmt: Optional[str] = None) -> ModuleType: +def _select_format_module(filename: str, attrname: str, fmt: str | None = None) -> ModuleType: """Find a file format module with the requested attribute name. Parameters @@ -155,7 +154,7 @@ def inner(*args, **kwargs): @_reissue_warnings -def load_one(filename: str, *, fmt: Optional[str] = None, **kwargs) -> IOData: +def load_one(filename: str, *, fmt: str | None = None, **kwargs) -> IOData: """Load data from a file. This function uses the extension or prefix of the filename to determine the @@ -190,7 +189,7 @@ def load_one(filename: str, *, fmt: Optional[str] = None, **kwargs) -> IOData: @_reissue_warnings -def load_many(filename: str, *, fmt: Optional[str] = None, **kwargs) -> Iterator[IOData]: +def load_many(filename: str, *, fmt: str | None = None, **kwargs) -> Iterator[IOData]: """Load multiple IOData instances from a file. This function uses the extension or prefix of the filename to determine the @@ -255,7 +254,7 @@ def dump_one( data: IOData, filename: str, *, - fmt: Optional[str] = None, + fmt: str | None = None, allow_changes: bool = False, **kwargs, ): @@ -324,7 +323,7 @@ def dump_many( iter_data: Iterable[IOData], filename: str, *, - fmt: Optional[str] = None, + fmt: str | None = None, allow_changes: bool = False, **kwargs, ): @@ -413,8 +412,8 @@ def write_input( filename: str, fmt: str, *, - template: Optional[str] = None, - atom_line: Optional[Callable] = None, + template: str | None = None, + atom_line: Callable | None = None, **kwargs, ): """Write input file using an instance of IOData for the specified software format. diff --git a/iodata/attrutils.py b/iodata/attrutils.py index d65377f2..38425179 100644 --- a/iodata/attrutils.py +++ b/iodata/attrutils.py @@ -18,7 +18,7 @@ # -- """Utilities for building attr classes.""" -from typing import Callable +from collections.abc import Callable import numpy as np @@ -106,7 +106,7 @@ def validator(obj, attribute, value): if len(expected_shape) != len(observed_shape): match = False if match: - for es, os in zip(expected_shape, observed_shape): + for es, os in zip(expected_shape, observed_shape, strict=True): if es is None: continue if es != os: diff --git a/iodata/basis.py b/iodata/basis.py index 4faa9a3d..bb0ce377 100644 --- a/iodata/basis.py +++ b/iodata/basis.py @@ -26,7 +26,6 @@ from functools import wraps from numbers import Integral -from typing import Union import attrs from numpy.typing import NDArray @@ -51,7 +50,7 @@ def wrapper(firsts, *args, **kwargs): @_alsolist -def angmom_sti(char: Union[str, list[str]]) -> Union[int, list[int]]: +def angmom_sti(char: str | list[str]) -> int | list[int]: """Convert an angular momentum from string to integer format. Parameters @@ -69,7 +68,7 @@ def angmom_sti(char: Union[str, list[str]]) -> Union[int, list[int]]: @_alsolist -def angmom_its(angmom: Union[int, list[int]]) -> Union[str, list[str]]: +def angmom_its(angmom: int | list[int]) -> str | list[str]: """Convert an angular momentum from integer to string representation. Parameters @@ -159,7 +158,7 @@ class Shell: def nbasis(self) -> int: """Number of basis functions (e.g. 3 for a P shell and 4 for an SP shell).""" result = 0 - for angmom, kind in zip(self.angmoms, self.kinds): + for angmom, kind in zip(self.angmoms, self.kinds, strict=True): if kind == "c": # Cartesian result += ((angmom + 1) * (angmom + 2)) // 2 elif kind == "p" and angmom >= 2: diff --git a/iodata/convert.py b/iodata/convert.py index e38c8319..c9571a63 100644 --- a/iodata/convert.py +++ b/iodata/convert.py @@ -95,10 +95,10 @@ def _convert_convention_shell( # Get the permutation if reverse: permutation = [conv2.index(el1) for el1 in conv1] - signs = [signs2[i] * sign1 for i, sign1 in zip(permutation, signs1)] + signs = [signs2[i] * sign1 for i, sign1 in zip(permutation, signs1, strict=True)] else: permutation = [conv1.index(el2) for el2 in conv2] - signs = [signs1[i] * sign2 for i, sign2 in zip(permutation, signs2)] + signs = [signs1[i] * sign2 for i, sign2 in zip(permutation, signs2, strict=True)] return permutation, signs @@ -143,7 +143,7 @@ def convert_conventions( permutation = [] signs = [] for shell in molbasis.shells: - for angmom, kind in zip(shell.angmoms, shell.kinds): + for angmom, kind in zip(shell.angmoms, shell.kinds, strict=True): key = (angmom, kind) conv1 = molbasis.conventions[key] conv2 = new_conventions[key] @@ -278,7 +278,9 @@ def convert_to_segmented(obasis: MolecularBasis, keep_sp: bool = False) -> Molec if (shell.ncon == 1) or (keep_sp and shell.ncon == 2 and (shell.angmoms == [0, 1]).all()): shells.append(shell) else: - for angmom, kind, coeffs in zip(shell.angmoms, shell.kinds, shell.coeffs.T): + for angmom, kind, coeffs in zip( + shell.angmoms, shell.kinds, shell.coeffs.T, strict=True + ): shells.append( Shell(shell.icenter, [angmom], [kind], shell.exponents, coeffs.reshape(-1, 1)) ) diff --git a/iodata/docstrings.py b/iodata/docstrings.py index 22b000a2..a2b59406 100644 --- a/iodata/docstrings.py +++ b/iodata/docstrings.py @@ -18,7 +18,7 @@ # -- """Docstring decorators for file format implementations.""" -from typing import Callable, Optional +from collections.abc import Callable __all__ = ( "document_dump_many", @@ -33,9 +33,9 @@ def _document_load( template: str, fmt: str, guaranteed: list[str], - ifpresent: Optional[list[str]] = None, - kwdocs: Optional[dict[str, str]] = None, - notes: Optional[str] = None, + ifpresent: list[str] | None = None, + kwdocs: dict[str, str] | None = None, + notes: str | None = None, ) -> Callable: if kwdocs is None: kwdocs = {} @@ -90,9 +90,9 @@ def decorator(func): def document_load_one( fmt: str, guaranteed: list[str], - ifpresent: Optional[list[str]] = None, - kwdocs: Optional[dict[str, str]] = None, - notes: Optional[str] = None, + ifpresent: list[str] | None = None, + kwdocs: dict[str, str] | None = None, + notes: str | None = None, ) -> Callable: """Decorate a load_one function to generate a docstring. @@ -142,9 +142,9 @@ def document_load_one( def document_load_many( fmt: str, guaranteed: list[str], - ifpresent: Optional[list[str]] = None, - kwdocs: Optional[dict[str, str]] = None, - notes: Optional[str] = None, + ifpresent: list[str] | None = None, + kwdocs: dict[str, str] | None = None, + notes: str | None = None, ) -> Callable: """Decorate a load_many function to generate a docstring. @@ -177,9 +177,9 @@ def _document_dump( template: str, fmt: str, required: list[str], - optional: Optional[list[str]] = None, - kwdocs: Optional[dict[str, str]] = None, - notes: Optional[str] = None, + optional: list[str] | None = None, + kwdocs: dict[str, str] | None = None, + notes: str | None = None, ) -> Callable: if kwdocs is None: kwdocs = {} @@ -234,9 +234,9 @@ def decorator(func): def document_dump_one( fmt: str, required: list[str], - optional: Optional[list[str]] = None, - kwdocs: Optional[dict[str, str]] = None, - notes: Optional[str] = None, + optional: list[str] | None = None, + kwdocs: dict[str, str] | None = None, + notes: str | None = None, ) -> Callable: """Decorate a dump_one function to generate a docstring. @@ -287,9 +287,9 @@ def document_dump_one( def document_dump_many( fmt: str, required: list[str], - optional: Optional[list[str]] = None, - kwdocs: Optional[dict[str, str]] = None, - notes: Optional[str] = None, + optional: list[str] | None = None, + kwdocs: dict[str, str] | None = None, + notes: str | None = None, ) -> Callable: """Decorate a dump_many function to generate a docstring. @@ -322,8 +322,8 @@ def _document_write( template: str, fmt: str, required: list[str], - optional: Optional[list[str]] = None, - notes: Optional[str] = None, + optional: list[str] | None = None, + notes: str | None = None, ) -> Callable: if optional is None: optional = [] @@ -383,8 +383,8 @@ def decorator(func): def document_write_input( fmt: str, required: list[str], - optional: Optional[list[str]] = None, - notes: Optional[str] = None, + optional: list[str] | None = None, + notes: str | None = None, ) -> Callable: """Decorate a write_input function to generate a docstring. diff --git a/iodata/formats/chgcar.py b/iodata/formats/chgcar.py index b1c8fefd..25e9544e 100644 --- a/iodata/formats/chgcar.py +++ b/iodata/formats/chgcar.py @@ -71,7 +71,7 @@ def _load_vasp_header( vasp_atnums = [sym2num[w] for w in next(lit).split()] vasp_counts = [int(w) for w in next(lit).split()] atnums = [] - for n, c in zip(vasp_atnums, vasp_counts): + for n, c in zip(vasp_atnums, vasp_counts, strict=True): atnums.extend([n] * c) atnums = np.array(atnums) diff --git a/iodata/formats/cp2klog.py b/iodata/formats/cp2klog.py index 4788a746..5e04573a 100644 --- a/iodata/formats/cp2klog.py +++ b/iodata/formats/cp2klog.py @@ -18,8 +18,6 @@ # -- """CP2K ATOM output file format.""" -from typing import Union - import numpy as np from numpy.typing import NDArray @@ -44,9 +42,7 @@ } -def _get_cp2k_norm_corrections( - ell: int, alphas: Union[float, NDArray[float]] -) -> Union[float, NDArray[float]]: +def _get_cp2k_norm_corrections(ell: int, alphas: float | NDArray[float]) -> float | NDArray[float]: """Compute the corrections for the normalization of the basis functions. This correction is needed because the CP2K atom code works with a different @@ -155,7 +151,7 @@ def _read_cp2k_uncontracted_obasis(lit: LineIterator) -> MolecularBasis: line = next(lit) # Build the shell kind = "c" if angmom < 2 else "p" - for exponent, coeff in zip(exponents, coeffs): + for exponent, coeff in zip(exponents, coeffs, strict=True): shells.append( Shell(0, np.array([angmom]), [kind], np.array([exponent]), np.array([[coeff]])) ) diff --git a/iodata/formats/extxyz.py b/iodata/formats/extxyz.py index 4e87dd79..1570d45b 100644 --- a/iodata/formats/extxyz.py +++ b/iodata/formats/extxyz.py @@ -154,7 +154,7 @@ def _parse_properties(properties: str, lit: LineIterator) -> list[tuple]: elif "species" in names: # If 'Z' is not present, use 'species' atom_column_map["species"] = atnum_column - for name, dtype, shape in zip(names, dtypes, shapes): + for name, dtype, shape in zip(names, dtypes, shapes, strict=True): if name in atom_column_map: atom_columns.append(atom_column_map[name]) else: diff --git a/iodata/formats/fchk.py b/iodata/formats/fchk.py index 1023a471..6249349d 100644 --- a/iodata/formats/fchk.py +++ b/iodata/formats/fchk.py @@ -20,7 +20,7 @@ from collections.abc import Iterator from fnmatch import fnmatch -from typing import Optional, TextIO +from typing import TextIO from warnings import warn import numpy as np @@ -337,6 +337,7 @@ def load_many(lit: LineIterator) -> Iterator[dict]: results_geoms[1::2], fchk[f"{prefix} {ipoint + 1:7d} Geometries"].reshape(-1, natom, 3), fchk[f"{prefix} {ipoint + 1:7d} Gradient at each geome"].reshape(-1, natom, 3), + strict=True, ) ) if len(trajectory) != nstep: @@ -369,7 +370,7 @@ def load_many(lit: LineIterator) -> Iterator[dict]: yield data -def _load_fchk_low(lit: LineIterator, label_patterns: Optional[list[str]] = None) -> dict: +def _load_fchk_low(lit: LineIterator, label_patterns: list[str] | None = None) -> dict: """Read selected fields from a formatted checkpoint file. Parameters @@ -699,7 +700,7 @@ def dump_one(f: TextIO, data: IOData): if -1 in shell_types: sp_coeffs = [] - for shell, shell_type in zip(data.obasis.shells, shell_types): + for shell, shell_type in zip(data.obasis.shells, shell_types, strict=True): if shell_type == -1: sp_coeffs.extend([shell.coeffs[i][1] for i in range(shell.nexp)]) else: diff --git a/iodata/formats/gromacs.py b/iodata/formats/gromacs.py index a0d6e103..2dcade72 100644 --- a/iodata/formats/gromacs.py +++ b/iodata/formats/gromacs.py @@ -90,6 +90,7 @@ def _helper_read_frame(lit: LineIterator) -> tuple: attypes = [] pos = np.zeros((natoms, 3), np.float32) vel = np.zeros((natoms, 3), np.float32) + has_velocities = True for i in range(natoms): line = next(lit) resnums.append(int(line[:5])) @@ -99,11 +100,18 @@ def _helper_read_frame(lit: LineIterator) -> tuple: pos[i, 0] = float(words[0]) pos[i, 1] = float(words[1]) pos[i, 2] = float(words[2]) - vel[i, 0] = float(words[3]) - vel[i, 1] = float(words[4]) - vel[i, 2] = float(words[5]) + # velocities are optional in gro files; only parse if present + if len(words) >= 6: + vel[i, 0] = float(words[3]) + vel[i, 1] = float(words[4]) + vel[i, 2] = float(words[5]) + else: + has_velocities = False pos *= nanometer # atom coordinates are in nanometers - vel *= nanometer / picosecond + if has_velocities: + vel *= nanometer / picosecond + else: + vel = None # Read the cell line cell = np.zeros((3, 3), np.float32) words = next(lit).split() diff --git a/iodata/formats/json_qcschema.py b/iodata/formats/json_qcschema.py index cf0ace90..6ce799b7 100644 --- a/iodata/formats/json_qcschema.py +++ b/iodata/formats/json_qcschema.py @@ -562,7 +562,7 @@ """ import json -from typing import TextIO, Union +from typing import TextIO from warnings import warn import numpy as np @@ -1404,8 +1404,8 @@ def _parse_output_keys(result: dict, lit: LineIterator) -> dict: def _parse_provenance( - provenance: Union[list[dict], dict], lit: LineIterator, source: str, append=True -) -> Union[list[dict], dict]: + provenance: list[dict] | dict, lit: LineIterator, source: str, append=True +) -> list[dict] | dict: """Load :ref:`provenance ` properties from QCSchema. Parameters @@ -1601,7 +1601,7 @@ def _dump_qcschema_molecule(f: TextIO, data: IOData) -> dict: return molecule_dict -def _dump_provenance(f: TextIO, data: IOData, source: str) -> Union[list[dict], dict]: +def _dump_provenance(f: TextIO, data: IOData, source: str) -> list[dict] | dict: """Generate the :ref:`provenance ` information. This is used when dumping an IOData instance to QCSchema. diff --git a/iodata/formats/molden.py b/iodata/formats/molden.py index 33118a8b..cea00501 100644 --- a/iodata/formats/molden.py +++ b/iodata/formats/molden.py @@ -26,7 +26,7 @@ """ import copy -from typing import TextIO, Union +from typing import TextIO from warnings import warn import attrs @@ -475,7 +475,7 @@ def _fix_obasis_orca(obasis: MolecularBasis) -> MolecularBasis: return MolecularBasis(fixed_shells, orca_conventions, obasis.primitive_normalization) -def _fix_obasis_psi4(obasis: MolecularBasis) -> Union[MolecularBasis, None]: +def _fix_obasis_psi4(obasis: MolecularBasis) -> MolecularBasis | None: """Return a new MolecularBasis correcting for errors from PSI4 <= 1.0. Old PSI4 version used a different normalization of the primitives. @@ -509,7 +509,7 @@ def _fix_obasis_psi4(obasis: MolecularBasis) -> Union[MolecularBasis, None]: return None -def _fix_obasis_turbomole(obasis: MolecularBasis) -> Union[MolecularBasis, None]: +def _fix_obasis_turbomole(obasis: MolecularBasis) -> MolecularBasis | None: """Return a new MolecularBasis correcting for errors from turbomole. Turbomole uses a different normalization of the primitives. @@ -563,7 +563,7 @@ def _fix_obasis_normalize_contractions(obasis: MolecularBasis) -> MolecularBasis return MolecularBasis(fixed_shells, obasis.conventions, obasis.primitive_normalization) -def _fix_mo_coeffs_psi4(obasis: MolecularBasis) -> Union[MolecularBasis, None]: +def _fix_mo_coeffs_psi4(obasis: MolecularBasis) -> MolecularBasis | None: """Return correction values for the MO coefficients. PSI4 <= 1.3.2 uses a different normalizationion conventions for Cartesian @@ -595,7 +595,7 @@ def _fix_mo_coeffs_psi4(obasis: MolecularBasis) -> Union[MolecularBasis, None]: return None -def _fix_mo_coeffs_cfour(obasis: MolecularBasis) -> Union[MolecularBasis, None]: +def _fix_mo_coeffs_cfour(obasis: MolecularBasis) -> MolecularBasis | None: """Return correction values for the MO coefficients. CFOUR (up to current 2.1) uses different normalization conventions for Cartesian @@ -871,7 +871,7 @@ def dump_one(f: TextIO, data: IOData): # It is guaranteed to be segmented when reaching this part of the code. angmom = shell.angmoms[0] f.write(f" {angmom_its(angmom):1s} {shell.nexp:3d} 1.00\n") - for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0]): + for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0], strict=True): f.write(f"{exponent:20.10f} {coeff:20.10f}\n") f.write("\n") diff --git a/iodata/formats/molekel.py b/iodata/formats/molekel.py index baf82052..4ce4f1dd 100644 --- a/iodata/formats/molekel.py +++ b/iodata/formats/molekel.py @@ -330,7 +330,7 @@ def dump_one(f: TextIO, data: IOData): # COORD atcoords = data.atcoords / angstrom f.write("$COORD\n") - for n, coord in zip(data.atnums, atcoords): + for n, coord in zip(data.atnums, atcoords, strict=True): f.write(f" {n:d} {coord[0]: ,.6f} {coord[1]: ,.6f} {coord[2]: ,.6f}\n") f.write("$END\n") f.write("\n") @@ -357,7 +357,7 @@ def dump_one(f: TextIO, data: IOData): iatom_last = shell.icenter nbasis = len(CONVENTIONS[(angmom, kind)]) f.write(f" {nbasis} {angmom_its(angmom).capitalize():1s} 1.00\n") - for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0]): + for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0], strict=True): f.write(f"{exponent:20.10f} {coeff:17.10f}\n") f.write("\n") f.write("$END\n") diff --git a/iodata/formats/mwfn.py b/iodata/formats/mwfn.py index e68cec54..2c8d5bce 100644 --- a/iodata/formats/mwfn.py +++ b/iodata/formats/mwfn.py @@ -172,7 +172,7 @@ def _load_helper_shells(lit: LineIterator, nshell: int) -> dict: line = next(lit) data = {} - for section, name in zip(sections, var_name): + for section, name in zip(sections, var_name, strict=True): if not line.startswith(section): raise LoadError(f"Expected line to start with {section}, but got line={line}.", lit) data[name] = _load_helper_section(lit, nshell, " ", 0, int) @@ -295,7 +295,9 @@ def load_one(lit: LineIterator) -> dict: # Unlike WFN, MWFN does include orbital expansion coefficients. shells = [] counter = 0 - for center, stype, ncon in zip(inp["shell_centers"], inp["shell_types"], inp["shell_ncons"]): + for center, stype, ncon in zip( + inp["shell_centers"], inp["shell_types"], inp["shell_ncons"], strict=True + ): shells.append( Shell( center, diff --git a/iodata/formats/orcalog.py b/iodata/formats/orcalog.py index e42b6c73..3f02b520 100644 --- a/iodata/formats/orcalog.py +++ b/iodata/formats/orcalog.py @@ -32,7 +32,9 @@ PATTERNS = ["*.out"] -@document_load_one("Orca output", ["atcoords", "atnums", "energy", "moments", "extra"]) +@document_load_one( + "Orca output", ["atcoords", "atnums", "energy", "moments", "extra"], ["atgradient"] +) def load_one(lit: LineIterator) -> dict: """Do not edit this docstring. It will be overwritten.""" result = {} @@ -62,6 +64,10 @@ def load_one(lit: LineIterator) -> dict: words = line.split() dipole = np.array([float(words[4]), float(words[5]), float(words[6])]) result["moments"] = {(1, "c"): dipole} + # Read also the atomic gradients + if line.startswith("CARTESIAN GRADIENT"): + atgrads = _helper_atgradients(lit) + result["atgradient"] = atgrads return result @@ -143,3 +149,49 @@ def _helper_scf_energies(lit: TextIO) -> NDArray[float]: energies.append(float(words[1])) line = next(lit) return np.asarray(energies) + + +def _helper_atgradients(lit: TextIO) -> NDArray[float]: + """Read atomic gradients from ORCA output file format. + + Parameters + ---------- + lit + The line iterator to read the data from. + + Returns + ------- + atgrads + The atomic gradients in an array with shape ``(natom, 3)``. + + """ + atgrads = [] + + # Be permissive: skip the two expected header lines if present, + # but don't raise if the file is truncated. + try: + next(lit) # usually the dashed line + next(lit) # usually an empty/title line + except StopIteration: + return np.asarray(atgrads) + + # Read lines until an empty line or until parsing fails. + while True: + try: + line = next(lit) + except StopIteration: + break + if not line.strip(): + break + words = line.split() + # Try the common column positions (words[3:6]). If those + # are not present or not floats, stop parsing. + try: + x = float(words[3]) + y = float(words[4]) + z = float(words[5]) + except (IndexError, ValueError): + break + atgrads.append([x, y, z]) + + return np.asarray(atgrads) diff --git a/iodata/formats/pdb.py b/iodata/formats/pdb.py index 1fabb6ba..77fa4e36 100644 --- a/iodata/formats/pdb.py +++ b/iodata/formats/pdb.py @@ -157,8 +157,8 @@ def load_one(lit: LineIterator) -> dict: title_lines = [] compnd_lines = [] atnums = [] - attypes = [] - restypes = [] + atnames = [] + resnames = [] chainids = [] resnums = [] atcoords = [] @@ -178,12 +178,12 @@ def load_one(lit: LineIterator) -> dict: if line.startswith("COMPND"): compnd_lines.append(line[10:].strip()) if line.startswith(("ATOM", "HETATM")): - (atnum, attype, restype, chainid, resnum, atcoord, occupancy, bfactor) = ( + (atnum, atname, resname, chainid, resnum, atcoord, occupancy, bfactor) = ( _parse_pdb_atom_line(line, lit) ) atnums.append(atnum) - attypes.append(attype) - restypes.append(restype) + atnames.append(atname) + resnames.append(resname) chainids.append(chainid) resnums.append(resnum) atcoords.append(atcoord) @@ -205,8 +205,8 @@ def load_one(lit: LineIterator) -> dict: # Data related to force fields atffparams = { - "attypes": np.array(attypes), - "restypes": np.array(restypes), + "atnames": np.array(atnames), + "resnames": np.array(resnames), "resnums": np.array(resnums), } # Extra data @@ -281,8 +281,8 @@ def dump_one(f: TextIO, data: IOData): if "compound" in data.extra: _dump_multiline_str(f, "COMPND", data.extra["compound"]) # Prepare for ATOM lines. - attypes = data.atffparams.get("attypes", None) - restypes = data.atffparams.get("restypes", None) + atnames = data.atffparams.get("atnames", None) + resnames = data.atffparams.get("resnames", None) resnums = data.atffparams.get("resnums", None) occupancies = data.extra.get("occupancies", None) bfactors = data.extra.get("bfactors", None) @@ -294,10 +294,10 @@ def dump_one(f: TextIO, data: IOData): x, y, z = data.atcoords[i] / angstrom occ = 1.00 if occupancies is None else occupancies[i] b = 0.00 if bfactors is None else bfactors[i] - attype = str(n + str(i + 1)) if attypes is None else attypes[i] - restype = "XXX" if restypes is None else restypes[i] + atname = str(n + str(i + 1)) if atnames is None else atnames[i] + resname = "XXX" if resnames is None else resnames[i] chain = " " if chainids is None else chainids[i] - out1 = f"{i + 1:>5d} {attype:<4s} {restype:3s} {chain:1s}{resnum:>4d} " + out1 = f"{i + 1:>5d} {atname:<4s} {resname:3s} {chain:1s}{resnum:>4d} " out2 = f"{x:8.3f}{y:8.3f}{z:8.3f}{occ:6.2f}{b:6.2f}{n:>12s}" print("ATOM " + out1 + out2, file=f) if data.bonds is not None: diff --git a/iodata/formats/wfn.py b/iodata/formats/wfn.py index d84bcf05..c755b889 100644 --- a/iodata/formats/wfn.py +++ b/iodata/formats/wfn.py @@ -556,7 +556,7 @@ def dump_one(f: TextIO, data: IOData) -> None: # Decontract the shell angmom = shell.angmoms[0] kind = shell.kinds[0] - for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0]): + for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0], strict=True): shells.append(Shell(shell.icenter, [angmom], [kind], [exponent], [[coeff]])) # make a new instance of MolecularBasis with de-contracted basis shells; ideally for WFN we # want the primitive basis set, but IOData only supports shells. @@ -568,7 +568,7 @@ def dump_one(f: TextIO, data: IOData) -> None: index_mo_old, index_mo_new = 0, 0 # loop over the shells of the old basis for shell in data.obasis.shells: - for angmom, kind in zip(shell.angmoms, shell.kinds): + for angmom, kind in zip(shell.angmoms, shell.kinds, strict=True): n = len(data.obasis.conventions[angmom, kind]) c = raw_coeffs[index_mo_old : index_mo_old + n] for _ in range(shell.nexp): @@ -608,7 +608,7 @@ def dump_one(f: TextIO, data: IOData) -> None: print(FMT_NUM.format(data.mo.norb, obasis.nbasis, data.natom), file=f) # Write atoms (symbol, atom #, centre #, x pos., y pos., z pos., charge) - for iatom, (n, (x, y, z)) in enumerate(zip(data.atnums, data.atcoords)): + for iatom, (n, (x, y, z)) in enumerate(zip(data.atnums, data.atcoords, strict=True)): print(FMT_ATM.format(num2sym[n], iatom + 1, iatom + 1, x, y, z, n), file=f) # Write centre assignments, type assignments, exponents sections @@ -617,7 +617,7 @@ def dump_one(f: TextIO, data: IOData) -> None: _dump_helper_section(f, expns, FMT_EXPN, 10, STEP_EXPN, 5) # Write MOs (mo #, occ #, energy) - mo_iter = enumerate(zip(data.mo.occs, data.mo.energies, mo_coeffs.transpose())) + mo_iter = enumerate(zip(data.mo.occs, data.mo.energies, mo_coeffs.transpose(), strict=True)) for iorb, (occ, energy, coeffs) in mo_iter: print(FMT_MOS.format(iorb + 1, 0, occ, energy), file=f) # Write ``iorb``th coefficients section diff --git a/iodata/formats/wfx.py b/iodata/formats/wfx.py index da12f78f..eb2d7c44 100644 --- a/iodata/formats/wfx.py +++ b/iodata/formats/wfx.py @@ -22,7 +22,7 @@ """ from collections.abc import Iterator -from typing import Optional, TextIO +from typing import TextIO from warnings import warn import numpy as np @@ -172,7 +172,7 @@ def load_data_wfx(lit: LineIterator) -> dict: return result -def parse_wfx(lit: LineIterator, required_tags: Optional[list] = None) -> dict: +def parse_wfx(lit: LineIterator, required_tags: list | None = None) -> dict: """Load data in all sections existing in the given WFX file LineIterator.""" data = {} mo_start = "" @@ -184,6 +184,9 @@ def parse_wfx(lit: LineIterator, required_tags: Optional[list] = None) -> dict: line = next(lit).strip() except StopIteration: break + # skip comment lines starting with "#" + if line.startswith("#"): + continue # check whether line is the start of a section if section_start is None and line.startswith("<"): # set start & end of the section and add it to data dictionary @@ -396,7 +399,7 @@ def dump_one(f: TextIO, data: IOData): # Decontract the shell angmom = shell.angmoms[0] kind = shell.kinds[0] - for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0]): + for exponent, coeff in zip(shell.exponents, shell.coeffs[:, 0], strict=True): shells.append(Shell(shell.icenter, [angmom], [kind], [exponent], [[coeff]])) # make a new instance of MolecularBasis with de-contracted basis shells; ideally for WFX we # want the primitive basis set, but IOData only supports shells. @@ -411,7 +414,7 @@ def dump_one(f: TextIO, data: IOData): index_mo_old, index_mo_new = 0, 0 # loop over the shells of the old basis for shell in data.obasis.shells: - for angmom, kind in zip(shell.angmoms, shell.kinds): + for angmom, kind in zip(shell.angmoms, shell.kinds, strict=True): n = len(data.obasis.conventions[angmom, kind]) c = raw_coeffs[index_mo_old : index_mo_old + n] for _j in range(shell.nexp): @@ -534,7 +537,7 @@ def dump_one(f: TextIO, data: IOData): # write nuclear Cartesian energy gradients (optional) if data.atgradient is not None: - nuc_cart_energy_grad = list(zip(nuclear_names, data.atgradient)) + nuc_cart_energy_grad = list(zip(nuclear_names, data.atgradient, strict=True)) print("", file=f) for atom in nuc_cart_energy_grad: print( diff --git a/iodata/inputs/common.py b/iodata/inputs/common.py index 95e56dc5..6b5b5203 100644 --- a/iodata/inputs/common.py +++ b/iodata/inputs/common.py @@ -18,7 +18,8 @@ # -- """Utilities for writing input files.""" -from typing import Callable, TextIO +from collections.abc import Callable +from typing import TextIO import attrs import numpy as np diff --git a/iodata/inputs/gaussian.py b/iodata/inputs/gaussian.py index 6713208e..95877d05 100644 --- a/iodata/inputs/gaussian.py +++ b/iodata/inputs/gaussian.py @@ -18,7 +18,8 @@ # -- """Gaussian Input Module.""" -from typing import Callable, Optional, TextIO +from collections.abc import Callable +from typing import TextIO from ..docstrings import document_write_input from ..iodata import IOData @@ -55,8 +56,8 @@ def default_atom_line(data: IOData, iatom: int): def write_input( fh: TextIO, data: IOData, - template: Optional[str] = None, - atom_line: Optional[Callable] = None, + template: str | None = None, + atom_line: Callable | None = None, **kwargs, ): """Do not edit this docstring. It will be overwritten.""" diff --git a/iodata/inputs/orca.py b/iodata/inputs/orca.py index 9bf1334e..a853ef25 100644 --- a/iodata/inputs/orca.py +++ b/iodata/inputs/orca.py @@ -18,7 +18,8 @@ # -- """Orca Input Module.""" -from typing import Callable, Optional, TextIO +from collections.abc import Callable +from typing import TextIO from ..docstrings import document_write_input from ..iodata import IOData @@ -52,8 +53,8 @@ def default_atom_line(data: IOData, iatom: int): def write_input( fh: TextIO, data: IOData, - template: Optional[str] = None, - atom_line: Optional[Callable] = None, + template: str | None = None, + atom_line: Callable | None = None, **kwargs, ): """Do not edit this docstring. It will be overwritten.""" diff --git a/iodata/iodata.py b/iodata/iodata.py index b7b295e1..56865e80 100644 --- a/iodata/iodata.py +++ b/iodata/iodata.py @@ -18,8 +18,6 @@ # -- """Module for handling input/output from different file formats.""" -from typing import Optional - import attrs import numpy as np from numpy.typing import NDArray @@ -42,14 +40,14 @@ class IOData: values are arrays with atomic charges (size N). """ - atcoords: Optional[NDArray[float]] = attrs.field( + atcoords: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape("natom", 3)), ) """A (N, 3) float array with Cartesian coordinates of the atoms.""" - _atcorenums: Optional[NDArray[float]] = attrs.field( + _atcorenums: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape("natom")), @@ -68,14 +66,14 @@ class IOData: etc. Not all of them have to be present, depending on the use case. """ - atfrozen: Optional[NDArray[bool]] = attrs.field( + atfrozen: NDArray[bool] | None = attrs.field( default=None, converter=convert_array_to(bool), validator=attrs.validators.optional(validate_shape("natom")), ) """A (N,) bool array with frozen atoms. (All atoms are free if thisattribute is not set.)""" - atgradient: Optional[NDArray[float]] = attrs.field( + atgradient: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape("natom", 3)), @@ -85,28 +83,28 @@ class IOData: Cartesian atomic displacements. """ - athessian: Optional[NDArray[float]] = attrs.field( + athessian: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape(None, None)), ) """A (3*N, 3*N) array containing the energy Hessian w.r.t Cartesian atomic displacements.""" - atmasses: Optional[NDArray[float]] = attrs.field( + atmasses: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape("natom")), ) """A (N,) float array with atomic masses.""" - atnums: Optional[NDArray[int]] = attrs.field( + atnums: NDArray[int] | None = attrs.field( default=None, converter=convert_array_to(int), validator=attrs.validators.optional(validate_shape("natom")), ) """A (N,) int vector with the atomic numbers.""" - basisdef: Optional[str] = attrs.field(default=None) + basisdef: str | None = attrs.field(default=None) """ A basis set definition, i.e. a dictionary whose keys are symbols (of chemical elements), atomic numbers (similar to previous, str to make @@ -115,7 +113,7 @@ class IOData: when implementing a load function for basis set definitions. """ - bonds: Optional[NDArray[int]] = attrs.field( + bonds: NDArray[int] | None = attrs.field( default=None, converter=convert_array_to(int), validator=attrs.validators.optional(validate_shape(None, 3)), @@ -127,7 +125,7 @@ class IOData: of bond types are defined in ``iodata.periodic``. """ - cellvecs: Optional[NDArray[float]] = attrs.field( + cellvecs: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape(None, 3)), @@ -139,16 +137,16 @@ class IOData: Three vectors describe a 3D cell, e.g. a crystalline solid. """ - _charge: Optional[float] = attrs.field(default=None) + _charge: float | None = attrs.field(default=None) """The net charge of the system. When possible, this is derived from atcorenums and nelec.""" - core_energy: Optional[float] = attrs.field(default=None) + core_energy: float | None = attrs.field(default=None) """The Hartree-Fock energy due to the core orbitals.""" - cube: Optional[Cube] = attrs.field(default=None) + cube: Cube | None = attrs.field(default=None) """An instance of Cube, describing the volumetric data from a cube (or similar) file.""" - energy: Optional[float] = attrs.field(default=None) + energy: float | None = attrs.field(default=None) """The total energy (electronic + nn).""" extcharges: NDArray[float] = attrs.field( @@ -169,13 +167,13 @@ class IOData: to IOData attributes, with a more final name. """ - g_rot: Optional[float] = attrs.field(default=None) + g_rot: float | None = attrs.field(default=None) """The rotational symmetry number of the molecule.""" - lot: Optional[str] = attrs.field(default=None) + lot: str | None = attrs.field(default=None) """The level of theory used to compute the orbitals (and other properties).""" - mo: Optional[MolecularOrbitals] = attrs.field(default=None) + mo: MolecularOrbitals | None = attrs.field(default=None) """The molecular orbitals.""" moments: dict = attrs.field(factory=dict) @@ -188,13 +186,13 @@ class IOData: defined in :py:mod:`iodata.basis`. """ - _nelec: Optional[float] = attrs.field(default=None) + _nelec: float | None = attrs.field(default=None) """The number of electrons.""" - obasis: Optional[MolecularBasis] = attrs.field(default=None) + obasis: MolecularBasis | None = attrs.field(default=None) """An OrderedDict containing parameters to instantiate a GOBasis class.""" - obasis_name: Optional[str] = attrs.field(default=None) + obasis_name: str | None = attrs.field(default=None) """ A name or DOI describing the basis set used for the orbitals in the mo attribute (if defined). The name should be consistent with those defined the @@ -227,13 +225,13 @@ class IOData: because it is only useful to compute them in the atomic-orbital basis. """ - run_type: Optional[str] = attrs.field(default=None) + run_type: str | None = attrs.field(default=None) """ The type of calculation that lead to the results stored in IOData, which must be one of the following: 'energy', 'energy_force', 'opt', 'scan', 'freq' or None. """ - _spinpol: Optional[float] = attrs.field(default=None) + _spinpol: float | None = attrs.field(default=None) """ The spin polarization. When molecular orbitals are present, @@ -241,7 +239,7 @@ class IOData: When no molecular orbitals are present, this attribute can be set. """ - title: Optional[str] = attrs.field(default=None) + title: str | None = attrs.field(default=None) """A suitable name for the data.""" two_ints: dict = attrs.field(factory=dict) diff --git a/iodata/orbitals.py b/iodata/orbitals.py index 37edf140..d5fdb741 100644 --- a/iodata/orbitals.py +++ b/iodata/orbitals.py @@ -18,8 +18,6 @@ # -- """Data structure for molecular orbitals.""" -from typing import Optional - import attrs import numpy as np from numpy.typing import NDArray @@ -110,7 +108,7 @@ class MolecularOrbitals: This is expected to be equal to `norba` for the `restricted` kind. """ - occs: Optional[NDArray[float]] = attrs.field( + occs: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape("norb")), @@ -120,7 +118,7 @@ class MolecularOrbitals: The length equals the number of columns of coeffs. (optional) """ - coeffs: Optional[NDArray[float]] = attrs.field( + coeffs: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape(None, "norb")), @@ -133,19 +131,19 @@ class MolecularOrbitals: total number of orbitals. (optional) """ - energies: Optional[NDArray[float]] = attrs.field( + energies: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.optional(validate_shape("norb")), ) """Molecular orbital energies. The length equals the number of columns of coeffs. (optional)""" - irreps: Optional[NDArray] = attrs.field( + irreps: NDArray | None = attrs.field( default=None, validator=attrs.validators.optional(validate_shape("norb")) ) """Irreducible representation. The length equals the number of columns of coeffs. (optional)""" - occs_aminusb: Optional[NDArray[float]] = attrs.field( + occs_aminusb: NDArray[float] | None = attrs.field( default=None, converter=convert_array_to(float), validator=attrs.validators.and_( @@ -200,7 +198,7 @@ def norb(self): return None @property - def spinpol(self) -> Optional[float]: + def spinpol(self) -> float | None: """Return the spin polarization of the Slater determinant.""" if self.kind == "generalized": raise NotImplementedError diff --git a/iodata/overlap.py b/iodata/overlap.py index dd784ad5..16c27c24 100644 --- a/iodata/overlap.py +++ b/iodata/overlap.py @@ -18,8 +18,6 @@ # -- """Module for computing overlap of atomic orbital basis functions.""" -from typing import Optional, Union - import attrs import numpy as np import scipy.special @@ -33,7 +31,7 @@ __all__ = ("OVERLAP_CONVENTIONS", "compute_overlap", "gob_cart_normalization") -def factorial2(n: Union[int, NDArray[int]]) -> Union[int, NDArray[int]]: +def factorial2(n: int | NDArray[int]) -> int | NDArray[int]: """Modifcied scipy.special.factorial2 that returns 1 when the input is -1. The future implementation of factorial2 in SciPy will not return @@ -68,8 +66,8 @@ def factorial2(n: Union[int, NDArray[int]]) -> Union[int, NDArray[int]]: def compute_overlap( obasis0: MolecularBasis, atcoords0: NDArray[float], - obasis1: Optional[MolecularBasis] = None, - atcoords1: Optional[NDArray[float]] = None, + obasis1: MolecularBasis | None = None, + atcoords1: NDArray[float] | None = None, ) -> NDArray[float]: r"""Compute overlap matrix for the given molecular basis set(s). @@ -181,11 +179,11 @@ def compute_overlap( shell_overlap = np.zeros((n0.shape[0], n1.shape[0])) # Loop over primitives in shell0 (Cartesian) - for shell_scales0, a0 in zip(scales0[i0], shell0.exponents): + for shell_scales0, a0 in zip(scales0[i0], shell0.exponents, strict=True): a0_r0 = a0 * r0 # Loop over primitives in shell1 (Cartesian) - for shell_scales1, a1 in zip(scales1[i1], shell1.exponents): + for shell_scales1, a1 in zip(scales1[i1], shell1.exponents, strict=True): at = a0 + a1 prefactor = np.exp(-a0 * a1 / at * rij_norm_sq) if prefactor < 1e-15: diff --git a/iodata/periodic.py b/iodata/periodic.py index e21ab4b2..21fa1532 100644 --- a/iodata/periodic.py +++ b/iodata/periodic.py @@ -144,7 +144,6 @@ sym2num: dict[str, int] = {value: key for key, value in num2sym.items()} - # Labels used for bond types. num2bond = { diff --git a/iodata/test/common.py b/iodata/test/common.py index 50384b6e..442079b0 100644 --- a/iodata/test/common.py +++ b/iodata/test/common.py @@ -21,7 +21,6 @@ import os from contextlib import contextmanager from importlib.resources import as_file, files -from typing import Optional import numpy as np import pytest @@ -111,7 +110,7 @@ def compare_mols(mol1, mol2, atol=1.0e-8, rtol=0.0): if mol1.obasis is not None: # compare dictionaries assert len(mol1.obasis.shells) == len(mol2.obasis.shells) - for shell1, shell2 in zip(mol1.obasis.shells, mol2.obasis.shells): + for shell1, shell2 in zip(mol1.obasis.shells, mol2.obasis.shells, strict=True): assert shell1.icenter == shell2.icenter assert_equal(shell1.angmoms, shell2.angmoms) assert_equal(shell1.kinds, shell2.kinds) @@ -173,7 +172,7 @@ def check_orthonormal(mo_coeffs: NDArray[float], ao_overlap: NDArray[float], ato def load_one_warning( - filename: str, *, fmt: Optional[str] = None, match: Optional[str] = None, **kwargs + filename: str, *, fmt: str | None = None, match: str | None = None, **kwargs ) -> IOData: """Call load_one, catching expected LoadWarning. diff --git a/iodata/test/data/h2_ub3lyp_ccpvtz_with_comments.wfx b/iodata/test/data/h2_ub3lyp_ccpvtz_with_comments.wfx new file mode 100644 index 00000000..2c2d10fc --- /dev/null +++ b/iodata/test/data/h2_ub3lyp_ccpvtz_with_comments.wfx @@ -0,0 +1,945 @@ +# this is a WFX file with comments +# calculation: ub3lyp/cc-pvtz opt freq + + h2 ub3lyp/cc-pvtz opt-stable-freq + + + GTO + + + 2 + + + 56 + + + 0 + + + 0 + + + 2 + + + 1 + + + 1 + + + 1 + + + 0 + + + H1 + H2 + + + 1 + 1 + + + 1.000000000000e+00 + 1.000000000000e+00 + + + 0.000000000000e+00 0.000000000000e+00 7.019452462164e-01 + 0.000000000000e+00 0.000000000000e+00 -7.019452462164e-01 + + + H1 9.744384163503e-17 -2.088844408785e-16 -7.185657679987e-09 + H2 -9.744384163503e-17 2.088844408785e-16 7.185657679987e-09 + + + 1.008787649881e-08 + + + 2.036441992623e+00 + + + 34 + + + 1 1 1 1 1 + 1 1 1 1 1 + 1 1 1 1 1 + 1 1 2 2 2 + 2 2 2 2 2 + 2 2 2 2 2 + 2 2 2 2 + + + 1 1 1 1 1 + 2 3 4 2 3 + 4 5 6 7 8 + 9 10 1 1 1 + 1 1 2 3 4 + 2 3 4 5 6 + 7 8 9 10 + + + 3.387000000000e+01 5.095000000000e+00 1.159000000000e+00 3.258000000000e-01 1.027000000000e-01 + 1.407000000000e+00 1.407000000000e+00 1.407000000000e+00 3.880000000000e-01 3.880000000000e-01 + 3.880000000000e-01 1.057000000000e+00 1.057000000000e+00 1.057000000000e+00 1.057000000000e+00 + 1.057000000000e+00 1.057000000000e+00 3.387000000000e+01 5.095000000000e+00 1.159000000000e+00 + 3.258000000000e-01 1.027000000000e-01 1.407000000000e+00 1.407000000000e+00 1.407000000000e+00 + 3.880000000000e-01 3.880000000000e-01 3.880000000000e-01 1.057000000000e+00 1.057000000000e+00 + 1.057000000000e+00 1.057000000000e+00 1.057000000000e+00 1.057000000000e+00 + + + 1.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 1.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + 0.000000000000e+00 + + + -4.340830854172e-01 + 5.810590098068e-02 + 1.957476339319e-01 + 4.705943952631e-01 + 5.116003517961e-01 + 5.116003517961e-01 + 9.109680450208e-01 + 9.372078887497e-01 + 9.372078887497e-01 + 1.367198523024e+00 + 2.035656924620e+00 + 2.093459617091e+00 + 2.882582109554e+00 + 2.882582109559e+00 + 3.079758295551e+00 + 3.079758295551e+00 + 3.356387932344e+00 + 3.600856684661e+00 + 3.600856684661e+00 + 3.793185027287e+00 + 3.793185027400e+00 + 3.807665977092e+00 + 3.807665977092e+00 + 4.345665616275e+00 + 5.386560784523e+00 + 5.386560784523e+00 + 5.448122593462e+00 + 6.522366660004e+00 + -4.340830854172e-01 + 5.810590098068e-02 + 1.957476339319e-01 + 4.705943952631e-01 + 5.116003517961e-01 + 5.116003517961e-01 + 9.109680450208e-01 + 9.372078887497e-01 + 9.372078887497e-01 + 1.367198523024e+00 + 2.035656924620e+00 + 2.093459617091e+00 + 2.882582109554e+00 + 2.882582109559e+00 + 3.079758295551e+00 + 3.079758295551e+00 + 3.356387932344e+00 + 3.600856684661e+00 + 3.600856684661e+00 + 3.793185027287e+00 + 3.793185027400e+00 + 3.807665977092e+00 + 3.807665977092e+00 + 4.345665616275e+00 + 5.386560784523e+00 + 5.386560784523e+00 + 5.448122593462e+00 + 6.522366660004e+00 + + + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Alpha + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + Beta + + + + 1 + + 5.054717669172e-02 9.116391481072e-02 1.344211391235e-01 8.321037376208e-02 + 1.854203733451e-02 -5.552096650015e-17 1.685043781907e-17 -2.493514848195e-02 + 5.367769875676e-18 -8.640401342563e-21 -4.805966923740e-03 -3.124765025063e-04 + -3.124765025063e-04 6.249530050126e-04 6.560467295881e-16 -8.389003686496e-17 + 1.457172009403e-16 5.054717669172e-02 9.116391481072e-02 1.344211391235e-01 + 8.321037376215e-02 1.854203733451e-02 1.377812848830e-16 -5.365229184139e-18 + 2.493514848197e-02 -2.522774106094e-17 2.213188439119e-17 4.805966923784e-03 + -3.124765025186e-04 -3.124765025186e-04 6.249530050373e-04 -6.548275062740e-16 + 4.865003740982e-17 -1.099855647247e-16 + + 2 + + 2.301088129035e-02 4.150107204735e-02 6.119330648573e-02 -2.514712688884e-02 + 2.645954944911e-01 -1.205552157990e-15 1.176525429384e-16 5.839946065240e-02 + 6.049847259225e-16 4.164568795542e-16 3.918456610595e-02 1.091783205837e-02 + 1.091783205837e-02 -2.183566411675e-02 -4.762553899253e-17 -1.263917437276e-15 + -2.997556969071e-15 -2.301088129035e-02 -4.150107204734e-02 -6.119330648573e-02 + 2.514712688884e-02 -2.645954944911e-01 -1.467082126156e-16 -3.782275399401e-16 + 5.839946065240e-02 -2.274638152583e-16 -3.285670518866e-16 3.918456610595e-02 + -1.091783205837e-02 -1.091783205837e-02 2.183566411675e-02 -1.365075938257e-17 + -8.156153924032e-16 -2.083350068559e-15 + + 3 + + -2.110333127445e-02 -3.806072703644e-02 -5.612051977726e-02 -2.137605735126e-01 + 1.088300385835e-01 1.329517026625e-15 3.528343286865e-16 3.732227952938e-02 + -7.490494535200e-16 4.883562338833e-18 -1.431350211379e-02 -5.002659414356e-03 + -5.002659414356e-03 1.000531882871e-02 5.355919399827e-16 4.084405007494e-15 + -1.311432922188e-15 -2.110333127445e-02 -3.806072703644e-02 -5.612051977726e-02 + -2.137605735127e-01 1.088300385835e-01 -1.250083498179e-15 -3.956836510877e-16 + -3.732227952938e-02 7.671816779066e-16 -1.624963219183e-16 1.431350211377e-02 + -5.002659414353e-03 -5.002659414353e-03 1.000531882871e-02 -2.250460126700e-16 + 2.655310320997e-15 1.070891377261e-15 + + 4 + + -3.872690616348e-02 -6.984557012752e-02 -1.029872523439e-01 -6.400842170031e-01 + 3.153897048590e-01 -4.924966047541e-16 -7.519617610512e-16 1.407797268939e-01 + 2.028430233815e-16 -1.320284151548e-16 7.265523281467e-02 5.124182377483e-02 + 5.124182377483e-02 -1.024836475497e-01 -6.411429388193e-16 -1.898833117791e-15 + 9.315505668533e-16 3.872690616347e-02 6.984557012752e-02 1.029872523439e-01 + 6.400842170031e-01 -3.153897048590e-01 -4.274156776623e-16 5.031831035477e-16 + 1.407797268939e-01 -6.755963581270e-17 2.577638812340e-16 7.265523281467e-02 + -5.124182377483e-02 -5.124182377483e-02 1.024836475497e-01 1.237328119253e-15 + 4.719765344171e-16 1.972551115758e-15 + + 5 + + -7.446148178597e-16 -1.342943488934e-15 -1.980169389784e-15 -1.463609558493e-14 + -9.897956888513e-17 -9.323636513317e-02 -4.156719662783e-02 2.471121791142e-15 + 2.280153001296e-01 1.016551514112e-01 9.808855109227e-15 1.766479696059e-15 + 2.008419068941e-15 -3.774898765000e-15 1.342632864328e-15 1.878108093029e-02 + 8.373094369330e-03 3.312815258856e-16 5.974798748581e-16 8.809837263850e-16 + 1.466452957212e-14 1.428577941334e-16 -9.323636513317e-02 -4.156719662782e-02 + 2.391507491529e-15 2.280153001296e-01 1.016551514112e-01 1.057588648821e-14 + -3.478330324167e-15 -2.848121640139e-15 6.326451964307e-15 -8.655358421130e-16 + -1.878108093028e-02 -8.373094369303e-03 + + 6 + + -6.242896294632e-17 -1.125932056398e-16 -1.660186159303e-16 8.982845106475e-15 + -1.811424269995e-16 4.156719662782e-02 -9.323636513318e-02 -7.585320050200e-16 + -1.016551514112e-01 2.280153001296e-01 -5.842227623626e-15 -2.252880452866e-15 + -4.241266650553e-16 2.677007117921e-15 2.817387354723e-16 -8.373094369309e-03 + 1.878108093030e-02 -2.579219645372e-16 -4.651728848535e-16 -6.858971469270e-16 + -8.652152024124e-15 1.509229800118e-16 4.156719662782e-02 -9.323636513317e-02 + -1.530687365114e-15 -1.016551514112e-01 2.280153001296e-01 -5.828547352057e-15 + 1.439765752890e-15 3.563662979660e-16 -1.796132050856e-15 -8.364260785778e-16 + 8.373094369326e-03 -1.878108093025e-02 + + 7 + + 1.227006432440e-03 2.212956631809e-03 3.263003260625e-03 2.083271855923e-01 + -4.830435904383e-02 2.482134756855e-15 -5.793177642414e-16 -1.880020469117e-01 + -5.476543135356e-16 1.261405021875e-15 4.547071197550e-01 5.370568336472e-02 + 5.370568336472e-02 -1.074113667294e-01 -8.008088049544e-16 6.288089274483e-16 + -3.689652692756e-15 1.227006432439e-03 2.212956631807e-03 3.263003260622e-03 + 2.083271855925e-01 -4.830435904384e-02 -3.243149938816e-15 2.421065158618e-16 + 1.880020469117e-01 9.701169164156e-16 -1.350749059370e-15 -4.547071197549e-01 + 5.370568336471e-02 5.370568336471e-02 -1.074113667294e-01 -8.111083106842e-16 + -2.477575971030e-15 -1.647726023034e-15 + + 8 + + -5.719952358265e-16 -1.031616963872e-15 -1.521118610481e-15 -1.156741238430e-14 + 2.624693887782e-16 4.317248104894e-02 -1.143491237200e-01 4.172305331665e-15 + -2.152193748368e-01 5.700424511681e-01 6.837074077998e-15 2.427552466158e-15 + 2.812809448417e-15 -5.240361914576e-15 4.432025865354e-15 1.085009113108e-01 + -2.873817725959e-01 5.568336485250e-16 1.004272416785e-15 1.480799091778e-15 + 1.108744735771e-14 -1.836009919731e-16 -4.317248104894e-02 1.143491237200e-01 + 4.384378186443e-15 2.152193748368e-01 -5.700424511681e-01 8.239120259659e-15 + -1.898788231332e-15 -2.683042607603e-15 4.581830838936e-15 8.514719835314e-16 + 1.085009113108e-01 -2.873817725959e-01 + + 9 + + 1.476514801311e-16 2.662955250388e-16 3.926525960796e-16 -1.717674986981e-15 + -5.138661331830e-17 -1.143491237200e-01 -4.317248104894e-02 3.206559328379e-16 + 5.700424511681e-01 2.152193748368e-01 1.200776977319e-15 1.007664794083e-15 + 2.706937388687e-16 -1.278358532952e-15 1.171211102685e-16 -2.873817725959e-01 + -1.085009113108e-01 2.922978206160e-16 5.271711569671e-16 7.773135629344e-16 + 1.289696668171e-15 1.280719826082e-16 1.143491237200e-01 4.317248104894e-02 + -7.715862874602e-17 -5.700424511681e-01 -2.152193748368e-01 8.599960434549e-16 + -7.335967061898e-16 5.402617926864e-16 1.933349135034e-16 -3.272445848341e-16 + -2.873817725959e-01 -1.085009113108e-01 + + 10 + + 6.691745712425e-03 1.206883897360e-02 1.779549601504e-02 3.952573878526e+00 + -3.970593093137e-02 3.757256389515e-15 2.392682761137e-15 -2.783219762891e-01 + 2.617424246568e-16 -8.738540713320e-16 -2.675308818717e+00 -2.506504463151e-01 + -2.506504463151e-01 5.013008926303e-01 3.124187621796e-16 4.885832892304e-15 + 1.326969475399e-14 -6.691745712416e-03 -1.206883897358e-02 -1.779549601502e-02 + -3.952573878526e+00 3.970593093137e-02 -2.154983267079e-15 3.356491982457e-15 + -2.783219762891e-01 1.383327173744e-15 8.687749090147e-17 -2.675308818717e+00 + 2.506504463151e-01 2.506504463151e-01 -5.013008926303e-01 -1.306428303991e-16 + -6.998142849786e-15 1.003914681837e-14 + + 11 + + -1.692919814616e-01 -3.053250603931e-01 -4.502016231555e-01 1.057628694953e+00 + -1.821106664776e-01 1.496215212926e-16 1.402053902775e-15 -1.134452122424e+00 + 2.636525072773e-16 -6.682939920107e-16 -2.902805734136e-01 -3.627691392763e-01 + -3.627691392763e-01 7.255382785527e-01 3.674088688248e-16 -2.654090064060e-15 + 4.869838356918e-15 1.692919814616e-01 3.053250603931e-01 4.502016231555e-01 + -1.057628694953e+00 1.821106664776e-01 -2.122115094262e-15 1.489751491518e-15 + -1.134452122424e+00 -4.297746280416e-17 2.300585042340e-16 -2.902805734137e-01 + 3.627691392763e-01 3.627691392763e-01 -7.255382785527e-01 -1.550180781438e-16 + -2.530085382635e-15 3.819831670142e-15 + + 12 + + -2.439155024911e-01 -4.399116537355e-01 -6.486494764032e-01 3.112747659666e-01 + -5.245398118316e-02 4.843929476685e-15 1.097745667437e-15 2.330686673476e-01 + -3.136346073943e-16 -2.622646830571e-16 -1.062859846028e-01 9.915881245798e-02 + 9.915881245798e-02 -1.983176249160e-01 -7.020920386448e-16 -3.209848727095e-15 + 5.854472916201e-16 -2.439155024911e-01 -4.399116537355e-01 -6.486494764032e-01 + 3.112747659665e-01 -5.245398118314e-02 3.960031294448e-15 -2.993894152222e-15 + -2.330686673476e-01 -7.178514858098e-16 3.369465281450e-16 1.062859846027e-01 + 9.915881245800e-02 9.915881245800e-02 -1.983176249160e-01 9.200574835283e-16 + 3.358263883156e-15 -1.238551229748e-15 + + 13 + + 4.148068704844e-18 7.481212736048e-18 1.103104380821e-17 -5.336957513412e-16 + -8.697122092937e-17 4.039932713279e-15 2.167767403681e-14 -1.571348471115e-15 + -3.441711043795e-16 -3.755701274346e-15 8.861598208876e-16 7.221065133143e-05 + -7.221065133100e-05 -4.283000518238e-16 1.909662221357e+00 1.223844092662e-15 + -9.250895677597e-15 -3.274212267587e-17 -5.905176664069e-17 -8.707179540916e-17 + 8.215904754469e-16 1.495200921464e-17 7.572427357769e-15 1.390649076954e-14 + 1.987664180296e-17 -9.922952126979e-16 -5.169212642497e-16 2.597181968077e-16 + 7.221065133151e-05 -7.221065133177e-05 2.542468182716e-16 1.909662221357e+00 + 2.453896849292e-15 1.440082642297e-14 + + 14 + + 5.333066829673e-16 9.618405655084e-16 1.418233351862e-15 -2.742945027172e-15 + 1.068965786070e-16 -1.443163751451e-14 -1.206453850170e-15 -2.577187753195e-16 + 2.492864621421e-15 -4.038131458412e-16 1.277345940535e-15 9.548311106784e-01 + -9.548311106784e-01 1.875501856213e-15 -1.444213026526e-04 3.555637341275e-15 + 6.504867017007e-15 -1.253936110350e-16 -2.261525414944e-16 -3.334617902980e-16 + 1.993465852088e-15 2.951164858771e-17 -1.644765831009e-14 -3.682623325848e-15 + -2.047219512138e-15 1.242426039230e-15 1.150311316110e-15 1.744472176853e-15 + 9.548311106784e-01 -9.548311106784e-01 -3.598938638263e-16 -1.444213026731e-04 + -1.409582973873e-14 2.205113796023e-15 + + 15 + + -1.404969240845e-16 -2.533919885679e-16 -3.736263390925e-16 -3.044259929059e-15 + -6.564138678916e-17 -8.106603682435e-02 1.294452479408e+00 -6.912055046262e-16 + 1.002425995300e-02 -1.600661467947e-01 2.200586968989e-15 2.271505277154e-15 + -1.247578554862e-15 -1.023926722292e-15 -2.320861846922e-14 6.242838741133e-02 + -9.968487918700e-01 -3.865590561927e-16 -6.971751772208e-16 -1.027984391469e-15 + 3.920264950269e-15 -1.401022379116e-16 -8.106603682435e-02 1.294452479408e+00 + 1.501380301649e-15 1.002425995300e-02 -1.600661467947e-01 2.202088534646e-15 + 7.144087082694e-16 -7.184205729873e-16 4.011864717865e-18 -2.565156668154e-14 + -6.242838741132e-02 9.968487918700e-01 + + 16 + + 4.473326568346e-16 8.067828687731e-16 1.189600868622e-15 4.543048395337e-15 + -5.971268227739e-18 1.294452479408e+00 8.106603682435e-02 -1.752442417502e-15 + -1.600661467947e-01 -1.002425995300e-02 -2.515859688562e-15 1.064584043234e-14 + -1.085577091942e-14 2.099304870801e-16 -9.285891583133e-15 -9.968487918700e-01 + -6.242838741131e-02 9.983865231795e-16 1.800631210372e-15 2.655029667628e-15 + -6.202231967828e-15 3.000100566375e-16 1.294452479408e+00 8.106603682435e-02 + 2.025516561890e-15 -1.600661467947e-01 -1.002425995300e-02 -4.129244828072e-15 + 9.308141225327e-15 -1.054186761323e-14 1.233726387903e-15 -5.226831317110e-15 + 9.968487918700e-01 6.242838741133e-02 + + 17 + + 1.199784487993e-02 2.163860733938e-02 3.190611387899e-02 9.234203679521e-02 + -2.133051744881e-02 -3.870184200778e-15 -1.721346218888e-15 -1.800893512305e+00 + 1.079235812943e-15 -1.714652422118e-16 3.800211784378e-01 3.608174049729e-01 + 3.608174049729e-01 -7.216348099458e-01 -1.571570811943e-15 -1.799193737477e-15 + 2.797280118450e-15 1.199784487993e-02 2.163860733938e-02 3.190611387900e-02 + 9.234203679521e-02 -2.133051744881e-02 3.320457790283e-15 -1.107731018322e-15 + 1.800893512305e+00 -1.042913041439e-15 5.552930840240e-16 -3.800211784378e-01 + 3.608174049729e-01 3.608174049729e-01 -7.216348099458e-01 5.866487907843e-17 + -3.787770660820e-15 2.048066751082e-15 + + 18 + + -1.019725163736e-15 -1.839116327389e-15 -2.711775950184e-15 5.607877307111e-15 + -2.799142408725e-16 3.784021069170e-01 -1.104072097808e+00 6.962748642423e-16 + -1.615914840632e-01 4.714790048375e-01 -3.475577621570e-15 1.572981396271e-14 + -1.398610104363e-14 -1.743712919073e-15 8.231820929597e-15 8.081825601245e-01 + -2.358051919527e+00 4.297874388339e-16 7.751393455570e-16 1.142942512128e-15 + -5.075015615568e-15 1.830060982633e-16 -3.784021069170e-01 1.104072097808e+00 + 3.620290798805e-15 1.615914840632e-01 -4.714790048375e-01 -3.057099253223e-15 + -1.303071865733e-14 1.068630795876e-14 2.344410698574e-15 -8.269731877104e-16 + 8.081825601245e-01 -2.358051919527e+00 + + 19 + + -8.388665036307e-16 -1.512930285720e-15 -2.230814822325e-15 2.994424658902e-15 + -1.387714135517e-16 -1.104072097808e+00 -3.784021069170e-01 5.030240580084e-15 + 4.714790048375e-01 1.615914840632e-01 -2.458868773508e-15 2.122904944170e-15 + -1.566004315458e-15 -5.569006287122e-16 6.391732596384e-15 -2.358051919527e+00 + -8.081825601245e-01 2.340664577022e-16 4.221484958527e-16 6.224577104835e-16 + -3.120726675069e-15 3.509996476364e-16 1.104072097808e+00 3.784021069170e-01 + -1.546282452452e-15 -4.714790048375e-01 -1.615914840632e-01 -1.264819111317e-15 + -4.554807143496e-15 -9.446996029213e-17 4.649277103788e-15 -4.881758472924e-15 + -2.358051919527e+00 -8.081825601245e-01 + + 20 + + -1.810599408661e-16 -3.265490598105e-16 -4.814963978957e-16 -9.038069389281e-16 + 8.283756017042e-17 -7.155695023633e-14 -9.921862090176e-14 -3.316242611840e-16 + 4.642782787988e-15 6.631850571883e-15 6.030497190263e-16 -1.683593007533e-06 + 1.683593007826e-06 -2.932984661086e-16 2.761176368281e+00 -8.599442852487e-14 + -1.281635318071e-13 -1.152791407619e-16 -2.079106778201e-16 -3.065641729685e-16 + 1.239975105263e-15 -1.701625686779e-16 -7.238460338994e-14 -1.096170251149e-13 + 5.385916729714e-16 6.076089856773e-15 9.134862108459e-15 5.834868690340e-16 + 1.683593000236e-06 -1.683593000926e-06 6.899408117845e-16 -2.761176368281e+00 + 9.739334246517e-14 1.300398698499e-13 + + 21 + + 7.121224424353e-16 1.284342151747e-15 1.893761752340e-15 5.861595985033e-15 + -1.081956865490e-16 7.149093898797e-14 -4.033868644782e-15 -2.969966654417e-15 + -4.865919768636e-15 -3.153437012249e-15 -4.014545251324e-15 1.380588184141e+00 + -1.380588184141e+00 7.620499979412e-15 3.367186008554e-06 8.507465516904e-14 + 3.847984645553e-16 -7.127179276793e-16 -1.285416133908e-15 -1.895345338409e-15 + -6.001990686128e-15 1.653419151411e-16 7.358424685762e-14 -3.013500510935e-14 + 1.985836657875e-15 -6.270957243731e-15 6.020662382651e-15 -4.567831610784e-15 + -1.380588184141e+00 1.380588184141e+00 -7.067588801746e-15 -3.367186007966e-06 + -9.701616279981e-14 4.074940859844e-14 + + 22 + + 3.669422704605e-16 6.617954962891e-16 9.758170726070e-16 -5.294536199600e-17 + 1.525929710940e-16 -7.064373416013e-01 1.237711830470e+00 9.683165833998e-16 + 5.373865447824e-02 -9.415267920361e-02 2.811872315082e-16 4.940679122372e-14 + -4.721060123911e-14 -2.196189984605e-15 1.049842917531e-13 -8.800854033566e-01 + 1.541951495782e+00 1.661136741323e-16 2.995928522348e-16 4.417494855753e-16 + -1.846302231728e-16 -9.320938873155e-17 -7.064373416013e-01 1.237711830470e+00 + 2.611653780399e-15 5.373865447823e-02 -9.415267920361e-02 -1.050308748057e-15 + -4.850200625718e-14 5.045660818530e-14 -1.954601928120e-15 -1.046206199695e-13 + 8.800854033565e-01 -1.541951495782e+00 + + 23 + + 8.432810931909e-16 1.520892179795e-15 2.242554630487e-15 -7.501498013287e-15 + 3.938479347430e-16 1.237711830470e+00 7.064373416013e-01 -1.259138641133e-16 + -9.415267920361e-02 -5.373865447824e-02 4.817496369344e-15 -5.210823889123e-14 + 5.296112877295e-14 -8.528898817129e-16 2.198013257032e-13 1.541951495782e+00 + 8.800854033566e-01 5.926204693701e-17 1.068815421962e-16 1.575967715200e-16 + 6.872028182278e-15 -3.349600344766e-16 1.237711830470e+00 7.064373416013e-01 + -2.398203334528e-16 -9.415267920361e-02 -5.373865447824e-02 4.155677626753e-15 + 5.657305781154e-14 -5.183861612803e-14 -4.734441683512e-15 -2.254816183957e-13 + -1.541951495782e+00 -8.800854033566e-01 + + 24 + + 1.749009702096e-01 3.154411025910e-01 4.651177214657e-01 2.199861809936e+00 + 1.519246881135e-02 6.440317607721e-15 -8.488918429971e-15 4.241322123041e-01 + 1.579562587462e-15 1.169098238954e-15 -1.645715057308e+00 -8.713483990881e-01 + -8.713483990881e-01 1.742696798176e+00 1.192653545840e-15 -2.054842184411e-14 + 3.502950969202e-15 -1.749009702096e-01 -3.154411025910e-01 -4.651177214657e-01 + -2.199861809936e+00 -1.519246881135e-02 -8.326971116556e-15 5.279624931306e-15 + 4.241322123041e-01 -7.264230852532e-16 -8.413523813366e-16 -1.645715057308e+00 + 8.713483990881e-01 8.713483990881e-01 -1.742696798176e+00 1.033868293205e-16 + -1.543586711133e-14 7.417788052397e-15 + + 25 + + -1.892421899406e-15 -3.413060829798e-15 -5.032556199368e-15 -5.634334074817e-15 + -1.064545004075e-16 -3.690821618423e-01 -2.258484822776e+00 -3.580046782583e-15 + -3.471111851126e-02 -2.124040185197e-01 2.932811937869e-15 -5.043950297111e-15 + -7.288814114207e-15 1.233276441132e-14 3.785277704970e-15 6.943631673438e-01 + 4.248941935077e+00 -2.446933005453e-15 -4.413144445577e-15 -6.507178906509e-15 + 8.272333224544e-15 -9.369073542812e-17 3.690821618423e-01 2.258484822776e+00 + -6.755120062402e-15 3.471111851126e-02 2.124040185197e-01 7.296094231446e-15 + -8.735761567608e-15 -6.287385991031e-15 1.502314755864e-14 -1.791906467618e-15 + 6.943631673438e-01 4.248941935077e+00 + + 26 + + -1.129831232025e-14 -2.037697155967e-14 -3.004583265895e-14 1.942152921386e-14 + -5.054178006062e-16 -2.258484822776e+00 3.690821618423e-01 7.980085545690e-15 + -2.124040185197e-01 3.471111851126e-02 -2.102955408146e-14 -4.124073010558e-14 + -4.357725506783e-14 8.481798517340e-14 -3.272796656990e-15 4.248941935077e+00 + -6.943631673438e-01 -1.210032298074e-14 -2.182343081447e-14 -3.217863598502e-14 + -5.958419825301e-15 -4.394622322780e-16 2.258484822776e+00 -3.690821618423e-01 + -2.320187544250e-15 2.124040185197e-01 -3.471111851126e-02 2.867905344150e-15 + -3.503501752114e-14 -3.585319319698e-14 7.088821071812e-14 5.741459529855e-16 + 4.248941935077e+00 -6.943631673438e-01 + + 27 + + 3.070773970612e-01 5.538267317425e-01 8.166171923666e-01 -1.734543801450e-01 + 1.149327369606e-02 -8.956853559650e-14 -3.606923562221e-15 -1.165407461275e-01 + -8.206114157140e-15 3.215692447642e-16 3.177987700472e-01 1.018849184444e+00 + 1.018849184444e+00 -2.037698368887e+00 8.570561631972e-16 1.641678580643e-13 + -2.492001866118e-15 3.070773970612e-01 5.538267317425e-01 8.166171923666e-01 + -1.734543801450e-01 1.149327369606e-02 8.785101968790e-14 -3.301533172396e-16 + 1.165407461275e-01 8.543303059693e-15 1.771879863870e-16 -3.177987700471e-01 + 1.018849184444e+00 1.018849184444e+00 -2.037698368887e+00 -4.192173091627e-16 + 1.675424870757e-13 2.935643606474e-15 + + 28 + + 3.901425908171e-01 7.036382294941e-01 1.037514158270e+00 1.356350448169e+00 + -8.045734652482e-02 -1.315844833275e-15 1.358941393276e-15 -4.305059098244e+00 + 7.611366997527e-17 1.445777733880e-15 -7.418404371646e-01 -9.354411569425e-01 + -9.354411569425e-01 1.870882313885e+00 -2.988231330251e-16 -6.541657543408e-16 + -8.653090981786e-15 -3.901425908171e-01 -7.036382294941e-01 -1.037514158270e+00 + -1.356350448169e+00 8.045734652482e-02 7.445774462570e-16 -1.599903430211e-15 + -4.305059098244e+00 2.089987377159e-16 -1.352739065068e-15 -7.418404371646e-01 + 9.354411569425e-01 9.354411569425e-01 -1.870882313885e+00 -3.106804445234e-16 + 1.557418849091e-15 -8.750801822994e-15 + + 29 + + 5.054717669172e-02 9.116391481072e-02 1.344211391235e-01 8.321037376208e-02 + 1.854203733451e-02 1.137127352483e-16 2.368379203517e-16 -2.493514848195e-02 + 1.616319657778e-17 -8.134213323919e-17 -4.805966923738e-03 -3.124765025054e-04 + -3.124765025063e-04 6.249530050117e-04 2.022351077716e-16 -1.314925385405e-16 + 5.290803566233e-16 5.054717669172e-02 9.116391481072e-02 1.344211391235e-01 + 8.321037376215e-02 1.854203733451e-02 -1.955022202264e-16 -2.240092537462e-16 + 2.493514848197e-02 -4.448136167990e-18 9.617048870161e-17 4.805966923785e-03 + -3.124765025193e-04 -3.124765025186e-04 6.249530050379e-04 -2.119877172816e-16 + -5.659554552015e-17 2.040161313999e-16 + + 30 + + 2.301088129035e-02 4.150107204734e-02 6.119330648573e-02 -2.514712688886e-02 + 2.645954944911e-01 -9.849684321492e-16 4.811263557833e-16 5.839946065241e-02 + 5.460581251505e-16 3.248260173952e-16 3.918456610596e-02 1.091783205838e-02 + 1.091783205838e-02 -2.183566411675e-02 -3.640387699589e-17 -9.089015075910e-16 + -2.700002003317e-15 -2.301088129035e-02 -4.150107204734e-02 -6.119330648573e-02 + 2.514712688886e-02 -2.645954944911e-01 7.425887761583e-17 -5.190331613766e-16 + 5.839946065240e-02 -2.237022401885e-16 -2.645207858389e-16 3.918456610596e-02 + -1.091783205838e-02 -1.091783205838e-02 2.183566411675e-02 2.659144029723e-17 + -1.015332282132e-15 -2.148045986155e-15 + + 31 + + -2.110333127445e-02 -3.806072703644e-02 -5.612051977726e-02 -2.137605735126e-01 + 1.088300385835e-01 2.224723318283e-16 -3.710027698888e-16 3.732227952937e-02 + -4.152573690629e-16 -6.706059195954e-16 -1.431350211379e-02 -5.002659414356e-03 + -5.002659414358e-03 1.000531882871e-02 2.154521100044e-16 3.348078082948e-15 + 1.611727626884e-15 -2.110333127445e-02 -3.806072703644e-02 -5.612051977726e-02 + -2.137605735127e-01 1.088300385835e-01 3.326903020299e-17 5.956462470117e-16 + -3.732227952938e-02 4.105672217437e-16 4.599112483577e-16 1.431350211377e-02 + -5.002659414351e-03 -5.002659414352e-03 1.000531882870e-02 -2.326136105886e-16 + 2.362339907218e-15 4.661598858328e-15 + + 32 + + -3.872690616348e-02 -6.984557012752e-02 -1.029872523439e-01 -6.400842170031e-01 + 3.153897048590e-01 -2.554405845326e-15 -1.272468023981e-15 1.407797268939e-01 + 1.127069349808e-16 -5.277616832646e-16 7.265523281468e-02 5.124182377483e-02 + 5.124182377483e-02 -1.024836475497e-01 -9.537826878602e-16 8.670738197751e-16 + 1.664039285071e-15 3.872690616347e-02 6.984557012752e-02 1.029872523439e-01 + 6.400842170031e-01 -3.153897048590e-01 -1.137953617942e-16 -6.041483944429e-18 + 1.407797268939e-01 2.987422309147e-16 5.377371429775e-16 7.265523281468e-02 + -5.124182377483e-02 -5.124182377483e-02 1.024836475497e-01 7.756513611159e-16 + 2.475160932342e-15 2.782800084617e-15 + + 33 + + 1.431504347310e-16 2.581777042964e-16 3.806828741380e-16 8.320581752970e-15 + 1.926504712954e-16 4.156719923242e-02 -9.323636397198e-02 3.187219313190e-15 + -1.016551577809e-01 2.280152972899e-01 -6.198985348444e-15 -1.025975915288e-15 + -2.585439852102e-16 1.284519900498e-15 3.148054327867e-16 -8.373094893970e-03 + 1.878108069640e-02 1.189368579964e-16 2.145075214856e-16 3.162912150989e-16 + -8.664065909431e-15 -1.127023279817e-16 4.156719923243e-02 -9.323636397197e-02 + 2.286852677384e-15 -1.016551577809e-01 2.280152972899e-01 -6.284175716514e-15 + 1.338642370263e-15 5.512677008871e-16 -1.889910071150e-15 -1.467219787603e-15 + 8.373094893982e-03 -1.878108069635e-02 + + 34 + + -7.430405222340e-16 -1.340104181940e-15 -1.975982833280e-15 -1.223979420408e-14 + -1.471155006078e-16 -9.323636397197e-02 -4.156719923243e-02 1.666767883611e-15 + 2.280152972899e-01 1.016551577809e-01 8.384769352376e-15 2.121157122598e-15 + 2.065622671756e-15 -4.186779794354e-15 1.384534354165e-15 1.878108069638e-02 + 8.373094893990e-03 3.840014130891e-16 6.925623625539e-16 1.021182798938e-15 + 1.233202568280e-14 1.676050427880e-16 -9.323636397197e-02 -4.156719923242e-02 + 1.380427105187e-15 2.280152972899e-01 1.016551577809e-01 9.008893527250e-15 + -2.285364808722e-15 -3.276983618293e-15 5.562348427015e-15 -1.302345334971e-15 + -1.878108069637e-02 -8.373094893958e-03 + + 35 + + 1.227006432440e-03 2.212956631809e-03 3.263003260624e-03 2.083271855924e-01 + -4.830435904383e-02 -1.086446399976e-16 8.047207456779e-17 -1.880020469117e-01 + 1.027606202299e-15 8.864743456310e-16 4.547071197550e-01 5.370568336472e-02 + 5.370568336472e-02 -1.074113667294e-01 -1.218466961683e-15 1.231651844135e-15 + -8.064455037902e-16 1.227006432439e-03 2.212956631807e-03 3.263003260622e-03 + 2.083271855925e-01 -4.830435904383e-02 -6.814665128464e-16 1.030312811862e-15 + 1.880020469117e-01 -7.641991240122e-16 -1.014126080591e-15 -4.547071197549e-01 + 5.370568336471e-02 5.370568336471e-02 -1.074113667294e-01 3.140411067697e-16 + 1.717974695846e-15 8.274482766852e-16 + + 36 + + 1.450489957533e-16 2.616018372873e-16 3.857317562324e-16 -1.575262795508e-15 + 1.572356871643e-16 -1.143491246427e-01 -4.317247860487e-02 9.006593538051e-16 + 5.700424557682e-01 2.152193626528e-01 -5.574695017848e-16 3.794242735368e-16 + -1.520707307222e-17 -3.642172004646e-16 -9.845800863520e-16 -2.873817749150e-01 + -1.085009051684e-01 3.489814603070e-16 6.294024355104e-16 9.280535234153e-16 + -7.900444342284e-17 2.022344256943e-16 1.143491246427e-01 4.317247860487e-02 + -5.343849653421e-16 -5.700424557682e-01 -2.152193626528e-01 1.512248796932e-15 + -1.069969909350e-15 1.217013122768e-15 -1.470432134187e-16 -1.573294196065e-16 + -2.873817749150e-01 -1.085009051684e-01 + + 37 + + -2.495093885622e-16 -4.500004576335e-16 -6.635254118561e-16 -1.220704075908e-14 + 2.934151768269e-16 4.317247860487e-02 -1.143491246427e-01 5.686859184193e-17 + -2.152193626528e-01 5.700424557682e-01 7.731087566857e-15 1.639276236194e-15 + 1.570132885218e-15 -3.209409121412e-15 3.197617302025e-15 1.085009051684e-01 + -2.873817749150e-01 2.495437760851e-16 4.500624769473e-16 6.636168592980e-16 + 1.167848596551e-14 -1.272116328494e-16 -4.317247860487e-02 1.143491246427e-01 + -1.413709704936e-15 2.152193626528e-01 -5.700424557682e-01 8.644303687905e-15 + -1.462710221477e-15 -2.021690253416e-15 3.484400474893e-15 3.622405704162e-16 + 1.085009051684e-01 -2.873817749150e-01 + + 38 + + 6.691745712423e-03 1.206883897360e-02 1.779549601504e-02 3.952573878526e+00 + -3.970593093137e-02 3.508883838577e-15 4.510507016524e-15 -2.783219762891e-01 + 1.284527830701e-16 -1.064953443779e-15 -2.675308818717e+00 -2.506504463151e-01 + -2.506504463151e-01 5.013008926303e-01 5.862343252231e-16 2.344143848602e-15 + 1.246700858612e-14 -6.691745712417e-03 -1.206883897359e-02 -1.779549601502e-02 + -3.952573878526e+00 3.970593093137e-02 -4.337337781855e-15 1.947056929118e-15 + -2.783219762891e-01 1.418371879382e-15 1.414186677066e-17 -2.675308818717e+00 + 2.506504463151e-01 2.506504463151e-01 -5.013008926303e-01 -2.024623948769e-16 + -6.696784055937e-15 1.091438293473e-14 + + 39 + + -1.692919814616e-01 -3.053250603931e-01 -4.502016231555e-01 1.057628694953e+00 + -1.821106664776e-01 7.894170911940e-16 9.301872724166e-16 -1.134452122424e+00 + 2.512833174342e-16 -9.035704611945e-17 -2.902805734136e-01 -3.627691392763e-01 + -3.627691392763e-01 7.255382785527e-01 7.434127892529e-17 -2.440770211253e-15 + -7.340275531089e-18 1.692919814616e-01 3.053250603931e-01 4.502016231555e-01 + -1.057628694953e+00 1.821106664776e-01 -6.913380277016e-16 -7.253232729012e-16 + -1.134452122424e+00 -3.418076445391e-16 1.593721519673e-16 -2.902805734136e-01 + 3.627691392763e-01 3.627691392763e-01 -7.255382785527e-01 -2.527978933492e-17 + -5.575080156516e-15 -1.564147784885e-15 + + 40 + + -2.439155024911e-01 -4.399116537355e-01 -6.486494764032e-01 3.112747659666e-01 + -5.245398118315e-02 3.067730282169e-15 1.871335461163e-15 2.330686673476e-01 + -6.311355776271e-16 1.795669954895e-16 -1.062859846028e-01 9.915881245799e-02 + 9.915881245798e-02 -1.983176249160e-01 1.801902394648e-15 6.534559715014e-16 + -3.361316966103e-15 -2.439155024911e-01 -4.399116537355e-01 -6.486494764032e-01 + 3.112747659665e-01 -5.245398118314e-02 5.004965266254e-15 -9.297721724162e-16 + -2.330686673476e-01 -5.358571452380e-16 -2.644633318152e-16 1.062859846027e-01 + 9.915881245800e-02 9.915881245800e-02 -1.983176249160e-01 3.154782743623e-16 + 6.969992212550e-15 -2.060873803405e-15 + + 41 + + 2.165212134136e-16 3.905049252254e-16 5.757992840821e-16 -5.673567293141e-16 + 2.086957272691e-17 1.742473598246e-14 9.513573418352e-15 -1.212877220104e-15 + -1.896356019979e-15 -1.237526641623e-15 5.555728986283e-16 -5.419086581280e-05 + 5.419086581284e-05 -4.389381303467e-17 1.909662223742e+00 -1.402502679439e-14 + -1.029466838599e-14 1.040528666360e-16 1.876636301106e-16 2.767099129508e-16 + 3.100077235487e-16 1.326181029185e-17 2.105582217877e-14 8.056164236810e-15 + -5.102849282626e-16 -2.926353162060e-15 -8.512593884831e-16 1.024425377091e-16 + -5.419086581174e-05 5.419086581198e-05 -2.356214134670e-16 1.909662223742e+00 + 1.545745141972e-14 5.074840901661e-15 + + 42 + + 9.950794818612e-17 1.794666825163e-16 2.646235185122e-16 -1.056616184519e-15 + 3.009406514605e-17 -9.323650457157e-15 -9.267674725342e-15 -8.317444063940e-18 + 1.784610294266e-15 1.348833383188e-16 5.820470826013e-16 9.548311118712e-01 + -9.548311118712e-01 9.410101863039e-16 1.083817316348e-04 2.962592189638e-15 + 1.565529030813e-14 -8.488701890896e-17 -1.530972344420e-16 -2.257417827337e-16 + 1.169060481522e-15 -1.146363096771e-16 -6.856328703334e-15 -1.163691662805e-14 + -4.415146930288e-16 8.144245663174e-17 2.401617048116e-15 7.457882792505e-16 + 9.548311118712e-01 -9.548311118712e-01 -6.304198956137e-16 1.083817316146e-04 + -8.806756448058e-15 -7.409724607038e-16 + + 43 + + -4.968042178623e-17 -8.960068664374e-17 -1.321161601047e-16 -4.602961459322e-15 + -2.079615341019e-17 -8.106978316410e-02 1.294452244786e+00 -7.823602113649e-16 + 1.002472320845e-02 -1.600661177823e-01 3.241527340558e-15 9.016546309148e-15 + -8.413272339916e-15 -6.032739692321e-16 -1.208304172544e-14 6.243127244132e-02 + -9.968486111887e-01 1.065841980890e-16 1.922289906321e-16 2.834415343723e-16 + 4.733806038843e-15 -7.798630731916e-17 -8.106978316409e-02 1.294452244786e+00 + 2.907252042869e-15 1.002472320845e-02 -1.600661177823e-01 3.039382976188e-15 + 5.923601575211e-15 -6.148513435159e-15 2.249118599472e-16 -1.159955519578e-14 + -6.243127244133e-02 9.968486111887e-01 + + 44 + + 5.471585829999e-16 9.868230376698e-16 1.455069992467e-15 5.454783449347e-15 + 1.261255709654e-16 1.294452244786e+00 8.106978316409e-02 -2.791898534803e-15 + -1.600661177823e-01 -1.002472320845e-02 -3.720656985258e-15 5.527875308387e-15 + -7.185554726709e-15 1.657679418322e-15 -3.298493006551e-14 -9.968486111887e-01 + -6.243127244134e-02 8.259406397609e-16 1.489617957915e-15 2.196440808597e-15 + -7.289641875247e-15 2.017633895055e-16 1.294452244786e+00 8.106978316410e-02 + -4.446887961289e-16 -1.600661177823e-01 -1.002472320845e-02 -4.450102728597e-15 + 6.145619040966e-15 -6.409810409032e-15 2.641913680659e-16 -2.512462025627e-14 + 9.968486111887e-01 6.243127244132e-02 + + 45 + + 1.199784487993e-02 2.163860733938e-02 3.190611387899e-02 9.234203679521e-02 + -2.133051744881e-02 -7.188885047063e-16 7.597939621973e-15 -1.800893512305e+00 + 2.913469102322e-16 -3.901376748921e-15 3.800211784378e-01 3.608174049729e-01 + 3.608174049729e-01 -7.216348099458e-01 -2.241203345143e-15 -9.039541375912e-16 + 2.287950233618e-14 1.199784487993e-02 2.163860733938e-02 3.190611387900e-02 + 9.234203679521e-02 -2.133051744881e-02 4.447806738126e-16 -1.184333124226e-14 + 1.800893512305e+00 -3.163645507348e-16 4.485473425730e-15 -3.800211784378e-01 + 3.608174049729e-01 3.608174049729e-01 -7.216348099458e-01 1.883433739502e-15 + -1.537428922317e-15 2.252750184591e-14 + + 46 + + -4.494424189367e-16 -8.105879116089e-16 -1.195211402060e-15 4.936900735978e-15 + -1.530355445021e-16 -1.104074409048e+00 -3.783953632936e-01 -3.197518698836e-15 + 4.714799918213e-01 1.615886042904e-01 -2.115345876176e-15 1.562740471312e-15 + 1.684046574623e-15 -3.246787045935e-15 -2.394287802219e-14 -2.358056855821e+00 + -8.081681572480e-01 6.069904594060e-17 1.094732290780e-16 1.614182123130e-16 + -4.135120485537e-15 1.003023051452e-16 1.104074409048e+00 3.783953632936e-01 + 5.315419470296e-15 -4.714799918212e-01 -1.615886042904e-01 -4.175478116274e-15 + -9.845607566821e-16 1.573143687990e-16 8.272463878831e-16 2.167865772987e-14 + -2.358056855821e+00 -8.081681572480e-01 + + 47 + + -4.838672860023e-16 -8.726745770558e-16 -1.286758153986e-15 8.637896948265e-15 + -2.695400345923e-16 3.783953632936e-01 -1.104074409048e+00 -1.443539736608e-14 + -1.615886042904e-01 4.714799918212e-01 -2.240356375239e-15 5.758233468708e-15 + 4.804246307993e-16 -6.238658099507e-15 1.438861087173e-14 8.081681572480e-01 + -2.358056855821e+00 4.195291787614e-16 7.566381510578e-16 1.115662511649e-15 + -7.125748698890e-15 -1.893343170347e-17 -3.783953632936e-01 1.104074409048e+00 + 1.591538936632e-14 1.615886042904e-01 -4.714799918213e-01 -8.140098157507e-15 + 3.525655781598e-15 1.982222811830e-17 -3.545478009716e-15 -1.503356040017e-14 + 8.081681572480e-01 -2.358056855821e+00 + + 48 + + 1.450903327480e-16 2.616763902595e-16 3.858416845463e-16 -6.481032412129e-16 + 6.672378282652e-17 6.067759384433e-14 -5.884948625782e-14 -2.344699598936e-15 + -1.055330588391e-15 3.144877824118e-15 8.570003121545e-16 -1.717432013260e-06 + 1.717432013734e-06 -4.741442562562e-16 2.761176368281e+00 6.883692386698e-14 + -7.173667918092e-14 2.665740611388e-17 4.807772973873e-17 7.089058440909e-17 + 7.416223167970e-16 -1.166285833223e-16 8.747649389381e-14 -6.472678986027e-14 + 5.874673848837e-16 -1.054083070605e-14 5.995372001121e-15 -5.021116743008e-17 + 1.717432006868e-06 -1.717432006137e-06 -7.309106193587e-16 -2.761176368281e+00 + -1.082422901541e-13 8.328344706558e-14 + + 49 + + 8.644168503311e-16 1.559011388216e-15 2.298761381031e-15 4.162579765884e-15 + 1.078302434467e-16 3.230833229684e-14 -2.404141748362e-14 1.340216734188e-15 + -2.457719197430e-15 1.955966781042e-15 -4.020620570760e-15 1.380588184141e+00 + -1.380588184141e+00 6.733878922115e-15 3.434864020664e-06 3.457423533133e-14 + -3.047470507134e-14 -6.031072727716e-16 -1.087728803767e-15 -1.603855485620e-15 + -4.906143632287e-15 2.625647852487e-18 2.834912732525e-14 -2.714961700183e-14 + -1.217616935137e-15 -2.141016554651e-15 2.215666009318e-15 -3.137270748667e-15 + -1.380588184141e+00 1.380588184141e+00 -5.013945644726e-15 -3.434864019336e-06 + -4.083739274890e-14 2.813040501409e-14 + + 50 + + 1.637883209684e-16 2.953989820405e-16 4.355656264242e-16 -3.499836990450e-16 + 9.924404050798e-17 -7.064373433787e-01 1.237711829455e+00 5.225723928255e-16 + 5.373865461344e-02 -9.415267912644e-02 4.003278574919e-16 3.567320056302e-14 + -3.411469214377e-14 -1.558508419256e-15 1.743363804273e-13 -8.800854055708e-01 + 1.541951494518e+00 2.138373114259e-16 3.856643974614e-16 5.686619287223e-16 + 8.205800934928e-18 2.024690657919e-18 -7.064373433787e-01 1.237711829455e+00 + 2.315736699212e-15 5.373865461344e-02 -9.415267912644e-02 -3.974229039173e-16 + -3.409132950009e-14 3.609783031829e-14 -2.006500818195e-15 -1.732481874366e-13 + 8.800854055708e-01 -1.541951494518e+00 + + 51 + + 6.200344873980e-16 1.118257732447e-15 1.648870373121e-15 -4.415624528642e-15 + 4.230504314068e-16 1.237711829455e+00 7.064373433787e-01 -8.606129062200e-16 + -9.415267912644e-02 -5.373865461344e-02 2.590579648304e-15 -1.448666703449e-14 + 1.298138253357e-14 1.505284500921e-15 -6.163782444623e-14 1.541951494518e+00 + 8.800854055708e-01 -4.890272974827e-16 -8.819808702616e-16 -1.300480277880e-15 + 4.462820617157e-15 -4.386581139295e-16 1.237711829455e+00 7.064373433787e-01 + -7.615888567131e-17 -9.415267912644e-02 -5.373865461344e-02 2.090489323203e-15 + 1.536419648153e-14 -1.242556188113e-14 -2.938634600400e-15 6.215594667636e-14 + -1.541951494518e+00 -8.800854055708e-01 + + 52 + + 1.749009702096e-01 3.154411025910e-01 4.651177214657e-01 2.199861809936e+00 + 1.519246881135e-02 8.738986006938e-15 1.208555878864e-15 4.241322123041e-01 + 1.643344436628e-15 2.102272705329e-15 -1.645715057308e+00 -8.713483990881e-01 + -8.713483990881e-01 1.742696798176e+00 4.940997219029e-16 -2.416633884052e-14 + -1.515209219469e-14 -1.749009702096e-01 -3.154411025910e-01 -4.651177214657e-01 + -2.199861809936e+00 -1.519246881135e-02 -1.113386824612e-14 -5.071530721186e-15 + 4.241322123041e-01 -4.909037425848e-16 -1.913185976016e-15 -1.645715057308e+00 + 8.713483990881e-01 8.713483990881e-01 -1.742696798176e+00 -2.754191082070e-17 + -1.960316029428e-14 -1.147703226582e-14 + + 53 + + 4.282202674861e-16 7.723128874915e-16 1.138774901362e-15 -2.359483092373e-15 + -8.836622811623e-17 8.312278968529e-01 -2.132143409903e+00 -4.742835093062e-15 + 7.817459910148e-02 -2.005219710829e-01 1.908668769348e-15 -1.306264815724e-15 + -7.852057792110e-16 2.091470594935e-15 2.282439226540e-15 -1.563809078072e+00 + 4.011252789735e+00 -7.221356502479e-16 -1.302401384403e-15 -1.920390080341e-15 + 2.878563139537e-15 -4.653052955427e-17 -8.312278968529e-01 2.132143409903e+00 + -5.801086664563e-15 -7.817459910148e-02 2.005219710829e-01 2.192134529526e-15 + 6.562321292124e-16 2.082610334953e-15 -2.738842464165e-15 4.132909672730e-17 + -1.563809078072e+00 4.011252789735e+00 + + 54 + + -2.972407393715e-15 -5.360859145032e-15 -7.904583677128e-15 1.711500810165e-14 + -3.682180800447e-16 -2.132143409903e+00 -8.312278968529e-01 3.427563349833e-15 + -2.005219710829e-01 -7.817459910149e-02 -1.451283245898e-14 -1.642599160494e-14 + -1.866138003818e-14 3.508737164312e-14 -3.019628542913e-15 4.011252789735e+00 + 1.563809078072e+00 -4.473988056712e-15 -8.069021709240e-15 -1.189776779574e-14 + -1.290713360467e-14 4.569858119571e-17 2.132143409903e+00 8.312278968529e-01 + 3.917207976073e-16 2.005219710829e-01 7.817459910148e-02 -6.498986616678e-15 + -9.417533991833e-15 -6.540406482338e-15 1.595794047417e-14 1.864570925799e-15 + 4.011252789735e+00 1.563809078072e+00 + + 55 + + 3.070773970612e-01 5.538267317425e-01 8.166171923666e-01 -1.734543801450e-01 + 1.149327369606e-02 -2.634749695518e-14 -1.149180576644e-14 -1.165407461275e-01 + -2.598214552558e-15 -7.377371867831e-16 3.177987700472e-01 1.018849184444e+00 + 1.018849184444e+00 -2.037698368887e+00 -2.637357801606e-16 4.996065821777e-14 + 1.576499590206e-14 3.070773970612e-01 5.538267317425e-01 8.166171923666e-01 + -1.734543801450e-01 1.149327369606e-02 2.722772050900e-14 1.001961151317e-14 + 1.165407461275e-01 2.710254496415e-15 7.685160439701e-16 -3.177987700471e-01 + 1.018849184444e+00 1.018849184444e+00 -2.037698368887e+00 -2.998438167089e-17 + 5.002130531735e-14 1.888230568666e-14 + + 56 + + 3.901425908171e-01 7.036382294941e-01 1.037514158270e+00 1.356350448169e+00 + -8.045734652482e-02 -2.733412390242e-15 2.069029592965e-15 -4.305059098244e+00 + 1.668257689252e-16 6.579359706129e-16 -7.418404371646e-01 -9.354411569425e-01 + -9.354411569425e-01 1.870882313885e+00 -9.862120527241e-16 1.284285221967e-15 + -6.856072424286e-15 -3.901425908171e-01 -7.036382294941e-01 -1.037514158270e+00 + -1.356350448169e+00 8.045734652482e-02 6.641654867608e-16 -1.871106776794e-15 + -4.305059098244e+00 1.017307945071e-16 -3.483797262891e-16 -7.418404371646e-01 + 9.354411569425e-01 9.354411569425e-01 -1.870882313885e+00 2.240983311971e-16 + 3.328286004063e-15 -6.349131765451e-15 + + + -1.179998789924e+00 + + + 2.036441983763e+00 + diff --git a/iodata/test/data/orca_gradient.out b/iodata/test/data/orca_gradient.out new file mode 100644 index 00000000..9ed747c1 --- /dev/null +++ b/iodata/test/data/orca_gradient.out @@ -0,0 +1,2363 @@ + + ***************** + * O R C A * + ***************** + + #, + ### + #### + ##### + ###### + ########, + ,,################,,,,, + ,,#################################,, + ,,##########################################,, + ,#########################################, ''#####, + ,#############################################,, '####, + ,##################################################,,,,####, + ,###########'''' ''''############################### + ,#####'' ,,,,##########,,,, '''####''' '#### + ,##' ,,,,###########################,,, '## + ' ,,###'''' '''############,,, + ,,##'' '''############,,,, ,,,,,,###'' + ,#'' '''#######################''' + ' ''''####'''' + ,#######, #######, ,#######, ## + ,#' '#, ## ## ,#' '#, #''# ###### ,####, + ## ## ## ,#' ## #' '# # #' '# + ## ## ####### ## ,######, #####, # # + '#, ,#' ## ## '#, ,#' ,# #, ## #, ,# + '#######' ## ## '#######' #' '# #####' # '####' + + + + ####################################################### + # -***- # + # Department of theory and spectroscopy # + # Directorship and core code : Frank Neese # + # Max Planck Institute fuer Kohlenforschung # + # Kaiser Wilhelm Platz 1 # + # D-45470 Muelheim/Ruhr # + # Germany # + # # + # All rights reserved # + # -***- # + ####################################################### + + + Program Version 5.0.3 - RELEASE - + + + With contributions from (in alphabetic order): + Daniel Aravena : Magnetic Suceptibility + Michael Atanasov : Ab Initio Ligand Field Theory (pilot matlab implementation) + Alexander A. Auer : GIAO ZORA, VPT2 properties, NMR spectrum + Ute Becker : Parallelization + Giovanni Bistoni : ED, misc. LED, open-shell LED, HFLD + Martin Brehm : Molecular dynamics + Dmytro Bykov : SCF Hessian + Vijay G. Chilkuri : MRCI spin determinant printing, contributions to CSF-ICE + Dipayan Datta : RHF DLPNO-CCSD density + Achintya Kumar Dutta : EOM-CC, STEOM-CC + Dmitry Ganyushin : Spin-Orbit,Spin-Spin,Magnetic field MRCI + Miquel Garcia : C-PCM and meta-GGA Hessian, CC/C-PCM, Gaussian charge scheme + Yang Guo : DLPNO-NEVPT2, F12-NEVPT2, CIM, IAO-localization + Andreas Hansen : Spin unrestricted coupled pair/coupled cluster methods + Benjamin Helmich-Paris : MC-RPA, TRAH-SCF, COSX integrals + Lee Huntington : MR-EOM, pCC + Robert Izsak : Overlap fitted RIJCOSX, COSX-SCS-MP3, EOM + Marcus Kettner : VPT2 + Christian Kollmar : KDIIS, OOCD, Brueckner-CCSD(T), CCSD density, CASPT2, CASPT2-K + Simone Kossmann : Meta GGA functionals, TD-DFT gradient, OOMP2, MP2 Hessian + Martin Krupicka : Initial AUTO-CI + Lucas Lang : DCDCAS + Marvin Lechner : AUTO-CI (C++ implementation), FIC-MRCC + Dagmar Lenk : GEPOL surface, SMD + Dimitrios Liakos : Extrapolation schemes; Compound Job, initial MDCI parallelization + Dimitrios Manganas : Further ROCIS development; embedding schemes + Dimitrios Pantazis : SARC Basis sets + Anastasios Papadopoulos: AUTO-CI, single reference methods and gradients + Taras Petrenko : DFT Hessian,TD-DFT gradient, ASA, ECA, R-Raman, ABS, FL, XAS/XES, NRVS + Peter Pinski : DLPNO-MP2, DLPNO-MP2 Gradient + Christoph Reimann : Effective Core Potentials + Marius Retegan : Local ZFS, SOC + Christoph Riplinger : Optimizer, TS searches, QM/MM, DLPNO-CCSD(T), (RO)-DLPNO pert. Triples + Tobias Risthaus : Range-separated hybrids, TD-DFT gradient, RPA, STAB + Michael Roemelt : Original ROCIS implementation + Masaaki Saitow : Open-shell DLPNO-CCSD energy and density + Barbara Sandhoefer : DKH picture change effects + Avijit Sen : IP-ROCIS + Kantharuban Sivalingam : CASSCF convergence, NEVPT2, FIC-MRCI + Bernardo de Souza : ESD, SOC TD-DFT + Georgi Stoychev : AutoAux, RI-MP2 NMR, DLPNO-MP2 response + Willem Van den Heuvel : Paramagnetic NMR + Boris Wezisla : Elementary symmetry handling + Frank Wennmohs : Technical directorship + + + We gratefully acknowledge several colleagues who have allowed us to + interface, adapt or use parts of their codes: + Stefan Grimme, W. Hujo, H. Kruse, P. Pracht, : VdW corrections, initial TS optimization, + C. Bannwarth, S. Ehlert DFT functionals, gCP, sTDA/sTD-DF + Ed Valeev, F. Pavosevic, A. Kumar : LibInt (2-el integral package), F12 methods + Garnet Chan, S. Sharma, J. Yang, R. Olivares : DMRG + Ulf Ekstrom : XCFun DFT Library + Mihaly Kallay : mrcc (arbitrary order and MRCC methods) + Jiri Pittner, Ondrej Demel : Mk-CCSD + Frank Weinhold : gennbo (NPA and NBO analysis) + Christopher J. Cramer and Donald G. Truhlar : smd solvation model + Lars Goerigk : TD-DFT with DH, B97 family of functionals + V. Asgeirsson, H. Jonsson : NEB implementation + FAccTs GmbH : IRC, NEB, NEB-TS, DLPNO-Multilevel, CI-OPT + MM, QMMM, 2- and 3-layer-ONIOM, Crystal-QMMM, + LR-CPCM, SF, NACMEs, symmetry and pop. for TD-DFT, + nearIR, NL-DFT gradient (VV10), updates on ESD, + ML-optimized integration grids + S Lehtola, MJT Oliveira, MAL Marques : LibXC Library + Liviu Ungur et al : ANISO software + + + Your calculation uses the libint2 library for the computation of 2-el integrals + For citations please refer to: http://libint.valeyev.net + + Your ORCA version has been built with support for libXC version: 5.1.0 + For citations please refer to: https://tddft.org/programs/libxc/ + + This ORCA versions uses: + CBLAS interface : Fast vector & matrix operations + LAPACKE interface : Fast linear algebra routines + SCALAPACK package : Parallel linear algebra routines + Shared memory : Shared parallel matrices + BLAS/LAPACK : OpenBLAS 0.3.15 USE64BITINT DYNAMIC_ARCH NO_AFFINITY SkylakeX SINGLE_THREADED + Core in use : SkylakeX + Copyright (c) 2011-2014, The OpenBLAS Project + + +================================================================================ + +----- Orbital basis set information ----- +Your calculation utilizes the basis: def2-TZVP + F. Weigend and R. Ahlrichs, Phys. Chem. Chem. Phys. 7, 3297 (2005). + +----- AuxJ basis set information ----- +Your calculation utilizes the auxiliary basis: def2/J + F. Weigend, Phys. Chem. Chem. Phys. 8, 1057 (2006). + +================================================================================ + WARNINGS + Please study these warnings very carefully! +================================================================================ + + +INFO : the flag for use of the SHARK integral package has been found! + +================================================================================ + INPUT FILE +================================================================================ +NAME = orca.inp +| 1> ! B3LYP def2-TZVP EnGrad TightSCF CPCM(Water) +| 2> +| 3> %pal +| 4> nprocs 8 +| 5> end +| 6> +| 7> %maxcore 2048 +| 8> +| 9> * xyz 0 1 +| 10> C -0.410000 0.150000 0.150000 +| 11> H -0.730000 1.040000 0.460000 +| 12> H -0.950000 -0.150000 -0.630000 +| 13> H -0.510000 -0.520000 0.900000 +| 14> C 1.050000 0.240000 -0.240000 +| 15> O 1.660000 -0.750000 -0.660000 +| 16> N 1.660000 1.370000 -0.150000 +| 17> H 1.180000 2.180000 0.180000 +| 18> C 3.070000 1.440000 -0.540000 +| 19> H 3.460000 0.530000 -0.480000 +| 20> C 3.130000 1.970000 -1.980000 +| 21> H 4.080000 2.040000 -2.270000 +| 22> H 2.630000 1.350000 -2.580000 +| 23> H 2.700000 2.880000 -2.020000 +| 24> C 3.850000 2.300000 0.430000 +| 25> O 3.430000 3.390000 0.830000 +| 26> N 5.000000 1.880000 0.850000 +| 27> H 5.360000 1.000000 0.540000 +| 28> C 5.750000 2.700000 1.790000 +| 29> H 5.450000 3.650000 1.690000 +| 30> C 5.470000 2.180000 3.210000 +| 31> H 5.980000 2.720000 3.870000 +| 32> H 4.490000 2.240000 3.400000 +| 33> H 5.760000 1.220000 3.270000 +| 34> C 7.220000 2.700000 1.440000 +| 35> O 7.829999 1.660000 1.160000 +| 36> N 7.870000 3.820000 1.450000 +| 37> H 7.390000 4.670000 1.680000 +| 38> C 9.279999 3.840000 1.120000 +| 39> H 9.620000 4.780000 1.170000 +| 40> H 9.779999 3.270000 1.770000 +| 41> H 9.410000 3.490000 0.190000 +| 42> * +| 43> +| 44> ****END OF INPUT**** +================================================================================ + + ******************************* + * Energy+Gradient Calculation * + ******************************* + +--------------------------------- +CARTESIAN COORDINATES (ANGSTROEM) +--------------------------------- + C -0.410000 0.150000 0.150000 + H -0.730000 1.040000 0.460000 + H -0.950000 -0.150000 -0.630000 + H -0.510000 -0.520000 0.900000 + C 1.050000 0.240000 -0.240000 + O 1.660000 -0.750000 -0.660000 + N 1.660000 1.370000 -0.150000 + H 1.180000 2.180000 0.180000 + C 3.070000 1.440000 -0.540000 + H 3.460000 0.530000 -0.480000 + C 3.130000 1.970000 -1.980000 + H 4.080000 2.040000 -2.270000 + H 2.630000 1.350000 -2.580000 + H 2.700000 2.880000 -2.020000 + C 3.850000 2.300000 0.430000 + O 3.430000 3.390000 0.830000 + N 5.000000 1.880000 0.850000 + H 5.360000 1.000000 0.540000 + C 5.750000 2.700000 1.790000 + H 5.450000 3.650000 1.690000 + C 5.470000 2.180000 3.210000 + H 5.980000 2.720000 3.870000 + H 4.490000 2.240000 3.400000 + H 5.760000 1.220000 3.270000 + C 7.220000 2.700000 1.440000 + O 7.829999 1.660000 1.160000 + N 7.870000 3.820000 1.450000 + H 7.390000 4.670000 1.680000 + C 9.279999 3.840000 1.120000 + H 9.620000 4.780000 1.170000 + H 9.779999 3.270000 1.770000 + H 9.410000 3.490000 0.190000 + +---------------------------- +CARTESIAN COORDINATES (A.U.) +---------------------------- + NO LB ZA FRAG MASS X Y Z + 0 C 6.0000 0 12.011 -0.774788 0.283459 0.283459 + 1 H 1.0000 0 1.008 -1.379500 1.965315 0.869274 + 2 H 1.0000 0 1.008 -1.795240 -0.283459 -1.190527 + 3 H 1.0000 0 1.008 -0.963760 -0.982658 1.700754 + 4 C 6.0000 0 12.011 1.984212 0.453534 -0.453534 + 5 O 8.0000 0 15.999 3.136945 -1.417295 -1.247219 + 6 N 7.0000 0 14.007 3.136945 2.588925 -0.283459 + 7 H 1.0000 0 1.008 2.229877 4.119603 0.340151 + 8 C 6.0000 0 12.011 5.801459 2.721206 -1.020452 + 9 H 1.0000 0 1.008 6.538452 1.001555 -0.907069 + 10 C 6.0000 0 12.011 5.914843 3.722760 -3.741658 + 11 H 1.0000 0 1.008 7.710083 3.855041 -4.289678 + 12 H 1.0000 0 1.008 4.969980 2.551130 -4.875493 + 13 H 1.0000 0 1.008 5.102261 5.442411 -3.817247 + 14 C 6.0000 0 12.011 7.275446 4.346370 0.812582 + 15 O 8.0000 0 15.999 6.481761 6.406172 1.568473 + 16 N 7.0000 0 14.007 9.448631 3.552685 1.606267 + 17 H 1.0000 0 1.008 10.128932 1.889726 1.020452 + 18 C 6.0000 0 12.011 10.865925 5.102261 3.382610 + 19 H 1.0000 0 1.008 10.299007 6.897500 3.193637 + 20 C 6.0000 0 12.011 10.336802 4.119603 6.066021 + 21 H 1.0000 0 1.008 11.300562 5.140055 7.313240 + 22 H 1.0000 0 1.008 8.484870 4.232987 6.425069 + 23 H 1.0000 0 1.008 10.884823 2.305466 6.179404 + 24 C 6.0000 0 12.011 13.643823 5.102261 2.721206 + 25 O 8.0000 0 15.999 14.796554 3.136945 2.192082 + 26 N 7.0000 0 14.007 14.872145 7.218754 2.740103 + 27 H 1.0000 0 1.008 13.965076 8.825021 3.174740 + 28 C 6.0000 0 12.011 17.536657 7.256548 2.116493 + 29 H 1.0000 0 1.008 18.179165 9.032891 2.210980 + 30 H 1.0000 0 1.008 18.481520 6.179404 3.344815 + 31 H 1.0000 0 1.008 17.782323 6.595144 0.359048 + +-------------------------------- +INTERNAL COORDINATES (ANGSTROEM) +-------------------------------- + C 0 0 0 0.000000000000 0.00000000 0.00000000 + H 1 0 0 0.995288902781 0.00000000 0.00000000 + H 1 2 0 0.994987437107 109.83369235 0.00000000 + H 1 2 3 1.010643359450 109.26026162 240.29218115 + C 1 2 3 1.513869214959 109.70347459 120.82291686 + O 5 1 2 1.236365641710 121.04662907 180.17433908 + N 5 1 2 1.287283962457 119.41811694 359.20295468 + H 7 5 1 0.997697348899 120.51856002 0.46183654 + C 7 5 1 1.464615990627 118.65489440 180.39535313 + H 9 7 5 0.991866926558 108.57696735 337.33771960 + C 9 7 5 1.535610627731 107.68677326 97.57665215 + H 11 9 7 0.995740930162 109.55112107 179.27058365 + H 11 9 7 0.997196068985 109.27152587 300.20658449 + H 11 9 7 1.007273547752 109.41256021 59.34130673 + C 9 7 5 1.512911101156 110.65739593 221.07917803 + O 15 9 7 1.234706442844 122.28654684 315.06584413 + N 15 9 7 1.294333805477 118.79412975 135.36520453 + H 17 15 9 1.000049998750 120.31744236 359.67087561 + C 17 15 9 1.455506784594 118.98475368 180.39534331 + H 19 17 15 1.001249219725 108.39986563 336.20289383 + C 19 17 15 1.537920674157 108.17986476 96.65933588 + H 21 19 17 0.993629709701 109.63934805 179.42307029 + H 21 19 17 1.000049998750 109.48442430 300.34659963 + H 21 19 17 1.004639238732 109.00702630 59.74152064 + C 19 17 15 1.511092320145 110.59047339 220.92087248 + O 25 19 17 1.237779778475 122.12788029 314.18513439 + N 25 19 17 1.294990347454 119.11054348 135.14480489 + H 27 25 19 1.002895807150 119.64048424 359.40951984 + C 27 25 19 1.448239337955 119.92493775 179.87815126 + H 29 27 25 1.000849978769 109.41019956 179.59514339 + H 29 27 25 0.998699153900 109.34442253 299.48922742 + H 29 27 25 1.002147823428 109.44685195 59.87197800 + +--------------------------- +INTERNAL COORDINATES (A.U.) +--------------------------- + C 0 0 0 0.000000000000 0.00000000 0.00000000 + H 1 0 0 1.880823450388 0.00000000 0.00000000 + H 1 2 0 1.880253762824 109.83369235 0.00000000 + H 1 2 3 1.909839168426 109.26026162 240.29218115 + C 1 2 3 2.860798218847 109.70347459 120.82291686 + O 5 1 2 2.336392464221 121.04662907 180.17433908 + N 5 1 2 2.432614145633 119.41811694 359.20295468 + H 7 5 1 1.885374753958 120.51856002 0.46183654 + C 7 5 1 2.767723113647 118.65489440 180.39535313 + H 9 7 5 1.874356852489 108.57696735 337.33771960 + C 9 7 5 2.901883534750 107.68677326 97.57665215 + H 11 9 7 1.881677658342 109.55112107 179.27058365 + H 11 9 7 1.884427472205 109.27152587 300.20658449 + H 11 9 7 1.903471147194 109.41256021 59.34130673 + C 9 7 5 2.858987646153 110.65739593 221.07917803 + O 15 9 7 2.333257032763 122.28654684 315.06584413 + N 15 9 7 2.445936418227 118.79412975 135.36520453 + H 17 15 9 1.889820617866 120.31744236 359.67087561 + C 17 15 9 2.750509208948 118.98475368 180.39534331 + H 19 17 15 1.892086817083 108.39986563 336.20289383 + C 19 17 15 2.906248889853 108.17986476 96.65933588 + H 21 19 17 1.877688029862 109.63934805 179.42307029 + H 21 19 17 1.889820617866 109.48442430 300.34659963 + H 21 19 17 1.898493024595 109.00702630 59.74152064 + C 19 17 15 2.855550648145 110.59047339 220.92087248 + O 25 19 17 2.339064795423 122.12788029 314.18513439 + N 25 19 17 2.447177102760 119.11054348 135.14480489 + H 27 25 19 1.895198416372 119.64048424 359.40951984 + C 27 25 19 2.736775725107 119.92493775 179.87815126 + H 29 27 25 1.891332361013 109.41019956 179.59514339 + H 29 27 25 1.887267891049 109.34442253 299.48922742 + H 29 27 25 1.893784931984 109.44685195 59.87197800 + +--------------------- +BASIS SET INFORMATION +--------------------- +There are 4 groups of distinct atoms + + Group 1 Type C : 11s6p2d1f contracted to 5s3p2d1f pattern {62111/411/11/1} + Group 2 Type H : 5s1p contracted to 3s1p pattern {311/1} + Group 3 Type O : 11s6p2d1f contracted to 5s3p2d1f pattern {62111/411/11/1} + Group 4 Type N : 11s6p2d1f contracted to 5s3p2d1f pattern {62111/411/11/1} + +Atom 0C basis set group => 1 +Atom 1H basis set group => 2 +Atom 2H basis set group => 2 +Atom 3H basis set group => 2 +Atom 4C basis set group => 1 +Atom 5O basis set group => 3 +Atom 6N basis set group => 4 +Atom 7H basis set group => 2 +Atom 8C basis set group => 1 +Atom 9H basis set group => 2 +Atom 10C basis set group => 1 +Atom 11H basis set group => 2 +Atom 12H basis set group => 2 +Atom 13H basis set group => 2 +Atom 14C basis set group => 1 +Atom 15O basis set group => 3 +Atom 16N basis set group => 4 +Atom 17H basis set group => 2 +Atom 18C basis set group => 1 +Atom 19H basis set group => 2 +Atom 20C basis set group => 1 +Atom 21H basis set group => 2 +Atom 22H basis set group => 2 +Atom 23H basis set group => 2 +Atom 24C basis set group => 1 +Atom 25O basis set group => 3 +Atom 26N basis set group => 4 +Atom 27H basis set group => 2 +Atom 28C basis set group => 1 +Atom 29H basis set group => 2 +Atom 30H basis set group => 2 +Atom 31H basis set group => 2 +--------------------------------- +AUXILIARY/J BASIS SET INFORMATION +--------------------------------- +There are 4 groups of distinct atoms + + Group 1 Type C : 12s5p4d2f1g contracted to 6s4p3d1f1g pattern {711111/2111/211/2/1} + Group 2 Type H : 5s2p1d contracted to 3s1p1d pattern {311/2/1} + Group 3 Type O : 12s5p4d2f1g contracted to 6s4p3d1f1g pattern {711111/2111/211/2/1} + Group 4 Type N : 12s5p4d2f1g contracted to 6s4p3d1f1g pattern {711111/2111/211/2/1} + +Atom 0C basis set group => 1 +Atom 1H basis set group => 2 +Atom 2H basis set group => 2 +Atom 3H basis set group => 2 +Atom 4C basis set group => 1 +Atom 5O basis set group => 3 +Atom 6N basis set group => 4 +Atom 7H basis set group => 2 +Atom 8C basis set group => 1 +Atom 9H basis set group => 2 +Atom 10C basis set group => 1 +Atom 11H basis set group => 2 +Atom 12H basis set group => 2 +Atom 13H basis set group => 2 +Atom 14C basis set group => 1 +Atom 15O basis set group => 3 +Atom 16N basis set group => 4 +Atom 17H basis set group => 2 +Atom 18C basis set group => 1 +Atom 19H basis set group => 2 +Atom 20C basis set group => 1 +Atom 21H basis set group => 2 +Atom 22H basis set group => 2 +Atom 23H basis set group => 2 +Atom 24C basis set group => 1 +Atom 25O basis set group => 3 +Atom 26N basis set group => 4 +Atom 27H basis set group => 2 +Atom 28C basis set group => 1 +Atom 29H basis set group => 2 +Atom 30H basis set group => 2 +Atom 31H basis set group => 2 + + + ************************************************************ + * Program running with 8 parallel MPI-processes * + * working on a common directory * + ************************************************************ +------------------------------------------------------------------------------ + ORCA GTO INTEGRAL CALCULATION + -- RI-GTO INTEGRALS CHOSEN -- +------------------------------------------------------------------------------ +------------------------------------------------------------------------------ + ___ + / \ - P O W E R E D B Y - + / \ + | | | _ _ __ _____ __ __ + | | | | | | | / \ | _ \ | | / | + \ \/ | | | | / \ | | | | | | / / + / \ \ | |__| | / /\ \ | |_| | | |/ / + | | | | __ | / /__\ \ | / | \ + | | | | | | | | __ | | \ | |\ \ + \ / | | | | | | | | | |\ \ | | \ \ + \___/ |_| |_| |__| |__| |_| \__\ |__| \__/ + + - O R C A' S B I G F R I E N D - + & + - I N T E G R A L F E E D E R - + + v1 FN, 2020, v2 2021 +------------------------------------------------------------------------------ + + +Reading SHARK input file orca.SHARKINP.tmp ... ok +---------------------- +SHARK INTEGRAL PACKAGE +---------------------- + +Number of atoms ... 32 +Number of basis functions ... 567 +Number of shells ... 233 +Maximum angular momentum ... 3 +Integral batch strategy ... SHARK/LIBINT Hybrid +RI-J (if used) integral strategy ... SPLIT-RIJ (Revised 2003 algorithm where possible) +Printlevel ... 1 +Contraction scheme used ... SEGMENTED contraction +Coulomb Range Separation ... NOT USED +Exchange Range Separation ... NOT USED +Finite Nucleus Model ... NOT USED +Auxiliary Coulomb fitting basis ... AVAILABLE + # of basis functions in Aux-J ... 922 + # of shells in Aux-J ... 310 + Maximum angular momentum in Aux-J ... 4 +Auxiliary J/K fitting basis ... NOT available +Auxiliary Correlation fitting basis ... NOT available +Auxiliary 'external' fitting basis ... NOT available +Integral threshold ... 2.500000e-11 +Primitive cut-off ... 2.500000e-12 +Primitive pair pre-selection threshold ... 2.500000e-12 + +Calculating pre-screening integrals ... done ( 0.0 sec) Dimension = 233 +Organizing shell pair data ... done ( 0.8 sec) +Shell pair information +Total number of shell pairs ... 27261 +Shell pairs after pre-screening ... 19780 +Total number of primitive shell pairs ... 81384 +Primitive shell pairs kept ... 40955 + la=0 lb=0: 5698 shell pairs + la=1 lb=0: 5803 shell pairs + la=1 lb=1: 1526 shell pairs + la=2 lb=0: 2667 shell pairs + la=2 lb=1: 1390 shell pairs + la=2 lb=2: 337 shell pairs + la=3 lb=0: 1287 shell pairs + la=3 lb=1: 685 shell pairs + la=3 lb=2: 307 shell pairs + la=3 lb=3: 80 shell pairs + +Calculating one electron integrals ... done ( 0.0 sec) +Calculating RI/J V-Matrix + Cholesky decomp.... done ( 0.0 sec) +Calculating Nuclear repulsion ... done ( 0.0 sec) ENN= 1043.882560768873 Eh + +SHARK setup successfully completed in 1.2 seconds + +Maximum memory used throughout the entire GTOINT-calculation: 31.5 MB + + + ************************************************************ + * Program running with 8 parallel MPI-processes * + * working on a common directory * + ************************************************************ +------------------------------------------------------------------------------- + ORCA SCF +------------------------------------------------------------------------------- + +------------ +SCF SETTINGS +------------ +Hamiltonian: + Density Functional Method .... DFT(GTOs) + Exchange Functional Exchange .... B88 + X-Alpha parameter XAlpha .... 0.666667 + Becke's b parameter XBeta .... 0.004200 + Correlation Functional Correlation .... LYP + LDA part of GGA corr. LDAOpt .... VWN-5 + Gradients option PostSCFGGA .... off + Hybrid DFT is turned on + Fraction HF Exchange ScalHFX .... 0.200000 + Scaling of DF-GGA-X ScalDFX .... 0.720000 + Scaling of DF-GGA-C ScalDFC .... 0.810000 + Scaling of DF-LDA-C ScalLDAC .... 1.000000 + Perturbative correction .... 0.000000 + Density functional embedding theory .... OFF + NL short-range parameter .... 4.800000 + RI-approximation to the Coulomb term is turned on + Number of AuxJ basis functions .... 922 + RIJ-COSX (HFX calculated with COS-X)).... on + + +General Settings: + Integral files IntName .... orca + Hartree-Fock type HFTyp .... RHF + Total Charge Charge .... 0 + Multiplicity Mult .... 1 + Number of Electrons NEL .... 116 + Basis Dimension Dim .... 567 + Nuclear Repulsion ENuc .... 1043.8825607689 Eh + +Convergence Acceleration: + DIIS CNVDIIS .... on + Start iteration DIISMaxIt .... 12 + Startup error DIISStart .... 0.200000 + # of expansion vecs DIISMaxEq .... 5 + Bias factor DIISBfac .... 1.050 + Max. coefficient DIISMaxC .... 10.000 + Trust-Rad. Augm. Hess. CNVTRAH .... auto + Auto Start mean grad. ratio tolernc. .... 1.125000 + Auto Start start iteration .... 20 + Auto Start num. interpolation iter. .... 10 + Max. Number of Micro iterations .... 16 + Max. Number of Macro iterations .... Maxiter - #DIIS iter + Number of Davidson start vectors .... 2 + Converg. threshold I (grad. norm) .... 1.000e-05 + Converg. threshold II (energy diff.) .... 1.000e-08 + Grad. Scal. Fac. for Micro threshold .... 0.100 + Minimum threshold for Micro iter. .... 0.010 + NR start threshold (gradient norm) .... 0.001 + Initial trust radius .... 0.400 + Minimum AH scaling param. (alpha) .... 1.000 + Maximum AH scaling param. (alpha) .... 1000.000 + Orbital update algorithm .... Taylor + White noise on init. David. guess .... on + Maximum white noise .... 0.010 + Quad. conv. algorithm .... NR + SOSCF CNVSOSCF .... on + Start iteration SOSCFMaxIt .... 150 + Startup grad/error SOSCFStart .... 0.003300 + Level Shifting CNVShift .... on + Level shift para. LevelShift .... 0.2500 + Turn off err/grad. ShiftErr .... 0.0010 + Zerner damping CNVZerner .... off + Static damping CNVDamp .... on + Fraction old density DampFac .... 0.7000 + Max. Damping (<1) DampMax .... 0.9800 + Min. Damping (>=0) DampMin .... 0.0000 + Turn off err/grad. DampErr .... 0.1000 + Fernandez-Rico CNVRico .... off + +SCF Procedure: + Maximum # iterations MaxIter .... 125 + SCF integral mode SCFMode .... Direct + Integral package .... SHARK and LIBINT hybrid scheme + Reset frequency DirectResetFreq .... 20 + Integral Threshold Thresh .... 2.500e-11 Eh + Primitive CutOff TCut .... 2.500e-12 Eh + +Convergence Tolerance: + Convergence Check Mode ConvCheckMode .... Total+1el-Energy + Convergence forced ConvForced .... 0 + Energy Change TolE .... 1.000e-08 Eh + 1-El. energy change .... 1.000e-05 Eh + Orbital Gradient TolG .... 1.000e-05 + Orbital Rotation angle TolX .... 1.000e-05 + DIIS Error TolErr .... 5.000e-07 + + +Diagonalization of the overlap matrix: +Smallest eigenvalue ... 9.067e-05 +Time for diagonalization ... 0.059 sec +Threshold for overlap eigenvalues ... 1.000e-08 +Number of eigenvalues below threshold ... 0 +Time for construction of square roots ... 0.027 sec +Total time needed ... 0.089 sec + +Time for model grid setup = 0.196 sec + +------------------------------ +INITIAL GUESS: MODEL POTENTIAL +------------------------------ +Loading Hartree-Fock densities ... done +Calculating cut-offs ... done +Initializing the effective Hamiltonian ... done +Setting up the integral package (SHARK) ... done +Starting the Coulomb interaction ... done ( 0.2 sec) +Reading the grid ... done +Mapping shells ... done +Starting the XC term evaluation ... done ( 0.2 sec) + promolecular density results + # of electrons = 115.986612495 + EX = -95.988205763 + EC = -3.962788754 + EX+EC = -99.950994518 +Transforming the Hamiltonian ... done ( 0.0 sec) +Diagonalizing the Hamiltonian ... done ( 0.1 sec) +Back transforming the eigenvectors ... done ( 0.0 sec) +Now organizing SCF variables ... done + ------------------ + INITIAL GUESS DONE ( 0.7 sec) + ------------------ +------------------- +DFT GRID GENERATION +------------------- + +General Integration Accuracy IntAcc ... 4.388 +Radial Grid Type RadialGrid ... OptM3 with GC (2021) +Angular Grid (max. ang.) AngularGrid ... 4 (Lebedev-302) +Angular grid pruning method GridPruning ... 4 (adaptive) +Weight generation scheme WeightScheme... Becke +Basis function cutoff BFCut ... 1.0000e-11 +Integration weight cutoff WCut ... 1.0000e-14 +Angular grids for H and He will be reduced by one unit +Partially contracted basis set ... off +Rotationally invariant grid construction ... off + +Total number of grid points ... 144352 +Total number of batches ... 2273 +Average number of points per batch ... 63 +Average number of grid points per atom ... 4511 +Time for grid setup = 0.785 sec + +-------------------- +COSX GRID GENERATION +-------------------- + +GRIDX 1 +------- +General Integration Accuracy IntAcc ... 3.816 +Radial Grid Type RadialGrid ... OptM3 with GC (2021) +Angular Grid (max. ang.) AngularGrid ... 1 (Lebedev-50) +Angular grid pruning method GridPruning ... 4 (adaptive) +Weight generation scheme WeightScheme... Becke +Basis function cutoff BFCut ... 1.0000e-11 +Integration weight cutoff WCut ... 1.0000e-14 +Angular grids for H and He will be reduced by one unit +Partially contracted basis set ... on +Rotationally invariant grid construction ... off + +Total number of grid points ... 18397 +Total number of batches ... 306 +Average number of points per batch ... 60 +Average number of grid points per atom ... 575 +UseSFitting ... on + +GRIDX 2 +------- +General Integration Accuracy IntAcc ... 4.020 +Radial Grid Type RadialGrid ... OptM3 with GC (2021) +Angular Grid (max. ang.) AngularGrid ... 2 (Lebedev-110) +Angular grid pruning method GridPruning ... 4 (adaptive) +Weight generation scheme WeightScheme... Becke +Basis function cutoff BFCut ... 1.0000e-11 +Integration weight cutoff WCut ... 1.0000e-14 +Angular grids for H and He will be reduced by one unit +Partially contracted basis set ... on +Rotationally invariant grid construction ... off + +Total number of grid points ... 39318 +Total number of batches ... 630 +Average number of points per batch ... 62 +Average number of grid points per atom ... 1229 +UseSFitting ... on + +GRIDX 3 +------- +General Integration Accuracy IntAcc ... 4.338 +Radial Grid Type RadialGrid ... OptM3 with GC (2021) +Angular Grid (max. ang.) AngularGrid ... 3 (Lebedev-194) +Angular grid pruning method GridPruning ... 4 (adaptive) +Weight generation scheme WeightScheme... Becke +Basis function cutoff BFCut ... 1.0000e-11 +Integration weight cutoff WCut ... 1.0000e-14 +Angular grids for H and He will be reduced by one unit +Partially contracted basis set ... on +Rotationally invariant grid construction ... off + +Total number of grid points ... 85930 +Total number of batches ... 1359 +Average number of points per batch ... 63 +Average number of grid points per atom ... 2685 +UseSFitting ... on + +Time for X-Grid setup = 0.913 sec + + +-------------------- +CPCM SOLVATION MODEL +-------------------- +CPCM parameters: + Epsilon ... 80.4000 + Refrac ... 1.3300 + Rsolv ... 1.3000 + Surface type ... GAUSSIAN VDW + Epsilon function type ... CPCM +Radii: + Radius for C used is 3.8550 Bohr (= 2.0400 Ang.) + Radius for H used is 2.4944 Bohr (= 1.3200 Ang.) + Radius for O used is 3.4469 Bohr (= 1.8240 Ang.) + Radius for N used is 3.5149 Bohr (= 1.8600 Ang.) +Calculating surface ... done! ( 0.0s) +GEPOL surface points ... 1733 +GEPOL Volume ... 1747.8170 +GEPOL Surface-area ... 985.0983 +Calculating surface distance matrix ... done! ( 0.0s) +Performing Cholesky decomposition & store ... done! ( 0.1s) +Overall time for CPCM initialization ... 0.1s +-------------- +SCF ITERATIONS +-------------- +ITER Energy Delta-E Max-DP RMS-DP [F,P] Damp + *** Starting incremental Fock matrix formation *** + 0 -742.2911233869 0.000000000000 0.11143689 0.00110666 0.3210166 0.7000 + 1 -742.6189205873 -0.327797200415 0.10914230 0.00086108 0.1284618 0.7000 + ***Turning on DIIS*** + 2 -742.7416873850 -0.122766797660 0.12269382 0.00124713 0.0510560 0.0000 + 3 -742.9427532087 -0.201065823741 0.10566475 0.00068574 0.0621346 0.0000 + 4 -742.9826791916 -0.039925982861 0.02940039 0.00020134 0.0160181 0.0000 + 5 -742.9853864470 -0.002707255420 0.01190959 0.00008455 0.0064550 0.0000 + *** Initiating the SOSCF procedure *** + *** Shutting down DIIS *** + *** Re-Reading the Fockian *** + *** Removing any level shift *** +ITER Energy Delta-E Grad Rot Max-DP RMS-DP + 6 -742.98555446 -0.0001680108 0.000222 0.000222 0.002771 0.000029 + *** Restarting incremental Fock matrix formation *** + 7 -742.98557799 -0.0000235293 0.000092 0.000271 0.001778 0.000019 + 8 -742.98557816 -0.0000001718 0.000202 0.000316 0.000318 0.000005 + 9 -742.98558001 -0.0000018544 0.000045 0.000107 0.000238 0.000003 + 10 -742.98557994 0.0000000765 0.000048 0.000053 0.000072 0.000001 + 11 -742.98558009 -0.0000001526 0.000006 0.000011 0.000063 0.000001 + 12 -742.98558009 0.0000000019 0.000006 0.000005 0.000025 0.000000 + ***Gradient check signals convergence*** + ***Rediagonalizing the Fockian in SOSCF/NRSCF*** + + ***************************************************** + * SUCCESS * + * SCF CONVERGED AFTER 13 CYCLES * + ***************************************************** + +Old exchange energy = -19.599069129 Eh +New exchange energy = -19.599081930 Eh +Exchange energy change after final integration = -0.000012801 Eh +Total energy after final integration = -742.985592886 Eh +Final COS-X integration done in = 12.485 sec + +---------------- +TOTAL SCF ENERGY +---------------- + +Total Energy : -742.98559289 Eh -20217.66583 eV + +Components: +Nuclear Repulsion : 1043.88256077 Eh 28405.48859 eV +Electronic Energy : -1786.86815366 Eh -48623.15441 eV +One Electron Energy: -3083.46691023 Eh -83905.40030 eV +Two Electron Energy: 1296.59875657 Eh 35282.24588 eV +Max COSX asymmetry : 0.00000142 Eh 0.00004 eV +CPCM Dielectric : -0.04036503 Eh -1.09839 eV + +Virial components: +Potential Energy : -1485.32948111 Eh -40417.86999 eV +Kinetic Energy : 742.34388822 Eh 20200.20416 eV +Virial Ratio : 2.00086443 + + +DFT components: +N(Alpha) : 58.000026320347 electrons +N(Beta) : 58.000026320347 electrons +N(Total) : 116.000052640694 electrons +E(X) : -77.874738377741 Eh +E(C) : -4.679021146568 Eh +E(XC) : -82.553759524308 Eh +DFET-embed. en. : 0.000000000000 Eh +CPCM Solvation Model Properties: +Surface-charge : -0.02741090 +Charge-correction : -0.00023677 Eh -0.00644 eV +Free-energy (cav+disp) : This term is not implemented in the current solvation scheme + +--------------- +SCF CONVERGENCE +--------------- + + Last Energy change ... 2.3301e-09 Tolerance : 1.0000e-08 + Last MAX-Density change ... 2.2204e-15 Tolerance : 1.0000e-07 + Last RMS-Density change ... 1.4221e-17 Tolerance : 5.0000e-09 + Last Orbital Gradient ... 3.4816e-07 Tolerance : 1.0000e-05 + Last Orbital Rotation ... 9.1634e-07 Tolerance : 1.0000e-05 + + **** THE GBW FILE WAS UPDATED (orca.gbw) **** + **** DENSITY orca.scfp WAS UPDATED **** + **** ENERGY FILE WAS UPDATED (orca.en.tmp) **** + **** THE GBW FILE WAS UPDATED (orca.gbw) **** + **** DENSITY orca.scfp WAS UPDATED **** +---------------- +ORBITAL ENERGIES +---------------- + + NO OCC E(Eh) E(eV) + 0 2.0000 -19.086799 -519.3782 + 1 2.0000 -19.086091 -519.3589 + 2 2.0000 -19.077294 -519.1196 + 3 2.0000 -14.344960 -390.3462 + 4 2.0000 -14.341978 -390.2651 + 5 2.0000 -14.339163 -390.1885 + 6 2.0000 -10.267556 -279.3944 + 7 2.0000 -10.264039 -279.2987 + 8 2.0000 -10.261456 -279.2284 + 9 2.0000 -10.208976 -277.8004 + 10 2.0000 -10.207612 -277.7632 + 11 2.0000 -10.167950 -276.6840 + 12 2.0000 -10.137913 -275.8666 + 13 2.0000 -10.135522 -275.8016 + 14 2.0000 -10.134891 -275.7844 + 15 2.0000 -1.053468 -28.6663 + 16 2.0000 -1.043576 -28.3971 + 17 2.0000 -1.038137 -28.2492 + 18 2.0000 -0.937688 -25.5158 + 19 2.0000 -0.931629 -25.3509 + 20 2.0000 -0.930780 -25.3278 + 21 2.0000 -0.806646 -21.9499 + 22 2.0000 -0.781582 -21.2679 + 23 2.0000 -0.743041 -20.2192 + 24 2.0000 -0.733410 -19.9571 + 25 2.0000 -0.688447 -18.7336 + 26 2.0000 -0.656271 -17.8580 + 27 2.0000 -0.607708 -16.5366 + 28 2.0000 -0.598154 -16.2766 + 29 2.0000 -0.594318 -16.1722 + 30 2.0000 -0.564373 -15.3574 + 31 2.0000 -0.514438 -13.9986 + 32 2.0000 -0.500153 -13.6099 + 33 2.0000 -0.485600 -13.2138 + 34 2.0000 -0.478002 -13.0071 + 35 2.0000 -0.471408 -12.8277 + 36 2.0000 -0.469846 -12.7852 + 37 2.0000 -0.462474 -12.5846 + 38 2.0000 -0.452873 -12.3233 + 39 2.0000 -0.435844 -11.8599 + 40 2.0000 -0.431128 -11.7316 + 41 2.0000 -0.428008 -11.6467 + 42 2.0000 -0.414272 -11.2729 + 43 2.0000 -0.407980 -11.1017 + 44 2.0000 -0.405367 -11.0306 + 45 2.0000 -0.403161 -10.9706 + 46 2.0000 -0.387212 -10.5366 + 47 2.0000 -0.383086 -10.4243 + 48 2.0000 -0.380666 -10.3585 + 49 2.0000 -0.378259 -10.2930 + 50 2.0000 -0.361615 -9.8401 + 51 2.0000 -0.354138 -9.6366 + 52 2.0000 -0.277230 -7.5438 + 53 2.0000 -0.273278 -7.4363 + 54 2.0000 -0.266563 -7.2536 + 55 2.0000 -0.259458 -7.0602 + 56 2.0000 -0.258270 -7.0279 + 57 2.0000 -0.250568 -6.8183 + 58 0.0000 0.009616 0.2617 + 59 0.0000 0.021805 0.5934 + 60 0.0000 0.037593 1.0230 + 61 0.0000 0.038483 1.0472 + 62 0.0000 0.051729 1.4076 + 63 0.0000 0.058684 1.5969 + 64 0.0000 0.076904 2.0927 + 65 0.0000 0.080252 2.1838 + 66 0.0000 0.084351 2.2953 + 67 0.0000 0.098108 2.6697 + 68 0.0000 0.108474 2.9517 + 69 0.0000 0.112393 3.0584 + 70 0.0000 0.121956 3.3186 + 71 0.0000 0.134054 3.6478 + 72 0.0000 0.135958 3.6996 + 73 0.0000 0.139000 3.7824 + 74 0.0000 0.142344 3.8734 + 75 0.0000 0.143874 3.9150 + 76 0.0000 0.145982 3.9724 + 77 0.0000 0.155287 4.2256 + 78 0.0000 0.157602 4.2886 + 79 0.0000 0.161622 4.3980 + 80 0.0000 0.168498 4.5851 + 81 0.0000 0.171351 4.6627 + 82 0.0000 0.176819 4.8115 + 83 0.0000 0.186687 5.0800 + 84 0.0000 0.191753 5.2179 + 85 0.0000 0.198536 5.4024 + 86 0.0000 0.202878 5.5206 + 87 0.0000 0.209715 5.7066 + 88 0.0000 0.213836 5.8188 + 89 0.0000 0.218801 5.9539 + 90 0.0000 0.219276 5.9668 + 91 0.0000 0.229156 6.2356 + 92 0.0000 0.236862 6.4454 + 93 0.0000 0.249770 6.7966 + 94 0.0000 0.250836 6.8256 + 95 0.0000 0.257294 7.0013 + 96 0.0000 0.259879 7.0717 + 97 0.0000 0.279093 7.5945 + 98 0.0000 0.284273 7.7355 + 99 0.0000 0.308922 8.4062 + 100 0.0000 0.320095 8.7102 + 101 0.0000 0.324565 8.8319 + 102 0.0000 0.329365 8.9625 + 103 0.0000 0.337109 9.1732 + 104 0.0000 0.347523 9.4566 + 105 0.0000 0.349825 9.5192 + 106 0.0000 0.356254 9.6942 + 107 0.0000 0.370732 10.0881 + 108 0.0000 0.378166 10.2904 + 109 0.0000 0.388710 10.5773 + 110 0.0000 0.390577 10.6281 + 111 0.0000 0.400563 10.8999 + 112 0.0000 0.403505 10.9799 + 113 0.0000 0.412324 11.2199 + 114 0.0000 0.416241 11.3265 + 115 0.0000 0.418027 11.3751 + 116 0.0000 0.425205 11.5704 + 117 0.0000 0.431232 11.7344 + 118 0.0000 0.438747 11.9389 + 119 0.0000 0.443788 12.0761 + 120 0.0000 0.448710 12.2100 + 121 0.0000 0.449471 12.2307 + 122 0.0000 0.453684 12.3454 + 123 0.0000 0.456999 12.4356 + 124 0.0000 0.470067 12.7912 + 125 0.0000 0.472813 12.8659 + 126 0.0000 0.474267 12.9055 + 127 0.0000 0.477134 12.9835 + 128 0.0000 0.486184 13.2297 + 129 0.0000 0.494510 13.4563 + 130 0.0000 0.496849 13.5200 + 131 0.0000 0.499231 13.5848 + 132 0.0000 0.501420 13.6443 + 133 0.0000 0.512994 13.9593 + 134 0.0000 0.515068 14.0157 + 135 0.0000 0.517589 14.0843 + 136 0.0000 0.525326 14.2948 + 137 0.0000 0.529975 14.4213 + 138 0.0000 0.539666 14.6851 + 139 0.0000 0.548193 14.9171 + 140 0.0000 0.556371 15.1396 + 141 0.0000 0.560195 15.2437 + 142 0.0000 0.564753 15.3677 + 143 0.0000 0.570843 15.5334 + 144 0.0000 0.582757 15.8576 + 145 0.0000 0.588650 16.0180 + 146 0.0000 0.601883 16.3781 + 147 0.0000 0.606936 16.5156 + 148 0.0000 0.611755 16.6467 + 149 0.0000 0.621732 16.9182 + 150 0.0000 0.623713 16.9721 + 151 0.0000 0.636689 17.3252 + 152 0.0000 0.643278 17.5045 + 153 0.0000 0.649740 17.6803 + 154 0.0000 0.659056 17.9338 + 155 0.0000 0.668533 18.1917 + 156 0.0000 0.678190 18.4545 + 157 0.0000 0.683237 18.5918 + 158 0.0000 0.689424 18.7602 + 159 0.0000 0.709754 19.3134 + 160 0.0000 0.732091 19.9212 + 161 0.0000 0.739757 20.1298 + 162 0.0000 0.746304 20.3080 + 163 0.0000 0.756012 20.5721 + 164 0.0000 0.769442 20.9376 + 165 0.0000 0.791506 21.5380 + 166 0.0000 0.797528 21.7018 + 167 0.0000 0.811560 22.0837 + 168 0.0000 0.827037 22.5048 + 169 0.0000 0.829621 22.5751 + 170 0.0000 0.845550 23.0086 + 171 0.0000 0.872662 23.7463 + 172 0.0000 0.882438 24.0124 + 173 0.0000 0.888363 24.1736 + 174 0.0000 0.891045 24.2466 + 175 0.0000 0.902066 24.5465 + 176 0.0000 0.905098 24.6290 + 177 0.0000 0.911020 24.7901 + 178 0.0000 0.921254 25.0686 + 179 0.0000 0.923454 25.1285 + 180 0.0000 0.933119 25.3915 + 181 0.0000 0.947905 25.7938 + 182 0.0000 0.955447 25.9990 + 183 0.0000 0.962650 26.1950 + 184 0.0000 0.985678 26.8217 + 185 0.0000 0.989734 26.9320 + 186 0.0000 0.994694 27.0670 + 187 0.0000 1.004432 27.3320 + 188 0.0000 1.009027 27.4570 + 189 0.0000 1.016397 27.6576 + 190 0.0000 1.029555 28.0156 + 191 0.0000 1.034410 28.1477 + 192 0.0000 1.047823 28.5127 + 193 0.0000 1.055436 28.7199 + 194 0.0000 1.072221 29.1766 + 195 0.0000 1.076301 29.2876 + 196 0.0000 1.086723 29.5712 + 197 0.0000 1.117198 30.4005 + 198 0.0000 1.122510 30.5451 + 199 0.0000 1.152444 31.3596 + 200 0.0000 1.162075 31.6217 + 201 0.0000 1.173368 31.9290 + 202 0.0000 1.210740 32.9459 + 203 0.0000 1.219933 33.1961 + 204 0.0000 1.234593 33.5950 + 205 0.0000 1.244819 33.8733 + 206 0.0000 1.256279 34.1851 + 207 0.0000 1.268629 34.5212 + 208 0.0000 1.289575 35.0911 + 209 0.0000 1.298957 35.3464 + 210 0.0000 1.306230 35.5443 + 211 0.0000 1.324072 36.0298 + 212 0.0000 1.347621 36.6706 + 213 0.0000 1.367733 37.2179 + 214 0.0000 1.370931 37.3049 + 215 0.0000 1.390761 37.8445 + 216 0.0000 1.405383 38.2424 + 217 0.0000 1.427592 38.8468 + 218 0.0000 1.428364 38.8678 + 219 0.0000 1.441406 39.2227 + 220 0.0000 1.451646 39.5013 + 221 0.0000 1.457877 39.6709 + 222 0.0000 1.473861 40.1058 + 223 0.0000 1.481374 40.3102 + 224 0.0000 1.488099 40.4932 + 225 0.0000 1.494416 40.6651 + 226 0.0000 1.499299 40.7980 + 227 0.0000 1.508496 41.0483 + 228 0.0000 1.512779 41.1648 + 229 0.0000 1.525871 41.5211 + 230 0.0000 1.528057 41.5805 + 231 0.0000 1.533816 41.7373 + 232 0.0000 1.548190 42.1284 + 233 0.0000 1.553349 42.2688 + 234 0.0000 1.565755 42.6064 + 235 0.0000 1.572909 42.8010 + 236 0.0000 1.573964 42.8297 + 237 0.0000 1.590527 43.2805 + 238 0.0000 1.596107 43.4323 + 239 0.0000 1.602608 43.6092 + 240 0.0000 1.603937 43.6453 + 241 0.0000 1.610785 43.8317 + 242 0.0000 1.623261 44.1712 + 243 0.0000 1.629786 44.3487 + 244 0.0000 1.636064 44.5196 + 245 0.0000 1.638662 44.5903 + 246 0.0000 1.653503 44.9941 + 247 0.0000 1.657532 45.1037 + 248 0.0000 1.668386 45.3991 + 249 0.0000 1.678174 45.6654 + 250 0.0000 1.700186 46.2644 + 251 0.0000 1.716707 46.7140 + 252 0.0000 1.728798 47.0430 + 253 0.0000 1.731407 47.1140 + 254 0.0000 1.741487 47.3883 + 255 0.0000 1.755522 47.7702 + 256 0.0000 1.763515 47.9877 + 257 0.0000 1.786245 48.6062 + 258 0.0000 1.793154 48.7942 + 259 0.0000 1.810582 49.2684 + 260 0.0000 1.825340 49.6700 + 261 0.0000 1.827225 49.7213 + 262 0.0000 1.838182 50.0195 + 263 0.0000 1.861325 50.6492 + 264 0.0000 1.871645 50.9300 + 265 0.0000 1.875697 51.0403 + 266 0.0000 1.908251 51.9262 + 267 0.0000 1.920812 52.2680 + 268 0.0000 1.937955 52.7344 + 269 0.0000 1.946183 52.9583 + 270 0.0000 1.967863 53.5483 + 271 0.0000 1.972969 53.6872 + 272 0.0000 1.980140 53.8823 + 273 0.0000 1.988536 54.1108 + 274 0.0000 2.002727 54.4970 + 275 0.0000 2.006904 54.6106 + 276 0.0000 2.031813 55.2884 + 277 0.0000 2.054542 55.9069 + 278 0.0000 2.060923 56.0806 + 279 0.0000 2.067246 56.2526 + 280 0.0000 2.074530 56.4508 + 281 0.0000 2.086208 56.7686 + 282 0.0000 2.097847 57.0853 + 283 0.0000 2.104296 57.2608 + 284 0.0000 2.119074 57.6629 + 285 0.0000 2.127069 57.8805 + 286 0.0000 2.129237 57.9395 + 287 0.0000 2.146610 58.4122 + 288 0.0000 2.172550 59.1181 + 289 0.0000 2.187852 59.5345 + 290 0.0000 2.200011 59.8653 + 291 0.0000 2.212721 60.2112 + 292 0.0000 2.218880 60.3788 + 293 0.0000 2.236150 60.8487 + 294 0.0000 2.247104 61.1468 + 295 0.0000 2.251478 61.2658 + 296 0.0000 2.272239 61.8308 + 297 0.0000 2.281631 62.0863 + 298 0.0000 2.285023 62.1786 + 299 0.0000 2.311717 62.9050 + 300 0.0000 2.320583 63.1463 + 301 0.0000 2.325835 63.2892 + 302 0.0000 2.332606 63.4734 + 303 0.0000 2.343454 63.7686 + 304 0.0000 2.363356 64.3102 + 305 0.0000 2.375609 64.6436 + 306 0.0000 2.387113 64.9567 + 307 0.0000 2.393859 65.1402 + 308 0.0000 2.406821 65.4929 + 309 0.0000 2.414186 65.6934 + 310 0.0000 2.430300 66.1318 + 311 0.0000 2.437137 66.3179 + 312 0.0000 2.448403 66.6244 + 313 0.0000 2.455427 66.8156 + 314 0.0000 2.470111 67.2151 + 315 0.0000 2.474082 67.3232 + 316 0.0000 2.492630 67.8279 + 317 0.0000 2.504694 68.1562 + 318 0.0000 2.515743 68.4569 + 319 0.0000 2.531187 68.8771 + 320 0.0000 2.546162 69.2846 + 321 0.0000 2.555982 69.5518 + 322 0.0000 2.580613 70.2220 + 323 0.0000 2.611910 71.0737 + 324 0.0000 2.624513 71.4166 + 325 0.0000 2.641201 71.8707 + 326 0.0000 2.649577 72.0987 + 327 0.0000 2.660012 72.3826 + 328 0.0000 2.661961 72.4356 + 329 0.0000 2.672842 72.7317 + 330 0.0000 2.675981 72.8171 + 331 0.0000 2.690640 73.2160 + 332 0.0000 2.697018 73.3896 + 333 0.0000 2.711458 73.7825 + 334 0.0000 2.716797 73.9278 + 335 0.0000 2.731555 74.3294 + 336 0.0000 2.734155 74.4001 + 337 0.0000 2.755626 74.9844 + 338 0.0000 2.769536 75.3629 + 339 0.0000 2.772039 75.4310 + 340 0.0000 2.776441 75.5508 + 341 0.0000 2.784344 75.7658 + 342 0.0000 2.806358 76.3649 + 343 0.0000 2.810164 76.4684 + 344 0.0000 2.821470 76.7761 + 345 0.0000 2.830668 77.0264 + 346 0.0000 2.841797 77.3292 + 347 0.0000 2.845433 77.4282 + 348 0.0000 2.858411 77.7813 + 349 0.0000 2.885385 78.5153 + 350 0.0000 2.907926 79.1287 + 351 0.0000 2.911758 79.2330 + 352 0.0000 2.928264 79.6821 + 353 0.0000 2.937548 79.9347 + 354 0.0000 2.951193 80.3060 + 355 0.0000 2.953057 80.3568 + 356 0.0000 2.961642 80.5904 + 357 0.0000 2.966307 80.7173 + 358 0.0000 2.986614 81.2699 + 359 0.0000 2.989804 81.3567 + 360 0.0000 3.003871 81.7395 + 361 0.0000 3.008520 81.8660 + 362 0.0000 3.031663 82.4957 + 363 0.0000 3.043487 82.8175 + 364 0.0000 3.046977 82.9125 + 365 0.0000 3.052605 83.0656 + 366 0.0000 3.060048 83.2681 + 367 0.0000 3.066782 83.4514 + 368 0.0000 3.086688 83.9931 + 369 0.0000 3.094551 84.2070 + 370 0.0000 3.098187 84.3060 + 371 0.0000 3.109711 84.6195 + 372 0.0000 3.116497 84.8042 + 373 0.0000 3.122676 84.9723 + 374 0.0000 3.131974 85.2253 + 375 0.0000 3.142669 85.5164 + 376 0.0000 3.157775 85.9274 + 377 0.0000 3.178336 86.4869 + 378 0.0000 3.191669 86.8497 + 379 0.0000 3.194849 86.9363 + 380 0.0000 3.211792 87.3973 + 381 0.0000 3.215940 87.5102 + 382 0.0000 3.221719 87.6674 + 383 0.0000 3.228065 87.8401 + 384 0.0000 3.250301 88.4452 + 385 0.0000 3.254716 88.5653 + 386 0.0000 3.271085 89.0108 + 387 0.0000 3.278539 89.2136 + 388 0.0000 3.296126 89.6921 + 389 0.0000 3.314409 90.1897 + 390 0.0000 3.325055 90.4793 + 391 0.0000 3.331602 90.6575 + 392 0.0000 3.336620 90.7940 + 393 0.0000 3.344621 91.0118 + 394 0.0000 3.361404 91.4685 + 395 0.0000 3.363702 91.5310 + 396 0.0000 3.374550 91.8262 + 397 0.0000 3.383790 92.0776 + 398 0.0000 3.395453 92.3950 + 399 0.0000 3.400752 92.5392 + 400 0.0000 3.410082 92.7930 + 401 0.0000 3.423342 93.1539 + 402 0.0000 3.430571 93.3506 + 403 0.0000 3.438110 93.5557 + 404 0.0000 3.449364 93.8620 + 405 0.0000 3.453070 93.9628 + 406 0.0000 3.462450 94.2180 + 407 0.0000 3.475474 94.5724 + 408 0.0000 3.487023 94.8867 + 409 0.0000 3.498852 95.2086 + 410 0.0000 3.511421 95.5506 + 411 0.0000 3.523977 95.8923 + 412 0.0000 3.537995 96.2737 + 413 0.0000 3.556503 96.7774 + 414 0.0000 3.558099 96.8208 + 415 0.0000 3.569218 97.1233 + 416 0.0000 3.588497 97.6480 + 417 0.0000 3.591226 97.7222 + 418 0.0000 3.598284 97.9143 + 419 0.0000 3.633000 98.8590 + 420 0.0000 3.638701 99.0141 + 421 0.0000 3.642089 99.1063 + 422 0.0000 3.673035 99.9484 + 423 0.0000 3.674934 100.0000 + 424 0.0000 3.701608 100.7259 + 425 0.0000 3.716926 101.1427 + 426 0.0000 3.726204 101.3952 + 427 0.0000 3.729153 101.4754 + 428 0.0000 3.749507 102.0293 + 429 0.0000 3.759392 102.2983 + 430 0.0000 3.785055 102.9966 + 431 0.0000 3.800818 103.4255 + 432 0.0000 3.830712 104.2390 + 433 0.0000 3.833073 104.3032 + 434 0.0000 3.856597 104.9433 + 435 0.0000 3.866683 105.2178 + 436 0.0000 3.878753 105.5462 + 437 0.0000 3.890421 105.8637 + 438 0.0000 3.915168 106.5371 + 439 0.0000 3.920113 106.6717 + 440 0.0000 3.927197 106.8645 + 441 0.0000 3.941282 107.2477 + 442 0.0000 3.958683 107.7213 + 443 0.0000 3.995620 108.7263 + 444 0.0000 4.002006 108.9001 + 445 0.0000 4.019751 109.3830 + 446 0.0000 4.056255 110.3763 + 447 0.0000 4.064182 110.5920 + 448 0.0000 4.090353 111.3042 + 449 0.0000 4.098684 111.5309 + 450 0.0000 4.137373 112.5837 + 451 0.0000 4.196358 114.1887 + 452 0.0000 4.219478 114.8178 + 453 0.0000 4.237963 115.3208 + 454 0.0000 4.252161 115.7072 + 455 0.0000 4.266735 116.1038 + 456 0.0000 4.275939 116.3542 + 457 0.0000 4.318369 117.5088 + 458 0.0000 4.335397 117.9722 + 459 0.0000 4.394390 119.5774 + 460 0.0000 4.410489 120.0155 + 461 0.0000 4.445105 120.9574 + 462 0.0000 4.465599 121.5151 + 463 0.0000 4.479197 121.8851 + 464 0.0000 4.519677 122.9867 + 465 0.0000 4.532353 123.3316 + 466 0.0000 4.578260 124.5808 + 467 0.0000 4.590369 124.9103 + 468 0.0000 4.595603 125.0527 + 469 0.0000 4.622270 125.7784 + 470 0.0000 4.624868 125.8490 + 471 0.0000 4.652110 126.5903 + 472 0.0000 4.659951 126.8037 + 473 0.0000 4.693902 127.7276 + 474 0.0000 4.702859 127.9713 + 475 0.0000 4.727587 128.6442 + 476 0.0000 4.749211 129.2326 + 477 0.0000 4.763600 129.6241 + 478 0.0000 4.770116 129.8015 + 479 0.0000 4.795317 130.4872 + 480 0.0000 4.811669 130.9322 + 481 0.0000 4.831534 131.4727 + 482 0.0000 4.835219 131.5730 + 483 0.0000 4.847236 131.9000 + 484 0.0000 4.863867 132.3526 + 485 0.0000 4.881060 132.8204 + 486 0.0000 4.894370 133.1826 + 487 0.0000 4.954017 134.8057 + 488 0.0000 4.960880 134.9924 + 489 0.0000 5.040421 137.1568 + 490 0.0000 5.054813 137.5484 + 491 0.0000 5.066979 137.8795 + 492 0.0000 5.095469 138.6548 + 493 0.0000 5.116027 139.2142 + 494 0.0000 5.133574 139.6917 + 495 0.0000 5.150076 140.1407 + 496 0.0000 5.167282 140.6089 + 497 0.0000 5.190176 141.2319 + 498 0.0000 5.207011 141.6900 + 499 0.0000 5.221085 142.0729 + 500 0.0000 5.251494 142.9004 + 501 0.0000 5.282593 143.7467 + 502 0.0000 5.285369 143.8222 + 503 0.0000 5.299110 144.1961 + 504 0.0000 5.306812 144.4057 + 505 0.0000 5.324604 144.8898 + 506 0.0000 5.327059 144.9566 + 507 0.0000 5.347010 145.4996 + 508 0.0000 5.367187 146.0486 + 509 0.0000 5.409525 147.2007 + 510 0.0000 5.461143 148.6052 + 511 0.0000 5.490105 149.3934 + 512 0.0000 5.516492 150.1114 + 513 0.0000 5.535140 150.6188 + 514 0.0000 5.542821 150.8278 + 515 0.0000 5.567796 151.5074 + 516 0.0000 5.600821 152.4061 + 517 0.0000 5.603225 152.4715 + 518 0.0000 5.623068 153.0115 + 519 0.0000 5.678769 154.5272 + 520 0.0000 5.696084 154.9983 + 521 0.0000 5.707480 155.3084 + 522 0.0000 5.799761 157.8195 + 523 0.0000 5.861418 159.4973 + 524 0.0000 5.869905 159.7282 + 525 0.0000 5.956432 162.0828 + 526 0.0000 5.978317 162.6783 + 527 0.0000 6.010899 163.5649 + 528 0.0000 6.105253 166.1324 + 529 0.0000 6.129878 166.8025 + 530 0.0000 6.140572 167.0934 + 531 0.0000 6.323210 172.0633 + 532 0.0000 6.338567 172.4812 + 533 0.0000 6.341336 172.5565 + 534 0.0000 6.433789 175.0723 + 535 0.0000 6.434959 175.1041 + 536 0.0000 6.448175 175.4638 + 537 0.0000 6.569126 178.7550 + 538 0.0000 6.579387 179.0342 + 539 0.0000 6.598926 179.5659 + 540 0.0000 6.738247 183.3570 + 541 0.0000 6.749756 183.6702 + 542 0.0000 6.753511 183.7724 + 543 0.0000 6.835363 185.9997 + 544 0.0000 6.840813 186.1480 + 545 0.0000 6.848522 186.3578 + 546 0.0000 7.077928 192.6002 + 547 0.0000 7.081562 192.6991 + 548 0.0000 7.088815 192.8964 + 549 0.0000 7.107671 193.4096 + 550 0.0000 7.112671 193.5456 + 551 0.0000 7.124636 193.8712 + 552 0.0000 22.702805 617.7747 + 553 0.0000 22.714039 618.0804 + 554 0.0000 22.730455 618.5271 + 555 0.0000 22.812180 620.7510 + 556 0.0000 22.841404 621.5462 + 557 0.0000 22.846866 621.6948 + 558 0.0000 23.497492 639.3993 + 559 0.0000 23.528997 640.2566 + 560 0.0000 23.544927 640.6900 + 561 0.0000 32.409523 881.9080 + 562 0.0000 32.541673 885.5039 + 563 0.0000 32.584788 886.6772 + 564 0.0000 43.894886 1194.4406 + 565 0.0000 43.952887 1196.0189 + 566 0.0000 43.982081 1196.8133 + + ******************************** + * MULLIKEN POPULATION ANALYSIS * + ******************************** + +----------------------- +MULLIKEN ATOMIC CHARGES +----------------------- + 0 C : -0.348469 + 1 H : 0.122328 + 2 H : 0.137492 + 3 H : 0.136446 + 4 C : 0.311277 + 5 O : -0.540969 + 6 N : -0.267351 + 7 H : 0.248598 + 8 C : 0.132275 + 9 H : 0.094658 + 10 C : -0.373366 + 11 H : 0.127545 + 12 H : 0.132978 + 13 H : 0.122744 + 14 C : 0.290075 + 15 O : -0.523153 + 16 N : -0.252629 + 17 H : 0.248543 + 18 C : 0.116997 + 19 H : 0.099365 + 20 C : -0.364603 + 21 H : 0.129045 + 22 H : 0.132895 + 23 H : 0.122903 + 24 C : 0.284536 + 25 O : -0.525665 + 26 N : -0.250841 + 27 H : 0.264279 + 28 C : -0.212366 + 29 H : 0.138652 + 30 H : 0.132642 + 31 H : 0.133140 +Sum of atomic charges: -0.0000000 + +-------------------------------- +MULLIKEN REDUCED ORBITAL CHARGES +-------------------------------- + 0 C s : 3.270706 s : 3.270706 + pz : 1.059726 p : 3.040685 + px : 0.900192 + py : 1.080768 + dz2 : 0.003880 d : 0.033697 + dxz : 0.010208 + dyz : 0.004691 + dx2y2 : 0.005834 + dxy : 0.009084 + f0 : 0.000078 f : 0.003381 + f+1 : 0.000490 + f-1 : 0.000446 + f+2 : 0.000948 + f-2 : 0.000225 + f+3 : 0.000556 + f-3 : 0.000638 + 1 H s : 0.852955 s : 0.852955 + pz : 0.006667 p : 0.024717 + px : 0.007020 + py : 0.011030 + 2 H s : 0.837937 s : 0.837937 + pz : 0.009794 p : 0.024570 + px : 0.008196 + py : 0.006581 + 3 H s : 0.839299 s : 0.839299 + pz : 0.009692 p : 0.024256 + px : 0.005762 + py : 0.008801 + 4 C s : 3.065340 s : 3.065340 + pz : 0.752526 p : 2.358788 + px : 0.851435 + py : 0.754826 + dz2 : 0.019350 d : 0.241764 + dxz : 0.031082 + dyz : 0.058276 + dx2y2 : 0.071853 + dxy : 0.061203 + f0 : 0.001976 f : 0.022831 + f+1 : 0.001572 + f-1 : 0.002324 + f+2 : 0.002382 + f-2 : 0.003783 + f+3 : 0.003216 + f-3 : 0.007578 + 5 O s : 3.803747 s : 3.803747 + pz : 1.506986 p : 4.707283 + px : 1.673467 + py : 1.526829 + dz2 : 0.004008 d : 0.028210 + dxz : 0.002784 + dyz : 0.006975 + dx2y2 : 0.006987 + dxy : 0.007456 + f0 : 0.000109 f : 0.001730 + f+1 : 0.000093 + f-1 : 0.000282 + f+2 : 0.000190 + f-2 : 0.000294 + f+3 : 0.000354 + f-3 : 0.000407 + 6 N s : 3.441262 s : 3.441262 + pz : 1.531739 p : 3.764251 + px : 1.127492 + py : 1.105020 + dz2 : 0.004765 d : 0.057382 + dxz : 0.010219 + dyz : 0.008963 + dx2y2 : 0.015508 + dxy : 0.017927 + f0 : 0.000805 f : 0.004456 + f+1 : 0.000519 + f-1 : 0.000401 + f+2 : 0.000560 + f-2 : 0.000471 + f+3 : 0.000673 + f-3 : 0.001026 + 7 H s : 0.712421 s : 0.712421 + pz : 0.012676 p : 0.038981 + px : 0.009780 + py : 0.016525 + 8 C s : 3.094318 s : 3.094318 + pz : 0.889934 p : 2.626883 + px : 0.753725 + py : 0.983223 + dz2 : 0.029534 d : 0.136015 + dxz : 0.042479 + dyz : 0.021338 + dx2y2 : 0.022341 + dxy : 0.020324 + f0 : 0.001647 f : 0.010508 + f+1 : 0.002173 + f-1 : 0.001309 + f+2 : 0.001780 + f-2 : 0.000828 + f+3 : 0.001661 + f-3 : 0.001110 + 9 H s : 0.878372 s : 0.878372 + pz : 0.005951 p : 0.026971 + px : 0.006163 + py : 0.014857 + 10 C s : 3.297070 s : 3.297070 + pz : 0.904995 p : 3.032963 + px : 1.072585 + py : 1.055382 + dz2 : 0.008240 d : 0.039723 + dxz : 0.010883 + dyz : 0.010536 + dx2y2 : 0.006262 + dxy : 0.003802 + f0 : 0.000969 f : 0.003610 + f+1 : 0.000595 + f-1 : 0.000850 + f+2 : 0.000226 + f-2 : 0.000251 + f+3 : 0.000700 + f-3 : 0.000019 + 11 H s : 0.848238 s : 0.848238 + pz : 0.006619 p : 0.024216 + px : 0.011725 + py : 0.005872 + 12 H s : 0.842734 s : 0.842734 + pz : 0.008522 p : 0.024287 + px : 0.007456 + py : 0.008309 + 13 H s : 0.853232 s : 0.853232 + pz : 0.005688 p : 0.024025 + px : 0.006856 + py : 0.011481 + 14 C s : 3.073373 s : 3.073373 + pz : 0.772508 p : 2.369569 + px : 0.820527 + py : 0.776534 + dz2 : 0.029857 d : 0.244107 + dxz : 0.034626 + dyz : 0.053456 + dx2y2 : 0.069220 + dxy : 0.056949 + f0 : 0.001554 f : 0.022877 + f+1 : 0.002675 + f-1 : 0.003002 + f+2 : 0.003913 + f-2 : 0.002566 + f+3 : 0.004461 + f-3 : 0.004706 + 15 O s : 3.811097 s : 3.811097 + pz : 1.591293 p : 4.681685 + px : 1.710322 + py : 1.380069 + dz2 : 0.003767 d : 0.028633 + dxz : 0.002410 + dyz : 0.007287 + dx2y2 : 0.007823 + dxy : 0.007346 + f0 : 0.000138 f : 0.001738 + f+1 : 0.000067 + f-1 : 0.000310 + f+2 : 0.000220 + f-2 : 0.000239 + f+3 : 0.000343 + f-3 : 0.000420 + 16 N s : 3.440922 s : 3.440922 + pz : 1.371779 p : 3.748828 + px : 1.183664 + py : 1.193385 + dz2 : 0.011987 d : 0.058408 + dxz : 0.011576 + dyz : 0.006872 + dx2y2 : 0.013982 + dxy : 0.013992 + f0 : 0.000580 f : 0.004471 + f+1 : 0.000716 + f-1 : 0.000400 + f+2 : 0.000639 + f-2 : 0.000743 + f+3 : 0.000847 + f-3 : 0.000546 + 17 H s : 0.712456 s : 0.712456 + pz : 0.010735 p : 0.039000 + px : 0.008992 + py : 0.019273 + 18 C s : 3.102899 s : 3.102899 + pz : 0.841997 p : 2.631721 + px : 0.853346 + py : 0.936378 + dz2 : 0.040065 d : 0.137752 + dxz : 0.031858 + dyz : 0.021331 + dx2y2 : 0.024802 + dxy : 0.019696 + f0 : 0.001817 f : 0.010632 + f+1 : 0.001863 + f-1 : 0.001829 + f+2 : 0.001346 + f-2 : 0.001329 + f+3 : 0.001232 + f-3 : 0.001216 + 19 H s : 0.873954 s : 0.873954 + pz : 0.005549 p : 0.026681 + px : 0.007616 + py : 0.013516 + 20 C s : 3.291127 s : 3.291127 + pz : 0.904758 p : 3.030645 + px : 1.074383 + py : 1.051504 + dz2 : 0.008500 d : 0.039253 + dxz : 0.010906 + dyz : 0.009410 + dx2y2 : 0.008206 + dxy : 0.002231 + f0 : 0.000862 f : 0.003579 + f+1 : 0.000696 + f-1 : 0.000878 + f+2 : 0.000257 + f-2 : 0.000162 + f+3 : 0.000569 + f-3 : 0.000156 + 21 H s : 0.846657 s : 0.846657 + pz : 0.009199 p : 0.024298 + px : 0.007486 + py : 0.007614 + 22 H s : 0.842885 s : 0.842885 + pz : 0.006003 p : 0.024220 + px : 0.012346 + py : 0.005871 + 23 H s : 0.852946 s : 0.852946 + pz : 0.005704 p : 0.024151 + px : 0.006334 + py : 0.012113 + 24 C s : 3.082687 s : 3.082687 + pz : 0.765628 p : 2.373553 + px : 0.845369 + py : 0.762556 + dz2 : 0.012943 d : 0.236357 + dxz : 0.024205 + dyz : 0.062783 + dx2y2 : 0.072302 + dxy : 0.064125 + f0 : 0.002253 f : 0.022867 + f+1 : 0.001382 + f-1 : 0.001969 + f+2 : 0.001635 + f-2 : 0.003752 + f+3 : 0.003329 + f-3 : 0.008547 + 25 O s : 3.804803 s : 3.804803 + pz : 1.511933 p : 4.690659 + px : 1.685519 + py : 1.493208 + dz2 : 0.003314 d : 0.028470 + dxz : 0.002628 + dyz : 0.007101 + dx2y2 : 0.007501 + dxy : 0.007926 + f0 : 0.000142 f : 0.001734 + f+1 : 0.000075 + f-1 : 0.000222 + f+2 : 0.000154 + f-2 : 0.000288 + f+3 : 0.000392 + f-3 : 0.000461 + 26 N s : 3.431861 s : 3.431861 + pz : 1.532849 p : 3.755578 + px : 1.123258 + py : 1.099470 + dz2 : 0.005144 d : 0.058886 + dxz : 0.012028 + dyz : 0.006989 + dx2y2 : 0.015977 + dxy : 0.018749 + f0 : 0.000801 f : 0.004516 + f+1 : 0.000593 + f-1 : 0.000440 + f+2 : 0.000515 + f-2 : 0.000396 + f+3 : 0.000721 + f-3 : 0.001049 + 27 H s : 0.697516 s : 0.697516 + pz : 0.011904 p : 0.038205 + px : 0.009351 + py : 0.016950 + 28 C s : 3.226182 s : 3.226182 + pz : 1.062993 p : 2.920206 + px : 0.750973 + py : 1.106239 + dz2 : 0.009901 d : 0.059952 + dxz : 0.021465 + dyz : 0.003887 + dx2y2 : 0.011390 + dxy : 0.013310 + f0 : 0.000862 f : 0.006026 + f+1 : 0.000953 + f-1 : 0.000644 + f+2 : 0.001064 + f-2 : 0.000156 + f+3 : 0.001357 + f-3 : 0.000991 + 29 H s : 0.837772 s : 0.837772 + pz : 0.005821 p : 0.023576 + px : 0.005894 + py : 0.011861 + 30 H s : 0.843611 s : 0.843611 + pz : 0.008517 p : 0.023747 + px : 0.006949 + py : 0.008281 + 31 H s : 0.843207 s : 0.843207 + pz : 0.011933 p : 0.023652 + px : 0.004882 + py : 0.006838 + + + ******************************* + * LOEWDIN POPULATION ANALYSIS * + ******************************* + +---------------------- +LOEWDIN ATOMIC CHARGES +---------------------- + 0 C : -0.214098 + 1 H : 0.110076 + 2 H : 0.115610 + 3 H : 0.122215 + 4 C : -0.487383 + 5 O : -0.041785 + 6 N : 0.207626 + 7 H : 0.200554 + 8 C : -0.209377 + 9 H : 0.136853 + 10 C : -0.220405 + 11 H : 0.108777 + 12 H : 0.109464 + 13 H : 0.111513 + 14 C : -0.448578 + 15 O : -0.016556 + 16 N : 0.217494 + 17 H : 0.203313 + 18 C : -0.216951 + 19 H : 0.141375 + 20 C : -0.218807 + 21 H : 0.108405 + 22 H : 0.110394 + 23 H : 0.110858 + 24 C : -0.455815 + 25 O : -0.026025 + 26 N : 0.166439 + 27 H : 0.204962 + 28 C : -0.243109 + 29 H : 0.106537 + 30 H : 0.102526 + 31 H : 0.103896 + +------------------------------- +LOEWDIN REDUCED ORBITAL CHARGES +------------------------------- + 0 C s : 2.777255 s : 2.777255 + pz : 1.083202 p : 3.187748 + px : 1.019862 + py : 1.084684 + dz2 : 0.026429 d : 0.222598 + dxz : 0.054894 + dyz : 0.041549 + dx2y2 : 0.055768 + dxy : 0.043957 + f0 : 0.002450 f : 0.026497 + f+1 : 0.004871 + f-1 : 0.002896 + f+2 : 0.003976 + f-2 : 0.002451 + f+3 : 0.004941 + f-3 : 0.004911 + 1 H s : 0.811697 s : 0.811697 + pz : 0.022121 p : 0.078227 + px : 0.020749 + py : 0.035356 + 2 H s : 0.805829 s : 0.805829 + pz : 0.032201 p : 0.078561 + px : 0.024185 + py : 0.022176 + 3 H s : 0.802561 s : 0.802561 + pz : 0.029683 p : 0.075224 + px : 0.017799 + py : 0.027742 + 4 C s : 2.730338 s : 2.730338 + pz : 0.762786 p : 2.694922 + px : 0.976462 + py : 0.955674 + dz2 : 0.084955 d : 0.917783 + dxz : 0.104322 + dyz : 0.200526 + dx2y2 : 0.287521 + dxy : 0.240458 + f0 : 0.009592 f : 0.144340 + f+1 : 0.008579 + f-1 : 0.013400 + f+2 : 0.014405 + f-2 : 0.026675 + f+3 : 0.020542 + f-3 : 0.051149 + 5 O s : 3.400596 s : 3.400596 + pz : 1.437094 p : 4.570676 + px : 1.596781 + py : 1.536801 + dz2 : 0.007323 d : 0.064708 + dxz : 0.006308 + dyz : 0.013285 + dx2y2 : 0.018505 + dxy : 0.019286 + f0 : 0.000469 f : 0.005805 + f+1 : 0.000207 + f-1 : 0.000683 + f+2 : 0.000674 + f-2 : 0.000997 + f+3 : 0.001285 + f-3 : 0.001489 + 6 N s : 2.901572 s : 2.901572 + pz : 1.335900 p : 3.646129 + px : 1.130454 + py : 1.179775 + dz2 : 0.017264 d : 0.227580 + dxz : 0.032665 + dyz : 0.028215 + dx2y2 : 0.070169 + dxy : 0.079267 + f0 : 0.001752 f : 0.017094 + f+1 : 0.001832 + f-1 : 0.001532 + f+2 : 0.002246 + f-2 : 0.001604 + f+3 : 0.002649 + f-3 : 0.005479 + 7 H s : 0.689942 s : 0.689942 + pz : 0.036488 p : 0.109503 + px : 0.028076 + py : 0.044939 + 8 C s : 2.716178 s : 2.716178 + pz : 0.995088 p : 2.890160 + px : 0.857635 + py : 1.037437 + dz2 : 0.120980 d : 0.535342 + dxz : 0.133604 + dyz : 0.082979 + dx2y2 : 0.108172 + dxy : 0.089607 + f0 : 0.009082 f : 0.067697 + f+1 : 0.013999 + f-1 : 0.007441 + f+2 : 0.011578 + f-2 : 0.007696 + f+3 : 0.010228 + f-3 : 0.007673 + 9 H s : 0.784398 s : 0.784398 + pz : 0.019316 p : 0.078748 + px : 0.018096 + py : 0.041337 + 10 C s : 2.776966 s : 2.776966 + pz : 1.002090 p : 3.166362 + px : 1.083841 + py : 1.080431 + dz2 : 0.062698 d : 0.249659 + dxz : 0.055774 + dyz : 0.058820 + dx2y2 : 0.043049 + dxy : 0.029318 + f0 : 0.005784 f : 0.027417 + f+1 : 0.004568 + f-1 : 0.005522 + f+2 : 0.002881 + f-2 : 0.003932 + f+3 : 0.004171 + f-3 : 0.000560 + 11 H s : 0.813117 s : 0.813117 + pz : 0.020341 p : 0.078106 + px : 0.037466 + py : 0.020299 + 12 H s : 0.812476 s : 0.812476 + pz : 0.025565 p : 0.078059 + px : 0.024834 + py : 0.027660 + 13 H s : 0.812622 s : 0.812622 + pz : 0.018053 p : 0.075865 + px : 0.022699 + py : 0.035113 + 14 C s : 2.724065 s : 2.724065 + pz : 0.831000 p : 2.677330 + px : 0.918354 + py : 0.927975 + dz2 : 0.112134 d : 0.904496 + dxz : 0.137138 + dyz : 0.185417 + dx2y2 : 0.240857 + dxy : 0.228950 + f0 : 0.009996 f : 0.142688 + f+1 : 0.016622 + f-1 : 0.018497 + f+2 : 0.026539 + f-2 : 0.011690 + f+3 : 0.029345 + f-3 : 0.030000 + 15 O s : 3.397277 s : 3.397277 + pz : 1.495409 p : 4.547896 + px : 1.586255 + py : 1.466232 + dz2 : 0.007767 d : 0.065498 + dxz : 0.004184 + dyz : 0.016987 + dx2y2 : 0.018194 + dxy : 0.018366 + f0 : 0.000550 f : 0.005885 + f+1 : 0.000199 + f-1 : 0.000843 + f+2 : 0.000890 + f-2 : 0.000720 + f+3 : 0.001358 + f-3 : 0.001325 + 16 N s : 2.900007 s : 2.900007 + pz : 1.258045 p : 3.636874 + px : 1.207547 + py : 1.171282 + dz2 : 0.038306 d : 0.228562 + dxz : 0.046268 + dyz : 0.027337 + dx2y2 : 0.058082 + dxy : 0.058570 + f0 : 0.002167 f : 0.017063 + f+1 : 0.002150 + f-1 : 0.001602 + f+2 : 0.003215 + f-2 : 0.001793 + f+3 : 0.003150 + f-3 : 0.002985 + 17 H s : 0.687712 s : 0.687712 + pz : 0.031039 p : 0.108975 + px : 0.024749 + py : 0.053188 + 18 C s : 2.716167 s : 2.716167 + pz : 0.946576 p : 2.891952 + px : 0.956835 + py : 0.988541 + dz2 : 0.142066 d : 0.540252 + dxz : 0.111276 + dyz : 0.091121 + dx2y2 : 0.113368 + dxy : 0.082421 + f0 : 0.009699 f : 0.068580 + f+1 : 0.011626 + f-1 : 0.010854 + f+2 : 0.009981 + f-2 : 0.011229 + f+3 : 0.007749 + f-3 : 0.007443 + 19 H s : 0.781833 s : 0.781833 + pz : 0.017356 p : 0.076793 + px : 0.020971 + py : 0.038466 + 20 C s : 2.777152 s : 2.777152 + pz : 1.005776 p : 3.166485 + px : 1.079932 + py : 1.080777 + dz2 : 0.062409 d : 0.247891 + dxz : 0.054525 + dyz : 0.055912 + dx2y2 : 0.055484 + dxy : 0.019561 + f0 : 0.004680 f : 0.027279 + f+1 : 0.005360 + f-1 : 0.005705 + f+2 : 0.002107 + f-2 : 0.004621 + f+3 : 0.003510 + f-3 : 0.001296 + 21 H s : 0.813007 s : 0.813007 + pz : 0.027386 p : 0.078588 + px : 0.025317 + py : 0.025886 + 22 H s : 0.812156 s : 0.812156 + pz : 0.019024 p : 0.077450 + px : 0.038513 + py : 0.019913 + 23 H s : 0.812665 s : 0.812665 + pz : 0.018340 p : 0.076476 + px : 0.021139 + py : 0.036998 + 24 C s : 2.727183 s : 2.727183 + pz : 0.754790 p : 2.685403 + px : 0.969668 + py : 0.960946 + dz2 : 0.069008 d : 0.901441 + dxz : 0.086139 + dyz : 0.204027 + dx2y2 : 0.289753 + dxy : 0.252514 + f0 : 0.008757 f : 0.141787 + f+1 : 0.007213 + f-1 : 0.012551 + f+2 : 0.010028 + f-2 : 0.027651 + f+3 : 0.020578 + f-3 : 0.055009 + 25 O s : 3.401411 s : 3.401411 + pz : 1.426251 p : 4.554024 + px : 1.596019 + py : 1.531754 + dz2 : 0.007281 d : 0.064772 + dxz : 0.004790 + dyz : 0.012028 + dx2y2 : 0.019270 + dxy : 0.021402 + f0 : 0.000460 f : 0.005818 + f+1 : 0.000240 + f-1 : 0.000690 + f+2 : 0.000480 + f-2 : 0.000768 + f+3 : 0.001480 + f-3 : 0.001700 + 26 N s : 2.909819 s : 2.909819 + pz : 1.351073 p : 3.671160 + px : 1.155064 + py : 1.165023 + dz2 : 0.017826 d : 0.235373 + dxz : 0.036405 + dyz : 0.022756 + dx2y2 : 0.072011 + dxy : 0.086376 + f0 : 0.001629 f : 0.017209 + f+1 : 0.001933 + f-1 : 0.001670 + f+2 : 0.002153 + f-2 : 0.001529 + f+3 : 0.002659 + f-3 : 0.005636 + 27 H s : 0.687963 s : 0.687963 + pz : 0.034130 p : 0.107075 + px : 0.027394 + py : 0.045550 + 28 C s : 2.780262 s : 2.780262 + pz : 1.097595 p : 3.097758 + px : 0.888097 + py : 1.112066 + dz2 : 0.060196 d : 0.321557 + dxz : 0.090386 + dyz : 0.026157 + dx2y2 : 0.077143 + dxy : 0.067676 + f0 : 0.004771 f : 0.043532 + f+1 : 0.006833 + f-1 : 0.003544 + f+2 : 0.007713 + f-2 : 0.004525 + f+3 : 0.008437 + f-3 : 0.007709 + 29 H s : 0.817595 s : 0.817595 + pz : 0.020044 p : 0.075869 + px : 0.017469 + py : 0.038356 + 30 H s : 0.820893 s : 0.820893 + pz : 0.028671 p : 0.076581 + px : 0.020506 + py : 0.027403 + 31 H s : 0.820264 s : 0.820264 + pz : 0.038236 p : 0.075839 + px : 0.014881 + py : 0.022722 + + + ***************************** + * MAYER POPULATION ANALYSIS * + ***************************** + + NA - Mulliken gross atomic population + ZA - Total nuclear charge + QA - Mulliken gross atomic charge + VA - Mayer's total valence + BVA - Mayer's bonded valence + FA - Mayer's free valence + + ATOM NA ZA QA VA BVA FA + 0 C 6.3485 6.0000 -0.3485 3.8751 3.8751 0.0000 + 1 H 0.8777 1.0000 0.1223 0.9749 0.9749 0.0000 + 2 H 0.8625 1.0000 0.1375 0.9758 0.9758 0.0000 + 3 H 0.8636 1.0000 0.1364 0.9745 0.9745 0.0000 + 4 C 5.6887 6.0000 0.3113 4.0943 4.0943 -0.0000 + 5 O 8.5410 8.0000 -0.5410 1.9486 1.9486 -0.0000 + 6 N 7.2674 7.0000 -0.2674 3.1985 3.1985 -0.0000 + 7 H 0.7514 1.0000 0.2486 0.9630 0.9630 -0.0000 + 8 C 5.8677 6.0000 0.1323 3.6960 3.6960 -0.0000 + 9 H 0.9053 1.0000 0.0947 1.0539 1.0539 -0.0000 + 10 C 6.3734 6.0000 -0.3734 3.8689 3.8689 0.0000 + 11 H 0.8725 1.0000 0.1275 0.9743 0.9743 0.0000 + 12 H 0.8670 1.0000 0.1330 0.9790 0.9790 0.0000 + 13 H 0.8773 1.0000 0.1227 0.9877 0.9877 0.0000 + 14 C 5.7099 6.0000 0.2901 4.1647 4.1647 0.0000 + 15 O 8.5232 8.0000 -0.5232 1.9824 1.9824 -0.0000 + 16 N 7.2526 7.0000 -0.2526 3.2395 3.2395 -0.0000 + 17 H 0.7515 1.0000 0.2485 0.9657 0.9657 -0.0000 + 18 C 5.8830 6.0000 0.1170 3.7052 3.7052 -0.0000 + 19 H 0.9006 1.0000 0.0994 1.0445 1.0445 -0.0000 + 20 C 6.3646 6.0000 -0.3646 3.8626 3.8626 -0.0000 + 21 H 0.8710 1.0000 0.1290 0.9754 0.9754 0.0000 + 22 H 0.8671 1.0000 0.1329 0.9789 0.9789 0.0000 + 23 H 0.8771 1.0000 0.1229 0.9882 0.9882 -0.0000 + 24 C 5.7155 6.0000 0.2845 4.1774 4.1774 -0.0000 + 25 O 8.5257 8.0000 -0.5257 1.9878 1.9878 0.0000 + 26 N 7.2508 7.0000 -0.2508 3.1920 3.1920 0.0000 + 27 H 0.7357 1.0000 0.2643 0.9317 0.9317 0.0000 + 28 C 6.2124 6.0000 -0.2124 3.8611 3.8611 0.0000 + 29 H 0.8613 1.0000 0.1387 0.9669 0.9669 -0.0000 + 30 H 0.8674 1.0000 0.1326 0.9685 0.9685 -0.0000 + 31 H 0.8669 1.0000 0.1331 0.9677 0.9677 0.0000 + + Mayer bond orders larger than 0.100000 +B( 0-C , 1-H ) : 0.9817 B( 0-C , 2-H ) : 0.9694 B( 0-C , 3-H ) : 0.9648 +B( 0-C , 4-C ) : 0.9337 B( 4-C , 5-O ) : 1.7973 B( 4-C , 6-N ) : 1.3575 +B( 6-N , 7-H ) : 0.8937 B( 6-N , 8-C ) : 0.8585 B( 8-C , 9-H ) : 0.9818 +B( 8-C , 10-C ) : 0.9226 B( 8-C , 14-C ) : 0.9439 B( 10-C , 11-H ) : 0.9787 +B( 10-C , 12-H ) : 0.9814 B( 10-C , 13-H ) : 0.9794 B( 14-C , 15-O ) : 1.8066 +B( 14-C , 16-N ) : 1.3678 B( 16-N , 17-H ) : 0.8937 B( 16-N , 18-C ) : 0.8647 +B( 18-C , 19-H ) : 0.9802 B( 18-C , 20-C ) : 0.9178 B( 18-C , 24-C ) : 0.9525 +B( 20-C , 21-H ) : 0.9781 B( 20-C , 22-H ) : 0.9820 B( 20-C , 23-H ) : 0.9787 +B( 24-C , 25-O ) : 1.8374 B( 24-C , 26-N ) : 1.3551 B( 26-N , 27-H ) : 0.9015 +B( 26-N , 28-C ) : 0.8996 B( 28-C , 29-H ) : 0.9662 B( 28-C , 30-H ) : 0.9788 +B( 28-C , 31-H ) : 0.9777 + +------- +TIMINGS +------- + +Total SCF time: 0 days 0 hours 1 min 36 sec + +Total time .... 96.423 sec +Sum of individual times .... 95.216 sec ( 98.7%) + +Fock matrix formation .... 91.331 sec ( 94.7%) + Split-RI-J .... 6.224 sec ( 6.8% of F) + Chain of spheres X .... 63.453 sec ( 69.5% of F) + XC integration .... 9.057 sec ( 9.9% of F) + Basis function eval. .... 2.029 sec ( 22.4% of XC) + Density eval. .... 2.888 sec ( 31.9% of XC) + XC-Functional eval. .... 0.157 sec ( 1.7% of XC) + XC-Potential eval. .... 2.707 sec ( 29.9% of XC) +Diagonalization .... 0.583 sec ( 0.6%) +Density matrix formation .... 0.037 sec ( 0.0%) +Population analysis .... 0.059 sec ( 0.1%) +Initial guess .... 0.518 sec ( 0.5%) +Orbital Transformation .... 0.000 sec ( 0.0%) +Orbital Orthonormalization .... 0.000 sec ( 0.0%) +DIIS solution .... 0.282 sec ( 0.3%) +SOSCF solution .... 0.511 sec ( 0.5%) +Grid generation .... 1.894 sec ( 2.0%) + +Maximum memory used throughout the entire SCF-calculation: 117.7 MB + +------------------------- -------------------- +FINAL SINGLE POINT ENERGY -742.985592886484 +------------------------- -------------------- + + + + ************************************************************ + * Program running with 8 parallel MPI-processes * + * working on a common directory * + ************************************************************ +------------------------------------------------------------------------------ + ORCA SCF GRADIENT CALCULATION +------------------------------------------------------------------------------ + + ... reading COSX grid (gridx3) +Gradient of the Kohn-Sham DFT energy: +Kohn-Sham wavefunction type ... RKS +Hartree-Fock exchange scaling ... 0.200 +Number of operators ... 1 +Number of atoms ... 32 +Basis set dimensions ... 567 +Integral neglect threshold ... 2.5e-11 +Integral primitive cutoff ... 2.5e-12 +SHARK Integral package ... ON + +Nuc. rep. gradient (SHARK) ... done ( 0.0 sec) +HCore & Overlap gradient (SHARK) ... done ( 0.3 sec) +RI-J gradient (SHARK) ... done ( 1.5 sec) +COSX-gradient ... done ( 14.0 sec) +Exchange-correlation gradient ... done + +------------------ +CARTESIAN GRADIENT +------------------ + + 1 C : -0.075712381 -0.005158513 0.005897839 + 2 H : 0.029689323 -0.071778569 -0.025757841 + 3 H : 0.042197364 0.025400096 0.064826964 + 4 H : 0.005092660 0.044375762 -0.047783083 + 5 C : 0.024156619 0.052064005 0.007957251 + 6 O : 0.004345097 0.020061837 0.002883165 + 7 N : -0.030947207 -0.038254281 -0.011244397 + 8 H : 0.000214867 -0.011271100 -0.002943889 + 9 C : 0.032857036 -0.077160928 0.007190076 + 10 H : -0.025901011 0.077214191 -0.000181281 + 11 C : 0.000509694 0.014052826 -0.072295823 + 12 H : -0.077223217 -0.005568882 0.026475644 + 13 H : 0.038197723 0.050515634 0.046515224 + 14 H : 0.028530995 -0.062556420 0.002118537 + 15 C : 0.037100380 -0.029899543 0.005602679 + 16 O : 0.021400158 -0.010072840 0.005012511 + 17 N : -0.037748094 0.012414449 -0.003926221 + 18 H : -0.007804631 0.007370706 -0.000892273 + 19 C : -0.022697343 0.064065635 -0.011040402 + 20 H : 0.029343648 -0.065108717 0.005329570 + 21 C : -0.018586398 -0.019629252 0.070111349 + 22 H : -0.041551796 -0.045245560 -0.057238862 + 23 H : 0.074030739 -0.006187208 -0.013436006 + 24 H : -0.021102969 0.068267670 -0.004790506 + 25 C : 0.001344829 0.045708187 0.002731591 + 26 O : 0.006578087 0.017227500 0.002298842 + 27 N : -0.005043257 -0.040130702 -0.003863185 + 28 H : -0.000199601 -0.006229562 -0.000134612 + 29 C : 0.062896212 -0.005564835 -0.013935015 + 30 H : -0.022789140 -0.070388943 -0.004605343 + 31 H : -0.040308672 0.044709518 -0.048937877 + 32 H : -0.010913860 0.026741571 0.067985348 + +Difference to translation invariance: + : -0.0000441485 -0.0000162696 -0.0000700267 + +Difference to rotation invariance: + : -0.0009941902 0.0029159896 0.0001145456 + +Norm of the cartesian gradient ... 0.3604002039 +RMS gradient ... 0.0367831918 +MAX gradient ... 0.0772232174 + +------- +TIMINGS +------- + +Total SCF gradient time ... 21.202 sec + +One electron gradient .... 0.330 sec ( 1.6%) +RI-J Coulomb gradient .... 1.508 sec ( 7.1%) +COSX gradient .... 14.028 sec ( 66.2%) +XC gradient .... 2.840 sec ( 13.4%) +CPCM gradient .... 0.681 sec ( 3.2%) + A-Matrix (El+Nuc) .... 0.113 sec ( 0.5%) + Potential .... 0.568 sec ( 2.7%) + +Maximum memory used throughout the entire SCFGRAD-calculation: 86.6 MB + + *************************************** + * ORCA property calculations * + *************************************** + + --------------------- + Active property flags + --------------------- + (+) Dipole Moment + + +------------------------------------------------------------------------------ + ORCA ELECTRIC PROPERTIES CALCULATION +------------------------------------------------------------------------------ + +Dipole Moment Calculation ... on +Quadrupole Moment Calculation ... off +Polarizability Calculation ... off +GBWName ... orca.gbw +Electron density ... orca.scfp +The origin for moment calculation is the CENTER OF MASS = ( 8.316190, 3.642788 1.117070) + +------------- +DIPOLE MOMENT +------------- + X Y Z +Electronic contribution: 0.15410 -0.89180 -0.25894 +Nuclear contribution : 0.27282 3.38082 1.01891 + ----------------------------------------- +Total Dipole Moment : 0.42692 2.48902 0.75997 + ----------------------------------------- +Magnitude (a.u.) : 2.63724 +Magnitude (Debye) : 6.70333 + + + +-------------------- +Rotational spectrum +-------------------- + +Rotational constants in cm-1: 0.047574 0.007755 0.007574 +Rotational constants in MHz : 1426.219067 232.499079 227.049160 + + Dipole components along the rotational axes: +x,y,z [a.u.] : -1.451751 0.459941 -2.153115 +x,y,z [Debye]: -3.690057 1.169078 -5.472783 + + + +Timings for individual modules: + +Sum of individual times ... 126.486 sec (= 2.108 min) +GTO integral calculation ... 5.771 sec (= 0.096 min) 4.6 % +SCF iterations ... 98.005 sec (= 1.633 min) 77.5 % +SCF Gradient evaluation ... 22.710 sec (= 0.379 min) 18.0 % + ****ORCA TERMINATED NORMALLY**** +TOTAL RUN TIME: 0 days 0 hours 2 minutes 8 seconds 433 msec diff --git a/iodata/test/data/water_no_vel.gro b/iodata/test/data/water_no_vel.gro new file mode 100644 index 00000000..c72f6b0f --- /dev/null +++ b/iodata/test/data/water_no_vel.gro @@ -0,0 +1,9 @@ +MD of 2 waters, t= 0.0 + 6 + 1WATER OW1 1 0.126 1.624 1.679 + 1WATER HW2 2 0.190 1.661 1.747 + 1WATER HW3 3 0.177 1.568 1.613 + 2WATER OW1 4 1.275 0.053 0.622 + 2WATER HW2 5 1.337 0.002 0.680 + 2WATER HW3 6 1.326 0.120 0.568 + 1.82060 1.82060 1.82060 diff --git a/iodata/test/test_cli.py b/iodata/test/test_cli.py index a0b1f131..b0059686 100644 --- a/iodata/test/test_cli.py +++ b/iodata/test/test_cli.py @@ -23,7 +23,6 @@ import sys from functools import partial from importlib.resources import as_file, files -from typing import Optional from warnings import warn import pytest @@ -38,8 +37,8 @@ def _convscript( infn: str, outfn: str, many: bool = False, - infmt: Optional[str] = None, - outfmt: Optional[str] = None, + infmt: str | None = None, + outfmt: str | None = None, allow_changes: bool = False, ): """Simulate the convert function by calling iodata-convert in a subprocess.""" diff --git a/iodata/test/test_fchk.py b/iodata/test/test_fchk.py index d61667a3..d912b5aa 100644 --- a/iodata/test/test_fchk.py +++ b/iodata/test/test_fchk.py @@ -20,7 +20,6 @@ import os from importlib.resources import as_file, files -from typing import Optional import numpy as np import pytest @@ -549,7 +548,7 @@ def test_load_nbasis_indep(tmpdir): assert mol2.mo.coeffs.shape == (38, 37) -def check_load_dump_consistency(tmpdir: str, fn: str, match: Optional[str] = None): +def check_load_dump_consistency(tmpdir: str, fn: str, match: str | None = None): """Check if dumping and loading an FCHK file results in the same data. Parameters diff --git a/iodata/test/test_gromacs.py b/iodata/test/test_gromacs.py index 39bc51c5..8793088e 100644 --- a/iodata/test/test_gromacs.py +++ b/iodata/test/test_gromacs.py @@ -27,7 +27,7 @@ def test_load_water(): - # test gro file of one water + """Test gro file of one water.""" with as_file(files("iodata.test.data").joinpath("water.gro")) as fn_gro: mol = load_one(str(fn_gro)) check_water(mol) @@ -48,6 +48,7 @@ def check_water(mol): def test_load_many(): + """Test water gro file with two frames.""" with as_file(files("iodata.test.data").joinpath("water2.gro")) as fn_gro: mols = list(load_many(str(fn_gro))) assert len(mols) == 2 @@ -55,3 +56,20 @@ def test_load_many(): assert mols[1].extra["time"] == 1.0 * picosecond for mol in mols: check_water(mol) + + +def test_load_without_velocities(): + """A GRO file without velocity columns should set velocities to None.""" + with as_file(files("iodata.test.data").joinpath("water_no_vel.gro")) as fn_gro: + mol = load_one(str(fn_gro)) + + # basic checks + assert mol.title == "MD of 2 waters" + assert mol.atcoords.shape == (6, 3) + + # coordinates should match the ones in the file (compare in nm) + assert_allclose(mol.atcoords[-1] / nanometer, [1.326, 0.120, 0.568]) + + # velocities should be present in extra but None + assert "velocities" in mol.extra + assert mol.extra["velocities"] is None diff --git a/iodata/test/test_mol2.py b/iodata/test/test_mol2.py index 0af7f16d..9261c3b5 100644 --- a/iodata/test/test_mol2.py +++ b/iodata/test/test_mol2.py @@ -124,7 +124,7 @@ def test_load_dump_many_consistency(tmpdir): dump_many(mols0, fn_tmp, fmt="mol2") mols1 = list(load_many(fn_tmp, fmt="mol2")) assert len(mols0) == len(mols1) - for mol0, mol1 in zip(mols0, mols1): + for mol0, mol1 in zip(mols0, mols1, strict=True): assert mol0.title == mol1.title assert_equal(mol0.atnums, mol1.atnums) assert_allclose(mol0.atcoords, mol1.atcoords, atol=1.0e-5) diff --git a/iodata/test/test_molekel.py b/iodata/test/test_molekel.py index bc328a75..fe2884da 100644 --- a/iodata/test/test_molekel.py +++ b/iodata/test/test_molekel.py @@ -21,7 +21,6 @@ import os import warnings from importlib.resources import as_file, files -from typing import Optional import pytest from numpy.testing import assert_allclose, assert_equal @@ -60,7 +59,7 @@ def compare_mols_diff_formats(mol1, mol2): def check_load_dump_consistency( - fn: str, tmpdir: str, match: Optional[str] = None, allow_changes: bool = False + fn: str, tmpdir: str, match: str | None = None, allow_changes: bool = False ): """Check if data is preserved after dumping and loading a Molekel file. diff --git a/iodata/test/test_orcalog.py b/iodata/test/test_orcalog.py index 7db49c55..3ebac49d 100644 --- a/iodata/test/test_orcalog.py +++ b/iodata/test/test_orcalog.py @@ -28,6 +28,7 @@ def test_load_water_number(): + """Test loading ORCA output for water molecule.""" with as_file(files("iodata.test.data").joinpath("water_orca.out")) as fn: mol = load_one(fn) # Test atomic numbers and number of atoms @@ -50,3 +51,35 @@ def test_load_water_number(): assert_allclose(mol.energy, -76.347791524303, atol=1e-8) # check dipole moment assert_allclose(mol.moments[(1, "c")], [0.76499, 0.00000, 0.54230]) + + +def test_load_gradient(): + """Test loading ORCA output with atomic gradients.""" + with as_file(files("iodata.test.data").joinpath("orca_gradient.out")) as fn: + mol = load_one(fn) + # Test atomic numbers and number of atoms + assert mol.natom == 32 + assert_equal(mol.atnums[:12], [6, 1, 1, 1, 6, 8, 7, 1, 6, 1, 6, 1]) + # check scf energy + assert_allclose(mol.energy, -742.985592886484, atol=1e-8) + # check dipole moment + assert_allclose(mol.moments[(1, "c")], [0.42692, 2.48902, 0.75997], atol=1e-5) + # check atomic gradients + assert mol.atgradient.shape == (32, 3) + expected_gradients = np.array( + [ + [-0.075712381, -0.005158513, 0.005897839], + [0.029689323, -0.071778569, -0.025757841], + [0.042197364, 0.025400096, 0.064826964], + [0.005092660, 0.044375762, -0.047783083], + [0.024156619, 0.052064005, 0.007957251], + [0.004345097, 0.020061837, 0.002883165], + [-0.030947207, -0.038254281, -0.011244397], + [0.000214867, -0.011271100, -0.002943889], + [0.032857036, -0.077160928, 0.007190076], + [-0.025901011, 0.077214191, -0.000181281], + [0.000509694, 0.014052826, -0.072295823], + [-0.077223217, -0.005568882, 0.026475644], + ] + ) + assert_allclose(mol.atgradient[:12], expected_gradients[:12], atol=1e-8) diff --git a/iodata/test/test_pdb.py b/iodata/test/test_pdb.py index 8ecf1cd2..20263d2f 100644 --- a/iodata/test/test_pdb.py +++ b/iodata/test/test_pdb.py @@ -92,8 +92,8 @@ def test_load_dump_consistency(fn_base, should_warn, tmpdir): assert_equal(mol0.atnums, mol1.atnums) assert_allclose(mol0.atcoords, mol1.atcoords, atol=1.0e-5) if mol0.atffparams is not None: - assert_equal(mol0.atffparams.get("attypes"), mol1.atffparams.get("attypes")) - assert_equal(mol0.atffparams.get("restypes"), mol1.atffparams.get("restypes")) + assert_equal(mol0.atffparams.get("atnames"), mol1.atffparams.get("atnames")) + assert_equal(mol0.atffparams.get("resnames"), mol1.atffparams.get("resnames")) assert_equal(mol0.atffparams.get("resnums"), mol1.atffparams.get("resnums")) if mol0.extra is not None: assert_equal(mol0.extra.get("occupancies"), mol1.extra.get("occupancies")) @@ -117,12 +117,11 @@ def test_load_dump_xyz_consistency(tmpdir): assert mol0.title == mol1.title assert_equal(mol0.atnums, mol1.atnums) assert_allclose(mol0.atcoords, mol1.atcoords, atol=1.0e-2) - # check if the general restype and attype are correct - restypes = mol1.atffparams.get("restypes") - attypes = mol1.atffparams.get("attypes") - assert restypes[0] == "XXX" - assert attypes[0] == "H1" - assert mol1.extra.get("chainids") is None + # check if the general resname and atname are correct + resnames = mol1.atffparams.get("resnames") + atnames = mol1.atffparams.get("atnames") + assert resnames[0] == "XXX" + assert atnames[0] == "H1" # check if resnums are correct resnums = mol1.atffparams.get("resnums") assert_equal(resnums[0], -1) @@ -140,12 +139,12 @@ def test_load_peptide_2luv(): assert len(record) == 271 assert mol.title.startswith("INTEGRIN") assert_equal(len(mol.atnums), 547) - restypes = mol.atffparams.get("restypes") - assert restypes[0] == "LYS" - assert restypes[-1] == "LYS" - attypes = mol.atffparams.get("attypes") - assert attypes[0] == "N" - assert attypes[-1] == "O" + resnames = mol.atffparams.get("resnames") + assert resnames[0] == "LYS" + assert resnames[-1] == "LYS" + atnames = mol.atffparams.get("atnames") + assert atnames[0] == "N" + assert atnames[-1] == "O" resnums = mol.atffparams.get("resnums") assert_equal(resnums[0], 1) assert_equal(resnums[-1], 35) @@ -179,7 +178,7 @@ def test_load_dump_many_consistency(case, tmpdir): dump_many(mols0, fn_tmp, fmt="pdb") mols1 = list(load_many(fn_tmp, fmt="pdb")) assert len(mols0) == len(mols1) - for mol0, mol1 in zip(mols0, mols1): + for mol0, mol1 in zip(mols0, mols1, strict=True): assert mol0.title == mol1.title assert_equal(mol0.atnums, mol1.atnums) assert_allclose(mol0.atcoords, mol1.atcoords, atol=1.0e-5) @@ -217,9 +216,9 @@ def test_load_2bcw(): ) assert mol.natom == 191 assert (mol.atnums == 6).all() - assert (mol.atffparams["attypes"] == ["CA"] * mol.natom).all() - assert (mol.atffparams["restypes"][:3] == ["GLN", "ILE", "LYS"]).all() - assert (mol.atffparams["restypes"][-4:] == ["LYS", "ILE", "THR", "PRO"]).all() + assert (mol.atffparams["atnames"] == ["CA"] * mol.natom).all() + assert (mol.atffparams["resnames"][:3] == ["GLN", "ILE", "LYS"]).all() + assert (mol.atffparams["resnames"][-4:] == ["LYS", "ILE", "THR", "PRO"]).all() assert_allclose(mol.atcoords[0, 2] / angstrom, -86.956) assert_allclose(mol.atcoords[190, 0] / angstrom, -24.547) assert_allclose(mol.extra.get("occupancies"), np.ones(mol.natom)) diff --git a/iodata/test/test_sdf.py b/iodata/test/test_sdf.py index ed974fc1..2200072e 100644 --- a/iodata/test/test_sdf.py +++ b/iodata/test/test_sdf.py @@ -117,7 +117,7 @@ def test_load_dump_many_consistency(tmpdir): dump_many(mols0, fn_tmp, fmt="sdf") mols1 = list(load_many(fn_tmp, fmt="sdf")) assert len(mols0) == len(mols1) - for mol0, mol1 in zip(mols0, mols1): + for mol0, mol1 in zip(mols0, mols1, strict=True): assert mol0.title == mol1.title assert_equal(mol0.atnums, mol1.atnums) assert_allclose(mol0.atcoords, mol1.atcoords, atol=1.0e-5) diff --git a/iodata/test/test_wfx.py b/iodata/test/test_wfx.py index 21edb90f..e5a444bd 100644 --- a/iodata/test/test_wfx.py +++ b/iodata/test/test_wfx.py @@ -20,7 +20,6 @@ import os from importlib.resources import as_file, files -from typing import Optional import numpy as np import pytest @@ -93,7 +92,7 @@ def compare_mulliken_charges( tmpdir: str, rtol: float = 1.0e-7, atol: float = 0.0, - match: Optional[str] = None, + match: str | None = None, allow_changes: bool = False, ): """Check if charges are computed correctly after dumping and loading WFX file format. @@ -742,6 +741,72 @@ def test_load_one_h2(): check_orthonormal(mol.mo.coeffsb, olp, 1e-5) +def test_load_one_h2_with_comments(): + """Test load_one with h2 ub3lyp_ccpvtz WFX input with comments.""" + with as_file( + files("iodata.test.data").joinpath("h2_ub3lyp_ccpvtz_with_comments.wfx") + ) as file_wfx: + mol = load_one(str(file_wfx)) + assert_allclose( + mol.atcoords, + np.array([[0.0, 0.0, 0.7019452462164], [0.0, 0.0, -0.7019452462164]]), + rtol=0, + atol=1.0e-6, + ) + assert_allclose( + mol.atgradient, + np.array( + [ + [9.74438416e-17, -2.08884441e-16, -7.18565768e-09], + [-9.74438416e-17, 2.08884441e-16, 7.18565768e-09], + ] + ), + rtol=0, + atol=1.0e-6, + ) + assert_equal(mol.atnums, np.array([1, 1])) + assert_allclose(mol.energy, -1.179998789924, rtol=0, atol=1.0e-6) + assert mol.extra["keywords"] == "GTO" + assert mol.extra["num_perturbations"] == 0 + assert mol.mo.coeffs.shape == (34, 56) + assert_allclose( + mol.mo.energies[:7], + np.array( + [ + -0.43408309, + 0.0581059, + 0.19574763, + 0.4705944, + 0.51160035, + 0.51160035, + 0.91096805, + ] + ), + rtol=0, + atol=1.0e-6, + ) + assert mol.mo.occs.sum() == 2.0 + assert mol.mo.occsa.sum() == 1.0 + assert mol.mo.spinpol == 0.0 + assert mol.mo.nbasis == 34 + assert mol.mo.kind == "unrestricted" + assert mol.obasis.nbasis == 34 + assert mol.obasis.primitive_normalization == "L2" + assert [shell.icenter for shell in mol.obasis.shells] == [0] * 8 + [1] * 8 + assert [shell.kinds for shell in mol.obasis.shells] == [["c"]] * 16 + assert_allclose( + [shell.exponents for shell in mol.obasis.shells], + 2 * [[33.87], [5.095], [1.159], [0.3258], [0.1027], [1.407], [0.388], [1.057]], + ) + assert_allclose([shell.coeffs for shell in mol.obasis.shells], [[[1]]] * 16) + assert mol.obasis_name is None + assert mol.title == "h2 ub3lyp/cc-pvtz opt-stable-freq" + # check orthonormal mo + olp = compute_overlap(mol.obasis, mol.atcoords) + check_orthonormal(mol.mo.coeffsa, olp, 1e-5) + check_orthonormal(mol.mo.coeffsb, olp, 1e-5) + + def test_load_one_lih_cation_cisd(): with as_file(files("iodata.test.data").joinpath("lih_cation_cisd.wfx")) as file_wfx: mol = load_one(str(file_wfx)) diff --git a/iodata/test/test_xyz.py b/iodata/test/test_xyz.py index 7adefc48..d3669008 100644 --- a/iodata/test/test_xyz.py +++ b/iodata/test/test_xyz.py @@ -178,7 +178,7 @@ def test_load_dump_many_consistency(tmpdir): dump_many(mols0, fn_tmp, fmt="xyz") mols1 = list(load_many(fn_tmp, fmt="xyz")) assert len(mols0) == len(mols1) - for mol0, mol1 in zip(mols0, mols1): + for mol0, mol1 in zip(mols0, mols1, strict=True): assert mol0.title == mol1.title assert_equal(mol0.atnums, mol1.atnums) assert_allclose(mol0.atcoords, mol1.atcoords, atol=1.0e-5) diff --git a/iodata/utils.py b/iodata/utils.py index 4b6f7654..4dd63127 100644 --- a/iodata/utils.py +++ b/iodata/utils.py @@ -20,7 +20,7 @@ from io import TextIOBase from pathlib import Path -from typing import Optional, TextIO, Union +from typing import TextIO import attrs import numpy as np @@ -115,8 +115,8 @@ def back(self, line): def _interpret_file_lineno( - file: Optional[Union[str, Path, LineIterator, TextIO]] = None, lineno: Optional[int] = None -) -> tuple[Optional[str], Optional[int]]: + file: str | Path | LineIterator | TextIO | None = None, lineno: int | None = None +) -> tuple[str | None, int | None]: """Interpret the file and lineno arguments given to Error and Warning constructors. Parameters @@ -150,7 +150,7 @@ def _interpret_file_lineno( raise TypeError(f"Types of file and lineno are not supported: {file}, {lineno}") -def _format_file_message(message: str, filename: Optional[str], lineno: Optional[int]) -> str: +def _format_file_message(message: str, filename: str | None, lineno: int | None) -> str: """Format the message of an exception. Parameters @@ -180,8 +180,8 @@ class BaseFileError(Exception): def __init__( self, message, - file: Optional[Union[str, Path, LineIterator, TextIO]] = None, - lineno: Optional[int] = None, + file: str | Path | LineIterator | TextIO | None = None, + lineno: int | None = None, ): super().__init__(message) self.filename, self.lineno = _interpret_file_lineno(file, lineno) @@ -216,8 +216,8 @@ class BaseFileWarning(Warning): def __init__( self, message, - file: Optional[Union[str, Path, LineIterator, TextIO]] = None, - lineno: Optional[int] = None, + file: str | Path | LineIterator | TextIO | None = None, + lineno: int | None = None, ): filename, lineno = _interpret_file_lineno(file, lineno) super().__init__(_format_file_message(message, filename, lineno)) diff --git a/pyproject.toml b/pyproject.toml index aaa03bb5..2ad76494 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,20 +9,18 @@ authors = [ ] description = "Python Input and Output Library for Quantum Chemistry" readme = "README.md" -license = {file = "LICENSE.txt"} -requires-python = ">=3.9" +license = "GPL-3.0-or-later" +requires-python = ">=3.10" classifiers = [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Education", "Intended Audience :: Science/Research", - "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -33,7 +31,7 @@ classifiers = [ ] dependencies = [ # Ensure changes to these dependencies are reflected - # in .github/workflows/pytest.yaml and docs/install.rst + # in .github/requirements-old.txt and docs/install.rst "numpy>=1.26.4", "scipy>=1.13.1", "attrs>=21.3.0", @@ -79,7 +77,7 @@ local_scheme = "no-local-version" [tool.ruff] line-length = 100 -target-version = "py39" +target-version = "py310" [tool.ruff.lint] select = [ diff --git a/tools/harmonics.py b/tools/harmonics.py index c3a7e8a6..7e648a5a 100755 --- a/tools/harmonics.py +++ b/tools/harmonics.py @@ -86,7 +86,7 @@ def get_bare_transforms(ellmax: int): poly = sp.Poly(rrsh.pop(0), x, y, z) lookup = { (int(nx), int(ny), int(nz)): coeff - for (nx, ny, nz), coeff in zip(poly.monoms(), poly.coeffs()) + for (nx, ny, nz), coeff in zip(poly.monoms(), poly.coeffs(), strict=True) } for nx, ny, nz in iter_mononomials(ell): row.append(sp.sympify(lookup.get((nx, ny, nz), 0)))