From ab4b5bef78a8185e85cff11f93765de9de27b472 Mon Sep 17 00:00:00 2001 From: Alessandro Pecchia Date: Wed, 6 Mar 2024 22:11:23 +0100 Subject: [PATCH] Add test inelastic_H56 --- test/app/dftb+/tests | 1 + .../app/dftb+/transport/inelastic_H56/H56.gen | 58 +++++++++ .../transport/inelastic_H56/_autotest.tag | 86 ++++++++++++++ .../dftb+/transport/inelastic_H56/charges.dat | 39 ++++++ .../dftb+/transport/inelastic_H56/dftb_in.hsd | 112 ++++++++++++++++++ .../inelastic_H56/shiftcont_drain.dat | 6 + .../inelastic_H56/shiftcont_source.dat | 6 + test/app/dftb+/transport/inelastic_H56/slakos | 1 + 8 files changed, 309 insertions(+) create mode 100644 test/app/dftb+/transport/inelastic_H56/H56.gen create mode 100644 test/app/dftb+/transport/inelastic_H56/_autotest.tag create mode 100644 test/app/dftb+/transport/inelastic_H56/charges.dat create mode 100644 test/app/dftb+/transport/inelastic_H56/dftb_in.hsd create mode 100644 test/app/dftb+/transport/inelastic_H56/shiftcont_drain.dat create mode 100644 test/app/dftb+/transport/inelastic_H56/shiftcont_source.dat create mode 120000 test/app/dftb+/transport/inelastic_H56/slakos diff --git a/test/app/dftb+/tests b/test/app/dftb+/tests index 2b3148b20a..c6602fae78 100644 --- a/test/app/dftb+/tests +++ b/test/app/dftb+/tests @@ -480,6 +480,7 @@ transport/SiH-chain_semiInf #? WITH_TRANSPORT and MPI_PROCS <= 2 and transport/local-curr #? WITH_TRANSPORT and MPI_PROCS <= 4 and LONG_TEST transport/polyacetylene_semiInf #? WITH_TRANSPORT and MPI_PROCS <= 4 transport/H-sheet_end #? WITH_TRANSPORT and MPI_PROCS <= 4 +transport/inelastic_H56 #? WITH_TRANSPORT and MPI_PROCS <= 4 pp-RPA/ethene #? not WITH_MPI pp-RPA/benzene_TammDancoff #? not WITH_MPI diff --git a/test/app/dftb+/transport/inelastic_H56/H56.gen b/test/app/dftb+/transport/inelastic_H56/H56.gen new file mode 100644 index 0000000000..31dcb8a075 --- /dev/null +++ b/test/app/dftb+/transport/inelastic_H56/H56.gen @@ -0,0 +1,58 @@ + 56 C + H + 1 1 0.0000000000 0.0000000000 20.06400000 + 1 1 0.0000000000 0.0000000000 21.73600000 + 1 1 0.0000000000 0.0000000000 23.40800000 + 1 1 0.0000000000 0.0000000000 25.08000000 + 1 1 0.0000000000 0.0000000000 26.75200000 + 1 1 0.0000000000 0.0000000000 28.42400000 + 1 1 0.0000000000 0.0000000000 30.09600000 + 1 1 0.0000000000 0.0000000000 31.76800000 + 1 1 0.0000000000 0.0000000000 33.44000000 + 1 1 0.0000000000 0.0000000000 35.11200000 + 1 1 0.0000000000 0.0000000000 36.78400000 + 1 1 0.0000000000 0.0000000000 38.45600000 + 1 1 0.0000000000 0.0000000000 40.12800000 + 1 1 0.0000000000 0.0000000000 41.80000000 + 1 1 0.0000000000 0.0000000000 43.47200000 + 1 1 0.0000000000 0.0000000000 45.14400000 + 1 1 0.0000000000 0.0000000000 46.81600000 + 1 1 0.0000000000 0.0000000000 48.48800000 + 1 1 0.0000000000 0.0000000000 50.16000000 + 1 1 0.0000000000 0.0000000000 51.83200000 + 1 1 0.0000000000 0.0000000000 53.50400000 + 1 1 0.0000000000 0.0000000000 55.17600000 + 1 1 0.0000000000 0.0000000000 56.84800000 + 1 1 0.0000000000 0.0000000000 58.52000000 + 1 1 0.0000000000 0.0000000000 60.19200000 + 1 1 0.0000000000 0.0000000000 61.86400000 + 1 1 0.0000000000 0.0000000000 63.53600000 + 1 1 0.0000000000 0.0000000000 65.20800000 + 1 1 0.0000000000 0.0000000000 66.88000000 + 1 1 0.0000000000 0.0000000000 68.55200000 + 1 1 0.0000000000 0.0000000000 70.22400000 + 1 1 0.0000000000 0.0000000000 71.89600000 + 1 1 0.0000000000 0.0000000000 73.56800000 + 1 1 0.0000000000 0.0000000000 75.24000000 + 1 1 0.0000000000 0.0000000000 76.91200000 + 1 1 0.0000000000 0.0000000000 78.58400000 + 1 1 0.0000000000 0.0000000000 11.70400000 + 1 1 0.0000000000 0.0000000000 13.37600000 + 1 1 0.0000000000 0.0000000000 15.04800000 + 1 1 0.0000000000 0.0000000000 16.72000000 + 1 1 0.0000000000 0.0000000000 18.39200000 + 1 1 0.0000000000 0.0000000000 3.34400000 + 1 1 0.0000000000 0.0000000000 5.01600000 + 1 1 0.0000000000 0.0000000000 6.68800000 + 1 1 0.0000000000 0.0000000000 8.36000000 + 1 1 0.0000000000 0.0000000000 10.03200000 + 1 1 0.0000000000 0.0000000000 80.25600000 + 1 1 0.0000000000 0.0000000000 81.92800000 + 1 1 0.0000000000 0.0000000000 83.60000000 + 1 1 0.0000000000 0.0000000000 85.27200000 + 1 1 0.0000000000 0.0000000000 86.94400000 + 1 1 0.0000000000 0.0000000000 88.61600000 + 1 1 0.0000000000 0.0000000000 90.28800000 + 1 1 0.0000000000 0.0000000000 91.96000000 + 1 1 0.0000000000 0.0000000000 93.63200000 + 1 1 0.0000000000 0.0000000000 95.30400000 diff --git a/test/app/dftb+/transport/inelastic_H56/_autotest.tag b/test/app/dftb+/transport/inelastic_H56/_autotest.tag new file mode 100644 index 0000000000..29b249ad10 --- /dev/null +++ b/test/app/dftb+/transport/inelastic_H56/_autotest.tag @@ -0,0 +1,86 @@ +orbital_charges :real:2:1,56 + 0.964304436461000E+000 0.988766303493806E+000 0.991862356579731E+000 + 0.995352807344939E+000 0.995675521465277E+000 0.998108251807974E+000 + 0.997772091552643E+000 0.999199342903761E+000 0.998796449309986E+000 + 0.999636253639900E+000 0.999446873437843E+000 0.999732952804350E+000 + 0.100006135085577E+001 0.999616053517316E+000 0.100009073199037E+001 + 0.999756153334975E+000 0.100008319215386E+001 0.999833031645192E+000 + 0.100032940983719E+001 0.999769275042423E+000 0.100017609788728E+001 + 0.999985391410162E+000 0.100007708848346E+001 0.100023596905206E+001 + 0.100027432043517E+001 0.100045159897265E+001 0.100025222149632E+001 + 0.100105724667795E+001 0.100070774564183E+001 0.100186592513292E+001 + 0.100228969595361E+001 0.100299768579976E+001 0.100568863223657E+001 + 0.100601644748714E+001 0.101238219076651E+001 0.103205101660434E+001 + 0.100000000000000E+001 0.100000000000000E+001 0.100000000000000E+001 + 0.999999999999998E+000 0.100000000000000E+001 0.999999999999999E+000 + 0.100000000000000E+001 0.999999999999999E+000 0.100000000000000E+001 + 0.100000000000000E+001 0.999999999999997E+000 0.100000000000000E+001 + 0.100000000000000E+001 0.100000000000000E+001 0.100000000000000E+001 + 0.100000000000000E+001 0.100000000000000E+001 0.100000000000000E+001 + 0.100000000000000E+001 0.100000000000000E+001 +total_energy :real:0: + -0.106067595250604E+002 +end_coords :real:2:3,56 + 0.000000000000000E+000 0.000000000000000E+000 0.379154622348475E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.410750840877515E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.442347059406554E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.473943277935594E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.505539496464634E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.537135714993673E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.568731933522713E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.600328152051752E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.631924370580792E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.663520589109832E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.695116807638871E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.726713026167911E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.758309244696950E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.789905463225990E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.821501681755030E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.853097900284069E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.884694118813109E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.916290337342148E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.947886555871188E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.979482774400227E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.101107899292927E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.104267521145831E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.107427142998735E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.110586764851639E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.113746386704543E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.116906008557446E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.120065630410350E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.123225252263254E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.126384874116158E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.129544495969062E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.132704117821966E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.135863739674870E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.139023361527774E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.142182983380678E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.145342605233582E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.148502227086486E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.221173529703277E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.252769748232317E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.284365966761356E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.315962185290396E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.347558403819436E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.631924370580792E+001 + 0.000000000000000E+000 0.000000000000000E+000 0.947886555871188E+001 + 0.000000000000000E+000 0.000000000000000E+000 0.126384874116158E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.157981092645198E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.189577311174238E+002 + 0.000000000000000E+000 0.000000000000000E+000 0.151661848939390E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.154821470792294E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.157981092645198E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.161140714498102E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.164300336351006E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.167459958203910E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.170619580056814E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.173779201909718E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.176938823762622E+003 + 0.000000000000000E+000 0.000000000000000E+000 0.180098445615526E+003 +contact_currents :real:1:5 + -0.685902564172867E-004 -0.685906842675745E-004 -0.685907919320037E-004 + -0.685905882558807E-004 -0.685900925050807E-004 +dipole_moments :real:2:3,1 + 0.000000000000000E+000 0.000000000000000E+000 -0.645666596285068E+001 +scaled_dipole :real:2:3,1 + 0.000000000000000E+000 0.000000000000000E+000 -0.645666596285068E+001 diff --git a/test/app/dftb+/transport/inelastic_H56/charges.dat b/test/app/dftb+/transport/inelastic_H56/charges.dat new file mode 100644 index 0000000000..3b9dc554bb --- /dev/null +++ b/test/app/dftb+/transport/inelastic_H56/charges.dat @@ -0,0 +1,39 @@ + 6 + F F F T 36 1 35.994720471628732 + 0.96430047259048890 + 0.98877465187231983 + 0.99186281359850370 + 0.99535206092231376 + 0.99567661817646014 + 0.99811064684902384 + 0.99777304781107312 + 0.99920176912324277 + 0.99879579805510521 + 0.99963773017115887 + 0.99944594567967748 + 0.99973411367475651 + 1.0000612683028616 + 0.99961687882150785 + 1.0000912169893494 + 0.99975600490893590 + 1.0000832015847512 + 0.99983160700146090 + 1.0003281523501222 + 0.99976680519554606 + 1.0001738151716075 + 0.99998290666899137 + 1.0000752467322078 + 1.0002351998983723 + 1.0002739513860528 + 1.0004529759528313 + 1.0002532761444487 + 1.0010597289788377 + 1.0007095329485265 + 1.0018683272309454 + 1.0022919195426199 + 1.0030000988549068 + 1.0056927232917574 + 1.0060177703746394 + 1.0123773913819509 + 1.0320548033913781 + 0 0 diff --git a/test/app/dftb+/transport/inelastic_H56/dftb_in.hsd b/test/app/dftb+/transport/inelastic_H56/dftb_in.hsd new file mode 100644 index 0000000000..71404dc92e --- /dev/null +++ b/test/app/dftb+/transport/inelastic_H56/dftb_in.hsd @@ -0,0 +1,112 @@ +Geometry = GenFormat { +<<< 'H56.gen' +} + +Transport { + Device { + AtomRange = 1 36 + FirstLayerAtoms = 1 7 13 19 25 31 + } + Contact { + Id = "source" + AtomRange = 37 46 + Potential [eV] = -0.5 + FermiLevel = -0.235474745317908463 + Temperature = 0.00001 + } + Contact { + Id = "drain" + AtomRange = 47 56 + Potential [eV] = +0.5 + FermiLevel = -0.235474745317908463 + Temperature = 0.00001 + } + Task = UploadContacts{} + readBinaryContact = No +} + +Hamiltonian = DFTB { + SCC =Yes + MaxSCCIterations = 2 + ReadInitialCharges = Yes + ConvergentSCCOnly = No + + MaxAngularMomentum = { + H = "s" + } + Electrostatics = Poisson { + Poissonbox [Angstrom] = 10.0 10.0 100.0 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "slakos/origin/mio-1-1/" + Separator = "-" + Suffix = ".skf" + } + + # This is a trick to enforce a Poisson hence bias potential + # but performs a non-scc transport calculation (MaxIterations=1) + Solver = GreensFunction{ + contourPoints = {22 26} + realAxisPoints = 48 + EnclosedPoles = 0 + } + #Solver = TransportOnly{} +} + +Dephasing { + # Elastic = Diagonal{ + # Coupling [eV] = Constant { 0.50 } + # MaxSCBAIterations = 10 + # } + + Inelastic = PolarOptical{ + Coupling [eV] = Constant { 1.0 } + PhononFrequency [eV] = 0.14 + EpsInfinity = 1.0 + Eps0 = 3.0 + ScreeningLength = 10.0 + MaxSCBAIterations = 50 + SCBATolerance = 1e-5 + Tridiagonal = Yes + } + +} + +Analysis = { + #Compatible with coherent or elastic scattering + #TunnelingAndDos{ + # verbosity = 90 + # EnergyRange [eV] = -9.00 -1.85 + # EnergyStep [eV] = 0.1 + # ComputeLDos = Yes + # #NOTE: localDOS is computed only without dephasing. + # # Possibly this can be adjusted as DOS goes with Gr which is computed + #} + #Compatible with inelastic scattering + LayerCurrents { + #verbosity = 99 + EnergyRange [eV] = -9.00 -5.60 + EnergyStep [eV] = 0.02 + } + #MeirWingreen{ + # verbosity = 70 + # EnergyRange [eV] = -9.00 -6.00 + # EnergyStep [eV] = 0.05 + #} +} + +Options{ + ReadChargesAsText = Yes + WriteChargesAsText = Yes + WriteAutotestTag = Yes +} + +ParserOptions = { + ParserVersion = 10 +} + +Parallel = { + # Allow OMP threads explicitely to test for hybrid parallelisation with + # MPI-binary. (Check the manual before using this in production runs!) + UseOmpThreads = Yes +} diff --git a/test/app/dftb+/transport/inelastic_H56/shiftcont_drain.dat b/test/app/dftb+/transport/inelastic_H56/shiftcont_drain.dat new file mode 100644 index 0000000000..3d0f7a6931 --- /dev/null +++ b/test/app/dftb+/transport/inelastic_H56/shiftcont_drain.dat @@ -0,0 +1,6 @@ + 2 + 10 1 1 1 F + 1 1 1 1 1 1 1 1 1 1 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.99999999999999745 1.0000000000000013 0.99999999999999967 1.0000000000000000 1.0000000000000002 1.0000000000000011 1.0000000000000002 1.0000000000000002 1.0000000000000007 1.0000000000000002 + Fermi level : -0.235474745317908463 H -6.407593834885182638 eV diff --git a/test/app/dftb+/transport/inelastic_H56/shiftcont_source.dat b/test/app/dftb+/transport/inelastic_H56/shiftcont_source.dat new file mode 100644 index 0000000000..6ce94afc61 --- /dev/null +++ b/test/app/dftb+/transport/inelastic_H56/shiftcont_source.dat @@ -0,0 +1,6 @@ + 2 + 10 1 1 1 F + 1 1 1 1 1 1 1 1 1 1 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0000000000000013 0.99999999999999967 1.0000000000000020 0.99999999999999800 1.0000000000000020 0.99999999999999933 1.0000000000000011 0.99999999999999878 1.0000000000000009 0.99999999999999989 + Fermi level : -0.235474745317908407 H -6.407593834885180861 eV diff --git a/test/app/dftb+/transport/inelastic_H56/slakos b/test/app/dftb+/transport/inelastic_H56/slakos new file mode 120000 index 0000000000..0adf3888e4 --- /dev/null +++ b/test/app/dftb+/transport/inelastic_H56/slakos @@ -0,0 +1 @@ +/home/pecchia/projects/dftb+/dftbplus-inelastic/external/slakos/ \ No newline at end of file