vibeqc.auto_ecp_centers

vibeqc.auto_ecp_centers(mol, basis_name, library_name=None)[source]

Build (ecp_centers, library_name) from a Molecule + basis name.

For each atom in mol whose Z appears in <basis_name>.ecp, emits an ECPCenter(Z, xyz) and resolves the right libecpint XML library. The two returned values can be assigned directly to opts.ecp_centers and opts.ecp_library on any of the four molecular SCF Options classes.

Parameters:
  • mol (vibeqc.Molecule) – The molecule whose heavy atoms need ECP centres built.

  • basis_name (str) – Basis-set name as you’d pass to vq.BasisSet(mol, name).

  • library_name (Optional[str]) – Override the auto-resolved libecpint XML library. Useful when a basis ships a custom XML the user dropped into $VIBEQC_ECP_SHARE_DIR/xml/.

Returns:

(centers, library_name) – Empty list and the input library_name (or "") if the basis is all-electron; otherwise a populated list.

Return type:

tuple[list[ECPCenter], str]

Raises:
  • ValueError – When the molecule’s heavy atoms would need MORE THAN ONE libecpint XML library (mixed-row case — common for dhf with a Rb–Cs span). Calls out Phase 14g as the unblocker.

  • NotImplementedError – When the basis has at least one ECP atom whose ncore doesn’t match any standard libecpint library (vDZP-style customs).