Dear Mohammad,

first of all:

Please take into account that I did the modifications to BoltzTraP more than 4 years ago and didn't use the program since that time. You really need to check the details by yourself. Do a test calculation for some simple material - one where you have maybe one band filled, with quadratic dispersion, where one can calculate everything also by hand. Furthermore, the program will still give you the conductivity and such in SI units for the 3D cell - you need to multiply/divide at some point with the length of the cell in the z direction. It took me some time to get things right and I can't find the notes at the moment as I meanwhile needed to move 2 times.

The modifications:

In the src directory of the BoltzTraP 1.2.5, I modified 2 files, fermiintegrals.F90 and gmlib2.F90. The changes are given in the attached fermiintegrals.diff and gmlib2.diff. Yet, these also include some commented tests I did at this time.

AGAIN: Please check carefully, I cannot guarantee anything and be sure that you get the units right (3D compared to 2D).
Read the original BoltzTraP paper!

Regards

Thomas

On 01/03/19 14:41, Ubaid Mohd wrote:
Dear users,
 Is there any need to change the any *.F90 file in the BoltzTrap code to make the code for 2D materials, if yes, which file to be edit for using the code in 2D materials?
Thanks and regards

/Mohammad Ubaid/
/PhD Research Scholar/
/Department of Physics/
/Jamia Millia Islamia University/
/New Delhi - 110025/


On Thu, Dec 27, 2018 at 10:48 AM Ubaid Mohd <[email protected] <mailto:[email protected]>> wrote:

    Hi sir,
     I tried with
    " print(nsym)
        except:
            nsym=1"
    after code " i += 1 " in line 115.
    But still I am getting the error;
      File "./qe2boltz.py", line 117
        print(nsym)
                ^
    IndentationError: unindent does not match any outer indentation level
    Here is my edited script and nscf output. Please have a look.
    Thanks and Regards
    /Mohammad Ubaid/
    /PhD Research Scholar/
    /Department of Physics/
    /Jamia Millia Islamia University/
    /New Delhi - 110025/


    On Wed, Dec 26, 2018 at 5:36 PM Ubaid Mohd <[email protected]
    <mailto:[email protected]>> wrote:

        I am not able to fix because I don't know python. Here is my
        script, so could you please fix that and send the script.
         Regards
        /Mohammad Ubaid/
        /PhD Research Scholar/
        /Department of Physics/
        /Jamia Millia Islamia University/
        /New Delhi - 110025/


        On Wed, Dec 26, 2018 at 5:28 PM DongKyu Lee
        <[email protected] <mailto:[email protected]>> wrote:

            Dear Ubaid Mohd,

            The python script can not find symmetry-information when
            "nosym = .true.".
            It will be fixed by adding code to handle error exception.
            I solved the problem as adding
            "
                try:
                    print(nsym)
                except:
                    nsym=1
            "
            after code " i += 1 " in line 115.

            Sincerely,

            
/************************************************************************

            Dongkyu Lee**/**Master Candidate
            Computational Many-Body Physics Group
            Department of Physics and Photon Science
            Gwangju Institute of Science and Technology [GIST]
            Gwangju 61005, South Korea

            Office.  +82-62-715-2855
            Mobile. +82-10-5000-0016
            [email protected] <mailto:[email protected]>

            
**************************************************************************/

            ------------------------------

            Message: 4
            Date: Wed, 26 Dec 2018 13:42:08 +0530
            From: Ubaid Mohd <[email protected]
            <mailto:[email protected]>>
            To: [email protected]
            <mailto:[email protected]>
            Subject: [QE-users] QE_2_BoltzTrap
            Message-ID:
                   
            <cacgvgwgbqb7zfv+ihuhehjupvznmz0vc-epovpzgy+xqsea...@mail.gmail.com
            
<mailto:cacgvgwgbqb7zfv%2bihuhehjupvznmz0vc-epovpzgy%[email protected]>>
            Content-Type: text/plain; charset="utf-8"

            Dear users,
              I am using BoltzTrap for thermoelectric properties. I am
            following the
            steps like  scf and nscf calculation, then using the
            script qe2boltz.py to
            convert the data for BoltzTrap. Some times script converts
            the data without
            any error and some times I got this error:
            Traceback (most recent call last):
            File "/pkg/chem/boltztrap125/util/qe2boltz.py", line 253,
            in <module>
            sys.exit(main())
            File "/pkg/chem/boltztrap125/util/qe2boltz.py", line 130,
            in main
            for ir in range(nsym):
            UnboundLocalError: local variable 'nsym' referenced before
            assignment.
             I am unable to sort out the error but I can say it may be
            due nscf input.
            So please guide me how to sort out this error?
            Thanks and regards
            *Mohammad Ubaid*
            *PhD Research Scholar*
            *Department of Physics*
            *Jamia Millia Islamia University*
            *New Delhi - 110025*
            _______________________________________________
            users mailing list
            [email protected]
            <mailto:[email protected]>
            https://lists.quantum-espresso.org/mailman/listinfo/users



_______________________________________________
users mailing list
[email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users

--
Dr. rer. nat. Thomas Brumme
Wilhelm-Ostwald-Institute for Physical and Theoretical Chemistry
Leipzig University
Phillipp-Rosenthal-Strasse 31
04103 Leipzig

Tel:  +49 (0)341 97 36456

email: [email protected]

56a57,58
> !test
> !  write(*,*)'deltaef = ',deltaef
57a60
> !  write(*,*)'deltaef = ',deltaef
81c84,88
<  
---
>   !TB 2014
>   !OPEN(666,FILE='minv_sigxy', STATUS='unknown', FORM='formatted')
>   !OPEN(667,FILE='fermifunc', STATUS='unknown', FORM='formatted')
>   !write(*,*)'spinorb',spinorbit
>   !TB 2014
122a130,135
> 
>      !TB 2014
>      !factor1=fermi(efermi,-1.8*RYDBERG,temp)*spinorbit
>      !factor2=dfermide(efermi,-1.8*RYDBERG,temp)*spinorbit
>      !WRITE(667,*)efermi/RYDBERG,factor1,factor2
> 
204a218,221
>   !TB 2014
>   !CLOSE(666)
>   !CLOSE(667)
>   !TB 2014
239c256
<  INTEGER                :: i,j,k
---
>  INTEGER                :: i,j,k, tmp
250c267
<  REAL(8)                :: minv_sigxy(3,3),seebeck(3,3),thermal(3,3),hall(3,3,3)
---
>  REAL(8)                :: minv_sigxy(2,2),seebeck(3,3),thermal(3,3),hall(3,3,3)
254a272,274
>  !TB 2014
>  minv_sigxy=ZERO
>  !TB 2014
303a324
> 
304a326
> ! write(*,*)'test: spinorbit = ',spinorbit,' lifetime = ',lifetime
307,317c329,342
<     cond(1:3,1:3) = -cond(1:3,1:3)*deltaef &
<          * OHM *METER*SECOND
<     nu(1:3,1:3)   =   -nu(1:3,1:3)*deltaef/temp &
<          * METER * SECOND / AMPERE
<     kappa(1:3,1:3)=-kappa(1:3,1:3)*deltaef/temp &
<          * METER * SECOND / WATT
<     sigxyz(1:3,1:3,1:3)=-sigxyz*deltaef &
<          * OHM**2 * SECOND**3 * AMPERE / METER
<     specheat      = specheat*deltaef & 
<          * MOL / JOULE
<     CALL invert_3x3(cond,minv_sigxy,i)
---
>    cond(1:3,1:3) = -cond(1:3,1:3)*deltaef &
>         * OHM *METER*SECOND
>    nu(1:3,1:3)   =   -nu(1:3,1:3)*deltaef/temp &
>         * METER * SECOND / AMPERE
>    kappa(1:3,1:3)=-kappa(1:3,1:3)*deltaef/temp &
>         * METER * SECOND / WATT
>    sigxyz(1:3,1:3,1:3)=-sigxyz*deltaef &
>         * OHM**2 * SECOND**3 * AMPERE / METER
>    specheat      = specheat*deltaef & 
>         * MOL / JOULE
>     !TB 2014: reduce halltensor to 2D
>     !changed below invert_3x3 to invert_2x2
>     minv_sigxy(1:2,1:2)=cond(1:2,1:2)
>     CALL invert_2x2(minv_sigxy,minv_sigxy,i)
321,323c346,350
<     DO i=1,3
<        DO j=1,3
<           DO ialp=1,3
---
>     !TB 2014: reduce seebeck to 2D
>     ! changed below everything from 1,3 to 1,2
>     DO i=1,2
>        DO j=1,2
>           DO ialp=1,2
330,334c357,366
<     DO i=1,3
<        DO j=1,3
<           DO k=1,3
<              DO ialp=1,3
<                 DO ibet=1,3
---
>     !TB 2014: reduce halltensor to 2D
>     ! changed below k FROM going from 1 to 3 TO 3
>     ! i,j from 1,3 to 1,2
>     ! ialp,ibet from 1,3 to 1,2
>     !WRITE(666,*)efermi/RYDBERG,minv_sigxy(1:2,1:2), lifetime
>     DO i=1,2
>        DO j=1,2
>           DO k=3,3
>              DO ialp=1,2
>                 DO ibet=1,2
85a86,102
> !TB 2014
> SUBROUTINE invert_2x2(mat1,inv_mat1,idet)
>   USE defs
>   IMPLICIT NONE
>   REAL(8)        :: mat1(2,2),inv_mat1(2,2),det,determ1
>   INTEGER        :: idet
>   inv_mat1(1,1)=mat1(2,2)                 
>   inv_mat1(1,2)=-mat1(1,2)                 
>   inv_mat1(2,1)=-mat1(2,1)                 
>   inv_mat1(2,2)=mat1(1,1)                 
>   det=determ1(mat1)
>   idet=1
>   IF(det < test) idet=0
>   inv_mat1(1:2,1:2)=inv_mat1(1:2,1:2)/det
> END SUBROUTINE invert_2x2
> !TB 2014
> 
104a122,130
> 
> !TB 2014
> REAL(8) FUNCTION determ1(a)
>   ! return the determinante of a 2x2 matrix
>   IMPLICIT NONE
>   REAL(8)  :: a(2,2)
>   determ1=a(1,1)*a(2,2)-a(1,2)*a(2,1)
> END FUNCTION determ1
> !TB 2014
_______________________________________________
users mailing list
[email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to