示例#1
0
        'units': 'ev',
        'modes': 1,
        'elop': '1,1',
        'ops': '(q)*(1)'
    })  # Holstein copuling mode 3 el 1
    hterms.append({
        'coeff': k9a1,
        'units': 'ev',
        'modes': 1,
        'elop': '0,0',
        'ops': '(1)*(q)'
    })  # Holstein copuling mode 4 el 0
    hterms.append({
        'coeff': k9a2,
        'units': 'ev',
        'modes': 1,
        'elop': '1,1',
        'ops': '(1)*(q)'
    })  # Holstein copuling mode 4 el 1

    ham = pymctdh.Hamiltonian(nel, nmodes, hterms, pbfs=pbfs)

    dt = 0.5
    times = np.arange(0.0, 120., dt) * pymctdh.units.convert_to('fs')

    results = pymctdh.Results(nsteps=len(times),
                              db_pops=True,
                              print_db_pops=True,
                              db_pops_file='pyr4_combined.txt')
    wf = pymctdh.vmfpropagate(times, ham, pbfs, wf, results=results)
        'units': 'ev',
        'modes': 2,
        'elop': '1,1',
        'ops': 'q'
    })  # Holstein copuling mode 3 el 1
    hterms.append({
        'coeff': k9a1,
        'units': 'ev',
        'modes': 3,
        'elop': '0,0',
        'ops': 'q'
    })  # Holstein copuling mode 4 el 0
    hterms.append({
        'coeff': k9a2,
        'units': 'ev',
        'modes': 3,
        'elop': '1,1',
        'ops': 'q'
    })  # Holstein copuling mode 4 el 1

    ham = pymctdh.Hamiltonian(nel, nmodes, hterms, pbfs=pbfs)

    dt = 0.5
    times = np.arange(0.0, 120., dt) * pymctdh.units.convert_to('fs')

    results = pymctdh.Results(nsteps=len(times),
                              db_pops=True,
                              print_db_pops=True,
                              db_pops_file='pyr4_mixed_sparse.txt')
    wf = pymctdh.vmfpropagate(times, ham, pbfs, wf, results=results)
示例#3
0
    # make Lindblad waiting time operators
    LdLs = []
    term = {'coeff': gam, 'units': 'au', 'modes': 0, 'elop': '1', 'ops': 'n'}
    LdLs.append(pymctdh.QOperator(nmodes, term, pbfs=pbfs))
    term = {'coeff': gam, 'units': 'au', 'modes': 1, 'elop': '1', 'ops': 'n'}
    LdLs.append(pymctdh.QOperator(nmodes, term, pbfs=pbfs))
    term = {'coeff': gam, 'units': 'au', 'modes': 2, 'elop': '1', 'ops': 'n'}
    LdLs.append(pymctdh.QOperator(nmodes, term, pbfs=pbfs))
    term = {'coeff': gam, 'units': 'au', 'modes': 3, 'elop': '1', 'ops': 'n'}
    LdLs.append(pymctdh.QOperator(nmodes, term, pbfs=pbfs))

    dt = 0.25
    times = np.arange(0.0, 120., dt) * pymctdh.units.convert_to('fs')

    results = pymctdh.Results(nsteps=len(times),
                              db_pops=True,
                              print_db_pops=True,
                              db_pops_file='pyr4_ntraj_1.txt')
    pymctdh.vmfpropagatejumps(times,
                              ham,
                              pbfs,
                              Ls,
                              LdLs,
                              wf,
                              ntraj=1000,
                              results=results,
                              seed=2)
    #wfout = vmfpropagatejumps(times, ham, pbfs, Ls, LdLs, wf.copy(), 'pyr4_jumps_down_single_traj.txt', seed=2)
    #ntraj = 100
    #for traj in range(ntraj):
    #    wfout = vmfpropagatejumps(times, ham, pbfs, Ls, LdLs, wf.copy(), 'pyr4_jumps_down_traj_%d.txt'%(traj+24))
    #    #wfout = vmfpropagatejumps(times, ham, pbfs, Ls, LdLs, wf.copy(), 'pyr4_jumps_down_traj_%d.txt'%(traj), seed=2)