Ejemplo n.º 1
0
 def term_setup(self):
     """Setup function that makes sure all keywords are properly defined and
        defaulted.
     """
     # check coefficient
     if not 'coeff' in self.term:
         self.term['coeff'] = 1.0
     # check units
     if not 'units' in self.term:
         self.term['units'] = 'au'
     # do unit conversions for the coefficients
     self.term['units'] = self.term['units'].lower()
     self.term['coeff'] *= units.convert_to(self.term['units'])
     # default electronic operator to 1
     if not 'elop' in self.term:
         self.term['elop'] = '1'
     if 'modes' in self.term:
         # if there are modes make sure it's a list
         if not isinstance(self.term['modes'], list):
             self.term['modes'] = [self.term['modes']]
         if not isinstance(self.term['ops'], list):
             self.term['ops'] = [self.term['ops']]
Ejemplo n.º 2
0
    minv   = 1.43e-3
    E0     = 0.0
    E1     = 2.00
    W0     = 2.3
    W1     = 1.50
    lamda  = 0.19

    hterms = []
    # electronic energy shifts
    hterms.append({'coeff': E0+0.5*W0, 'units': 'ev', 'elop': '0,0'})
    hterms.append({'coeff': E1-0.5*W1, 'units': 'ev', 'elop': '1,1'})
    ## coupling mode harmonic oscillator potential
    hterms.append({'coeff':     wc, 'units': 'ev', 'modes': 0, 'ops':  'KE'})
    hterms.append({'coeff': 0.5*wc, 'units': 'ev', 'modes': 0, 'ops': 'q^2'})
    hterms.append({'coeff': kappa1, 'units': 'ev', 'modes': 0, 'elop': '1,1', 'ops': 'q'})
    hterms.append({'coeff':  lamda, 'units': 'ev', 'modes': 0, 'elop':  'sx', 'ops': 'q'})
    # torsional mode plane wave potential 
    hterms.append({'coeff': -0.5*minv, 'units': 'ev', 'modes': 1, 'ops': 'KE'})
    hterms.append({'coeff':   -0.5*W0, 'units': 'ev', 'modes': 1, 'elop': '0,0', 'ops': 'cos'})
    hterms.append({'coeff':    0.5*W1, 'units': 'ev', 'modes': 1, 'elop': '1,1', 'ops': 'cos'})

    ham = Hamiltonian(nmodes, hterms, pbfs=pbfs)

    dt = 1.0
    times = np.arange(0.0,4000.,dt)*units.convert_to('fs')

    #wf = vmfpropagate(times, ham, pbfs, wf, 'rhodopsin_diabatic_pops_test.txt')
    #wf = vmfpropagate(times, ham, pbfs, wf, 'rhodopsin_diabatic_pops.txt')
    #wf = vmfpropagate(times, ham, pbfs, wf, 'rhodopsin_diabatic_pops_small.txt')
    wf = vmfpropagate(times, ham, pbfs, wf, 'rhodopsin_diabatic_pops_really_small.txt')