Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Number of shells generated by AutoAux function #318

Open
sunqm opened this issue Aug 28, 2024 · 2 comments
Open

Number of shells generated by AutoAux function #318

sunqm opened this issue Aug 28, 2024 · 2 comments

Comments

@sunqm
Copy link

sunqm commented Aug 28, 2024

For basis set 6-31G** of H atom, manip.autoaux_basis produces two d shells:

manip.autoaux_basis(api.get_basis('6-31G**', 'H'))

...
    {'function_type': 'gto_spherical',
     'region': '',
     'angular_momentum': [2],
     'exponents': ['2.200000e+00'],
     'coefficients': [['1.0']]},
    {'function_type': 'gto_spherical',
     'region': '',
     'angular_momentum': [2],
     'exponents': ['4.840000e+00'],
     'coefficients': [['1.0']]}]}},

The 6-31G** basis has one p-shell with exponent 2.2 . The generated auxiliary basis set should contain only one d shell with exponent = 2.2 . The shell with exponent=4.84 seems caused by the rounding error in

effective_exponents = [2 * k_value**2 / (pi * rexp**2) for rexp in rvec]

The effective_exponents is 2.200000000000002 in this case. If this number is 2.2 , the function only generates one d shell.

@susilehtola
Copy link
Contributor

Maybe the BSE should contain some function to remove near-duplicate exponents? Not sure what the right fix would be otherwise.

@sunqm
Copy link
Author

sunqm commented Sep 4, 2024

Or add a small penalty term here to tolerate certain rounding errors

if current_exponent >= amax_aux[laux]:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants