If you have problems during the execution of MRCC, please attach the output with an adequate description of your case as well as the followings:
  • the way mrcc was invoked
  • the way build.mrcc was invoked
  • the output of build.mrcc
  • compiler version (for example: ifort -V, gfortran -v)
  • blas/lapack versions
  • as well as gcc and glibc versions

This information really helps us during troubleshooting :)

Possible bug in standalone MRCC ECP treatment for LMAX=1

  • rfanta
  • Topic Author
  • Away
  • New Member
  • New Member
More
1 day 5 hours ago - 1 day 5 hours ago #1649 by rfanta
Dear MRCC developers,

I believe I have found a problem in the standalone MRCC treatment of semilocal ECPs with LMAX=1 (local p channel).

I encountered this while converting the canonical ccECP pseudopotentials from pseudopotentiallibrary.org to the CFOUR format used by MRCC. The generated ECPs reproduce the published ccECP atomic PBE energies in PySCF, and ECPs with LMAX>=2 also agree between MRCC and PySCF.

However, for LMAX=1 ECPs, MRCC appears to omit the nonlocal s-p channel.

A minimal example is the C atom with ccECP and cc-pVQZ at UKS/PBE:

MRCC 25.1.1, full ccECP: -12.023750846 Ha
MRCC 26.1.1, full ccECP: -12.023750846 Ha

PySCF, full ccECP: -5.409591... Ha
Published ccECP PBE value: -5.40983 Ha

PySCF with the s-p channel explicitly removed: -12.023750... Ha

Thus, deleting exactly the s-p semilocal component of the ECP in PySCF reproduces the MRCC result.

I repeated the test for Li, Be, F, and Ne, and in each case the MRCC energy agrees with the PySCF Hamiltonian in which the s-p channel has been deleted to within approximately 10^-5 Ha.

As controls, ECPs with higher local angular momentum work correctly. For example, Si (LMAX=2, local d) and Cr (LMAX=2, local d) reproduce the full PySCF ECP results.

I also verified that:

* MRCC is reading the custom ECP from the run-directory GENBAS. Deliberately perturbing an ECP coefficient changes the MRCC energy substantially.
* The ccECP numerical parameters in GENBAS are identical to the original ccECP data.
* The same ECPs reproduce the published ccECP PBE energies when parsed independently by PySCF.
* Changing the formal LMAX and adding zero higher-l channels did not restore the missing contribution.
* The behavior is identical in MRCC 25.1.1 and 26.1.1.

I checked the MRCC manual before reporting this. It states that user-supplied ECPs in CFOUR format can be placed in GENBAS and that arbitrary non-default ECPs may be used. I could not find any documented restriction requiring LMAX>=2 or excluding ECPs for H-Ne.

I noticed that the ECPs distributed with MRCC start at Na, so perhaps the LMAX=1 case is simply not represented in the standard test set.

Could you please confirm whether LMAX=1 ECPs are intended to be supported by the standalone MRCC integral code? If so, this appears to be an indexing or loop issue in the treatment of the lowest nonlocal channel.

Attachment not found



Best,
Roman Fanta

 

File Attachment:

File Name: C_ccecp_cc...z.tar.gz
File Size:1,744 KB
Last edit: 1 day 5 hours ago by rfanta. Reason: formating

Please Log in or Create an account to join the conversation.

Time to create page: 0.037 seconds
Powered by Kunena Forum