def MakeNuclearAttractionIntegrals(self, Smh=True):
    'calculate nuclear attraction integrals in main basis, for each individual atomic core.\n      Returns nAo x nAo x nAtoms array.'
    Args = []
    if Smh:
        Args.append('--orb-trafo=Smh')
    Outputs = []
    Outputs.append(('--save-vnucN', 'VNUC_N'))
    VNucN = self._InvokeBfint(Args, Outputs)[0]
    nOrb = int(((VNucN.shape[0] ** 0.5) + 0.5))
    assert ((nOrb ** 2) == VNucN.shape[0])
    assert (VNucN.shape[1] == len(self.Atoms))
    return VNucN.reshape(nOrb, nOrb, VNucN.shape[1])
calculate nuclear attraction integrals in main basis, for each individual atomic core.
Returns nAo x nAo x nAtoms array.
def MakeNuclearAttractionIntegrals(self, Smh=True):
    'calculate nuclear attraction integrals in main basis, for each individual atomic core.\n      Returns nAo x nAo x nAtoms array.'
    Args = []
    if Smh:
        Args.append('--orb-trafo=Smh')
    Outputs = []
    Outputs.append(('--save-vnucN', 'VNUC_N'))
    VNucN = self._InvokeBfint(Args, Outputs)[0]
    nOrb = int(((VNucN.shape[0] ** 0.5) + 0.5))
    assert ((nOrb ** 2) == VNucN.shape[0])
    assert (VNucN.shape[1] == len(self.Atoms))
    return VNucN.reshape(nOrb, nOrb, VNucN.shape[1])