Dear Le, <br><br>I have normally 8 electrons in my system and define a charge of  tot_charge = +0.00046875. I then have  7.99953125 electrons in my system. I want to do than so that I can make a finite difference calculation with respect to the occupation number of my HOMO. As I'm only considering the gamma point of diamond and as the HOMO is 3X degenerate at that point I decrease the occupation number of the last 3 valences bands from 2.0 electrons per bands to 1.99 electrons per bands.<br>
<br>The numbers that occupation numbers gives in the output file of PWSCF is the occupation number (theoretically 2.0 for the valence band) weighted by the symmetries of the k point grid. <br><br><b>Actual behaviour:</b><br>
     number of k points=    8<br>                       cart. coord. in units 2pi/a_0<br>        k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.0312500<br>        k(    2) = (  -0.2500000   0.2500000  -0.2500000), wk =   0.2500000<br>
        k(    3) = (   0.5000000  -0.5000000   0.5000000), wk =   0.1250000<br>        k(    4) = (   0.0000000   0.5000000   0.0000000), wk =   0.1875000<br>        k(    5) = (   0.7500000  -0.2500000   0.7500000), wk =   0.7500000<br>
        k(    6) = (   0.5000000   0.0000000   0.5000000), wk =   0.3750000<br>        k(    7) = (   0.0000000  -1.0000000   0.0000000), wk =   0.0937500<br>        k(    8) = (  -0.5000000  -1.0000000   0.0000000), wk =   0.1875000<br>
<br>And for the gamma point:<br><br> k = 0.0000 0.0000 0.0000 (  1243 PWs)   bands (ev):<br><br>    -7.9264  13.7887  13.7887  13.7887  19.5000  19.5000  19.5000  27.9310<br><br>     occupation numbers<br>     0.0312   0.0312   0.0312   0.0312   0.0000   0.0000   0.0000   0.0000<br>
<br><b>Expected behaviour</b><br>     number of k points=    8<br>
                       cart. coord. in units 2pi/a_0<br>
        k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.0312500<br>
        k(    2) = (  -0.2500000   0.2500000  -0.2500000), wk =   0.2500000<br>
        k(    3) = (   0.5000000  -0.5000000   0.5000000), wk =   0.1250000<br>
        k(    4) = (   0.0000000   0.5000000   0.0000000), wk =   0.1875000<br>
        k(    5) = (   0.7500000  -0.2500000   0.7500000), wk =   0.7500000<br>
        k(    6) = (   0.5000000   0.0000000   0.5000000), wk =   0.3750000<br>
        k(    7) = (   0.0000000  -1.0000000   0.0000000), wk =   0.0937500<br>
        k(    8) = (  -0.5000000  -1.0000000   0.0000000), wk =   0.1875000<br>
<br>
And for the gamma point:<br>
<br>
 k = 0.0000 0.0000 0.0000 (  1243 PWs)   bands (ev):<br>
<br>
    -7.9264  13.7887  13.7887  13.7887  19.5000  19.5000  19.5000  27.9310<br>
<br>
     occupation numbers<br>
     0.0312   <b>0.03109375</b>   <b>0.03109375    </b><b>0.03109375   </b>0.0000   0.0000   0.0000   0.0000<br><br>( The bold number corresponds to 1.99/64 )<br><br>Here is my input file:<br><br>&CONTROL<br>  calculation  = "scf"                     ! scf run<br>
  restart_mode = "from_scratch"            ! "restart" form an interrupted run<br>  prefix       = "Diamond"                 ! Basename for all binary files<br>  verbosity    = "high"                    ! Output more informations<br>
  wf_collect   = .true.                    ! Collect wf in one single file<br><br>  pseudo_dir   = '$PSEUDO_DIR/'            <br>  outdir       = '$TMP_DIR/'               <br><br>  tstress      = .true.                    ! If true, print stress<br>
  tprnfor      = .true.                    ! If true, print forces<br>/<br>&SYSTEM<br>  nbnd      = 8                            ! 4 valence and 4 cond. <br>  ibrav     = 2                            ! Correspond to fcc lattice<br>
  celldm(1) = 6.66491891                   ! Lattice spacing in Bohr<br>  nat       = 2                            ! Number of atoms<br>  ntyp      = 1                            ! Number of different atomic type<br>  ecutwfc   = 100                          ! Wf cutoff in Ry<br>
  ecutrho   = 400                          ! Density cutoff (4*ecutwfc for nc psp and 9-10 for ultrasoft)<br>  tot_charge = +0.00046875                 ! 4-(63*4+3.97)/64<br>  occupations = "fixed"<br>/<br>&ELECTRONS<br>
  diagonalization = "david"                ! Diagonalization method: "david" or "cg"<br>  conv_thr        = 1e-16                  ! Energy accuracy threshold in Ry<br>  mixing_beta     = 0.5                    ! Charge mixing, reduce it if SCF is unstable<br>
/<br><br>ATOMIC_SPECIES<br>C  12.011  C.pz-vbc.UPF                        ! Label  |  mass  | pseudopotential<br><br>ATOMIC_POSITIONS {bohr}<br>C  0.00  0.00  00.00<br>C  1.66622973 1.66622973 1.66622973<br><br>K_POINTS automatic<br>
4 4 4 0 0 0         <br><br>Best regards, <br><br>Samuel Poncé<br><br><div class="gmail_quote">2011/7/30 Duy Le <span dir="ltr"><<a href="mailto:ttduyle@gmail.com">ttduyle@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2011/7/30 Samuel Poncé <<a href="mailto:samuel.pon@gmail.com">samuel.pon@gmail.com</a>>:<br>
<div class="im">> I did try to add the variable tot_charge = +0.00046875 because I have 64 k<br>
> points and 4 valences band ( 4-(63*4+3.97)/64)<br>
<br>
</div>Not sure what you were calculating. tot_charge is additional charge<br>
you add to your system.<br>
For example, if you have a system with 8 electron, and if you define<br>
tot_charge = +1, you will have 8-1=7 electron in the system.<br>
<div class="im"><br>
> However if I add the variable 'occupations = "fixed"' then I get the<br>
> following WARNING:<br>
>      WARNING: integrated charge=     8.00000000, expected=     7.99953125<br>
><br>
> I off course get the exact same total energy as with tot_charge = 0 (this is<br>
> not the expected behaviour).<br>
><br>
> I did try without the variable 'occupation' (by the way what is the default<br>
> value for occupation?) and also get the exact same total energy.<br>
<br>
</div>This does not depend on occupation. Read manual about occupation for<br>
more details.<br>
If you do a simple math: 7.99953125+0.00046875 you will see a "magic" number.<br>
<div class="im"><br>
<br>
> I also do not understand why I don't have an occupation of 2.0 for all my<br>
> valence states?<br>
><br>
>  k = 0.0000 0.0000 0.0000 (  1243 PWs)   bands (ev):<br>
><br>
>     -7.9264  13.7887  13.7887  13.7887<br>
><br>
>      occupation numbers<br>
>      0.0312   0.0312   0.0312   0.0312<br>
</div>you should post your input for further advice.<br>
--------------------------------------------------<br>
Duy Le<br>
PhD Candidate<br>
Department of Physics<br>
University of Central Florida.<br>
<br>
"Men don't need hand to do things"<br>
<div><div></div><div class="h5"><br>
<br>
><br>
><br>
> 2011/7/30 GAO Zhe <<a href="mailto:flux_ray12@163.com">flux_ray12@163.com</a>><br>
>><br>
>> Dear Ponce:<br>
>> I am sorry that I may not catch the right meaning of your first question.<br>
>> If you mean how to make extra or less charge for a model, you can use<br>
>> "total_charge" in &system namelist.<br>
>> If you wanna get information of wavefunction, you'd better read<br>
>> Doc/INPUT_PP. For the charge density at specified k-point and band, you can<br>
>> calculate |psi|^2 through pp.x. Moreover, if you want to obtain the charge<br>
>> density for all k-points on specified bands, you can summary them by pp.x,<br>
>> too. P.S.: the original code of pp.x can just allow 7 filepp, but you can<br>
>> change the variable, nfilemax, in PP/chdens.f90, then make pp.x.<br>
>> Good Luck.<br>
>> --<br>
>> GAO Zhe<br>
>> CMC Lab, MSE, SNU, Seoul, S.Korea<br>
>><br>
>> At 2011-07-29 17:27:27,"Samuel Poncé" <<a href="mailto:samuel.pon@gmail.com">samuel.pon@gmail.com</a>> wrote:<br>
>><br>
>> Dear Quantum espresso user/developers,<br>
>><br>
>> I have two questions:<br>
>><br>
>> 1) Is it possible in pwscf to change "by hand" the occupation number ( and<br>
>> impose a charge compensation accordingly) and if so how to do it?<br>
>> I would like to do so because the sum over the different mode of the<br>
>> partial derivative of the phonon frequency with respect of the occupation<br>
>> number gives the zero point motion renormalization using Brooks theorem. I<br>
>> would like to do this by finite difference (hence doing by hand some<br>
>> calculation at different occupation number).<br>
>><br>
>>  2) Is it possible to extract informations in text format form the<br>
>> wavefunctions? What is the right post processing tool to do so? Like having<br>
>> the value of the wavefunction for a defined k points and band index?<br>
>><br>
>> Thanks you!<br>
>><br>
>> Samuel Poncé.<br>
>> (phD student, Université Catholique de Louvain, Belgium).<br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Pw_forum mailing list<br>
>> <a href="mailto:Pw_forum@pwscf.org">Pw_forum@pwscf.org</a><br>
>> <a href="http://www.democritos.it/mailman/listinfo/pw_forum" target="_blank">http://www.democritos.it/mailman/listinfo/pw_forum</a><br>
>><br>
><br>
><br>
> _______________________________________________<br>
> Pw_forum mailing list<br>
> <a href="mailto:Pw_forum@pwscf.org">Pw_forum@pwscf.org</a><br>
> <a href="http://www.democritos.it/mailman/listinfo/pw_forum" target="_blank">http://www.democritos.it/mailman/listinfo/pw_forum</a><br>
><br>
><br>
_______________________________________________<br>
Pw_forum mailing list<br>
<a href="mailto:Pw_forum@pwscf.org">Pw_forum@pwscf.org</a><br>
<a href="http://www.democritos.it/mailman/listinfo/pw_forum" target="_blank">http://www.democritos.it/mailman/listinfo/pw_forum</a><br>
</div></div></blockquote></div><br>