Source code for exatomic.nwchem.basis

# -*- coding: utf-8 -*-
# Copyright (c) 2015-2022, Exa Analytics Development Team
# Distributed under the terms of the Apache License 2.0
"""
Basis Set Support
##########################
Specific functions for NWChem basis set support.
"""
import numpy as np


[docs]def cartesian_ordering_function(l): """ Generates an array of coordinates corresponding to powers of x, y, and z in a set of linearly dependent cartesian basis functions, representative of spin angular momentum values for a given orbital angular momentum. """ m = l + 1 n = (m + 1) * m // 2 values = np.empty((n, 4), dtype=np.int64) h = 0 for i in range(l, -1, -1): for j in range(l, -1, -1): for k in range(l, -1, -1): if i + j + k == l: values[h] = [l, i, j, k] h += 1 return values
[docs]def spherical_ordering_function(l): """ Generates an array of spin angular momentum values corresponding to a given orbital angular momentum. """ if l == 0: return np.array([0], dtype=np.int64) elif l == 1: return np.array([1, -1, 0], dtype=np.int64) return np.arange(-l, l+1, 1, dtype=np.int64)