Source code for libra_py.models.LVC

#*********************************************************************************                     
#* Copyright (C) 2018-2019 Alexey V. Akimov                                                   
#*                                                                                                     
#* This file is distributed 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.                                                 
#* See the file LICENSE in the root directory of this distribution   
#* or <http://www.gnu.org/licenses/>.          
#***********************************************************************************
"""
.. module:: models_LVC
   :platform: Unix, Windows
   :synopsis: This module implements Linear Vibronic Coupling (LVC) Hamiltonian
.. moduleauthor:: Alexey V. Akimov

"""

import os
import sys
import math
import copy

if sys.platform=="cygwin":
    from cyglibra_core import *
elif sys.platform=="linux" or sys.platform=="linux2":
    from liblibra_core import *
import util.libutil as comn
import libra_py.units as units


class tmp:
    pass    


[docs]def LVC(q, params): """ Linear Vibronic Coupling Hamiltonian, 2-level, N-dim. problem Args: q ( MATRIX(ndof, 1) ): coordinates of the classical particles, ndof is an arbitrary number of degrees of freedom (e.g. 3N, where N is the number of particles) params ( dictionary ): model parameters, should contain: * **params["Delta1"]** ( double ): energy minimum of the lower state [ units: Ha ] * **params["Delta2"]** ( double ): energy minimum of the upper state [ units: Ha ] * **params["omega"]** ( list on ndof doubles ): normal modes frequencies same for both electronic states [ units: Ha ] * **params["d1"]** ( list on ndof doubles ): electron-phonon couplings for the lower state [ units: Ha/Bohr ] * **params["d2"]** ( list on ndof doubles ): electron-phonon couplings for the upper state [ units: Ha/Bohr ] * **params["coup"]** ( list on ndof doubles ): electron-phonon couplings [ units: Ha/Bohr ] * **params["mass"]** ( list on ndof doubles ): masses of the normal modes [ units: amu ] Returns: PyObject: obj, with the members: * obj.ham_dia ( CMATRIX(2,2) ): diabatic Hamiltonian * obj.ovlp_dia ( CMATRIX(2,2) ): overlap of the basis (diabatic) states [ identity ] * obj.d1ham_dia ( list of ndof CMATRIX(2,2) objects ): derivatives of the diabatic Hamiltonian w.r.t. the nuclear coordinate * obj.dc1_dia ( list of ndof CMATRIX(2,2) objects ): derivative coupling in the diabatic basis [ zero ] Note: the Hamiltonian defined in Izmaylov, A. F.; Mendive-Tapia, D.; Bearpark, M. J.; Robb, M. A.; Tully, J. C.; Frisch, M. J. JCP, 2011, 135, 234106 uses the mass-transformed coordinates and momenta. In the present formulation, the regular coordinates (not mass-transformed) are used. """ # Define potential specific constants critical_params = [ "omega", "d1", "d2", "coup", "mass", "Delta1", "Delta2" ] default_params = { } comn.check_input(params, default_params, critical_params) w = params["omega"] d1 = params["d1"] d2 = params["d2"] c = params["coup"] m = params["mass"] ndof = q.num_of_rows # the number of nuclear DOFs obj = tmp() obj.ham_dia = CMATRIX(2,2) obj.ovlp_dia = CMATRIX(2,2); obj.ovlp_dia.identity() obj.d1ham_dia = CMATRIXList() obj.dc1_dia = CMATRIXList() for i in range(0,ndof): obj.d1ham_dia.append( CMATRIX(2,2) ) obj.dc1_dia.append( CMATRIX(2,2) ) #=========== Energies & Derivatives =============== obj.ham_dia.set(0,0, params["Delta1"]*(1.0+0.0j)) obj.ham_dia.set(1,1, params["Delta2"]*(1.0+0.0j)) for n in range(0,ndof): # Diagonal bath x = 0.5*m[n]*w[n]*w[n]*q.get(n,0)*q.get(n,0)*(1.0+0.0j) obj.ham_dia.add(0,0, x) obj.ham_dia.add(1,1, x) x = m[n]*w[n]*w[n]*q.get(n,0)*(1.0+0.0j) obj.d1ham_dia[n].add(0, 0, x) obj.d1ham_dia[n].add(1, 1, x) # Diagonal el-ph coupling x = math.sqrt(m[n])*q.get(n,0)*(1.0+0.0j) obj.ham_dia.add(0,0, x*d1[n]) obj.ham_dia.add(1,1, x*d2[n]) x = math.sqrt(m[n])*(1.0+0.0j) obj.d1ham_dia[n].add(0, 0, x*d1[n]) obj.d1ham_dia[n].add(0, 0, x*d2[n]) # Off-diagonal x = math.sqrt(m[n]) * c[n] * (1.0+0.0j) obj.ham_dia.add(0,1, x*q.get(n,0) ) obj.ham_dia.add(1,0, x*q.get(n,0) ) obj.d1ham_dia[n].add(0, 0, x) obj.d1ham_dia[n].add(0, 0, x) return obj
[docs]def get_LVC_set1(): """ Parameters for **Fulvene** molecule References: 1. Izmaylov, A. F.; Mendive-Tapia, D.; Bearpark, M. J.; Robb, M. A.; Tully, J. C.; Frisch, M. J. JCP, 2011, 135, 234106 2. Sun, X.; Geva, E. J. Chem. Phys. 2016, 144, 244105 (files) Args: None Returns: dictionary: params, will contain the parameters: * **params["omega_DA"]** ( double ): donor-acceptor energy gap [ units: Ha ] TODO: how is this different from Delta2 - Delta1? * **params["Delta1"]** ( double ): energy minimum of the lower state [ units: Ha ] * **params["Delta2"]** ( double ): energy minimum of the upper state [ units: Ha ] * **params["Er"]** ( double ): reorganization energy [ units: Ha ] * **params["omega"]** ( list on ndof doubles ): normal modes frequencies same for both electronic states [ units: Ha ] * **params["d1"]** ( list on ndof doubles ): electron-phonon couplings for the lower state [ units: Ha/Bohr ] * **params["d2"]** ( list on ndof doubles ): electron-phonon couplings for the upper state [ units: Ha/Bohr ] * **params["coup"]** ( list on ndof doubles ): electron-phonon couplings [ units: Ha/Bohr ] """ params = {} params["omega_DA"] = 0.0989 # Donor-Acceptor energy gap, a.u. params["Er"] = 0.0887 # Reorganization energy, a.u. params["Delta1"] = 0.0 params["Delta2"] = 1.8764e-01 params["omega"] = [9.8662e-04, 1.7237e-03, 2.4190e-03, 2.8634e-03, 3.3546e-03, 3.4833e-03, 3.6851e-03, 3.8835e-03, 4.3459e-03, 4.1842e-03, 4.3828e-03, 4.4617e-03, 4.6002e-03, 5.1482e-03, 5.1310e-03, 5.7261e-03, 5.7567e-03, 6.7668e-03, 7.7550e-03, 7.2129e-03, 7.6025e-03, 7.9270e-03, 8.2881e-03, 8.5797e-03, 1.6669e-02, 1.7018e-02, 1.7046e-02, 1.7134e-02, 1.7176e-02, 1.7397e-02 ] params["d1"] = [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ] params["d2"] = [0.0 ,-9.6755e-09, 0.0 , 0.0 , 6.4918e-03, 0.0 , 0.0 , 0.0 , 2.9431e-07, 0.0 , 0.0 , 0.0 , 7.1471e-03, 3.9572e-08, 6.4988e-03, 1.9246e-06,-7.4781e-03,-6.4437e-07, 1.1289e-07, 7.2115e-03, 5.5555e-03,-1.8578e-02, 6.9979e-07, 2.6226e-02,-3.6746e-03, -4.7285e-07, 7.4650e-04,-7.3343e-07,-6.4173e-04, 1.1643e-07 ] params["coup"] = [0.0 ,-2.2284e-04, 0.0 , 0.0 ,-3.6072e-09, 0.0 , 0.0 , 0.0 , 6.5332e-03, 0.0 , 0.0 , 0.0 ,-1.5055e-07, 5.2140e-03,-3.0083e-08, 6.0433e-04, 1.2886e-07, 6.2708e-03, 1.0772e-02, 3.7441e-07, 1.4169e-07,-2.3477e-08,-3.8450e-03,-4.2660e-08, 1.5939e-09, 5.4285e-05,-2.5890e-08,-3.9978e-04, 7.9818e-08, 2.2991e-05 ] return params
[docs]def get_LVC_set1b(): """ Parameters for **Fulvene** molecule From the NEFGRL_Fulvene.cpp code References: 1. Sun, X.; Geva, E. J. Chem. Phys. 2016, 144, 244105 (code!) Args: None Returns: dictionary: params, will contain the parameters: * **params["omega_DA"]** ( double ): donor-acceptor energy gap [ units: Ha ] TODO: how is this different from Delta2 - Delta1? * **params["Delta1"]** ( double ): energy minimum of the lower state [ units: Ha ] * **params["Delta2"]** ( double ): energy minimum of the upper state [ units: Ha ] * **params["Er"]** ( double ): reorganization energy [ units: Ha ] * **params["omega"]** ( list on ndof doubles ): normal modes frequencies same for both electronic states [ units: Ha ] * **params["d1"]** ( list on ndof doubles ): electron-phonon couplings for the lower state [ units: Ha/Bohr ] * **params["d2"]** ( list on ndof doubles ): electron-phonon couplings for the upper state [ units: Ha/Bohr ] * **params["coup"]** ( list on ndof doubles ): electron-phonon couplings [ units: Ha/Bohr ] """ params = {} params["omega_DA"] = 0.0989 # Donor-Acceptor energy gap, a.u. params["Er"] = 0.0887 # Reorganization energy, a.u. params["Delta1"] = 0.0 params["Delta2"] = 1.8764e-01 params["omega"] = [0.00098662, 0.0017237, 0.002419, 0.0028634, 0.0033546, 0.0034833, 0.0036851, 0.0038835, 0.0043459, 0.0041842, 0.0043828, 0.0044617, 0.0046002, 0.0051482, 0.005131, 0.0057261, 0.0057567, 0.0067668, 0.007755, 0.0072129, 0.0076025, 0.007927, 0.0082881, 0.0085797, 0.016669, 0.017018, 0.017046, 0.017134, 0.017176, 0.017397 ] params["d1"] = [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ] params["d2"] = [ 0.0, -4.017e-10, 0.0, 0.0, 0.000376, 0.0, 0.0, 0.0, 1.9402e-08, 0.0, 0.0, 0.0, 0.00048475, 2.8393e-09, 0.00046551, 1.4564e-07,-0.00056739,-5.3006e-08, 9.9417e-09, 0.00061246, 0.0004844, -0.0016541, 6.3709e-08, 0.0024292,-0.00047442, -6.1685e-08, 9.7464e-05,-9.6004e-08,-8.4104e-05, 1.5356e-08 ] params["coup"] = [ 0.0,-9.2519e-06, 0.0, 0.0,-2.0893e-10, 0.0, 0.0, 0.0, 0.00043069, 0.0, 0.0, 0.0,-1.0211e-08, 0.00037411,-2.1549e-09, 4.573e-05, 9.7768e-09, 0.00051583, 0.0009486, 3.1798e-08, 1.2354e-08,-2.0903e-09,-0.00035004,-3.9514e-09, 2.0579e-10, 7.0815e-06,-3.3803e-09, -5.233e-05, 1.0461e-08, 3.0324e-06 ] return params
[docs]def get_LVC_set2(): """ Parameters for **2,6-bis(methylene)adamantyl (BMA)** radical cation References: 1. Izmaylov, A. F.; Mendive-Tapia, D.; Bearpark, M. J.; Robb, M. A.; Tully, J. C.; Frisch, M. J. JCP, 2011, 135, 234106 2. Sun, X.; Geva, E. J. Chem. Phys. 2016, 144, 244105 (files) Args: None Returns: dictionary: params, will contain the parameters: * **params["omega_DA"]** ( double ): donor-acceptor energy gap [ units: Ha ] TODO: how is this different from Delta2 - Delta1? * **params["Delta1"]** ( double ): energy minimum of the lower state [ units: Ha ] * **params["Delta2"]** ( double ): energy minimum of the upper state [ units: Ha ] * **params["Er"]** ( double ): reorganization energy [ units: Ha ] * **params["omega"]** ( list on ndof doubles ): normal modes frequencies same for both electronic states [ units: Ha ] * **params["d1"]** ( list on ndof doubles ): electron-phonon couplings for the lower state [ units: Ha/Bohr ] * **params["d2"]** ( list on ndof doubles ): electron-phonon couplings for the upper state [ units: Ha/Bohr ] * **params["coup"]** ( list on ndof doubles ): electron-phonon couplings [ units: Ha/Bohr ] """ params = {} params["omega_DA"] = 0.0 # Donor-Acceptor energy gap, a.u. params["Er"] = 0.0297 # Reorganization energy, a.u. params["Delta1"] = 0.0 params["Delta2"] = 2.9255e-02 params["omega"] =[ 1.4364e-04, 7.0042e-04, 1.3609e-03, 1.4446e-03, 1.5662e-03, 1.7429e-03, 1.9084e-03, 1.9872e-03, 2.0680e-03, 2.1338e-03, 2.2608e-03, 2.9137e-03, 3.0567e-03, 3.1336e-03, 3.5698e-03, 3.5937e-03, 3.6504e-03, 3.7280e-03, 3.9665e-03, 4.2489e-03, 4.3519e-03, 4.4641e-03, 4.5020e-03, 4.5767e-03, 4.8162e-03, 4.8881e-03, 4.9876e-03, 5.0317e-03, 5.0655e-03, 5.3204e-03, 5.3536e-03, 5.5110e-03, 5.5488e-03, 5.7590e-03, 5.8294e-03, 5.9130e-03, 6.0599e-03, 6.1243e-03, 6.2667e-03, 6.4994e-03, 6.7154e-03, 6.7344e-03, 6.8892e-03, 6.9729e-03, 6.9762e-03, 7.1230e-03, 7.1467e-03, 7.2810e-03, 7.3408e-03, 7.4179e-03, 7.4193e-03, 7.4574e-03, 7.4792e-03, 7.5643e-03, 7.5861e-03, 7.8827e-03, 7.9413e-03, 8.1991e-03, 8.2369e-03, 8.2473e-03, 8.2744e-03, 8.7380e-03, 1.6495e-02, 1.6496e-02, 1.6500e-02, 1.6500e-02, 1.6556e-02, 1.6590e-02, 1.6717e-02, 1.6724e-02, 1.6779e-02, 1.6789e-02, 1.7025e-02, 1.7032e-02, 1.7032e-02, 1.7038e-02, 1.7316e-02, 1.7437e-02] params["d1"] = [ 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ] params["d2"] = [ 9.5316e-08,-6.1610e-09, 2.1465e-08, 1.3506e-08,-1.2410e-08, -9.7421e-05, 7.4580e-08, 5.1857e-08, 1.9686e-07,-7.8621e-05, 2.6906e-08, 6.8739e-04, 2.5550e-08, 1.9812e-07,-8.6642e-05, -5.5297e-09,-5.6090e-09, 1.5535e-07,-7.0806e-04, 7.5569e-09, -1.6777e-09, 6.9802e-08, 1.1450e-07,-1.4488e-03, 1.1084e-08, 2.2397e-08, 1.0841e-07,-2.4316e-03, 2.3064e-07, 1.2244e-04, -5.4065e-09, 1.8170e-08, 1.8416e-08, 8.6517e-08, 4.6066e-08, 4.2798e-04, 4.3259e-08, 3.1798e-09,-3.0551e-08,-2.5659e-03, 1.0659e-02,-5.0572e-08, 6.6957e-08, 3.9842e-08,-2.4300e-08, 3.0742e-03, 3.4232e-08,-5.2202e-08,-8.4530e-08, 3.9075e-08, 2.3079e-08, 5.7213e-03, 1.5880e-07,-4.9429e-07,-9.5236e-03, -4.3176e-03, 5.2027e-03,-9.5068e-09,-5.1084e-08, 3.1476e-08, 2.1445e-04, 1.1784e-02,-5.5719e-08,-1.7616e-07, 1.0770e-07, 2.2482e-05, 9.4927e-04,-7.3844e-04,-1.8251e-07, 1.4299e-04, 1.4446e-09, 1.0025e-04, 2.9834e-08, 2.1950e-07,-4.7783e-08, 9.4639e-05,-8.9160e-08, 1.3428e-10] params["coup"] = [-2.1202e-09,-6.5125e-10,-1.0931e-05, 1.3263e-08,-3.4265e-10, -9.3686e-10,-9.2689e-09,-3.0003e-04, 2.8083e-09,-7.5714e-09, 1.9786e-04,-5.6040e-09,-1.9112e-09,-8.9604e-10,-9.0550e-10, 2.6481e-04, 4.7121e-09, 1.3096e-09,-4.7597e-09, 1.1808e-08, 1.6810e-09, 2.2826e-09,-1.7983e-09, 2.8143e-09, 4.1939e-06, -2.9435e-09, 2.2324e-04,-2.9482e-09, 1.2870e-09,-4.5466e-10, -7.5413e-09, 2.9948e-09, 2.4552e-10,-1.0830e-09,-1.4443e-05, 1.9933e-10,-2.4312e-09, 3.1468e-09,-2.6851e-04, 1.0466e-09, -2.4879e-09,-1.9627e-04, 1.2039e-11,-1.9576e-09, 3.0448e-09, -4.8520e-10,-5.7719e-09, 2.7622e-04, 6.2422e-10, 7.0792e-04, -3.4547e-08, 3.2337e-09, 4.1860e-09,-4.4150e-09,-1.4466e-09, 1.2159e-09,-3.4545e-10,-2.3328e-05, 6.0943e-09, 2.9680e-09, 2.3591e-09, 1.6218e-10, 2.2328e-04,-2.7163e-07, 3.7086e-07, -1.5156e-07,-3.0636e-10, 4.7115e-11, 2.6172e-10, 3.4384e-10, -1.4759e-10,-6.3461e-10, 2.1464e-05,-1.0486e-08, 3.4116e-08, 8.3360e-09,-2.1252e-11, 1.9538e-10] return params
[docs]def get_LVC_set3(): """ Parameters for **2-methylene-6-isopropylidene-adamantyl (MIA)** radical cation References: 1. Izmaylov, A. F.; Mendive-Tapia, D.; Bearpark, M. J.; Robb, M. A.; Tully, J. C.; Frisch, M. J. JCP, 2011, 135, 234106 2. Sun, X.; Geva, E. J. Chem. Phys. 2016, 144, 244105 (files) Args: None Returns: dictionary: params, will contain the parameters: * **params["omega_DA"]** ( double ): donor-acceptor energy gap [ units: Ha ] TODO: how is this different from Delta2 - Delta1? * **params["Delta1"]** ( double ): energy minimum of the lower state [ units: Ha ] * **params["Delta2"]** ( double ): energy minimum of the upper state [ units: Ha ] * **params["Er"]** ( double ): reorganization energy [ units: Ha ] * **params["omega"]** ( list on ndof doubles ): normal modes frequencies same for both electronic states [ units: Ha ] * **params["d1"]** ( list on ndof doubles ): electron-phonon couplings for the lower state [ units: Ha/Bohr ] * **params["d2"]** ( list on ndof doubles ): electron-phonon couplings for the upper state [ units: Ha/Bohr ] * **params["coup"]** ( list on ndof doubles ): electron-phonon couplings [ units: Ha/Bohr ] """ params = {} params["omega_DA"] = 0.0250 # Donor-Acceptor energy gap, a.u. params["Er"] = 0.0274 # Reorganization energy, a.u. params["Delta1"] = 0.0 params["Delta2"] = 2.4615e-03 params["omega"] = [3.2508e-05, 1.7800e-04, 3.3693e-04, 4.1833e-04, 6.8418e-04, 1.0397e-03, 1.3946e-03, 1.4123e-03, 1.4261e-03, 1.6660e-03, 1.8807e-03, 2.0590e-03, 2.0805e-03, 2.1475e-03, 2.2491e-03, 2.2329e-03, 2.4462e-03, 2.8244e-03, 3.0722e-03, 3.1405e-03, 3.4162e-03, 3.6092e-03, 3.7397e-03, 3.9021e-03, 4.3558e-03, 4.4143e-03, 4.4535e-03, 4.5541e-03, 4.7120e-03, 4.8109e-03, 4.8773e-03, 4.9855e-03, 5.0807e-03, 5.2753e-03, 5.3127e-03, 5.3129e-03, 5.3464e-03, 5.3726e-03, 5.5480e-03, 5.7395e-03, 5.7591e-03, 5.8360e-03, 5.9218e-03, 5.9608e-03, 6.0464e-03, 6.0585e-03, 6.2956e-03, 6.4666e-03, 6.5128e-03, 6.7295e-03, 6.7562e-03, 6.9176e-03, 6.9796e-03, 7.0121e-03, 7.1426e-03, 7.3223e-03, 7.3390e-03, 7.3420e-03, 7.3924e-03, 7.5859e-03, 7.4797e-03, 7.4872e-03, 7.5688e-03, 7.5837e-03, 7.8091e-03, 7.8638e-03, 7.9243e-03, 8.2062e-03, 8.2415e-03, 8.2545e-03, 8.2611e-03, 8.2762e-03, 8.2851e-03, 8.3019e-03, 8.3351e-03, 8.7153e-03, 1.6243e-02, 1.6246e-02, 1.6513e-02, 1.6494e-02, 1.6497e-02, 1.6499e-02, 1.6635e-02, 1.6791e-02, 1.6795e-02, 1.6812e-02, 1.6824e-02, 1.7022e-02, 1.7028e-02, 1.7030e-02, 1.7035e-02, 1.7042e-02, 1.7041e-02, 1.7132e-02, 1.7152e-02, 1.7487e-02] params["d1"] = [ 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ] params["d2"] = [-9.3059e-07, 8.4944e-06, 7.4335e-08, 2.0297e-06,-3.7710e-06, 2.1909e-08,-4.0926e-07, 2.9569e-04, 4.3562e-06, 8.9344e-08, -3.5440e-07, 1.3791e-08, 5.6661e-06,-3.0083e-06,-3.2434e-07, 2.5619e-04, 1.4481e-08,-1.0063e-03, 1.8627e-07,-4.6159e-08, 3.4012e-04, 1.8648e-07,-6.1249e-08,-9.3485e-04,-1.8160e-07, -8.7524e-04,-3.3247e-08, 7.0389e-09, 1.9783e-03, 1.6186e-06, -1.1568e-07, 9.2399e-06,-1.2792e-03,-1.4293e-05,-9.4604e-07, 3.5716e-04,-5.7517e-08,-6.0132e-08, 2.4542e-08, 9.2559e-07, 3.8842e-07,-1.8082e-06,-1.9601e-04, 4.6979e-03,-5.0499e-08, 5.0949e-07, 8.6207e-07, 1.3872e-08,-4.7376e-03,-2.6562e-05, 8.3913e-03, 3.5207e-08,-1.0936e-07,-2.9351e-08, 3.8685e-08, -3.0709e-05, 2.4427e-07,-7.3767e-05,-1.1101e-09, 1.5333e-05, -2.1237e-06, 4.8574e-03, 1.0793e-06,-9.4477e-03, 7.8155e-09, 3.4019e-03, 6.3308e-03,-4.9945e-06,-1.3774e-08, 4.8773e-08, 1.1593e-07, 2.3460e-04, 4.0232e-04,-1.2460e-06,-1.5580e-06, 1.0918e-02,-1.5678e-06, 9.8301e-04,-1.9782e-05,-3.9410e-07, -7.4772e-07, 7.9329e-05,-5.3783e-04, 6.9299e-07,-2.4104e-04, 2.0601e-07,-1.8099e-04,-2.1600e-06,-1.8077e-07, 1.1563e-07, -2.0867e-05, 1.0952e-05, 3.6633e-08,-1.4219e-07,-4.8473e-04, -6.9929e-08 ] params["coup"] = [-7.5605e-08,-2.6194e-04, 1.2815e-08,-8.9199e-09, 1.7312e-04, -1.3217e-07, 2.2498e-08,-1.8086e-08, 5.4675e-06,-4.4629e-08, -5.1885e-09,-1.9681e-09, 2.0204e-07, 3.0435e-04,-2.1092e-04, 4.6172e-07,-1.0543e-08,-1.1249e-06,-6.0323e-09, 1.3708e-08, 2.1967e-07,-3.1861e-09,-1.2269e-08,-1.1196e-06,-2.3180e-10, -4.2942e-07,-8.8920e-09,-1.5255e-08, 1.5843e-06,-1.4916e-05, 6.8481e-10,-1.9256e-04,-1.2818e-06, 1.6108e-04, 5.6228e-08, 8.4848e-07, 4.6372e-09, 2.3664e-08, 2.2254e-08,-2.9472e-09, -1.0357e-08, 7.5914e-05,-5.5114e-07, 5.6788e-06,-8.5787e-11, -2.2638e-09,-2.5682e-04,-5.2163e-08,-5.4077e-06,-1.8016e-04, 8.5315e-06, 1.9762e-08, 1.3012e-09,-1.5839e-08, 1.0844e-09, 2.5769e-04, 8.2685e-09,-3.1629e-06, 1.4173e-07,-6.6751e-04, -2.5883e-08, 6.3272e-06,-3.3997e-09,-1.0092e-05, 1.9688e-09, 3.8059e-06, 7.1273e-06, 3.0660e-05, 2.7060e-09,-1.5311e-09, -1.1344e-08, 1.0562e-06, 1.5417e-06, 5.3452e-05, 2.1900e-09, 1.1678e-05,-3.2130e-08, 1.3009e-06,-2.2548e-04, 4.9117e-07, -5.7472e-07,-2.7713e-05,-8.7741e-07, 9.1542e-10,-4.1811e-08, -4.8796e-08, 2.2447e-07, 1.7331e-05,-1.4452e-08,-2.7777e-08, -1.0289e-06,-6.2780e-05,-2.7487e-06, 4.5328e-08,-4.3900e-07, 9.7814e-12 ] return params