BZ sampling

Various technical topics such as parallelism and efficiency, netCDF problems, the Yambo code structure itself, are posted here.

Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano, Conor Hogan, Nicola Spallanzani

Post Reply
marco.govoni
Posts: 35
Joined: Thu May 21, 2009 3:46 pm

BZ sampling

Post by marco.govoni » Wed Jun 23, 2010 5:44 pm

Dear developers,

I was doing some simply tests and I needed to print the sampling of the 1BZ.
So I wrote this command:

Code: Select all

call k_ibz2bz(k,'a',.true.)
meaning: allocate %ptbz components of k (which is a bz_samp variable) calculated in 'a' units and forced to be shifted to the 1BZ.

Because I am working with a 5 5 5 uniform and unshifted grid, I expected to print 125 vectors having coordinates with all possible combinations of these values 0.0, +/- 0.2 and +/- 0.4. Unfortunately I got printed also few vectors with components +/-0.6, which should lay outsise the 1BZ, as far as I know.
Where am I wrong?

Sorry for bothering you with this kind of simply technical issue :)
Cheers

Marco
Marco Govoni
Physics Department, University of Modena and Reggio Emilia (Italy)

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: BZ sampling

Post by andrea marini » Thu Jun 24, 2010 8:20 am

Dear Marco, the "k" argument (bz_samp type) passed to k_ibz2bz must be in "iku" units in order for the routine to work correctly. What is the input unit of the "k" type you passed to k_ibz2bz ( this is stored in k%units ) ?

Andrea
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

marco.govoni
Posts: 35
Joined: Thu May 21, 2009 3:46 pm

Re: BZ sampling

Post by marco.govoni » Thu Jun 24, 2010 9:04 am

Before calling the subroutine, in k there are no %ptbz allocated, indeed I'm calling k_ibz2bz to create them (is this the right way to create them?). So initially in 'k' there are just %pt (related to the IBZ) and they should be in "iku" (always?). Anyway I tried to print k%units and: before the call to k_ibz2bz it contains nothing, after the call with 'a' parameter, then I get of course k%units='a'. k%units is related to the units of the ptbz or of the pt components? Are there other ways to check if I am calling the subroutine on the correct variable?

Marco
Marco Govoni
Physics Department, University of Modena and Reggio Emilia (Italy)

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: BZ sampling

Post by andrea marini » Thu Jun 24, 2010 9:19 am

marco.govoni wrote:Are there other ways to check if I am calling the subroutine on the correct variable?
Ok marco, let's do it that you post here the routines you have changed or even better a patch obtained using

Code: Select all

> svn diff  >PATCH
and the GS input file of the 5x5x5 calculation. I will try to reproduce you calculation and see what's going on.

Andrea
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

marco.govoni
Posts: 35
Joined: Thu May 21, 2009 3:46 pm

Re: BZ sampling

Post by marco.govoni » Thu Jun 24, 2010 10:27 am

At the very end of src/setup/setup.F add:

Code: Select all

print*, 'k%units', k%units
call k_ibz2bz(k,'a',.true.)
do i1=1,k%nbz
print*, i1, k%ptbz(i1,:)
end do
print*, 'k%units', k%units
end subroutine
Then analize for example the 125th point, it is: -0.6 -04 -0.2 (out 1BZ?), while I was expecting: 0.4 -0.4 -0.2 (in 1BZ).

This is the input for GS calculation with PWscf
SCF.in

Code: Select all

&control
    calculation = 'scf',
    restart_mode='from_scratch',
    prefix='Si',
    pseudo_dir = '/Users/thunder/Work/PSEUDO',
    outdir='/Users/thunder/Work/scratch/TEST_GW/Si_555_007',
    verbosity='high'
/
&system
    ibrav=2, celldm(1)=10.21,
    nat=2, ntyp=1,
    ecutwfc=40.0,
    nbnd=5
/
&electrons
/
ATOMIC_SPECIES
Si   28.0855    Si.pz-vbc.UPF
Si   28.0855    Si.pz-vbc.UPF
ATOMIC_POSITIONS crystal
Si  0.0000000       0.000000      0.0000000
Si  0.2500000       0.250000      0.2500000
K_POINTS (automatic)
5 5 5 0 0 0  
NSCF.in

Code: Select all

&control
    calculation = 'nscf',
    restart_mode='from_scratch',
    prefix='Si',
    pseudo_dir = '/Users/thunder/Work/PSEUDO',
    outdir='/Users/thunder/Work/scratch/TEST_GW/Si_555_007',
    verbosity='high',
    wf_collect=.true.
 /
 &system
    ibrav=2, celldm(1)=10.21,
    nat=2, ntyp=1,
    ecutwfc=40.0,
    nbnd=9,
    force_symmorphic=.true.
 /
&electrons
/
ATOMIC_SPECIES
Si   28.0855    Si.pz-vbc.UPF
Si   28.0855    Si.pz-vbc.UPF
ATOMIC_POSITIONS crystal
Si  0.0000000       0.000000      0.0000000
Si  0.2500000       0.250000      0.2500000
K_POINTS (automatic)
5 5 5 0 0 0 

Marco
Last edited by marco.govoni on Thu Jun 24, 2010 10:32 am, edited 2 times in total.
Marco Govoni
Physics Department, University of Modena and Reggio Emilia (Italy)

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: BZ sampling

Post by andrea marini » Thu Jun 24, 2010 10:28 am

marco.govoni wrote: Then analize for example the 125th point, it is: -0.6 -04 -0.2 (out 1BZ?), while I was expecting: 0.4 -0.4 -0.2 (in 1BZ).
I need the databases. f they are small post them here, otherwise post the GS input file.
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

marco.govoni
Posts: 35
Joined: Thu May 21, 2009 3:46 pm

Re: BZ sampling

Post by marco.govoni » Thu Jun 24, 2010 10:42 am

Ok I have added GS inputs in the previous reply.
Cheers
Marco
Marco Govoni
Physics Department, University of Modena and Reggio Emilia (Italy)

Post Reply