コード例 #1
0
ファイル: rccsdt_unit_cpd.py プロジェクト: qbit-/tcc
    def __init__(self, mf, frozen=[], mo_energy=None, mo_coeff=None,
                 mo_occ=None, rankt=None):
        """
        Initialize RCCSDT
        """
        # Simply copy some parameters from RHF calculation
        super().__init__(mf)

        # Initialize molecular orbitals

        if mo_energy is None:
            mo_energy = mf.mo_energy
        if mo_coeff is None:
            mo_coeff = mf.mo_coeff
        if mo_occ is None:
            mo_occ = mf.mo_occ

        from tcc.mos import SPINLESS_MOS
        self._mos = SPINLESS_MOS(mo_coeff, mo_energy, mo_occ, frozen)

        # initialize ranks

        if rankt is None:
            n = np.min((self._mos.nocc, self._mos.nvir))
            self.rankt = Tensors(t2=n, t3=n)
        else:
            self.rankt = Tensors(rankt)
コード例 #2
0
ファイル: rccsd_thc.py プロジェクト: qbit-/tcc
    def __init__(self,
                 mf,
                 frozen=[],
                 mo_energy=None,
                 mo_coeff=None,
                 mo_occ=None,
                 load_ham_from=None,
                 rankt=None):
        """
        Initialize RCCSD
        :param rankt: rank of the THC decomposition of amplitudes
        """
        # Simply copy some parameters from RHF calculation
        super().__init__(mf)

        # Initialize molecular orbitals

        if mo_energy is None:
            mo_energy = mf.mo_energy
        if mo_coeff is None:
            mo_coeff = mf.mo_coeff
        if mo_occ is None:
            mo_occ = mf.mo_occ

        from tcc.mos import SPINLESS_MOS
        self._mos = SPINLESS_MOS(mo_coeff, mo_energy, mo_occ, frozen)

        # initialize everything

        self.load_ham_from = load_ham_from

        if rankt is None:
            self.rankt = np.min((self._mos.nocc, self._mos.nvir))
        else:
            self.rankt = rankt

        # Add some type definitions
        self.types.AMPLITUDES_TYPE = namedtuple('RCCSD_AMPLITUDES',
                                                field_names=('t1', 'x1', 'x2',
                                                             'x3', 'x4', 'x5'))

        self.types.RHS_TYPE = namedtuple('RCCSD_RHS',
                                         field_names=('gt1', 'gx1', 'gx2',
                                                      'gx3', 'gx4', 'gx5'))

        self.types.RESIDUALS_TYPE = namedtuple('RCCSD_RESIDUALS',
                                               field_names=('rt1', 'rx1',
                                                            'rx2', 'rx3',
                                                            'rx4', 'rx5'))
コード例 #3
0
    def __init__(self,
                 mf,
                 frozen=[],
                 mo_energy=None,
                 mo_coeff=None,
                 mo_occ=None):
        """
        Initialize RCCSD
        """
        # Simply copy some parameters from RHF calculation
        super().__init__(mf)

        # Initialize molecular orbitals

        if mo_energy is None:
            mo_energy = mf.mo_energy
        if mo_coeff is None:
            mo_coeff = mf.mo_coeff
        if mo_occ is None:
            mo_occ = mf.mo_occ

        from tcc.mos import SPINLESS_MOS
        self._mos = SPINLESS_MOS(mo_coeff, mo_energy, mo_occ, frozen)