[DFTB-Plus-User] DFTB+NEGF: the Oxide radius

Gabriele Penazzi gabriele.penazzi at bccms.uni-bremen.de
Sat Apr 20 19:46:30 CEST 2013


Dear Yuranan,

I've tried to play a little bit around with your input files and tried 
some basic tests.
Apparently is a problem of convergence of the Poisson solver and not 
really a bug.

You find an input file which works, even if not identical, in 
attachment. Some point to underline:

1) Usually the Poisson exit with an error if it doesn't converge. 
However, in some cases it diverges and gives back a NaN. In that case 
the calculation goes on giving completely unphysical result, therefore 
check always in the output if there's some error message related to the 
poisson.

2) Convergency issues can be due to sharp discontinuities. A value 
TransitionLength allows to gradually modify the dielectric constant and 
avoid sharp discontinuity. The value is set to 1.0 as default, 0.0 is 
also a legitimate value. If you experience convergence problem you can 
try a lower dielectric constant just to be sure that the problem is there.

3) Discontinuities should be far enough from the boundary conditions. In 
your case, I see that the insulator length can be larger than the gate 
length (hence, it shouldn't be a bug), but if it's too large, then it 
doesn't converge properly. Also, for this kind of calculation, be sure 
that the charge and the potential at the boundary are smooth, otherwise 
the device region is probably too small.

4) After you commented that line out (which is right), the Insulator is 
set to a wrong default of 0.0, therefore you must always set an 
Insulator radius and length

5) I only tried structure with open boundary conditions in the z 
direction, with revision 4350.

This is the result of a quite quick check, which I publish here as more 
than one user is interested in these kind of calculation. However, I 
would like to underline  that this part is still not officially 
distributed and therefore default could (probably WILL) change in next 
releases.

Gabriele



On 04/18/2013 06:08 PM, Yuranan Hanlumyuang wrote:
> Hi,
>     I post a sample input files and structure here for testing.  If 
> you recall,
> there is a problem with the oxide radius setting in the 
> cylindrical-gate part
> of the code.  If you catch anything odd in the input, please let me 
> know. The testing inputs yielded no oxide thickness, in a regular dftb 
> run.
>
>     Furthermore, this set of input could run to completion when I 
> commented out the line
>
> if(Rmin_ins.lt.Rmin_gate) Rmin_ins=Rmin_gate
>
>      in parcheck.F90, and recompiled dftb. However, the gate length 
> was set to be longer than the length of the Poisson box.  When we 
> tried to correct the gate, length we obtained the error
>
>           scfsum: 3  NaN NaN NaN
>
>       In principles, one may test both settings using this set of 
> inputs. Any comments or solutions are welcome.
>
> Sincerely,
> Yuranan Hanlumyuang
> University of Houston
>
>
> On Tue, Apr 2, 2013 at 3:38 PM, <dftb-plus-user-request at dftb-plus.info 
> <mailto:dftb-plus-user-request at dftb-plus.info>> wrote:
>
>     Send DFTB-Plus-User mailing list submissions to
>     dftb-plus-user at dftb-plus.info <mailto:dftb-plus-user at dftb-plus.info>
>
>     To subscribe or unsubscribe via the World Wide Web, visit
>     http://www.dftb-plus.info/mailman/listinfo/dftb-plus-user
>     or, via email, send a message with subject or body 'help' to
>     dftb-plus-user-request at dftb-plus.info
>     <mailto:dftb-plus-user-request at dftb-plus.info>
>
>     You can reach the person managing the list at
>     dftb-plus-user-owner at dftb-plus.info
>     <mailto:dftb-plus-user-owner at dftb-plus.info>
>
>     When replying, please edit your Subject line so it is more specific
>     than "Re: Contents of DFTB-Plus-User digest..."
>
>
>     Today's Topics:
>
>        1. Compilation Problem (debs at iitk.ac.in <mailto:debs at iitk.ac.in>)
>        2. Re: DFTB+NEGF: the Oxide radius (Gabriele Penazzi)
>        3. Re: Compilation Problem (Jacek Jakowski)
>        4. cylindrical gate set up (Xiaobao)
>
>
>     ----------------------------------------------------------------------
>
>     Message: 1
>     Date: Tue, 2 Apr 2013 17:13:10 +0530
>     From: debs at iitk.ac.in <mailto:debs at iitk.ac.in>
>     To: dftb-plus-user at dftb-plus.info
>     <mailto:dftb-plus-user at dftb-plus.info>
>     Subject: [DFTB-Plus-User] Compilation Problem
>     Message-ID:
>     <6ac4f145f2e1f387c48945cf66642aab.squirrel at webmail1.iitk.ac.in
>     <mailto:6ac4f145f2e1f387c48945cf66642aab.squirrel at webmail1.iitk.ac.in>>
>     Content-Type: text/plain;charset=iso-8859-1
>
>     Hi,
>      I am new with DFTB+ and I am trying to install it in my Ubuntu
>     12.04 OS.
>     I am getting some error which I can not able to sort out. I am using
>     make.x86_64-linux-gfortran file. I have modified the make file and
>     it is
>     given below.
>
>
>     # -*- makefile -*-
>     ############################################################################
>     # System dependent Makefile options for
>     # Linux, gfortran (4.4.3) + Atlas (3.6.0)
>     ############################################################################
>
>     # Fortran 90 compiler
>     FC90 = gfortran
>
>     # Options for the Fortran 90 compiler
>     FC90OPT = -O2 -openmp -funroll-all-loops -fall-intrinsics
>
>     # Preprocessor (leave empty, if the compiler has a built in
>     preprocessor)
>     CPP = cpp -traditional
>
>     # Options for preprocessing
>     CPPOPT = -DDEBUG=$(DEBUG) #-DEXTERNALERFC
>
>     # Postprocessing of the preprocessor output (add-on pipe)
>     CPPPOST = $(ROOT)/utils/fpp/fpp.sh general
>
>     # Linker
>     LN = $(FC90)
>
>     # Linker options
>     LNOPT = -static
>
>     # Override options for different DEBUG modes
>     ifeq ($(DEBUG),1)
>         FC90OPT = -g -Wall -std=f2003 -pedantic -fall-intrinsics
>     -fbounds-check
>     endif
>     ifeq ($(DEBUG),2)
>         FC90OPT = -g -Wall -std=f2003 -pedantic -fall-intrinsics
>     -fbounds-check
>     endif
>     ifeq ($(DEBUG),3)
>         FC90OPT = -g -Wall -std=f2003 -pedantic -fall-intrinsics
>     -fbounds-check
>     endif
>
>     # Library options in general
>     ATLASDIR = /usr/lib
>     LIBOPT = -L$(ATLASDIR)
>
>     # How to link specific libraries
>     LIB_LAPACK = -llapack
>     LIB_BLAS = -lblas
>     # Threaded version may work as well
>     # LIB_BLAS = -lptf77blas -lptcblas -latlas
>
>
>
>     The error is given below.
>
>     /usr/lib/libblas.a(xerbla.o): In function `xerbla_':
>     (.text+0x0): multiple definition of `xerbla_'
>     /usr/lib/liblapack.a(xerbla.o):(.text+0x0): first defined here
>     collect2: ld returned 1 exit status
>     make[1]: *** [dftb+] Error 1
>     rm disp_common.f90 qm.f90 md_integrator.f90 slako_eq_grid.f90
>     short_gamma.f90 sk.f90 thirdorder.f90 rep_poly.f90 nhc_thermostat.f90
>     geoopt.f90 tokenreader.f90 scc_init.f90 mainio.f90 intrinsicpr.f90
>     dftb+.f90 formatout.f90 bisection.f90 inputdata_.f90 fifo.f90
>     memman.f90
>     fact.f90 xmlutils.f90 sort.f90 md_common.f90 disp_uff.f90
>     type_geometry.f90 densitymatrix.f90 shift.f90 etemp.f90 hsdutils.f90
>     eigensolver.f90 andersen_thermostat.f90 extcharge.f90 dftb_pls_u.f90
>     ext_erfc.f90 spinorbit.f90 stressTensor.f90 initprogram.f90
>     broyden_mixer.f90 unitconversion.f90 dispersion.f90 orbital_equiv.f90
>     angmomentum.f90 wrapped_pointers.f90 forces.f90 linmin.f90
>     diis_mixer.f90
>     repulsive.f90 accuracy.f90 mixer_adt.f90 stringlist.f90
>     general_list.f90
>     hermite.f90 hsdparser.f90 lapackroutines.f90 old_sk_data.f90
>     eigenvects.f90 type_geometry_hsd.f90 berendsen_thermostat.f90
>     linkedlist.f90 velocity_verlet.f90 charmanip.f90 energies.f90 scc.f90
>     disp_slaterkirkwood.f90 potentials.f90 disp_uff_data.f90 message.f90
>     taggedout.f90 parser.f90 blasroutines.f90 thermostat.f90
>     constraints.f90
>     nonscc.f90 numericalDerivs.f90 populations.f90 periodic.f90
>     hsdutils2.f90
>     temp_profile.f90 oldcompat.f90 slako_cont.f90 charge_constraints.f90
>     simple_algebra.f90 rep_spline.f90 common_types.f90
>     dummy_thermostat.f90
>     conjgrad.f90 sparse2dense.f90 simple_mixer.f90 stepdesc.f90
>     rep_cont.f90
>     allocate.f90 fileid.f90 coulomb.f90 constants.f90 interpolation.f90
>     spin.f90 anderson_mixer.f90 ranlux.f90
>     make[1]: Leaving directory
>     `/home/user/Downloads/dftb+_1.2.2_src/prg_dftb/_obj_x86_64-linux-gfortran'
>     make: *** [_obj_x86_64-linux-gfortran] Error 2
>
>     Thanking you in anticipation.
>                                       Regards
>                                       Deb Sankar De
>
>
>     ------------------------------
>
>     Message: 2
>     Date: Tue, 02 Apr 2013 15:47:08 +0200
>     From: Gabriele Penazzi <gabriele.penazzi at bccms.uni-bremen.de
>     <mailto:gabriele.penazzi at bccms.uni-bremen.de>>
>     To: dftb-plus-user at dftb-plus.info
>     <mailto:dftb-plus-user at dftb-plus.info>
>     Subject: Re: [DFTB-Plus-User] DFTB+NEGF: the Oxide radius
>     Message-ID: <515AE15C.1070206 at bccms.uni-bremen.de
>     <mailto:515AE15C.1070206 at bccms.uni-bremen.de>>
>     Content-Type: text/plain; charset="iso-8859-1"
>
>     Dear Yuranan,
>
>     that part has not been tested. If you can send your input file
>     (structure included) or a sample one in list I can give a look and see
>     if I spot a bug, as the input file looks fine to me.
>
>     Gabriele
>
>
>
>     On 03/28/2013 04:43 PM, Yuranan Hanlumyuang wrote:
>     > Hi
>     >
>     >    I am exploring the cylindrical gate option in the DFTB+NEGF code.
>     > This implementation is
>     > found in the poisson.f90 source code.  To set up a cylindrical
>     gate, I
>     > assigned  the following parameters
>     >
>     >     Gate = Cylindrical{
>     >         GateLength[Angstrom] = 10.0
>     >         GateRadius[Angstrom]= 11.0
>     >         Kappa=3.9
>     >         InsulatorLength[Angstrom]=20.0
>     >         InsulatorRadius[Angstrom]=7.0
>     >         GatePotential [eV] = 0.0001
>     >     }
>     >
>     >    However, after a number of checks,  the inner gate radius and
>     inner
>     > oxide radius
>     > always overlap, i.e. no oxide exists in the computation. I am
>     > wondering if this is a bug in
>     > the code, or I have skipped some steps.   The following is an
>     example
>     > of the main output.
>     > The gate radius clearly coincides with the oxide radius...
>     >
>     > init Poisson ...
>     >  Atomic density tolerance:    1.0000000000000001E-005
>     >  Resulting atomic density cutoff:    7.5048399163437232      a.u.
>     >  Input PoissonBox=   25.0000   25.0000   25.0000  A
>     >  PoissAcc=   9.9999999999999995E-008
>     >  Bulk Boundary Potential:    No
>     >  Atomic cutoff radius=   3.9713905411161612      A
>     >  Gate: Cylindrical
>     >  Gate bias=   1.0000000000000000E-004 V
>     >  Gate length=   10.000000000000000      A
>     >  Oxide length=   20.000000000000000      A
>     >  Inner gate radius=   11.000000000000000
>     > A <======== Problem here!
>     >  Inner oxide radius=   11.000000000000000      A
>     > <======== Problem here!
>     >  Dielectric constant of gate insulator=   3.8999999999999999
>     >  Smoothing of eps_r=   5.4802053668788773
>     >  Local Boundary Conditions= Squared
>     >  dR_cont( 1)=   2.000A
>     >  Local Boundary Conditions= Squared
>     >  dR_cont( 2)=   2.000A
>     >
>     >    There is a following line in the code parcheck.F90:
>     >
>     >      if(Rmin_ins.lt.Rmin_gate) Rmin_ins=Rmin_gate
>     >
>     >
>     >
>     >    As another check, I plotted the voltage drop across cross-section
>     > of the cylindrical gate. I observed
>     > no change in the slopes of the voltage as spatial distance ran
>     across
>     > the supposed interface between
>     > the oxide and vacuum region. To me, this indicates that the
>     oxide has
>     > never been taken into account when the poisson
>     > equation is solved. ...
>     >
>     >   If someone would like to test my input file, I would be happy to
>     > post it here.
>     > In the mean time, any comments will be greatly appreciated.
>     >
>     > Best,
>     > Yuranan Hanlumyuang
>     > University of Houston
>     >
>     >
>     >
>     >
>     >
>     >
>     >
>     >
>     >
>     > _______________________________________________
>     > DFTB-Plus-User mailing list
>     > DFTB-Plus-User at dftb-plus.info <mailto:DFTB-Plus-User at dftb-plus.info>
>     > http://www.dftb-plus.info/mailman/listinfo/dftb-plus-user
>
>
>     --
>     Dr. Gabriele Penazzi
>     BCCMS - University of Bremen
>
>     http://www.bccms.uni-bremen.de/
>     http://sites.google.com/site/gabrielepenazzi/
>
>     phone: +49 (0) 421 218 62337 <tel:%2B49%20%280%29%20421%20218%2062337>
>     fax: +49 (0) 421 218 62770 <tel:%2B49%20%280%29%20421%20218%2062770>
>
>     -------------- next part --------------
>     An HTML attachment was scrubbed...
>     URL:
>     <http://www.dftb-plus.info/pipermail/dftb-plus-user/attachments/20130402/7539ea72/attachment-0001.html>
>
>     ------------------------------
>
>     Message: 3
>     Date: Tue, 2 Apr 2013 12:04:50 -0400
>     From: Jacek Jakowski <jjakowski at gmail.com
>     <mailto:jjakowski at gmail.com>>
>     To: "User list for DFTB+ related questions"
>     <dftb-plus-user at dftb-plus.info <mailto:dftb-plus-user at dftb-plus.info>>
>     Subject: Re: [DFTB-Plus-User] Compilation Problem
>     Message-ID:
>     <CAM2nsyTws8BAcFyvnXC3PCokt2N=4a92VoHFs-D9Cw4B-hw2tg at mail.gmail.com <mailto:4a92VoHFs-D9Cw4B-hw2tg at mail.gmail.com>>
>     Content-Type: text/plain; charset="iso-8859-1"
>
>     You should  replace  line:
>     LIBOPT = -L$(ATLASDIR)
>     with
>     LIBOPT =
>     ---
>
>     Jacek
>
>
>
>     On Tue, Apr 2, 2013 at 7:43 AM, <debs at iitk.ac.in
>     <mailto:debs at iitk.ac.in>> wrote:
>
>     > Hi,
>     >  I am new with DFTB+ and I am trying to install it in my Ubuntu
>     12.04 OS.
>     > I am getting some error which I can not able to sort out. I am using
>     > make.x86_64-linux-gfortran file. I have modified the make file
>     and it is
>     > given below.
>     >
>     >
>     > # -*- makefile -*-
>     >
>     >
>     ############################################################################
>     > # System dependent Makefile options for
>     > # Linux, gfortran (4.4.3) + Atlas (3.6.0)
>     >
>     >
>     ############################################################################
>     >
>     > # Fortran 90 compiler
>     > FC90 = gfortran
>     >
>     > # Options for the Fortran 90 compiler
>     > FC90OPT = -O2 -openmp -funroll-all-loops -fall-intrinsics
>     >
>     > # Preprocessor (leave empty, if the compiler has a built in
>     preprocessor)
>     > CPP = cpp -traditional
>     >
>     > # Options for preprocessing
>     > CPPOPT = -DDEBUG=$(DEBUG) #-DEXTERNALERFC
>     >
>     > # Postprocessing of the preprocessor output (add-on pipe)
>     > CPPPOST = $(ROOT)/utils/fpp/fpp.sh general
>     >
>     > # Linker
>     > LN = $(FC90)
>     >
>     > # Linker options
>     > LNOPT = -static
>     >
>     > # Override options for different DEBUG modes
>     > ifeq ($(DEBUG),1)
>     >     FC90OPT = -g -Wall -std=f2003 -pedantic -fall-intrinsics
>     -fbounds-check
>     > endif
>     > ifeq ($(DEBUG),2)
>     >     FC90OPT = -g -Wall -std=f2003 -pedantic -fall-intrinsics
>     -fbounds-check
>     > endif
>     > ifeq ($(DEBUG),3)
>     >     FC90OPT = -g -Wall -std=f2003 -pedantic -fall-intrinsics
>     -fbounds-check
>     > endif
>     >
>     > # Library options in general
>     > ATLASDIR = /usr/lib
>     > LIBOPT = -L$(ATLASDIR)
>     >
>     > # How to link specific libraries
>     > LIB_LAPACK = -llapack
>     > LIB_BLAS = -lblas
>     > # Threaded version may work as well
>     > # LIB_BLAS = -lptf77blas -lptcblas -latlas
>     >
>     >
>     >
>     > The error is given below.
>     >
>     > /usr/lib/libblas.a(xerbla.o): In function `xerbla_':
>     > (.text+0x0): multiple definition of `xerbla_'
>     > /usr/lib/liblapack.a(xerbla.o):(.text+0x0): first defined here
>     > collect2: ld returned 1 exit status
>     > make[1]: *** [dftb+] Error 1
>     > rm disp_common.f90 qm.f90 md_integrator.f90 slako_eq_grid.f90
>     > short_gamma.f90 sk.f90 thirdorder.f90 rep_poly.f90
>     nhc_thermostat.f90
>     > geoopt.f90 tokenreader.f90 scc_init.f90 mainio.f90 intrinsicpr.f90
>     > dftb+.f90 formatout.f90 bisection.f90 inputdata_.f90 fifo.f90
>     memman.f90
>     > fact.f90 xmlutils.f90 sort.f90 md_common.f90 disp_uff.f90
>     > type_geometry.f90 densitymatrix.f90 shift.f90 etemp.f90 hsdutils.f90
>     > eigensolver.f90 andersen_thermostat.f90 extcharge.f90 dftb_pls_u.f90
>     > ext_erfc.f90 spinorbit.f90 stressTensor.f90 initprogram.f90
>     > broyden_mixer.f90 unitconversion.f90 dispersion.f90
>     orbital_equiv.f90
>     > angmomentum.f90 wrapped_pointers.f90 forces.f90 linmin.f90
>     diis_mixer.f90
>     > repulsive.f90 accuracy.f90 mixer_adt.f90 stringlist.f90
>     general_list.f90
>     > hermite.f90 hsdparser.f90 lapackroutines.f90 old_sk_data.f90
>     > eigenvects.f90 type_geometry_hsd.f90 berendsen_thermostat.f90
>     > linkedlist.f90 velocity_verlet.f90 charmanip.f90 energies.f90
>     scc.f90
>     > disp_slaterkirkwood.f90 potentials.f90 disp_uff_data.f90 message.f90
>     > taggedout.f90 parser.f90 blasroutines.f90 thermostat.f90
>     constraints.f90
>     > nonscc.f90 numericalDerivs.f90 populations.f90 periodic.f90
>     hsdutils2.f90
>     > temp_profile.f90 oldcompat.f90 slako_cont.f90 charge_constraints.f90
>     > simple_algebra.f90 rep_spline.f90 common_types.f90
>     dummy_thermostat.f90
>     > conjgrad.f90 sparse2dense.f90 simple_mixer.f90 stepdesc.f90
>     rep_cont.f90
>     > allocate.f90 fileid.f90 coulomb.f90 constants.f90 interpolation.f90
>     > spin.f90 anderson_mixer.f90 ranlux.f90
>     > make[1]: Leaving directory
>     >
>     `/home/user/Downloads/dftb+_1.2.2_src/prg_dftb/_obj_x86_64-linux-gfortran'
>     > make: *** [_obj_x86_64-linux-gfortran] Error 2
>     >
>     > Thanking you in anticipation.
>     >                                   Regards
>     >                                   Deb Sankar De
>     > _______________________________________________
>     > DFTB-Plus-User mailing list
>     > DFTB-Plus-User at dftb-plus.info <mailto:DFTB-Plus-User at dftb-plus.info>
>     > http://www.dftb-plus.info/mailman/listinfo/dftb-plus-user
>     >
>     -------------- next part --------------
>     An HTML attachment was scrubbed...
>     URL:
>     <http://www.dftb-plus.info/pipermail/dftb-plus-user/attachments/20130402/eab3bf8a/attachment-0001.html>
>
>     ------------------------------
>
>     Message: 4
>     Date: Wed, 3 Apr 2013 04:23:22 +0800 (CST)
>     From: Xiaobao <xiaobaojsyz at 163.com <mailto:xiaobaojsyz at 163.com>>
>     To: dftb-plus-user at dftb-plus.info
>     <mailto:dftb-plus-user at dftb-plus.info>
>     Subject: [DFTB-Plus-User] cylindrical gate set up
>     Message-ID: <2c9f7398.485.13dcc6b1305.Coremail.xiaobaojsyz at 163.com
>     <mailto:2c9f7398.485.13dcc6b1305.Coremail.xiaobaojsyz at 163.com>>
>     Content-Type: text/plain; charset="gbk"
>
>      Hi,
>
>     Anyone know how to set up a cylindrical gate? I referred the
>     manual, it says now Planar gate is allowed, however, when we check
>     the source code, seems there is some way to set up a cylindrical
>     gate and also there are already some work used cylindrical gate. I
>     would be very appreciated if you can give some idea. My current
>     try is:
>      Gate = Cylindrical{
>         GateLength [Angstrom] = 10.0
>         GateRadius [Angstrom] = 18.0
>         kappa = 3.9
>         InsulatorLength [Angstrom] = 20.0
>         InsulatorRadius[Angstrom]=12.0
>         GatePotential [eV]= 0.001
>         }
>     but the runs are not converge. If I remove this part, then it
>     converges well. I have tried to vary the radius and length, but it
>     did not help. I am guessing there is something wrong with gate
>     setup. Thank you for your help!
>     xiaobao,
>     -------------- next part --------------
>     An HTML attachment was scrubbed...
>     URL:
>     <http://www.dftb-plus.info/pipermail/dftb-plus-user/attachments/20130403/fface075/attachment.html>
>
>     ------------------------------
>
>     _______________________________________________
>     DFTB-Plus-User mailing list
>     DFTB-Plus-User at dftb-plus.info <mailto:DFTB-Plus-User at dftb-plus.info>
>     http://www.dftb-plus.info/mailman/listinfo/dftb-plus-user
>
>
>     End of DFTB-Plus-User Digest, Vol 63, Issue 1
>     *********************************************
>
>
>
>
> _______________________________________________
> DFTB-Plus-User mailing list
> DFTB-Plus-User at dftb-plus.info
> http://www.dftb-plus.info/mailman/listinfo/dftb-plus-user


-- 
Dr. Gabriele Penazzi
BCCMS - University of Bremen

http://www.bccms.uni-bremen.de/
http://sites.google.com/site/gabrielepenazzi/

phone: +49 (0) 421 218 62337
fax: +49 (0) 421 218 62770

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.dftb-plus.info/pipermail/dftb-plus-user/attachments/20130420/8c717963/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dftb_in.hsd
URL: <http://www.dftb-plus.info/pipermail/dftb-plus-user/attachments/20130420/8c717963/attachment-0001.ksh>


More information about the DFTB-Plus-User mailing list