Page 1 of 1
BZ sampling
Posted: Wed Jun 23, 2010 5:44 pm
by marco.govoni
Dear developers,
I was doing some simply tests and I needed to print the sampling of the 1BZ.
So I wrote this command:
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
Re: BZ sampling
Posted: Thu Jun 24, 2010 8:20 am
by andrea marini
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
Re: BZ sampling
Posted: Thu Jun 24, 2010 9:04 am
by marco.govoni
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
Re: BZ sampling
Posted: Thu Jun 24, 2010 9:19 am
by andrea marini
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
and the GS input file of the 5x5x5 calculation. I will try to reproduce you calculation and see what's going on.
Andrea
Re: BZ sampling
Posted: Thu Jun 24, 2010 10:27 am
by marco.govoni
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
Re: BZ sampling
Posted: Thu Jun 24, 2010 10:28 am
by andrea marini
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.
Re: BZ sampling
Posted: Thu Jun 24, 2010 10:42 am
by marco.govoni
Ok I have added GS inputs in the previous reply.
Cheers
Marco