#
#@BEGIN LICENSE
#
# PSI4: an ab initio quantum chemistry software package
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#@END LICENSE
#

"""Module with commands building :py:class:`~basislist.BasisFamily` objects
for Pople and other non-Dunning orbital basis sets. Some
plausible fitting basis sets are supplied as defaults.

"""
from p4util.basislist import *


def load_basfam_other():

    # Pople
    basis_sto3g = BasisFamily('STO-3G')
    basis_321g = BasisFamily('3-21G')

    basisfamily_list.append(basis_sto3g)
    basisfamily_list.append(basis_321g)

    basis_631g = BasisFamily('6-31G')
    basis_631g_d_ = BasisFamily('6-31G(d)')
    basis_631g_d_p_ = BasisFamily('6-31G(d,p)')
    basis_631gs = BasisFamily('6-31G*', '6-31g_d_')
    basis_631gss = BasisFamily('6-31G**', '6-31g_d_p_')
    basis_631pg = BasisFamily('6-31+G')
    basis_631pg_d_ = BasisFamily('6-31+G(d)')
    basis_631pg_d_p_ = BasisFamily('6-31+G(d,p)')
    basis_631pgs = BasisFamily('6-31+G*', '6-31pg_d_')
    basis_631pgss = BasisFamily('6-31+G**', '6-31pg_d_p_')
    basis_631ppg = BasisFamily('6-31++G')
    basis_631ppg_d_ = BasisFamily('6-31++G(d)')
    basis_631ppg_d_p_ = BasisFamily('6-31++G(d,p)')
    basis_631ppgs = BasisFamily('6-31++G*', '6-31ppg_d_')
    basis_631ppgss = BasisFamily('6-31++G**', '6-31ppg_d_p_')

    basisfamily_list.append(basis_631g)
    basisfamily_list.append(basis_631g_d_)
    basisfamily_list.append(basis_631g_d_p_)
    basisfamily_list.append(basis_631gs)
    basisfamily_list.append(basis_631gss)
    basisfamily_list.append(basis_631pg)
    basisfamily_list.append(basis_631pg_d_)
    basisfamily_list.append(basis_631pg_d_p_)
    basisfamily_list.append(basis_631pgs)
    basisfamily_list.append(basis_631pgss)
    basisfamily_list.append(basis_631ppg)
    basisfamily_list.append(basis_631ppg_d_)
    basisfamily_list.append(basis_631ppg_d_p_)
    basisfamily_list.append(basis_631ppgs)
    basisfamily_list.append(basis_631ppgss)

    basis_6311g = BasisFamily('6-311G')
    basis_6311g_d_ = BasisFamily('6-311G(d)')
    basis_6311g_d_p_ = BasisFamily('6-311G(d,p)')
    basis_6311gs = BasisFamily('6-311G*', '6-311g_d_')
    basis_6311gss = BasisFamily('6-311G**', '6-311g_d_p_')
    basis_6311g_2d_ = BasisFamily('6-311G(2d)')
    basis_6311g_2d_p_ = BasisFamily('6-311G(2d,p)')
    basis_6311g_2d_2p_ = BasisFamily('6-311G(2d,2p)')
    basis_6311g_2df_ = BasisFamily('6-311G(2df)')
    basis_6311g_2df_p_ = BasisFamily('6-311G(2df,p)')
    basis_6311g_2df_2p_ = BasisFamily('6-311G(2df,2p)')
    basis_6311g_2df_2pd_ = BasisFamily('6-311G(2df,2pd)')
    basis_6311g_3df_ = BasisFamily('6-311G(3df)')
    basis_6311g_3df_p_ = BasisFamily('6-311G(3df,p)')
    basis_6311g_3df_2p_ = BasisFamily('6-311G(3df,2p)')
    basis_6311g_3df_2pd_ = BasisFamily('6-311G(3df,2pd)')
    basis_6311g_3df_3pd_ = BasisFamily('6-311G(3df,3pd)')

    basisfamily_list.append(basis_6311g)
    basisfamily_list.append(basis_6311g_d_)
    basisfamily_list.append(basis_6311g_d_p_)
    basisfamily_list.append(basis_6311gs)
    basisfamily_list.append(basis_6311gss)
    basisfamily_list.append(basis_6311g_2d_)
    basisfamily_list.append(basis_6311g_2d_p_)
    basisfamily_list.append(basis_6311g_2d_2p_)
    basisfamily_list.append(basis_6311g_2df_)
    basisfamily_list.append(basis_6311g_2df_p_)
    basisfamily_list.append(basis_6311g_2df_2p_)
    basisfamily_list.append(basis_6311g_2df_2pd_)
    basisfamily_list.append(basis_6311g_3df_)
    basisfamily_list.append(basis_6311g_3df_p_)
    basisfamily_list.append(basis_6311g_3df_2p_)
    basisfamily_list.append(basis_6311g_3df_2pd_)
    basisfamily_list.append(basis_6311g_3df_3pd_)

    basis_6311pg = BasisFamily('6-311+G')
    basis_6311pg_d_ = BasisFamily('6-311+G(d)')
    basis_6311pg_d_p_ = BasisFamily('6-311+G(d,p)')
    basis_6311pgs = BasisFamily('6-311+G*', '6-311pg_d_')
    basis_6311pgss = BasisFamily('6-311+G**', '6-311pg_d_p_')
    basis_6311pg_2d_ = BasisFamily('6-311+G(2d)')
    basis_6311pg_2d_p_ = BasisFamily('6-311+G(2d,p)')
    basis_6311pg_2d_2p_ = BasisFamily('6-311+G(2d,2p)')
    basis_6311pg_2df_ = BasisFamily('6-311+G(2df)')
    basis_6311pg_2df_p_ = BasisFamily('6-311+G(2df,p)')
    basis_6311pg_2df_2p_ = BasisFamily('6-311+G(2df,2p)')
    basis_6311pg_2df_2pd_ = BasisFamily('6-311+G(2df,2pd)')
    basis_6311pg_3df_ = BasisFamily('6-311+G(3df)')
    basis_6311pg_3df_p_ = BasisFamily('6-311+G(3df,p)')
    basis_6311pg_3df_2p_ = BasisFamily('6-311+G(3df,2p)')
    basis_6311pg_3df_2pd_ = BasisFamily('6-311+G(3df,2pd)')
    basis_6311pg_3df_3pd_ = BasisFamily('6-311+G(3df,3pd)')

    basisfamily_list.append(basis_6311pg)
    basisfamily_list.append(basis_6311pg_d_)
    basisfamily_list.append(basis_6311pg_d_p_)
    basisfamily_list.append(basis_6311pgs)
    basisfamily_list.append(basis_6311pgss)
    basisfamily_list.append(basis_6311pg_2d_)
    basisfamily_list.append(basis_6311pg_2d_p_)
    basisfamily_list.append(basis_6311pg_2d_2p_)
    basisfamily_list.append(basis_6311pg_2df_)
    basisfamily_list.append(basis_6311pg_2df_p_)
    basisfamily_list.append(basis_6311pg_2df_2p_)
    basisfamily_list.append(basis_6311pg_2df_2pd_)
    basisfamily_list.append(basis_6311pg_3df_)
    basisfamily_list.append(basis_6311pg_3df_p_)
    basisfamily_list.append(basis_6311pg_3df_2p_)
    basisfamily_list.append(basis_6311pg_3df_2pd_)
    basisfamily_list.append(basis_6311pg_3df_3pd_)

    basis_6311ppg = BasisFamily('6-311++G')
    basis_6311ppg_d_ = BasisFamily('6-311++G(d)')
    basis_6311ppg_d_p_ = BasisFamily('6-311++G(d,p)')
    basis_6311ppgs = BasisFamily('6-311++G*', '6-311ppg_d_')
    basis_6311ppgss = BasisFamily('6-311++G**', '6-311ppg_d_p_')
    basis_6311ppg_2d_ = BasisFamily('6-311++G(2d)')
    basis_6311ppg_2d_p_ = BasisFamily('6-311++G(2d,p)')
    basis_6311ppg_2d_2p_ = BasisFamily('6-311++G(2d,2p)')
    basis_6311ppg_2df_ = BasisFamily('6-311++G(2df)')
    basis_6311ppg_2df_p_ = BasisFamily('6-311++G(2df,p)')
    basis_6311ppg_2df_2p_ = BasisFamily('6-311++G(2df,2p)')
    basis_6311ppg_2df_2pd_ = BasisFamily('6-311++G(2df,2pd)')
    basis_6311ppg_3df_ = BasisFamily('6-311++G(3df)')
    basis_6311ppg_3df_p_ = BasisFamily('6-311++G(3df,p)')
    basis_6311ppg_3df_2p_ = BasisFamily('6-311++G(3df,2p)')
    basis_6311ppg_3df_2pd_ = BasisFamily('6-311++G(3df,2pd)')
    basis_6311ppg_3df_3pd_ = BasisFamily('6-311++G(3df,3pd)')

    basisfamily_list.append(basis_6311ppg)
    basisfamily_list.append(basis_6311ppg_d_)
    basisfamily_list.append(basis_6311ppg_d_p_)
    basisfamily_list.append(basis_6311ppgs)
    basisfamily_list.append(basis_6311ppgss)
    basisfamily_list.append(basis_6311ppg_2d_)
    basisfamily_list.append(basis_6311ppg_2d_p_)
    basisfamily_list.append(basis_6311ppg_2d_2p_)
    basisfamily_list.append(basis_6311ppg_2df_)
    basisfamily_list.append(basis_6311ppg_2df_p_)
    basisfamily_list.append(basis_6311ppg_2df_2p_)
    basisfamily_list.append(basis_6311ppg_2df_2pd_)
    basisfamily_list.append(basis_6311ppg_3df_)
    basisfamily_list.append(basis_6311ppg_3df_p_)
    basisfamily_list.append(basis_6311ppg_3df_2p_)
    basisfamily_list.append(basis_6311ppg_3df_2pd_)
    basisfamily_list.append(basis_6311ppg_3df_3pd_)

    # Ahlrichs
    basis_def2sv_p_ = BasisFamily('def2-SV(P)')
    basis_def2svp = BasisFamily('def2-SVP')
    basis_def2svpd = BasisFamily('def2-SVPD')
    basis_def2tzvp = BasisFamily('def2-TZVP')
    basis_def2tzvpd = BasisFamily('def2-TZVPD')
    basis_def2tzvpp = BasisFamily('def2-TZVPP')
    basis_def2tzvppd = BasisFamily('def2-TZVPPD')
    basis_def2qzvp = BasisFamily('def2-QZVP')
    basis_def2qzvpd = BasisFamily('def2-QZVPD')
    basis_def2qzvpp = BasisFamily('def2-QZVPP')
    basis_def2qzvppd = BasisFamily('def2-QZVPPD')
    
    basis_def2sv_p_.add_jfit('def2-SV(P)-JFIT')
    basis_def2svp.add_jfit('def2-SVP-JFIT')
    basis_def2svpd.add_jfit('def2-SVP-JFIT')
    basis_def2tzvp.add_jfit('def2-TZVP-JFIT')
    basis_def2tzvpd.add_jfit('def2-TZVP-JFIT')
    basis_def2tzvpp.add_jfit('def2-TZVPP-JFIT')
    basis_def2tzvppd.add_jfit('def2-TZVPP-JFIT')
    basis_def2qzvp.add_jfit('def2-QZVP-JFIT')
    basis_def2qzvpd.add_jfit('def2-QZVP-JFIT')
    basis_def2qzvpp.add_jfit('def2-QZVPP-JFIT')
    basis_def2qzvppd.add_jfit('def2-QZVPP-JFIT')
    
    basis_def2sv_p_.add_jkfit('def2-SV(P)-JKFIT')
    basis_def2svp.add_jkfit('def2-SVP-JKFIT')
    basis_def2svpd.add_jkfit('def2-SVP-JKFIT')
    basis_def2tzvp.add_jkfit('def2-TZVP-JKFIT')
    basis_def2tzvpd.add_jkfit('def2-TZVP-JKFIT')
    basis_def2tzvpp.add_jkfit('def2-TZVPP-JKFIT')
    basis_def2tzvppd.add_jkfit('def2-TZVPP-JKFIT')
    basis_def2qzvp.add_jkfit('def2-QZVP-JKFIT')
    basis_def2qzvpd.add_jkfit('def2-QZVP-JKFIT')
    basis_def2qzvpp.add_jkfit('def2-QZVPP-JKFIT')
    basis_def2qzvppd.add_jkfit('def2-QZVPP-JKFIT')
    
    basis_def2sv_p_.add_rifit('def2-SV(P)-RI')
    basis_def2svp.add_rifit('def2-SVP-RI')
    basis_def2svpd.add_rifit('def2-SVPD-RI')
    basis_def2tzvp.add_rifit('def2-TZVP-RI')
    basis_def2tzvpd.add_rifit('def2-TZVPD-RI')
    basis_def2tzvpp.add_rifit('def2-TZVPP-RI')
    basis_def2tzvppd.add_rifit('def2-TZVPPD-RI')
    basis_def2qzvp.add_rifit('def2-QZVP-RI')
    basis_def2qzvpp.add_rifit('def2-QZVPP-RI')
    basis_def2qzvppd.add_rifit('def2-QZVPPD-RI')
    
    basisfamily_list.append(basis_def2sv_p_)
    basisfamily_list.append(basis_def2svp)
    basisfamily_list.append(basis_def2svpd)
    basisfamily_list.append(basis_def2tzvp)
    basisfamily_list.append(basis_def2tzvpd)
    basisfamily_list.append(basis_def2tzvpp)
    basisfamily_list.append(basis_def2tzvppd)
    basisfamily_list.append(basis_def2qzvp)
    basisfamily_list.append(basis_def2qzvpd)
    basisfamily_list.append(basis_def2qzvpp)
    basisfamily_list.append(basis_def2qzvppd)

    # Others
    basis_dz = BasisFamily('DZ')
    basis_dzp = BasisFamily('DZP')
    basis_dzvp = BasisFamily('DZVP')
    basis_psi3dzp = BasisFamily('psi3-DZP')
    basis_psi3tz2p = BasisFamily('psi3-TZ2P')
    basis_psi3tz2pf = BasisFamily('psi3-TZ2PF')
    basis_sadlejlpoldl = BasisFamily('sadlej-lpol-dl')
    basis_sadlejlpolds = BasisFamily('sadlej-lpol-ds')
    basis_sadlejlpolfl = BasisFamily('sadlej-lpol-fl')
    basis_sadlejlpolfs = BasisFamily('sadlej-lpol-fs')

    basisfamily_list.append(basis_dz)
    basisfamily_list.append(basis_dzp)
    basisfamily_list.append(basis_dzvp)
    basisfamily_list.append(basis_psi3dzp)
    basisfamily_list.append(basis_psi3tz2p)
    basisfamily_list.append(basis_psi3tz2pf)
    basisfamily_list.append(basis_sadlejlpoldl)
    basisfamily_list.append(basis_sadlejlpolds)
    basisfamily_list.append(basis_sadlejlpolfl)
    basisfamily_list.append(basis_sadlejlpolfs)

    # Here lie practical (non-validated) fitting bases for
    # Pople orbital basis sets

    basis_sto3g.add_jkfit('cc-pvdz-ri')
    basis_sto3g.add_rifit('cc-pvdz-ri')
    basis_321g.add_jkfit('cc-pvdz-ri')
    basis_321g.add_rifit('cc-pvdz-ri')

    basis_631g.add_jkfit('cc-pvdz-jkfit')
    basis_631g_d_.add_jkfit('cc-pvdz-jkfit')
    basis_631g_d_p_.add_jkfit('cc-pvdz-jkfit')
    basis_631gs.add_jkfit('cc-pvdz-jkfit')
    basis_631gss.add_jkfit('cc-pvdz-jkfit')
    basis_631g.add_rifit('cc-pvdz-ri')
    basis_631g_d_.add_rifit('cc-pvdz-ri')
    basis_631g_d_p_.add_rifit('cc-pvdz-ri')
    basis_631gs.add_rifit('cc-pvdz-ri')
    basis_631gss.add_rifit('cc-pvdz-ri')

    basis_631pg.add_jkfit('heavy-aug-cc-pvdz-jkfit')
    basis_631pg_d_.add_jkfit('heavy-aug-cc-pvdz-jkfit')
    basis_631pg_d_p_.add_jkfit('heavy-aug-cc-pvdz-jkfit')
    basis_631pgs.add_jkfit('heavy-aug-cc-pvdz-jkfit')
    basis_631pgss.add_jkfit('heavy-aug-cc-pvdz-jkfit')
    basis_631pg.add_rifit('heavy-aug-cc-pvdz-ri')
    basis_631pg_d_.add_rifit('heavy-aug-cc-pvdz-ri')
    basis_631pg_d_p_.add_rifit('heavy-aug-cc-pvdz-ri')
    basis_631pgs.add_rifit('heavy-aug-cc-pvdz-ri')
    basis_631pgss.add_rifit('heavy-aug-cc-pvdz-ri')

    basis_631ppg.add_jkfit('aug-cc-pvdz-jkfit')
    basis_631ppg_d_.add_jkfit('aug-cc-pvdz-jkfit')
    basis_631ppg_d_p_.add_jkfit('aug-cc-pvdz-jkfit')
    basis_631ppgs.add_jkfit('aug-cc-pvdz-jkfit')
    basis_631ppgss.add_jkfit('aug-cc-pvdz-jkfit')
    basis_631ppg.add_rifit('aug-cc-pvdz-ri')
    basis_631ppg_d_.add_rifit('aug-cc-pvdz-ri')
    basis_631ppg_d_p_.add_rifit('aug-cc-pvdz-ri')
    basis_631ppgs.add_rifit('aug-cc-pvdz-ri')
    basis_631ppgss.add_rifit('aug-cc-pvdz-ri')

    basis_6311g.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_d_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_d_p_.add_jkfit('cc-pvtz-jkfit')
    basis_6311gs.add_jkfit('cc-pvtz-jkfit')
    basis_6311gss.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_2d_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_2d_p_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_2d_2p_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_2df_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_2df_p_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_2df_2p_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_2df_2pd_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_3df_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_3df_p_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_3df_2p_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_3df_2pd_.add_jkfit('cc-pvtz-jkfit')
    basis_6311g_3df_3pd_.add_jkfit('cc-pvtz-jkfit')

    basis_6311g.add_rifit('cc-pvtz-ri')
    basis_6311g_d_.add_rifit('cc-pvtz-ri')
    basis_6311g_d_p_.add_rifit('cc-pvtz-ri')
    basis_6311gs.add_rifit('cc-pvtz-ri')
    basis_6311gss.add_rifit('cc-pvtz-ri')
    basis_6311g_2d_.add_rifit('cc-pvtz-ri')
    basis_6311g_2d_p_.add_rifit('cc-pvtz-ri')
    basis_6311g_2d_2p_.add_rifit('cc-pvtz-ri')
    basis_6311g_2df_.add_rifit('cc-pvtz-ri')
    basis_6311g_2df_p_.add_rifit('cc-pvtz-ri')
    basis_6311g_2df_2p_.add_rifit('cc-pvtz-ri')
    basis_6311g_2df_2pd_.add_rifit('cc-pvtz-ri')
    basis_6311g_3df_.add_rifit('cc-pvtz-ri')
    basis_6311g_3df_p_.add_rifit('cc-pvtz-ri')
    basis_6311g_3df_2p_.add_rifit('cc-pvtz-ri')
    basis_6311g_3df_2pd_.add_rifit('cc-pvtz-ri')
    basis_6311g_3df_3pd_.add_rifit('cc-pvtz-ri')

    basis_6311pg.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_d_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_d_p_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pgs.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pgss.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_2d_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_2d_p_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_2d_2p_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_2df_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_2df_p_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_2df_2p_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_2df_2pd_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_3df_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_3df_p_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_3df_2p_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_3df_2pd_.add_jkfit('heavy-aug-cc-pvtz-jkfit')
    basis_6311pg_3df_3pd_.add_jkfit('heavy-aug-cc-pvtz-jkfit')

    basis_6311pg.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_d_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_d_p_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pgs.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pgss.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_2d_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_2d_p_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_2d_2p_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_2df_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_2df_p_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_2df_2p_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_2df_2pd_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_3df_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_3df_p_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_3df_2p_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_3df_2pd_.add_rifit('heavy-aug-cc-pvtz-ri')
    basis_6311pg_3df_3pd_.add_rifit('heavy-aug-cc-pvtz-ri')

    basis_6311ppg.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_d_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_d_p_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppgs.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppgss.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_2d_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_2d_p_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_2d_2p_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_2df_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_2df_p_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_2df_2p_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_2df_2pd_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_3df_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_3df_p_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_3df_2p_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_3df_2pd_.add_jkfit('aug-cc-pvtz-jkfit')
    basis_6311ppg_3df_3pd_.add_jkfit('aug-cc-pvtz-jkfit')

    basis_6311ppg.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_d_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_d_p_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppgs.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppgss.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_2d_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_2d_p_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_2d_2p_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_2df_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_2df_p_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_2df_2p_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_2df_2pd_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_3df_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_3df_p_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_3df_2p_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_3df_2pd_.add_rifit('aug-cc-pvtz-ri')
    basis_6311ppg_3df_3pd_.add_rifit('aug-cc-pvtz-ri')
