Пример #1
0
def test_bandlimit_zero_t(method, evolve_dt, nsteps, rtol, scheme):
    np.random.seed(0)
    evolve_config = EvolveConfig(method)
    ct = ChargeTransport(band_limit_mol_list.switch_scheme(scheme),
                         evolve_config=evolve_config)
    ct.stop_at_edge = True
    ct.evolve(evolve_dt, nsteps)
    assert_band_limit(ct, rtol)
Пример #2
0
def test_gaussian_bond_dim():
    compress_config = CompressConfig(
        criteria=CompressCriteria.fixed,
        bonddim_distri=BondDimDistri.center_gauss,
        max_bonddim=10,
    )
    evolve_config = EvolveConfig(guess_dt=0.1, adaptive=True)
    ct = ChargeTransport(
        band_limit_mol_list,
        compress_config=compress_config,
        evolve_config=evolve_config,
    )
    ct.stop_at_edge = True
    ct.evolve(evolve_dt=2.)
    assert_band_limit(ct, 1e-2)
Пример #3
0
    lams = hr_factors * omegas_au
    phonons = [
        Phonon.simplest_phonon(Quantity(o), Quantity(l), lam=True)
        for o, l in zip(omegas_au, lams)
    ]

    j_matrix_au = j_matrix_cm * cm2au

    mlist = []
    for j in np.diag(j_matrix_au):
        m = Mol(Quantity(j), phonons)
        mlist.append(m)

    # starts from 1
    mol_arangement = np.array([7, 5, 3, 1, 2, 4, 6]) - 1
    mol_list = MolList(list(np.array(mlist)[mol_arangement]),
                       j_matrix_au[mol_arangement][:, mol_arangement])

    evolve_dt = 40
    evolve_config = EvolveConfig(evolve_dt=evolve_dt)
    compress_config = CompressConfig(CompressCriteria.fixed, max_bonddim=16)
    ct = ChargeTransport(mol_list,
                         evolve_config=evolve_config,
                         compress_config=compress_config)
    ct.dump_dir = "./fmo"
    ct.job_name = 'hybrid'
    ct.stop_at_edge = False
    ct.evolve(evolve_dt=evolve_dt, nsteps=10)
    new_evolve_config = EvolveConfig(EvolveMethod.tdvp_mctdh_new)
    ct.latest_mps.evolve_config = ct.evolve_config = new_evolve_config
    ct.evolve(evolve_dt=evolve_dt, nsteps=100000)
Пример #4
0
def test_32backend(switch_to_32backend):
    evolve_config = EvolveConfig(evolve_dt=4, adaptive=True)
    ct = ChargeTransport(band_limit_mol_list, evolve_config=evolve_config)
    ct.stop_at_edge = True
    ct.evolve()
    assert_band_limit(ct, 1e-2)